Browse Source

#179: Validate Greek VAT number

phuoc 12 years ago
parent
commit
7525b1bacf
3 changed files with 59 additions and 1 deletions
  1. 29 0
      dist/js/bootstrapValidator.js
  2. 1 1
      dist/js/bootstrapValidator.min.js
  3. 29 0
      src/js/validator/vat.js

+ 29 - 0
dist/js/bootstrapValidator.js

@@ -2526,6 +2526,35 @@
         },
 
         /**
+         * Validate Greek VAT number
+         * Examples:
+         * - Valid: GR023456780, EL094259216
+         * - Invalid: EL123456781
+         *
+         * @param {String} value VAT number
+         * @return {Boolean}
+         */
+        _isValidGRVat: function(value) {
+            value = value.substr(2);
+            if (value.length == 8) {
+                value = '0' + value;
+            }
+
+            var sum    = 0,
+                weight = [256, 128, 64, 32, 16, 8, 4, 2];
+            for (var i = 0; i < 8; i++) {
+                sum += parseInt(value.charAt(i)) * weight[i];
+            }
+            sum = (sum % 11) % 10;
+
+            return (sum == value.substr(8, 1));
+        },
+
+        _isValidELVat: function(value) {
+            return this._isValidGRVat(value);
+        },
+
+        /**
          * Validate Hungarian VAT number
          * Examples:
          * - Valid: HU12892312

File diff suppressed because it is too large
+ 1 - 1
dist/js/bootstrapValidator.min.js


+ 29 - 0
src/js/validator/vat.js

@@ -152,6 +152,35 @@
         },
 
         /**
+         * Validate Greek VAT number
+         * Examples:
+         * - Valid: GR023456780, EL094259216
+         * - Invalid: EL123456781
+         *
+         * @param {String} value VAT number
+         * @return {Boolean}
+         */
+        _isValidGRVat: function(value) {
+            value = value.substr(2);
+            if (value.length == 8) {
+                value = '0' + value;
+            }
+
+            var sum    = 0,
+                weight = [256, 128, 64, 32, 16, 8, 4, 2];
+            for (var i = 0; i < 8; i++) {
+                sum += parseInt(value.charAt(i)) * weight[i];
+            }
+            sum = (sum % 11) % 10;
+
+            return (sum == value.substr(8, 1));
+        },
+
+        _isValidELVat: function(value) {
+            return this._isValidGRVat(value);
+        },
+
+        /**
          * Validate Hungarian VAT number
          * Examples:
          * - Valid: HU12892312