desta fix for invalid bankaccount numbers; add virtual key object

This commit is contained in:
Schneider Roland
2022-10-26 18:55:27 +02:00
parent 51e328d9d1
commit 821d852d5b
11 changed files with 542 additions and 233 deletions

View File

@@ -0,0 +1,36 @@
<?php
namespace common\models;
class HuBankAccountValidator
{
public function validate($bankAccount){
if ( !isset($bankAccount)){
return false;
}
$stripedBankAccount = preg_replace('/\s+/', '', $bankAccount);
if ( strlen($stripedBankAccount) != 24){
return false;
}
$arrayOfNumbers = str_split($stripedBankAccount);
$multipliers = [9,7,3,1];
$groups = [0,0,0];
for ( $i = 0; $i < count($arrayOfNumbers); $i++ ) {
$number = $arrayOfNumbers[$i];
$multiplier = $multipliers[$i % 4];
$total = $multiplier * $number;
$groups[intval($i / 8)] += $total ;
}
foreach ($groups as $group){
$mod = $group % 10;
if ( $mod > 0 ){
return false;
}
}
return true;
}
}

View File

@@ -12,7 +12,7 @@ use yii\helpers\ArrayHelper;
* @property integer $id
* @property integer $id_card
* @property integer $id_key
* @property string $valid_until
* @property integer $number
* @property string $direction_in_at
* @property string $direction_out_at
* @property string $created_at
@@ -35,8 +35,8 @@ class VirtualKey extends \yii\db\ActiveRecord
{
return [
[['id_card', 'id_key'], 'integer'],
[['valid_until', 'created_at', 'updated_at'], 'required'],
[['valid_until', 'direction_in_at', 'direction_out_at', 'created_at', 'updated_at'], 'safe']
[[ 'created_at', 'updated_at'], 'required'],
[[ 'direction_in_at', 'created_at', 'updated_at'], 'safe']
];
}
@@ -49,7 +49,6 @@ class VirtualKey extends \yii\db\ActiveRecord
'id' => Yii::t('common/virtualkey', 'ID'),
'id_card' => Yii::t('common/virtualkey', 'Id Card'),
'id_key' => Yii::t('common/virtualkey', 'Id Key'),
'valid_until' => Yii::t('common/virtualkey', 'Valid Until'),
'direction_in_at' => Yii::t('common/virtualkey', 'Direction In At'),
'direction_out_at' => Yii::t('common/virtualkey', 'Direction Out At'),
'created_at' => Yii::t('common/virtualkey', 'Created At'),
@@ -59,10 +58,12 @@ class VirtualKey extends \yii\db\ActiveRecord
public function behaviors()
{
return ArrayHelper::merge( [
return ArrayHelper::merge([
[
'class' => TimestampBehavior::className(),
'value' => function(){ return date('Y-m-d H:i:s' ); }
'value' => function () {
return date('Y-m-d H:i:s');
}
]
],
parent::behaviors());