Commit Graph

804 Commits

Author SHA1 Message Date
f1c4a9a2b7 feat(app-ui): 啟用部位 E1(交易失敗/客服圖) + P1~P6(支付方式按鈕圖)
P 系列 width/height=null 不裁切保留原比例;blade 尺寸標示對 null 做防護

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-17 11:06:43 +08:00
7625799ecc feat(app-ui): 機台綁定儲存後主動推送 update_settings,機台立即套用 UI
沿用 app 既有 update_settings→downloadSetting 處理(APK 不需改);推送失敗(離線)則下次同步套用

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-17 11:06:43 +08:00
a0c2ab3207 feat(app-ui): APP UI元素設定 Phase 1 — 後台三頁(元素/組合/機台綁定)+ B014 UISet 下發
- ui_elements/ui_bundles/ui_bundle_items 三表 + Models(TenantScoped)
- config/ui_parts.php 部位定義(Phase 1 啟用 A1/A2/A3 滿版)
- UiElementController 三頁 CRUD + 圖片上傳(ImageHandler storeAsWebp)
- 機台綁定存 machines.settings['ui_bundle_id']
- B014 getSettings 新增 UISet(部位→絕對圖URL,mirror B005)
- 解除 sidebar APP管理 註解 + can:menu.app + 權限白名單
- zh_TW/en 翻譯

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-17 11:06:43 +08:00
twsystem1004
42ec18188e feat(銷售紀錄): 付款狀態預設「已完成」+ 新增「待領取」狀態
1. 付款狀態下拉預設改為「已完成」,避免客戶把 failed(付款失敗/逾時) 誤會成刷卡失敗;
   「所有付款狀態」改為明確選項 value=all(非空值,AJAX 才不會被當空值丟掉),選它才顯示全部。
2. 新增 awaiting_pickup(待領取,領藥單已生成未領取) 至下拉選項與各狀態顯示:
   桌機/手機徽章(amber,原本無對應會顯示原始字串)、訂單明細面板、匯出狀態標籤。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-17 01:16:14 +00:00
twsystem1004
168a990a7e feat(倉庫): 機台庫存匯出 Excel 加「商品ID」欄
機台庫存概覽批次匯出(多分頁)與單機台詳細匯出的欄位,於貨道號後、商品名稱前
新增「商品ID」欄;空貨道商品ID留空。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 05:16:29 +00:00
twsystem1004
34b0a7faf6 feat(倉庫): 機台庫存概覽批次匯出 Excel(多分頁)
機台庫存概覽列表頁新增「匯出」鈕,跳出可全選帳號下全部機台或逐台勾選的視窗,
匯出成 Excel(xlsx)——每台機台一個分頁(sheet),內容為該機台每貨道明細
(貨道號/商品/條碼/類型/庫存/容量/庫存率/效期/批號/啟用/鎖定)。
用 OpenSpout 寫多分頁、動態 <a download> 觸發(不卡霧面)。
CSV 後端保留(每台一檔打包 zip)但前端按鈕先隱藏。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 02:46:08 +00:00
twsystem1004
83e1beb7e2 feat(倉庫/銷售): 機台貨道明細匯出 + 出貨失敗補償取貨碼
1. 倉庫→機台庫存概覽:點進機台後,矩陣/表格視圖旁加「匯出」下拉(CSV/Excel),
   內容為該機台每個貨道明細(貨道號/商品/庫存/容量/庫存率/效期/批號等)。
2. 銷售紀錄新增「取貨碼」欄位:對「付款成功但出貨失敗/部分」的單顯示「+」,
   點擊確認「是否產生取貨碼(七天內有效)」後,依缺量產生取貨碼(綁機台+商品、
   usage_limit=缺量、冪等 batch_no=COMP{id}、不設 order_id),顯示碼+「待使用」。
   消費者於機台輸入碼走現成 B660 核銷出貨,app 端不需改。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-13 08:00:50 +00:00
