Invoice integration and note creation

Troubleshoot a Delivery Note not created after invoice save

Diagnose the selected add-note branch without changing unrelated invoice or core files.

Audience: Administrators and support staffPermission: Invoices: View and Delivery Note: View/CreateModule v1.0.0
Exact navigationAdmin Area → Invoices → Open saved invoice → Delivery Note action

What this guide covers

Diagnose the selected add-note branch without changing unrelated invoice or core files. This guide follows the supplied Delivery Note module’s live hooks, controller actions, model rules, views and stored side effects.

Exact step-by-step process

  1. Confirm the invoice itself was saved and has a valid ID.
  2. Check that Add Delivery Note was selected before submit.
  3. Verify the module is active and `delivery_note_enabled` is on.
  4. Verify `delivery_note_invoice_ui_enabled` allowed the new-invoice UI.
  5. Check the staff member had Create capability.
  6. Use the invoice button or metadata endpoint to determine whether a note exists.
  7. Review application logs for installer/schema or model errors, then retest once.

Fields, choices and supported possibilities

  • Invoice ID
  • Checkbox/hidden payload
  • Module options
  • Create permission
  • Both module tables
  • Existing non-void note

Code-backed validations and workflow rules

  • No note is expected when the checkbox was left off.
  • An existing open or signed note prevents duplicate creation.
  • Recipient Email affects dispatch email only; it does not control note creation.
  • Do not repeat invoice submissions before checking for an existing note.

Expected result and verification

  • The cause is identified within module scope and the invoice retains its original valid state.

Checks, security and troubleshooting

  • Never repair by inserting a partial database row; use the supported invoice resolver/create flow.
Stay within the supported flowDo not force database values, expose secure tokens, bypass permission checks, replace a stored signature or invent a status or interface that the supplied code does not implement.