From 75457247f72a2486014f0c69b53961d61393e5bb Mon Sep 17 00:00:00 2001 From: leeheejin Date: Thu, 20 Nov 2025 17:53:30 +0900 Subject: [PATCH] =?UTF-8?q?=ED=86=B5=ED=99=94=EA=B8=B0=ED=98=B8=20?= =?UTF-8?q?=EB=82=98=EC=98=A4=EA=B2=8C=20=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../view/contractMgmt/estimateList_new.jsp | 27 ++++++--- .../view/contractMgmt/orderMgmtList.jsp | 54 +++++++++++++++--- .../salesmgmt/salesMgmt/revenueMgmtList.jsp | 56 +++++++++++++++++-- .../salesmgmt/salesMgmt/salesMgmtList.jsp | 56 +++++++++++++++++-- 4 files changed, 167 insertions(+), 26 deletions(-) diff --git a/WebContent/WEB-INF/view/contractMgmt/estimateList_new.jsp b/WebContent/WEB-INF/view/contractMgmt/estimateList_new.jsp index 4f8a505..0db0211 100644 --- a/WebContent/WEB-INF/view/contractMgmt/estimateList_new.jsp +++ b/WebContent/WEB-INF/view/contractMgmt/estimateList_new.jsp @@ -293,15 +293,24 @@ var columns = [ // {headerHozAlign : 'center', hozAlign : 'left', width : '120', title : '반납사유', field : 'RETURN_REASON_SUMMARY' }, // {headerHozAlign : 'center', hozAlign : 'left', width : '150', title : '고객요청사항', field : 'CUSTOMER_REQUEST' }, - {headerHozAlign : 'center', hozAlign : 'right', width : '130', title : '공급가액', field : 'EST_TOTAL_AMOUNT', - formatter: function(cell, formatterParams, onRendered){ - var value = fnc_checkNull(cell.getValue()); - if(value === '' || value === '0') return ''; - // 통화 기호 제거 후 콤마 추가 - var numericValue = String(value).replace(/[^0-9.]/g, ''); - return addComma(numericValue); - } - }, + {headerHozAlign : 'center', hozAlign : 'right', width : '130', title : '공급가액', field : 'EST_TOTAL_AMOUNT', + formatter: function(cell, formatterParams, onRendered){ + var value = fnc_checkNull(cell.getValue()); + if(value === '' || value === '0') return ''; + var rowData = cell.getRow().getData(); + var currencyName = fnc_checkNull(rowData.CONTRACT_CURRENCY_NAME) || ''; + // 통화 이름을 기호로 변환 + var currencySymbol = ''; + if(currencyName.includes('원') || currencyName === 'KRW') currencySymbol = '₩'; + else if(currencyName.includes('달러') || currencyName === 'USD') currencySymbol = '$'; + else if(currencyName.includes('유로') || currencyName === 'EUR') currencySymbol = '€'; + else if(currencyName.includes('엔') || currencyName === 'JPY') currencySymbol = '¥'; + else if(currencyName.includes('위안') || currencyName === 'CNY') currencySymbol = '¥'; + // 통화 기호 제거 후 콤마 추가 + var numericValue = String(value).replace(/[^0-9.]/g, ''); + return currencySymbol + addComma(numericValue); + } + }, {headerHozAlign : 'center', hozAlign : 'right', width : '150', title : '원화환산공급가액', field : 'EST_TOTAL_AMOUNT_KRW', formatter: function(cell, formatterParams, onRendered){ var value = fnc_checkNull(cell.getValue()); diff --git a/WebContent/WEB-INF/view/contractMgmt/orderMgmtList.jsp b/WebContent/WEB-INF/view/contractMgmt/orderMgmtList.jsp index f724d99..8f62fa2 100644 --- a/WebContent/WEB-INF/view/contractMgmt/orderMgmtList.jsp +++ b/WebContent/WEB-INF/view/contractMgmt/orderMgmtList.jsp @@ -167,15 +167,51 @@ var columns = [ }, {headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '유/무상', field : 'PAID_TYPE' }, {headerHozAlign : 'center', hozAlign : 'left', width : '150', title : '수주상태', field : 'CONTRACT_RESULT_NAME' }, - {headerHozAlign : 'center', hozAlign : 'right', width : '120', title : '공급가액', field : 'ORDER_SUPPLY_PRICE_SUM', - formatter:"money", formatterParams:{thousand:",", symbolAfter:"", precision:false,}, - }, - {headerHozAlign : 'center', hozAlign : 'right', width : '100', title : '부가세', field : 'ORDER_VAT_SUM', - formatter:"money", formatterParams:{thousand:",", symbolAfter:"", precision:false,}, - }, - {headerHozAlign : 'center', hozAlign : 'right', width : '100', title : '총액', field : 'ORDER_TOTAL_AMOUNT_SUM', - formatter:"money", formatterParams:{thousand:",", symbolAfter:"", precision:false,}, - }, + {headerHozAlign : 'center', hozAlign : 'right', width : '120', title : '공급가액', field : 'ORDER_SUPPLY_PRICE_SUM', + formatter: function(cell) { + var value = cell.getValue(); + if(!value || value === '' || value === '0') return ''; + var rowData = cell.getRow().getData(); + var currencyName = rowData.CONTRACT_CURRENCY_NAME || ''; + var currencySymbol = ''; + if(currencyName.includes('원') || currencyName === 'KRW') currencySymbol = '₩'; + else if(currencyName.includes('달러') || currencyName === 'USD') currencySymbol = '$'; + else if(currencyName.includes('유로') || currencyName === 'EUR') currencySymbol = '€'; + else if(currencyName.includes('엔') || currencyName === 'JPY') currencySymbol = '¥'; + else if(currencyName.includes('위안') || currencyName === 'CNY') currencySymbol = '¥'; + return currencySymbol + Number(value).toLocaleString(); + } + }, + {headerHozAlign : 'center', hozAlign : 'right', width : '100', title : '부가세', field : 'ORDER_VAT_SUM', + formatter: function(cell) { + var value = cell.getValue(); + if(!value || value === '' || value === '0') return ''; + var rowData = cell.getRow().getData(); + var currencyName = rowData.CONTRACT_CURRENCY_NAME || ''; + var currencySymbol = ''; + if(currencyName.includes('원') || currencyName === 'KRW') currencySymbol = '₩'; + else if(currencyName.includes('달러') || currencyName === 'USD') currencySymbol = '$'; + else if(currencyName.includes('유로') || currencyName === 'EUR') currencySymbol = '€'; + else if(currencyName.includes('엔') || currencyName === 'JPY') currencySymbol = '¥'; + else if(currencyName.includes('위안') || currencyName === 'CNY') currencySymbol = '¥'; + return currencySymbol + Number(value).toLocaleString(); + } + }, + {headerHozAlign : 'center', hozAlign : 'right', width : '100', title : '총액', field : 'ORDER_TOTAL_AMOUNT_SUM', + formatter: function(cell) { + var value = cell.getValue(); + if(!value || value === '' || value === '0') return ''; + var rowData = cell.getRow().getData(); + var currencyName = rowData.CONTRACT_CURRENCY_NAME || ''; + var currencySymbol = ''; + if(currencyName.includes('원') || currencyName === 'KRW') currencySymbol = '₩'; + else if(currencyName.includes('달러') || currencyName === 'USD') currencySymbol = '$'; + else if(currencyName.includes('유로') || currencyName === 'EUR') currencySymbol = '€'; + else if(currencyName.includes('엔') || currencyName === 'JPY') currencySymbol = '¥'; + else if(currencyName.includes('위안') || currencyName === 'CNY') currencySymbol = '¥'; + return currencySymbol + Number(value).toLocaleString(); + } + }, {headerHozAlign : 'center', hozAlign : 'right', width : '120', title : '원화총액', field : 'ORDER_TOTAL_AMOUNT_KRW', formatter:"money", formatterParams:{thousand:",", symbolAfter:"", precision:false,}, }, diff --git a/WebContent/WEB-INF/view/salesmgmt/salesMgmt/revenueMgmtList.jsp b/WebContent/WEB-INF/view/salesmgmt/salesMgmt/revenueMgmtList.jsp index 044a3b4..de25156 100644 --- a/WebContent/WEB-INF/view/salesmgmt/salesMgmt/revenueMgmtList.jsp +++ b/WebContent/WEB-INF/view/salesmgmt/salesMgmt/revenueMgmtList.jsp @@ -208,16 +208,64 @@ var columns = [ formatter: "money", formatterParams: {thousand: ",", symbolAfter: "", precision: false} }, {headerHozAlign : 'center', hozAlign : 'right', width : '120', title : '단가', field : 'SALES_UNIT_PRICE', - formatter: "money", formatterParams: {thousand: ",", symbolAfter: "", precision: false} + formatter: function(cell) { + var value = cell.getValue(); + if(!value || value === '' || value === '0') return ''; + var rowData = cell.getRow().getData(); + var currencyName = rowData.SALES_CURRENCY_NAME || ''; + var currencySymbol = ''; + if(currencyName.includes('원') || currencyName === 'KRW') currencySymbol = '₩'; + else if(currencyName.includes('달러') || currencyName === 'USD') currencySymbol = '$'; + else if(currencyName.includes('유로') || currencyName === 'EUR') currencySymbol = '€'; + else if(currencyName.includes('엔') || currencyName === 'JPY') currencySymbol = '¥'; + else if(currencyName.includes('위안') || currencyName === 'CNY') currencySymbol = '¥'; + return currencySymbol + Number(value).toLocaleString(); + } }, {headerHozAlign : 'center', hozAlign : 'right', width : '120', title : '공급가액', field : 'SALES_SUPPLY_PRICE', - formatter: "money", formatterParams: {thousand: ",", symbolAfter: "", precision: false} + formatter: function(cell) { + var value = cell.getValue(); + if(!value || value === '' || value === '0') return ''; + var rowData = cell.getRow().getData(); + var currencyName = rowData.SALES_CURRENCY_NAME || ''; + var currencySymbol = ''; + if(currencyName.includes('원') || currencyName === 'KRW') currencySymbol = '₩'; + else if(currencyName.includes('달러') || currencyName === 'USD') currencySymbol = '$'; + else if(currencyName.includes('유로') || currencyName === 'EUR') currencySymbol = '€'; + else if(currencyName.includes('엔') || currencyName === 'JPY') currencySymbol = '¥'; + else if(currencyName.includes('위안') || currencyName === 'CNY') currencySymbol = '¥'; + return currencySymbol + Number(value).toLocaleString(); + } }, {headerHozAlign : 'center', hozAlign : 'right', width : '100', title : '부가세', field : 'SALES_VAT', - formatter: "money", formatterParams: {thousand: ",", symbolAfter: "", precision: false} + formatter: function(cell) { + var value = cell.getValue(); + if(!value || value === '' || value === '0') return ''; + var rowData = cell.getRow().getData(); + var currencyName = rowData.SALES_CURRENCY_NAME || ''; + var currencySymbol = ''; + if(currencyName.includes('원') || currencyName === 'KRW') currencySymbol = '₩'; + else if(currencyName.includes('달러') || currencyName === 'USD') currencySymbol = '$'; + else if(currencyName.includes('유로') || currencyName === 'EUR') currencySymbol = '€'; + else if(currencyName.includes('엔') || currencyName === 'JPY') currencySymbol = '¥'; + else if(currencyName.includes('위안') || currencyName === 'CNY') currencySymbol = '¥'; + return currencySymbol + Number(value).toLocaleString(); + } }, {headerHozAlign : 'center', hozAlign : 'right', width : '120', title : '총액', field : 'SALES_TOTAL_AMOUNT', - formatter: "money", formatterParams: {thousand: ",", symbolAfter: "", precision: false} + formatter: function(cell) { + var value = cell.getValue(); + if(!value || value === '' || value === '0') return ''; + var rowData = cell.getRow().getData(); + var currencyName = rowData.SALES_CURRENCY_NAME || ''; + var currencySymbol = ''; + if(currencyName.includes('원') || currencyName === 'KRW') currencySymbol = '₩'; + else if(currencyName.includes('달러') || currencyName === 'USD') currencySymbol = '$'; + else if(currencyName.includes('유로') || currencyName === 'EUR') currencySymbol = '€'; + else if(currencyName.includes('엔') || currencyName === 'JPY') currencySymbol = '¥'; + else if(currencyName.includes('위안') || currencyName === 'CNY') currencySymbol = '¥'; + return currencySymbol + Number(value).toLocaleString(); + } }, {headerHozAlign : 'center', hozAlign : 'right', width : '120', title : '원화총액', field : 'SALES_TOTAL_AMOUNT_KRW', formatter: "money", formatterParams: {thousand: ",", symbolAfter: "", precision: false} diff --git a/WebContent/WEB-INF/view/salesmgmt/salesMgmt/salesMgmtList.jsp b/WebContent/WEB-INF/view/salesmgmt/salesMgmt/salesMgmtList.jsp index d93ac74..48d6af7 100644 --- a/WebContent/WEB-INF/view/salesmgmt/salesMgmt/salesMgmtList.jsp +++ b/WebContent/WEB-INF/view/salesmgmt/salesMgmt/salesMgmtList.jsp @@ -305,16 +305,64 @@ var columns = [ formatter: "money", formatterParams: {thousand: ",", symbolAfter: "", precision: false} }, {headerHozAlign : 'center', hozAlign : 'right', width : '120', title : '판매단가', field : 'SALES_UNIT_PRICE', - formatter: "money", formatterParams: {thousand: ",", symbolAfter: "", precision: false} + formatter: function(cell) { + var value = cell.getValue(); + if(!value || value === '' || value === '0') return ''; + var rowData = cell.getRow().getData(); + var currencyName = rowData.SALES_CURRENCY_NAME || ''; + var currencySymbol = ''; + if(currencyName.includes('원') || currencyName === 'KRW') currencySymbol = '₩'; + else if(currencyName.includes('달러') || currencyName === 'USD') currencySymbol = '$'; + else if(currencyName.includes('유로') || currencyName === 'EUR') currencySymbol = '€'; + else if(currencyName.includes('엔') || currencyName === 'JPY') currencySymbol = '¥'; + else if(currencyName.includes('위안') || currencyName === 'CNY') currencySymbol = '¥'; + return currencySymbol + Number(value).toLocaleString(); + } }, {headerHozAlign : 'center', hozAlign : 'right', width : '120', title : '판매공급가액', field : 'SALES_SUPPLY_PRICE', - formatter: "money", formatterParams: {thousand: ",", symbolAfter: "", precision: false} + formatter: function(cell) { + var value = cell.getValue(); + if(!value || value === '' || value === '0') return ''; + var rowData = cell.getRow().getData(); + var currencyName = rowData.SALES_CURRENCY_NAME || ''; + var currencySymbol = ''; + if(currencyName.includes('원') || currencyName === 'KRW') currencySymbol = '₩'; + else if(currencyName.includes('달러') || currencyName === 'USD') currencySymbol = '$'; + else if(currencyName.includes('유로') || currencyName === 'EUR') currencySymbol = '€'; + else if(currencyName.includes('엔') || currencyName === 'JPY') currencySymbol = '¥'; + else if(currencyName.includes('위안') || currencyName === 'CNY') currencySymbol = '¥'; + return currencySymbol + Number(value).toLocaleString(); + } }, {headerHozAlign : 'center', hozAlign : 'right', width : '100', title : '부가세', field : 'SALES_VAT', - formatter: "money", formatterParams: {thousand: ",", symbolAfter: "", precision: false} + formatter: function(cell) { + var value = cell.getValue(); + if(!value || value === '' || value === '0') return ''; + var rowData = cell.getRow().getData(); + var currencyName = rowData.SALES_CURRENCY_NAME || ''; + var currencySymbol = ''; + if(currencyName.includes('원') || currencyName === 'KRW') currencySymbol = '₩'; + else if(currencyName.includes('달러') || currencyName === 'USD') currencySymbol = '$'; + else if(currencyName.includes('유로') || currencyName === 'EUR') currencySymbol = '€'; + else if(currencyName.includes('엔') || currencyName === 'JPY') currencySymbol = '¥'; + else if(currencyName.includes('위안') || currencyName === 'CNY') currencySymbol = '¥'; + return currencySymbol + Number(value).toLocaleString(); + } }, {headerHozAlign : 'center', hozAlign : 'right', width : '120', title : '판매총액', field : 'SALES_TOTAL_AMOUNT', - formatter: "money", formatterParams: {thousand: ",", symbolAfter: "", precision: false} + formatter: function(cell) { + var value = cell.getValue(); + if(!value || value === '' || value === '0') return ''; + var rowData = cell.getRow().getData(); + var currencyName = rowData.SALES_CURRENCY_NAME || ''; + var currencySymbol = ''; + if(currencyName.includes('원') || currencyName === 'KRW') currencySymbol = '₩'; + else if(currencyName.includes('달러') || currencyName === 'USD') currencySymbol = '$'; + else if(currencyName.includes('유로') || currencyName === 'EUR') currencySymbol = '€'; + else if(currencyName.includes('엔') || currencyName === 'JPY') currencySymbol = '¥'; + else if(currencyName.includes('위안') || currencyName === 'CNY') currencySymbol = '¥'; + return currencySymbol + Number(value).toLocaleString(); + } }, {headerHozAlign : 'center', hozAlign : 'right', width : '120', title : '판매원화총액', field : 'SALES_TOTAL_AMOUNT_KRW', formatter: "money", formatterParams: {thousand: ",", symbolAfter: "", precision: false}