CheckDigitGenerator::generateCheckDigit PHP Method

generateCheckDigit() public method

public generateCheckDigit ( )
    public function generateCheckDigit()
    {
        $sum = 0;
        $string = $this->string_for_conversion . $this->salt;
        $string = strrev($string);
        for ($i = 0; $i < strlen($string); ++$i) {
            $char = str_replace(range('A', 'Z'), range('1', '26'), $string[$i]);
            $sum += array_sum(str_split($char * pow(2, ($i + 1) % 2)));
        }
        return $sum * 9 % 10;
    }

Usage Example

Example #1
0
 /**
  * @param $event
  */
 public function getUniqueCodeForCviEvent($event)
 {
     $eventUniqueCodeId = \UniqueCodeMapping::model()->findAllByAttributes(array('event_id' => $event->id));
     $eventUniqueCode = \UniqueCodes::model()->findByPk($eventUniqueCodeId[0]->unique_code_id);
     $salt = isset(\Yii::app()->params['portal']['credentials']['client_id']) ? \Yii::app()->params['portal']['credentials']['client_id'] : '';
     $check_digit1 = new \CheckDigitGenerator(\Yii::app()->params['institution_code'] . $eventUniqueCode->code, $salt);
     $check_digit2 = new \CheckDigitGenerator($eventUniqueCode->code . $event->episode->patient->dob, $salt);
     $finalEventUniqueCode = \Yii::app()->params['institution_code'] . $check_digit1->generateCheckDigit() . '-' . $eventUniqueCode->code . '-' . $check_digit2->generateCheckDigit();
     return $finalEventUniqueCode;
 }
All Usage Examples Of CheckDigitGenerator::generateCheckDigit