You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

138 lines
6.5 KiB

// Модуль Frontol 4.9 для запроса данных о пользователе для проведения платежа из АСР ГИДРА
function BeforeAct(AO, RO, E, O, CO)
{
// сервисая функция поиска по массиву
function find(array,value) {
for(var i=0; i<array.length; i++) {
if (array[i] == value) return i;
}
return -1;
}
// Глобальные переменные
var pr = ""; // Строки для показа данных абонента
var spr = ""; // Коды абонентов
var obj = {};
// Запрос данных пользователя (адрес, либо код) и обработк-а полученных результатов
do {
inputError = false;
input = AO.InputString("Введите адрес, либо часть адреса. Примеры: ysk-neve4a-116, neve4a","",40);
//Если введено пустое значение или отмена
if(input == "" || input == null){
input = AO.InputString("Введите лицевой счет. Примеры: 3742, 1003742","",40);
if(input == "" || input == null){
AO.ShowMessage("Необходимо ОБЯЗАТЕЛЬНО ввести адрес или лицевой счет!", Icon.Error);
inputError = true;
}
else {
if(isNaN(input)){
AO.ShowMessage("Лицевой счет должен быть введен цифрами!", Icon.Error);
inputError = true;
}
else {
input = "l_" + input; // префикс+лицевой счет
}
}
}
else {
input = "a_" + input; // префикс+адрес
}
}
while(inputError);
var req = new ActiveXObject("Microsoft.XMLHTTP");
var grabon = "";
req.onreadystatechange = function()
{
//Обрабатываем ответ сервера
if(req.readyState==4 && req.status==200) {
var tobj = eval("("+req.responseText+")");
for(i=0;i<tobj.length;i++) {
// Выделение группы абонента (фирмы где зарегистрирован)
switch (tobj[i].N_SUBJ_GROUP_ID) {
case "50638901":
grabon = "";
break;
case "50639001":
grabon = "";
break;
case "50654901":
grabon = "!!! Групп";
break;
case "2235433401":
grabon = "";
break;
case "2844439801":
grabon = "";
break;
case "930048701":
grabon = "!!! ИП 11111";
break;
}
pr += tobj[i].VC_SUBJ_CODE+" "+tobj[i].VC_SUBJ_NAME+" ("+tobj[i].N_PARENT_DOC+") "+tobj[i].N_SUBJ_STATE_ID+" "+grabon+"\n";
grabon = "";
spr += i+"\n";
obj[i] = tobj[i];
}
}
}
// Посылаем запрос о пользователях, попадающих в выборку
req.open("POST", "http://server:8383/getusers.php", false);
var parm = "address="+input.slice(2)+"&tp="+input.slice(0,1);
req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
req.setRequestHeader("Content-length",parm.length);
req.send(parm);
// Выдаем запрос на выбор пользователя из списка
input = AO.SelectString("Выберите адрес абонента",pr,spr);
if (input != null){
// Если выбран пользователь
// Сохраняем данные пользователя во временные переменные
RO.UserValues.Set("tmpUName",obj[input]['VC_SUBJ_NAME']);
RO.UserValues.Set("tmpUCode",obj[input]['VC_SUBJ_CODE']);
RO.UserValues.Set("tmpUAccount",obj[input]['VC_CODE']);
RO.UserValues.Set("tmpUSID",obj[input]['N_SUBJECT_ID']);
RO.UserValues.Set("tmpUAID",obj[input].N_ACCOUNT_ID);
RO.UserValues.Set("tmpUGID",obj[input].N_SUBJ_GROUP_ID);
arr = ["50638901","50639001","50654901","2235433401","2844439801","930048701"]
if (find(arr,obj[input].N_SUBJ_GROUP_ID)<0) AO.ShowMessage("Неверная группа у абонента! Рекомендуется отменить платеж до исправления!", Icon.Error);
}
else {
AO.ShowMessage("Платеж отменен, так как не был выбран клиент!",Icon.Exclamation);
AO.Cancel();
}
}
function AfterAct(AO, RO, E, O, CO)
{
// Переименовываем временные переменные в соответствии с номером позиции
RO.UserValues.Set("UName_"+O.PosID,RO.UserValues.Get("tmpUName"));
RO.UserValues.Delete("tmpUName");
RO.UserValues.Set("UCode_"+O.PosID,RO.UserValues.Get("tmpUCode"));
RO.UserValues.Delete("tmpUCode");
RO.UserValues.Set("UAccount_"+O.PosID,RO.UserValues.Get("tmpUAccount"));
RO.UserValues.Delete("tmpUAccount");
RO.UserValues.Set("USID_"+O.PosID,RO.UserValues.Get("tmpUSID"));
RO.UserValues.Delete("tmpUSID");
RO.UserValues.Set("UAID_"+O.PosID,RO.UserValues.Get("tmpUAID"));
RO.UserValues.Delete("tmpUAID");
RO.UserValues.Set("UGID_"+O.PosID,RO.UserValues.Get("tmpUGID"));
RO.UserValues.Delete("tmpUGID");
}
function FuncAct(AO, RO, CO)
{
}
function NoAction(AO, RO, POS, CO, UserParam)
{
}