<feed xmlns='http://www.w3.org/2005/Atom'>
<title>stock/list_movements.php, 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-30T09:17:40Z</updated>
<entry>
<title>list_movements: sign REQN/PBLD qty negative, show net total in Qty header</title>
<updated>2026-06-30T09:17:40Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-30T09:17:40Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=fa2f5d190457ab0f44965f1b10d4f3c188107687'/>
<id>urn:sha1:fa2f5d190457ab0f44965f1b10d4f3c188107687</id>
<content type='text'>
When filtered by part_content_id, outbound movements (REQN, PBLD) now display
with a leading minus sign. The Qty column header shows the net stock balance
across all movements for the part, consistent with view_component stock levels.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Persist filter params through smartlink sort clicks on list pages</title>
<updated>2026-06-21T09:10:17Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-21T09:10:17Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=d494e495715e1dca056a05442e83dfb16a0c0354'/>
<id>urn:sha1:d494e495715e1dca056a05442e83dfb16a0c0354</id>
<content type='text'>
Populate listInfo['parameters'] on list_movements, list_assemblies, and
list_components so icontrol carries part_content_id/ref_type/user_id/
gallery_id/hide_kitlocker through sort URLs. Wire icontrol=$listInfo on
list_movements.tpl sort headers which were previously missing it.

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: 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: PCK/SHT fractional display, movement qty summing, import qty type</title>
<updated>2026-06-09T10:15:23Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-09T10:15:23Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=1de8f2f90284c375449326285f0b87e5e700a0c8'/>
<id>urn:sha1:1de8f2f90284c375449326285f0b87e5e700a0c8</id>
<content type='text'>
Display fixes:
- list_stock, list_movements, view_component: PCK stock divides by
  pack_size for fractional strip display; SHT shows 2 decimal places
- list_movements: pack_size fetched per component for PCK display
- All fractional formats use %.2f consistently

StockMovement::getList component filter:
- Replace INNER JOIN on xcmp with EXISTS subquery to avoid duplicate
  rows when a component appears multiple times in a movement BOM
- cmp_qty now SUMs all matching xref rows so multi-assembly RQs
  show total quantity rather than silently dropping duplicate rows

Movement BOM edit templates:
- stockmovement/edit_xref_bom_item.tpl: proper edit form for SGL/SHT/VOL
  lines linking back to view_component
- stockmovement/edit_xref_bompck_item.tpl: same for PCK with pack size hint

Import:
- ImportSimpleComponent: columns 6/7 (qty_type, qty_value) wired up;
  PCK/SHT/VOL writes qty xref so movement CSV imports pick up default type

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Component movement history: filter list_movements by component_content_id</title>
<updated>2026-06-02T17:42:47Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-02T17:42:47Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=390f1533a283a584048ecc2a17a110d818af69ea'/>
<id>urn:sha1:390f1533a283a584048ecc2a17a110d818af69ea</id>
<content type='text'>
StockMovement::getList() joins xcmp when component_content_id is set,
adding cmp_qty/cmp_qty_type columns per row.
list_movements.php looks up component title; template shows it in the
header, adds a Qty column, and provides a back link.
view_component Stock tab now links to filtered movement list.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Stock/movement assembly linkage, view icons, and list_stock fixes</title>
<updated>2026-06-01T11:34:02Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-01T11:34:02Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=6b30ab3d3ec23bd3f6056f2d1685159487383378'/>
<id>urn:sha1:6b30ab3d3ec23bd3f6056f2d1685159487383378</id>
<content type='text'>
- add_requisition: store ASSEMBLY xref on new movements so they can be filtered by assembly
- StockMovement::getList: add assembly_content_id filter via ASSEMBLY xref join
- list_movements: pass assemblyContentId to Smarty
- view_assembly.tpl: add View Stock and View Movements icons filtered by assembly
- list_stock: guard CAST with SIMILAR TO on xkey join; fix %.3g scientific notation to %.0f

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Rewrite StockMovement as pure LibertyContent; CSV import; bom grid</title>
<updated>2026-06-01T08:21:30Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-01T08:21:30Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=54efaa8253c48fb5597b5e477b20a4127365d7c7'/>
<id>urn:sha1:54efaa8253c48fb5597b5e477b20a4127365d7c7</id>
<content type='text'>
stock_movement/stock_movement_item tables retired. StockMovement now a
pure LibertyContent subclass — direction from reference xref (REQN=out,
TRANS/ORDER=in), received state from lc.event_time, items as quantity
xrefs with explicit xorder. loadXrefList() enriches component names.

schema_inc.php: full stockmovement xref seed — reference group
(REQN/TRANS/ORDER) and quantity group (SGL/PCK/SHT/VOL, bom/bompck
templates). MOV item removed from stockcomponent/stockassembly seed.

edit_movement.php: type selector on create from DB; CSV upload parses
header (from/ref/date) and component lines using component xref for
default qty type.

list_movements.php/tpl: rebuilt; ref_type filter; ref_type/ref_key/
received columns via xref subquery.

view_movement.php/tpl: cleaned up; xref group tabs, allow_edit=false.
stockmovement/ bom templates added. movement_lookup_inc simplified.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Add list_movements page and redirect after movement save</title>
<updated>2026-05-27T17:30:13Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-05-27T17:30:13Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=e9dfcb6700ba7f76ed4cfcd71ac2fda8ddb01151'/>
<id>urn:sha1:e9dfcb6700ba7f76ed4cfcd71ac2fda8ddb01151</id>
<content type='text'>
list_movements.php shows all movements with direction/status filter
dropdowns and an Edit button per row. Menu gains a List Movements
link. edit_movement.php now redirects to list_movements.php after
a successful save rather than reloading the edit page.

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