From 293e22166dab8e3017fbdc51f8ef5d6a7acd22ce Mon Sep 17 00:00:00 2001 From: hjjeong Date: Tue, 27 Jan 2026 12:00:47 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B5=AC=EB=A7=A4=EA=B4=80=EB=A6=AC=5F?= =?UTF-8?q?=EA=B2=AC=EC=A0=81=EC=9A=94=EC=B2=AD=EC=82=AC=EA=B4=80=EB=A6=AC?= =?UTF-8?q?=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=ED=92=88=EB=B2=88,=20?= =?UTF-8?q?=ED=92=88=EB=AA=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../view/salesMng/quotationRequestList.jsp | 24 +++++++++++++++++-- src/com/pms/mapper/salesMng.xml | 13 +++++++--- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/WebContent/WEB-INF/view/salesMng/quotationRequestList.jsp b/WebContent/WEB-INF/view/salesMng/quotationRequestList.jsp index f42f22a..3273969 100644 --- a/WebContent/WEB-INF/view/salesMng/quotationRequestList.jsp +++ b/WebContent/WEB-INF/view/salesMng/quotationRequestList.jsp @@ -88,8 +88,28 @@ var columns = [ {headerHozAlign:'center', hozAlign:'center', widthGrow:1.2, title:'프로젝트번호', field:'PROJECT_NUMBER'}, {headerHozAlign:'center', hozAlign:'center', widthGrow:0.7, title:'주문유형', field:'ORDER_TYPE_NAME'}, {headerHozAlign:'center', hozAlign:'center', widthGrow:0.7, title:'제품구분', field:'PRODUCT_NAME_TITLE'}, - {headerHozAlign:'center', hozAlign:'left', widthGrow:1.2, title:'품번', field:'PART_NO'}, - {headerHozAlign:'center', hozAlign:'left', widthGrow:1.5, title:'품명', field:'PART_NAME'}, + {headerHozAlign:'center', hozAlign:'left', widthGrow:1.2, title:'품번', field:'PART_NO', + formatter: function(cell, formatterParams, onRendered){ + var partNo = fnc_checkNull(cell.getValue()); + var detailCount = parseInt(fnc_checkNull(cell.getData().DETAIL_COUNT)) || 0; + if(partNo === '') return ''; + if(detailCount > 1) { + return partNo + ' 외 ' + (detailCount - 1) + '건'; + } + return partNo; + } + }, + {headerHozAlign:'center', hozAlign:'left', widthGrow:1.5, title:'품명', field:'PART_NAME', + formatter: function(cell, formatterParams, onRendered){ + var partName = fnc_checkNull(cell.getValue()); + var detailCount = parseInt(fnc_checkNull(cell.getData().DETAIL_COUNT)) || 0; + if(partName === '') return ''; + if(detailCount > 1) { + return partName + ' 외 ' + (detailCount - 1) + '건'; + } + return partName; + } + }, {headerHozAlign:'center', hozAlign:'left', widthGrow:1.2, title:'업체명', field:'VENDOR_NAME', formatter: function(cell, formatterParams, onRendered){ var value = fnc_checkNull(cell.getValue()); diff --git a/src/com/pms/mapper/salesMng.xml b/src/com/pms/mapper/salesMng.xml index 8cbe26c..8971137 100644 --- a/src/com/pms/mapper/salesMng.xml +++ b/src/com/pms/mapper/salesMng.xml @@ -4503,9 +4503,16 @@ ORDER BY V.PATH2 PM.PROJECT_NO AS PROJECT_NUMBER, -- 업체 정보 CM.CLIENT_NM AS VENDOR_NAME, - -- 품번/품명 (프로젝트 정보) - PM.PART_NO, - PM.PART_NAME, + -- 품번/품명 (견적요청서 상세 - 첫 번째 품목) + (SELECT QRD.PART_NO FROM QUOTATION_REQUEST_DETAIL QRD + WHERE QRD.QUOTATION_REQUEST_MASTER_OBJID = QRM.OBJID + ORDER BY QRD.OBJID LIMIT 1) AS PART_NO, + (SELECT QRD.PART_NAME FROM QUOTATION_REQUEST_DETAIL QRD + WHERE QRD.QUOTATION_REQUEST_MASTER_OBJID = QRM.OBJID + ORDER BY QRD.OBJID LIMIT 1) AS PART_NAME, + -- 견적요청서 상세 품목 개수 + (SELECT COUNT(*) FROM QUOTATION_REQUEST_DETAIL QRD + WHERE QRD.QUOTATION_REQUEST_MASTER_OBJID = QRM.OBJID) AS DETAIL_COUNT, -- 수신견적서 첨부파일 개수 (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = QRM.OBJID::VARCHAR AND DOC_TYPE = 'QUOTATION_RECEIVED' AND STATUS = 'Active') AS ATTACH_FILE_CNT FROM QUOTATION_REQUEST_MASTER QRM