<feed xmlns='http://www.w3.org/2005/Atom'>
<title>stock/admin, 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-14T09:49:24Z</updated>
<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: merge stgrp xrefs into kitlocker group at data level; revert stgrp template tag; drop sgGroup stash from component templates</title>
<updated>2026-06-11T09:42:10Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-11T09:42:10Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=51195f3ae4cbc9ce3ae6f6054e75a72fdf0a5e32'/>
<id>urn:sha1:51195f3ae4cbc9ce3ae6f6054e75a72fdf0a5e32</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>stock: add kitlocker gallery — view_kitlocker.php, stock_fixed_grid_inc.tpl, view_xref_kitlocker_group.tpl; stgrp getList filter; stgrp template field set to kitlocker</title>
<updated>2026-06-10T08:16:33Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-10T08:16:33Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=8566070da24cd53845c64cdf2cd2104c847e450c'/>
<id>urn:sha1:8566070da24cd53845c64cdf2cd2104c847e450c</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>stock: remove gallery layout machinery — drop pagination constants, getLayout/getAllLayouts, per-page config, admin UI; simplify mod_components and display inc</title>
<updated>2026-06-10T07:18:45Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-10T07:18:45Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=0582e0b40f3440e8ec4c95c99501019e6933e20b'/>
<id>urn:sha1:0582e0b40f3440e8ec4c95c99501019e6933e20b</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>stock: rename PCK→PRT (fractional parts), add PCK as ordering pack-size tag; rename pack_size→part_size; bompck templates→bomprt; strip verbose labels (fraction), (H x W)</title>
<updated>2026-06-10T06:11:53Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-10T06:11:53Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=4d24ef4733a06525f943e34ba0e85b69c7871965'/>
<id>urn:sha1:4d24ef4733a06525f943e34ba0e85b69c7871965</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>stock: requisition system, movement BOM editor, autocomplete dropdowns</title>
<updated>2026-06-08T19:56:56Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-08T19:56:56Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=a838a2d3963738b2e9bc496b31e078ead79d4a43'/>
<id>urn:sha1:a838a2d3963738b2e9bc496b31e078ead79d4a43</id>
<content type='text'>
Requisitions:
- add_requisition.php: create REQN movements linked to assemblies or
  kitlocker components; Ordered date stored on REQN xref start_date
- ASSEMBLY xref group registered in schema (sort_order=1, template=assembly);
  ASSEMBLY item registered with multiple=1 for future multi-item reqns
- StockMovement::loadXrefInfo() enriches assembly group rows with
  linked_title/linked_desc from liberty_content
- view_xref_assembly_group/item templates: Assembly tab with qty, title
  link, type; Add item form on edit_movement for REQNs; hidden on I-direction
- view_movement/edit_movement: isReqn flag hides assembly tab and type
  selector on ORDER/TRANS; add another assembly from edit_movement

BOM editor:
- stockmovement/view_xref_bom_group: Add component links to new
  add_movement_component.php instead of generic liberty/add_xref.php
- add_movement_component.php/.tpl: movement-aware add component page;
  uses movement_lookup_inc, STOCKMOVEMENT_CONTENT_TYPE_GUID, sequential
  xorder, redirects back to edit_movement

Autocomplete dropdowns (replace &lt;select&gt; everywhere):
- add_requisition: hidden+text+dropdown widget; KLID in JSON for matching
- add_supplier: AJAX contact lookup replaces static supplier list
- list_stock: assembly selector replaced with autocomplete dropdown
- edit_movement: From field proper dropdown replacing datalist;
  Movement Type radio fixed (was reading non-existent mInfo[reference])
- view_xref_assembly_group: Add item inline form with same widget

Import:
- ImportKitlockerAssemblies: upsert xrefs on reload; KLID/KLSGL/KL3M
  now stored on both assemblies and components (not assembly-only)
- StockComponent::getList: kitlocker_only filter via EXISTS(KLID xref)

list_movements: Add Requisition icon alongside Add Movement in header

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Stock package: assembly/component model, package-level xref, imports, print BOM</title>
<updated>2026-06-07T15:51:15Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-07T15:51:15Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=9f5cb5855df61554e38a6da5d036bd78d421a2a9'/>
<id>urn:sha1:9f5cb5855df61554e38a6da5d036bd78d421a2a9</id>
<content type='text'>
- LibertyXrefInfo/LibertyXrefGroup: package-level guid support ('stock')
  so stgrp, supplier, kitlocker groups are shared across SA and SC
- schema_inc.php: stgrp group with KLG01-28, supplier consolidated to 'stock'
  level, kitlocker moved to 'stock', duplicate #PN/#PR removed
- StockAssembly::getList(): non_root_only and show_empty fixes for standalone
  assemblies (no gallery hierarchy)
- StockBase::loadXrefInfo(): instantiates with 'stock' package guid
- list_assemblies.php: gallery_id param, show_empty default for flat list
- edit_assembly.php: STOCKCOMPONENT_CONTENT_TYPE_GUID → string literal
- ImportSimpleComponent: SCREF lookup fixed (xkey not xkey_ext), #SUP row
  now carries PN/price/URL directly; #PN #PR #URL separate rows removed
- ImportKitlockerAssemblies, load_kitlocker_assemblies, load_component_list:
  new importers for KitlockerAssemblies.csv (A/C split) and Component List.csv
- print_bom.php + print_bom.tpl: read-only printable BOM (p_stock_view only)
  with auto window.print() on load
- component_order.tpl: print icon (floaticon), position number for print,
  hidden-print on form controls
- list_stock.tpl: print icon
- view_assembly.tpl: print icon → print_bom.php; permission gates tightened
- ipackage duplicate attributes removed from templates

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Add p_stock_expunge permission; gate movement delete button</title>
<updated>2026-06-05T16:49:37Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-05T16:49:37Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=ccb6c9dfdcee8d10fe845b08cea9f76fd3530a70'/>
<id>urn:sha1:ccb6c9dfdcee8d10fe845b08cea9f76fd3530a70</id>
<content type='text'>
p_stock_expunge at admin level. edit_movement.tpl delete button now
requires p_stock_expunge. Xref item delete gating (currently xrefAllowEdit
only) is a pending audit — same history-vs-hard-delete question as contact.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Rationalise stock permissions</title>
<updated>2026-06-05T16:31:25Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-05T16:31:25Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=b05452250feb5bdf78fced07e5a67c4ac4ff2d47'/>
<id>urn:sha1:b05452250feb5bdf78fced07e5a67c4ac4ff2d47</id>
<content type='text'>
p_stock_view: registered; p_stock_create/update: editors; p_stock_admin: admin.
Remove p_stock_list_assemblies (unused, covered by p_stock_view) and
p_stock_create_public_gal (unused, covered by p_stock_create).

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>stock: fix xref group sort_order collision in schema_inc.php</title>
<updated>2026-06-03T12:09:38Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-03T12:09:38Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=016f5d00f07a4e8c8f8c715f426afbd8c897286a'/>
<id>urn:sha1:016f5d00f07a4e8c8f8c715f426afbd8c897286a</id>
<content type='text'>
Separated group definitions by content type so sort_orders are explicit
and unambiguous. stockcomponent: supplier=1, quantity=2, values=3.
stockassembly: kitlocker=1, supplier=2, quantity/BOM=3 (no values group).
Values xref items remain stockcomponent-only.

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