added auto reversal
This commit is contained in:
parent
c503b95027
commit
01043dbbca
@ -327,6 +327,17 @@ public class SettingsFragment extends DataBindingFragment {
|
||||
}
|
||||
}
|
||||
|
||||
public void onClearReversalClick() {
|
||||
try {
|
||||
sharedViewModel.transactionsType.postValue(TransactionsType.CLEAR_REVERSAL);
|
||||
sharedViewModel.setTransMenu(TransMenu.CLEAR_REVERSAL);
|
||||
Navigation.findNavController(requireActivity(), R.id.nav_host_fragment)
|
||||
.navigate(R.id.inputPasswordFragment);
|
||||
} catch (Exception e) {
|
||||
LogUtil.e(TAG, "Error in clear reversal click: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public void onTmsConfigClick() {
|
||||
try {
|
||||
LogUtil.d(TAG, "TMS Config clicked");
|
||||
|
||||
@ -6,6 +6,7 @@ import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.lifecycle.Observer;
|
||||
import androidx.navigation.NavController;
|
||||
import androidx.navigation.NavDestination;
|
||||
|
||||
@ -17,6 +18,9 @@ import com.utsmyanmar.baselib.fragment.DataBindingFragment;
|
||||
import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptRequest;
|
||||
import com.utsmyanmar.baselib.util.DataBindingConfig;
|
||||
import com.utsmyanmar.baselib.util.TimeoutCallback;
|
||||
import com.utsmyanmar.paylibs.model.TradeData;
|
||||
import com.utsmyanmar.paylibs.reversal.ReversalAction;
|
||||
import com.utsmyanmar.paylibs.reversal.ReversalListener;
|
||||
import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation;
|
||||
import com.utsmm.kbz.BR;
|
||||
import com.utsmm.kbz.R;
|
||||
@ -104,6 +108,17 @@ public class ProcessingFragment extends DataBindingFragment {
|
||||
setToolBarTitleWithoutBackIcon(getResourceString(R.string.title_processing));
|
||||
|
||||
|
||||
checkReversal();
|
||||
|
||||
|
||||
|
||||
// disableNavigationBar();
|
||||
|
||||
getNavController(Constants.NAV_HOST_ID).addOnDestinationChangedListener(listener);
|
||||
|
||||
}
|
||||
|
||||
private void startTransactionProcess() {
|
||||
if(isEmvTrans()) {
|
||||
startTransactionProcess(emvTransactionProcessViewModel);
|
||||
} else {
|
||||
@ -111,11 +126,44 @@ public class ProcessingFragment extends DataBindingFragment {
|
||||
}
|
||||
|
||||
sharedViewModel.loadingMsg(getResourceString(R.string.txt_sending));
|
||||
}
|
||||
|
||||
// disableNavigationBar();
|
||||
private void checkReversal() {
|
||||
sharedViewModel.getLastReversalTransaction().observe(getViewLifecycleOwner(), new Observer<PayDetail>() {
|
||||
@Override
|
||||
public void onChanged(PayDetail payDetail) {
|
||||
if(payDetail != null) {
|
||||
TradeData tradeData = new TradeData();
|
||||
tradeData.setPayDetail(payDetail);
|
||||
LogUtil.d(TAG,"Sending Reversal!");
|
||||
sharedViewModel.loadingMsg(getResourceString(R.string.txt_sending_reversal));
|
||||
|
||||
getNavController(Constants.NAV_HOST_ID).addOnDestinationChangedListener(listener);
|
||||
ReversalAction.getInstance().setData(tradeData).enqueue().startReversal(new ReversalListener() {
|
||||
@Override
|
||||
public void onSuccessReversal() {
|
||||
LogUtil.d(TAG,"Reversal Success!");
|
||||
payDetail.setIsNeedReversal(false);
|
||||
sharedViewModel.updatePayDetail(payDetail);
|
||||
startTransactionProcess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNetworkFail(String msg) {
|
||||
LogUtil.d(TAG,"Reversal Network Fail!"+msg);
|
||||
startTransactionProcess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailReversal(String msg) {
|
||||
LogUtil.d(TAG,"Reversal Fail!"+msg);
|
||||
startTransactionProcess();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
startTransactionProcess();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private boolean isEmvTrans() {
|
||||
|
||||
@ -2,6 +2,7 @@ package com.utsmm.kbz.ui.core_viewmodel;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
import android.util.Log;
|
||||
import android.widget.ListView;
|
||||
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel;
|
||||
import androidx.lifecycle.LiveData;
|
||||
@ -447,6 +448,14 @@ public class SharedViewModel extends ViewModel {
|
||||
return repository.getReversalTransaction(voucherNo);
|
||||
}
|
||||
|
||||
public LiveData<PayDetail> getLastReversalTransaction() {
|
||||
return repository.getLastReversalTransaction();
|
||||
}
|
||||
|
||||
public LiveData<List<PayDetail>> getAllReversalTransaction() {
|
||||
return repository.getAllReversalTransactions();
|
||||
}
|
||||
|
||||
public void updatePayDetail(PayDetail payDetail){
|
||||
repository.updatePayDetail(payDetail);
|
||||
}
|
||||
|
||||
@ -210,13 +210,35 @@ public class SelectHostFragment extends DataBindingFragment implements DataBindi
|
||||
|
||||
private void clearReversal() {
|
||||
checkPointReversal = false;
|
||||
sharedViewModel.getReversalTransaction(SystemParamsOperation.getInstance().getCurrentSerialNum()).observe(getViewLifecycleOwner(), payDetail -> {
|
||||
if (payDetail != null) {
|
||||
// sharedViewModel.getReversalTransaction(SystemParamsOperation.getInstance().getCurrentSerialNum()).observe(getViewLifecycleOwner(), payDetail -> {
|
||||
// if (payDetail != null) {
|
||||
// if (!checkPointReversal) {
|
||||
// payDetail.setIsNeedReversal(false);
|
||||
// sharedViewModel.updatePayDetail(payDetail);
|
||||
// checkPointReversal = true;
|
||||
//
|
||||
// showSuccessDialog("Clear reversal success!");
|
||||
// }
|
||||
// } else {
|
||||
// if (!checkPointReversal) {
|
||||
// showInfoDialog("Clear reversal", "No reversal found!");
|
||||
// checkPointReversal = true;
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// });
|
||||
|
||||
sharedViewModel.getAllReversalTransaction().observe(getViewLifecycleOwner(), new Observer<List<PayDetail>>() {
|
||||
@Override
|
||||
public void onChanged(List<PayDetail> payDetails) {
|
||||
if(payDetails != null && !payDetails.isEmpty()) {
|
||||
if(!checkPointReversal) {
|
||||
for (PayDetail payDetail : payDetails) {
|
||||
payDetail.setIsNeedReversal(false);
|
||||
sharedViewModel.updatePayDetail(payDetail);
|
||||
checkPointReversal = true;
|
||||
|
||||
}
|
||||
checkPointReversal = true;
|
||||
showSuccessDialog("Clear reversal success!");
|
||||
}
|
||||
} else {
|
||||
@ -224,7 +246,7 @@ public class SelectHostFragment extends DataBindingFragment implements DataBindi
|
||||
showInfoDialog("Clear reversal", "No reversal found!");
|
||||
checkPointReversal = true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -969,6 +969,81 @@
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<!-- Clear Reversal Card -->
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/clearReversalCard"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:clickable="true"
|
||||
android:foreground="?android:attr/selectableItemBackground"
|
||||
android:onClick="@{()->click.onClearReversalClick()}"
|
||||
app:cardBackgroundColor="@color/white"
|
||||
app:cardCornerRadius="16dp"
|
||||
app:cardElevation="2dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:padding="20dp">
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
app:cardBackgroundColor="@color/colorPrimary"
|
||||
app:cardCornerRadius="24dp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_gravity="center"
|
||||
android:src="@drawable/ic_clear_all"
|
||||
app:tint="@color/white" />
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="@font/rubik_medium"
|
||||
android:text="@string/title_clear_reversal"
|
||||
android:textColor="@color/colorTextTitle"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"
|
||||
tools:fontFamily="sans-serif-medium" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="2dp"
|
||||
android:fontFamily="@font/rubik_regular"
|
||||
android:text="@string/clear_reversal_description"
|
||||
android:textColor="@color/colorTextContent"
|
||||
android:textSize="14sp"
|
||||
tools:fontFamily="sans-serif" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<ImageView
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:src="@drawable/ic_right_arrow"
|
||||
app:tint="@color/colorPrimary" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<!-- TMS Server URL Card -->
|
||||
<!-- android:onClick="@{()->click.onTmsAddressClick()}"-->
|
||||
<androidx.cardview.widget.CardView
|
||||
|
||||
@ -97,6 +97,12 @@ public interface PayDetailDao {
|
||||
@Query("SELECT * FROM paydetail WHERE transactionType = 10 AND isNeedReversal = 1 AND voucherNo IN(:voucherNo)")
|
||||
LiveData<PayDetail> getReversalTransaction(String voucherNo);
|
||||
|
||||
@Query("SELECT * FROM PayDetail WHERE isNeedReversal = 1 ORDER BY PID DESC LIMIT 1")
|
||||
LiveData<PayDetail> getLastReversalTransactionLive();
|
||||
|
||||
@Query("SELECT * FROM PayDetail WHERE isNeedReversal = 1 ORDER BY PID DESC")
|
||||
LiveData<List<PayDetail>> getAllReversalTransactionsLive();
|
||||
|
||||
// @Query("SELECT * FROM paydetail WHERE transactionType != 10 ORDER BY PID DESC")
|
||||
@Query("SELECT * FROM paydetail ORDER BY PID DESC")
|
||||
LiveData<List<PayDetail>> getTransactionHistory();
|
||||
|
||||
@ -146,6 +146,8 @@ public class Repository {
|
||||
public void updatePayDetail(PayDetail payDetail){payDetailDao.update(payDetail);}
|
||||
|
||||
public LiveData<PayDetail> getReversalTransaction(String voucherNo) { return payDetailDao.getReversalTransaction(voucherNo);}
|
||||
public LiveData<PayDetail> getLastReversalTransaction() { return payDetailDao.getLastReversalTransactionLive();}
|
||||
public LiveData<List<PayDetail>> getAllReversalTransactions() { return payDetailDao.getAllReversalTransactionsLive();}
|
||||
|
||||
public LiveData<List<PayDetail>> getTransactionHistory(){ return payDetailDao.getTransactionHistory();}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user