From 4bbff18f76c601324b865a2084b3d1e4bf8dc7e5 Mon Sep 17 00:00:00 2001 From: Lester Caine Date: Wed, 3 Jun 2026 21:12:03 +0100 Subject: stock: preserve movement type when CSV import updates reference xref importCsv() was hardcoding item='TRANS' on the reference row, overwriting an ORDER or REQN type already stored by edit_movement.php before the upload. Now fetches the existing item and preserves it; TRANS only used for new rows. Co-Authored-By: Claude Sonnet 4.6 --- includes/classes/StockMovement.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'includes') diff --git a/includes/classes/StockMovement.php b/includes/classes/StockMovement.php index 6ad7011..747099a 100644 --- a/includes/classes/StockMovement.php +++ b/includes/classes/StockMovement.php @@ -347,13 +347,15 @@ class StockMovement extends LibertyContent { $orderDateStr = trim( $data[2] ?? '' ); $recvDateStr = trim( $data[3] ?? '' ); if( $ref !== '' ) { - $existingXrefId = $this->mDb->getOne( - "SELECT `xref_id` FROM `".BIT_DB_PREFIX."liberty_xref` + $existingRow = $this->mDb->getRow( + "SELECT `xref_id`, `item` FROM `".BIT_DB_PREFIX."liberty_xref` WHERE `content_id` = ? AND `item` IN ('REQN','TRANS','ORDER') ORDER BY `xorder`", [ $this->mContentId ] ); - $refHash = [ 'content_id' => $this->mContentId, 'item' => 'TRANS', 'xkey' => $ref, 'edit' => $from ]; - $existingXrefId ? $refHash['xref_id'] = $existingXrefId : $refHash['fAddXref'] = 1; + // Preserve existing type if already set; default to TRANS for new rows + $refItem = $existingRow['item'] ?? 'TRANS'; + $refHash = [ 'content_id' => $this->mContentId, 'item' => $refItem, 'xkey' => $ref, 'edit' => $from ]; + $existingRow ? $refHash['xref_id'] = $existingRow['xref_id'] : $refHash['fAddXref'] = 1; $this->storeXref( $refHash ); } // Order date (col 3) → xref.start_date -- cgit v1.3