Secure public access and e-signing

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.

Audience: Administrators and support staffPermission: Delivery Note: ViewModule v1.0.0
Jump to steps
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

  1. Check the module is active and enabled.
  2. Verify the invoice page context is recognised.
  3. Verify the invoice has a non-void linked note.
  4. Verify the logged-in client owns the invoice or the route carries the exact stored hash.
  5. Check that customer head/footer hooks and the invoice-button JavaScript load.
  6. 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.