From 2f1466d67bf8948070ae25ef680c739116348588 Mon Sep 17 00:00:00 2001 From: moon <56061215+MgKyawLay@users.noreply.github.com> Date: Sat, 18 Jul 2026 23:43:28 +0630 Subject: [PATCH] new e-receipt settlement request --- CHANGELOG.md | 18 ++++- app/build.gradle | 4 +- .../utsmm/kbz/ui/qr_pay/QRPayFragment.java | 2 +- .../java/com/utsmm/kbz/util/EReceiptUtil.java | 34 +++++++++ .../baselineProfiles/0/app-uat-release.dm | Bin 3257 -> 3275 bytes .../baselineProfiles/1/app-uat-release.dm | Bin 3178 -> 3192 bytes app/uat/release/output-metadata.json | 4 +- .../model/e_receipt/CardTransaction.java | 70 ++++++++++++++++++ .../model/e_receipt/EReceiptRequest.java | 17 +++++ gradle.properties | 3 + opencode.json | 11 +++ 11 files changed, 157 insertions(+), 6 deletions(-) create mode 100644 baselib/src/main/java/com/utsmyanmar/baselib/network/model/e_receipt/CardTransaction.java create mode 100644 opencode.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 6550b35..9289af1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,4 +33,20 @@ - signature re-show on void - signature re-show on refund - pre-auth, pre-auth can, pre-auth com s' manual entry flow are changed -- can show/hide manual entry in all transactions \ No newline at end of file +- can show/hide manual entry in all transactions + +## [2.35] - 29-05-2026 +- app crash fix + +## [2.36] - 29-05-2026 +- local database migration + +## [2.37] - 06-07-2026 +- **General** +- E-receipt send to backend service +- One Click Settlement + +## [2.38] - 06-07-2026 +- **General** +- SETTLEMENT both in one click +- showing each transaction detail when SETTLE \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 9a44f7e..f8007a9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -14,8 +14,8 @@ android { applicationId "com.utsmm.kbz" minSdk 24 targetSdk 33 - versionCode 47 - versionName "2.38" + versionCode 44 + versionName "2.39" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayFragment.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayFragment.java index 1962a26..4d8b27f 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayFragment.java @@ -63,7 +63,7 @@ public class QRPayFragment extends DataBindingFragment { features.add(new QRPayItem("Refund", R.drawable.ic_refund, true)); } features.add(new QRPayItem("History", R.drawable.ic_history, true)); -// features.add(new QRPayItem("Mock QR", R.drawable.ic_qr_pay, true)); + features.add(new QRPayItem("Mock QR", R.drawable.ic_qr_pay, true)); // List features = List.of( // new QRPayItem("Sale", R.drawable.ic_qr_pay, true), diff --git a/app/src/main/java/com/utsmm/kbz/util/EReceiptUtil.java b/app/src/main/java/com/utsmm/kbz/util/EReceiptUtil.java index 387d81f..f4871e0 100644 --- a/app/src/main/java/com/utsmm/kbz/util/EReceiptUtil.java +++ b/app/src/main/java/com/utsmm/kbz/util/EReceiptUtil.java @@ -3,8 +3,10 @@ package com.utsmm.kbz.util; import com.utsmm.kbz.BuildConfig; import com.utsmm.kbz.util.enums.TransResultStatus; import com.utsmm.kbz.util.tms.TMSUtil; +import com.utsmyanmar.baselib.network.model.e_receipt.CardTransaction; import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptRequest; import com.utsmyanmar.baselib.network.model.e_receipt.Transaction; +import com.utsmyanmar.paylibs.model.CardSettleData; import com.utsmyanmar.paylibs.model.PayDetail; import com.utsmyanmar.paylibs.model.QRSettleData; import com.utsmyanmar.paylibs.model.SettleData; @@ -203,6 +205,15 @@ public class EReceiptUtil { request.setDE37("0000"); request.setDE49(currencyCodeToText(payDetail.getCurrencyCode())); + request.setDE14(""); + request.setDE24(payDetail.getVoucherNo()); + request.setDE43(SystemParamsOperation.getInstance().getMerchantName()); + + List cardSettleDataList = payDetail.getCardSettleData(); + if (cardSettleDataList != null && !cardSettleDataList.isEmpty()) { + request.setCardTransactions(buildCardTransactions(cardSettleDataList)); + } + } else { request.setDE2(POSUtil.getInstance().getCardNumMasking(payDetail.getCardNo())); @@ -305,6 +316,29 @@ public class EReceiptUtil { return currencyCode; } + private static List buildCardTransactions(List cardSettleDataList) { + List list = new ArrayList<>(); + for (CardSettleData card : cardSettleDataList) { + CardTransaction ct = new CardTransaction(); + ct.setCardType(card.getCardType()); + ct.setCardNumber(POSUtil.getInstance().getCardNumMasking(card.getCardNum())); + ct.setInvoiceNumber(card.getInvoiceNum()); + ct.setTransactionType(card.getTransType()); + ct.setAmount(getDecimalAmountStatic(card.getAmount())); + ct.setApproveCode(card.getApprovalCode()); + String dateTime = card.getTransDate() + "T" + card.getTransTime() + "+08:00"; + ct.setTransactionTime(dateTime); + list.add(ct); + } + return list; + } + + private static String getDecimalAmountStatic(long amount) { + double realAmount = amount / 100.0; + DecimalFormat df = new DecimalFormat("0.00"); + return df.format(realAmount); + } + private static List buildTransactions(List qrSettleData) { List list = new ArrayList<>(); diff --git a/app/uat/release/baselineProfiles/0/app-uat-release.dm b/app/uat/release/baselineProfiles/0/app-uat-release.dm index 66eeec0680d492214067ac3f88dd8181d499376f..8218f27cc3259dcab2a77b369a5b66ee225ad6dd 100644 GIT binary patch delta 2876 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 delta 2814 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 HpSeE(^vqmv delta 2851 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 VxT7st=uZOw-j3VDDX~9K{|3q+Z#4h_ diff --git a/app/uat/release/output-metadata.json b/app/uat/release/output-metadata.json index 0dfff20..c65d3e6 100644 --- a/app/uat/release/output-metadata.json +++ b/app/uat/release/output-metadata.json @@ -11,8 +11,8 @@ "type": "SINGLE", "filters": [], "attributes": [], - "versionCode": 41, - "versionName": "2.36-uat", + "versionCode": 44, + "versionName": "2.39-uat", "outputFile": "app-uat-release.apk" } ], diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/network/model/e_receipt/CardTransaction.java b/baselib/src/main/java/com/utsmyanmar/baselib/network/model/e_receipt/CardTransaction.java new file mode 100644 index 0000000..25a9646 --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/network/model/e_receipt/CardTransaction.java @@ -0,0 +1,70 @@ +package com.utsmyanmar.baselib.network.model.e_receipt; + +public class CardTransaction { + + private String cardType; + private String cardNumber; + private String invoiceNumber; + private String transactionType; + private String amount; + private String approveCode; + private String transactionTime; + + public CardTransaction() {} + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getCardNumber() { + return cardNumber; + } + + public void setCardNumber(String cardNumber) { + this.cardNumber = cardNumber; + } + + public String getInvoiceNumber() { + return invoiceNumber; + } + + public void setInvoiceNumber(String invoiceNumber) { + this.invoiceNumber = invoiceNumber; + } + + public String getTransactionType() { + return transactionType; + } + + public void setTransactionType(String transactionType) { + this.transactionType = transactionType; + } + + public String getAmount() { + return amount; + } + + public void setAmount(String amount) { + this.amount = amount; + } + + public String getApproveCode() { + return approveCode; + } + + public void setApproveCode(String approveCode) { + this.approveCode = approveCode; + } + + public String getTransactionTime() { + return transactionTime; + } + + public void setTransactionTime(String transactionTime) { + this.transactionTime = transactionTime; + } +} diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/network/model/e_receipt/EReceiptRequest.java b/baselib/src/main/java/com/utsmyanmar/baselib/network/model/e_receipt/EReceiptRequest.java index 153ed8e..cc876ec 100644 --- a/baselib/src/main/java/com/utsmyanmar/baselib/network/model/e_receipt/EReceiptRequest.java +++ b/baselib/src/main/java/com/utsmyanmar/baselib/network/model/e_receipt/EReceiptRequest.java @@ -43,7 +43,12 @@ public class EReceiptRequest { private String hostId; private String paymentIdentifier; + private String DE24; + private String DE43; + private String DE14; + private List transactions; + private List cardTransactions; public EReceiptRequest() {} @@ -269,6 +274,18 @@ public class EReceiptRequest { this.cardLabel = cardLabel; } public void setMmqrRef(String mmqrRef){ this.mmqrRef = mmqrRef; } + + public String getDE24() { return DE24; } + public void setDE24(String DE24) { this.DE24 = DE24; } + + public String getDE43() { return DE43; } + public void setDE43(String DE43) { this.DE43 = DE43; } + + public String getDE14() { return DE14; } + public void setDE14(String DE14) { this.DE14 = DE14; } + + public List getCardTransactions() { return cardTransactions; } + public void setCardTransactions(List cardTransactions) { this.cardTransactions = cardTransactions; } } diff --git a/gradle.properties b/gradle.properties index e7c3ca8..95ba492 100644 --- a/gradle.properties +++ b/gradle.properties @@ -31,3 +31,6 @@ android.nonTransitiveRClass=true android.enableJetifier=false ERECEIPT_SECRET=y812J21lhha11OS #ERECEIPT_SECRET=8f4df38d1001bcc4620b5c736c66a03eef4653eb3ba31105faa2f2ee294c4a46 + +# Enabled parallel sync for Gradle 9.4+ +org.gradle.tooling.parallel=true diff --git a/opencode.json b/opencode.json new file mode 100644 index 0000000..c2818ea --- /dev/null +++ b/opencode.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "codebase-memory": { + "type": "local", + "command": "codebase-memory-mcp", + "args": [], + "enabled": true + } + } +}