From 321c1c9d8f58667d747d839b2dd25579a8ad6f75 Mon Sep 17 00:00:00 2001 From: Joe Hunt Date: Sat, 13 Jun 2009 09:44:15 +0000 Subject: [PATCH] Changed next reference method to also include partly alpha characters in front, fi. WA036 increments to WA037 --- CHANGELOG.txt | 4 ++++ includes/references.inc | 16 +++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 00d347d..33e87ed 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -19,6 +19,10 @@ Legend: ! -> Note $ -> Affected files +13-Jun-2009 Joe Hunt +! Changed next reference method to also include partly alpha characters in front, fi. WA036 increments to WA037 +$ /includes/references.inc + 12-Jun-2009 Joe Hunt ! Code clean-up $ /gl/includes/db/gl_db_trans.inc diff --git a/includes/references.inc b/includes/references.inc index 6f3bd89..f4be861 100644 --- a/includes/references.inc +++ b/includes/references.inc @@ -56,10 +56,20 @@ class references function increment($reference) { - if (is_numeric($reference)) - return $reference + 1; + // New method done by Pete. So f.i. WA036 will increment to WA037 and so on. + // If $reference is trailed by digits, and digits only, + // extract them and add 1, then put the alpha prefix back on + // NB. preg_match returns 1 if the regex matches completely + // also $result[0] holds entire string, 1 the first captured, 2 the 2nd etc. + if (preg_match('/^(.*?)(\d+)$/', $reference, $result) == 1) + { + $dig_count = strlen($result[2]); // How many digits? eg. 0003 = 4 + $fmt = '%0' . $dig_count . 'd'; // Make a format string - leading zeroes + $nextval = $result[1] . sprintf($fmt, intval($result[2] + 1)); // Add one on, and put prefix back on + return $nextval; + } else - return $reference; + return $reference; } //------------------------------------ -- 2.30.2