d23b305990
- 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>
48 lines
2.2 KiB
SQL
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 검증 끝 =================='
|