Валидация текстового параметра

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
 
(1 промежуточная версия не показана)
Строка 1: Строка 1:
-
Скрипт валидации текстового параметра договора, может быть введен в свойствах текстового параметра договора.
+
Скрипт валидации текстового параметра договора, может быть введен в свойствах текстового параметра договора. Использовать этот метод целесообразно для версий биллинга старее 4.5, для более новых версий следует использовать метод обработки события "Перед изменением параметра договора", примеры описаны в статье [[Проверка параметра договора перед изменением]].
-
==Проверка длины==
+
===Проверка длины===
Проверяет, что длина параметра больше 5 символов, в противном случае выдается ошибка.
Проверяет, что длина параметра больше 5 символов, в противном случае выдается ошибка.

Текущая версия на 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;
}
Личные инструменты