import sys
import os
from libfptr10 import IFptr
LIBRARY_PATH = os.path.dirname(os.path.abspath(__file__))
fptr = IFptr(os.path.join(LIBRARY_PATH, "libfptr10.so"))
fptr.setSingleSetting(IFptr.LIBFPTR_SETTING_PORT, str(IFptr.LIBFPTR_PORT_USB))
fptr.setSingleSetting(IFptr.LIBFPTR_SETTING_LIBRARY_PATH, LIBRARY_PATH)
fptr.applySingleSettings()
fptr.open()
fptr.setParam(1021, u"Иванов И.И.")
fptr.setParam(1203, u"500100732259")
fptr.operatorLogin()
fptr.setParam(IFptr.LIBFPTR_PARAM_RECEIPT_TYPE, IFptr.LIBFPTR_RT_SELL)
fptr.setParam(1008, u"+79161234567")
fptr.openReceipt()
fptr.setParam(IFptr.LIBFPTR_PARAM_COMMODITY_NAME, u"Чипсы LAYS")
fptr.setParam(IFptr.LIBFPTR_PARAM_PRICE, 73.99)
fptr.setParam(IFptr.LIBFPTR_PARAM_QUANTITY, 5)
fptr.setParam(IFptr.LIBFPTR_PARAM_TAX_TYPE, IFptr.LIBFPTR_TAX_VAT18)
fptr.setParam(1212, 1)
fptr.setParam(1214, 7)
fptr.registration()
fptr.setParam(IFptr.LIBFPTR_PARAM_SUM, 369.0)
fptr.receiptTotal()
fptr.setParam(IFptr.LIBFPTR_PARAM_PAYMENT_TYPE, IFptr.LIBFPTR_PT_CASH)
fptr.setParam(IFptr.LIBFPTR_PARAM_PAYMENT_SUM, 1000)
fptr.payment()
if fptr.closeReceipt() < 0:
fptr.checkReceiptClosed()
if not fptr.getParamBool(IFptr.LIBFPTR_PARAM_RECEIPT_CLOSED):
sys.exit(255)
fptr.setParam(IFptr.LIBFPTR_PARAM_FN_DATA_TYPE, IFptr.LIBFPTR_FNDT_LAST_DOCUMENT)
fptr.fnQueryData()
print("Fiscal Sign = {}".format(fptr.getParamString(IFptr.LIBFPTR_PARAM_FISCAL_SIGN)))
print("Fiscal Document Number = {}".format(fptr.getParamInt(IFptr.LIBFPTR_PARAM_DOCUMENT_NUMBER)))
fptr.beginNonfiscalDocument()
fptr.setParam(IFptr.LIBFPTR_PARAM_TEXT, "ИНН: 111111111111 КПП: 222222222")
fptr.setParam(IFptr.LIBFPTR_PARAM_ALIGNMENT, IFptr.LIBFPTR_ALIGNMENT_CENTER)
fptr.printText()
fptr.setParam(IFptr.LIBFPTR_PARAM_TEXT, "КАССА: 1 СМЕНА: 11")
fptr.setParam(IFptr.LIBFPTR_PARAM_ALIGNMENT, IFptr.LIBFPTR_ALIGNMENT_CENTER)
fptr.printText()
fptr.setParam(IFptr.LIBFPTR_PARAM_TEXT, "ЧЕК: 314 ДАТА: 20.11.2017 15:39")
fptr.setParam(IFptr.LIBFPTR_PARAM_ALIGNMENT, IFptr.LIBFPTR_ALIGNMENT_CENTER)
fptr.printText()
fptr.setParam(IFptr.LIBFPTR_PARAM_BARCODE, "https://check.egais.ru?id=cf1b1096-3cbc-11e7-b3c1-9b018b2ba3f7")
fptr.setParam(IFptr.LIBFPTR_PARAM_BARCODE_TYPE, IFptr.LIBFPTR_BT_QR)
fptr.setParam(IFptr.LIBFPTR_PARAM_ALIGNMENT, IFptr.LIBFPTR_ALIGNMENT_CENTER)
fptr.setParam(IFptr.LIBFPTR_PARAM_SCALE, 5)
fptr.printBarcode()
fptr.printText()
fptr.setParam(IFptr.LIBFPTR_PARAM_TEXT, "https://check.egais.ru?id=cf1b1096-3cbc-11e7-b3c1-9b018b2ba3f7")
fptr.setParam(IFptr.LIBFPTR_PARAM_ALIGNMENT, IFptr.LIBFPTR_ALIGNMENT_CENTER)
fptr.setParam(IFptr.LIBFPTR_PARAM_TEXT_WRAP, IFptr.LIBFPTR_TW_CHARS)
fptr.printText()
fptr.printText()
fptr.setParam(IFptr.LIBFPTR_PARAM_TEXT,
"10 58 1c 85 bb 80 99 84 40 b1 4f 35 8a 35 3f 7c "
"78 b0 0a ff cd 37 c1 8e ca 04 1c 7e e7 5d b4 85 "
"ff d2 d6 b2 8d 7f df 48 d2 5d 81 10 de 6a 05 c9 "
"81 74")
fptr.setParam(IFptr.LIBFPTR_PARAM_ALIGNMENT, IFptr.LIBFPTR_ALIGNMENT_CENTER)
fptr.setParam(IFptr.LIBFPTR_PARAM_TEXT_WRAP, IFptr.LIBFPTR_TW_WORDS)
fptr.printText()
fptr.endNonfiscalDocument()
fptr.setParam(IFptr.LIBFPTR_PARAM_REPORT_TYPE, IFptr.LIBFPTR_RT_CLOSE_SHIFT)
fptr.report()
fptr.setParam(IFptr.LIBFPTR_PARAM_FN_DATA_TYPE, IFptr.LIBFPTR_FNDT_OFD_EXCHANGE_STATUS)
fptr.fnQueryData()
unsentCount = fptr.getParamInt(IFptr.LIBFPTR_PARAM_DOCUMENTS_COUNT)
unsentFirstNumber = fptr.getParamInt(IFptr.LIBFPTR_PARAM_DOCUMENT_NUMBER)
unsentDateTime = fptr.getParamDateTime(IFptr.LIBFPTR_PARAM_DATE_TIME)
fptr.close()