How Invoice Copying and Type Changes Work
Source: invoices_controller.rb:187-221, invoices_controller.rb:2798-2813
- Copying an invoice resets status to open and job status to booked, regardless of the original invoice's status
- All line items and settings are duplicated but the new invoice gets a fresh lifecycle
- Changing the invoice type is logged in InvoiceActivityLog with the old and new type (e.g., "Changed from INVOICE to CREDIT")
- Payment terms changes between cash (CASHONDEL) and account (30DAYS) are also logged in the activity log
- Quote follow-up timestamp (quote_first_sent_on) is set to DateTime.current the first time either send_follow_ups_email or send_follow_ups_sms is toggled on
- Invoice type filter validation only allows characters C, I, Q (plus dash separator) -- anything else returns "Invalid invoice type"
Support scenarios
- "When I copy a processed invoice, does it come through as processed?" -> no, copied invoices always start as open with job status booked
- "Where can I see who changed the invoice type?" -> check the invoice activity log; type changes are recorded with timestamps
- "Is there a record of who changed from cash to account?" -> yes, payment terms changes are logged in the activity log