구매리스트 환종추가, 엠봄 디테일에도 저장된 환종 표시

This commit is contained in:
2026-03-17 14:35:56 +09:00
parent f3ad5d53a0
commit 64376ceb28
3 changed files with 121 additions and 10 deletions

View File

@@ -91,6 +91,9 @@ var materialList = [];
// 공급업체(가공업체) 목록 전역 변수
var supplyVendorList = [];
// 환종 목록 전역 변수
var currencyList = [];
$(function(){
// 최상위 프레임(mBomPopupHeaderFs.jsp)에서 프로젝트 수주수량 가져오기
try {
@@ -118,6 +121,9 @@ $(function(){
// 공급업체(가공업체) 목록 로드
fn_loadSupplyVendorList();
// 환종 목록 로드
fn_loadCurrencyList();
// Tabulator 초기화
fn_initGrid();
});
@@ -172,6 +178,31 @@ function fn_loadSupplyVendorList() {
});
}
// 환종(통화) 목록 로드 (공통코드 0001533)
function fn_loadCurrencyList() {
$.ajax({
url: "/admin/makeCodeSelect.do",
method: 'post',
data: { codeId: '0001533' },
dataType: 'json',
async: false,
success: function(data) {
if(data && data.RESULT) {
data.RESULT.forEach(function(item) {
var codeId = item.CODE_ID || '';
var codeName = item.CODE_NAME || '';
if(codeId && codeName) {
currencyList.push({id: codeId, text: codeName});
}
});
}
},
error: function() {
console.error("환종 목록 로드 실패");
}
});
}
// Select2 커스텀 에디터 생성 함수
function createSelect2Editor(options) {
return function(cell, onRendered, success, cancel, editorParams) {
@@ -808,11 +839,29 @@ function fn_initGrid() {
return cell.getValue() || '-';
}
},
// 숨김 컬럼: 공급업체 코드 (저장 시 필요)
{
field: 'VENDOR',
visible: false
},
// 숨김 컬럼: 공급업체 코드 (저장 시 필요)
{
field: 'VENDOR',
visible: false
},
{
headerHozAlign: 'center',
hozAlign: 'center',
width: 80,
title: '환종',
field: 'CURRENCY',
editor: false,
formatter: function(cell) {
var value = cell.getValue();
if(!value) return '-';
for(var i = 0; i < currencyList.length; i++) {
if(currencyList[i].id == value) {
return currencyList[i].text;
}
}
return value;
}
},
// 숨김 컬럼: 품의서 작성일 (저장 시 기존 값 유지)
{
field: 'PROPOSAL_DATE',

View File

@@ -168,6 +168,8 @@ var mbomHeaderObjid = "${resolvedMbomHeaderObjid}"; // MBOM_HEADER.OBJID (M-BOM
var vendorList = []; // 공급업체 목록
var processingVendorList = []; // 가공업체 목록 (Select2용 배열)
var copiedVendorData = { field: null, value: null, displayName: '' }; // 복사된 업체 정보
var currencyList = []; // 환종 목록 (Select2용 배열)
var defaultCurrencyCode = ''; // 기본 환종 코드 (원)
// 디버그: resultMap 내용 확인 (주석처리)
// console.log("=== JSP resultMap 디버그 ===");
@@ -201,9 +203,11 @@ $(document).ready(function(){
}
console.log("가공업체 목록 변환 완료:", processingVendorList.length + "개");
fn_initGrid();
logDebug("purchaseListFormPopUp :: grid initialized");
fn_loadInitialData();
fn_loadCurrencyList(function(){
fn_initGrid();
logDebug("purchaseListFormPopUp :: grid initialized");
fn_loadInitialData();
});
});
});
@@ -240,6 +244,37 @@ function fn_loadVendorList(callback) {
}
// 환종(통화) 목록 로드 (공통코드 0001533)
function fn_loadCurrencyList(callback) {
$.ajax({
url: "/admin/makeCodeSelect.do",
method: 'post',
data: { codeId: '0001533' },
dataType: 'json',
success: function(data) {
currencyList = [];
if(data && data.RESULT) {
data.RESULT.forEach(function(item) {
var codeId = item.CODE_ID || '';
var codeName = item.CODE_NAME || '';
if(codeId && codeName) {
currencyList.push({id: codeId, text: codeName});
if(codeName === '원' || codeName === 'KRW' || codeName.indexOf('원') >= 0) {
defaultCurrencyCode = codeId;
}
}
});
}
console.log("환종 목록 로드 완료:", currencyList.length + "개, 기본값:", defaultCurrencyCode);
if(callback) callback();
},
error: function(xhr, status, error) {
logError("환종 목록 로드 실패:", error);
if(callback) callback();
}
});
}
function fn_loadInitialData(){
logDebug("purchaseListFormPopUp :: fn_loadInitialData start",
"projectMgmtObjid=", projectMgmtObjid,
@@ -520,8 +555,8 @@ function fn_initGrid() {
title: '지급/사급',
field: 'SUPPLY_TYPE'
},
// 20. 소재소요량
{
// 20. 소재소요량
{
headerHozAlign: 'center',
hozAlign: 'right',
width: 100,
@@ -610,6 +645,32 @@ function fn_initGrid() {
return value;
}
},
// 30-1. 환종 (수정가능 - Select2 에디터, 기본값: 원)
{
headerHozAlign: 'center',
hozAlign: 'center',
width: 100,
title: '<span style="background-color: #FFFF00; padding: 2px 5px;">환종</span>',
field: 'CURRENCY',
editor: function(cell, onRendered, success, cancel, editorParams) {
return createSelect2Editor(currencyList)(cell, onRendered, success, cancel, editorParams);
},
mutator: function(value, data) {
if(!value && defaultCurrencyCode) return defaultCurrencyCode;
return value || '';
},
formatter: function(cell) {
var value = (typeof cell.getValue === 'function') ? cell.getValue() : (cell.value || '');
if(!value) return '';
for(var i = 0; i < currencyList.length; i++) {
if(currencyList[i].id == value) {
return currencyList[i].text;
}
}
return value;
}
},
// 31. 단가 (수정가능) -> 소재단가
{
headerHozAlign: 'center',

View File

@@ -3913,6 +3913,7 @@ ORDER BY V.PATH2
PO_QTY = COALESCE(NULLIF(TRIM(#{PO_QTY}::TEXT), '')::NUMERIC, 0),
VENDOR = #{VENDOR_PM},
PROCESSING_VENDOR = #{PROCESSING_VENDOR},
CURRENCY = #{CURRENCY},
UNIT_PRICE = COALESCE(NULLIF(TRIM(#{UNIT_PRICE}::TEXT), '')::NUMERIC, 0),
TOTAL_PRICE = COALESCE(NULLIF(TRIM(#{TOTAL_PRICE}::TEXT), '')::NUMERIC, 0),
PROCESSING_UNIT_PRICE = COALESCE(NULLIF(TRIM(#{PROCESSING_UNIT_PRICE}::TEXT), '')::NUMERIC, 0),