수주 (프로젝트 생성) 후 품목 추가, 삭제, 변경 불가!

This commit is contained in:
2025-11-13 16:36:01 +09:00
parent b761e511ff
commit 6a97bf72e1
5 changed files with 217 additions and 71 deletions

View File

@@ -523,7 +523,7 @@ function getCurrencySymbol() {
}
}
// 품명 셀렉트박스 초기화 함수
/* 품명 셀렉트박스 초기화 함수 - 주석처리 (텍스트 readonly로 변경)
function fn_initItemDescSelect(itemId) {
$("#" + itemId + " .item-desc-select").select2({
placeholder: "품명 입력하여 검색...",
@@ -594,6 +594,7 @@ function fn_initItemDescSelect(itemId) {
$("#" + itemId + " .item-part-objid").val(''); // part_objid 초기화
});
}
*/
// 행 추가 함수
function fn_addItemRow() {
@@ -606,8 +607,7 @@ function fn_addItemRow() {
var newRow = '<tr id="' + itemId + '">' +
'<td>' + nextNo + '</td>' +
'<td class="text-left editable">' +
'<select class="item-desc-select" style="width:100%;"></select>' +
'<input type="hidden" class="item-desc" value="">' +
'<input type="text" class="item-desc" value="" readonly style="background-color: #f5f5f5;">' +
'<input type="hidden" class="item-part-objid" value="">' +
'</td>' +
'<td class="text-left editable"><textarea class="item-spec"></textarea></td>' +
@@ -621,8 +621,8 @@ function fn_addItemRow() {
// 계 행 바로 위에 추가
$(".total-row").before(newRow);
// 품명 셀렉트박스 초기화
fn_initItemDescSelect(itemId);
// 품명 셀렉트박스 초기화 - 주석처리 (텍스트 readonly로 변경)
// fn_initItemDescSelect(itemId);
// 합계 재계산
fn_calculateTotal();
@@ -686,12 +686,7 @@ function fn_loadContractItems(contractObjId) {
itemsHtml += '<tr id="' + itemId + '">';
itemsHtml += '<td>' + (i + 1) + '</td>';
itemsHtml += '<td class="text-left editable">';
itemsHtml += '<select class="item-desc-select" style="width:100%;">';
if(partName) {
itemsHtml += '<option value="' + partObjId + '" selected>' + partName + '</option>';
}
itemsHtml += '</select>';
itemsHtml += '<input type="hidden" class="item-desc" value="' + partName + '">';
itemsHtml += '<input type="text" class="item-desc" value="' + partName + '" readonly style="background-color: #f5f5f5;">';
itemsHtml += '<input type="hidden" class="item-part-objid" value="' + partObjId + '">';
itemsHtml += '</td>';
itemsHtml += '<td class="text-left editable"><textarea class="item-spec"></textarea></td>';
@@ -746,11 +741,12 @@ function fn_loadContractItems(contractObjId) {
// HTML 삽입
$("#itemsTableBody").html(itemsHtml);
// 셀렉트박스 초기화
/* 셀렉트박스 초기화 - 주석처리 (텍스트 readonly로 변경)
for(var i = 0; i < data.items.length; i++) {
var itemId = 'contract_item_' + i;
fn_initItemDescSelect(itemId);
}
*/
// 합계 계산
fn_calculateTotal();
@@ -760,8 +756,10 @@ function fn_loadContractItems(contractObjId) {
fn_controlButtons();
} else {
// 품목이 없으면 기본 행 표시
/* 셀렉트박스 초기화 - 주석처리 (텍스트 readonly로 변경)
fn_initItemDescSelect('default_item_1');
fn_initItemDescSelect('default_item_2');
*/
fn_calculateTotal();
g_apprStatus = "작성중";
fn_controlButtons();
@@ -772,8 +770,10 @@ function fn_loadContractItems(contractObjId) {
Swal.fire("품목 데이터를 불러오는데 실패했습니다.");
// 오류 시 기본 행 표시
/* 셀렉트박스 초기화 - 주석처리 (텍스트 readonly로 변경)
fn_initItemDescSelect('default_item_1');
fn_initItemDescSelect('default_item_2');
*/
fn_calculateTotal();
g_apprStatus = "작성중";
fn_controlButtons();
@@ -935,9 +935,11 @@ function fn_loadData() {
}
*/ // 품목 데이터 로드 주석처리 끝
// 새로 작성 시 기본 행의 셀렉트박스 초기화
// 새로 작성 시 기본 행의 셀렉트박스 초기화 - 주석처리 (텍스트 readonly로 변경)
/*
fn_initItemDescSelect('default_item_1');
fn_initItemDescSelect('default_item_2');
*/
// 초기 로드 시 합계 계산
fn_calculateTotal();
@@ -1064,13 +1066,7 @@ function fn_loadTemplateData(templateObjId){
itemsHtml += '<tr id="' + itemId + '">';
itemsHtml += '<td>' + (i + 1) + '</td>';
itemsHtml += '<td class="text-left editable">';
itemsHtml += '<select class="item-desc-select" style="width:100%;">';
// PART_OBJID가 없으면 기존 텍스트를 옵션으로 표시
if(description) {
itemsHtml += '<option value="" selected>' + description + '</option>';
}
itemsHtml += '</select>';
itemsHtml += '<input type="hidden" class="item-desc" value="' + description + '">';
itemsHtml += '<input type="text" class="item-desc" value="' + description + '" readonly style="background-color: #f5f5f5;">';
itemsHtml += '<input type="hidden" class="item-part-objid" value="' + partObjId + '">';
itemsHtml += '</td>';
itemsHtml += '<td class="text-left editable"><textarea class="item-spec">' + specification + '</textarea></td>';
@@ -1125,7 +1121,7 @@ function fn_loadTemplateData(templateObjId){
// HTML 삽입
$("#itemsTableBody").html(itemsHtml);
// 셀렉트박스 초기화 및 데이터 설정
/* 셀렉트박스 초기화 및 데이터 설정 - 주석처리 (텍스트 readonly로 변경)
for(var i = 0; i < data.items.length; i++) {
var item = data.items[i];
var itemId = 'template_item_' + i;
@@ -1167,6 +1163,7 @@ function fn_loadTemplateData(templateObjId){
// 셀렉트박스 초기화 (옵션 추가 후)
fn_initItemDescSelect(itemId);
}
*/
// 테이블 내 비고 값 설정 (textarea 생성 직후)
$("#note_remarks").val(noteRemarks);
@@ -1436,8 +1433,7 @@ function fn_save() {
<tr id="default_item_1">
<td>1</td>
<td class="text-left editable">
<select class="item-desc-select" style="width:100%;"></select>
<input type="hidden" class="item-desc" value="">
<input type="text" class="item-desc" value="" readonly style="background-color: #f5f5f5;">
<input type="hidden" class="item-part-objid" value="">
</td>
<td class="text-left editable"><textarea class="item-spec"></textarea></td>
@@ -1450,8 +1446,7 @@ function fn_save() {
<tr id="default_item_2">
<td>2</td>
<td class="text-left editable">
<select class="item-desc-select" style="width:100%;"></select>
<input type="hidden" class="item-desc" value="">
<input type="text" class="item-desc" value="" readonly style="background-color: #f5f5f5;">
<input type="hidden" class="item-part-objid" value="">
</td>
<td class="text-left editable"><textarea class="item-spec"></textarea></td>
@@ -1502,7 +1497,7 @@ function fn_save() {
<!-- 버튼 영역 -->
<div class="btn-area no-print">
<button type="button" id="btnAddRow" class="estimate-btn">행 추가</button>
<!-- <button type="button" id="btnAddRow" class="estimate-btn">행 추가</button> -->
<button type="button" id="btnPrint" class="estimate-btn">인쇄</button>
<button type="button" id="btnDownloadPdf" class="estimate-btn">PDF 다운로드</button>
<button type="button" id="btnSave" class="estimate-btn">저장</button>