'Valore non presente ', self::PIVA_LENGHT=>'La lunghezza della partita iva "%value%" non è corretta: la partita IVA dovrebbe essere lunga esattamente 11 caratteri', self::PIVA_MATCH=>'La partita iva "%value%" contiene dei caratteri non ammessi: la partita IVA dovrebbe contenere solo cifre', self::PIVA_INVALID=>'La partita iva "%value%" non è valida', self::PIVA_INVALID_ME=>'La partita iva "%value%" non è valida: non puoi inserire la nostra p.iva', self::PIVA_INVALID_ZERO=>'Sei sicuro che "%value%" sia la tua partita iva?', ); public function isValid($value,$checkPivaInterna = true) { $this->_setValue($value); $isValid = true; if ($value === ''){ $this->_error(self::PIVA_NULL); $isValid = false; } if(strlen($value) != 11){ $this->_error(self::PIVA_LENGHT); $isValid = false; } /*Controllo personalizzato sulla propria partita iva */ if ($value === '01999590688' && $checkPivaInterna){ $this->_error(self::PIVA_INVALID_ME); $isValid = false; } if ($value === '00000000000'){ $this->_error(self::PIVA_INVALID_ZERO); $isValid = false; } if(preg_match("/^[0-9]+\$/", $value) != 1){ $this->_error(self::PIVA_MATCH); $isValid = false; } $s = 0; for ($i = 0; $i <= 9; $i += 2) $s += ord($value[$i]) - ord('0'); for ($i = 1; $i <= 9; $i += 2) { $c = 2 * (ord($value[$i]) - ord('0')); if ($c > 9) $c = $c - 9; $s += $c; } if ((10 - $s % 10) % 10 != ord($value[10]) - ord('0')){ $this->_error(self::PIVA_INVALID); $isValid = false; } return $isValid; } }