e-receipt for qr fixed
This commit is contained in:
parent
90c9a48197
commit
2441ba5141
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -4,15 +4,15 @@
|
||||
"type": "APK",
|
||||
"kind": "Directory"
|
||||
},
|
||||
"applicationId": "com.utsmm.kbz.mpu",
|
||||
"applicationId": "com.utsmm.kbz",
|
||||
"variantName": "release",
|
||||
"elements": [
|
||||
{
|
||||
"type": "SINGLE",
|
||||
"filters": [],
|
||||
"attributes": [],
|
||||
"versionCode": 8,
|
||||
"versionName": "1.08",
|
||||
"versionCode": 10,
|
||||
"versionName": "1.10",
|
||||
"outputFile": "app-release.apk"
|
||||
}
|
||||
],
|
||||
|
||||
@ -144,10 +144,10 @@ public class SettingsFragment extends DataBindingFragment {
|
||||
|
||||
private void updateDemoSettings() {
|
||||
boolean isDemo = SystemParamsOperation.getInstance().getDemoStatus();
|
||||
// binding.demoSwitch.setChecked(isDemo);
|
||||
// binding.demoSummary.setText(isDemo ?
|
||||
// "Demo mode active - Test transactions without real processing" :
|
||||
// "Simulator mode active - Real transaction processing");
|
||||
binding.demoSwitch.setChecked(isDemo);
|
||||
binding.demoSummary.setText(isDemo ?
|
||||
"Demo mode active - Test transactions without real processing" :
|
||||
"Simulator mode active - Real transaction processing");
|
||||
}
|
||||
|
||||
private void updateAlertSoundSettings() {
|
||||
|
||||
@ -9,7 +9,9 @@ import androidx.annotation.Nullable;
|
||||
import androidx.navigation.NavController;
|
||||
import androidx.navigation.NavDestination;
|
||||
|
||||
import com.utsmm.kbz.util.tms.TMSUtil;
|
||||
import com.utsmyanmar.baselib.fragment.DataBindingFragment;
|
||||
import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptCardRequest;
|
||||
import com.utsmyanmar.baselib.util.DataBindingConfig;
|
||||
import com.utsmyanmar.baselib.util.TimeoutCallback;
|
||||
import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation;
|
||||
@ -25,6 +27,8 @@ import com.utsmm.kbz.util.ecr.CoreUtils;
|
||||
|
||||
import com.utsmyanmar.paylibs.utils.LogUtil;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
|
||||
public class ProcessingFragment extends DataBindingFragment {
|
||||
|
||||
private static final String TAG = ProcessingFragment.class.getSimpleName();
|
||||
@ -248,11 +252,22 @@ public class ProcessingFragment extends DataBindingFragment {
|
||||
|
||||
private void observeData(ProcessingTransaction processingTransaction) {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
processingTransaction.getTransStatus().observe(getViewLifecycleOwner(), transResultStatus -> {
|
||||
LogUtil.d(TAG,"Transaction RESULT :"+transResultStatus);
|
||||
PayDetail payDetail = isEmvTrans()
|
||||
? emvTransactionProcessViewModel.payDetailResult.getValue()
|
||||
: transProcessViewModel.payDetailResult.getValue();
|
||||
LogUtil.d(TAG, "PayDetail from VM: " + payDetail);
|
||||
|
||||
switch (transResultStatus) {
|
||||
case FAIL:
|
||||
sharedViewModel.pushReceipt(buildEReceiptCardReceipt(payDetail, false, "FAILED"));
|
||||
case SUCCESS:
|
||||
sharedViewModel.pushReceipt(buildEReceiptCardReceipt(payDetail, true, "SUCCESS"));
|
||||
case OFFLINE_SUCCESS:
|
||||
if(SystemParamsOperation.getInstance().getDemoStatus()) {
|
||||
delayFunctionCall(()->{
|
||||
@ -365,4 +380,108 @@ public class ProcessingFragment extends DataBindingFragment {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private String mapDE3ToShortCode(String de3) {
|
||||
if (de3 == null) return "UNK";
|
||||
|
||||
switch (de3) {
|
||||
case "000000": return "S"; // Sale
|
||||
case "020000": return "V"; // Void
|
||||
case "200000": return "R"; // Refund
|
||||
case "030000": return "P"; // Preauth
|
||||
case "310000": return "PC"; // Preauth Complete
|
||||
}
|
||||
return "UNK"; // Unknown
|
||||
}
|
||||
|
||||
public static String mapTransactionType(int type) {
|
||||
switch (type) {
|
||||
case 1: // SALE
|
||||
return "S";
|
||||
|
||||
case 2: // VOID SALE
|
||||
return "V";
|
||||
|
||||
case 4: // REFUND
|
||||
return "R";
|
||||
|
||||
case 5: // PRE-AUTH
|
||||
return "P";
|
||||
|
||||
case 6: // PRE-AUTH VOID
|
||||
return "PV";
|
||||
|
||||
case 7: // PRE-AUTH COMPLETE
|
||||
return "PC";
|
||||
|
||||
case 8: // PRE-AUTH COMPLETE VOID
|
||||
return "PCV";
|
||||
|
||||
case 9: // CASH OUT
|
||||
return "CAV";
|
||||
|
||||
case 18: // TIP ADJUST
|
||||
return "TA";
|
||||
|
||||
case 20: // QR PAYMENT
|
||||
return "QR";
|
||||
|
||||
case 34: // QR REFUND
|
||||
return "QRV";
|
||||
|
||||
default:
|
||||
return "UNK";
|
||||
}
|
||||
}
|
||||
private String mapCurrency(String currency) {
|
||||
if (currency == null) return "MMK";
|
||||
|
||||
switch (currency) {
|
||||
case "104": return "MMK";
|
||||
case "840": return "USD";
|
||||
case "764": return "THB";
|
||||
case "702": return "SGD";
|
||||
case "978": return "EUR";
|
||||
default: return currency; // Already alphabetic? return as-is
|
||||
}
|
||||
}
|
||||
private EReceiptCardRequest buildEReceiptCardReceipt(PayDetail payDetail, boolean isSuccess, String reason){
|
||||
//current timestamp
|
||||
String currentTimestamp = new java.text.SimpleDateFormat(
|
||||
"MMddHHmmss", java.util.Locale.getDefault()
|
||||
).format(new java.util.Date());
|
||||
|
||||
//DeviceInfo
|
||||
String serial = TMSUtil.getInstance().getSerialNumber();
|
||||
String appId = requireActivity().getPackageName();
|
||||
|
||||
//TerminalInfo
|
||||
String terminalId = SystemParamsOperation.getInstance().getTerminalId();
|
||||
String merchantId = SystemParamsOperation.getInstance().getMerchantId();
|
||||
|
||||
double realAmount = payDetail.getAmount() / 100.0;
|
||||
DecimalFormat df = new DecimalFormat("0.00");
|
||||
String amount = df.format(realAmount);
|
||||
|
||||
EReceiptCardRequest request = new EReceiptCardRequest();
|
||||
request.setDE2(payDetail.getCardNo());
|
||||
request.setDE3(mapDE3ToShortCode(payDetail.getProcessCode()));
|
||||
request.setDE4(amount);
|
||||
request.setDE7(currentTimestamp);
|
||||
request.setDE11(payDetail.getVoucherNo());
|
||||
request.setDE22(mapTransactionType(payDetail.getTransactionType()));
|
||||
request.setDE37(payDetail.getReferNo());
|
||||
request.setDE38(payDetail.getAuthNo());
|
||||
request.setDE39(isSuccess ? "A" : "E");
|
||||
request.setDE41(terminalId);
|
||||
request.setDE42(merchantId);
|
||||
request.setDE49(mapCurrency(payDetail.getCurrencyCode()));
|
||||
request.setSerial(serial);
|
||||
request.setInvoiceNumber(payDetail.getInvoiceNo());
|
||||
request.setAppId(appId);
|
||||
request.setDescription(reason);
|
||||
|
||||
return request;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -425,6 +425,7 @@ public class SharedViewModel extends ViewModel {
|
||||
|
||||
|
||||
public void pushReceipt(Object body){
|
||||
Log.d("push receipt", new Gson().toJson(body));
|
||||
repository.sendReceipt(body)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
|
||||
@ -11,8 +11,10 @@ import android.widget.LinearLayout;
|
||||
import androidx.annotation.NonNull;
|
||||
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.util.DataBindingConfig;
|
||||
import com.utsmyanmar.paylibs.model.PayDetail;
|
||||
import com.utsmyanmar.paylibs.model.TradeData;
|
||||
@ -34,6 +36,8 @@ import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import com.utsmyanmar.paylibs.utils.LogUtil;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
|
||||
public class QRRefundFragment extends DataBindingFragment {
|
||||
|
||||
private SharedViewModel sharedViewModel;
|
||||
@ -196,6 +200,8 @@ public class QRRefundFragment extends DataBindingFragment {
|
||||
payDetail.setReferNo(referenceNo);
|
||||
payDetail.setIsCanceled(true);
|
||||
|
||||
// sharedViewModel.pushReceipt(buildEReceiptQRReceipt(payDetail, true, "Refund success"));
|
||||
|
||||
retrievedUpdatePayDetail(referenceNo);
|
||||
|
||||
} else {
|
||||
@ -210,6 +216,8 @@ public class QRRefundFragment extends DataBindingFragment {
|
||||
}
|
||||
payDetail.setTradeResultDes(errorMsg);
|
||||
|
||||
// sharedViewModel.pushReceipt(buildEReceiptQRReceipt(payDetail, true, "RESP CODE [68]\n Refund Failed"));
|
||||
|
||||
sharedViewModel.payDetail.setValue(payDetail);
|
||||
navigateToNext();
|
||||
}
|
||||
@ -328,4 +336,6 @@ public class QRRefundFragment extends DataBindingFragment {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -315,29 +315,7 @@ public class QRTransactionFragment extends DataBindingFragment implements DataBi
|
||||
|
||||
retrievedUpdatePayDetail(refLabel, payDetail,false);
|
||||
|
||||
double realAmount = payDetail.getAmount() / 100.0;
|
||||
DecimalFormat df = new DecimalFormat("0.00");
|
||||
String amount = df.format(realAmount);
|
||||
|
||||
String currentTimeStamp = new java.text.SimpleDateFormat("MMddHHmmss", java.util.Locale.getDefault())
|
||||
.format(new java.util.Date());
|
||||
String serial = TMSUtil.getInstance().getSerialNumber();
|
||||
String packageName = getActivity().getPackageName();
|
||||
EReceiptQRRequest request = new EReceiptQRRequest();
|
||||
request.setDE3("QR");
|
||||
request.setDE4(amount);
|
||||
request.setDE7(currentTimeStamp);
|
||||
request.setDE37(payDetail.getReferNo());
|
||||
request.setDE39("A");
|
||||
request.setDE49("MMK");
|
||||
request.setSerial(serial);
|
||||
request.setAppId(packageName);
|
||||
request.setDE41(terminalId);
|
||||
request.setDE42(merchantId);
|
||||
request.setInvoiceNumber(payDetail.getInvoiceNo());
|
||||
request.setDE11(payDetail.getVoucherNo());
|
||||
request.setDescription("qr pay success");
|
||||
sharedViewModel.pushReceipt(request);
|
||||
sharedViewModel.pushReceipt(buildEReceiptQRReceipt(payDetail, true, "QR Pay Success"));
|
||||
|
||||
return;
|
||||
}
|
||||
@ -348,26 +326,6 @@ public class QRTransactionFragment extends DataBindingFragment implements DataBi
|
||||
payDetail.setQrTransStatus(2);
|
||||
}
|
||||
|
||||
String currentTimeStamp = new java.text.SimpleDateFormat("MMddHHmmss", java.util.Locale.getDefault())
|
||||
.format(new java.util.Date());
|
||||
String serial = SystemParamsOperation.getInstance().getCurrentSerialNum();
|
||||
String packageName = getActivity().getPackageName();
|
||||
EReceiptQRRequest request = new EReceiptQRRequest();
|
||||
request.setDE3("QR");
|
||||
request.setDE4("0");
|
||||
request.setDE7(currentTimeStamp);
|
||||
request.setDE37(payDetail.getReferNo());
|
||||
request.setDE39("D");
|
||||
request.setDE49("MMK");
|
||||
request.setSerial(serial);
|
||||
request.setAppId(packageName);
|
||||
request.setDE41(terminalId);
|
||||
request.setDE42(merchantId);
|
||||
request.setInvoiceNumber(payDetail.getInvoiceNo());
|
||||
request.setDE11(payDetail.getVoucherNo());
|
||||
request.setDescription("qr timeout");
|
||||
sharedViewModel.pushReceipt(request);
|
||||
|
||||
sharedViewModel.payDetail.postValue(payDetail);
|
||||
safeNavigateToRouteId();
|
||||
|
||||
@ -376,25 +334,6 @@ public class QRTransactionFragment extends DataBindingFragment implements DataBi
|
||||
} catch (Exception e) {
|
||||
LogUtil.d(TAG, "On Exception::");
|
||||
e.printStackTrace();
|
||||
String currentTimeStamp = new java.text.SimpleDateFormat("MMddHHmmss", java.util.Locale.getDefault())
|
||||
.format(new java.util.Date());
|
||||
String serial = SystemParamsOperation.getInstance().getCurrentSerialNum();
|
||||
String packageName = getActivity().getPackageName();
|
||||
EReceiptQRRequest request = new EReceiptQRRequest();
|
||||
request.setDE3("QR");
|
||||
request.setDE4("0");
|
||||
request.setDE7(currentTimeStamp);
|
||||
request.setDE37(payDetail.getReferNo());
|
||||
request.setDE39("D");
|
||||
request.setDE49("MMK");
|
||||
request.setSerial(serial);
|
||||
request.setAppId(packageName);
|
||||
request.setDE41(terminalId);
|
||||
request.setDE42(merchantId);
|
||||
request.setInvoiceNumber(payDetail.getInvoiceNo());
|
||||
request.setDE11(payDetail.getVoucherNo());
|
||||
request.setDescription("qr failed");
|
||||
sharedViewModel.pushReceipt(request);
|
||||
|
||||
if (count == totalCount) {
|
||||
if(payDetail.getQrTransStatus() != -1) {
|
||||
@ -487,4 +426,58 @@ public class QRTransactionFragment extends DataBindingFragment implements DataBi
|
||||
});
|
||||
}
|
||||
|
||||
private String mapCurrency(String currency) {
|
||||
if (currency == null) return "MMK";
|
||||
|
||||
switch (currency) {
|
||||
case "104": return "MMK";
|
||||
case "840": return "USD";
|
||||
case "764": return "THB";
|
||||
case "702": return "SGD";
|
||||
case "978": return "EUR";
|
||||
default: return currency; // Already alphabetic? return as-is
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -14,14 +14,18 @@ import com.utsmm.kbz.ui.kpay.KPayViewModel;
|
||||
import com.utsmm.kbz.ui.kpay.QRRefundFragment;
|
||||
import com.utsmm.kbz.util.TransactionUtil;
|
||||
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.util.DataBindingConfig;
|
||||
import com.utsmyanmar.paylibs.model.PayDetail;
|
||||
import com.utsmyanmar.paylibs.system.SystemDateTime;
|
||||
import com.utsmyanmar.paylibs.utils.LogUtil;
|
||||
import com.utsmyanmar.paylibs.utils.POSUtil;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.disposables.CompositeDisposable;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
@ -140,10 +144,13 @@ public class QRRefundProcessFragment extends DataBindingFragment {
|
||||
payDetail.setReferNo(referenceNo);
|
||||
payDetail.setIsCanceled(true);
|
||||
|
||||
sharedViewModel.pushReceipt(buildEReceiptQRReceipt(payDetail, true, "Refund success"));
|
||||
|
||||
retrievedUpdatePayDetail(referenceNo);
|
||||
|
||||
} else {
|
||||
LogUtil.d(TAG, "Refund failed!");
|
||||
|
||||
payDetail.setQrTransStatus(-1);
|
||||
payDetail.setQrReferNo(referenceNo);
|
||||
payDetail.setReferNo(referenceNo);
|
||||
@ -212,4 +219,58 @@ public class QRRefundProcessFragment extends DataBindingFragment {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private String mapCurrency(String currency) {
|
||||
if (currency == null) return "MMK";
|
||||
|
||||
switch (currency) {
|
||||
case "104": return "MMK";
|
||||
case "840": return "USD";
|
||||
case "764": return "THB";
|
||||
case "702": return "SGD";
|
||||
case "978": return "EUR";
|
||||
default: return currency; // Already alphabetic? return as-is
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -233,11 +233,11 @@ public class TMSUtil {
|
||||
String secHostIp = SystemParamsOperation.getInstance().getSecIpAddress();
|
||||
String keyIndex = SystemParamsOperation.getInstance().getTMKIndex();
|
||||
|
||||
if(tid.length() == 8 && mid.length() == 15 && !hostIp.isEmpty() && !keyIndex.isEmpty()) {
|
||||
if(tid.length() == 8 && (mid.length() == 11 || mid.length() == 15) && !hostIp.isEmpty() && !keyIndex.isEmpty()) {
|
||||
tmsValidity = new TMSValidity(ValidityStatus.SUCCESS,"Success");
|
||||
} else if(tid.length() != 8) {
|
||||
tmsValidity = new TMSValidity(ValidityStatus.FAILURE,"Tid is invalid!");
|
||||
} else if(mid.length() != 15) {
|
||||
} else if(mid.length() != 15 && mid.length() != 11 ) {
|
||||
tmsValidity = new TMSValidity(ValidityStatus.FAILURE,"Mid is invalid!");
|
||||
} else if(hostIp.isEmpty()) {
|
||||
tmsValidity = new TMSValidity(ValidityStatus.FAILURE,"Pri-Ip is invalid!");
|
||||
|
||||
@ -316,82 +316,82 @@
|
||||
<!-- </androidx.cardview.widget.CardView>-->
|
||||
|
||||
<!-- Demo Mode Card -->
|
||||
<!-- <androidx.cardview.widget.CardView-->
|
||||
<!-- android:id="@+id/demoCard"-->
|
||||
<!-- 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.onDemoClick()}"-->
|
||||
<!-- app:cardBackgroundColor="@color/white"-->
|
||||
<!-- app:cardCornerRadius="16dp"-->
|
||||
<!-- app:cardElevation="2dp">-->
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/demoCard"
|
||||
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.onDemoClick()}"
|
||||
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">-->
|
||||
<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">-->
|
||||
<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_swap"-->
|
||||
<!-- app:tint="@color/white" />-->
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_gravity="center"
|
||||
android:src="@drawable/ic_swap"
|
||||
app:tint="@color/white" />
|
||||
|
||||
<!-- </androidx.cardview.widget.CardView>-->
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<!-- <LinearLayout-->
|
||||
<!-- android:layout_width="0dp"-->
|
||||
<!-- android:layout_height="wrap_content"-->
|
||||
<!-- android:layout_weight="1"-->
|
||||
<!-- android:orientation="vertical">-->
|
||||
<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="Demo Mode"-->
|
||||
<!-- 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:fontFamily="@font/rubik_medium"
|
||||
android:text="Demo Mode"
|
||||
android:textColor="@color/colorTextTitle"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"
|
||||
tools:fontFamily="sans-serif-medium" />
|
||||
|
||||
<!-- <TextView-->
|
||||
<!-- android:id="@+id/demoSummary"-->
|
||||
<!-- android:layout_width="wrap_content"-->
|
||||
<!-- android:layout_height="wrap_content"-->
|
||||
<!-- android:layout_marginTop="2dp"-->
|
||||
<!-- android:fontFamily="@font/rubik_regular"-->
|
||||
<!-- android:text="Demo mode active - Test transactions"-->
|
||||
<!-- android:textColor="@color/colorTextContent"-->
|
||||
<!-- android:textSize="14sp"-->
|
||||
<!-- tools:fontFamily="sans-serif" />-->
|
||||
<TextView
|
||||
android:id="@+id/demoSummary"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="2dp"
|
||||
android:fontFamily="@font/rubik_regular"
|
||||
android:text="Demo mode active - Test transactions"
|
||||
android:textColor="@color/colorTextContent"
|
||||
android:textSize="14sp"
|
||||
tools:fontFamily="sans-serif" />
|
||||
|
||||
<!-- </LinearLayout>-->
|
||||
</LinearLayout>
|
||||
|
||||
<!-- <Switch-->
|
||||
<!-- android:id="@+id/demoSwitch"-->
|
||||
<!-- android:layout_width="wrap_content"-->
|
||||
<!-- android:layout_height="wrap_content"-->
|
||||
<!-- android:layout_marginStart="8dp"-->
|
||||
<!-- android:clickable="false"-->
|
||||
<!-- android:focusable="false" />-->
|
||||
<Switch
|
||||
android:id="@+id/demoSwitch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:clickable="false"
|
||||
android:focusable="false" />
|
||||
|
||||
<!-- </LinearLayout>-->
|
||||
</LinearLayout>
|
||||
|
||||
<!-- </androidx.cardview.widget.CardView>-->
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<!-- Sound Alerts Card -->
|
||||
<!-- <androidx.cardview.widget.CardView-->
|
||||
|
||||
@ -0,0 +1,135 @@
|
||||
package com.utsmyanmar.baselib.network.model.e_receipt;
|
||||
|
||||
public class EReceiptCardRequest {
|
||||
|
||||
private String DE2;
|
||||
private String DE22;
|
||||
private String DE3;
|
||||
private String DE39;
|
||||
private String DE41;
|
||||
private String DE42;
|
||||
private String serial;
|
||||
private String DE49;
|
||||
private String DE37;
|
||||
private String DE7;
|
||||
private String DE4;
|
||||
private String appId;
|
||||
private String invoiceNumber;
|
||||
private String DE11;
|
||||
private String description;
|
||||
private String DE38;
|
||||
|
||||
public EReceiptCardRequest() {}
|
||||
|
||||
// GETTERS
|
||||
public String getDE3() {
|
||||
return DE3;
|
||||
}
|
||||
|
||||
public String getDE39() {
|
||||
return DE39;
|
||||
}
|
||||
|
||||
public String getDE41() {
|
||||
return DE41;
|
||||
}
|
||||
|
||||
public String getDE42() {
|
||||
return DE42;
|
||||
}
|
||||
|
||||
public String getSerial() {
|
||||
return serial;
|
||||
}
|
||||
|
||||
public String getDE49() {
|
||||
return DE49;
|
||||
}
|
||||
|
||||
public String getDE37() {
|
||||
return DE37;
|
||||
}
|
||||
|
||||
public String getDE7() {
|
||||
return DE7;
|
||||
}
|
||||
|
||||
public String getDE4() {
|
||||
return DE4;
|
||||
}
|
||||
|
||||
public String getAppId(){
|
||||
return appId;
|
||||
}
|
||||
|
||||
public String getInvoiceNumber(){
|
||||
return invoiceNumber;
|
||||
}
|
||||
public String getDE11(){
|
||||
return DE11;
|
||||
}
|
||||
|
||||
public String getDescription(){
|
||||
return description;
|
||||
}
|
||||
public String getDE2(){ return DE2; }
|
||||
public String getDE38(){ return DE38; }
|
||||
public String getDE22(){ return DE22; }
|
||||
// SETTERS
|
||||
public void setDE3(String DE3) {
|
||||
this.DE3 = DE3;
|
||||
}
|
||||
|
||||
public void setDE39(String DE39) {
|
||||
this.DE39 = DE39;
|
||||
}
|
||||
|
||||
public void setDE41(String DE41) {
|
||||
this.DE41 = DE41;
|
||||
}
|
||||
|
||||
public void setDE42(String DE42) {
|
||||
this.DE42 = DE42;
|
||||
}
|
||||
|
||||
public void setSerial(String serial) {
|
||||
this.serial = serial;
|
||||
}
|
||||
|
||||
public void setDE49(String DE49) {
|
||||
this.DE49 = DE49;
|
||||
}
|
||||
|
||||
public void setDE37(String DE37) {
|
||||
this.DE37 = DE37;
|
||||
}
|
||||
|
||||
public void setDE7(String DE7) {
|
||||
this.DE7 = DE7;
|
||||
}
|
||||
|
||||
public void setDE4(String DE4) {
|
||||
this.DE4 = DE4;
|
||||
}
|
||||
|
||||
public void setAppId(String appId){
|
||||
this.appId = appId;
|
||||
}
|
||||
|
||||
public void setInvoiceNumber(String invoiceNumber){
|
||||
this.invoiceNumber = invoiceNumber;
|
||||
}
|
||||
|
||||
public void setDE11(String DE11){
|
||||
this.DE11 = DE11;
|
||||
}
|
||||
|
||||
public void setDescription(String description){
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public void setDE2(String DE2){ this.DE2 = DE2; }
|
||||
|
||||
public void setDE38(String DE38){ this.DE38 = DE38; }
|
||||
public void setDE22(String DE22){ this.DE22 = DE22; }
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user