- Shipped
- August 29, 2026 at 7:33 AM UTC
- Author
- Kamo
- Commit
- c4d5c16
Settings → Account → Receivables is where an organization sets the bank account its customers pay into: the payee, the bank, the routing and account numbers, and whether they print on quotes. A quote raised from /leads/view/:id?tab=quotes then carries a remittance block, so a company receiving one knows where to send the money without telephoning to ask. The screen is built around one idea. Somebody here is deciding to publish a bank account to every company that receives a quote, so they should be looking at the block that will be published rather than at a description of it. The preview beside the form is the SAME component the quote sheet renders — QuoteRemittanceBlock, shared by both — so the two cannot drift. Three states per number field, and the difference is the whole interaction. Empty: type it. Stored: the server answers with the last four digits and nothing more, so the field shows "•••• 4417" and offers to replace. Replacing: live and empty, with a way back that sends nothing. An empty replacing field is NOT sent, which means this screen cannot clear a stored number — "I clicked Change, thought better of it, then saved something else" must not silently delete the deposit account. VIEW_RECEIVABLES and MANAGE_RECEIVABLES are grouped by NAME under Accounting & Finance in permissionGroups.ts. They carry no ServiceType, and a right with a ServiceType the organization has not enabled renders in no editor at all — which is how nineteen rights once became ungrantable however the org was licensed. The tab, the settings-menu link and the landing card each gate on the pair; the tab also admits the organization owner, matching the backend, because a brand-new right is granted to nobody on the day it deploys including whoever would grant it. The remittance block is resolved SERVER-side, even for the staff preview, and is absent unless printing is on and both numbers are stored. A previewed account number that differed from the sent one is the one error a customer finds before anybody else does.