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.
87 lines
4.3 KiB
87 lines
4.3 KiB
// Модуль 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) |
|
{ |
|
}
|
|
|