8
8
@copyright Copyright 2018, Fawno (https://github.com/fawno)
9
9
@license MIT License (http://www.opensource.org/licenses/mit-license.php)
10
10
*/
11
+ declare (strict_types=1 );
11
12
12
13
namespace Fawno \AEAT ;
13
14
@@ -70,7 +71,7 @@ public function VNifV2 ($contribuyentes) {
70
71
return $ this ->__soapCall ('VNifV2 ' , [['Contribuyente ' => $ contribuyentes ]]);
71
72
}
72
73
73
- public static function nif_validation ($ nif ) {
74
+ public static function nif_validation (string $ nif ) : bool {
74
75
if (preg_match ('~(ES)?([\w\d]{9})~ ' , strtoupper ($ nif ), $ parts )) {
75
76
$ nif = end ($ parts );
76
77
if (preg_match ('~(^[XYZ\d]\d{7})([TRWAGMYFPDXBNJZSQVHLCKE]$)~ ' , $ nif , $ parts )) {
@@ -82,15 +83,15 @@ public static function nif_validation ($nif) {
82
83
} elseif (preg_match ('~(^[ABCDEFGHIJKLMUV])(\d{7})(\d$)~ ' , $ nif , $ parts )) {
83
84
$ checksum = 0 ;
84
85
foreach (str_split ($ parts [2 ]) as $ pos => $ val ) {
85
- $ checksum += array_sum (str_split ($ val * (2 - ($ pos % 2 ))));
86
+ $ checksum += array_sum (str_split (( string ) ( $ val * (2 - ($ pos % 2 ) ))));
86
87
}
87
88
$ checksum = ((10 - ($ checksum % 10 )) % 10 );
88
89
return ($ parts [3 ] == $ checksum );
89
90
} elseif (preg_match ('~(^[KLMNPQRSW])(\d{7})([JABCDEFGHI]$)~ ' , $ nif , $ parts )) {
90
91
$ control = 'JABCDEFGHI ' ;
91
92
$ checksum = 0 ;
92
93
foreach (str_split ($ parts [2 ]) as $ pos => $ val ) {
93
- $ checksum += array_sum (str_split ($ val * (2 - ($ pos % 2 ))));
94
+ $ checksum += array_sum (str_split (( string ) ( $ val * (2 - ($ pos % 2 ) ))));
94
95
}
95
96
$ checksum = substr ($ control , ((10 - ($ checksum % 10 )) % 10 ), 1 );
96
97
return ($ parts [3 ] == $ checksum );
0 commit comments