Как открыть День в Фискальном Принтере от OPOS
Как открыть День в Фискальном Принтере от OPOS?
Мой код не работает...
device = new OPOSFiscalPrinterClass();
device.Open("FiscPrinter"); //Opened succes
device.ClaimDevice(1000); //Claimed success
device.DeviceEnabled = true; //Enabled success
if (device.DayOpened)
{
device.PrintZReport();
}
device.FiscalReceiptType = (int)OPOSFiscalPrinterConstants.FPTR_RT_SALES;
device.BeginFiscalReceipt(true); //After that: ResultCode=114, ResultCodeExtended=221, PrinterState=2, DayOpened=false
device.PrintRecItem("Milk", 25.00M, 10000, 0, 25.00M, "");
device.EndFiscalReceipt(false); //After that: Receipt cannot be closed, ResultCode=114, ResultCodeExtended=207
device.Release();
device.Close();
Попытка с документацией UnifiedPOS. Что не так?
3 ответа
Решение
Окей, фискальный принтер должен иметь оператора / пользователя, после чего вы можете использовать, например, BeginFiscalReceipt.
Чтобы завершить квитанцию, вам нужна команда промежуточных итогов и команда оплаты до окончания квитанции. например.
device.PrintRecSubtotal(25.00M);
device.PrintRecCash(25.00M);
ResultCodeExtended 207 = OPOS_EFPTR_WRONG_STATE: фискальный принтер в данный момент не находится в состоянии фискальной квитанции. Вы должны сделать промежуточный итог как
device.PrintRecSubTotal(25.00M);
device.PrintRecTotal(25.00M, 25.00M, 'P'); //Total = 25.00M, Payment = 25.00M
Ваш код также можно сделать, как показано ниже
device.FiscalReceiptType = (int)OPOSFiscalPrinterConstants.FPTR_RT_SALES
или же
device.FiscalReceiptType = 4; // FPTR_RT_SALES -> 4