Files
wace_rps/scripts/verify-revenue.sql
T
hjjeong d23b305990 매출관리 그리드 V1 컬럼 9개 보강 + getRevenueList SQL JOIN 확장 + wace 1:1 검증
- getRevenueList SQL: contract_item / user_info / comm_code(CC_RES) / attach_file_info LATERAL 4개 JOIN 추가. receipt_date / payment_type / request_date / customer_request / order_status_name / manager_name / incoterms / cu01_cnt SELECT 보강
- RevenueListRow 타입: 9개 신규 필드 보강
- GRID_COLUMNS 9개 추가: 접수일/유무상/요청납기/고객사요청사항/수주상태/주문서첨부/출하방법/담당자/인도조건 (wace 35/35 일치)
- docs/migration/sales/04-revenue-verify.md, scripts/verify-revenue.sql

영업 4개 메뉴 (견적·주문·판매·매출) 모두 구조적 검증 1차 종결.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 09:42:21 +09:00

48 lines
2.2 KiB
SQL

-- ============================================================
-- 매출관리 자동 검증 SQL
-- 메인 테이블: project_mgmt + sales_registration (shipping_date IS NOT NULL)
-- ============================================================
\echo ''
\echo '================== Revenue 검증 시작 =================='
\echo ''
\echo '[0] 사전 카운트 ============================'
SELECT 'project_mgmt' AS tbl, COUNT(*) FROM project_mgmt
UNION ALL SELECT 'sales_registration shipping_date NOT NULL',
COUNT(*) FROM sales_registration WHERE shipping_date IS NOT NULL;
\echo ''
\echo '[1] 매출 본 필터 (출하등록된 project) — 운영 0건 예상 =========================='
SELECT COUNT(*) AS revenue_visible_cnt
FROM project_mgmt T
WHERE EXISTS (SELECT 1 FROM sales_registration SR WHERE SR.project_no=T.project_no AND SR.shipping_date IS NOT NULL)
AND T.project_no IS NOT NULL AND T.project_no <> '';
\echo ''
\echo '[2] V1 신규 9개 컬럼 정합성 (필터 해제 샘플) =========================='
SELECT
T.project_no, CM.receipt_date,
CASE WHEN CM.paid_type='paid' THEN '유상' WHEN CM.paid_type='free' THEN '무상' END AS payment_type_name,
COALESCE(NULLIF(CI.due_date, ''), NULLIF(T.due_date, ''), NULLIF(CM.due_date, '')) AS request_date,
CC_RES.code_name AS order_status_name,
U_MGR.user_name AS manager_name,
SR.shipping_method,
SR.incoterms,
COALESCE(AF.cu01_cnt, 0) AS cu01_cnt
FROM project_mgmt T
LEFT JOIN contract_mgmt CM ON CM.objid = T.contract_objid
LEFT JOIN contract_item CI ON CI.objid = T.contract_item_objid AND CI.status='ACTIVE'
LEFT JOIN sales_registration SR ON SR.project_no = T.project_no
LEFT JOIN user_info U_MGR ON U_MGR.user_id = SR.manager_user_id
LEFT JOIN comm_code CC_RES ON CC_RES.code_id = T.contract_result AND CC_RES.status='active'
LEFT JOIN (
SELECT target_objid, COUNT(*) FILTER (WHERE doc_type IN ('FTC_ORDER','ORDER')) AS cu01_cnt
FROM attach_file_info WHERE UPPER(status)='ACTIVE' GROUP BY target_objid
) AF ON AF.target_objid = T.contract_objid
WHERE T.project_no IS NOT NULL AND T.project_no <> ''
ORDER BY T.regdate DESC NULLS LAST LIMIT 5;
\echo ''
\echo '================== Revenue 검증 끝 =================='