Commit 7217826c authored by Izol's avatar Izol

fixing receipt layout

parent 4771844f
package com.example.self_service_3 package com.example.self_service_3
import android.graphics.Bitmap
import android.graphics.Color import android.graphics.Color
import android.graphics.Paint import android.graphics.Paint
import android.graphics.drawable.BitmapDrawable
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.os.Build import android.os.Build
import android.util.DisplayMetrics import android.util.DisplayMetrics
...@@ -21,7 +23,7 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT ...@@ -21,7 +23,7 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT
private var _mifareTicketing: MifareTicketingPresenter? = null private var _mifareTicketing: MifareTicketingPresenter? = null
private var result: MethodChannel.Result? = null private var result: MethodChannel.Result? = null
private lateinit var mifareTicketingV3:MifareTicketingV3 private lateinit var mifareTicketingV3: MifareTicketingV3
private lateinit var lastCardUI: Ticket private lateinit var lastCardUI: Ticket
override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) { override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) {
...@@ -253,25 +255,25 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT ...@@ -253,25 +255,25 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT
status: String status: String
) { ) {
val timeNow = Date() val timeNow = Date()
val ticket = Gson().fromJson(ticketJson, Ticket::class.java) val ticket = Gson().fromJson(ticketJson, Ticket::class.java);
val cardEpoch = ticket.cardExpirity.toLong() val cardEpoch = ticket.cardExpirity.toLong()
val cardExpiry = Date(cardEpoch * 1000) val cardExpiry = Date(cardEpoch * 1000)
val sdf = SimpleDateFormat("dd/MM/yyyy HH:mm", Locale.US) val sdf = SimpleDateFormat("dd/MM/yyyy HH:mm", Locale.US)
// [C]<img>${PrinterTextParserImg.bitmapToHexadecimalString(printer, this.getApplicationContext().getResources().getDrawableForDensity(R.drawable.logo, DisplayMetrics.DENSITY_MEDIUM))}</img> var bitmapIcon: Drawable? = this.getResources()?.getDrawableForDensity(
val bitmapIcon: Drawable? = this.getResources()?.getDrawableForDensity(
R.drawable.wahoo_print, R.drawable.wahoo_print,
DisplayMetrics.DENSITY_LOW, getTheme() DisplayMetrics.DENSITY_LOW, getTheme()
) )
print("model ${Build.MODEL}")
if (Build.MODEL != "T2s") { // if (Build.MODEL == "T2s" || Build.MODEL == "T2Mini" || Build.MODEL == "T2mini") {
if (Build.MODEL == "T2s" || Build.MODEL == "T2Mini") {
var text = """ var text = """
[C]${companyName} [C]${companyName}
[C]${companyAddress} [C]${companyAddress}
[C]${companyPhone} [C]${companyPhone}
[C]-------------------------------- [C]--------------------------------
[L]Tanggal : ${sdf.format(timeNow)} [L]xTanggal : ${sdf.format(timeNow)}
[L]No Transaksi : ${approvalCode} [L]xNo Transaksi : ${approvalCode}
[L]No Kartu : ${ticket.cardNumber.toString()} [L] No Kartu : ${ticket.cardNumber.toString()}
[L]Masa Berlaku : ${sdf.format(cardExpiry)}""" [L]Masa Berlaku : ${sdf.format(cardExpiry)}"""
if(status == "Berhasil"){ if(status == "Berhasil"){
text += """ text += """
...@@ -299,22 +301,41 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT ...@@ -299,22 +301,41 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT
""" """
} }
text = text.trimIndent() text = text.trimIndent()
_mifareTicketing?.generateReceiptTopup(null, text, bitmapIcon, false, 570f) _mifareTicketing?.generateReceiptTopup(
} else { null,
var receiptLayout: ReceiptBuilder = ReceiptBuilder(570) text,
bitmapIcon,
paperWidth = 57F,
isBluetooth = true
)
}
else {
var receiptLayout = ReceiptBuilder(570)
.setMarginTop(30) .setMarginTop(30)
.setMarginLeft(20) .setMarginLeft(30)
.setMarginRight(20) .setMarginRight(30)
val manufacturer = Build.MANUFACTURER val manufacturer = Build.MANUFACTURER
val model = Build.MODEL val model = Build.MODEL
var bitmapIcon: Drawable? = this.getResources()?.getDrawableForDensity( // rubah disini
R.drawable.wahoo_print, // var bitmapIcon: Drawable? = this.resources?.getDrawableForDensity(
DisplayMetrics.DENSITY_LOW, getTheme() // R.drawable.wahoo_print,
// // rubah disini
// DisplayMetrics.DENSITY_LOW, theme
//
// )
val resizedBitmap = Bitmap.createScaledBitmap(
(bitmapIcon as BitmapDrawable).bitmap,
400,
150,
false
) )
receiptLayout = receiptLayout receiptLayout = receiptLayout
.setAlign(Paint.Align.CENTER) .setAlign(Paint.Align.CENTER)
.setColor(Color.BLACK) .setColor(Color.BLACK)
.setTextSize(21F) .setTextSize(21F)
.addImage(resizedBitmap)
.addBlankSpace(10)
.addLine()
.addText(companyName) .addText(companyName)
.addBlankSpace(10) .addBlankSpace(10)
.addText(companyAddress) .addText(companyAddress)
...@@ -324,41 +345,63 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT ...@@ -324,41 +345,63 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT
.addLine() .addLine()
.addBlankSpace(10) .addBlankSpace(10)
.setAlign(Paint.Align.LEFT) .setAlign(Paint.Align.LEFT)
.addText("Tanggal...............: " + sdf.format(timeNow)) .addText("Tanggal..........................: " + sdf.format(timeNow))
.addBlankSpace(10)
.addText("No Transaksi.....: $approvalCode")
.addBlankSpace(10)
.addText("No Kartu.............: " + ticket.cardNumber)
.addBlankSpace(10)
.addText("Masa Berlaku................: " + sdf.format(cardExpiry))
.addBlankSpace(10) .addBlankSpace(10)
.addText( .addText("No Transaksi................: $approvalCode")
"Saldo Awal.........: Rp" + formatDecimalToPrice(prevBalance.toDouble())
.toString()
)
.addBlankSpace(10)
.addText("Isi Saldo.................: Rp" + formatDecimalToPrice(denom.toDouble()))
.addBlankSpace(10) .addBlankSpace(10)
.addText( .addText("No Kartu........................: " + ticket.cardNumber)
"Saldo Akhir.........: Rp" + formatDecimalToPrice(
ticket.balance!!.toDouble()
)
)
.addBlankSpace(10) .addBlankSpace(10)
.addText("Biaya Layanan.........: Rp" + formatDecimalToPrice(serviceCharge.toDouble()).toString()) .addText("Masa Berlaku...............: " + sdf.format(cardExpiry))
.addBlankSpace(10) .addBlankSpace(10)
.addText("Jumlah Bayar.........: Rp" + formatDecimalToPrice(serviceChargeAmount.toDouble()).toString()) if (status == "Berhasil"){
receiptLayout.addText("Saldo Awal...................: Rp" + formatDecimalToPrice(prevBalance.toDouble()).toString())
receiptLayout = receiptLayout .addBlankSpace(10)
.setAlign(Paint.Align.CENTER) .addText("Isi Saldo.........................: Rp" + formatDecimalToPrice(denom.toDouble()))
.addBlankSpace(15) .addBlankSpace(10)
.addLine() .addText("Saldo Akhir....................: Rp" + formatDecimalToPrice(ticket.balance!!.toDouble()))
.addBlankSpace(15) .addBlankSpace(10)
.addText("Top Up Berhasil") .addText("Biaya Layanan..............: Rp" + formatDecimalToPrice(serviceCharge.toDouble()).toString())
.addBlankSpace(10) .addBlankSpace(10)
.addText("powered by dolanapp.com") .addText("Jumlah Bayar................: Rp" + formatDecimalToPrice(serviceChargeAmount.toDouble()).toString())
.addBlankSpace(10)
.addText("Metode Bayar...............: $metodeBayar")
.addBlankSpace(10)
.addText("Status.............................: $status")
.addBlankSpace(10)
receiptLayout = receiptLayout
.setAlign(Paint.Align.CENTER)
.addBlankSpace(15)
.addLine()
.addBlankSpace(15)
.addText("Top Up Berhasil")
.addBlankSpace(10)
.addText("powered by dolanapp.com")
} else {
receiptLayout.addText("Saldo Awal...................: Rp" + formatDecimalToPrice(prevBalance.toDouble()).toString())
.addBlankSpace(10)
.addText("Isi Saldo.........................: Rp" + formatDecimalToPrice(denom.toDouble()))
.addBlankSpace(10)
.addText("Saldo Akhir....................: Rp" + formatDecimalToPrice(ticket.balance!!.toDouble()))
.addBlankSpace(10)
.addText("Biaya Layanan..............: Rp" + formatDecimalToPrice(serviceCharge.toDouble()).toString())
.addBlankSpace(10)
.addText("Jumlah Bayar................: Rp" + formatDecimalToPrice(serviceChargeAmount.toDouble()).toString())
.addBlankSpace(10)
.addText("Metode Bayar...............: $metodeBayar")
.addBlankSpace(10)
.addText("Status.............................: $status")
.addBlankSpace(10)
receiptLayout = receiptLayout
.setAlign(Paint.Align.CENTER)
.addBlankSpace(15)
.addLine()
.addBlankSpace(15)
.addText("Top Up Gagal")
.addBlankSpace(10)
.addText("powered by dolanapp.com")
}
val finalReceiptLayout: ReceiptBuilder = receiptLayout val finalReceiptLayout: ReceiptBuilder = receiptLayout
_mifareTicketing?.generateReceiptTopup(finalReceiptLayout, "", bitmapIcon, false, 570f) _mifareTicketing?.generateReceiptTopup(finalReceiptLayout, "", null, paperWidth = 570F, isBluetooth = false)
} }
} }
......
assets/logo.png

58.6 KB | W: | H:

assets/logo.png

9.1 KB | W: | H:

assets/logo.png
assets/logo.png
assets/logo.png
assets/logo.png
  • 2-up
  • Swipe
  • Onion skin
assets/wahoo.png

26.9 KB | W: | H:

assets/wahoo.png

21.9 KB | W: | H:

assets/wahoo.png
assets/wahoo.png
assets/wahoo.png
assets/wahoo.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -57,7 +57,7 @@ dependencies: ...@@ -57,7 +57,7 @@ dependencies:
timer_count_down: ^2.2.1 timer_count_down: ^2.2.1
easy_localization: ^3.0.0 easy_localization: ^3.0.0
sqflite: ^2.2.0+3 sqflite: ^2.2.0+3
device_info_plus: ^3.2.3 device_info_plus: ^8.1.0
lottie: ^1.4.3 lottie: ^1.4.3
awesome_dialog: ^3.0.2 awesome_dialog: ^3.0.2
floor: ^1.3.0 floor: ^1.3.0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment