Как встроить данный скрипт в поле JS Формула?

Все вопросы/проблемы по установке и использовании.
Ответить
neontic
Сообщения: 45
Зарегистрирован: 07 янв 2019, 15:48
Имя: Иван Вербитцкий
Откуда: Казахстан
Организация: ITSFERA

Как встроить данный скрипт в поле JS Формула?

Сообщение neontic »

Здравствуйте, есть JS код проверки валидности ИИН, как встроить его в поле JS формула?
Вот JS.
<script type="text/javascript">
$(document).ready(function() {
var nn = '';
var code = '0';
if(code != 0)
{
$('#ch').val(nn);
if(code == "rnn")
{
$('input:radio[name="nn"]').filter('[value="rnn"]').attr('checked', true);
}
else if(code == "iin")
{
$('input:radio[name="nn"]').filter('[value="iin"]').attr('checked', true);
}
check(nn, code);
}
});

function check(cnn, code)
{
if(!code)
{
var ch = $('#ch').val();
var nn = $('input:radio[name=nn]:checked').val();
}
else
{
var ch = cnn;
var nn = code;
}


if(ch.length != 12)
{
$('#res').html('<font color="red">Длина РНН/ИНН должна быть 12 символов</font>');
return;
}

if(! /^\d+$/.test(ch))
{
$('#res').html('<font color="red">В РНН/ИНН содержатся только цифры</font>');
return;
}

$('#res').html('');


if(nn == 'rnn')
{
var isk = [ '000000000000', '111111111111', '222222222222', '333333333333', '444444444444', '555555555555', '666666666666', '777777777777', '888888888888', '999999999999' ];
if ( $.inArray(ch, isk) != -1 )
{
$('#res').html('<font color="red">РНН состоит из одинаковых цифр</font>');
return;
}
var res = rnn(ch);
if ( res[0] )
{
$('#res').html('РНН корректный');
return;
}
else
{
$('#res').html('<font color="red">Контрольный разряд РНН неверный, должно быть ' + res[1] + ', а стоит ' + res[2] +'</font>');
return;
}
}
else if(nn == 'iin')
{
var res = iin(ch);
if ( res[0] )
{
var result = 'ИИН корректный <br/>';

r7 = ch.substr(6, 1);
if( r7 % 2 == 0)
{
result += 'Пол - женский <br/>';
}
else
{
result += 'Пол - мужской <br/>';
}

if( r7 == 3 || r7 == 4)
{
year = '19';
}
else if( r7 == 5 || r7 == 6 )
{
year = '20';
}

year += ch.substr(0, 2);
month = ch.substr(2, 2);
day = ch.substr(4, 2);

result += 'Дата рождения ' + day + '.' + month + '.' + year;

$('#res').html(result);
return;
}
else
{
$('#res').html(res[1]);
return;
}
}
}

function rnn(rnn)
{
for (i = 1; i <= 10; i++)
{
s = 0;
t = i - 1;
for (j = 1; j <= 11; j++)
{
++t;
if (t == 11)
t = 1;
s = s +t * rnn.substr(j - 1, 1);
}
k = s % 11;
if (k < 10)
break;
}
return [(k == rnn.substr(11, 1)), k, rnn.substr(11, 1) ];
}

function iin(iin)
{
s = 0;
nn = iin.split('');
for (i = 0; i < 11; i++)
{
s = s + (i + 1) * nn;
}
k = s % 11;
if (k == 10)
{
s = 0;
for (i = 0; i < 11; i++)
{
t = (i + 3) % 11;
if(t == 0)
{
t = 11;
}
s = s + t * nn;
}
k = s % 11;
if (k == 10)
return [false, '<font color="red">ИИН не должен использоваться, ошибки при формировании контрольного разряда</font>'];
return [(k == iin.substr(11, 1)), '<font color="red">Контрольный разряд ИИН неверный, должно быть ' + k + ', а стоит ' + iin.substr(11, 1) +'</font>' ];
}
return [(k == iin.substr(11, 1)), '<font color="red">Контрольный разряд ИИН неверный, должно быть ' + k + ', а стоит ' + iin.substr(11, 1) +'</font>'];
}

</script>
Ответить