In a Sales batch, only the first line gets Disclose = True automatically. Every other line starts unticked, and the Sales Invoice only prints lines where Disclose is ticked. So users have to remember to tick each remaining line by hand. It's fiddly, and worse, it's easy to miss a line, which means it silently drops off the invoice.
Objective
Flip the default. All Sales lines start with Disclose = True, and users untick the ones they don't want on the invoice. Same outcome, far less manual work, and the failure mode changes from "line quietly missing" to "line the user chose to remove".
In scope
Default Disclose = True on all lines in a Sales batch, not just the first
Users can still untick any line
Applies to lines added after the batch is created, not just the initial set
Out of scope
Any change to how the Sales Invoice document decides what to print (it still prints ticked lines only)
Other batch types or other uses of the Disclose field
Functional requirements
Default on create. When a Sales line is created, Disclose is set to True. This covers lines created as part of the initial batch and any line added later.
Manual override. Unticking works exactly as it does now. Once a user unticks a line, that stays unticked, nothing re-ticks it on save or refresh.
Existing batches. Open, unposted batches created before the change keep their current tick state. We don't retrospectively tick anything. Worth confirming this is what's wanted.
Validation and audit
Standard Catch-e prompts on save
Disclose changes should be traceable in the audit trail the same way they are today, so we can tell "user unticked this" apart from "system never ticked it"
Acceptance criteria
Creating a Sales batch results in every line having Disclose = True
Adding a line to an existing batch gives it Disclose = True
Unticking a line stops it printing on the Sales Invoice, and it stays unticked
The Sales Invoice prints all ticked lines and nothing else
No change to any other batch type