Sales Invoice Flow Overview =========================== Goal ---- The Sales Invoice flow adds a specialized invoice flow for e-commerce and jurisdiction-aware tax handling while keeping upstream ``django-ledger`` models upgrade-safe. Design ------ The flow does not modify ``django_ledger.InvoiceModel`` schema. Instead, it extends invoice behavior using related models: * ``SalesInvoiceProfile``: one-to-one sales profile linked to ``InvoiceModel``. * ``SalesInvoiceTaxComponent``: aggregated tax totals by tax type. * ``SalesInvoiceLineSummary``: line-level computed tax snapshot. * ``SalesInvoiceLineTaxComponent``: per-line component details (GST/PST/HST/US). * ``SalesTaxPreset``: country/region tax presets (seeded for Canada). Routes ------ The flow is available under: * ``/ledger/sales-invoices//`` * ``/ledger/sales-invoices//create/`` * ``/ledger/sales-invoices///`` * ``/ledger/sales-invoices///edit/`` Compatibility with upstream updates ----------------------------------- Because the flow stores custom metadata in ``accounting`` app models and does not fork ``django-ledger`` source code, pulling upstream package updates is low-risk.