Sweep all .cshtml files for encoding corruption; add pre-commit guard

Replace all corruption variants with HTML entities across 226 view files:
- 3-char UTF-8-as-Win1252 sequences (ae-corruption)
- Standalone smart/curly quotes that break C# Razor expressions
- Partially re-corrupted variants where the 3rd byte was normalised to ASCII

tools/Fix-Encoding.ps1: re-runnable sweep; uses [char] code points so the
script itself never contains a literal non-ASCII character; supports -DryRun

.githooks/pre-commit: blocks commits containing the ae-corruption byte
signature (xc3xa2xe2x82xac); git core.hooksPath = .githooks so the
hook is repo-committed and active for all future work on this machine.

Build clean; 225 unit tests pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-20 21:37:10 -04:00
parent 21b39161a3
commit a0bdd2b5b4
252 changed files with 1785 additions and 1633 deletions
@@ -27,7 +27,7 @@
<p>
The PO workflow is designed to eliminate double data entry. When you receive a PO, stock levels
update automatically for any linked inventory items. When you are ready to pay, you can convert
the received PO directly into a vendor bill in Accounts Payable all the line items, quantities,
the received PO directly into a vendor bill in Accounts Payable &mdash; all the line items, quantities,
and prices carry over without retyping.
</p>
<p>
@@ -46,7 +46,7 @@
<li class="mb-2">Select the <strong>Vendor</strong> you are ordering from. The vendor's contact information and default payment terms are pulled in automatically.</li>
<li class="mb-2">Set the <strong>Order Date</strong> (defaults to today) and an optional <strong>Expected Delivery Date</strong>.</li>
<li class="mb-2">
Add line items click <strong>Add Line</strong> for each product you are ordering:
Add line items &mdash; click <strong>Add Line</strong> for each product you are ordering:
<ul class="mt-1">
<li>Start typing an item name in the search field to look up items from your inventory. If the item exists, select it to link the PO line directly to your stock record.</li>
<li>If the item is not in your inventory yet (a new product), enter a description manually. You can create the inventory item later after receiving the goods.</li>
@@ -54,7 +54,7 @@
</ul>
</li>
<li class="mb-2">Enter a <strong>Shipping Cost</strong> if the vendor charges for delivery. This is added to the PO total.</li>
<li class="mb-2">Add any <strong>Notes for the Vendor</strong> these appear on the printed PO document.</li>
<li class="mb-2">Add any <strong>Notes for the Vendor</strong> &mdash; these appear on the printed PO document.</li>
<li class="mb-2">Add any internal <strong>Notes</strong> for your own team (not shown to the vendor).</li>
<li class="mb-2">Click <strong>Save PO</strong>. The PO is saved as a Draft.</li>
</ol>
@@ -126,7 +126,7 @@
</h2>
<p>
After a PO has been received, you can convert it into a vendor bill in Accounts Payable with
one click no need to re-enter any of the line item details.
one click &mdash; no need to re-enter any of the line item details.
</p>
<ol class="mb-3">
<li class="mb-2">Open the received PO and click <strong>Create Bill</strong>.</li>
@@ -138,7 +138,7 @@
<li>The vendor's payment terms and a calculated due date</li>
</ul>
</li>
<li class="mb-2">Review the bill confirm the due date, check that expense accounts are correct, and add any notes.</li>
<li class="mb-2">Review the bill &mdash; confirm the due date, check that expense accounts are correct, and add any notes.</li>
<li class="mb-2">Click <strong>Save Bill</strong>. The bill is saved as a Draft in Accounts Payable.</li>
<li class="mb-2">When you have verified the bill against the vendor's paper invoice, click <strong>Mark as Open</strong> to post it to your AP ledger. See the <a asp-controller="Help" asp-action="AccountsPayable">Accounts Payable help page</a> for details.</li>
</ol>