Compare commits

..

3 Commits

Author SHA1 Message Date
MooN
ce32ed2327 INV NO to TRACE NO 2026-01-15 23:57:31 +06:30
MooN
0ad0bc17b7 keyboard auto hide and search by trace no fix 2026-01-15 23:57:04 +06:30
MooN
fe97613f9b inv num to trc num in qr 2026-01-15 23:56:26 +06:30
9 changed files with 71 additions and 27 deletions

View File

@ -296,7 +296,9 @@ public class MyBindingAdapter {
@BindingAdapter({"isTrace"}) @BindingAdapter({"isTrace"})
public static void checkIsTraceOrInvoice(TextView textView, PayDetail payDetail) { public static void checkIsTraceOrInvoice(TextView textView, PayDetail payDetail) {
if(payDetail.getTransactionType() == TransactionsType.MMQR.value || payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value) { if(payDetail.getTransactionType() == TransactionsType.MMQR.value || payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value) {
textView.setText("INV:"+payDetail.getInvoiceNo()); // textView.setText("INV:"+payDetail.getInvoiceNo());
//tempo fix for qr trace num
textView.setText("TRC:"+payDetail.getVoucherNo());
} else { } else {
textView.setText("TRC:"+payDetail.getVoucherNo()); textView.setText("TRC:"+payDetail.getVoucherNo());
} }

View File

@ -10,6 +10,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.utsmm.kbz.ui.kpay.KPayViewModel; import com.utsmm.kbz.ui.kpay.KPayViewModel;
import com.utsmm.kbz.util.helper.KeyboardHelper;
import com.utsmyanmar.baselib.fragment.DataBindingFragment; import com.utsmyanmar.baselib.fragment.DataBindingFragment;
import com.utsmyanmar.baselib.network.model.KPayQRQueryRequest; import com.utsmyanmar.baselib.network.model.KPayQRQueryRequest;
import com.utsmyanmar.baselib.util.DataBindingConfig; import com.utsmyanmar.baselib.util.DataBindingConfig;
@ -128,7 +129,7 @@ public class ReprintAnyTransactionFragment extends DataBindingFragment {
private void searchByTrace(String trace) { private void searchByTrace(String trace) {
for (PayDetail s : lists) { for (PayDetail s : lists) {
if(s.getVoucherNo().equals(trace)) { if(s.getVoucherNo().contains(trace)) {
searchedLists.add(s); searchedLists.add(s);
} }
} }
@ -151,19 +152,13 @@ public class ReprintAnyTransactionFragment extends DataBindingFragment {
String input = managementViewModel.txtRRNTrace.getValue(); String input = managementViewModel.txtRRNTrace.getValue();
if(input != null && !input.isEmpty()) { if(input != null && !input.isEmpty()) {
if(input.length() == 6) { searchByTrace(input);
searchByTrace(input);
} else if(input.length() == 12) {
searchByRRN(input);
}
} else { } else {
searchedLists.addAll(lists); searchedLists.addAll(lists);
} }
cardViewAdapter.updateList(searchedLists); cardViewAdapter.updateList(searchedLists);
KeyboardHelper.hide(requireActivity());
} }
} }

View File

@ -13,6 +13,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.utsmm.kbz.ui.kpay.KPayViewModel; import com.utsmm.kbz.ui.kpay.KPayViewModel;
import com.utsmm.kbz.util.helper.KeyboardHelper;
import com.utsmyanmar.baselib.fragment.DataBindingFragment; import com.utsmyanmar.baselib.fragment.DataBindingFragment;
import com.utsmyanmar.baselib.util.DataBindingConfig; import com.utsmyanmar.baselib.util.DataBindingConfig;
import com.utsmyanmar.paylibs.model.PayDetail; import com.utsmyanmar.paylibs.model.PayDetail;
@ -225,6 +226,7 @@ public class QRRefundDetailFragment extends DataBindingFragment {
sharedViewModel.transactionsType.setValue(TransactionsType.MMQR_REFUND); sharedViewModel.transactionsType.setValue(TransactionsType.MMQR_REFUND);
kPayViewModel.setPayDetail(payDetail); kPayViewModel.setPayDetail(payDetail);
// sharedViewModel.amount.setValue(refundAmountStr); // sharedViewModel.amount.setValue(refundAmountStr);
KeyboardHelper.hide(requireActivity());
routeId = R.id.action_qrRefundDetail_inputPasswordFragment; routeId = R.id.action_qrRefundDetail_inputPasswordFragment;
safeNavigateToRouteId(); safeNavigateToRouteId();
} }

View File

@ -19,6 +19,7 @@ import com.utsmm.kbz.R;
import com.utsmm.kbz.config.Constants; import com.utsmm.kbz.config.Constants;
import com.utsmm.kbz.ui.core_viewmodel.SharedViewModel; import com.utsmm.kbz.ui.core_viewmodel.SharedViewModel;
import com.utsmm.kbz.ui.kpay.KPayViewModel; import com.utsmm.kbz.ui.kpay.KPayViewModel;
import com.utsmm.kbz.util.helper.KeyboardHelper;
import com.utsmyanmar.baselib.fragment.DataBindingFragment; import com.utsmyanmar.baselib.fragment.DataBindingFragment;
import com.utsmyanmar.baselib.util.DataBindingConfig; import com.utsmyanmar.baselib.util.DataBindingConfig;
import com.utsmyanmar.paylibs.model.PayDetail; import com.utsmyanmar.paylibs.model.PayDetail;
@ -107,7 +108,8 @@ public class QRRefundFragment extends DataBindingFragment {
safeNavigateToRouteId(); safeNavigateToRouteId();
} }
public void onSearch(){ public void onSearch(){
searchById(); searchByTrace();
KeyboardHelper.hide(requireActivity());
} }
} }
@ -118,7 +120,7 @@ public class QRRefundFragment extends DataBindingFragment {
NavHostFragment.findNavController(this).navigate(routeId, bundle); NavHostFragment.findNavController(this).navigate(routeId, bundle);
} }
private void searchById(){ private void searchByTrace(){
EditText editText = getView().findViewById(R.id.rnn_trace_id); EditText editText = getView().findViewById(R.id.rnn_trace_id);
String keyword = editText.getText().toString().trim(); String keyword = editText.getText().toString().trim();
@ -132,12 +134,7 @@ public class QRRefundFragment extends DataBindingFragment {
List<PayDetail> filteredList = new ArrayList<>(); List<PayDetail> filteredList = new ArrayList<>();
for(PayDetail item: originalList){ for(PayDetail item: originalList){
boolean match = item.getVoucherNo() != null && item.getVoucherNo().contains(keyword);
boolean match =
(item.getReferNo() != null && item.getReferNo().contains(keyword)) ||
(item.getInvoiceNo() != null && item.getInvoiceNo().contains(keyword)) ||
(item.getVoucherNo() != null && item.getVoucherNo().contains(keyword));
if(match){ if(match){
filteredList.add(item); filteredList.add(item);
} }

View File

@ -0,0 +1,44 @@
package com.utsmm.kbz.util.helper;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
public class KeyboardHelper {
private KeyboardHelper() {
// no instance
}
/** Hide keyboard using a View (Fragment-safe) */
public static void hide(Context context, View view) {
if (context == null || view == null) return;
InputMethodManager imm =
(InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
view.clearFocus();
}
}
/** Hide keyboard using Activity (Activity-safe) */
public static void hide(Activity activity) {
if (activity == null) return;
View view = activity.getCurrentFocus();
if (view == null) {
view = activity.getWindow().getDecorView();
}
InputMethodManager imm =
(InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
view.clearFocus();
}
}
}

View File

@ -71,7 +71,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:background="@null" android:background="@null"
android:hint="@string/txt_search_rrn_trace" android:hint="@string/txt_search_by_trace"
android:text="@={manageViewModel.txtRRNTrace}" android:text="@={manageViewModel.txtRRNTrace}"
android:textColor="@color/colorPrimary" android:textColor="@color/colorPrimary"
android:textColorHint="@color/colorPrimary" android:textColorHint="@color/colorPrimary"

View File

@ -118,7 +118,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:background="@null" android:background="@null"
android:hint="@string/txt_search_rrn_trace" android:hint="@string/txt_search_by_trace"
android:textColorHint="@color/colorPrimary" android:textColorHint="@color/colorPrimary"
android:alpha="0.6" android:alpha="0.6"
android:text="@={manageViewModel.txtRRNTrace}" android:text="@={manageViewModel.txtRRNTrace}"

View File

@ -615,5 +615,6 @@
<string name="txt_total_qr_transactions">Total QR Transactions</string> <string name="txt_total_qr_transactions">Total QR Transactions</string>
<string name="txt_no_qr_transactions_to_settle">No QR transactions to settle</string> <string name="txt_no_qr_transactions_to_settle">No QR transactions to settle</string>
<string name="txt_settle_qr_transactions">Confirm</string> <string name="txt_settle_qr_transactions">Confirm</string>
<string name="txt_search_by_trace">Search By Trace No</string>
</resources> </resources>

View File

@ -891,15 +891,16 @@ public abstract class BaseXPrint {
} }
dashBreak(); dashBreak();
print2ColumnsString("Refund Total:MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(refundTotal)); // print2ColumnsString("Refund Total:MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(refundTotal));
printer.appendPrnStr("Refund Total:MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(refundTotal) + " ", fontNormal, false);
dashBreak(); dashBreak();
print2ColumnsString("Sale Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(totalAmount)); // print2ColumnsString("Sale Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(totalAmount));
printer.appendPrnStr("Sale Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(totalAmount) + " ", fontNormal, false);
dashBreak(); dashBreak();
print2ColumnsString("Grand Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(totalAmount - refundTotal)); // print2ColumnsString("Grand Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(totalAmount - refundTotal));
printer.appendPrnStr("Grand Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(totalAmount - refundTotal) + " ", fontNormal, false);
dashBreakEnding(); dashBreakEnding();
// emptyLine(2); // emptyLine(2);
} }
private void printErrorBlock(String msg) { private void printErrorBlock(String msg) {
@ -1113,7 +1114,8 @@ public abstract class BaseXPrint {
printer.appendPrnStr("TIME :" + payDetail.getTransTime(), fontNormal, AlignEnum.LEFT, false); printer.appendPrnStr("TIME :" + payDetail.getTransTime(), fontNormal, AlignEnum.LEFT, false);
if (payDetail.getTransactionType() == TransactionsType.MMQR.value && payDetail.getQrTransStatus() == 1) { if (payDetail.getTransactionType() == TransactionsType.MMQR.value && payDetail.getQrTransStatus() == 1) {
// printer.appendPrnStr("TRACE NO:" + traceNum + " INV NO:" + invoiceNo, fontNormal, AlignEnum.LEFT,false); // printer.appendPrnStr("TRACE NO:" + traceNum + " INV NO:" + invoiceNo, fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr("INV NO :" + invoiceNo , fontNormal, AlignEnum.LEFT,false); // printer.appendPrnStr("INV NO :" + invoiceNo , fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr("TRACE NO :" + traceNum , fontNormal, AlignEnum.LEFT,false);
} else if (!payDetail.getTransType().equals(SETTLEMENT) && !payDetail.getTransType().equals(SUMMARY) && payDetail.getTransactionType() != TransactionsType.MMQR_REFUND.value && payDetail.getTransactionType() != TransactionsType.MMQR.value) { } else if (!payDetail.getTransType().equals(SETTLEMENT) && !payDetail.getTransType().equals(SUMMARY) && payDetail.getTransactionType() != TransactionsType.MMQR_REFUND.value && payDetail.getTransactionType() != TransactionsType.MMQR.value) {
printer.appendPrnStr("BTH NO :" + batchNum + " INV NO:" + invoiceNo, fontNormal, AlignEnum.LEFT,false); printer.appendPrnStr("BTH NO :" + batchNum + " INV NO:" + invoiceNo, fontNormal, AlignEnum.LEFT,false);
} else if (payDetail.getTransType().equals(SUMMARY)) { } else if (payDetail.getTransType().equals(SUMMARY)) {
@ -1199,7 +1201,8 @@ public abstract class BaseXPrint {
printer.appendPrnStr("TIME :" + payDetail.getTransTime(), fontNormal, AlignEnum.LEFT, false); printer.appendPrnStr("TIME :" + payDetail.getTransTime(), fontNormal, AlignEnum.LEFT, false);
if (payDetail.getTransactionType() == TransactionsType.MMQR.value && payDetail.getQrTransStatus() == 1) { if (payDetail.getTransactionType() == TransactionsType.MMQR.value && payDetail.getQrTransStatus() == 1) {
// printer.appendPrnStr("TRACE NO:" + traceNum + " INV NO:" + invoiceNo, fontNormal, AlignEnum.LEFT,false); // printer.appendPrnStr("TRACE NO:" + traceNum + " INV NO:" + invoiceNo, fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr("INV NO :" + invoiceNo , fontNormal, AlignEnum.LEFT,false); // printer.appendPrnStr("INV NO :" + invoiceNo , fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr("TRACE NO :" + traceNum , fontNormal, AlignEnum.LEFT,false);
} else if (!payDetail.getTransType().equals(SETTLEMENT) && !payDetail.getTransType().equals(SUMMARY) && payDetail.getTransactionType() != TransactionsType.MMQR_REFUND.value && payDetail.getTransactionType() != TransactionsType.MMQR.value) { } else if (!payDetail.getTransType().equals(SETTLEMENT) && !payDetail.getTransType().equals(SUMMARY) && payDetail.getTransactionType() != TransactionsType.MMQR_REFUND.value && payDetail.getTransactionType() != TransactionsType.MMQR.value) {
// printer.appendPrnStr("BTH NO :" + batchNum + " INV NO:" + invoiceNo, fontNormal, AlignEnum.LEFT,false); // printer.appendPrnStr("BTH NO :" + batchNum + " INV NO:" + invoiceNo, fontNormal, AlignEnum.LEFT,false);
} else if (payDetail.getTransType().equals(SUMMARY)) { } else if (payDetail.getTransType().equals(SUMMARY)) {