Troubleshoot a missing client Delivery Note PDF button
Resolve client-page visibility within the supplied hook and access rules. The guide then takes you through the correct route, the checks to complete before making changes, the workflow in order, and the evidence to review afterwards.
Where to goClient Portal → Invoices → Open invoice
What you’ll accomplish
Resolve client-page visibility within the supplied hook and access rules. This guide follows the supplied Delivery Note module’s live hooks, controller actions, model rules, views and stored side effects.
Follow these steps
- Check the module is active and enabled.
- Verify the invoice page context is recognised.
- Verify the invoice has a non-void linked note.
- Verify the logged-in client owns the invoice or the route carries the exact stored hash.
- Check that customer head/footer hooks and the invoice-button JavaScript load.
- Test with the same client account in a clean browser session.
Fields and options to review
- Module enabled
- Invoice ID/context
- Invoice hash
- Client ID
- Active-note metadata
- Customer asset injection
Rules the system enforces
- The button is intentionally absent for unauthorised, missing or void-note contexts.
- Invoice UI enabled option gates admin invoice UI; the customer hook uses module enabled and eligible note resolution.
- The code does not provide a global client Delivery Note menu.
How to confirm it worked
- The button appears only for the correct invoice and customer without broadening access.
Safety checks and troubleshooting
- Keep the fix inside module/hook scope; do not edit core client-invoice access logic.
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.
Continue with related guidance
Was this guide useful?Your response is stored only in this browser.
