Scrap ERP v1.12.8 — Item Profiles and Stock Ledgers

UPDATE AN EXISTING INSTALLATION
1. Back up your current scrap-erp folder and database.
2. Upload this complete scrap-erp folder and replace matching application files.
3. Keep your existing storage/config.php and storage/installed.lock.
4. Refresh Inventory, then click an item code.
No database update is required for this release.

NEW INSTALLATION
Upload the scrap-erp folder, create an empty MySQL database, and open install.php.
Follow the installer to set your database and owner credentials.

INCLUDED
All files from v1.12.7 plus clickable Inventory item codes and Item Profiles.
Profiles show current quantity, average cost, today rate and stock value.
Tabs: Stock Ledger, Purchases, Sales, Processing, Stock Loss, Adjustments.
Purchase and sale prices come from posted invoice lines. Sale stock cost and
margin are separate from selling price. Margin excludes expenses and stock loss.
Processing, loss and adjustment values use recorded stock cost.
Physical count details include unchanged counts; legacy counts without physical
snapshots display a dash for the unavailable recorded/physical quantities.
Dates use document dates; latest first, then newest record for equal dates.
Ledger balances are calculated before filtering/pagination. Prices display to
two decimals; totals preserve stored costs, so display rounding may differ.
Only existing stock movements are displayed; viewing creates no new entries.
Draft invoices do not affect stock and are excluded from the profile.

VALIDATION
PHP 8.2 syntax checks passed. Local SQLite/PHP tests covered populated tabs,
invoice prices, stock quantity/value reconciliation, company isolation,
physical count snapshots, date filters, invalid dates and pagination balances.
Not tested against your hosted MySQL database or in a graphical browser.
