diff --git a/app/src/General/java/com/unibuy/smartdevice/ui/dialog/FontendPickupCodeDialog.java b/app/src/General/java/com/unibuy/smartdevice/ui/dialog/FontendPickupCodeDialog.java index 05b2fa7..b1c8587 100644 --- a/app/src/General/java/com/unibuy/smartdevice/ui/dialog/FontendPickupCodeDialog.java +++ b/app/src/General/java/com/unibuy/smartdevice/ui/dialog/FontendPickupCodeDialog.java @@ -393,6 +393,7 @@ public class FontendPickupCodeDialog extends DialogAbstract { MyApp.getInstance().getReportFlowInfoData().setFlowBarCode(code); MyApp.getInstance().getReportFlowInfoData().setReportFlowId(code); MyApp.getInstance().getReportFlowInfoData().setOrderId(Tools.generateTimeBasedUUID()); + MyApp.getInstance().getReportFlowInfoData().setTotalPrice(0); // 取貨碼為已預付/補出貨,付款金額 0 MyApp.getInstance().getReportAccessCodeStructure().setAccessCodeId(codeId); changeBuy(); // 開啟取貨確認 BuyPickupCodeDialog → 出貨 diff --git a/app/src/main/java/com/unibuy/smartdevice/ui/dialog/DispatchDialog.java b/app/src/main/java/com/unibuy/smartdevice/ui/dialog/DispatchDialog.java index 7bb704c..f74e242 100644 --- a/app/src/main/java/com/unibuy/smartdevice/ui/dialog/DispatchDialog.java +++ b/app/src/main/java/com/unibuy/smartdevice/ui/dialog/DispatchDialog.java @@ -943,7 +943,7 @@ public class DispatchDialog extends DialogAbstract { if ("Cmuh".equalsIgnoreCase(com.unibuy.smartdevice.BuildConfig.FLAVOR_project)) { insertDrgnoToMemo(); } - MqttManager.getInstance().publishTransactionFinalize(finalizeBuilder.build()); + publishFinalizeUnlessPassCode(); getSrcHandlerMain().send(getClass().getSimpleName(), FontendActivity.Option.RESET_DATA.getOption(), "update data"); saveData(); @@ -1059,12 +1059,24 @@ public class DispatchDialog extends DialogAbstract { } getLogs().info("出貨失敗,發送 MQTT Finalize 結案訊息: " + message); - MqttManager.getInstance().publishTransactionFinalize(finalizeBuilder.build()); + publishFinalizeUnlessPassCode(); getSrcHandlerMain().send(getClass().getSimpleName(), FontendActivity.Option.RESET_DATA.getOption(), "update data"); saveData(); } + /** + * 發送 MQTT 交易結案;但 flowType 5(通行碼)為工程師/內部硬體測試,不上報交易 + * (B670 驗證已於後台記 log;避免污染銷售/營收,且不扣減雲端庫存)。 + */ + private void publishFinalizeUnlessPassCode() { + if (MyApp.getInstance().getReportFlowInfoData().getFlowType() == 5) { + getLogs().info("通行碼(payment_type=5) 為內部測試出貨,略過 MQTT 交易結案上報。"); + return; + } + MqttManager.getInstance().publishTransactionFinalize(finalizeBuilder.build()); + } + private void addFailedDispenseRecordsFromCurrent() { if (dispatchList == null || dispatchList.isEmpty()) { return;