diff --git a/.kotlin/sessions/kotlin-compiler-14813118053369288560.salive b/.kotlin/sessions/kotlin-compiler-14813118053369288560.salive deleted file mode 100644 index e69de29..0000000 diff --git a/app/src/main/java/com/utsmm/kbz/MainFragment.java b/app/src/main/java/com/utsmm/kbz/MainFragment.java index 2bd5c0d..44c32f3 100644 --- a/app/src/main/java/com/utsmm/kbz/MainFragment.java +++ b/app/src/main/java/com/utsmm/kbz/MainFragment.java @@ -931,5 +931,24 @@ public class MainFragment extends DataBindingFragment { safeNavigateToRouteId(); } } + + public void onClickVoid(){ + if (mainViewModel.payDetailSingle.getValue() != null) { + mainViewModel.startReversal(mainViewModel.payDetailSingle.getValue()); + } else if (checkTid()) { + showDeclineDialog("Please Download Config!"); + } else { + sharedViewModel.setTransactionsType(TransactionsType.VOID); +// sharedViewModel.transMenu.postValue(TransMenu.TRANSACTIONS); + sharedViewModel.setTransMenu(TransMenu.TRANSACTIONS); + routeId = R.id.action_nav_main_to_inputPasswordFragment; + safeRouteTo(currentId(),routeId, hostId()); + } + } + + public void onClickReport(){ + routeId = R.id.action_nav_main_to_manageFunctionFragment; + safeRouteTo(currentId(), routeId, hostId()); + } } } diff --git a/app/src/main/java/com/utsmm/kbz/ui/adapters/MyBindingAdapter.java b/app/src/main/java/com/utsmm/kbz/ui/adapters/MyBindingAdapter.java index 0132cbe..b075986 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/adapters/MyBindingAdapter.java +++ b/app/src/main/java/com/utsmm/kbz/ui/adapters/MyBindingAdapter.java @@ -3,6 +3,8 @@ package com.utsmm.kbz.ui.adapters; import android.annotation.SuppressLint; import android.graphics.Bitmap; import android.graphics.PorterDuff; +import android.view.View; +import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; @@ -299,4 +301,5 @@ public class MyBindingAdapter { textView.setText("TRC:"+payDetail.getVoucherNo()); } } + } diff --git a/app/src/main/java/com/utsmm/kbz/ui/core_viewmodel/SharedViewModel.java b/app/src/main/java/com/utsmm/kbz/ui/core_viewmodel/SharedViewModel.java index 919f35c..3a25462 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/core_viewmodel/SharedViewModel.java +++ b/app/src/main/java/com/utsmm/kbz/ui/core_viewmodel/SharedViewModel.java @@ -13,6 +13,7 @@ import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptResponse; import com.utsmyanmar.baselib.network.model.sirius.SiriusRequest; import com.utsmyanmar.baselib.network.model.sirius.SiriusResponse; import com.utsmyanmar.baselib.repo.Repository; +import com.utsmyanmar.baselib.util.TerminalUtil; import com.utsmyanmar.ecr.data.TransType; import com.utsmyanmar.ecr.data.model.Transactions; import com.utsmyanmar.paylibs.model.PayDetail; @@ -43,10 +44,6 @@ import javax.inject.Inject; @HiltViewModel public class SharedViewModel extends ViewModel { - public MutableLiveData terminalId = new MutableLiveData<>(); - - public MutableLiveData qrPartialRefundEnable = new MutableLiveData<>(); - private static final String TAG = SharedViewModel.class.getSimpleName(); private final Repository repository; @@ -170,6 +167,9 @@ public class SharedViewModel extends ViewModel { private PayDetail mPayDetail = new PayDetail(); + public MutableLiveData serialNumber = new MutableLiveData<>(); + + // Updated constructor for Hilt ViewModel @Inject public SharedViewModel(Repository repository) { @@ -177,10 +177,8 @@ public class SharedViewModel extends ViewModel { setPrintStatus(PrintStatus.FIRST_PRINT); isReprint.setValue(false); cardNo.setValue(""); - String tid = SystemParamsOperation.getInstance().getTerminalId(); - terminalId.setValue(tid); - boolean isQrPartialRefundEnable = SystemParamsOperation.getInstance().isQrPartialRefundEnable(); - qrPartialRefundEnable.setValue(isQrPartialRefundEnable); + String sn = TerminalUtil.getInstance().getSerialNo(); + serialNumber.setValue(sn); } diff --git a/app/src/main/java/com/utsmm/kbz/ui/kpay/QRRefundFragment.java b/app/src/main/java/com/utsmm/kbz/ui/kpay/QRRefundFragment.java index a3ddb6e..2c45632 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/kpay/QRRefundFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/kpay/QRRefundFragment.java @@ -14,7 +14,7 @@ import androidx.annotation.Nullable; import com.utsmm.kbz.util.tms.TMSUtil; import com.utsmyanmar.baselib.fragment.DataBindingFragment; import com.utsmyanmar.baselib.network.model.KPayRefund; -import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptQRRequest; +//import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptQRRequest; import com.utsmyanmar.baselib.util.DataBindingConfig; import com.utsmyanmar.paylibs.model.PayDetail; import com.utsmyanmar.paylibs.model.TradeData; diff --git a/app/src/main/java/com/utsmm/kbz/ui/kpay/QRTransactionFragment.java b/app/src/main/java/com/utsmm/kbz/ui/kpay/QRTransactionFragment.java index 9e53dff..85ced04 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/kpay/QRTransactionFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/kpay/QRTransactionFragment.java @@ -335,7 +335,7 @@ public class QRTransactionFragment extends DataBindingFragment implements DataBi } catch (Exception e) { LogUtil.d(TAG, "On Exception::"); - sharedViewModel.pushReceipt(buildEReceiptQRReceipt(payDetail, false, "QR Failed! :" + e.getMessage())); +// sharedViewModel.pushReceipt(buildEReceiptQRReceipt(payDetail, false, "QR Failed! :" + e.getMessage())); e.printStackTrace(); EReceiptRequest request = EReceiptUtil.getInstance().generateQRReceipt(payDetail, TransResultStatus.TIME_OUT); sharedViewModel.pushReceipt(request); @@ -445,44 +445,44 @@ public class QRTransactionFragment extends DataBindingFragment implements DataBi } - private EReceiptQRRequest buildEReceiptQRReceipt(PayDetail payDetail, boolean isSuccess, String reason) { - - // Timestamp (MMddHHmmss) - String currentTimestamp = new java.text.SimpleDateFormat( - "MMddHHmmss", java.util.Locale.getDefault() - ).format(new java.util.Date()); - - // Device Info - String serial = TMSUtil.getInstance().getSerialNumber(); - String appId = requireActivity().getPackageName(); - - // Terminal Info -// String terminalId = SystemParamsOperation.getInstance().getTerminalId(); -// String merchantId = SystemParamsOperation.getInstance().getMerchantId(); - - - // Amount convert (long cents → double → 0.00) - double realAmount = payDetail.getAmount() / 100.0; - DecimalFormat df = new DecimalFormat("0.00"); - String amount = df.format(realAmount); - - EReceiptQRRequest request = new EReceiptQRRequest(); - request.setDE3("QR"); // QR Process Code - request.setDE4(amount); // Amount - request.setDE7(currentTimestamp); // Timestamp - request.setDE37(payDetail.getReferNo()); // Reference No - request.setDE39(isSuccess ? "A" : "E"); // A=Approved, D=Declined/Timeout - request.setDE41(terminalId); - request.setDE42(merchantId); - request.setDE49(mapCurrency(payDetail.getCurrencyCode())); // Currency - request.setSerial(serial); - request.setInvoiceNumber(payDetail.getInvoiceNo()); - request.setDE11(payDetail.getVoucherNo()); // STAN - request.setAppId(appId); - request.setDescription(reason); // Anything: success / timeout / error message - - return request; - } +// private EReceiptQRRequest buildEReceiptQRReceipt(PayDetail payDetail, boolean isSuccess, String reason) { +// +// // Timestamp (MMddHHmmss) +// String currentTimestamp = new java.text.SimpleDateFormat( +// "MMddHHmmss", java.util.Locale.getDefault() +// ).format(new java.util.Date()); +// +// // Device Info +// String serial = TMSUtil.getInstance().getSerialNumber(); +// String appId = requireActivity().getPackageName(); +// +// // Terminal Info +//// String terminalId = SystemParamsOperation.getInstance().getTerminalId(); +//// String merchantId = SystemParamsOperation.getInstance().getMerchantId(); +// +// +// // Amount convert (long cents → double → 0.00) +// double realAmount = payDetail.getAmount() / 100.0; +// DecimalFormat df = new DecimalFormat("0.00"); +// String amount = df.format(realAmount); +// +// EReceiptQRRequest request = new EReceiptQRRequest(); +// request.setDE3("QR"); // QR Process Code +// request.setDE4(amount); // Amount +// request.setDE7(currentTimestamp); // Timestamp +// request.setDE37(payDetail.getReferNo()); // Reference No +// request.setDE39(isSuccess ? "A" : "E"); // A=Approved, D=Declined/Timeout +// request.setDE41(terminalId); +// request.setDE42(merchantId); +// request.setDE49(mapCurrency(payDetail.getCurrencyCode())); // Currency +// request.setSerial(serial); +// request.setInvoiceNumber(payDetail.getInvoiceNo()); +// request.setDE11(payDetail.getVoucherNo()); // STAN +// request.setAppId(appId); +// request.setDescription(reason); // Anything: success / timeout / error message +// +// return request; +// } } diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java index 4bf196f..39acd80 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java @@ -17,7 +17,7 @@ import com.utsmm.kbz.util.ecr.CoreUtils; import com.utsmm.kbz.util.tms.TMSUtil; import com.utsmyanmar.baselib.fragment.DataBindingFragment; import com.utsmyanmar.baselib.network.model.KPayRefund; -import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptQRRequest; +//import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptQRRequest; import com.utsmyanmar.baselib.util.DataBindingConfig; import com.utsmyanmar.paylibs.model.PayDetail; import com.utsmyanmar.paylibs.system.SystemDateTime; @@ -144,7 +144,7 @@ public class QRRefundProcessFragment extends DataBindingFragment { payDetail.setReferNo(referenceNo); payDetail.setIsCanceled(true); - sharedViewModel.pushReceipt(buildEReceiptQRReceipt(payDetail, true, "Refund success")); +// sharedViewModel.pushReceipt(buildEReceiptQRReceipt(payDetail, true, "Refund success")); retrievedUpdatePayDetail(referenceNo); @@ -159,7 +159,7 @@ public class QRRefundProcessFragment extends DataBindingFragment { errorMsg = response.getResponse().getMsg(); } payDetail.setTradeResultDes(errorMsg); - sharedViewModel.pushReceipt(buildEReceiptQRReceipt(payDetail, false, "Refund Failed! "+errorMsg)); +// sharedViewModel.pushReceipt(buildEReceiptQRReceipt(payDetail, false, "Refund Failed! "+errorMsg)); sharedViewModel.payDetail.setValue(payDetail); navigateToNext(); @@ -233,44 +233,44 @@ public class QRRefundProcessFragment extends DataBindingFragment { } } - private EReceiptQRRequest buildEReceiptQRReceipt(PayDetail payDetail, boolean isSuccess, String reason) { - - // Timestamp (MMddHHmmss) - String currentTimestamp = new java.text.SimpleDateFormat( - "MMddHHmmss", java.util.Locale.getDefault() - ).format(new java.util.Date()); - - // Device Info - String serial = TMSUtil.getInstance().getSerialNumber(); - String appId = requireActivity().getPackageName(); - - - // Terminal Info -// String terminalId = SystemParamsOperation.getInstance().getTerminalId(); -// String merchantId = SystemParamsOperation.getInstance().getMerchantId(); - String terminalId = TransactionUtil.getInstance().getQRTerminalId(); - String merchantId = TransactionUtil.getInstance().getQRMerchantId(); - - // Amount convert (long cents → double → 0.00) - double realAmount = payDetail.getAmount() / 100.0; - DecimalFormat df = new DecimalFormat("0.00"); - String amount = df.format(realAmount); - - EReceiptQRRequest request = new EReceiptQRRequest(); - request.setDE3("QRV"); // QR Process Code(fix later with get from config) - request.setDE4(amount); // Amount - request.setDE7(currentTimestamp); // Timestamp - request.setDE37(payDetail.getReferNo()); // Reference No - request.setDE39(isSuccess ? "A" : "E"); // A=Approved, E=Error/Declined/Timeout - request.setDE41(terminalId); - request.setDE42(merchantId); - request.setDE49(mapCurrency(payDetail.getCurrencyCode())); // Currency(fix later with get from config) - request.setSerial(serial); - request.setInvoiceNumber(payDetail.getInvoiceNo()); - request.setDE11(payDetail.getVoucherNo()); // STAN - request.setAppId(appId); - request.setDescription(reason); // Anything: success / timeout / error message - - return request; - } +// private EReceiptQRRequest buildEReceiptQRReceipt(PayDetail payDetail, boolean isSuccess, String reason) { +// +// // Timestamp (MMddHHmmss) +// String currentTimestamp = new java.text.SimpleDateFormat( +// "MMddHHmmss", java.util.Locale.getDefault() +// ).format(new java.util.Date()); +// +// // Device Info +// String serial = TMSUtil.getInstance().getSerialNumber(); +// String appId = requireActivity().getPackageName(); +// +// +// // Terminal Info +//// String terminalId = SystemParamsOperation.getInstance().getTerminalId(); +//// String merchantId = SystemParamsOperation.getInstance().getMerchantId(); +// String terminalId = TransactionUtil.getInstance().getQRTerminalId(); +// String merchantId = TransactionUtil.getInstance().getQRMerchantId(); +// +// // Amount convert (long cents → double → 0.00) +// double realAmount = payDetail.getAmount() / 100.0; +// DecimalFormat df = new DecimalFormat("0.00"); +// String amount = df.format(realAmount); +// +// EReceiptQRRequest request = new EReceiptQRRequest(); +// request.setDE3("QRV"); // QR Process Code(fix later with get from config) +// request.setDE4(amount); // Amount +// request.setDE7(currentTimestamp); // Timestamp +// request.setDE37(payDetail.getReferNo()); // Reference No +// request.setDE39(isSuccess ? "A" : "E"); // A=Approved, E=Error/Declined/Timeout +// request.setDE41(terminalId); +// request.setDE42(merchantId); +// request.setDE49(mapCurrency(payDetail.getCurrencyCode())); // Currency(fix later with get from config) +// request.setSerial(serial); +// request.setInvoiceNumber(payDetail.getInvoiceNo()); +// request.setDE11(payDetail.getVoucherNo()); // STAN +// request.setAppId(appId); +// request.setDescription(reason); // Anything: success / timeout / error message +// +// return request; +// } } diff --git a/app/src/main/res/drawable/honey.xml b/app/src/main/res/drawable/honey.xml new file mode 100644 index 0000000..bdd35cd --- /dev/null +++ b/app/src/main/res/drawable/honey.xml @@ -0,0 +1,28 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_dash_report.xml b/app/src/main/res/drawable/ic_dash_report.xml new file mode 100644 index 0000000..2d5ec2d --- /dev/null +++ b/app/src/main/res/drawable/ic_dash_report.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_dash_reports.xml b/app/src/main/res/drawable/ic_dash_reports.xml new file mode 100644 index 0000000..4294f0a --- /dev/null +++ b/app/src/main/res/drawable/ic_dash_reports.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/mmqr_logo.png b/app/src/main/res/drawable/mmqr_logo.png new file mode 100644 index 0000000..376941f Binary files /dev/null and b/app/src/main/res/drawable/mmqr_logo.png differ diff --git a/app/src/main/res/layout/fragment_dashboard_screen.xml b/app/src/main/res/layout/fragment_dashboard_screen.xml index c886040..136b519 100644 --- a/app/src/main/res/layout/fragment_dashboard_screen.xml +++ b/app/src/main/res/layout/fragment_dashboard_screen.xml @@ -15,36 +15,33 @@ + + + > - - - - + app:layout_constraintTop_toTopOf="parent" + tools:text="S/N : N86PW500019" + android:fontFamily="@font/rubik_medium" + android:text='@{"S/N : " + shareViewModel.serialNumber}' + android:textSize="14sp" + android:textStyle="bold" + /> @@ -52,13 +49,13 @@ android:id="@+id/bannerCard" android:layout_width="0dp" android:layout_height="0dp" - android:layout_margin="4dp" + android:layout_margin="16dp" app:cardCornerRadius="16dp" app:cardElevation="6dp" app:layout_constraintDimensionRatio="16:6" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="@id/tid" - app:layout_constraintTop_toBottomOf="@+id/tid"> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/serialNumber"> - - + + + app:layout_constraintTop_toTopOf="parent" + android:onClick="@{() -> click.onClickCard()}"> + android:orientation="vertical"> + app:tint="@color/colorPrimary" /> + android:textStyle="bold" /> - + - - - - + + android:orientation="vertical"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -162,146 +303,53 @@ + android:textStyle="bold" /> - + - - - - - - - - - - - - - - - - - + app:layout_constraintTop_toBottomOf="@+id/bt4"> + android:orientation="vertical"> + app:tint="@color/colorPrimary" /> + android:textStyle="bold" /> - + - - - - - - - - - - - diff --git a/app/src/main/res/layout/fragment_qr_refund_detail.xml b/app/src/main/res/layout/fragment_qr_refund_detail.xml index 2a537af..aa659b3 100644 --- a/app/src/main/res/layout/fragment_qr_refund_detail.xml +++ b/app/src/main/res/layout/fragment_qr_refund_detail.xml @@ -69,7 +69,6 @@ android:layout_weight="1" android:text="Partial Amount" android:textSize="16sp" - android:visibility="@{sharedViewModel.qrPartialRefundEnable ? View.VISIBLE : View.GONE}" /> diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index ec311e3..40c96e0 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -160,6 +160,9 @@ + Error Occured Open navigation drawer No History yet + QR Pay + See More UTS YOMA Bank diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/di/NetworkModule.java b/baselib/src/main/java/com/utsmyanmar/baselib/di/NetworkModule.java index 0be384f..28cfc86 100644 --- a/baselib/src/main/java/com/utsmyanmar/baselib/di/NetworkModule.java +++ b/baselib/src/main/java/com/utsmyanmar/baselib/di/NetworkModule.java @@ -288,7 +288,6 @@ public class NetworkModule { String baseUrl = tmsAddress.trim() + "/api/v1/"; // String baseUrl = tmsAddress.trim() + "/"; - final Gson gson = new GsonBuilder().create();