printer disable function

This commit is contained in:
MooN 2026-01-23 10:28:10 +06:30
parent 40c4ba2d25
commit e6878a3d27
9 changed files with 161 additions and 69 deletions

View File

@ -28,6 +28,7 @@ import com.utsmm.kbz.ui.core_viewmodel.SharedViewModel;
public class PrintReceiptFragment extends DataBindingFragment implements DataBindingFragment.BackPressCallback { public class PrintReceiptFragment extends DataBindingFragment implements DataBindingFragment.BackPressCallback {
private SharedViewModel sharedViewModel; private SharedViewModel sharedViewModel;
private static final String TAG = PrintReceiptFragment.class.getSimpleName(); private static final String TAG = PrintReceiptFragment.class.getSimpleName();
private boolean printerDisabled = SystemParamsOperation.getInstance().getPrinterDisabled();
@Override @Override
protected int currentId() { protected int currentId() {
@ -48,7 +49,6 @@ public class PrintReceiptFragment extends DataBindingFragment implements DataBin
@Override @Override
protected void initViewModel() { protected void initViewModel() {
sharedViewModel = getFragmentScopeViewModel(SharedViewModel.class); sharedViewModel = getFragmentScopeViewModel(SharedViewModel.class);
} }
@Override @Override
@ -76,6 +76,7 @@ public class PrintReceiptFragment extends DataBindingFragment implements DataBin
setToolBarTitleWithoutBackIcon(getResourceString(R.string.title_print_receipt)); setToolBarTitleWithoutBackIcon(getResourceString(R.string.title_print_receipt));
sharedViewModel.printReceiptButtons.setValue(0); sharedViewModel.printReceiptButtons.setValue(0);
sharedViewModel.printerDisabled.setValue(printerDisabled);
PayDetail payDetail = sharedViewModel.payDetail.getValue(); PayDetail payDetail = sharedViewModel.payDetail.getValue();
@ -122,7 +123,12 @@ public class PrintReceiptFragment extends DataBindingFragment implements DataBin
super.onViewCreated(view, savedInstanceState); super.onViewCreated(view, savedInstanceState);
sharedViewModel.setPrintStatus(PrintStatus.NOT_PRINT); sharedViewModel.setPrintStatus(PrintStatus.NOT_PRINT);
sharedViewModel.postPrintReceiptMsg("Print Receipt for Merchant?");
if(printerDisabled){
sharedViewModel.postPrintReceiptMsg("Receipt is saved as E-receipt!");
}else{
sharedViewModel.postPrintReceiptMsg("Print Receipt for Merchant?");
}
observePrintProcess(); observePrintProcess();
@ -278,6 +284,10 @@ public class PrintReceiptFragment extends DataBindingFragment implements DataBin
} }
} }
public void onContinue(){
isCardInside();
}
} }
private void alertPaperRoll(String title, String message) { private void alertPaperRoll(String title, String message) {

View File

@ -115,6 +115,7 @@ public class SharedViewModel extends ViewModel {
public SingleLiveEvent<HostType> hostType = new SingleLiveEvent<>(); public SingleLiveEvent<HostType> hostType = new SingleLiveEvent<>();
public MutableLiveData<Integer> printReceiptButtons = new MutableLiveData<>(0); public MutableLiveData<Integer> printReceiptButtons = new MutableLiveData<>(0);
public SingleLiveEvent<Boolean> printerDisabled = new SingleLiveEvent<>();
public SingleLiveEvent<String> printReceiptMsg = new SingleLiveEvent<>(); public SingleLiveEvent<String> printReceiptMsg = new SingleLiveEvent<>();

View File

@ -15,6 +15,7 @@ import com.utsmm.kbz.databinding.FragmentHostConfigBinding;
import com.utsmm.kbz.ui.core_viewmodel.SharedViewModel; import com.utsmm.kbz.ui.core_viewmodel.SharedViewModel;
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.utils.core_utils.SystemParamsOperation;
public class HostConfigFragment extends DataBindingFragment { public class HostConfigFragment extends DataBindingFragment {
@ -22,6 +23,7 @@ public class HostConfigFragment extends DataBindingFragment {
private HostConfigViewModel viewModel; private HostConfigViewModel viewModel;
private SharedViewModel sharedViewModel; private SharedViewModel sharedViewModel;
private boolean printerDisabled = SystemParamsOperation.getInstance().getPrinterDisabled();
protected Printer printer; protected Printer printer;
int FONT_NORMAL = 20; int FONT_NORMAL = 20;
int FONT_HEADER = 24; int FONT_HEADER = 24;
@ -44,6 +46,7 @@ public class HostConfigFragment extends DataBindingFragment {
FragmentHostConfigBinding binding = (FragmentHostConfigBinding) this.binding; FragmentHostConfigBinding binding = (FragmentHostConfigBinding) this.binding;
viewModel.loadConfig(); viewModel.loadConfig();
sharedViewModel.printerDisabled.setValue(printerDisabled);
} }
@Override @Override
@ -51,6 +54,7 @@ public class HostConfigFragment extends DataBindingFragment {
super.onResume(); super.onResume();
setToolBarTitleWithBackIcon("Host Configs"); setToolBarTitleWithBackIcon("Host Configs");
sharedViewModel.printerDisabled.setValue(printerDisabled);
} }
@Override @Override

View File

@ -647,6 +647,9 @@ public class TMSSetupsImpl implements TMSSetups{
else if(TextUtils.equals(name,"bin_list")) { else if(TextUtils.equals(name,"bin_list")) {
SystemParamsOperation.getInstance().setBinValue(data); SystemParamsOperation.getInstance().setBinValue(data);
} }
else if(TextUtils.equals(name, "printer_disable")){
SystemParamsOperation.getInstance().setPrinterDisabled(parseBoolean(data));
}
} }
SystemParamsOperation.getInstance().setCarouselUrls(convertToString(imgUrls)); SystemParamsOperation.getInstance().setCarouselUrls(convertToString(imgUrls));

View File

@ -10,6 +10,9 @@
<variable <variable
name="viewModel" name="viewModel"
type="com.utsmm.kbz.ui.settings.HostConfigViewModel" /> type="com.utsmm.kbz.ui.settings.HostConfigViewModel" />
<variable
name="sharedViewModel"
type="com.utsmm.kbz.ui.core_viewmodel.SharedViewModel" />
<variable <variable
name="click" name="click"
type="com.utsmm.kbz.ui.settings.HostConfigFragment.ClickHandler" /> type="com.utsmm.kbz.ui.settings.HostConfigFragment.ClickHandler" />
@ -362,6 +365,7 @@
android:layout_weight="1" android:layout_weight="1"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:text="Print" android:text="Print"
android:visibility="@{sharedViewModel.printerDisabled ? View.VISIBLE : View.GONE}"
android:onClick="@{()-> click.onPrint()}" android:onClick="@{()-> click.onPrint()}"
android:background="@drawable/bg_rounded_btn_cv" android:background="@drawable/bg_rounded_btn_cv"
android:textColor="@color/white" android:textColor="@color/white"

View File

@ -5,6 +5,7 @@
<data> <data>
<import type="com.utsmyanmar.paylibs.utils.POSUtil" /> <import type="com.utsmyanmar.paylibs.utils.POSUtil" />
<import type="android.view.View"/>
<variable <variable
name="sharedViewModel" name="sharedViewModel"
type="com.utsmm.kbz.ui.core_viewmodel.SharedViewModel" /> type="com.utsmm.kbz.ui.core_viewmodel.SharedViewModel" />
@ -296,92 +297,136 @@
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="@{sharedViewModel.printReceiptButtons}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:padding="12dp">
<!-- Cancel Button -->
<androidx.cardview.widget.CardView
<LinearLayout android:layout_width="0dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:layout_weight="1"
android:visibility="@{sharedViewModel.printReceiptButtons}" android:layout_marginEnd="6dp"
app:layout_constraintBottom_toBottomOf="parent" app:cardCornerRadius="12dp"
app:layout_constraintStart_toStartOf="parent" app:cardElevation="2dp"
app:layout_constraintEnd_toEndOf="parent" android:foreground="?android:attr/selectableItemBackground"
android:padding="12dp"> android:clickable="true"
android:focusable="true">
<!-- Cancel Button --> <LinearLayout
<androidx.cardview.widget.CardView android:layout_width="match_parent"
android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:orientation="horizontal"
android:layout_marginEnd="6dp" android:gravity="center"
app:cardCornerRadius="12dp" android:background="@color/white"
app:cardElevation="2dp" android:padding="14dp"
android:foreground="?android:attr/selectableItemBackground" android:onClick="@{()->click.onCancel()}">
android:clickable="true"
android:focusable="true">
<LinearLayout
android:layout_width="match_parent"
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:text="@string/layout_cancel"
android:gravity="center" android:textColor="@color/colorPrimary"
android:background="@color/white" android:textSize="15sp"
android:padding="14dp" android:textStyle="bold"
android:onClick="@{()->click.onCancel()}"> android:fontFamily="@font/rubik_medium" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<!-- Confirm Button -->
<androidx.cardview.widget.CardView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="6dp"
app:cardCornerRadius="12dp"
app:cardElevation="4dp"
android:foreground="?android:attr/selectableItemBackground"
android:clickable="true"
android:focusable="true">
<TextView <LinearLayout
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/layout_cancel"
android:textColor="@color/colorPrimary"
android:textSize="15sp"
android:textStyle="bold"
android:fontFamily="@font/rubik_medium" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<!-- Confirm Button -->
<androidx.cardview.widget.CardView
android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:orientation="horizontal"
android:layout_marginStart="6dp" android:gravity="center"
app:cardCornerRadius="12dp" android:background="@color/colorPrimary"
app:cardElevation="4dp" android:padding="14dp"
android:foreground="?android:attr/selectableItemBackground" android:onClick="@{()->click.onConfirm()}">
android:clickable="true"
android:focusable="true">
<LinearLayout
android:layout_width="match_parent"
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:text="@string/layout_print"
android:gravity="center" android:textColor="@color/white"
android:background="@color/colorPrimary" android:textSize="15sp"
android:padding="14dp" android:textStyle="bold"
android:onClick="@{()->click.onConfirm()}"> android:fontFamily="@font/rubik_medium" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="12dp"
android:visibility="@{sharedViewModel.printerDisabled ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent">
<TextView <!-- Confirm Button -->
android:layout_width="wrap_content" <androidx.cardview.widget.CardView
android:layout_height="wrap_content" android:layout_width="0dp"
android:text="@string/layout_print" android:layout_height="wrap_content"
android:textColor="@color/white" android:layout_weight="1"
android:textSize="15sp" android:clickable="true"
android:textStyle="bold" android:focusable="true"
android:fontFamily="@font/rubik_medium" /> android:foreground="?android:attr/selectableItemBackground"
app:cardCornerRadius="12dp"
app:cardElevation="4dp">
</LinearLayout> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:gravity="center"
android:onClick="@{()->click.onContinue()}"
android:orientation="horizontal"
android:padding="14dp">
</androidx.cardview.widget.CardView>
</LinearLayout> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/rubik_medium"
android:text="@string/txt_continue"
android:textColor="@color/white"
android:textSize="15sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -616,5 +616,6 @@
<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> <string name="txt_search_by_trace">Search By Trace No</string>
<string name="txt_continue">Continue</string>
</resources> </resources>

View File

@ -1750,4 +1750,15 @@ public class SystemParamsOperation {
paramsSettings.setCertificateClientUrl(url); paramsSettings.setCertificateClientUrl(url);
saveSystemParamsSettings(paramsSettings); saveSystemParamsSettings(paramsSettings);
} }
public void setPrinterDisabled(boolean printerDisabled) {
SystemParamsSettings paramsSettings = getSystemParamsSettings();
paramsSettings.setPrinterDisabled(printerDisabled);
saveSystemParamsSettings(paramsSettings);
}
public boolean getPrinterDisabled() {
SystemParamsSettings paramsSettings = getSystemParamsSettings();
return paramsSettings.getPrinterDisabled();
}
} }

View File

@ -260,6 +260,7 @@ public class SystemParamsSettings implements Serializable {
private String terminalIdForEreceipt = ""; private String terminalIdForEreceipt = "";
private String certificateUrl = ""; private String certificateUrl = "";
private String certificateClientUrl = ""; private String certificateClientUrl = "";
private boolean printerDisabled = false;
public boolean isQrPartialRefundEnable(){ public boolean isQrPartialRefundEnable(){
return qrPartialRefundEnable; return qrPartialRefundEnable;
@ -1067,6 +1068,18 @@ public class SystemParamsSettings implements Serializable {
this.certificateClientUrl = url; this.certificateClientUrl = url;
} }
public boolean isPrinterDisabled() {
return printerDisabled;
}
public void setPrinterDisabled(boolean printerDisabled) {
this.printerDisabled = printerDisabled;
}
public boolean getPrinterDisabled() {
return printerDisabled;
}
/* // 流水号起始 /* // 流水号起始
private String serialNum = Configs.getInstance().SERIAL_NUM(); private String serialNum = Configs.getInstance().SERIAL_NUM();
// 批次号起始 // 批次号起始