summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLester Caine <lester@lsces.co.uk>2026-06-03 20:39:40 +0100
committerLester Caine <lester@lsces.co.uk>2026-06-03 20:39:40 +0100
commit48b2cf7753d4c83b73453e32c47af38b911be582 (patch)
treebf26e279a9b9f21e748b594d9ed29599cc7d1f9c
parentfcd97be1f1fd1587cc9954adfa84447c4b98d9c9 (diff)
downloadstock-48b2cf7753d4c83b73453e32c47af38b911be582.tar.gz
stock-48b2cf7753d4c83b73453e32c47af38b911be582.tar.bz2
stock-48b2cf7753d4c83b73453e32c47af38b911be582.zip
stock: add Ordered/Received sort and ref_start_date to list_movements
- StockMovement::getList() adds ref_start_date correlated subquery from liberty_xref.start_date on the reference row - event_time sort handled explicitly (lc. prefix needed for Firebird) - list_movements.tpl: Ordered column, sortable Received column, colspan fix Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
-rw-r--r--includes/classes/StockMovement.php16
-rw-r--r--templates/list_movements.tpl6
2 files changed, 16 insertions, 6 deletions
diff --git a/includes/classes/StockMovement.php b/includes/classes/StockMovement.php
index 6e07cbf..ddeab21 100644
--- a/includes/classes/StockMovement.php
+++ b/includes/classes/StockMovement.php
@@ -238,9 +238,14 @@ class StockMovement extends LibertyContent {
$this->getServicesSql( 'content_list_sql_function', $selectSql, $joinSql, $whereSql, $bindVars );
- $orderby = !empty( $pListHash['sort_mode'] )
- ? " ORDER BY ".$this->mDb->convertSortmode( $pListHash['sort_mode'] )
- : ' ORDER BY lc.`last_modified` DESC';
+ $sortMode = $pListHash['sort_mode'] ?? '';
+ $orderby = match( $sortMode ) {
+ 'event_time_asc' => ' ORDER BY lc.event_time ASC',
+ 'event_time_desc' => ' ORDER BY lc.event_time DESC',
+ default => !empty( $sortMode )
+ ? ' ORDER BY '.$this->mDb->convertSortmode( $sortMode )
+ : ' ORDER BY lc.last_modified DESC',
+ };
if( !empty( $whereSql ) ) {
$whereSql = substr_replace( $whereSql, ' WHERE ', 0, 4 );
@@ -267,7 +272,10 @@ class StockMovement extends LibertyContent {
ORDER BY x.`xorder`) AS ref_type,
(SELECT FIRST 1 x.`xkey` FROM `{$X}liberty_xref` x
WHERE x.`content_id` = lc.`content_id` AND x.`item` IN ('REQN','TRANS','ORDER')
- ORDER BY x.`xorder`) AS ref_key
+ ORDER BY x.`xorder`) AS ref_key,
+ (SELECT FIRST 1 x.`start_date` FROM `{$X}liberty_xref` x
+ WHERE x.`content_id` = lc.`content_id` AND x.`item` IN ('REQN','TRANS','ORDER')
+ ORDER BY x.`xorder`) AS ref_start_date
$cmpQtySelect
$selectSql
FROM `{$X}liberty_content` lc
diff --git a/templates/list_movements.tpl b/templates/list_movements.tpl
index 3839641..bc0bc34 100644
--- a/templates/list_movements.tpl
+++ b/templates/list_movements.tpl
@@ -42,7 +42,8 @@
<th>{tr}Type{/tr}</th>
<th>{tr}Ref{/tr}</th>
{if $componentContentId}<th class="text-right">{tr}Qty{/tr}</th>{/if}
- <th>{tr}Received{/tr}</th>
+ <th>{tr}Ordered{/tr}</th>
+ <th>{smartlink ititle="Received" isort="event_time_desc" ifile="list_movements.php" ipackage="stock"}</th>
<th>{smartlink ititle="Date" isort="created_desc"}</th>
<th>{tr}Creator{/tr}</th>
{if $gBitUser->hasPermission('p_stock_create')}<th></th>{/if}
@@ -57,6 +58,7 @@
{if $componentContentId}
<td class="text-right">{$mov.cmp_qty|string_format:"%.0f"} {$mov.cmp_qty_type|escape}</td>
{/if}
+ <td>{if $mov.ref_start_date}{$mov.ref_start_date|bit_short_date}{else}—{/if}</td>
<td>{if $mov.event_time}{$mov.event_time|bit_short_date}{else}—{/if}</td>
<td>{$mov.created|bit_short_date}</td>
<td>{$mov.real_name|default:$mov.login|escape}</td>
@@ -68,7 +70,7 @@
{/if}
</tr>
{foreachelse}
- <tr><td colspan="7" class="norecords">{tr}No movements found.{/tr}</td></tr>
+ <tr><td colspan="8" class="norecords">{tr}No movements found.{/tr}</td></tr>
{/foreach}
</tbody>
</table>