o2o-negosium-original/scripts/seed_imk_items.sql
Mina Choi 0f10b6a70f [feat] negodata·공급사포털: 상품 필드 숨김 설정·용어 카탈로그 확장·로그인 전 브랜딩·모바일 대응
- 회사 설정 hidden_fields 신설: 상품 목록·등록폼·엑셀 양식에서 감추고 목표가 후보에서도 제외
- 용어 카탈로그 9→37개(상품·협력사·견적 그룹), 목록·폼·엑셀 헤더 배선
- 엑셀 '최저한도' → '인터넷 최저가' 표기 정정(구양식 헤더는 alias 유지), 공급사 컬럼 검증 유지
- 목표가 산정내역에 적용 모드·숨김 필드 반영, 목표가 상한 라벨에 산식(상품단가×2) 표기
- 공급사 포털: 초청 링크 session_id 로 로그인 전 회사 브랜딩 조회(무인증 엔드포인트), 기본 브랜드 negotium 워드마크, negotium·AI O2O 크레딧 표기
- 목록 테이블 뷰포트 기준 전환·툴바 줄바꿈·협상현황 카드뷰로 모바일/태블릿 대응
- 이용안내 FAQ 탭 추가, 이용안내·회사설정 탭 URL 쿼리 동기화 및 빠른이동 등록
2026-07-23 11:29:35 +09:00

