diff --git a/WebContent/WEB-INF/classes/com/pms/mapper/purchaseOrder.xml b/WebContent/WEB-INF/classes/com/pms/mapper/purchaseOrder.xml
index 76674cd..8e38345 100644
--- a/WebContent/WEB-INF/classes/com/pms/mapper/purchaseOrder.xml
+++ b/WebContent/WEB-INF/classes/com/pms/mapper/purchaseOrder.xml
@@ -6625,10 +6625,12 @@ FROM(
,COALESCE(AP.tax_type, '') AS TAX_TYPE
+ ,COALESCE((SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = AP.tax_type), '') AS TAX_TYPE_NAME
,COALESCE(AP.tax_invoice_date, '') AS TAX_INVOICE_DATE
,COALESCE(AP.export_decl_no, '') AS EXPORT_DECL_NO
,COALESCE(AP.loading_date, '') AS LOADING_DATE
,COALESCE(AP.foreign_type, '') AS FOREIGN_TYPE
+ ,COALESCE((SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = AP.foreign_type), '') AS FOREIGN_TYPE_NAME
,COALESCE(AP.duty, 0) AS DUTY
,COALESCE(AP.exchange_rate, 0) AS EXCHANGE_RATE
,COALESCE(AP.import_vat, 0) AS IMPORT_VAT
diff --git a/WebContent/WEB-INF/view/contractMgmt/estimateAndOrderRegistFormPopup.jsp b/WebContent/WEB-INF/view/contractMgmt/estimateAndOrderRegistFormPopup.jsp
index 674a789..61d3cbf 100644
--- a/WebContent/WEB-INF/view/contractMgmt/estimateAndOrderRegistFormPopup.jsp
+++ b/WebContent/WEB-INF/view/contractMgmt/estimateAndOrderRegistFormPopup.jsp
@@ -218,12 +218,6 @@
$row.find(".item-order-quantity").focus();
return false;
}
-
- if(orderUnitPrice == "" || orderUnitPrice == "0") {
- alert((i+1) + "번째 품목의 수주단가를 입력해주세요.");
- $row.find(".item-order-unit-price").focus();
- return false;
- }
}
return true;
@@ -344,7 +338,7 @@
// 수주단가
html += '
';
- html += '';
+ html += '';
html += ' | ';
// 수주공급가액 (자동계산 + 수정가능)
@@ -554,7 +548,7 @@
}
html += '';
html += '';
- html += '';
+ html += '';
html += ' | ';
html += '';
html += '';
@@ -1482,7 +1476,7 @@
| 고객요청사항 |
반납사유 |
수주수량 * |
- 수주단가 * |
+ 수주단가 |
수주공급가액 |
수주부가세 |
수주총액 |
diff --git a/WebContent/WEB-INF/view/contractMgmt/estimateList_new.jsp b/WebContent/WEB-INF/view/contractMgmt/estimateList_new.jsp
index 2c55ab8..a7a0369 100644
--- a/WebContent/WEB-INF/view/contractMgmt/estimateList_new.jsp
+++ b/WebContent/WEB-INF/view/contractMgmt/estimateList_new.jsp
@@ -471,7 +471,8 @@ var columns = [
},
// 17. 품번
{headerHozAlign : 'center', hozAlign : 'center', minWidth: 80, widthGrow: 1, title : '품번', field : 'PART_NO' },
-
+ // 18. 작성자
+ {headerHozAlign : 'center', hozAlign : 'center', minWidth: 70, widthGrow: 0.8, title : '작성자', field : 'WRITER_NAME' },
/* 아래는 주석처리된 컬럼들 - 필요시 활성화 */
/*
// 제품구분
@@ -486,7 +487,6 @@ var columns = [
// {headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '설비대수', field : 'FACILITY_QTY' },
// {headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '설비타입', field : 'FACILITY_TYPE' },
// {headerHozAlign : 'center', hozAlign : 'center', width : '90', title : '설비길이', field : 'FACILITY_DEPTH' },
- // {headerHozAlign : 'center', hozAlign : 'center', width : '70', title : '담당자', field : 'WRITER_NAME' },
// {headerHozAlign : 'center', hozAlign : 'center', width : '90', title : '등록일', field : 'REG_DATE' },
// {headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '첨부파일', field : 'CU01_CNT',
// formatter:fnc_subInfoValueFormatter,
diff --git a/WebContent/WEB-INF/view/contractMgmt/estimateTemplate1.jsp b/WebContent/WEB-INF/view/contractMgmt/estimateTemplate1.jsp
index afaf3e8..b5474d7 100644
--- a/WebContent/WEB-INF/view/contractMgmt/estimateTemplate1.jsp
+++ b/WebContent/WEB-INF/view/contractMgmt/estimateTemplate1.jsp
@@ -1387,9 +1387,7 @@ function fn_save() {
| 수신인 |
-
+
|
diff --git a/WebContent/WEB-INF/view/contractMgmt/orderMgmtList.jsp b/WebContent/WEB-INF/view/contractMgmt/orderMgmtList.jsp
index 6496295..5ab2aa4 100644
--- a/WebContent/WEB-INF/view/contractMgmt/orderMgmtList.jsp
+++ b/WebContent/WEB-INF/view/contractMgmt/orderMgmtList.jsp
@@ -362,6 +362,9 @@ var columns = [
// 21. 품번
{headerHozAlign : 'center', hozAlign : 'center', minWidth : 70, widthGrow: 0.8, title : '품번', field : 'PART_NO' },
+ // 22. 작성자
+ {headerHozAlign : 'center', hozAlign : 'center', minWidth : 100, widthGrow: 1.2, title : '작성자', field : 'WRITER_NAME' },
+
/* 주석처리된 컬럼 - 필요시 활성화 */
/*
{headerHozAlign : 'center', hozAlign : 'center', minWidth : 55, widthGrow: 0.6, title : '제품구분', field : 'PRODUCT_NAME' },
diff --git a/WebContent/WEB-INF/view/contractMgmt/orderRegistFormPopup.jsp b/WebContent/WEB-INF/view/contractMgmt/orderRegistFormPopup.jsp
index 3d8a802..79535ce 100644
--- a/WebContent/WEB-INF/view/contractMgmt/orderRegistFormPopup.jsp
+++ b/WebContent/WEB-INF/view/contractMgmt/orderRegistFormPopup.jsp
@@ -265,7 +265,7 @@
html += ' | ';
}
// ORDER_UNIT_PRICE 수정 가능
- html += ' | ';
+ html += ' | ';
// ORDER_SUPPLY_PRICE 자동 계산
html += ' | ';
// ORDER_VAT 수정 가능
@@ -518,7 +518,7 @@
품명 |
S/N |
수주수량 * |
- 수주단가 * |
+ 수주단가 |
수주공급가액 |
수주부가세 |
수주총액 |
diff --git a/WebContent/WEB-INF/view/purchaseOrder/deliveryMngAcceptanceList.jsp b/WebContent/WEB-INF/view/purchaseOrder/deliveryMngAcceptanceList.jsp
index 5521539..ebcc627 100644
--- a/WebContent/WEB-INF/view/purchaseOrder/deliveryMngAcceptanceList.jsp
+++ b/WebContent/WEB-INF/view/purchaseOrder/deliveryMngAcceptanceList.jsp
@@ -133,37 +133,37 @@ var columns = [
else if(cn.includes('유로') || cn === 'EUR') s = '€';
else if(cn.includes('엔') || cn === 'JPY') s = '¥';
else if(cn.includes('위안') || cn === 'CNY') s = '¥';
- return s + Number(value).toLocaleString();
- }
- },
- {headerHozAlign : 'center', hozAlign : 'right', minWidth : 90, widthGrow : 1, title : '입고금액', field : 'TOTAL_DELIVERY_PRICE',
- formatter: function(cell) {
- var value = cell.getValue();
- if(!value || value === '' || value === '0') return '';
- var cn = cell.getRow().getData().CURRENCY_NAME || '';
- var s = '';
- if(cn.includes('원') || cn === 'KRW') s = '₩';
- else if(cn.includes('달러') || cn === 'USD') s = '$';
- else if(cn.includes('유로') || cn === 'EUR') s = '€';
- else if(cn.includes('엔') || cn === 'JPY') s = '¥';
- else if(cn.includes('위안') || cn === 'CNY') s = '¥';
- return s + Number(value).toLocaleString();
- }
- },
- {headerHozAlign : 'center', hozAlign : 'right', minWidth : 90, widthGrow : 1, title : '미입고금액', field : 'TOTAL_NOT_DELIVERY_PRICE',
- formatter: function(cell) {
- var value = cell.getValue();
- if(!value || value === '' || value === '0') return '';
- var cn = cell.getRow().getData().CURRENCY_NAME || '';
- var s = '';
- if(cn.includes('원') || cn === 'KRW') s = '₩';
- else if(cn.includes('달러') || cn === 'USD') s = '$';
- else if(cn.includes('유로') || cn === 'EUR') s = '€';
- else if(cn.includes('엔') || cn === 'JPY') s = '¥';
- else if(cn.includes('위안') || cn === 'CNY') s = '¥';
- return s + Number(value).toLocaleString();
- }
- },
+ return s + Number(value).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
+ }
+ },
+ {headerHozAlign : 'center', hozAlign : 'right', minWidth : 90, widthGrow : 1, title : '입고금액', field : 'TOTAL_DELIVERY_PRICE',
+ formatter: function(cell) {
+ var value = cell.getValue();
+ if(!value || value === '' || value === '0') return '';
+ var cn = cell.getRow().getData().CURRENCY_NAME || '';
+ var s = '';
+ if(cn.includes('원') || cn === 'KRW') s = '₩';
+ else if(cn.includes('달러') || cn === 'USD') s = '$';
+ else if(cn.includes('유로') || cn === 'EUR') s = '€';
+ else if(cn.includes('엔') || cn === 'JPY') s = '¥';
+ else if(cn.includes('위안') || cn === 'CNY') s = '¥';
+ return s + Number(value).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
+ }
+ },
+ {headerHozAlign : 'center', hozAlign : 'right', minWidth : 90, widthGrow : 1, title : '미입고금액', field : 'TOTAL_NOT_DELIVERY_PRICE',
+ formatter: function(cell) {
+ var value = cell.getValue();
+ if(!value || value === '' || value === '0') return '';
+ var cn = cell.getRow().getData().CURRENCY_NAME || '';
+ var s = '';
+ if(cn.includes('원') || cn === 'KRW') s = '₩';
+ else if(cn.includes('달러') || cn === 'USD') s = '$';
+ else if(cn.includes('유로') || cn === 'EUR') s = '€';
+ else if(cn.includes('엔') || cn === 'JPY') s = '¥';
+ else if(cn.includes('위안') || cn === 'CNY') s = '¥';
+ return s + Number(value).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
+ }
+ },
{headerHozAlign : 'center', hozAlign : 'center', minWidth : 100, widthGrow : 1, title : '업체성적서', field : 'INSPECTION_FILE_CNT',
formatter:fnc_subInfoValueFormatter,
cellClick:function(e, cell){
@@ -269,9 +269,9 @@ function fn_calculateTotalAmount(){
}
// 합계 표시
- $("#totalOrderAmount").text(Number(Math.round(totalOrderAmount)).toLocaleString());
- $("#deliveredAmount").text(Number(Math.round(totalDeliveredAmount)).toLocaleString());
- $("#notDeliveredAmount").text(Number(Math.round(totalNotDeliveredAmount)).toLocaleString());
+ $("#totalOrderAmount").text(Number(totalOrderAmount).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}));
+ $("#deliveredAmount").text(Number(totalDeliveredAmount).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}));
+ $("#notDeliveredAmount").text(Number(totalNotDeliveredAmount).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}));
}
//수입검사등록
diff --git a/WebContent/WEB-INF/view/purchaseOrder/purchaseCloseList.jsp b/WebContent/WEB-INF/view/purchaseOrder/purchaseCloseList.jsp
index 9225a37..2b661b1 100644
--- a/WebContent/WEB-INF/view/purchaseOrder/purchaseCloseList.jsp
+++ b/WebContent/WEB-INF/view/purchaseOrder/purchaseCloseList.jsp
@@ -172,27 +172,39 @@ $(document).ready(function(){
changeMonth: true,
changeYear: true
});
- // 기존 데이터 세팅
- if(taxType) $('#swal_taxType').val(taxType);
- if(taxInvoiceDate) $('#swal_taxInvoiceDate').val(taxInvoiceDate);
- if(exportDeclNo) $('#swal_exportDeclNo').val(exportDeclNo);
- if(loadingDate) $('#swal_loadingDate').val(loadingDate);
- if(foreignType) $('#swal_foreignType').val(foreignType);
- if(duty) $('#swal_duty').val(duty);
- if(importVat) $('#swal_importVat').val(importVat);
- if(exchangeRate) $('#swal_exchangeRate').val(exchangeRate);
+ // 기존 데이터 세팅
+ if(taxType) $('#swal_taxType').val(taxType);
+ if(taxInvoiceDate) $('#swal_taxInvoiceDate').val(taxInvoiceDate);
+ if(exportDeclNo) $('#swal_exportDeclNo').val(exportDeclNo);
+ if(loadingDate) $('#swal_loadingDate').val(loadingDate);
+ if(foreignType) $('#swal_foreignType').val(foreignType);
+ if(duty) $('#swal_duty').val(formatMoney(duty));
+ if(importVat) $('#swal_importVat').val(formatMoney(importVat));
+ if(exchangeRate) $('#swal_exchangeRate').val(formatMoney(exchangeRate));
+
+ // 금액 입력 필드 포맷 (keyup: 천단위 콤마, blur: 소수점 2자리)
+ $('#swal_exchangeRate, #swal_duty, #swal_importVat').on('keyup', function(){
+ var val = this.value.replace(/[^0-9.]/g, '');
+ var parts = val.split('.');
+ if(parts.length > 2) val = parts[0] + '.' + parts.slice(1).join('');
+ if(parts[0]) parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
+ this.value = parts.join('.');
+ }).on('blur', function(){
+ var v = this.value.replace(/,/g, '');
+ if(v && !isNaN(v)) this.value = formatMoney(v);
+ });
},
preConfirm: function() {
- return {
- taxType: $('#swal_taxType').val(),
- taxInvoiceDate: $('#swal_taxInvoiceDate').val(),
- exportDeclNo: $('#swal_exportDeclNo').val(),
- loadingDate: $('#swal_loadingDate').val(),
- foreignType: $('#swal_foreignType').val(),
- duty: $('#swal_duty').val(),
- importVat: $('#swal_importVat').val(),
- exchangeRate: $('#swal_exchangeRate').val()
- };
+ return {
+ taxType: $('#swal_taxType').val(),
+ taxInvoiceDate: $('#swal_taxInvoiceDate').val(),
+ exportDeclNo: $('#swal_exportDeclNo').val(),
+ loadingDate: $('#swal_loadingDate').val(),
+ foreignType: $('#swal_foreignType').val(),
+ duty: removeComma($('#swal_duty').val()),
+ importVat: removeComma($('#swal_importVat').val()),
+ exchangeRate: removeComma($('#swal_exchangeRate').val())
+ };
}
}).then(function(result) {
if (result.isConfirmed) {
@@ -307,7 +319,7 @@ var columns = [
else if(cn.includes('유로') || cn === 'EUR') s = '€';
else if(cn.includes('엔') || cn === 'JPY') s = '¥';
else if(cn.includes('위안') || cn === 'CNY') s = '¥';
- return s + Number(value).toLocaleString();
+ return s + Number(value).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
}
},
// {headerHozAlign:'center', hozAlign:'right', minWidth:90, widthGrow:1, title:'미입고금액', field:'TOTAL_NOT_DELIVERY_PRICE',
@@ -320,7 +332,21 @@ var columns = [
{headerHozAlign:'center', hozAlign:'right', minWidth:100, widthGrow:0.9, title:'확정입고수량', field:'CONFIRMED_QTY',
formatter:"money", formatterParams:{thousand:",", symbolAfter:"p", precision:false}
},
- {headerHozAlign:'center', hozAlign:'left', minWidth:100, widthGrow:1.2, title:'계정과목', field:'SUB_LOCATION_NAME'},
+ {headerHozAlign:'center', hozAlign:'center', minWidth:100, widthGrow:1.2, title:'계정과목', field:'SUB_LOCATION_NAME'},
+ {headerHozAlign:'center', hozAlign:'center', minWidth:100, widthGrow:1.2, title:'국내/해외', field:'FOREIGN_TYPE_NAME'},
+ {headerHozAlign:'center', hozAlign:'right', minWidth:100, widthGrow:1.2, title:'환율', field:'EXCHANGE_RATE',
+ formatter: function(cell){ var v = cell.getValue(); if(!v || v === '') return ''; return formatMoney(v); }
+ },
+ {headerHozAlign:'center', hozAlign:'center', minWidth:100, widthGrow:1.2, title:'과세구분', field:'TAX_TYPE_NAME'},
+ {headerHozAlign:'center', hozAlign:'center', minWidth:100, widthGrow:1.2, title:'세금계산서발행일', field:'TAX_INVOICE_DATE'},
+ {headerHozAlign:'center', hozAlign:'center', minWidth:100, widthGrow:1.2, title:'수출신고필증신고번호', field:'EXPORT_DECL_NO'},
+ {headerHozAlign:'center', hozAlign:'center', minWidth:100, widthGrow:1.2, title:'선적일자', field:'LOADING_DATE'},
+ {headerHozAlign:'center', hozAlign:'right', minWidth:100, widthGrow:1.2, title:'관세', field:'DUTY',
+ formatter: function(cell){ var v = cell.getValue(); if(!v || v === '') return ''; return formatMoney(v); }
+ },
+ {headerHozAlign:'center', hozAlign:'right', minWidth:100, widthGrow:1.2, title:'수입부가세', field:'IMPORT_VAT',
+ formatter: function(cell){ var v = cell.getValue(); if(!v || v === '') return ''; return formatMoney(v); }
+ },
{headerHozAlign:'center', hozAlign:'center', minWidth:85, widthGrow:0.6, title:'매입마감', field:'PURCHASE_CLOSE_DATE'}
];
diff --git a/src/com/pms/mapper/purchaseOrder.xml b/src/com/pms/mapper/purchaseOrder.xml
index 76674cd..8e38345 100644
--- a/src/com/pms/mapper/purchaseOrder.xml
+++ b/src/com/pms/mapper/purchaseOrder.xml
@@ -6625,10 +6625,12 @@ FROM(
,COALESCE(AP.tax_type, '') AS TAX_TYPE
+ ,COALESCE((SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = AP.tax_type), '') AS TAX_TYPE_NAME
,COALESCE(AP.tax_invoice_date, '') AS TAX_INVOICE_DATE
,COALESCE(AP.export_decl_no, '') AS EXPORT_DECL_NO
,COALESCE(AP.loading_date, '') AS LOADING_DATE
,COALESCE(AP.foreign_type, '') AS FOREIGN_TYPE
+ ,COALESCE((SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = AP.foreign_type), '') AS FOREIGN_TYPE_NAME
,COALESCE(AP.duty, 0) AS DUTY
,COALESCE(AP.exchange_rate, 0) AS EXCHANGE_RATE
,COALESCE(AP.import_vat, 0) AS IMPORT_VAT