当日返しを専用テーブルに分離し、グレードを任意設定できるようにする #29

Closed
opened 2026-09-28 05:04:59 +00:00 by joe · 0 comments
Owner

背景

当日返しを香典返しの状況やフラグで持つと、状況の意味が濁り、複数グレード(香典額に応じて品を変える等)も表現できない。専用テーブルに分離する。

実装内容(完了)

  • handed_gifts(当日返しの記録): 弔問客に紐づき複数可。グレード・品目・実額・渡した日・メモ
  • handed_grades(グレードのマスタ): ラベルと既定額を設定画面で自由に追加/編集/削除
  • 専用ページ /handed/(記録フォーム+一覧のインライン編集+削除)。香典返し一覧と弔問客フォームから遷移
  • 独立集計: 未対応・発送リスト・返礼品見込は香典返しのまま。返礼実費 = 送付済の実額 + 当日返しの実額
  • ダッシュボードに「当日返し N件 / 実費 X円」
  • グレード選択時、未入力の品目・実額に既定値を反映(手入力は上書きしない)
  • ゴミ箱に当日返しを追加(弔問客と連動して復元/完全削除)
  • 出力: 当日返しのCSVとExcelシートを追加。香典返しの「当日返し」列は廃止
  • 旧UIを撤去: 香典返し一覧の当日返しボタン/バッジ、弔問客フォームのチェック。弔問客一覧は「当日返しN件」バッジ

移行

  • 旧return_gifts.handedフラグ(および旧status='handed')をhanded_giftsへ移行し、列を削除
  • 本番DBで確認: 新テーブル2つ作成、handed列削除、既存1件を移行(弔問客1/実額10,000円/2026-09-28)

検証

  • テスト265件パス(当日返し12件を追加)
  • 稼働サーバー: /handed/・/settings・/export/handed.csv すべて200、ダッシュボードに「当日返し 1件 / 実費 10,000円」
## 背景 当日返しを香典返しの状況やフラグで持つと、状況の意味が濁り、複数グレード(香典額に応じて品を変える等)も表現できない。専用テーブルに分離する。 ## 実装内容(完了) - **handed_gifts**(当日返しの記録): 弔問客に紐づき**複数可**。グレード・品目・実額・渡した日・メモ - **handed_grades**(グレードのマスタ): ラベルと既定額を**設定画面で自由に追加/編集/削除** - 専用ページ `/handed/`(記録フォーム+一覧のインライン編集+削除)。香典返し一覧と弔問客フォームから遷移 - **独立集計**: 未対応・発送リスト・返礼品見込は香典返しのまま。返礼実費 = 送付済の実額 + 当日返しの実額 - ダッシュボードに「当日返し N件 / 実費 X円」 - グレード選択時、未入力の品目・実額に既定値を反映(手入力は上書きしない) - ゴミ箱に当日返しを追加(弔問客と連動して復元/完全削除) - 出力: 当日返しのCSVとExcelシートを追加。香典返しの「当日返し」列は廃止 - 旧UIを撤去: 香典返し一覧の当日返しボタン/バッジ、弔問客フォームのチェック。弔問客一覧は「当日返しN件」バッジ ## 移行 - 旧`return_gifts.handed`フラグ(および旧`status='handed'`)を`handed_gifts`へ移行し、列を削除 - 本番DBで確認: 新テーブル2つ作成、`handed`列削除、既存1件を移行(弔問客1/実額10,000円/2026-09-28) ## 検証 - テスト265件パス(当日返し12件を追加) - 稼働サーバー: `/handed/`・`/settings`・`/export/handed.csv` すべて200、ダッシュボードに「当日返し 1件 / 実費 10,000円」
joe closed this issue 2026-09-28 05:05:00 +00:00
Sign in to join this conversation.
No labels
bug
cleanup
enhancement
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
joe/sougi#29
No description provided.