diff options
| author | Lester Caine <lester@lsces.co.uk> | 2026-06-03 20:42:38 +0100 |
|---|---|---|
| committer | Lester Caine <lester@lsces.co.uk> | 2026-06-03 20:42:38 +0100 |
| commit | ceebb1000db2ce8643edde2e72f202b0aeda1691 (patch) | |
| tree | 81bc1ae2528f0f2a75bf0e96567f396201c90786 | |
| parent | 48b2cf7753d4c83b73453e32c47af38b911be582 (diff) | |
| download | stock-ceebb1000db2ce8643edde2e72f202b0aeda1691.tar.gz stock-ceebb1000db2ce8643edde2e72f202b0aeda1691.tar.bz2 stock-ceebb1000db2ce8643edde2e72f202b0aeda1691.zip | |
stock: CSV import order date → xref.start_date; add optional received date
Header line now: from, ref, order_date(dd/mm/yy), received_date(dd/mm/yy)
- col 3 (order date) stored in liberty_xref.start_date on reference row
- col 4 (received date, optional) stored in lc.event_time
Existing 3-column CSVs still work unchanged.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
| -rw-r--r-- | includes/classes/StockMovement.php | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/includes/classes/StockMovement.php b/includes/classes/StockMovement.php index ddeab21..1338af3 100644 --- a/includes/classes/StockMovement.php +++ b/includes/classes/StockMovement.php @@ -336,9 +336,10 @@ class StockMovement extends LibertyContent { while( ( $data = fgetcsv( $handle, 1000, ',', '"', '' ) ) !== false ) { $rowNum++; if( $rowNum === 1 ) { - $from = trim( $data[0] ?? '' ); - $ref = trim( $data[1] ?? '' ); - $dateStr = trim( $data[2] ?? '' ); + $from = trim( $data[0] ?? '' ); + $ref = trim( $data[1] ?? '' ); + $orderDateStr = trim( $data[2] ?? '' ); + $recvDateStr = trim( $data[3] ?? '' ); if( $ref !== '' ) { $existingXrefId = $this->mDb->getOne( "SELECT `xref_id` FROM `".BIT_DB_PREFIX."liberty_xref` @@ -349,8 +350,25 @@ class StockMovement extends LibertyContent { $existingXrefId ? $refHash['xref_id'] = $existingXrefId : $refHash['fAddXref'] = 1; $this->storeXref( $refHash ); } - if( $dateStr !== '' ) { - $parts = explode( '/', $dateStr ); + // Order date (col 3) → xref.start_date + if( $orderDateStr !== '' ) { + $parts = explode( '/', $orderDateStr ); + if( count( $parts ) === 3 ) { + $year = (int)$parts[2] < 100 ? 2000 + (int)$parts[2] : (int)$parts[2]; + $ts = mktime( 0, 0, 0, (int)$parts[1], (int)$parts[0], $year ); + if( $ts ) { + $this->mDb->query( + "UPDATE `".BIT_DB_PREFIX."liberty_xref` + SET `start_date` = ? + WHERE `content_id` = ? AND `item` IN ('REQN','TRANS','ORDER')", + [ date( 'Y-m-d H:i:s', $ts ), $this->mContentId ] + ); + } + } + } + // Received date (col 4) → lc.event_time + if( $recvDateStr !== '' ) { + $parts = explode( '/', $recvDateStr ); if( count( $parts ) === 3 ) { $year = (int)$parts[2] < 100 ? 2000 + (int)$parts[2] : (int)$parts[2]; $ts = mktime( 0, 0, 0, (int)$parts[1], (int)$parts[0], $year ); |
