- SV-505 — Added a "Request Return" button to the order detail page, using the same conditions as the order list action (return feature enabled, and the order still inside the configured return window). Return availability moved into the new Block/Order/ReturnRequest.php trait, shared by Block/Order/Lister.php and Block/Order/Details.php; Block/Base/Details.php gained a canRequestReturn() default of false so the shared base/details/header-buttons.phtml template stays safe on the invoice, delivery and quotation detail pages. Order detail blocks now select DocDate, which the window check needs. - SV-501 — Return quantities are normalised in Helper/RmaCreateData.php before use. Anything non-numeric counts as nothing to return: PHP 8 compares a non-numeric string to 0 as a string, so 'NaN' > 0 was true and the value reached the total calculations, where it threw a TypeError that surfaced as the generic error message. - Return quantities are additionally capped at the Quantity the order line actually contains. The form's max attribute was previously the only limit, so a crafted post could return more than was ordered. The cap does not account for quantities returned on earlier requests for the same order. Added unit tests under Test/Unit/ — the first in this module.