[PROMOTE] dev → demo:領藥單核銷與批價單號掃碼修正晉升驗收

1. 領藥單核銷流程:改由出貨 finalize 處理,B660 回傳批價單號(pricing_slip_no)。
2. 領藥單建立頁批價單號欄位攔截 Enter,避免掃碼器掃完 QR 自動送出誤觸建立。
This commit is contained in:
twsystem1004 2026-06-24 03:13:24 +00:00
commit aecb2f17d1
2 changed files with 6 additions and 7 deletions

View File

@ -761,16 +761,14 @@ class MachineController extends Controller
], 409);
}
// 標記碼已領usage_count++;達上限轉 used——僅領藥單避免動到既有單貨道核銷流程
$pickupCode->usage_count = (int) $pickupCode->usage_count + 1;
$pickupCode->used_at = $pickupCode->used_at ?? now();
if ($pickupCode->usage_count >= (int) $pickupCode->usage_limit) {
$pickupCode->status = 'used';
}
$pickupCode->save();
// 不在「驗證/掃碼」當下核銷領藥碼。核銷統一改由機台實際出貨後的
// MQTT finalizeTransactionService::finalizePharmacyDispense標記為 used
// 這樣顧客掃碼後若未按「確定取貨」(逾時/取消、未出貨),領藥碼仍維持 active 可再次掃碼領取。
// (原本在此處 usage_count++/轉 used 會在尚未取貨時就把碼鎖死,導致再掃顯示「已領」。)
$data['order_type'] = \App\Models\Transaction\Order::TYPE_PHARMACY_PICKUP;
$data['order_no'] = $order->order_no;
$data['pricing_slip_no'] = $order->pricing_slip_no ?? ''; // 批價單號(藥師批價依據);機台「確認領藥」畫面備註欄顯示
$data['items'] = $items; // [{slot_no, product_id, product_name, qty}, ...]
$data['status'] = $pickupCode->status;
}

View File

@ -268,6 +268,7 @@
<div class="space-y-2">
<label class="text-xs font-black text-slate-500 uppercase tracking-widest pl-1">{{ __('Pricing Slip No.') }} <span class="text-slate-300 normal-case font-bold">({{ __('optional') }})</span></label>
<input type="text" name="pricing_slip_no" x-model="pricingSlipNo" maxlength="64"
@keydown.enter.prevent
class="luxury-input w-full py-3 px-4 text-sm" placeholder="{{ __('e.g. the hospital pricing slip number') }}">
</div>
</div>