Валидация текстового параметра
Материал из BiTel WiKi
(Различия между версиями)
Admin (Обсуждение | вклад) (Новая: Скрипт валидации текстового параметра договора, проверяет что длина параметра больше 5 символов, в пр...) |
Admin (Обсуждение | вклад) |
||
| (3 промежуточные версии не показаны) | |||
| Строка 1: | Строка 1: | ||
| - | Скрипт валидации текстового параметра договора, | + | Скрипт валидации текстового параметра договора, может быть введен в свойствах текстового параметра договора. Использовать этот метод целесообразно для версий биллинга старее 4.5, для более новых версий следует использовать метод обработки события "Перед изменением параметра договора", примеры описаны в статье [[Проверка параметра договора перед изменением]]. |
| + | |||
| + | ===Проверка длины=== | ||
| + | Проверяет, что длина параметра больше 5 символов, в противном случае выдается ошибка. | ||
<source lang="java"> | <source lang="java"> | ||
| Строка 6: | Строка 9: | ||
{ | { | ||
event.setError( "Длина параметра меньше 5" ); | event.setError( "Длина параметра меньше 5" ); | ||
| + | return; | ||
| + | } | ||
| + | </source> | ||
| + | |||
| + | ===проверка ИНН=== | ||
| + | <source lang="java"> | ||
| + | |||
| + | int mult(String s, int[] c) { | ||
| + | int len = s.length(); | ||
| + | if (len > c.length) | ||
| + | len = c.length; | ||
| + | int summ = 0; | ||
| + | for (int j = 0; j < len; j++) { | ||
| + | if (!Character.isDigit(s.charAt(j))) | ||
| + | return -255; | ||
| + | summ += c[j] * ((int) s.charAt(j) - (int) '0'); | ||
| + | } | ||
| + | return summ; | ||
| + | } | ||
| + | |||
| + | boolean INN(String inn) { | ||
| + | if (inn == null) | ||
| + | return false; | ||
| + | if (inn.length() == 10) | ||
| + | return (char) ((int) '0' + mult(inn, new int[] { 2, 4, 10, 3, 5, 9, | ||
| + | 4, 6, 8 }) % 11 % 10) == inn.charAt(9); | ||
| + | if (inn.length() == 12) | ||
| + | return ((char) ((int) '0' + mult(inn, new int[] { 7, 2, 4, 10, 3, | ||
| + | 5, 9, 4, 6, 8 }) % 11 % 10) == inn.charAt(10)) | ||
| + | && ((char) ((int) '0' + mult(inn, new int[] { 3, 7, 2, 4, | ||
| + | 10, 3, 5, 9, 4, 6, 8 }) % 11 % 10) == inn | ||
| + | .charAt(11)); | ||
| + | return false; | ||
| + | } | ||
| + | |||
| + | if( event.getValue().equals("") ) return; | ||
| + | |||
| + | if( ! INN(event.getValue()) ) { | ||
| + | event.setError("Не правильный ИНН"); | ||
return; | return; | ||
} | } | ||
</source> | </source> | ||
Текущая версия на 08:03, 30 октября 2008
Скрипт валидации текстового параметра договора, может быть введен в свойствах текстового параметра договора. Использовать этот метод целесообразно для версий биллинга старее 4.5, для более новых версий следует использовать метод обработки события "Перед изменением параметра договора", примеры описаны в статье Проверка параметра договора перед изменением.
Проверка длины
Проверяет, что длина параметра больше 5 символов, в противном случае выдается ошибка.
value = event.getValue(); if( value.length() < 5 ) { event.setError( "Длина параметра меньше 5" ); return; }
проверка ИНН
int mult(String s, int[] c) { int len = s.length(); if (len > c.length) len = c.length; int summ = 0; for (int j = 0; j < len; j++) { if (!Character.isDigit(s.charAt(j))) return -255; summ += c[j] * ((int) s.charAt(j) - (int) '0'); } return summ; } boolean INN(String inn) { if (inn == null) return false; if (inn.length() == 10) return (char) ((int) '0' + mult(inn, new int[] { 2, 4, 10, 3, 5, 9, 4, 6, 8 }) % 11 % 10) == inn.charAt(9); if (inn.length() == 12) return ((char) ((int) '0' + mult(inn, new int[] { 7, 2, 4, 10, 3, 5, 9, 4, 6, 8 }) % 11 % 10) == inn.charAt(10)) && ((char) ((int) '0' + mult(inn, new int[] { 3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8 }) % 11 % 10) == inn .charAt(11)); return false; } if( event.getValue().equals("") ) return; if( ! INN(event.getValue()) ) { event.setError("Не правильный ИНН"); return; }
