Closed Tango600 closed 1 year ago
Добрый день. Можно лог посмотреть?
Логи посмотрел, но данных драйвера там нет, только ошибки.
С какими параметрами запускать logcat ?
Нужен вывод классов com.shtrih
У нас такая же проблема, только на Штрих Мобайл с прошивкой 20045. Также пробовали не указывать 1226 тег, но ошибка всё равно появляется. ИНН дополняли до 12 символов. Ещё проверяли на Штрих-нано-ф, и на нём всё работает, ошибок нет. shtrih.log Код печати:
override fun ShtrihFiscalPrinter.printCheque(receipt: Receipt) {
fiscalReceiptType = if (receipt.type == Receipt.Type.SELL) {
FiscalPrinterConst.FPTR_RT_SALES
} else {
FiscalPrinterConst.FPTR_RT_REFUND
}
beginFiscalReceipt(true)
writePaymentTags(receipt.tags)
printNormal(FiscalPrinterConst.FPTR_S_RECEIPT, receipt.cheque)
val unitName = if (receipt.type == Receipt.Type.SELL) {
SELL_UNIT_NAME
} else {
REFUND_UNIT_NAME
}
receipt.positions.forEach { position ->
setParameter(SmFptrConst.SMFPTR_DIO_PARAM_ITEM_PAYMENT_TYPE, position.methodType)
setParameter(SmFptrConst.SMFPTR_DIO_PARAM_ITEM_SUBJECT_TYPE, position.subjectType)
val vatInfo = mapToVatInfo(position.ndsType)
printItem(
description = position.name,
price = position.amount.toKopeck(),
vatInfo = vatInfo,
unitName = unitName,
type = receipt.type,
quantity = (position.quantity * 1000000).toInt(),
unitPrice = floor(position.amount.toKopeck() / position.quantity).toLong()
)
if (receipt.tags.containsKey(AGENT_ATTRIBUTE_TAG_ID)) {
if (receipt.vendorInn != null) {
fsWriteOperationTag(VENDOR_INN, receipt.vendorInn)
}
}
}
printRecTotal(receipt.totalAmount.toKopeck(), receipt.totalAmount.toKopeck(), "0")
endFiscalReceipt(false)
waitForPrinting()
}
private fun ShtrihFiscalPrinter.printItem(description: String, price: Long, quantity: Int = 0, vatInfo: Int, unitPrice: Long = 0,
unitName: String, type: Receipt.Type) {
if (type == Receipt.Type.SELL) {
printRecItem(description, price, quantity, vatInfo, unitPrice, unitName)
} else {
printRecItemRefund(description, price, quantity, vatInfo, unitPrice, unitName)
}
}
Ошибка, сегодня поправлю.
Работает ли ШМобайл с прошивкой 20041 и 688 драйвером? Без опертегов чек формируется без ошибок, но если начать записывать fsWriteOperationTag то появляется ошибка 51 при закрытии чека. Опертеги записываются после printRecItem. При записи до, происходит ошибка явно указывающая на то что этой самой RecItem нет и теги крепить не к чему. Записываются теги 1226 и 1224. ИНН в 1226, 10 цифр дополняется пробелами до 12.
02-09 17:21:17.702 W/System.err( 7450): jpos.JposException: 51, Некорректные параметры в команде 02-09 17:21:17.702 W/System.err( 7450): at com.shtrih.jpos.fiscalprinter.JposExceptionHandler.getJposExceptionWithoutDetails(JposExceptionHandler.java:8) 02-09 17:21:17.702 W/System.err( 7450): at com.shtrih.jpos.fiscalprinter.JposExceptionHandler.getJposException(JposExceptionHandler.java:1) 02-09 17:21:17.702 W/System.err( 7450): at com.shtrih.jpos.fiscalprinter.JposExceptionHandler.handleException(JposExceptionHandler.java:2) 02-09 17:21:17.702 W/System.err( 7450): at com.shtrih.jpos.fiscalprinter.FiscalPrinterService.handleException(FiscalPrinterService.java:3) 02-09 17:21:17.702 W/System.err( 7450): at com.shtrih.jpos.fiscalprinter.FiscalPrinterService.endFiscalReceipt(FiscalPrinterService.java:3) 02-09 17:21:17.702 W/System.err( 7450): at jpos.FiscalPrinter.endFiscalReceipt(FiscalPrinter.java:2) 02-09 17:21:17.702 W/System.err( 7450): at com.shtrih.fiscalprinter.ShtrihFiscalPrinter113.endFiscalReceipt(Unknown Source:2)