diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index d1d1558..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,33 +0,0 @@
-# Built files
-*.apk
-*.aab
-*.dex
-*.class
-
-# Gradle
-.gradle/
-build/
-*/build/
-
-**/build/
-**/build/**
-**/.transforms/
-**/intermediates/
-**/tmp/
-paysdk-lib/build/
-
-# Android Studio
-*.iml
-.idea/
-local.properties
-
-# Keystore
-*.jks
-*.keystore
-
-# OS files
-.DS_Store
-Thumbs.db
-
-# Logs
-*.log
\ No newline at end of file
diff --git a/.idea/ChatHistory_schema_v3.xml b/.idea/ChatHistory_schema_v3.xml
deleted file mode 100644
index 9e809a9..0000000
--- a/.idea/ChatHistory_schema_v3.xml
+++ /dev/null
@@ -1,827 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index b589d56..b86273d 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
index 9b9b0bb..b268ef3 100644
--- a/.idea/deploymentTargetSelector.xml
+++ b/.idea/deploymentTargetSelector.xml
@@ -4,14 +4,6 @@
-
-
-
-
-
-
-
-
diff --git a/.idea/deviceManager.xml b/.idea/deviceManager.xml
deleted file mode 100644
index 91f9558..0000000
--- a/.idea/deviceManager.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 59ea11b..613d51f 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -6,7 +6,7 @@
-
+
diff --git a/.idea/migrations.xml b/.idea/migrations.xml
deleted file mode 100644
index f8051a6..0000000
--- a/.idea/migrations.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index a8a2b16..f7608ed 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,9 +1,4 @@
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 94f6fad..cbeb700 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -40,6 +40,9 @@ android {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
+ debug {
+ debuggable true
+ }
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRHistoryAdapter.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRHistoryAdapter.java
index 5e3f660..a933387 100644
--- a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRHistoryAdapter.java
+++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRHistoryAdapter.java
@@ -1,9 +1,7 @@
package com.utsmm.kbz.ui.qr_pay;
import android.view.LayoutInflater;
-import android.view.View;
import android.view.ViewGroup;
-import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.databinding.DataBindingUtil;
@@ -20,8 +18,8 @@ public class QRHistoryAdapter extends RecyclerView.Adapter items = new ArrayList<>();
- public void setItems(List list){
- items = list;
+ public void setItems(List data){
+ items = data;
notifyDataSetChanged();
}
diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRHistoryFragment.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRHistoryFragment.java
index e94d7dc..d8e01df 100644
--- a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRHistoryFragment.java
+++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRHistoryFragment.java
@@ -1,9 +1,7 @@
package com.utsmm.kbz.ui.qr_pay;
import android.os.Bundle;
-import android.view.LayoutInflater;
import android.view.View;
-import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRHistoryViewModel.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRHistoryViewModel.java
index cfaf7d5..9cf38c7 100644
--- a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRHistoryViewModel.java
+++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRHistoryViewModel.java
@@ -16,14 +16,20 @@ import dagger.hilt.android.lifecycle.HiltViewModel;
public class QRHistoryViewModel extends ViewModel {
private final Repository repository;
private final LiveData> history;
+ private final LiveData> refundList;
@Inject
public QRHistoryViewModel(Repository repository){
this.repository = repository;
this.history = repository.getAllQRHistory();
+ this.refundList = repository.getRefundableQRHistory();
}
public LiveData> getAllQrHistory(){
return history;
}
+
+ public LiveData> getRefundableQrHistory(){
+ return refundList;
+ }
}
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 c2ba79d..fdc2204 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
@@ -10,6 +10,8 @@ import com.utsmm.kbz.R;
import com.utsmm.kbz.config.Constants;
import com.utsmm.kbz.ui.adapters.QRPayAdapter;
import com.utsmm.kbz.ui.core_viewmodel.SharedViewModel;
+import com.utsmm.kbz.ui.management.ManagementViewModel;
+import com.utsmm.kbz.ui.settlement.SettlementViewModel;
import com.utsmm.kbz.util.Connectivity;
import com.utsmm.kbz.util.tms.TMSUtil;
import com.utsmyanmar.baselib.util.DataBindingConfig;
@@ -18,6 +20,7 @@ import com.utsmyanmar.paylibs.model.PayDetail;
import com.utsmyanmar.paylibs.utils.POSUtil;
import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation;
import com.utsmyanmar.paylibs.utils.enums.CurrencyType;
+import com.utsmyanmar.paylibs.utils.enums.HostType;
import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType;
import java.util.Date;
@@ -27,15 +30,16 @@ public class QRPayFragment extends DataBindingFragment {
private MainViewModel mainViewModel;
private SharedViewModel sharedViewModel;
+ private SettlementViewModel settlementViewModel;
+ private ManagementViewModel managementViewModel;
private static final int hostId = Constants.NAV_HOST_ID;
private int routeId;
- private static final int currentId = R.id.dashboardTransFragment;
+ private static final int currentId = R.id.qrFragment;
public static QRPayFragment newInstance() {
return new QRPayFragment();
}
- private QRPayViewModel vm;
private Observer observeLastTrans;
private PayDetail lastPay;
@@ -47,9 +51,11 @@ public class QRPayFragment extends DataBindingFragment {
@Override
protected void initViewModel() {
- vm = new ViewModelProvider(this).get(QRPayViewModel.class);
+
mainViewModel = new ViewModelProvider(requireActivity()).get(MainViewModel.class);
sharedViewModel = new ViewModelProvider(requireActivity()).get(SharedViewModel.class);
+ settlementViewModel = getFragmentScopeViewModel(SettlementViewModel.class);
+ managementViewModel = getFragmentScopeViewModel(ManagementViewModel.class);
}
@Override
@@ -68,7 +74,7 @@ public class QRPayFragment extends DataBindingFragment {
onClickQRPay();
break;
case "Refund":
-
+ onClickRefund();
break;
case "History":
onClickHistory();
@@ -76,7 +82,7 @@ public class QRPayFragment extends DataBindingFragment {
}
});
- DataBindingConfig config = new DataBindingConfig(R.layout.fragment_qr_pay, BR.vm, vm);
+ DataBindingConfig config = new DataBindingConfig(R.layout.fragment_qr_pay, BR.mainViewModel, mainViewModel);
config.addBindingParam(BR.adapter, adapter);
return config;
}
@@ -386,6 +392,13 @@ public class QRPayFragment extends DataBindingFragment {
}
private void onClickHistory(){
- NavHostFragment.findNavController(this).navigate(R.id.action_qrFragment_to_qrHistory);
+ sharedViewModel.hostType.setValue(HostType.QR);
+ routeId = R.id.action_qrFragment_to_qrHistory;
+ safeNavigateToRouteId();
+ }
+
+ private void onClickRefund(){
+ routeId = R.id.action_qrFragment_to_qr_refund_list;
+ safeNavigateToRouteId();
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayViewModel.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayViewModel.java
index 0adab25..adab230 100644
--- a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayViewModel.java
+++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayViewModel.java
@@ -1,17 +1,30 @@
package com.utsmm.kbz.ui.qr_pay;
+import androidx.lifecycle.LiveData;
import androidx.lifecycle.ViewModel;
+import com.utsmyanmar.baselib.repo.Repository;
+import com.utsmyanmar.paylibs.model.PayDetail;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import dagger.hilt.android.lifecycle.HiltViewModel;
+
+@HiltViewModel
public class QRPayViewModel extends ViewModel {
- public void generateQR(){
+ private final Repository repository;
+ private final LiveData> refundableHistory;
+
+ @Inject
+ public QRPayViewModel(Repository repository){
+ this.repository = repository;
+ this.refundableHistory = repository.getRefundableQRHistory();
}
- public void refundQR(){
-
- }
-
- public void historyQR(){
-
+ public LiveData> getRefundableQrHistory(){
+ return refundableHistory;
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundFragment.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundFragment.java
new file mode 100644
index 0000000..c52b270
--- /dev/null
+++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundFragment.java
@@ -0,0 +1,90 @@
+package com.utsmm.kbz.ui.qr_pay;
+
+import android.os.Bundle;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.lifecycle.ViewModelProvider;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.utsmm.kbz.BR;
+import com.utsmm.kbz.R;
+import com.utsmm.kbz.config.Constants;
+import com.utsmm.kbz.ui.core_viewmodel.SharedViewModel;
+import com.utsmyanmar.baselib.fragment.DataBindingFragment;
+import com.utsmyanmar.baselib.util.DataBindingConfig;
+import com.utsmyanmar.paylibs.model.PayDetail;
+
+import java.util.List;
+
+
+public class QRRefundFragment extends DataBindingFragment {
+
+ private static final int hostId = Constants.NAV_HOST_ID;
+ private int routeId;
+ private static final int currentId = R.id.qrRefundList;
+ private QRPayViewModel qrPayViewModel;
+ private SharedViewModel sharedViewModel;
+ private QRRefundViewAdapter adapter;
+
+ @Override
+ protected int currentId() {
+ return currentId;
+ }
+ @Override
+ protected int hostId() {return hostId;}
+
+ @Override
+ protected int routeId() {return routeId;}
+
+ @Override
+ protected void initViewModel() {
+ sharedViewModel = getFragmentScopeViewModel(SharedViewModel.class);
+ qrPayViewModel = getFragmentScopeViewModel(QRPayViewModel.class);
+
+ }
+
+ @Override
+ protected DataBindingConfig getDataBindingConfig() {
+ adapter = new QRRefundViewAdapter();
+ return new DataBindingConfig(R.layout.fragment_qr_refund, BR.sharedViewModel, sharedViewModel).addBindingParam(BR.adapter, adapter);
+ }
+
+ @Override
+ public void onResume(){
+ super.onResume();
+ setToolBarTitleWithBackIcon("Refund");
+ }
+
+ @Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState){
+ super.onViewCreated(view, savedInstanceState);
+
+ RecyclerView recyclerView = view.findViewById(R.id.qrRefundHistory);
+ recyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
+ recyclerView.setAdapter(adapter);
+ observeData();
+ }
+
+ private void observeData(){
+ qrPayViewModel.getRefundableQrHistory().observe(getViewLifecycleOwner(), this::updateList);
+ }
+
+ private void updateList(List list){
+ if(list == null || list.isEmpty()){
+ showSingleInfoDialog("No data test");
+ adapter.setData(null);
+ }else{
+ adapter.setData(list);
+ }
+ }
+
+ public class ClickEvent {
+ public void onCancel(){
+ safeNavigateToRouteId();
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundViewAdapter.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundViewAdapter.java
new file mode 100644
index 0000000..076cc45
--- /dev/null
+++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundViewAdapter.java
@@ -0,0 +1,73 @@
+package com.utsmm.kbz.ui.qr_pay;
+
+import androidx.annotation.NonNull;
+import androidx.databinding.DataBindingUtil;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.utsmm.kbz.BR;
+import com.utsmm.kbz.R;
+import com.utsmm.kbz.databinding.ItemQrRefundBinding;
+import com.utsmyanmar.paylibs.model.PayDetail;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class QRRefundViewAdapter extends RecyclerView.Adapter {
+
+ private List payDetailList = new ArrayList<>();
+
+ public QRRefundViewAdapter(){}
+ public QRRefundViewAdapter(List payDetailList){
+ this.payDetailList = payDetailList;
+ }
+
+ public void setData(List data){
+ if(data == null) return;
+ payDetailList.clear();
+ payDetailList.addAll(data);
+ notifyDataSetChanged();
+ }
+
+ @NonNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ ItemQrRefundBinding binding = DataBindingUtil.inflate(
+ LayoutInflater.from(parent.getContext()),
+ R.layout.item_qr_refund,
+ parent,
+ false
+ );
+
+ return new ViewHolder(binding);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+ PayDetail payDetail = payDetailList.get(position);
+ holder.bind(payDetail);
+ }
+
+ @Override
+ public int getItemCount() {
+ return payDetailList == null ? 0 : payDetailList.size();
+ }
+
+ static class ViewHolder extends RecyclerView.ViewHolder {
+ private final ItemQrRefundBinding binding;
+
+ public ViewHolder(ItemQrRefundBinding binding){
+ super(binding.getRoot());
+ this.binding = binding;
+ }
+
+ public void bind(Object object){
+ binding.setVariable(BR.payDetail, object);
+ binding.executePendingBindings();
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_qr_pay.xml b/app/src/main/res/layout/fragment_qr_pay.xml
index 0c09527..ab3f5c5 100644
--- a/app/src/main/res/layout/fragment_qr_pay.xml
+++ b/app/src/main/res/layout/fragment_qr_pay.xml
@@ -6,10 +6,6 @@
-
-
diff --git a/app/src/main/res/layout/fragment_qr_refund.xml b/app/src/main/res/layout/fragment_qr_refund.xml
new file mode 100644
index 0000000..f0d75e9
--- /dev/null
+++ b/app/src/main/res/layout/fragment_qr_refund.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_qr_history.xml b/app/src/main/res/layout/item_qr_history.xml
index 8b013b4..6153cc2 100644
--- a/app/src/main/res/layout/item_qr_history.xml
+++ b/app/src/main/res/layout/item_qr_history.xml
@@ -21,7 +21,7 @@
android:layout_marginVertical="6dp"
app:cardCornerRadius="12dp"
app:cardElevation="0dp"
- app:cardBackgroundColor="@color/white"
+ app:cardBackgroundColor="@color/colorPrimary"
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackground"
@@ -41,7 +41,7 @@
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@drawable/ic_custom_pos"
- app:tint="@color/colorPrimary"
+ app:tint="@color/white"
android:alpha="0.8"
android:layout_marginEnd="12dp"
android:layout_gravity="top" />
@@ -66,11 +66,10 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@{POSUtil.getInstance().getTransName(payDetail)}"
- android:textColor="@color/colorPrimary"
+ android:textColor="@color/white"
android:textSize="16sp"
android:textStyle="bold"
android:fontFamily="sans-serif-medium"
- app:isColorChanges="@{payDetail}"
tools:text="SALE" />
@@ -78,11 +77,10 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{POSUtil.getInstance().checkMinusSign(payDetail.transactionType)+POSUtil.getInstance().getDecimalAmountSeparatorFormat(payDetail.amount) + ` `+POSUtil.getInstance().currencyCodeToText(payDetail.currencyCode)}"
- android:textColor="@color/colorPrimary"
+ android:textColor="@color/white"
android:textSize="16sp"
android:textStyle="bold"
android:fontFamily="sans-serif-medium"
- app:isColorChanges="@{payDetail}"
tools:text="1,000.00 MMK" />
@@ -92,11 +90,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{POSUtil.getInstance().convertDateFormatByDateString(payDetail.transDate)}"
- android:textColor="@color/colorPrimary"
+ android:textColor="@color/white"
android:textSize="14sp"
android:alpha="0.8"
android:fontFamily="sans-serif"
- app:isColorChanges="@{payDetail}"
android:layout_marginBottom="6dp"
tools:text="2022-11-26" />
@@ -105,7 +102,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{POSUtil.getInstance().getCardNumMasking(payDetail.cardNo)}"
- android:textColor="@color/colorPrimary"
+ android:textColor="@color/white"
android:textSize="14sp"
android:alpha="0.8"
android:fontFamily="monospace"
@@ -124,11 +121,10 @@
android:layout_height="wrap_content"
android:layout_weight="1"
app:isTrace="@{payDetail}"
- android:textColor="@color/colorPrimary"
+ android:textColor="@color/white"
android:textSize="13sp"
android:alpha="0.7"
android:fontFamily="monospace"
- app:isColorChanges="@{payDetail}"
tools:text="TRC:000050" />
@@ -137,12 +133,11 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@{`RRN:`+payDetail.referNo}"
- android:textColor="@color/colorPrimary"
+ android:textColor="@color/white"
android:textSize="13sp"
android:alpha="0.7"
android:fontFamily="monospace"
android:textAlignment="textEnd"
- app:isColorChanges="@{payDetail}"
tools:text="RRN:233001786242" />
@@ -154,7 +149,7 @@
android:layout_width="16dp"
android:layout_height="16dp"
android:src="@drawable/ic_right_arrow"
- app:tint="@color/colorPrimary"
+ app:tint="@color/white"
android:alpha="0.6"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp" />
diff --git a/app/src/main/res/layout/item_qr_refund.xml b/app/src/main/res/layout/item_qr_refund.xml
new file mode 100644
index 0000000..6153cc2
--- /dev/null
+++ b/app/src/main/res/layout/item_qr_refund.xml
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml
index 806b849..da28230 100644
--- a/app/src/main/res/navigation/mobile_navigation.xml
+++ b/app/src/main/res/navigation/mobile_navigation.xml
@@ -1084,13 +1084,24 @@
app:destination="@id/inputAmountFragment" />
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index ece6c87..de3b5ef 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -64,4 +64,5 @@
48dp
12dp
56dp
+ 16dp
\ No newline at end of file
diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/db/dao/PayDetailDao.java b/baselib/src/main/java/com/utsmyanmar/baselib/db/dao/PayDetailDao.java
index c84e770..63a9d3c 100644
--- a/baselib/src/main/java/com/utsmyanmar/baselib/db/dao/PayDetailDao.java
+++ b/baselib/src/main/java/com/utsmyanmar/baselib/db/dao/PayDetailDao.java
@@ -149,7 +149,11 @@ public interface PayDetailDao {
@Query("SELECT * FROM paydetail ORDER BY PID DESC")
LiveData> getAllTrans();
-
@Query("SELECT * FROM paydetail WHERE transactionType = 20 ORDER BY PID DESC")
LiveData> getAllQRHistory();
+
+ @Query("SELECT * FROM paydetail WHERE transactionType = 20 AND qrTransStatus = 1 ORDER BY PID DESC")
+ LiveData> getRefundableQRHistory();
+//isReturnGood
+
}
diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/repo/Repository.java b/baselib/src/main/java/com/utsmyanmar/baselib/repo/Repository.java
index a0af143..83fd706 100644
--- a/baselib/src/main/java/com/utsmyanmar/baselib/repo/Repository.java
+++ b/baselib/src/main/java/com/utsmyanmar/baselib/repo/Repository.java
@@ -228,4 +228,6 @@ public class Repository {
public LiveData> getAllTrans() { return payDetailDao.getAllTrans(); }
public LiveData> getAllQRHistory(){ return payDetailDao.getAllQRHistory();}
+
+ public LiveData> getRefundableQRHistory(){ return payDetailDao.getRefundableQRHistory(); }
}