From 7d8b342a85bf97279245fdd21d08afbb279518a5 Mon Sep 17 00:00:00 2001 From: sky121113 Date: Thu, 28 May 2026 16:08:24 +0800 Subject: [PATCH 1/3] sales: unify pickup recipient wording for payment_type 42 --- .../views/admin/sales/partials/order-detail-panel.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/admin/sales/partials/order-detail-panel.blade.php b/resources/views/admin/sales/partials/order-detail-panel.blade.php index e6aca26..788640c 100644 --- a/resources/views/admin/sales/partials/order-detail-panel.blade.php +++ b/resources/views/admin/sales/partials/order-detail-panel.blade.php @@ -118,11 +118,11 @@
-

{{ __('Pickup Voucher Info') }}

+

取物人資訊

-

{{ __('Member Barcode') }}

+

取物人

{{ $order->member_barcode }}

From da11241f725a6f5dc7d3e7461f0aa877dc09a5df Mon Sep 17 00:00:00 2001 From: sky121113 Date: Thu, 28 May 2026 16:13:52 +0800 Subject: [PATCH 2/3] sales: localize pickup recipient wording for payment_type 42 --- lang/en.json | 2 ++ lang/ja.json | 2 ++ lang/zh_TW.json | 2 ++ .../views/admin/sales/partials/order-detail-panel.blade.php | 4 ++-- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lang/en.json b/lang/en.json index c912f30..316503d 100644 --- a/lang/en.json +++ b/lang/en.json @@ -1351,6 +1351,8 @@ "Picked up": "Picked up", "Picked up Time": "Picked up Time", "Pickup Code": "Pickup Code", + "Pickup Recipient Info": "Pickup Recipient Info", + "Pickup Recipient (Prescription Slip)": "Pickup Recipient (Prescription Slip)", "Pickup Code (8 Digits)": "Pickup Code (8 Digits)", "Pickup Codes": "Pickup Codes", "Pickup Ticket": "Pickup Ticket", diff --git a/lang/ja.json b/lang/ja.json index 2e4e98f..9b2d7d4 100644 --- a/lang/ja.json +++ b/lang/ja.json @@ -1346,6 +1346,8 @@ "Picked up": "受取済み", "Picked up Time": "受取時間", "Pickup Code": "受取コード", + "Pickup Recipient Info": "受取者情報", + "Pickup Recipient (Prescription Slip)": "受取者(処方箋)", "Pickup Code (8 Digits)": "受取コード (8桁)", "Pickup Codes": "受取コード", "Pickup Ticket": "商品受取チケット", diff --git a/lang/zh_TW.json b/lang/zh_TW.json index 460b15b..8fe8896 100644 --- a/lang/zh_TW.json +++ b/lang/zh_TW.json @@ -1351,6 +1351,8 @@ "Picked up": "領取", "Picked up Time": "領取時間", "Pickup Code": "取貨碼", + "Pickup Recipient Info": "取物人資訊", + "Pickup Recipient (Prescription Slip)": "取物人(領藥單)", "Pickup Code (8 Digits)": "取貨碼 (8 位數)", "Pickup Codes": "取貨碼", "Pickup Ticket": "商品領取券", diff --git a/resources/views/admin/sales/partials/order-detail-panel.blade.php b/resources/views/admin/sales/partials/order-detail-panel.blade.php index 788640c..b6a7776 100644 --- a/resources/views/admin/sales/partials/order-detail-panel.blade.php +++ b/resources/views/admin/sales/partials/order-detail-panel.blade.php @@ -118,11 +118,11 @@
-

取物人資訊

+

{{ __('Pickup Recipient Info') }}

-

取物人

+

{{ __('Pickup Recipient (Prescription Slip)') }}

{{ $order->member_barcode }}

