diff --git a/.gitignore b/.gitignore
index c7a2dac..d758c67 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,6 +40,7 @@ CLAUDE.md
.playwright-mcp/
.omc/
.mcp.json
+db/checkpoints/
# Phoenix (런타임/로그/작업이력 — git 불필요)
phoenix/
diff --git a/WebContent/WEB-INF/view/contractMgmt/estimateAndOrderRegistFormPopup.jsp b/WebContent/WEB-INF/view/contractMgmt/estimateAndOrderRegistFormPopup.jsp
index 9e0b650..2d985cf 100644
--- a/WebContent/WEB-INF/view/contractMgmt/estimateAndOrderRegistFormPopup.jsp
+++ b/WebContent/WEB-INF/view/contractMgmt/estimateAndOrderRegistFormPopup.jsp
@@ -366,12 +366,19 @@
var orderQuantity = $row.find(".item-order-quantity").val().replace(/,/g, "").trim();
var orderUnitPrice = $row.find(".item-order-unit-price").val().replace(/,/g, "").trim();
+ var product = $row.find(".item-product").val();
+ if(!product || product == "") {
+ alert((i+1) + "번째 품목의 제품구분을 선택해주세요.");
+ $row.find(".item-product").focus();
+ return false;
+ }
+
if(!partObjId || partObjId == "") {
alert((i+1) + "번째 품목의 품번을 선택해주세요.");
$row.find(".item-part-no-select").focus();
return false;
}
-
+
if(orderQuantity == "" || orderQuantity == "0") {
alert((i+1) + "번째 품목의 수주수량을 입력해주세요.");
$row.find(".item-order-quantity").focus();
@@ -405,6 +412,7 @@
var item = {
objId: $row.find(".item-objid").val() || '',
+ product: $row.find(".item-product").val(),
partObjId: $row.find(".item-part-objid").val(),
partNo: $row.find(".item-part-no").val() ? $row.find(".item-part-no").val().trim() : "",
partName: $row.find(".item-part-name").val() ? $row.find(".item-part-name").val().trim() : "",
@@ -448,7 +456,14 @@
var html = '
';
html += '| ' + (itemCounter-1) + ' | ';
-
+
+ // 제품구분 드롭다운
+ html += '';
+ html += '';
+ html += ' | ';
+
// 품번 셀렉트박스
html += '';
html += ' |
';
$("#itemListBody").append(html);
-
+
+ // 제품구분 드롭다운 초기화
+ fnc_getCodeListAppend("0000001", "PRODUCT_" + itemId, "");
+ $("#PRODUCT_" + itemId).select2({ width: '100%' });
+
// 품번/품명 옵션 채우기
fn_fillPartOptions(itemId, null, null, null);
@@ -563,7 +582,8 @@
// 총액 직접 수정시에도 합계는 갱신
fn_calculateTotal();
});
-
+
+
// 품목 정보 저장
var itemData = {
id: itemId,
@@ -612,8 +632,12 @@
if(existingData.dueDate) $("#" + itemId + " .item-due-date").val(existingData.dueDate);
if(existingData.customerRequest) $("#" + itemId + " .item-customer-request").val(existingData.customerRequest);
if(existingData.returnReason) $("#" + itemId + " .item-return-reason").val(existingData.returnReason).trigger('change');
+ if(existingData.product) {
+ fnc_getCodeListAppend("0000001", "PRODUCT_" + itemId, existingData.product);
+ $("#PRODUCT_" + itemId).select2({ width: '100%' });
+ }
}
-
+
itemList.push(itemData);
}
@@ -656,7 +680,14 @@
var html = '';
html += '| ' + (itemCounter-1) + ' | ';
-
+
+ // 제품구분 드롭다운
+ html += '';
+ html += '';
+ html += ' | ';
+
// 품번 셀렉트박스
html += '';
html += ' |