diff --git a/close.js b/close.js new file mode 100644 index 0000000..700d696 --- /dev/null +++ b/close.js @@ -0,0 +1,87 @@ +// Модуль Frontol 4.9 для проведения платежей в АСР Гидра + +function BeforeAct(AO, RO, E, O, CO) +{ + // Функция выполняется перед проведением платежа по кассовому аппарату + // AO - объект приложения, RO - объект платежа + var req = new ActiveXObject("Microsoft.XMLHTTP"); + // цикл по позициям чека + for(RO.Pos.Index=1;RO.Pos.Index<=RO.Pos.Count;RO.Pos.Index++) + { + + req.onreadystatechange = function() + { + //Обрабатываем ответ сервера + if(req.readyState==4 && req.status==200) { + var obj = eval("("+req.responseText+")"); + if(obj.result == "ERROR") { + AO.ShowMessage("Невозможно оплатить абоненту "+RO.UserValues.Get("UName_"+RO.Pos.Index)); + AO.Cancel(); + } + } + } + // Посылаем запрос об оплате позиции в чеке a - сумма, b - идентификатор абонента N_ACCOUNT_ID, с - код кассы, d - тип документа + req.open("POST", "http://server:8383/oplnew.php", false); + var parm = "a="+RO.Pos.SummWD+"&b="+RO.UserValues.Get("UAID_"+RO.Pos.Index)+"&c=k9110001&d="+RO.ReceiptTypeCode; + req.setRequestHeader("Content-type","application/x-www-form-urlencoded"); + req.setRequestHeader("Content-length",parm.length); + req.send(parm); + + var req1 = new ActiveXObject("Microsoft.XMLHTTP"); + req1.onreadystatechange = function() + { + //Обрабатываем ответ сервера + if(req1.readyState==4 && req1.status==200) { + var obj = eval("("+req1.responseText+")"); + RO.UserValues.Set("UBal_"+RO.Pos.Index,obj[0].N_SUM_BAL); + switch (RO.UserValues.Get("UGID_" + RO.Pos.Index)) { + case "50638901": + // ИП 1 по секции 1 + RO.Pos.SetECRDepartment(1); + break; + case "50639001": + // ООО 1111 по секции 2 + RO.Pos.SetECRDepartment(2); + break; + case "50654901": + // ООО 2222 по секции 3 + RO.Pos.SetECRDepartment(3); + break; + case "2235433401": + // ООО 3333 по секции 4 + RO.Pos.SetECRDepartment(4); + break; + case "2844439801": + // ООО 4444 по секции 5 + RO.Pos.SetECRDepartment(5); + break; + case "930048701": + // ООО 5555 по секции 6 + RO.Pos.SetECRDepartment(6); + break; + + } + } + } + // Посылаем запрос о данных абонента после оплаты (текущий баланс на чек) + req1.open("POST", "http://server:8383/getusers.php", false); + var parm = "address="+RO.UserValues.Get("UAccount_"+RO.Pos.Index)+"&tp=l"; + req1.setRequestHeader("Content-type","application/x-www-form-urlencoded"); + req1.setRequestHeader("Content-length",parm.length); + req1.send(parm); + } +} + +function AfterAct(AO, RO, E, O, CO) +{ + +} + +function FuncAct(AO, RO, CO) +{ + +} + +function NoAction(AO, RO, POS, CO, UserParam) +{ +} diff --git a/getabonents.js b/getabonents.js new file mode 100644 index 0000000..974e4db --- /dev/null +++ b/getabonents.js @@ -0,0 +1,138 @@ +// Модуль Frontol 4.9 для запроса данных о пользователе для проведения платежа из АСР ГИДРА + +function BeforeAct(AO, RO, E, O, CO) +{ + // сервисая функция поиска по массиву + function find(array,value) { + for(var i=0; i