diff -r 000000000000 -r 4eba9c11703f web/Zend/Barcode/Object/Identcode.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/Zend/Barcode/Object/Identcode.php Mon Dec 13 18:29:26 2010 +0100 @@ -0,0 +1,95 @@ +_barcodeLength = 12; + $this->_mandatoryChecksum = true; + } + + /** + * Retrieve text to display + * @return string + */ + public function getTextToDisplay() + { + return preg_replace('/([0-9]{2})([0-9]{3})([0-9]{3})([0-9]{3})([0-9])/', + '$1.$2 $3.$4 $5', + $this->getText()); + } + + /** + * Check allowed characters + * @param string $value + * @return string + * @throw Zend_Barcode_Object_Exception + */ + public function validateText($value) + { + $this->_validateText($value, array('validator' => $this->getType())); + } + + /** + * Get barcode checksum + * + * @param string $text + * @return int + */ + public function getChecksum($text) + { + $this->_checkText($text); + $checksum = 0; + + for ($i = strlen($text); $i > 0; $i --) { + $checksum += intval($text{$i - 1}) * (($i % 2) ? 4 : 9); + } + + $checksum = (10 - ($checksum % 10)) % 10; + + return $checksum; + } +}