From 7766fce1d4a447c2d4a735a4961344887469b79f Mon Sep 17 00:00:00 2001 From: sky121113 Date: Thu, 28 May 2026 16:20:27 +0800 Subject: [PATCH 3/3] =?UTF-8?q?[FEAT]=20=E6=96=B0=E5=A2=9E=E5=85=A8?= =?UTF-8?q?=E5=9F=9F=20workflow=20=E6=8C=87=E4=BB=A4=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 新增 ./workflow 統一執行器,支援 load-ids、daily-work-log、hotfix-prod、demo-day-pptx、start-task、promote-env、monthly-report、now-push。 2. 補充 docs/workflow-commands.md 使用說明與參數範例,便於團隊直接操作。 --- docs/workflow-commands.md | 44 ++++++++ workflow | 218 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 262 insertions(+) create mode 100644 docs/workflow-commands.md create mode 100755 workflow diff --git a/docs/workflow-commands.md b/docs/workflow-commands.md new file mode 100644 index 0000000..4380134 --- /dev/null +++ b/docs/workflow-commands.md @@ -0,0 +1,44 @@ +# Workflow Commands + +統一入口:`./workflow` + +## 查看可用指令 + +```bash +./workflow list +``` + +## 執行指令 + +```bash +./workflow run [args...] +``` + +## 指令對照 + +- `load-ids` + - 載入 `~/.gemini/AGENTS.md` 與 `~/.gemini/GEMINI.md` 內容。 + +- `daily-work-log` + - 輸出今日 commit:`git log --since="midnight" ...` + +- `hotfix-prod ` + - 從 `main` 建立 `hotfix/`。 + +- `demo-day-pptx` + - 輸出流程提醒(先做 implementation_plan 再做 PPTX)。 + +- `start-task [--stash]` + - 從最新 `dev` 建立任務分支,必要時先 stash 再 pop。 + +- `promote-env [--force-main]` + - 支援 `dev -> demo` 或 `demo -> main`。 + - 會先列出 log 與敏感檔案,再 merge/push,最後切回 `dev`。 + +- `monthly-report ` + - 產生月報草稿檔案:`docs/monthly-report-YYYY-MM.md`。 + +- `now-push "" ["detail1" ...]` + - `prefix`: `FIX|FEAT|DOCS|STYLE|REFACTOR` + - 自動 `git add -A`、commit、push 到目標分支。 + diff --git a/workflow b/workflow new file mode 100755 index 0000000..8320568 --- /dev/null +++ b/workflow @@ -0,0 +1,218 @@ +#!/usr/bin/env bash +set -euo pipefail + +WF_DIR="${HOME}/.gemini/config/global_workflows" +SELF_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +usage() { + cat <<'EOF' +Usage: + ./workflow list + ./workflow run [args...] + +Workflows: + load-ids + daily-work-log + hotfix-prod + demo-day-pptx + start-task [--stash] + promote-env [--force-main] + monthly-report + now-push "" ["detail 1" "detail 2"...] +EOF +} + +require_repo() { + git -C "${SELF_DIR}" rev-parse --is-inside-work-tree >/dev/null +} + +ensure_dev_window_for_main() { + local now_dow now_hm + now_dow="$(date +%u)" # 1..7 = Mon..Sun + now_hm="$(date +%H%M)" + if [[ "${now_dow}" -gt 4 || "${now_hm}" -gt 1200 ]]; then + echo "WARNING: 現在不在標準上線時段(週一至週四 12:00 前)。" + if [[ "${1:-}" != "--force-main" ]]; then + echo "中止。若確認要繼續,請加上 --force-main。" + exit 1 + fi + fi +} + +cmd_list() { + ls -1 "${WF_DIR}" 2>/dev/null | sed 's/\.md$//' +} + +cmd_load_ids() { + sed -n '1,120p' "${HOME}/.gemini/AGENTS.md" + echo + sed -n '1,120p' "${HOME}/.gemini/GEMINI.md" + echo + echo "身份與全域規範已加載完成。" +} + +cmd_daily_work_log() { + require_repo + git -C "${SELF_DIR}" log --since="midnight" --pretty=format:"%h - %s (%an)" +} + +cmd_hotfix_prod() { + require_repo + local name="${1:-}" + if [[ -z "${name}" ]]; then + echo "hotfix-prod 需要 hotfix 名稱。" + exit 1 + fi + git -C "${SELF_DIR}" checkout main + git -C "${SELF_DIR}" pull origin main + git -C "${SELF_DIR}" checkout -b "hotfix/${name}" + echo "已建立分支 hotfix/${name}。完成修復後請自行合併到 main,再回補 demo/dev。" +} + +cmd_demo_day_pptx() { + cat <<'EOF' +demo-day-pptx 已觸發: +1) 先產出 implementation_plan.md(7-9頁)給你確認 +2) 確認後再執行 PPTX 產製 +EOF +} + +cmd_start_task() { + require_repo + local kind="${1:-}" name="${2:-}" stash_opt="${3:-}" + if [[ ! "${kind}" =~ ^(feat|fix|refactor|docs)$ ]] || [[ -z "${name}" ]]; then + echo "用法:./workflow run start-task [--stash]" + exit 1 + fi + + if [[ -n "$(git -C "${SELF_DIR}" status --porcelain)" && "${stash_opt}" == "--stash" ]]; then + git -C "${SELF_DIR}" stash push -u -m "workflow:start-task" + fi + + git -C "${SELF_DIR}" checkout dev + git -C "${SELF_DIR}" pull origin dev + git -C "${SELF_DIR}" checkout -b "${kind}/${name}" + + if git -C "${SELF_DIR}" stash list | rg -q "workflow:start-task"; then + git -C "${SELF_DIR}" stash pop || true + fi + + echo "已切到分支 ${kind}/${name}" +} + +cmd_promote_env() { + require_repo + local src="${1:-}" dst="${2:-}" force_main="${3:-}" + if [[ -z "${src}" || -z "${dst}" ]]; then + echo "用法:./workflow run promote-env [--force-main]" + exit 1 + fi + if [[ "${src}" == "dev" && "${dst}" != "demo" ]]; then + echo "僅允許 dev -> demo。" + exit 1 + fi + if [[ "${src}" == "demo" && "${dst}" != "main" ]]; then + echo "僅允許 demo -> main。" + exit 1 + fi + if [[ "${dst}" == "main" ]]; then + ensure_dev_window_for_main "${force_main:-}" + fi + + echo "=== 待晉升提交 ===" + git -C "${SELF_DIR}" log "${dst}..${src}" --oneline || true + echo + echo "=== 敏感檔案檢查 ===" + git -C "${SELF_DIR}" diff --name-only "${dst}...${src}" | rg "^(database/migrations/|\.env\.example|rbac-rules\.md)" || true + + git -C "${SELF_DIR}" checkout "${dst}" + git -C "${SELF_DIR}" pull origin "${dst}" + git -C "${SELF_DIR}" merge "${src}" --no-ff -m "[PROMOTE] ${src} -> ${dst}" + git -C "${SELF_DIR}" push origin "${dst}" + git -C "${SELF_DIR}" checkout dev +} + +cmd_monthly_report() { + local year="${1:-}" month="${2:-}" + if [[ ! "${year}" =~ ^[0-9]{4}$ ]] || [[ ! "${month}" =~ ^[0-9]{1,2}$ ]]; then + echo "用法:./workflow run monthly-report " + exit 1 + fi + local out="${SELF_DIR}/docs/monthly-report-${year}-$(printf "%02d" "${month}").md" + mkdir -p "${SELF_DIR}/docs" + cat > "${out}" < "" ["detail 1" ...]' + exit 1 + fi + + local p="[${prefix}]" + if [[ ! "${p}" =~ ^\[(FIX|FEAT|DOCS|STYLE|REFACTOR)\]$ ]]; then + echo "prefix 僅能為 FIX/FEAT/DOCS/STYLE/REFACTOR" + exit 1 + fi + + if [[ "${target}" == "main" ]]; then + ensure_dev_window_for_main "${4:-}" + fi + + local msg="${p} ${summary}" + if [[ "$#" -gt 0 ]]; then + msg+=$'\n\n' + local i=1 + for item in "$@"; do + msg+="${i}. ${item}"$'\n' + i=$((i+1)) + done + fi + + git -C "${SELF_DIR}" add -A + git -C "${SELF_DIR}" commit -m "${msg}" + local cur + cur="$(git -C "${SELF_DIR}" branch --show-current)" + git -C "${SELF_DIR}" push origin "${cur}:${target}" +} + +main() { + local action="${1:-}" + case "${action}" in + list) cmd_list ;; + run) + local name="${2:-}" + shift 2 || true + case "${name}" in + load-ids) cmd_load_ids "$@" ;; + daily-work-log) cmd_daily_work_log "$@" ;; + hotfix-prod) cmd_hotfix_prod "$@" ;; + demo-day-pptx) cmd_demo_day_pptx "$@" ;; + start-task) cmd_start_task "$@" ;; + promote-env) cmd_promote_env "$@" ;; + monthly-report) cmd_monthly_report "$@" ;; + now-push) cmd_now_push "$@" ;; + *) usage; exit 1 ;; + esac + ;; + *) usage; exit 1 ;; + esac +} + +main "$@"