76 lines
6.5 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- IMK 요구(TO-BE 상품 업로드 양식 / #14 발주배수 / #17 협력사 분류카테고리 / #20 공급사) 기준 데모 데이터.
-- 기본필드는 items 컬럼, TO-BE 신규 항목(발주배수·하도급·납품대금연동)은 items.custom,
-- 협력사 분류카테고리·유통레벨은 suppliers.custom 에 넣는다 — 전부 회사 설정(item_fields/supplier_fields) 정의와 같은 키.
-- 코드 접두사 IMK- 만 지우고 다시 넣으므로 멱등하게 재실행 가능.
DO $$
DECLARE
v_company uuid;
v_user uuid;
BEGIN
SELECT company_id INTO v_company FROM company.companies WHERE name = '아이마켓코리아';
SELECT user_id INTO v_user FROM company.users WHERE company_id = v_company AND id = 'admin';
DELETE FROM partner.supplier_items
WHERE item_id IN (SELECT item_id FROM partner.items WHERE company_id = v_company AND code LIKE 'IMK-%');
DELETE FROM partner.items WHERE company_id = v_company AND code LIKE 'IMK-%';
DELETE FROM partner.suppliers WHERE company_id = v_company AND code LIKE 'IMKS-%';
-- 협력사: 분류카테고리(제조원 성격) + 유통레벨을 custom 으로. (#17)
INSERT INTO partner.suppliers (company_id, user_id, name, code, manager_name, manager_email, manager_contact_number, custom)
VALUES
(v_company, v_user, '한솔제지', 'IMKS-001', '김제지', 'paper@example.com', '02-1000-0001', '{"sourcing_category":"복사용지","distribution_level":"제조"}'),
(v_company, v_user, '대한오피스', 'IMKS-002', '박사무', 'office@example.com', '02-1000-0002', '{"sourcing_category":"사무용품","distribution_level":"유통"}'),
(v_company, v_user, '세이프코리아', 'IMKS-003', '이안전', 'safe@example.com', '02-1000-0003', '{"sourcing_category":"안전보호구","distribution_level":"총판"}'),
(v_company, v_user, '한국툴스', 'IMKS-004', '최공구', 'tools@example.com', '02-1000-0004', '{"sourcing_category":"절삭공구","distribution_level":"제조"}'),
(v_company, v_user, '광명전기자재', 'IMKS-005', '정전기', 'elec@example.com', '02-1000-0005', '{"sourcing_category":"전기자재","distribution_level":"유통"}');
-- 상품: category = SG명, lead_time = 표준납기, delivery_type 1=직납 2=IMK물류(배송) 3=IMK물류(집배송).
-- custom: order_multiple(발주배수) / subcontract_yn(하도급) / price_linked_yn(납품대금연동). (#14, TO-BE)
INSERT INTO partner.items (
company_id, user_id, name, code, model_name, category, spec, manufacturer, made_in,
price, purchase_price, selling_price, internet_lowest_price, internet_lowest_price_yn,
moq, lead_time, quantity_unit, delivery_type, vat_yn, delivery_fee_yn, custom
) VALUES
(v_company, v_user, 'A4 복사용지 80g', 'IMK-P-001', 'HS-A4-80', '복사용지', '210×297mm 2500매/박스', '한솔제지', '대한민국',
23000, 21000, 25000, 22500, true, '10 BOX', 3, 'BOX', 1, true, false, '{"order_multiple":10,"subcontract_yn":false,"price_linked_yn":true}'),
(v_company, v_user, '레이저 토너 (검정)', 'IMK-P-002', 'CF280A', '사무용품', '2700매 표준용량', 'HP', '중국',
98000, 86000, 105000, 91000, true, '5 EA', 5, 'EA', 1, true, false, '{"order_multiple":5,"subcontract_yn":false,"price_linked_yn":false}'),
(v_company, v_user, '안전화 (경작업용)', 'IMK-P-003', 'SK-450', '안전보호구', '265mm KCS 인증', '세이프코리아', '대한민국',
78000, 69000, 85000, 74000, true, '20 EA', 7, 'EA', 2, true, true, '{"order_multiple":20,"subcontract_yn":true,"price_linked_yn":true}'),
(v_company, v_user, '니트릴 장갑 (100매)', 'IMK-P-004', 'NG-100', '안전보호구', 'M 사이즈 100매/박스', '세이프코리아', '말레이시아',
12500, 10800, 14000, 11900, true, '50 BOX', 4, 'BOX', 2, true, true, '{"order_multiple":50,"subcontract_yn":false,"price_linked_yn":false}'),
(v_company, v_user, '초경 엔드밀 4날', 'IMK-P-005', 'EM-4F-10', '절삭공구', 'Φ10 × 75mm', '한국툴스', '대한민국',
34000, 29000, 38000, 32000, true, '30 EA', 10, 'EA', 1, true, false, '{"order_multiple":30,"subcontract_yn":true,"price_linked_yn":true}'),
(v_company, v_user, 'LED 평판등 50W', 'IMK-P-006', 'LP-640-50', '전기자재', '640×640 주광색', '광명전기자재', '대한민국',
46000, 39500, 52000, 44000, true, '20 EA', 14, 'EA', 3, true, true, '{"order_multiple":20,"subcontract_yn":false,"price_linked_yn":true}'),
(v_company, v_user, '산업용 베어링 6204', 'IMK-P-007', '6204-2RS', '기계부품', '내경 20mm 밀폐형', 'NSK', '일본',
8900, 7200, 9800, 8300, true, '100 EA', 12, 'EA', 1, true, false, '{"order_multiple":100,"subcontract_yn":false,"price_linked_yn":false}'),
(v_company, v_user, '다목적 세정제 4L', 'IMK-P-008', 'CL-4000', '청소용품', '4L × 4통/박스', '대한오피스', '대한민국',
31000, 26500, 35000, 29800, true, '15 BOX', 5, 'BOX', 2, true, true, '{"order_multiple":15,"subcontract_yn":false,"price_linked_yn":false}');
-- 실적(계약) 공급사 매핑. supply_type 1=유통 2=제조 3=총판. (#20)
INSERT INTO partner.supplier_items (supplier_id, item_id, supply_type)
SELECT s.supplier_id, i.item_id, m.supply_type
FROM (VALUES
('IMK-P-001', 'IMKS-001', 2::smallint),
('IMK-P-001', 'IMKS-002', 1::smallint),
('IMK-P-002', 'IMKS-002', 1::smallint),
('IMK-P-003', 'IMKS-003', 3::smallint),
('IMK-P-004', 'IMKS-003', 3::smallint),
('IMK-P-005', 'IMKS-004', 2::smallint),
('IMK-P-006', 'IMKS-005', 1::smallint),
('IMK-P-007', 'IMKS-004', 2::smallint),
('IMK-P-008', 'IMKS-002', 1::smallint)
) AS m(item_code, supplier_code, supply_type)
JOIN partner.items i ON i.code = m.item_code AND i.company_id = v_company
JOIN partner.suppliers s ON s.code = m.supplier_code AND s.company_id = v_company;
-- 협력사 커스텀필드 정의(분류카테고리·유통레벨)를 회사 설정에 등록 — 값만 있고 정의가 없으면 화면에 안 뜬다.
UPDATE company.companies
SET settings = settings || jsonb_build_object('supplier_fields', '[
{"key":"sourcing_category","type":"text","label":"분류카테고리"},
{"key":"distribution_level","type":"text","label":"유통레벨"}]'::jsonb)
WHERE company_id = v_company;
END $$;