From cb44c08c6dd2e19480a44900ed4f725f998a935e Mon Sep 17 00:00:00 2001 From: leeheejin Date: Thu, 20 Nov 2025 17:22:45 +0900 Subject: [PATCH] =?UTF-8?q?=EB=94=94=EC=9E=90=EC=9D=B8=EC=88=98=EC=A0=95,?= =?UTF-8?q?=20=EC=BB=AC=EB=9F=BC=20=EC=88=98=EC=A0=95,=20=EC=9D=B4?= =?UTF-8?q?=EB=A6=84=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salesmgmt/salesMgmt/revenueMgmtList.jsp | 154 ++++++++++++------ .../salesmgmt/salesMgmt/salesMgmtList.jsp | 12 +- 2 files changed, 105 insertions(+), 61 deletions(-) diff --git a/WebContent/WEB-INF/view/salesmgmt/salesMgmt/revenueMgmtList.jsp b/WebContent/WEB-INF/view/salesmgmt/salesMgmt/revenueMgmtList.jsp index d21a971..044a3b4 100644 --- a/WebContent/WEB-INF/view/salesmgmt/salesMgmt/revenueMgmtList.jsp +++ b/WebContent/WEB-INF/view/salesmgmt/salesMgmt/revenueMgmtList.jsp @@ -222,7 +222,23 @@ var columns = [ {headerHozAlign : 'center', hozAlign : 'right', width : '120', title : '원화총액', field : 'SALES_TOTAL_AMOUNT_KRW', formatter: "money", formatterParams: {thousand: ",", symbolAfter: "", precision: false} }, - {headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '출고일', field : 'SHIPPING_DATE'}, + {headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '출하일', field : 'SHIPPING_DATE_WITH_COUNT', + formatter: function(cell) { + var value = cell.getValue(); + // SHIPPING_DATE_WITH_COUNT가 비어있으면 SHIPPING_DATE 사용 + if(!value || value.trim() === '') { + var data = cell.getRow().getData(); + return data.SHIPPING_DATE || ''; + } + return value; + }, + cellClick: function(e, cell) { + var projectNo = cell.getRow().getData().PROJECT_NO; + if(projectNo) { + fn_openShippingDetail(projectNo); + } + } + }, {headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '국내/해외', field : 'NATION'}, {headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '환종', field : 'SALES_CURRENCY_NAME'}, {headerHozAlign : 'center', hozAlign : 'right', width : '100', title : '환율', field : 'SALES_EXCHANGE_RATE', @@ -261,37 +277,42 @@ function fn_search(){ if(_tabulGrid){ _tabulGrid.setData(response.RESULTLIST || []); } else { - // 그리드 초기화 - _tabulGrid = new Tabulator("#mainGrid", { - layout: _tabul_layout_fitColumns, - height: "100%", // 부모 컨테이너 높이에 맞춤 - columns: columns, - data: response.RESULTLIST || [], - selectable: "highlight" // 다중 선택 가능하도록 설정 + // 그리드 초기화 + _tabulGrid = new Tabulator("#mainGrid", { + layout: _tabul_layout_fitColumns, + height: "100%", // 부모 컨테이너 높이에 맞춤 + columns: columns, + data: response.RESULTLIST || [], + selectable: "highlight" // 다중 선택 가능하도록 설정 + }); + + // 행 클릭으로 다중 선택 + _tabulGrid.on("rowClick", function(e, row){ + // 체크박스나 체크박스 셀을 클릭한 경우는 제외 + if($(e.target).hasClass('tabulator-row-handle') || + $(e.target).closest('.tabulator-row-handle').length > 0 || + e.target.type === 'checkbox') { + return; + } + + // 이미 선택된 행인지 확인 + if(row.isSelected()){ + // 선택된 행 클릭 시 해제 + row.deselect(); + } else { + // 선택되지 않은 행 클릭 시 선택 (기존 선택 유지) + row.select(); + } }); - - // 행 클릭으로 다중 선택 - _tabulGrid.on("rowClick", function(e, row){ - // 체크박스나 체크박스 셀을 클릭한 경우는 제외 - if($(e.target).hasClass('tabulator-row-handle') || - $(e.target).closest('.tabulator-row-handle').length > 0 || - e.target.type === 'checkbox') { - return; - } - - // 이미 선택된 행인지 확인 - if(row.isSelected()){ - // 선택된 행 클릭 시 해제 - row.deselect(); - } else { - // 선택되지 않은 행 클릭 시 선택 (기존 선택 유지) - row.select(); - } - }); - - // 그리드 초기화 후 Excel 버튼 이벤트 등록 - fn_bindExcelButton(); - } + + // 그리드 렌더링 완료 후 원화총액 합계 계산 + _tabulGrid.on("renderComplete", function(){ + fn_calculateTotalKRW(); + }); + + // 그리드 초기화 후 Excel 버튼 이벤트 등록 + fn_bindExcelButton(); + } // Total 합계 업데이트 if(response && response.TOTALS){ @@ -300,14 +321,15 @@ function fn_search(){ var vat = totals.total_vat || totals.TOTAL_VAT || 0; var amount = totals.total_amount || totals.TOTAL_AMOUNT || 0; - $("#totalSupplyPrice").text(Number(supplyPrice).toLocaleString()); - $("#totalVat").text(Number(vat).toLocaleString()); - $("#totalAmount").text(Number(amount).toLocaleString()); - } else { - $("#totalSupplyPrice").text("0"); - $("#totalVat").text("0"); - $("#totalAmount").text("0"); - } + $("#totalSupplyPrice").text(Number(supplyPrice).toLocaleString()); + $("#totalVat").text(Number(vat).toLocaleString()); + $("#totalAmount").text(Number(amount).toLocaleString()); + } else { + $("#totalSupplyPrice").text("0"); + $("#totalVat").text("0"); + $("#totalAmount").text("0"); + $("#totalAmountKRW").text("0"); + } // 페이징 HTML 업데이트 if(response.PAGE_HTML){ @@ -417,6 +439,38 @@ function fn_FileRegist(objId, docType, docTypeName){ fn_centerPopup(popup_width, popup_height, url); } + +// 출하일 상세 팝업 +function fn_openShippingDetail(projectNo) { + console.log("=== fn_openShippingDetail 호출 ==="); + console.log("전달받은 projectNo:", projectNo); + console.log("projectNo 타입:", typeof projectNo); + + if(!projectNo) { + alert("프로젝트 번호가 없습니다."); + return; + } + + var url = "/salesMgmt/shippingDetailPopup.do?projectNo=" + encodeURIComponent(projectNo); + console.log("팝업 URL:", url); + + window.open(url, "shippingDetailPopup", "width=800,height=600,scrollbars=yes,resizable=yes"); +} + +// 원화총액 합계 계산 +function fn_calculateTotalKRW() { + if(!_tabulGrid) return; + + var data = _tabulGrid.getData(); + var totalKRW = 0; + + data.forEach(function(row) { + var amountKRW = parseFloat(row.SALES_TOTAL_AMOUNT_KRW) || 0; + totalKRW += amountKRW; + }); + + $("#totalAmountKRW").text(Number(totalKRW).toLocaleString()); +} @@ -499,8 +553,8 @@ function fn_FileRegist(objId, docType, docTypeName){ - - ~ + + ~ @@ -551,18 +605,12 @@ function fn_FileRegist(objId, docType, docTypeName){ - -
- - Total 공급가액: 0 원 - - - Total 부가세: 0 원 - - - Total 총액: 0 원 - -
+ +
+ + Total 총액: 0 원 + +
<%@include file= "/WEB-INF/view/common/common_gridArea.jsp" %> diff --git a/WebContent/WEB-INF/view/salesmgmt/salesMgmt/salesMgmtList.jsp b/WebContent/WEB-INF/view/salesmgmt/salesMgmt/salesMgmtList.jsp index ab44c2f..d93ac74 100644 --- a/WebContent/WEB-INF/view/salesmgmt/salesMgmt/salesMgmtList.jsp +++ b/WebContent/WEB-INF/view/salesmgmt/salesMgmt/salesMgmtList.jsp @@ -637,8 +637,8 @@ function fn_bulkRegister(){ ~ - - ~ + + ~ <%-- @@ -675,13 +675,9 @@ function fn_bulkRegister(){ -
+
- 발주 금액 : 0 원 - - (출고 : 0 원, - 미출고 : 0 원) - + 발주 금액: 0