twsystem1004
1d745c5722 feat(商品管理): 新增商品匯出(CSV/Excel)
資料設定→商品管理新增「匯出」下拉(CSV/Excel),套用當前篩選(搜尋/分類/公司),
欄位順序對齊匯入範本方便回匯入。匯入鈕與匯出下拉移至查詢/重設右邊。
匯出連結加 download 屬性,避免觸發全域導覽遮罩導致下載後畫面卡霧面。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 02:04:11 +00:00
twsystem1004
d8f549d390 feat(機台設定): 金流配置防呆確認
機台編輯頁「金流與發票」區塊,若金流配置維持「不使用」(未選),
按「儲存變更」時跳出原生 confirm 提示,確認才送出。純前端提醒,
後端 payment_config_id 仍為 nullable。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 05:51:25 +00:00
twsystem1004
be73e7c7a0 feat(sales): 現金支付面額明細(收各面額張數+找零)回傳並於銷售紀錄顯示
- orders 新增 cash_detail JSON 欄(migration)
- Order model fillable/casts + cash_received_summary accessor
  (顯示「收:總額(只列有收到幣別明細) 找:x」)
- TransactionService create/transition 兩處寫入 cash_detail
- 銷售列表 blade 桌機/手機各加一列現金明細

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 04:35:15 +00:00
terrylee
dc9421e482 取貨碼/通行碼/銷售紀錄 後台功能
- 取貨碼使用紀錄記實際出貨貨道(PickupCodeLog.raw_data.slot)
- 銷售紀錄訂單列(支付金額欄)顯示取貨碼序號(member_barcode)
- 遠端指令中心「遠端出貨」→「遠端開櫃」(zh_TW.json Remote Dispense)
- 訂單品項記消費者選的貨道(order_items.slot_no + migration),失敗交易也看得到;
  訂單明細顯示 Slot;OrderItem/TransactionService 對應
- 通行碼「只能使用一次」:pass_codes.usage_limit/usage_count + migration;
  建立表單加勾選;B670(verifyPassCode)驗證時消耗、達上限標 used;PassCode.isValid 判斷

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 03:11:24 +00:00
ce9e52efd9 fix(sales): 批次下載 CSV 連結加 download 屬性,避免觸發全域導航遮罩卡住畫面
全域連結攔截器(layouts/admin)點 <a href> 會顯示導航載入遮罩,但檔案下載不換頁、
遮罩不會關閉,導致畫面卡在模糊+進度條停在~95%。加 download 屬性即可被攔截器豁免。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 15:27:38 +08:00
d4d61461fe fix(pickup): 取貨碼商品下拉 placeholder 改「選擇商品」+ 公開取貨頁正確顯示綁定商品
1. 取貨碼新增彈窗的商品下拉沿用了貨道設定的 placeholder(顯示「選擇貨道」),
   改為「選擇商品」並補 Search Product... 多語系。
2. 公開取貨憑證頁(/p/{slug})原本只用 slot_no 對應商品,綁商品的碼 slot_no 為
   null 導致顯示「未知商品」;改為優先用 product_id 綁定的商品,貨道欄無值顯示「—」。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 15:18:40 +08:00
