Добрый день!
Добрались до реализации приема платежей, все работает за исключением снятия Z-отчета.
Код:
package ru.borin.bgbilling.script;
import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.plugins.cashcheck.common.CashcheckService;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import ru.borin.bgbilling.common.MailMsgExt;
import java.io.PrintWriter;
import java.io.StringWriter;
/** ОТЧЕТ С ГАШЕНИЕМ **/
public class CashcheckZReport extends GlobalScriptBase {
@Override
public void execute(Setup setup, ConnectionSet connectionSet) throws Exception {
int kkmNum = 2;
String kkmPass = "30";
MailMsgExt mailMsgExt = new MailMsgExt(setup);
print( "Cashcheck ZReport..." );
try {
// ServerContext context = new ServerContext(setup, connectionSet, 0, 1);
ServerContext context = ServerContext.get();
CashcheckService cashcheckService = context.getService(CashcheckService.class, 0);
cashcheckService.bindPrinter(kkmNum, kkmPass);
cashcheckService.ZReport();
print( "Cashcheck ZReport OK!" );
mailMsgExt.sendAlarm("Cashcheck ZReport OK", "Cashcheck ZReport was made! OK!");
} catch(BGException e) {
print( "Cashcheck ZReport ERROR: " + e.getMessage() );
StringWriter sw = new StringWriter();
e.printStackTrace(new PrintWriter(sw));
mailMsgExt.sendAlarm("Cashcheck ZReport ERROR", e.toString() + "\n" + sw.toString());
}
}
}
Если снимать ZReport вручную, получаю ошибку, но смена закрывается и чек о закрытии смены выходит. XReport проходит без ошибок.
Код:
ru.bitel.bgbilling.common.BGMessageException: Ошибка! ККМ сказала: Снятие отчета прервалось
ru.bitel.bgbilling.common.BGMessageException: Ошибка! ККМ сказала: Снятие отчета прервалось
at ru.bitel.bgbilling.plugins.cashcheck.server.CashcheckServiceImpl.ZReport(CashcheckServiceImpl.java:1218)
at ru.borin.bgbilling.script.CashcheckZReport.execute(CashcheckZReport.java:32)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at ru.bitel.bgbilling.kernel.dynamic.server.DynamicCodeServiceImpl.run(DynamicCodeServiceImpl.java:330)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
Если запускать скрипт через планировщик, то:
Код:
ID события: bgbs.global.script.error
Время регистрации события: 29.09.2017 09:24:02
GENERATE_TIME: 29.09.17 09:24:02
EXECUTION_STOP_TIME: 29.09.17 09:24:02
PROCESS_TIME: 5
OUT:
Cashcheck ZReport...
EXCEPTIONS:
java.lang.IllegalStateException: not userID
at ru.bitel.bgbilling.plugins.cashcheck.server.bean.UserCache.getUserMap(UserCache.java:40)
at ru.bitel.bgbilling.plugins.cashcheck.server.bean.UserCache.removeAttribute(UserCache.java:70)
at ru.bitel.bgbilling.plugins.cashcheck.server.bean.PrinterManager.setCurrentRegistrator(PrinterManager.java:183)
at ru.bitel.bgbilling.plugins.cashcheck.server.CashcheckServiceImpl.bindPrinter(CashcheckServiceImpl.java:140)
at ru.borin.bgbilling.script.CashcheckZReport.execute(CashcheckZReport.java:32)
at ru.bitel.bgbilling.kernel.script.server.bean.GlobalScriptInvoker.invoke(GlobalScriptInvoker.java:38)
at ru.bitel.bgbilling.kernel.script.server.GlobalScriptServiceImpl.executeGlobalScriptParams(GlobalScriptServiceImpl.java:83)
at ru.bitel.bgbilling.kernel.script.server.task.GlobalScriptTimer.executeJava(GlobalScriptTimer.java:109)
at ru.bitel.bgbilling.kernel.script.server.task.GlobalScriptTimer.executeTask(GlobalScriptTimer.java:61)
at ru.bitel.bgbilling.kernel.task.server.TaskBase.run(TaskBase.java:80)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
_________________
Код:
Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45