ORDERLIST CHANGELOG
===================

Version 2.1
-----------
- Added an Email Paid Invoice button with a self-contained HTML invoice
  attachment that opens and prints in the customer's browser.
- Matched the browser and print presentation of Fancier Invoice V2.1, including
  its typography, spacing, address panels, order-information bar, product table,
  totals alignment and diagonal Paid watermark.
- Added a Print invoice button to the attached and browser-viewed invoice.
- Made the central invoice panel in the branded email a secure link to the same
  printable HTML invoice, with the attachment retained as a fallback.
- Added a signed customer invoice endpoint that rechecks the order and permitted
  status without exposing an Admin session.
- Kept Print Invoice and Packing Slip in their original separate rows and
  added clear spacing before Email VAT Invoice.
- Uses Phoenix's existing email class and configured store sender details.
- Added a confirmation prompt showing the destination email address.
- Added an Admin checklist for the statuses permitted to receive Paid invoices.
- Reuses the optional Customer Print Invoice allowed-status setting until an
  Orderlist-specific selection is saved.
- Disables the send button for non-permitted statuses and invalid addresses.
- Rechecks the order, status and customer email on the server before sending.
- Added CSRF validation and duplicate-click prevention.
- Records each successful send in the order status history without changing
  the order status or sending a separate order-update notification.
- Fancier Invoice itself is not changed and remains optional.
- Uses a fixed UK DD/MM/YYYY invoice date in both the attachment and secure
  browser view, independent of the customer's session locale.
- Omits the order-acceptance disclaimer from these Paid invoices.
- No Phoenix core files are modified.

Version 1.1.5
-------------
- Added a stronger full-width divider between individual orders.

Version 1.1.4
-------------
- Split delivery and contact information into separate columns.
- Split products and order totals into separate columns so they display side by side.
- Reduced table font size, cell padding and product spacing.
- Added compact, scoped Orderlist styling without changing core CSS files.

Version 1.1.3
-------------
- Prevented stored HTML entities such as &amp;nbsp; appearing literally in totals.
- Empty spacer rows in orders_total are now omitted completely.
- Stored total text is converted safely to plain text before display.

Version 1.1.2
-------------
- Moved the order status beneath the order number and date.
- Removed the separate Status column to make better use of the page width.
- Added automatic Advanced Order Manager detection.
- Order-number links now open manual_order_edit.php when AOM is installed.
- Retained the native Phoenix order editor as an automatic fallback.
- Updated Admin links to use Phoenix Linker parameters.

Version 1.1.1
-------------
- Corrected the installation location of the main page language file to
  includes/languages/english/orderlist.php.

Version 1.1
-----------
- Retained account ID, telephone, email, payment method and order totals.
- Added the complete delivery address with a fallback for older order data.
- Added product option and value details beneath each ordered product.
- Added Print Invoice and Packing Slip buttons using standard Phoenix pages.
- Reorganised the result into five compact, easy-to-scan columns.
- Added proper pagination at 50 orders per page and a result count.
- Expanded search to include company and email fields.
- Added strict scalar input handling and date validation for PHP 8.2.
- Prevented warnings when an order has no recorded products or totals.
- Removed the root-relative catalog product link.
- Moved all visible page wording into a dedicated language file.
- Escaped database content before HTML output.
- Added deterministic product ordering.
- Removed the lingering Admin menu array reference.
- Added Mort-Lemur headers and rewritten installation instructions.
- No core changes and no additional database tables.
