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() {
|
public void onTmsConfigClick() {
|
||||||
try {
|
try {
|
||||||
LogUtil.d(TAG, "TMS Config clicked");
|
LogUtil.d(TAG, "TMS Config clicked");
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import android.view.View;
|
|||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.lifecycle.Observer;
|
||||||
import androidx.navigation.NavController;
|
import androidx.navigation.NavController;
|
||||||
import androidx.navigation.NavDestination;
|
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.network.model.e_receipt.EReceiptRequest;
|
||||||
import com.utsmyanmar.baselib.util.DataBindingConfig;
|
import com.utsmyanmar.baselib.util.DataBindingConfig;
|
||||||
import com.utsmyanmar.baselib.util.TimeoutCallback;
|
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.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation;
|
||||||
import com.utsmm.kbz.BR;
|
import com.utsmm.kbz.BR;
|
||||||
import com.utsmm.kbz.R;
|
import com.utsmm.kbz.R;
|
||||||
@ -104,6 +108,17 @@ public class ProcessingFragment extends DataBindingFragment {
|
|||||||
setToolBarTitleWithoutBackIcon(getResourceString(R.string.title_processing));
|
setToolBarTitleWithoutBackIcon(getResourceString(R.string.title_processing));
|
||||||
|
|
||||||
|
|
||||||
|
checkReversal();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// disableNavigationBar();
|
||||||
|
|
||||||
|
getNavController(Constants.NAV_HOST_ID).addOnDestinationChangedListener(listener);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void startTransactionProcess() {
|
||||||
if(isEmvTrans()) {
|
if(isEmvTrans()) {
|
||||||
startTransactionProcess(emvTransactionProcessViewModel);
|
startTransactionProcess(emvTransactionProcessViewModel);
|
||||||
} else {
|
} else {
|
||||||
@ -111,11 +126,44 @@ public class ProcessingFragment extends DataBindingFragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sharedViewModel.loadingMsg(getResourceString(R.string.txt_sending));
|
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() {
|
private boolean isEmvTrans() {
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.utsmm.kbz.ui.core_viewmodel;
|
|||||||
|
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.widget.ListView;
|
||||||
|
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel;
|
import dagger.hilt.android.lifecycle.HiltViewModel;
|
||||||
import androidx.lifecycle.LiveData;
|
import androidx.lifecycle.LiveData;
|
||||||
@ -447,6 +448,14 @@ public class SharedViewModel extends ViewModel {
|
|||||||
return repository.getReversalTransaction(voucherNo);
|
return repository.getReversalTransaction(voucherNo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LiveData<PayDetail> getLastReversalTransaction() {
|
||||||
|
return repository.getLastReversalTransaction();
|
||||||
|
}
|
||||||
|
|
||||||
|
public LiveData<List<PayDetail>> getAllReversalTransaction() {
|
||||||
|
return repository.getAllReversalTransactions();
|
||||||
|
}
|
||||||
|
|
||||||
public void updatePayDetail(PayDetail payDetail){
|
public void updatePayDetail(PayDetail payDetail){
|
||||||
repository.updatePayDetail(payDetail);
|
repository.updatePayDetail(payDetail);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -210,21 +210,43 @@ public class SelectHostFragment extends DataBindingFragment implements DataBindi
|
|||||||
|
|
||||||
private void clearReversal() {
|
private void clearReversal() {
|
||||||
checkPointReversal = false;
|
checkPointReversal = false;
|
||||||
sharedViewModel.getReversalTransaction(SystemParamsOperation.getInstance().getCurrentSerialNum()).observe(getViewLifecycleOwner(), payDetail -> {
|
// sharedViewModel.getReversalTransaction(SystemParamsOperation.getInstance().getCurrentSerialNum()).observe(getViewLifecycleOwner(), payDetail -> {
|
||||||
if (payDetail != null) {
|
// if (payDetail != null) {
|
||||||
if (!checkPointReversal) {
|
// if (!checkPointReversal) {
|
||||||
payDetail.setIsNeedReversal(false);
|
// payDetail.setIsNeedReversal(false);
|
||||||
sharedViewModel.updatePayDetail(payDetail);
|
// sharedViewModel.updatePayDetail(payDetail);
|
||||||
checkPointReversal = true;
|
// checkPointReversal = true;
|
||||||
|
//
|
||||||
|
// showSuccessDialog("Clear reversal success!");
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// if (!checkPointReversal) {
|
||||||
|
// showInfoDialog("Clear reversal", "No reversal found!");
|
||||||
|
// checkPointReversal = true;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
|
||||||
showSuccessDialog("Clear reversal success!");
|
sharedViewModel.getAllReversalTransaction().observe(getViewLifecycleOwner(), new Observer<List<PayDetail>>() {
|
||||||
}
|
@Override
|
||||||
} else {
|
public void onChanged(List<PayDetail> payDetails) {
|
||||||
if (!checkPointReversal) {
|
if(payDetails != null && !payDetails.isEmpty()) {
|
||||||
showInfoDialog("Clear reversal", "No reversal found!");
|
if(!checkPointReversal) {
|
||||||
checkPointReversal = true;
|
for (PayDetail payDetail : payDetails) {
|
||||||
}
|
payDetail.setIsNeedReversal(false);
|
||||||
|
sharedViewModel.updatePayDetail(payDetail);
|
||||||
|
|
||||||
|
}
|
||||||
|
checkPointReversal = true;
|
||||||
|
showSuccessDialog("Clear reversal success!");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!checkPointReversal) {
|
||||||
|
showInfoDialog("Clear reversal", "No reversal found!");
|
||||||
|
checkPointReversal = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -969,6 +969,81 @@
|
|||||||
|
|
||||||
</androidx.cardview.widget.CardView>
|
</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 -->
|
<!-- TMS Server URL Card -->
|
||||||
<!-- android:onClick="@{()->click.onTmsAddressClick()}"-->
|
<!-- android:onClick="@{()->click.onTmsAddressClick()}"-->
|
||||||
<androidx.cardview.widget.CardView
|
<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)")
|
@Query("SELECT * FROM paydetail WHERE transactionType = 10 AND isNeedReversal = 1 AND voucherNo IN(:voucherNo)")
|
||||||
LiveData<PayDetail> getReversalTransaction(String 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 WHERE transactionType != 10 ORDER BY PID DESC")
|
||||||
@Query("SELECT * FROM paydetail ORDER BY PID DESC")
|
@Query("SELECT * FROM paydetail ORDER BY PID DESC")
|
||||||
LiveData<List<PayDetail>> getTransactionHistory();
|
LiveData<List<PayDetail>> getTransactionHistory();
|
||||||
|
|||||||
@ -146,6 +146,8 @@ public class Repository {
|
|||||||
public void updatePayDetail(PayDetail payDetail){payDetailDao.update(payDetail);}
|
public void updatePayDetail(PayDetail payDetail){payDetailDao.update(payDetail);}
|
||||||
|
|
||||||
public LiveData<PayDetail> getReversalTransaction(String voucherNo) { return payDetailDao.getReversalTransaction(voucherNo);}
|
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();}
|
public LiveData<List<PayDetail>> getTransactionHistory(){ return payDetailDao.getTransactionHistory();}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user