Files
distribution_erp/db/migrations/028_statement_branches_and_warehouses.sql
T
chpark 19e3cf9048
Deploy momo-erp / deploy (push) Successful in 3m5s
feat(statement-branch-admin): 기준 명세표 관리 메뉴/페이지/API + 창고 카테고리 7개로 확장
마이그레이션 028:
- momo_statement_branches 테이블 신설 (code PK / name / bank_account / phone / email 등)
- HQ, KIMPO 기본 시드 INSERT (사용자가 관리자 페이지에서 편집 가능)
- 메뉴: 시스템 그룹에 '기준 명세표 관리' (M_ASBR / menu_info 9000310)

라이브러리 (src/lib/momo-branches.ts):
- 하드코딩 → DB 조회로 변경 (60초 in-memory 캐시)
- getSupplierByBranch 가 async — detail/statement/approve API 도 await 추가
- 저장 시 invalidateBranchCache() 호출

페이지/API (관리자 전용):
- /m/admin/statement-branches : list + 등록/수정/삭제 모달
- POST /api/m/admin/statement-branches/list
- POST /api/m/admin/statement-branches/save (regist / update / delete)

사용자 수정 폼:
- "기준 거래명세서" select 옵션이 하드코딩 본사/김포 → DB 의 branches list 동적 fetch

창고 관리:
- WH_TYPE 카테고리 5개 → 7개 (옛 enum 도 라벨 매핑은 유지)
  · HQ_STOCK 본사 창고
  · HQ_CHARTER 본사 용차
  · HQ_MARKET 본사 시장
  · KIMPO_BRANCH 김포지사
  · KIMPO_STOCK 김포 창고
  · KIMPO_CHARTER 김포 용차
  · KIMPO_MARKET 김포 시장
- 신규 추가 시 select 는 위 7개만 노출, 기존 데이터 (STOCK 등) 는 라벨로 자연 표시

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 15:48:08 +09:00

49 lines
2.4 KiB
SQL

-- 1) 기준 명세표 관리 테이블 신설 (관리자가 supplier 정보 편집)
CREATE TABLE IF NOT EXISTS momo_statement_branches (
code VARCHAR(20) PRIMARY KEY,
name VARCHAR(100) NOT NULL,
bank_account VARCHAR(200) NOT NULL,
phone VARCHAR(40),
email VARCHAR(100),
ceo_name VARCHAR(50),
biz_no VARCHAR(40),
address VARCHAR(200),
is_default CHAR(1) DEFAULT 'N',
sort_order INTEGER DEFAULT 0,
is_del CHAR(1) DEFAULT 'N',
regdate TIMESTAMP DEFAULT NOW()
);
-- 기본 시드 (idempotent: code 가 PK 라 ON CONFLICT DO NOTHING 안전)
INSERT INTO momo_statement_branches (code, name, bank_account, phone, email, ceo_name, is_default, sort_order)
VALUES
('HQ', '본사', '기업은행 434-115361-01-016 (이상용)', '010-6369-8443', 'momo8443@daum.net', '이상용', 'Y', 1),
('KIMPO', '김포', '농협 351-1383-7634-13 (모모유통)', '010-5789-9431', 'momokimpo@nate.com', '이상용', 'N', 2)
ON CONFLICT (code) DO NOTHING;
-- 2) 기준 명세표 관리 메뉴 (admin-panel 의 시스템 관리 또는 별도)
-- momo_menus 시스템 그룹에 추가
INSERT INTO momo_menus (objid, menu_code, menu_name, menu_url, parent_code, sort_order, group_name, is_system, is_del, regdate)
VALUES ('M_ASBR', 'A_SBR', '기준 명세표 관리', '/m/admin/statement-branches', NULL, 92, '시스템', 'Y', 'N', NOW())
ON CONFLICT (objid) DO UPDATE
SET menu_name = EXCLUDED.menu_name,
menu_url = EXCLUDED.menu_url,
sort_order = EXCLUDED.sort_order,
group_name = EXCLUDED.group_name,
is_del = 'N';
-- menu_info (FITO 사이드바 ground truth) 도 추가 — 매입/입고 부모(9000300) 와 별도, 시스템 그룹에
-- 9000306 으로 신설, 부모 -395553955 (메뉴 root) 사용
INSERT INTO menu_info (objid, menu_type, parent_obj_id, menu_name_kor, menu_name_eng, seq, menu_url, status, system_name, regdate)
SELECT '9000310', '1', '-395553955', '기준 명세표 관리', 'Statement Branch', '710', '/m/admin/statement-branches', 'active', 'PMS', NOW()
WHERE NOT EXISTS (SELECT 1 FROM menu_info WHERE objid = '9000310');
UPDATE menu_info SET
menu_name_kor = '기준 명세표 관리',
menu_name_eng = 'Statement Branch',
parent_obj_id = '-395553955',
seq = '710',
menu_url = '/m/admin/statement-branches',
status = 'active'
WHERE objid = '9000310';