구매리스트 소재, 가공 발주일, 입고일 표시 컬럼 추가, 엑셀다운기능 추가
This commit is contained in:
@@ -75,6 +75,7 @@ body, html {
|
||||
<div class="header">
|
||||
<h3 style="margin: 0 0 10px 0; float: left;">구매리스트</h3>
|
||||
<div style="float: right;">
|
||||
<input type="button" class="plm_btns excelIcon excelBtn" value="Excel Download" title="Excel Download">
|
||||
<input type="button" value="견적요청서 생성" class="plm_btns" onclick="fn_createQuotationRequest();" style="margin-right: 5px; background-color: #4CAF50; border-color: #4CAF50;">
|
||||
<input type="button" value="저장" class="plm_btns" onclick="fn_save();" style="margin-right: 5px;">
|
||||
<input type="button" value="닫기" class="plm_btns" onclick="window.close();" style="margin-right: 5px;">
|
||||
@@ -565,13 +566,11 @@ function fn_initGrid() {
|
||||
title: '<span style="background-color: #FFFF00; padding: 2px 5px;">공급업체</span>',
|
||||
field: 'VENDOR_PM',
|
||||
editor: function(cell, onRendered, success, cancel, editorParams) {
|
||||
// Select2 에디터 (가공업체와 동일한 목록 사용)
|
||||
return createSelect2Editor(processingVendorList)(cell, onRendered, success, cancel, editorParams);
|
||||
},
|
||||
formatter: function(cell) {
|
||||
var value = cell.getValue();
|
||||
var value = (typeof cell.getValue === 'function') ? cell.getValue() : (cell.value || '');
|
||||
if(!value) return '';
|
||||
// processingVendorList에서 해당 값의 이름 찾기
|
||||
for(var i = 0; i < processingVendorList.length; i++) {
|
||||
if(processingVendorList[i].id == value) {
|
||||
return processingVendorList[i].text;
|
||||
@@ -686,9 +685,8 @@ function fn_initGrid() {
|
||||
return createSelect2Editor(processingVendorList)(cell, onRendered, success, cancel, editorParams);
|
||||
},
|
||||
formatter: function(cell) {
|
||||
var value = cell.getValue();
|
||||
var value = (typeof cell.getValue === 'function') ? cell.getValue() : (cell.value || '');
|
||||
if(!value) return '';
|
||||
|
||||
for(var i = 0; i < processingVendorList.length; i++) {
|
||||
if(processingVendorList[i].id == value) {
|
||||
return processingVendorList[i].text;
|
||||
@@ -783,6 +781,32 @@ function fn_initGrid() {
|
||||
return value;
|
||||
}
|
||||
},
|
||||
// 35. 소재발주일
|
||||
{
|
||||
headerHozAlign: 'center',
|
||||
hozAlign: 'center',
|
||||
width: 100,
|
||||
title: '소재발주일',
|
||||
field: 'MATERIAL_PO_DATE',
|
||||
formatter: function(cell) {
|
||||
var value = (typeof cell.getValue === 'function') ? cell.getValue() : (cell.value || '');
|
||||
if(!value) return '';
|
||||
return value.length >= 10 ? value.substring(0, 10) : value;
|
||||
}
|
||||
},
|
||||
// 36. 소재입고일
|
||||
{
|
||||
headerHozAlign: 'center',
|
||||
hozAlign: 'center',
|
||||
width: 100,
|
||||
title: '소재입고일',
|
||||
field: 'MATERIAL_RECEIPT_DATE',
|
||||
formatter: function(cell) {
|
||||
var value = (typeof cell.getValue === 'function') ? cell.getValue() : (cell.value || '');
|
||||
if(!value) return '';
|
||||
return value.length >= 10 ? value.substring(0, 10) : value;
|
||||
}
|
||||
},
|
||||
// 34. 가공 품의서작성일
|
||||
{
|
||||
headerHozAlign: 'center',
|
||||
@@ -791,14 +815,39 @@ function fn_initGrid() {
|
||||
title: '가공품의서일',
|
||||
field: 'PROCESSING_PROPOSAL_DATE',
|
||||
formatter: function(cell) {
|
||||
var value = cell.getValue();
|
||||
var value = (typeof cell.getValue === 'function') ? cell.getValue() : (cell.value || '');
|
||||
if(!value) return '';
|
||||
// YYYY-MM-DD 형식으로 표시
|
||||
if(value.length >= 10) {
|
||||
return value.substring(0, 10);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
},
|
||||
// 37. 가공발주일
|
||||
{
|
||||
headerHozAlign: 'center',
|
||||
hozAlign: 'center',
|
||||
width: 100,
|
||||
title: '가공발주일',
|
||||
field: 'PROCESSING_PO_DATE',
|
||||
formatter: function(cell) {
|
||||
var value = (typeof cell.getValue === 'function') ? cell.getValue() : (cell.value || '');
|
||||
if(!value) return '';
|
||||
return value.length >= 10 ? value.substring(0, 10) : value;
|
||||
}
|
||||
},
|
||||
// 38. 가공입고일
|
||||
{
|
||||
headerHozAlign: 'center',
|
||||
hozAlign: 'center',
|
||||
width: 100,
|
||||
title: '가공입고일',
|
||||
field: 'PROCESSING_RECEIPT_DATE',
|
||||
formatter: function(cell) {
|
||||
var value = (typeof cell.getValue === 'function') ? cell.getValue() : (cell.value || '');
|
||||
if(!value) return '';
|
||||
return value.length >= 10 ? value.substring(0, 10) : value;
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
@@ -875,8 +924,9 @@ function fn_loadFromMBom(callback) {
|
||||
url: "/salesMng/getMBomForPurchaseList.do",
|
||||
method: 'post',
|
||||
data: {
|
||||
PROJECT_MGMT_OBJID: mbomHeaderObjid, // MBOM_HEADER_OBJID를 직접 사용
|
||||
bomReportObjId: bomReportObjid
|
||||
PROJECT_MGMT_OBJID: mbomHeaderObjid,
|
||||
bomReportObjId: bomReportObjid,
|
||||
SALES_REQUEST_MASTER_OBJID: salesRequestMasterObjid
|
||||
},
|
||||
dataType: 'json',
|
||||
success: function(data) {
|
||||
|
||||
@@ -3187,7 +3187,51 @@ UPDATE SET
|
||||
0 AS GRAND_TOTAL_PRICE,
|
||||
SRP.PROPOSAL_DATE,
|
||||
NULL AS PROCESSING_PROPOSAL_DATE,
|
||||
'SRP' AS DATA_SOURCE -- 데이터 소스 구분용
|
||||
-- 소재발주일: 소재품번으로 매칭
|
||||
(SELECT POM.MAIL_SEND_DATE
|
||||
FROM PURCHASE_ORDER_MASTER POM
|
||||
JOIN PURCHASE_ORDER_PART POP ON POM.OBJID = POP.PURCHASE_ORDER_MASTER_OBJID
|
||||
JOIN SALES_REQUEST_MASTER SRM_PO ON POM.SALES_REQUEST_OBJID = SRM_PO.OBJID
|
||||
WHERE COALESCE(SRP.RAW_MATERIAL_PART_NO, '') != ''
|
||||
AND POP.PART_OBJID::VARCHAR = (SELECT PM2.OBJID::VARCHAR FROM PART_MNG PM2 WHERE PM2.PART_NO = SRP.RAW_MATERIAL_PART_NO LIMIT 1)
|
||||
AND SRM_PO.PROJECT_NO = (SELECT PROJECT_NO FROM SALES_REQUEST_MASTER WHERE OBJID = SRP.SALES_REQUEST_MASTER_OBJID)
|
||||
AND POM.MAIL_SEND_DATE IS NOT NULL
|
||||
ORDER BY POM.MAIL_SEND_DATE DESC
|
||||
LIMIT 1) AS MATERIAL_PO_DATE,
|
||||
-- 소재입고일
|
||||
(SELECT SUBSTRING(AP.RECEIPT_DATE, 1, 10)
|
||||
FROM ARRIVAL_PLAN AP
|
||||
JOIN PURCHASE_ORDER_PART POP ON AP.ORDER_PART_OBJID = POP.OBJID
|
||||
JOIN PURCHASE_ORDER_MASTER POM ON POP.PURCHASE_ORDER_MASTER_OBJID = POM.OBJID
|
||||
JOIN SALES_REQUEST_MASTER SRM_PO ON POM.SALES_REQUEST_OBJID = SRM_PO.OBJID
|
||||
WHERE COALESCE(SRP.RAW_MATERIAL_PART_NO, '') != ''
|
||||
AND POP.PART_OBJID::VARCHAR = (SELECT PM2.OBJID::VARCHAR FROM PART_MNG PM2 WHERE PM2.PART_NO = SRP.RAW_MATERIAL_PART_NO LIMIT 1)
|
||||
AND SRM_PO.PROJECT_NO = (SELECT PROJECT_NO FROM SALES_REQUEST_MASTER WHERE OBJID = SRP.SALES_REQUEST_MASTER_OBJID)
|
||||
AND AP.RECEIPT_DATE IS NOT NULL AND AP.RECEIPT_DATE != ''
|
||||
ORDER BY AP.RECEIPT_DATE DESC
|
||||
LIMIT 1) AS MATERIAL_RECEIPT_DATE,
|
||||
-- 가공발주일: 부품 PART_OBJID로 직접 매칭
|
||||
(SELECT POM.MAIL_SEND_DATE
|
||||
FROM PURCHASE_ORDER_MASTER POM
|
||||
JOIN PURCHASE_ORDER_PART POP ON POM.OBJID = POP.PURCHASE_ORDER_MASTER_OBJID
|
||||
JOIN SALES_REQUEST_MASTER SRM_PO ON POM.SALES_REQUEST_OBJID = SRM_PO.OBJID
|
||||
WHERE POP.PART_OBJID::VARCHAR = SRP.PART_OBJID::VARCHAR
|
||||
AND SRM_PO.PROJECT_NO = (SELECT PROJECT_NO FROM SALES_REQUEST_MASTER WHERE OBJID = SRP.SALES_REQUEST_MASTER_OBJID)
|
||||
AND POM.MAIL_SEND_DATE IS NOT NULL
|
||||
ORDER BY POM.MAIL_SEND_DATE DESC
|
||||
LIMIT 1) AS PROCESSING_PO_DATE,
|
||||
-- 가공입고일
|
||||
(SELECT SUBSTRING(AP.RECEIPT_DATE, 1, 10)
|
||||
FROM ARRIVAL_PLAN AP
|
||||
JOIN PURCHASE_ORDER_PART POP ON AP.ORDER_PART_OBJID = POP.OBJID
|
||||
JOIN PURCHASE_ORDER_MASTER POM ON POP.PURCHASE_ORDER_MASTER_OBJID = POM.OBJID
|
||||
JOIN SALES_REQUEST_MASTER SRM_PO ON POM.SALES_REQUEST_OBJID = SRM_PO.OBJID
|
||||
WHERE POP.PART_OBJID::VARCHAR = SRP.PART_OBJID::VARCHAR
|
||||
AND SRM_PO.PROJECT_NO = (SELECT PROJECT_NO FROM SALES_REQUEST_MASTER WHERE OBJID = SRP.SALES_REQUEST_MASTER_OBJID)
|
||||
AND AP.RECEIPT_DATE IS NOT NULL AND AP.RECEIPT_DATE != ''
|
||||
ORDER BY AP.RECEIPT_DATE DESC
|
||||
LIMIT 1) AS PROCESSING_RECEIPT_DATE,
|
||||
'SRP' AS DATA_SOURCE
|
||||
FROM
|
||||
SALES_REQUEST_PART SRP
|
||||
LEFT JOIN PART_MNG PM ON SRP.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
|
||||
@@ -3519,6 +3563,58 @@ SELECT
|
||||
G.PROCESSING_UNIT_PRICE,
|
||||
G.PROCESSING_TOTAL_PRICE,
|
||||
G.GRAND_TOTAL_PRICE,
|
||||
<if test="SALES_REQUEST_MASTER_OBJID != null and !''.equals(SALES_REQUEST_MASTER_OBJID)">
|
||||
-- 소재발주일: 소재품번(RAW_MATERIAL_PART_NO)으로 PART_MNG OBJID 조회 후 매칭
|
||||
(SELECT POM.MAIL_SEND_DATE
|
||||
FROM PURCHASE_ORDER_MASTER POM
|
||||
JOIN PURCHASE_ORDER_PART POP ON POM.OBJID = POP.PURCHASE_ORDER_MASTER_OBJID
|
||||
JOIN SALES_REQUEST_MASTER SRM_PO ON POM.SALES_REQUEST_OBJID = SRM_PO.OBJID
|
||||
WHERE COALESCE(G.RAW_MATERIAL_PART_NO, '') != ''
|
||||
AND POP.PART_OBJID::VARCHAR = (SELECT PM2.OBJID::VARCHAR FROM PART_MNG PM2 WHERE PM2.PART_NO = G.RAW_MATERIAL_PART_NO LIMIT 1)
|
||||
AND SRM_PO.PROJECT_NO = (SELECT PROJECT_NO FROM SALES_REQUEST_MASTER WHERE OBJID = #{SALES_REQUEST_MASTER_OBJID})
|
||||
AND POM.MAIL_SEND_DATE IS NOT NULL
|
||||
ORDER BY POM.MAIL_SEND_DATE DESC
|
||||
LIMIT 1) AS MATERIAL_PO_DATE,
|
||||
-- 소재입고일
|
||||
(SELECT SUBSTRING(AP.RECEIPT_DATE, 1, 10)
|
||||
FROM ARRIVAL_PLAN AP
|
||||
JOIN PURCHASE_ORDER_PART POP ON AP.ORDER_PART_OBJID = POP.OBJID
|
||||
JOIN PURCHASE_ORDER_MASTER POM ON POP.PURCHASE_ORDER_MASTER_OBJID = POM.OBJID
|
||||
JOIN SALES_REQUEST_MASTER SRM_PO ON POM.SALES_REQUEST_OBJID = SRM_PO.OBJID
|
||||
WHERE COALESCE(G.RAW_MATERIAL_PART_NO, '') != ''
|
||||
AND POP.PART_OBJID::VARCHAR = (SELECT PM2.OBJID::VARCHAR FROM PART_MNG PM2 WHERE PM2.PART_NO = G.RAW_MATERIAL_PART_NO LIMIT 1)
|
||||
AND SRM_PO.PROJECT_NO = (SELECT PROJECT_NO FROM SALES_REQUEST_MASTER WHERE OBJID = #{SALES_REQUEST_MASTER_OBJID})
|
||||
AND AP.RECEIPT_DATE IS NOT NULL AND AP.RECEIPT_DATE != ''
|
||||
ORDER BY AP.RECEIPT_DATE DESC
|
||||
LIMIT 1) AS MATERIAL_RECEIPT_DATE,
|
||||
-- 가공발주일: 부품 PART_OBJID로 직접 매칭
|
||||
(SELECT POM.MAIL_SEND_DATE
|
||||
FROM PURCHASE_ORDER_MASTER POM
|
||||
JOIN PURCHASE_ORDER_PART POP ON POM.OBJID = POP.PURCHASE_ORDER_MASTER_OBJID
|
||||
JOIN SALES_REQUEST_MASTER SRM_PO ON POM.SALES_REQUEST_OBJID = SRM_PO.OBJID
|
||||
WHERE POP.PART_OBJID::VARCHAR = G.PART_OBJID::VARCHAR
|
||||
AND SRM_PO.PROJECT_NO = (SELECT PROJECT_NO FROM SALES_REQUEST_MASTER WHERE OBJID = #{SALES_REQUEST_MASTER_OBJID})
|
||||
AND POM.MAIL_SEND_DATE IS NOT NULL
|
||||
ORDER BY POM.MAIL_SEND_DATE DESC
|
||||
LIMIT 1) AS PROCESSING_PO_DATE,
|
||||
-- 가공입고일
|
||||
(SELECT SUBSTRING(AP.RECEIPT_DATE, 1, 10)
|
||||
FROM ARRIVAL_PLAN AP
|
||||
JOIN PURCHASE_ORDER_PART POP ON AP.ORDER_PART_OBJID = POP.OBJID
|
||||
JOIN PURCHASE_ORDER_MASTER POM ON POP.PURCHASE_ORDER_MASTER_OBJID = POM.OBJID
|
||||
JOIN SALES_REQUEST_MASTER SRM_PO ON POM.SALES_REQUEST_OBJID = SRM_PO.OBJID
|
||||
WHERE POP.PART_OBJID::VARCHAR = G.PART_OBJID::VARCHAR
|
||||
AND SRM_PO.PROJECT_NO = (SELECT PROJECT_NO FROM SALES_REQUEST_MASTER WHERE OBJID = #{SALES_REQUEST_MASTER_OBJID})
|
||||
AND AP.RECEIPT_DATE IS NOT NULL AND AP.RECEIPT_DATE != ''
|
||||
ORDER BY AP.RECEIPT_DATE DESC
|
||||
LIMIT 1) AS PROCESSING_RECEIPT_DATE,
|
||||
</if>
|
||||
<if test="SALES_REQUEST_MASTER_OBJID == null or ''.equals(SALES_REQUEST_MASTER_OBJID)">
|
||||
NULL AS MATERIAL_PO_DATE,
|
||||
NULL AS MATERIAL_RECEIPT_DATE,
|
||||
NULL AS PROCESSING_PO_DATE,
|
||||
NULL AS PROCESSING_RECEIPT_DATE,
|
||||
</if>
|
||||
'MBOM' AS DATA_SOURCE
|
||||
FROM GROUPED_BOM G
|
||||
LEFT JOIN PART_MNG P ON P.OBJID::VARCHAR = G.PART_OBJID::VARCHAR
|
||||
|
||||
Reference in New Issue
Block a user