구매리스트 환종추가, 엠봄 디테일에도 저장된 환종 표시
This commit is contained in:
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user