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;
}
}