cvs: pear /Validate package_IE.xml /Validate/Validate IE.php /Validate/tests validate_IE_vatNumber.phpt
| From: | Ken Guest | Date: | Wed, 04 Jul 2007 23:42:06 +0000 |
| Subject: | cvs: pear /Validate package_IE.xml /Validate/Validate IE.php /Validate/tests validate_IE_vatNumber.phpt | ||
| Groups: | php.pear.cvs | ||
| Request: | Send a blank email to pear-cvs+get-47857@lists.php.net to get a copy of this message | ||
kguest Wed Jul 4 23:42:06 2007 UTC
Added files:
/pear/Validate/tests validate_IE_vatNumber.phpt
Modified files:
/pear/Validate package_IE.xml
/pear/Validate/Validate IE.php
Log:
Request #11522 package should validate VAT numbers
http://cvs.php.net/viewvc.cgi/pear/Validate/package_IE.xml?r1=1.10&r2=1.11&diff_format=u
Index: pear/Validate/package_IE.xml
diff -u pear/Validate/package_IE.xml:1.10 pear/Validate/package_IE.xml:1.11
--- pear/Validate/package_IE.xml:1.10 Thu Jun 28 22:13:19 2007
+++ pear/Validate/package_IE.xml Wed Jul 4 23:42:06 2007
@@ -17,6 +17,7 @@
- PPSN / SSN Numbers
- Swift numbers
- License Plates
+- VAT numbers
</description>
<lead>
<name>David Coallier</name>
@@ -68,6 +69,7 @@
<file name="validate_IE_post_code.phpt" role="test"/>
<file name="validate_IE_ppsn.phpt" role="test"/>
<file name="validate_IE_swift.phpt" role="test"/>
+ <file name="validate_IE_vatNumber.phpt" role="test"/>
</dir>
</dir> <!-- / -->
</contents>
http://cvs.php.net/viewvc.cgi/pear/Validate/Validate/IE.php?r1=1.14&r2=1.15&diff_format=u
Index: pear/Validate/Validate/IE.php
diff -u pear/Validate/Validate/IE.php:1.14 pear/Validate/Validate/IE.php:1.15
--- pear/Validate/Validate/IE.php:1.14 Tue Jul 3 20:50:51 2007
+++ pear/Validate/Validate/IE.php Wed Jul 4 23:42:06 2007
@@ -22,7 +22,7 @@
* @author David Coallier <davidc@php.net>
* @copyright 1997-2007 Agora Production (http://agoraproduction.com)
* @license http://www.opensource.org/licenses/bsd-license.php
New BSD License
- * @version CVS: $Id: IE.php,v 1.14 2007/07/03 20:50:51 kguest Exp $
+ * @version CVS: $Id: IE.php,v 1.15 2007/07/04 23:42:06 kguest Exp $
* @link http://pear.php.net/package/Validate_IE
*/
@@ -443,6 +443,23 @@
}
}
// }}}
+
+ // {{{ public function vatNumber
+ /**
+ * vatNumber
+ *
+ * @access public
+ * @param string $vat vat number to validate.
+ * @return bool Returns true on success, false otherwise
+ * @link http://www.iecomputersystems.com/ordering/eu_vat_numbers.htm
+ */
+ function vatNumber($vat)
+ {
+ // IE1234567X or IE1X34567X are valid (includes one or two letters
+ // either the last or second + last).
+ return (preg_match('/^IE\d{7}[a-z]$/i', $vat) ||
preg_match('/^IE\d[a-z]\d{5}[a-z]$/i', $vat));
+ }
+ // }}}
}
// }}}
?>
http://cvs.php.net/viewvc.cgi/pear/Validate/tests/validate_IE_vatNumber.phpt?view=markup&rev=1.1
Index: pear/Validate/tests/validate_IE_vatNumber.phpt
+++ pear/Validate/tests/validate_IE_vatNumber.phpt
--TEST--
validate_IE_vatNumber.phpt: Unit tests for vatNumber method 'Validate/IE.php'
--FILE--
<?php
$noYes = array('NO', 'YES');
require_once 'Validate/IE.php';
echo "Test Validate_IE\n";
echo "****************\n";
$vatNumbers = array('IE4531617P', // OK
'IE8234895A', // OK
'IE4736919B', // OK
'IE6344246G', // OK
'IE8F52100V', // OK
'IEF852100V', // NOK - letter in wrong location
'IE8F5210V0', // NOK - letter in wrong location
'IRL8F52100V', // NOK - too long
);
echo "\nTest vatNumber\n";
foreach ($vatNumbers as $vatNumber) {
echo "{$vatNumber}: ".$noYes[Validate_IE::vatNumber($vatNumber)]."\n";
}
?>
--EXPECT--
Test Validate_IE
****************
Test vatNumber
IE4531617P: YES
IE8234895A: YES
IE4736919B: YES
IE6344246G: YES
IE8F52100V: YES
IEF852100V: NO
IE8F5210V0: NO
IRL8F52100V: NO