[FEAT] 取貨碼金額歸零 + 通行碼不上報交易
- 取貨碼(FontendPickupCodeDialog):setTotalPrice(0),因屬已預付來取貨/ 付款未出貨補出貨,本機交易付款金額為 0。 - 通行碼(payment_type=5):工程師/內部硬體測試用,DispatchDialog 照常出貨 測試硬體,但略過 MQTT 交易結案上報(避免污染銷售/營收、不扣雲端庫存; B670 驗證已於後台記 log)。集中於 publishFinalizeUnlessPassCode(), 成功/失敗兩路徑共用。 三 flavor 編譯/打包通過。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
1720d2007e
commit
53ea3dafa9
@ -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 → 出貨
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user