<feed xmlns='http://www.w3.org/2005/Atom'>
<title>stock/includes, branch master</title>
<subtitle>Bitweaver stock package repository
</subtitle>
<id>https://git.rdm1.uk/stock/.git/atom?h=master</id>
<link rel='self' href='https://git.rdm1.uk/stock/.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/'/>
<updated>2026-06-21T10:20:08Z</updated>
<entry>
<title>Extend KLID enrichment to assembly tab on movement view</title>
<updated>2026-06-21T10:20:08Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-21T10:20:08Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=9a63cb32e863030d1bd7c0705e12fa83c0cf0d1f'/>
<id>urn:sha1:9a63cb32e863030d1bd7c0705e12fa83c0cf0d1f</id>
<content type='text'>
Apply the same linked_title suffix to the assembly xref group rows so
kitlocker components show their KLID there too. INNER JOIN on KLID means
assemblies (which have none) are untouched.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Show KLID in brackets on movement xref quantity line items</title>
<updated>2026-06-21T10:15:46Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-21T10:15:46Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=aa7304a1f1f23199a8011c2385b638653e19a687'/>
<id>urn:sha1:aa7304a1f1f23199a8011c2385b638653e19a687</id>
<content type='text'>
Extend the enrichBomDisplay JOIN to also fetch the KLID xref and append
it to linked_title for any component that has a kitlocker listing.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Append KLID in brackets to component title where available</title>
<updated>2026-06-21T09:01:03Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-21T09:01:03Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=8829bafaa683836e0ae16ead818b50ded9ec94f9'/>
<id>urn:sha1:8829bafaa683836e0ae16ead818b50ded9ec94f9</id>
<content type='text'>
Add klid correlated subquery to both load() and getList(), then append
it in getTitleFromHash(). Enrich title in the getList() foreach so list
pages see the updated value without calling getTitleFromHash() themselves.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Fix ref_key not loading on edit; restrict movement type to ORDER/TRANS</title>
<updated>2026-06-16T07:39:59Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-16T07:39:59Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=894b67457d9272b3726790fa103332bf250d2a4b'/>
<id>urn:sha1:894b67457d9272b3726790fa103332bf250d2a4b</id>
<content type='text'>
Add ref_key (xkey) subquery to StockMovement::load() — it was present in
getList() but missing from load(), so the field always appeared blank on edit.
Filter edit_movement.php refTypes query to ORDER and TRANS only; REQN and
PBLD are created via their own dedicated entry points.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Link prebuild count in user_galleries to its PBLD movement record</title>
<updated>2026-06-15T10:53:20Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-15T10:53:20Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=0b7b199e6f60efc7fb29e8c0f0515ae6562b27c4'/>
<id>urn:sha1:0b7b199e6f60efc7fb29e8c0f0515ae6562b27c4</id>
<content type='text'>
Add prebuild_content_id to StockAssembly::getList() (most recent PBLD
movement for the assembly owner) and link both the Prebuilt label and
count in user_galleries.tpl to view_movement.php?content_id=.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Add parsed_data, counts and kitlocker data to StockAssembly::getList()</title>
<updated>2026-06-14T15:07:55Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-14T15:07:55Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=7d6e3a14327c738ed70b9e167a1859c0438d8bfe'/>
<id>urn:sha1:7d6e3a14327c738ed70b9e167a1859c0438d8bfe</id>
<content type='text'>
- getList() now provides per-row: parsed_data (via parseDataHash),
  part_number (#SUP first), klid, component_count (BOM lines),
  prebuild_count (PBLD kit total for assembly owner) as correlated
  subqueries — removes need for supplementary queries in callers
- list_assemblies.php: remove batch query block now redundant
- user_galleries.tpl: show parsed_data in .content div; dl counts
  moved to panel-footer with margin-bottom:0; klid in panel-title
  second line; panel-heading tidied to title only

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Add multi-user (kitelf) stock filtering and PBLD prebuild movement type</title>
<updated>2026-06-14T09:49:24Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-14T09:49:24Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=e8aa652c4f0d2f780171d7bbd2c351c05a1025e9'/>
<id>urn:sha1:e8aa652c4f0d2f780171d7bbd2c351c05a1025e9</id>
<content type='text'>
- list_movements/list_stock: filter by user_id (kitelf) with breadcrumb
  navigation; creator names in list_movements are clickable filter links
- list_movements: unified part_content_id replaces separate
  assembly_content_id/component_content_id URL params; type-aware
  breadcrumb and qty column (assembly kit count vs component qty)
- StockMovement::getList(): $partId/$partIsAsm collapse cmp/asm into one
  variable; unified part_qty/part_qty_type SELECT; PBLD added to all
  ref_type IN() lists and sort subqueries; lc.user_id added to SELECT
- New PBLD (Prebuild) movement type: add_prebuild.php/tpl creates PBLD
  movements (assemblies only, BOM exploded, optional note); add_requisition
  retired from UI; PBLD handled in edit/view with isBuild/isPbld flags;
  view/edit show Build Date/Completed labels for PBLD
- schema_inc.php: PBLD registered in stockmovement reference xref items
- view_movement.tpl: updated to &lt;header&gt;/&lt;section&gt; pattern with kitelf
  breadcrumb; getDirection() explicit for PBLD

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>stock: movement xref views use linked_title/linked_data; bomprt tidy; floaticon form fixes</title>
<updated>2026-06-12T16:38:28Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-12T16:38:28Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=3866f6c02cfae647d04e9123392b608e0d0aa3a6'/>
<id>urn:sha1:3866f6c02cfae647d04e9123392b608e0d0aa3a6</id>
<content type='text'>
StockMovement::loadXrefInfo() — drop xref_title/xref_data enrichment (now from
lc_linked JOIN); restore part_size/part_size_ext query; use array_map not array_column.

stockmovement view_xref_bom_item/bomprt_item — switch to linked_title/linked_data.
Movement bomprt qty: round(xkey/part_size, 3) of part_size (pieces-needed fraction).
Both bomprt templates: drop notes row; drop part_size_ext (PRT = integer parts, not VOL).

list_components: plain &lt;form&gt; (GET needs no CSRF), form-inline + form-group structure,
hidden-print on floaticon; hide-kitlocker checkbox properly spaced.
list_movements: hidden-print on floaticon div.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>stock: BOM view uses linked_title/linked_data; loadXrefInfo only enriches part_size</title>
<updated>2026-06-12T15:13:36Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-12T15:13:36Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=77483b34115f0f6f71cfdea3069c4aca1bb30a7e'/>
<id>urn:sha1:77483b34115f0f6f71cfdea3069c4aca1bb30a7e</id>
<content type='text'>
Component title and description in BOM view templates (view_xref_bom_item,
view_xref_bomprt_item, print_bom) now use linked_title/linked_data from the
lc_linked JOIN in loadContent() — same pattern as the supplier name fix.

StockAssembly::loadXrefInfo() drops the title/data enrichment loop (now redundant)
and only queries for part_size/part_size_ext from the PRT xref. array_column
replaced with array_map to reliably call ArrayAccess offsetGet on LibertyXref objects.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>stock: hide-kitlocker filter on list_components; fix supplier name in view_xref_sup_item</title>
<updated>2026-06-12T09:41:59Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-12T09:41:59Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=76308cf0c9fcf20f12f14c0231601eb6fd6c120f'/>
<id>urn:sha1:76308cf0c9fcf20f12f14c0231601eb6fd6c120f</id>
<content type='text'>
list_components defaults to hiding kitlocker components (KLID xref present) but keeps
those where the kitlocker contact is also the supplier (#SUP → SCREF='kitlocker') —
parts kitlocker supplies to elves. Filter checkbox in the search form, defaults on.

view_xref_sup_item: switch from xref_title (cross_ref_title = "Supplier") to linked_title
(liberty_content.title of the linked contact) so the contact name appears as the link text.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
