diff --git a/WebContent/WEB-INF/view/purchaseOrder/purchaseOrderFormPopup_general.jsp b/WebContent/WEB-INF/view/purchaseOrder/purchaseOrderFormPopup_general.jsp
index 697799d..948c3a5 100644
--- a/WebContent/WEB-INF/view/purchaseOrder/purchaseOrderFormPopup_general.jsp
+++ b/WebContent/WEB-INF/view/purchaseOrder/purchaseOrderFormPopup_general.jsp
@@ -281,12 +281,12 @@ $(document).ready(function(){
$(this).jqGrid('setCell', ids[i], 'ROW_NUM', i+1);
}
- setTimeout(function(){ gridFn.footerSummary(); }, 100);
+ setTimeout(function(){ gridFn.calcAllRows(); }, 100);
}
});
gridFn.opennEdit();
- gridFn.footerSummary();
+ gridFn.calcAllRows();
<% if(isModify){ %>
// 수정 가능 상태
@@ -368,7 +368,7 @@ $(document).ready(function(){
$(".select2").select2();
gridFn.opennEdit();
- gridFn.footerSummary();
+ gridFn.calcAllRows();
});
// 결재라인 가져오기
@@ -511,6 +511,19 @@ var gridFn = {
this.footerSummary();
}
+ ,calcAllRows: function(){
+ var $g = $("#grid1");
+ var ids = grid.jqGrid('getDataIDs');
+ for(var i = 0; i < ids.length; i++){
+ var rowId = ids[i];
+ var qtyVal = $g.find("#"+rowId+"_ORDER_QTY").val();
+ var priceVal = $g.find("#"+rowId+"_PARTNER_PRICE").val();
+ var qty = Number(fnc_checkNullDefaultValue(qtyVal, grid.jqGrid('getCell', rowId, "ORDER_QTY")).toString().replace(/,/g,""));
+ var unitPrice = Number(fnc_checkNullDefaultValue(priceVal, grid.jqGrid('getCell', rowId, "PARTNER_PRICE")).toString().replace(/,/g,""));
+ grid.jqGrid('setCell', rowId, "SUPPLY_UNIT_PRICE", qty * unitPrice);
+ }
+ this.footerSummary();
+ }
,footerSummary: function(){
var totalSupplyPrice = 0;
diff --git a/WebContent/WEB-INF/view/purchaseOrder/purchaseOrderFormPopup_outsourcing.jsp b/WebContent/WEB-INF/view/purchaseOrder/purchaseOrderFormPopup_outsourcing.jsp
index 85fa4eb..0cb1254 100644
--- a/WebContent/WEB-INF/view/purchaseOrder/purchaseOrderFormPopup_outsourcing.jsp
+++ b/WebContent/WEB-INF/view/purchaseOrder/purchaseOrderFormPopup_outsourcing.jsp
@@ -280,12 +280,12 @@ $(document).ready(function(){
$(this).jqGrid('setCell', ids[i], 'ROW_NUM', i+2); // 2부터 시작 (PDF 양식 참고)
}
- setTimeout(function(){ gridFn.footerSummary(); }, 100);
+ setTimeout(function(){ gridFn.calcAllRows(); }, 100);
}
});
gridFn.opennEdit();
- gridFn.footerSummary();
+ gridFn.calcAllRows();
<% if(isModify){ %>
// 수정 가능 상태
@@ -474,6 +474,19 @@ var gridFn = {
this.footerSummary();
}
+ ,calcAllRows: function(){
+ var $g = $("#grid1");
+ var ids = grid.jqGrid('getDataIDs');
+ for(var i = 0; i < ids.length; i++){
+ var rowId = ids[i];
+ var qtyVal = $g.find("#"+rowId+"_ORDER_QTY").val();
+ var priceVal = $g.find("#"+rowId+"_PARTNER_PRICE").val();
+ var qty = Number(fnc_checkNullDefaultValue(qtyVal, grid.jqGrid('getCell', rowId, "ORDER_QTY")).toString().replace(/,/g,""));
+ var unitPrice = Number(fnc_checkNullDefaultValue(priceVal, grid.jqGrid('getCell', rowId, "PARTNER_PRICE")).toString().replace(/,/g,""));
+ grid.jqGrid('setCell', rowId, "SUPPLY_UNIT_PRICE", qty * unitPrice);
+ }
+ this.footerSummary();
+ }
,footerSummary: function(){
var totalSupplyPrice = 0;
diff --git a/WebContent/WEB-INF/view/salesMng/purchaseListFormPopUp.jsp b/WebContent/WEB-INF/view/salesMng/purchaseListFormPopUp.jsp
index 7cb14b8..9636055 100644
--- a/WebContent/WEB-INF/view/salesMng/purchaseListFormPopUp.jsp
+++ b/WebContent/WEB-INF/view/salesMng/purchaseListFormPopUp.jsp
@@ -271,11 +271,22 @@ function createSelect2Editor(options) {
$(select).select2('open');
});
- $(select).on('select2:select select2:clear', function(e) {
+ var isCleared = false;
+
+ $(select).on('select2:select', function(e) {
success($(select).val());
});
+ $(select).on('select2:clear', function(e) {
+ isCleared = true;
+ setTimeout(function() {
+ $(select).select2('close');
+ success('');
+ }, 0);
+ });
+
$(select).on('select2:close', function() {
+ if(isCleared) return;
setTimeout(function() {
success($(select).val());
}, 100);
@@ -672,19 +683,12 @@ function fn_initGrid() {
title: '가공업체',
field: 'PROCESSING_VENDOR',
editor: function(cell, onRendered, success, cancel, editorParams) {
- // Select2 에디터
return createSelect2Editor(processingVendorList)(cell, onRendered, success, cancel, editorParams);
},
formatter: function(cell) {
var value = cell.getValue();
+ if(!value) return '';
- // 저장된 값이 없으면 기본값 '0000008377'(RPS) 설정
- if(value === undefined || value === null || value === '') {
- value = '0000008377';
- cell.getRow().update({PROCESSING_VENDOR: value}, false);
- }
-
- // OBJID로 업체명 조회하여 표시
for(var i = 0; i < processingVendorList.length; i++) {
if(processingVendorList[i].id == value) {
return processingVendorList[i].text;
diff --git a/src/com/pms/mapper/purchaseOrder.xml b/src/com/pms/mapper/purchaseOrder.xml
index e1295fb..7e97835 100644
--- a/src/com/pms/mapper/purchaseOrder.xml
+++ b/src/com/pms/mapper/purchaseOrder.xml
@@ -880,12 +880,7 @@
SRP.OBJID,
SRP.PART_OBJID,
COALESCE(NULLIF(SRP.QTY::VARCHAR, ''), '0') AS QTY,
- -- 발주수량: PO_QTY가 있고 0보다 크면 사용, 아니면 QTY 사용
- CASE
- WHEN SRP.PO_QTY IS NOT NULL AND SRP.PO_QTY::NUMERIC > 0 THEN SRP.PO_QTY::VARCHAR
- WHEN SRP.QTY IS NOT NULL THEN SRP.QTY::VARCHAR
- ELSE '0'
- END AS ORDER_QTY,
+ COALESCE(NULLIF(SRP.QTY::VARCHAR, ''), '0') AS ORDER_QTY,
COALESCE(SRP.UNIT_PRICE, 0) AS PARTNER_PRICE,
COALESCE(SRP.TOTAL_PRICE, 0) AS TOTAL_PRICE,
SRP.VENDOR_PM AS PARTNER_OBJID,
diff --git a/src/com/pms/mapper/salesMng.xml b/src/com/pms/mapper/salesMng.xml
index 54bfa3e..ed05500 100644
--- a/src/com/pms/mapper/salesMng.xml
+++ b/src/com/pms/mapper/salesMng.xml
@@ -3172,7 +3172,7 @@ UPDATE SET
0 AS ORDER_QTY,
0 AS ITEM_QTY2,
0 AS PRODUCTION_QTY,
- COALESCE(SRP.PROCESSING_VENDOR, '') AS PROCESSING_VENDOR,
+ CASE WHEN SRP.PROCESSING_VENDOR IS NULL THEN '0000008377' ELSE SRP.PROCESSING_VENDOR END AS PROCESSING_VENDOR,
NULL AS PROCESSING_DEADLINE,
NULL AS GRINDING_DEADLINE,
-- 구매 관련 컬럼 (SALES_REQUEST_PART에서 조회)
@@ -3463,7 +3463,7 @@ SELECT
G.RAW_MATERIAL_SPEC,
G.RAW_MATERIAL,
G.RAW_MATERIAL_SIZE AS SIZE,
- G.PROCESSING_VENDOR,
+ CASE WHEN G.PROCESSING_VENDOR IS NULL THEN '0000008377' ELSE G.PROCESSING_VENDOR END AS PROCESSING_VENDOR,
G.PROCESSING_DEADLINE,
G.GRINDING_DEADLINE,
G.REQUIRED_QTY,
@@ -4184,6 +4184,7 @@ ORDER BY V.PATH2
SALES_REQUEST_MASTER_OBJID,
PART_OBJID,
QTY,
+ UNIT,
UNIT_PRICE,
TOTAL_PRICE,
VENDOR_PM,
@@ -4199,6 +4200,7 @@ ORDER BY V.PATH2
#{PROPOSAL_MASTER_OBJID},
PART_OBJID,
QTY,
+ UNIT,
UNIT_PRICE,
TOTAL_PRICE,
VENDOR AS VENDOR_PM,
@@ -4219,6 +4221,7 @@ ORDER BY V.PATH2
SALES_REQUEST_MASTER_OBJID,
PART_OBJID,
QTY,
+ UNIT,
UNIT_PRICE,
TOTAL_PRICE,
VENDOR_PM,
@@ -4234,6 +4237,7 @@ ORDER BY V.PATH2
#{PROPOSAL_MASTER_OBJID},
PART_OBJID,
PRODUCTION_QTY AS QTY,
+ UNIT,
PROCESSING_UNIT_PRICE AS UNIT_PRICE,
PROCESSING_TOTAL_PRICE AS TOTAL_PRICE,
PROCESSING_VENDOR AS VENDOR_PM,
@@ -4254,6 +4258,7 @@ ORDER BY V.PATH2
SALES_REQUEST_MASTER_OBJID,
PART_OBJID,
QTY,
+ UNIT,
UNIT_PRICE,
TOTAL_PRICE,
VENDOR_PM,
@@ -4269,6 +4274,7 @@ ORDER BY V.PATH2
#{PROPOSAL_MASTER_OBJID},
PART_OBJID,
QTY,
+ UNIT,
UNIT_PRICE,
TOTAL_PRICE,
VENDOR_PM,
@@ -4289,6 +4295,7 @@ ORDER BY V.PATH2
SALES_REQUEST_MASTER_OBJID,
PART_OBJID,
QTY,
+ UNIT,
UNIT_PRICE,
TOTAL_PRICE,
VENDOR_PM,
@@ -4304,6 +4311,7 @@ ORDER BY V.PATH2
#{PROPOSAL_MASTER_OBJID},
PART_OBJID,
PRODUCTION_QTY AS QTY,
+ UNIT,
PROCESSING_UNIT_PRICE AS UNIT_PRICE,
PROCESSING_TOTAL_PRICE AS TOTAL_PRICE,
PROCESSING_VENDOR AS VENDOR_PM,
@@ -4803,7 +4811,7 @@ ORDER BY V.PATH2
-