Files
distribution_erp/db/migrations/030_orders_supplier_snapshot.sql
T
chpark 0bfe85dc69
Deploy momo-erp / deploy (push) Successful in 3m37s
fix(orders): 거래명세표 공급자 정보 발주 시점 snapshot 처리
기존: 거래명세표 발급 때마다 user_info.statement_branch + branches table
을 실시간 조회 → 사용자의 기준 명세표를 바꾸거나, branches 의 계좌/
전화/이메일을 수정하면 과거 이미 찍힌 명세표까지 함께 바뀌어버림.

수정: 출고요청(REQUESTED) 시점에 supplier 8개 컬럼을 momo_orders 행에
박아두고, 이후 detail/statement/approve 는 이 snapshot 을 사용.

- 마이그레이션 030: momo_orders 에 supplier_branch / supplier_name /
  supplier_ceo / supplier_bank_account / supplier_phone / supplier_email
  / supplier_biz_no / supplier_address 컬럼 추가 (idempotent IF NOT EXISTS)
- save: 발주 INSERT 시 getSupplierByBranch(user.statement_branch) 호출 결과
  를 그대로 박음
- detail/statement/approve: snapshot 컬럼이 있으면 그것을 사용, 없으면
  옛 발주용 폴백으로 user_info.statement_branch → branches table 조회
2026-05-13 16:39:40 +09:00

17 lines
1.2 KiB
SQL

-- 발주별 공급자(거래명세표) snapshot 컬럼 추가
-- 사용자(user_info.statement_branch) 의 기준 명세표를 바꾸면, 또는 명세표 자체(계좌/전화 등)를
-- 바꾸면, 과거에 이미 찍힌 거래명세표까지 함께 바뀌어버리는 버그 fix.
-- 발주 시점의 공급자 정보를 momo_orders 행에 그대로 박아둔다.
ALTER TABLE momo_orders ADD COLUMN IF NOT EXISTS supplier_branch VARCHAR(20);
ALTER TABLE momo_orders ADD COLUMN IF NOT EXISTS supplier_name VARCHAR(100);
ALTER TABLE momo_orders ADD COLUMN IF NOT EXISTS supplier_ceo VARCHAR(50);
ALTER TABLE momo_orders ADD COLUMN IF NOT EXISTS supplier_bank_account VARCHAR(200);
ALTER TABLE momo_orders ADD COLUMN IF NOT EXISTS supplier_phone VARCHAR(50);
ALTER TABLE momo_orders ADD COLUMN IF NOT EXISTS supplier_email VARCHAR(200);
ALTER TABLE momo_orders ADD COLUMN IF NOT EXISTS supplier_biz_no VARCHAR(50);
ALTER TABLE momo_orders ADD COLUMN IF NOT EXISTS supplier_address VARCHAR(500);
-- 기존 발주 (NULL) 은 detail/statement API 에서 user_info.statement_branch 폴백으로 처리.
-- 신규 발주만 snapshot 박힘.