<?php
-
+/**********************************************************************
+ Copyright (C) FrontAccounting, LLC.
+ Released under the terms of the GNU General Public License, GPL,
+ as published by the Free Software Foundation, either version 3
+ of the License, or (at your option) any later version.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
+***********************************************************************/
include_once($path_to_root . "/includes/db/references_db.inc");
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;
}
//------------------------------------