Impressão
Impressão
Aviso
Este SDK não tem suporte para criação de recibo de pagamento customizado. Caso o integrador queira fazer uso da impressora nesse formato, deve-se utilizar a API do fabricante com suporte do mesmo.
Faz-se uso da classe SmartPOSPrinterRequestBuilder
.
Tipos de recibos
O plugin é capaz de imprimir recibos dos tipos abaixo:
ReceiptType.ESTABLISHMENT // Via estabelecimento
ReceiptType.CUSTOMER // Via cliente
ReceiptType.REPRINT_ESTABLISHMENT // Reimpressão de via do estabelecimento
ReceiptType.REPRINT_CUSTOMER // Reimpressão de via do cliente
ReceiptType.CONSOLIDATED_REPORT // Relatório consolidado
ReceiptType.DETAILED_REPORT // Relatório detalhado
ReceiptType.SHIFT_REPORT // Relatório de fechamento de turno
Informação
Para os recibos dos relatórios consolidado, detalhado e de fechamento de turno, nesse momento, é necessário receber um objeto pronto do respectivo tipo (vide Parâmetros de Entrada, mais abaixo).
Exemplo de Impressão
val request = SmartPOSPlugin.createPrintRequestBuilder()
.printData(Printer.PrintData(transactionData = transactionData))
.receiptType(ReceiptType.ESTABLISHMENT)
.callback(object: Callback<SmartPOSPrinterResponse>() {
override fun onStart() {
handlePrintStarted()
}
override fun onSuccess(response: SmartPOSPrinterResponse) {
handlePrintSuccess()
}
override fun onFail(error: Throwable) {
handlePrinterError()
}
override fun onComplete() {
handlePrintFinished()
}
})
.build()
Zoop.post(request)
Parâmetros de Entrada
Chave | Tipo | Objetivo | Exemplo |
---|---|---|---|
printData | Printer.PrintData | Objeto contendo os dados de impressão. | Printer.PrintData(transactionData = latestTransaction) |
receiptType | ReceiptType | Tipo do recibo. | ReceiptType.ESTABLISHMENT |
Para os recibos de relatórios, deve-se usar o campo de printData
respectivo de cada relatório:
- consolidado:
consolidatedReportData
; - detalhado:
detailedReportData
; - de fechamento de turno:
closedShiftsReportData
.
Para os demais recibos, deve-se usar o campo transactionData
.
PrintData(
val transactionData: TransactionData? = null,
val consolidatedReportData: ConsolidatedReportData? = null,
val detailedReportData: DetailedReportData? = null,
val closedShiftsReportData: ClosedShiftsReportData? = null
)
Venda/cancelamento e reimpressão de vias
data class TransactionData(
val value: Int?,
val paymentType: Int?,
val installments: Int?,
val status: String?,
val brand: String?,
val address: String?,
val sellerName: String?,
val acquiring: String?,
val pan: String?,
val autoCode: String?,
val documentType: String?,
val document: String?,
val nsu: String?,
val date: String?,
val hour: String?,
val cv: String?,
val arqc: String?,
val aid: String?,
val idPix: String?,
val sellerReceipt: String?,
val customerReceipt: String?,
val approvalMessage: String?,
var transactionId: String? // Id da transação
val receiptId: String? = null, // Id do recibo, caso aplicável (hoje, apenas transações Pix)
val pixId: String? = null, // Id do Pix
val cardFingerprint: String? = null // Token único do cartão.
)
Relatório consolidado
data class ConsolidatedReportData(
val issueDate: String?,
val sellerName: String?,
val documentType: String?,
val document: String?,
val serialNumber: String?,
val fromDate: String?,
val toDate: String?,
val fromTime: String?,
val toTime: String?,
val transactionData: List<ConsolidatedReportTransactionData>?,
val summary: ConsolidatedReportSummary?
)
data class ConsolidatedReportTransactionData(
val brand: String?,
val status: String?,
val totalValue: Int?,
val totalTransactions: Int?
)
data class ConsolidatedReportSummary(
val totalApproved: Int?,
val totalCanceled: Int?,
val totalTransactionsApproved: Int?,
val totalTransactionsCanceled: Int?
)
Relatório detalhado
data class DetailedReportData(
val issueDate: String?,
val sellerName: String?,
val documentType: String?,
val document: String?,
val serialNumber: String?,
val fromDate: String?,
val toDate: String?,
val fromTime: String?,
val toTime: String?,
val totalApproved: Int?,
val totalCanceled: Int?,
val approvedTransactions: List<DetailedReportTransactionData>?,
val canceledTransactions: List<DetailedReportTransactionData>?
)
data class DetailedReportTransactionData(
val paymentType: Int?,
val amount: Int?,
val date: String?,
val time: String?,
val brand: String?
)
Relatório de fechamento de turno
data class ClosedShiftsReportData(
val issueDate: String?,
val sellerName: String?,
val documentType: String?,
val document: String?,
val serialNumber: String?,
val fromDate: String?,
val toDate: String?,
val fromTime: String?,
val toTime: String?,
val transactionData: List<ClosedShiftsReportTransactionData>?,
val summary: ClosedShiftsReportSummary
)
data class ClosedShiftsReportTransactionData(
val status: String?,
val brand: String?,
val value: Int?,
val installments: Int?,
val date: String?,
val time: String?,
val paymentType: Int?,
val sumAmount: Int?,
val transactionsAmount: Int?
)
data class ClosedShiftsReportSummary(
val totalApproved: Int?,
val totalCanceled: Int?,
val totalTransactionsApproved: Int?,
val totalTransactionsCanceled: Int?
)