How Company Settings and Tax Configuration Works
Source: autosoft-workshop/app/controllers/companies_controller.rb, company_settings_controller.rb, company.rb
- Changing vehicle body groups requires the value to be a valid JSON array AND the system checks that no in-use body group is being removed
- Changing the reply-to email domain triggers an AWS SES verification reset — emails will bounce until the new domain is verified
- Workshop type settings (e.g., mechanical, body shop) can only be changed during the trial period — locked after trial ends
- Changing the sales tax rate triggers a background recalculation job with a 1-minute delay — totals won't update instantly
- Toggling the tax setting forces a re-save of ALL open invoices to apply the new tax configuration
- Country-specific tax rates are auto-configured on company creation: NZL=15%, ZAF=15%, GBR=20%, AUS=10%, USA=state+local multi-tax
- Logo upload must be an image file under 500KB; S3 storage has a separate 200KB limit — files between 200-500KB may upload but fail to store
- Multi-tax and price-includes-tax settings are mutually exclusive — enabling one disables the other
- Turning off multi-tax clears tax groups from ALL open invoices — this is a destructive operation with no undo
- "Invoice number = job card number" setting uses the higher of the two counters to avoid number collisions
Support scenarios
- "Our emails are bouncing after we changed our reply-to address" → domain change triggered SES verification reset; new domain needs to be verified
- "Can't change our workshop type" → only allowed during trial period
- "Tax totals haven't updated yet" → background recalculation has a 1-minute delay
- "All our open invoices changed" → toggling tax setting forces re-save of all open invoices
- "We turned off multi-tax and lost all tax groups" → disabling multi-tax clears tax groups from open invoices, this is destructive and irreversible
- "Logo uploaded but doesn't show" → file may be between 200-500KB, passing upload validation but failing S3 storage
- "Invoice numbers jumped" → "invoice = job card number" setting took the higher of the two counters