330b81ab7b [FEAT] 合併 feat/code-batch-create:取貨碼/通行碼批次新增(≤1000)+CSV下載+角色數量分級+cache表migration 2026-06-29 14:37:32 +08:00
3785026749 chore(db): 補上 cache / cache_locks 表 migration
dev 的修正 55cf6b8 將 CACHE_STORE 正確解析為 database,但 repo 未含 cache 表
migration。補上標準 Laravel cache 表(含 hasTable 防呆),確保各環境 pull 後
database 快取可用,避免 ProcessHeartbeat 的 Cache::put 因缺表崩潰。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 14:33:43 +08:00
179348ad66 feat(sales): 批次產碼數量上限依角色分級(客戶端最多20、管理員最多1000)
- 平台管理員(isSystemAdmin):數量上限 1000,快捷 10/50/100/1000
- 客戶端(租戶):數量上限 20,快捷 10/20,欄位輸入超過自動夾回 20
- 後端 store 以角色動態 max 驗證,防止前端被繞過送出大量產碼
- 取貨碼/通行碼兩表單同步;前端 max 與快捷選項由後端依角色下發

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 14:24:47 +08:00
9dbde50f56 fix(sales): 取貨碼新增彈窗「產生數量」改為獨立整列,避免與使用次數上限重疊
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 14:10:13 +08:00
6bb08a13ce feat(sales): 取貨碼/通行碼批次新增(最多1000筆)+ 批次清單 CSV 下載
- 取貨碼沿用「商品版」綁定(product_id,相容舊 slot_no)批次產碼
- 通行碼批次產碼;名稱自動加 #1..#N 流水
- 新增 batch_no 欄位標記同一批,提供批次下載路由與 UTF-8 BOM CSV
- 數量>1 時忽略自訂碼、系統產生不重複隨機碼;單筆行為不變
- 產生後顯示可重複下載清單橫幅;新增 zh_TW/en/ja 翻譯鍵

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 14:00:57 +08:00
sky121113
2dd14fd1b4 [FIX] 取貨碼列表改以商品為主、綁商品碼不再顯示空貨道
1. pickupCodes 查詢補 product eager load,避免 N+1。
2. 列表商品欄改依綁定型態顯示:綁商品碼直接顯示商品名且不顯示貨道;綁貨道碼(舊)維持反查商品名並保留貨道號。
3. 桌面表格標題「商品 / 貨道」改為「商品」,手機卡片同步調整。
2026-06-26 17:42:21 +08:00
sky121113
0c29cdae97 [FEAT] 取貨碼改綁「商品」而非「貨道」
1. 新增 migration 為 pickup_codes 增加 product_id 欄位(nullable + index),既有綁貨道碼向後相容。
2. PickupCode Model 補上 product_id fillable 與 product() 關聯。
3. 產碼 storePickupCode 改收 product_id(與 slot_no 二擇一,required_without),並驗證商品屬於機台所屬公司;機台未上架仍可產碼。
4. 新增 pickupCompanyProducts AJAX 端點與路由,回傳公司商品清單與機台已上架 product_id,供前端標示「此機台未上架」提示。
5. B660 刷碼驗證新增綁商品擋關:機台無此商品貨道時回 409 並寫 PickupCodeLog;回傳資料補上 product_id 供 App 自挑貨道。
6. 產碼介面(pickup-codes/index)由「選擇貨道」改為「選擇商品」,加入未上架警告提示。
7. 多語系同步新增 4 組詞彙(zh_TW/en/ja 對齊排序)。
2026-06-26 17:31:22 +08:00
sky121113
8a92e1c1ff [FEAT] 銷售紀錄手動補單功能(機台斷線/漏報時人工補登)
1. 新增 TransactionService::createManualOrder():複用既有 recordDispense()(扣庫存)與 recordInvoice()+IssueInvoiceJob(後台開發票),訂單標記 order_type=manual、created_by 操作者,flow_id 以 MAN 前綴與機台上報區隔並天然避開唯一鍵衝突。
2. Order 新增 TYPE_MANUAL 常數與 is_manual 存取器;created_at/machine_time 對齊實際發生時間,使銷售報表落在正確日期。
3. SalesController 新增 storeManualOrder()(建單)與 manualMachineSlots()(機台貨道 AJAX);發票類型支援統編/手機條碼/自然人憑證/捐贈/一般 B2C,並寫入 SystemOperationLog 審計留痕。
4. 權限:整個補單功能限系統管理員(按鈕、彈窗、AJAX、store 四處把關);開立電子發票受機台 tax_invoice_enabled 閘門限制,前端隱藏選項 + 後端再驗一次。
5. 新增路由 admin.sales.manual.store 與 admin.sales.manual.machine-slots。
6. 前端:銷售訂單頁籤新增「手動補單」按鈕(僅系統管理員),slide 彈窗全面採用站內元件樣式——下拉用搜尋式 x-searchable-select(機台/貨道/付款/發票類型)、價格與數量改用「新增取貨碼」同款 +/- 計數器、去除原生 number spinner。
7. 訂單列表(桌面與行動卡片)為手動補單顯示「手動」標籤。
8. 三語系(zh_TW/en/ja)補齊 35 組字串並對齊排序、斜線不逸出。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 16:17:54 +08:00
sky121113
55cf6b8331 [FIX] 修正 cache driver 設定 key 不一致導致 fallback 成 file
1. config/cache.php 的 default 由 env('CACHE_DRIVER','file') 改為 env('CACHE_STORE', env('CACHE_DRIVER','database')),優先採用 Laravel 11+ 的 CACHE_STORE 並相容舊 key
2. 修正主因:舊 key 與 .env 的 CACHE_STORE 對不上 → cache 退回 file driver;file cache 寫入失敗時 ProcessHeartbeat 會在 Cache::put 崩潰,導致機台韌體版本/溫度/心跳寫不進 DB 且 queue worker 連鎖重啟

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 15:14:16 +08:00
sky121113
5a4d681d13 [FIX] 同步 hotfix:銷售紀錄機台權限隔離
訂單/發票/出貨清單依使用者可存取機台過濾。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 20:06:17 +08:00
sky121113
5e0bfeb544 [FIX] 銷售紀錄機台權限隔離:訂單/發票/出貨清單依使用者可存取機台過濾
1. SalesController index 先前 orders/invoices/dispense 查詢只靠 TenantScoped 做 company 隔離,未依機台授權過濾;導致無該機台權限的子帳號仍能看到其交易訂單(機台名稱因 machine_access scope 顯示 unknown,但訂單仍列出)
2. 修正:非系統管理員時,三個查詢一律限制 machine_id 在「可存取機台集合」(沿用 Machine 的 machine_access 全域 scope,與機台下拉清單一致);export 共用同一 query 亦一併涵蓋
3. 新增 SalesMachineAccessTest(3 案,Admin 套件 58 測試 0 回歸)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 20:03:57 +08:00
sky121113
be9c70d524 [RELEASE] demo -> main: 帳號與角色多層級隔離上正式站
1. 帳號與角色多層級隔離:主/子帳號樹狀 (parent_id/level)、主帳號唯一性 (is_admin 補位/禁刪最後主帳號)、角色權限與機台授權子集把關、角色層級隔離 (created_by)
2. 含 3 支具 backfill 的 migration(is_company_admin / parent_id+level / created_by):部署後須跑 migrate;會將既有非主帳號設為主帳號之下層、軟刪除帳號清 is_admin、公司角色歸屬主帳號
3. 機台日誌層級篩選 + 銷售紀錄付款/出貨狀態篩選

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 17:30:24 +08:00
sky121113
146dac4493 [PROMOTE] dev -> demo: 帳號與角色多層級隔離 + 機台日誌/銷售篩選
1. 帳號與角色多層級隔離:主/子帳號樹狀 (parent_id/level)、主帳號唯一性 (is_admin 補位/禁刪最後主帳號)、角色權限與機台授權子集把關、角色層級隔離 (created_by)。含 3 支 migration(is_company_admin / parent_id+level / created_by,皆具 backfill,部署後須跑 migrate)
2. 機台日誌層級篩選 + 銷售紀錄付款/出貨狀態篩選 + TransactionService 金額修正

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 17:11:31 +08:00
sky121113
697c52eba3 [FEAT] 合併帳號與角色多層級隔離 (feat/account-hierarchy-rbac)
主/子帳號樹狀層級、角色權限與機台授權子集把關、角色層級隔離。
詳見 feature 分支 commit 2016637。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 17:04:40 +08:00
sky121113
201663741d [FEAT] 帳號與角色多層級隔離(主/子帳號樹狀 + 角色權限/機台授權子集把關)
1. 主帳號不變量:storeAccount 的 is_admin 改補位(每家公司恰一主帳號)、destroyAccount 禁刪最後主帳號、roles 新增 is_company_admin 旗標保護公司管理員角色不被刪除
2. 帳號樹狀層級:users 新增 parent_id/level(主帳號 level 0、子帳號最多兩層),新增 visibleTo/canManageAccount,帳號清單與管理端點(accounts/update/destroy/toggle、機台授權選帳號、補貨指派)一律套層級可見範圍與越權防護
3. 角色指派子集:storeAccount/updateAccount 指派角色與帳號 Modal 下拉一律限制為「權限為操作者子集」,杜絕權限提升
4. 機台授權子集:MachinePermissionController 僅允許在操作者本身可授權機台範圍內增刪,保留範圍外既有授權,並修正 machine_access 全域 scope 對讀寫的干擾
5. 角色層級隔離:roles 新增 created_by,子帳號只看/只管/只能指派自己建立的角色(主帳號看全公司),edit/update/destroy 加 canBeManagedBy 守衛
6. 補強:MachineSetting 機台權限人員清單補租戶隔離、修正角色下拉 N+1、三語系新增提示字串
7. 測試:新增 AccountHierarchyTest/AccountSubsetGuardTest/RoleHierarchyTest,Admin 套件 55 測試 0 回歸

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 17:03:43 +08:00
terrylee
b77165d7b3 [RELEASE] demo -> main:副櫃系統授權+交易total_amount修正+demo累積功能上正式 2026-06-25 09:01:10 +00:00
terrylee
41e9b0d57c [PROMOTE] dev -> demo: 副櫃系統授權開關 + 交易total_amount修正(含dev累積變更) 2026-06-25 08:24:05 +00:00
twsystem1004
ee22ff9e6d [FIX] finalize 轉移未更新 total_amount 導致銷售金額顯示0
transitionOrder(pending→completed) 原只更新 pay_amount,補上 total_amount/original_amount/discount_amount,避免後台銷售紀錄金額停在建立時的0。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 08:11:36 +00:00
twsystem1004
7ba6d9ebe6 [FEAT] 副櫃系統(格子櫃功能)授權開關
機台設定-基礎版新增「副櫃系統/格子櫃功能」開關,存 settings.subcabinet_enabled(僅basic);B014 FunctionSet 新增 Subcabinet 下發給 app 控制副櫃分頁/鎖控板設定顯示;啟用功能摘要列出副櫃系統。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 08:11:36 +00:00
sky121113
16a8ee7986 [FEAT] 合併機台日誌層級篩選與銷售紀錄付款/出貨狀態篩選
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 17:07:05 +08:00
sky121113
06d68a2783 [FEAT] 合併機台日誌層級篩選與銷售紀錄付款/出貨狀態篩選
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 17:06:42 +08:00
sky121113
7739d6016f [FEAT] 合併機台日誌層級篩選與銷售紀錄付款/出貨狀態篩選
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 17:06:15 +08:00
sky121113
f571f99084 [FEAT] 機台日誌層級篩選與銷售紀錄付款/出貨狀態篩選
1. 機台日誌新增「層級」篩選下拉(所有層級/Info/Warning/Error),採 x-searchable-select 元件,選擇即時重撈,清除篩選一併重置
2. 銷售紀錄訂單分頁新增「付款狀態」篩選(對應 status 欄)
3. 銷售紀錄訂單分頁新增「出貨狀態」篩選(delivery_status),比照列表顯示邏輯限定 completed/paid 訂單,避免未出貨單因預設值誤篩
4. 補齊三語系 key:All Payment Statuses、All Dispense Statuses、Paid,並對齊排序

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 17:05:45 +08:00
sky121113
a5d9aace56 [FIX] 合併取貨碼 status fillable 修復 2026-06-24 16:03:23 +08:00
sky121113
fb71ecddaf [FIX] 合併取貨碼 status fillable 修復 2026-06-24 16:03:18 +08:00
sky121113
2736c382a2 [FIX] 合併取貨碼 status fillable 修復 2026-06-24 16:03:14 +08:00
sky121113
de2f098309 [FIX] 取貨碼無法刪除:status 未列入 fillable 導致取消無效
1. PickupCode $fillable 補上 status,原本 destroyPickupCode 的 update(['status'=>'cancelled']) 因 mass-assignment 保護被靜默忽略,導致取貨碼按刪除(取消)後狀態不變、永遠刪不掉(超級管理員亦然)
2. PassCode/WelcomeGift 的 fillable 本就含 status 不受影響,故僅取貨碼有此問題

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 16:03:01 +08:00
sky121113
7044d4cefd [FIX] 合併取貨碼/通行碼/來店禮租戶機台授權修復 2026-06-24 15:40:33 +08:00
sky121113
a65f4cd45c [FIX] 合併取貨碼/通行碼/來店禮租戶機台授權修復 2026-06-24 15:40:26 +08:00
sky121113
4e9d21d1d6 [FIX] 合併取貨碼/通行碼/來店禮租戶機台授權修復 2026-06-24 15:40:05 +08:00
sky121113
38f5071975 [FIX] 取貨碼/通行碼/來店禮:客戶帳號跨未授權機台導致頁面崩潰與越權
1. 列表與操作紀錄查詢加上 whereHas('machine'),依 machine_user 授權過濾,客戶帳號只看得到可存取機台的資料(系統管理員不受影響)
2. pickup_code_logs.machine_id 可為 null,該紀錄查詢改為「machine_id 為 null 或機台可存取」以保留非機台紀錄
3. destroyPickupCode/destroyPassCode/destroyWelcomeGift 加上機台授權守衛,非系統管理員越權刪除回傳 403
4. tab-list blade 將 $x->machine->name 等改為 null-safe,作為縱深防禦

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 15:39:41 +08:00
sky121113
6e5307933f [RELEASE] feat/slot-lock-expiry-bidirectional-sync → main:貨道效期+鎖定 App↔後台雙向同步上線
1. 貨道效期/鎖定 App↔後台雙向同步(LWW)
2. 鎖定操作紀錄顯示與多語系補齊
3. 庫存清單與機台概覽顯示貨道鎖定狀態

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 14:57:42 +08:00
sky121113
61825e706a [PROMOTE] feat/slot-lock-expiry-bidirectional-sync → demo:庫存清單與機台概覽顯示貨道鎖定狀態
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 14:50:10 +08:00
sky121113
1bd8971310 [FEAT] 庫存清單與機台概覽顯示貨道鎖定狀態
1. 庫存與效期管理頁(列表/矩陣/手機卡片)商品旁顯示鎖定徽章,使用者可在清單直接辨識暫停販售貨道
2. 機台庫存概覽頁(格狀/表格/手機卡片)同步顯示鎖定徽章
3. 新增 Sale Paused 語系 key 三語系對齊(暫停販售 / Sale Paused / 販売停止)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 14:49:59 +08:00
sky121113
7f4e67129f [PROMOTE] feat/slot-lock-expiry-bidirectional-sync → demo:貨道鎖定操作紀錄與多語系修正
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 14:36:27 +08:00
sky121113
6ce4c2c8ed [FIX] 貨道鎖定操作紀錄顯示與多語系補齊
1. 操作紀錄徽章補上鎖定/解鎖切換顯示,修正僅 is_locked 變動時出現空白「貨道 N:」
2. 補齊鎖定彈窗 4 個語系 key(Sale Status / On Sale / Locked (Sale Paused) / Lock (Pause Sale))三語系對齊

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 14:36:20 +08:00
sky121113
3007bfb254 Merge branch 'feat/slot-lock-expiry-bidirectional-sync' into demo 2026-06-24 14:25:51 +08:00