Station flow: ID first, EAN optional, re-measure by ID

Every run opens with the freshly allocated L#### and then asks for
the EAN, which Enter skips. Typing an existing ID re-measures that
lamp with all identification and rated values pre-filled, which also
rewrites old bundles in the current metrics format. Unused IDs are
never burned since numbering derives from written bundles.
This commit is contained in:
2026-07-09 18:06:39 +07:00
parent 6140e1d4c9
commit 7ef2960254
2 changed files with 49 additions and 31 deletions
+7 -3
View File
@@ -97,9 +97,13 @@ end to end. Every lamp gets an internal ID (L0001, L0002, ...) as primary key;
the EAN barcode is optional metadata, so one barcode can cover daylight/warm
white variants (distinct IDs + variant field) and unbranded lamps work too.
Per lamp: scan the box (or 'n' for no barcode), the EAN is checksum-validated
and resolved to manufacturer/model (previously measured lamps, local cache,
then upcitemdb.com; GS1-restricted 20-29 barcodes are flagged as
Every run opens with a freshly allocated ID (the ID only becomes real once a
bundle is written, so aborting never burns a number). Then: scan the box's EAN
(optional, Enter skips it), or type an existing ID like L0004 to re-measure
that lamp with everything pre-filled, which also rewrites its bundle in the
current metrics format. Scanned EANs are checksum-validated and resolved to
manufacturer/model (previously measured lamps, local cache, then
upcitemdb.com; GS1-restricted 20-29 barcodes are flagged as
retailer-internal), lamps already measured under the same EAN are offered for
re-measurement, you confirm the identification and type the ADVERTISED values
from the packaging (flux, CCT, power, CRI, lifetime, equivalent W -> stored