X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Freferences.inc;h=f4be86173bfb8fafe956854f7f33a2f2d8beea2b;hb=31c79a2d7cc29c18ac1bfa92cf070857a5b9fe98;hp=6f3bd8916ec9b61e5357a2e4312896bbd62f30eb;hpb=d567a10b7925c8bb97c734e213d6651a979af29d;p=fa-stable.git diff --git a/includes/references.inc b/includes/references.inc index 6f3bd891..f4be8617 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; } //------------------------------------