/* functionality: Returns a new sequence number input : SEQID (string) - the seqencer dmsid return : string - new sequencer number */ function nextSeqNumber(SEQID){ var seqGenerator = loadItem(SEQID); if(seqGenerator === null) { return null; } var prefix = seqGenerator.PREFIX; var sufix = seqGenerator.SUFIX; var stepSize = seqGenerator.STEP_SIZE; var includePadding = seqGenerator.ZEROPAD_AUTOGENERATED_SEQUENCE; var sequenceNo = parseFloat(seqGenerator.CURRENT_SEQUENCE_NUMBER); //update the project's next avalible number seqGenerator.CURRENT_SEQUENCE_NUMBER = ''+(sequenceNo+stepSize); var adjustedNo = ''; if(includePadding === true){ adjustedNo = '' + zeroFill(sequenceNo,padding, '0'); } else{ adjustedNo = '' + sequenceNo; } if(prefix !== null){adjustedNo = prefix + adjustedNo;} if(sufix !== null){adjustedNo = adjustedNo + sufix;} return adjustedNo; } /* functionality: Pads a string as instructed input : number(string) initial value width(int) total length of the number pChar(string) padding character return : string - new padded number */ function zeroFill(number, width, pChar) { width -= ('' + number).length; if ( width > 0 ) { return new Array( width + (/\./.test( number ) ? 2 : 1) ).join( pChar ) + number; } return number; }