summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authorLester Caine <lester@lsces.co.uk>2026-06-03 20:42:38 +0100
committerLester Caine <lester@lsces.co.uk>2026-06-03 20:42:38 +0100
commitceebb1000db2ce8643edde2e72f202b0aeda1691 (patch)
tree81bc1ae2528f0f2a75bf0e96567f396201c90786 /includes
parent48b2cf7753d4c83b73453e32c47af38b911be582 (diff)
downloadstock-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>
Diffstat (limited to 'includes')
-rw-r--r--includes/classes/StockMovement.php28
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 );