diff --git a/WebContent/WEB-INF/view/salesMng/salesRequestMngRegList.jsp b/WebContent/WEB-INF/view/salesMng/salesRequestMngRegList.jsp
index 4578a3a..b933c9f 100644
--- a/WebContent/WEB-INF/view/salesMng/salesRequestMngRegList.jsp
+++ b/WebContent/WEB-INF/view/salesMng/salesRequestMngRegList.jsp
@@ -121,6 +121,11 @@ $(document).ready(function(){
fn_openQuotationRequestPopup();
});
+ // 단가초기화
+ $("#btnResetPrice").click(function(){
+ fn_resetMbomPrice();
+ });
+
$("#btnOrderBOMReg").click(function(){
fn_salesRequestTargetBOMListPopUp();
});
@@ -514,6 +519,106 @@ function fn_formPopUp(objId,sales_request_objid){
hiddenForm.submit(); */
}
+/**
+ * 단가초기화 함수
+ * - 선택된 구매요청서의 M-BOM에서 소재단가/가공단가를 0으로 초기화
+ * - 재수주 시 이전 단가를 삭제하고 새로운 견적을 받기 위함
+ */
+function fn_resetMbomPrice() {
+ // 1. 선택된 행 확인
+ var selectedRows = _tabulGrid.getSelectedData();
+
+ if(selectedRows.length == 0) {
+ Swal.fire({
+ title: '알림',
+ text: '단가를 초기화할 구매요청서를 선택해주세요.',
+ icon: 'info'
+ });
+ return;
+ }
+
+ if(selectedRows.length > 1) {
+ Swal.fire({
+ title: '알림',
+ text: '한 번에 하나의 구매요청서만 선택해주세요.',
+ icon: 'info'
+ });
+ return;
+ }
+
+ var selectedRow = selectedRows[0];
+ var mbomHeaderObjid = fnc_checkNull(selectedRow.MBOM_HEADER_OBJID);
+ var salesRequestObjid = fnc_checkNull(selectedRow.OBJID);
+ var projectNumber = fnc_checkNull(selectedRow.PROJECT_NUMBER);
+
+ // MBOM_HEADER_OBJID 확인
+ if(!mbomHeaderObjid) {
+ Swal.fire({
+ title: '알림',
+ text: 'M-BOM 정보가 없습니다.\n구매리스트가 생성되지 않았거나 M-BOM이 할당되지 않았습니다.',
+ icon: 'warning'
+ });
+ return;
+ }
+
+ // 확인 메시지
+ Swal.fire({
+ title: '단가 초기화',
+ html: '
선택된 구매요청서의 M-BOM 단가를 초기화하시겠습니까?
' +
+ '프로젝트: ' + projectNumber + '
' +
+ '' +
+ '
초기화 대상:
' +
+ '
' +
+ '- 소재단가 (UNIT_PRICE) → 0
' +
+ '- 가공단가 (PROCESSING_UNIT_PRICE) → 0
' +
+ '
' +
+ '
',
+ icon: 'warning',
+ showCancelButton: true,
+ confirmButtonText: '초기화',
+ cancelButtonText: '취소',
+ confirmButtonColor: '#ff9800'
+ }).then((result) => {
+ if(result.isConfirmed) {
+ // 초기화 실행
+ $.ajax({
+ url: "/salesMng/resetMbomPrice.do",
+ type: "POST",
+ data: {
+ MBOM_HEADER_OBJID: mbomHeaderObjid,
+ SALES_REQUEST_MASTER_OBJID: salesRequestObjid
+ },
+ dataType: "json",
+ success: function(response) {
+ if(response.resultFlag === "S") {
+ Swal.fire({
+ title: '완료',
+ html: response.message || '단가가 초기화되었습니다.',
+ icon: 'success'
+ }).then(() => {
+ fn_search(); // 목록 새로고침
+ });
+ } else {
+ Swal.fire({
+ title: '오류',
+ html: response.message || '단가 초기화 중 오류가 발생했습니다.',
+ icon: 'error'
+ });
+ }
+ },
+ error: function(xhr, status, error) {
+ console.error("단가 초기화 오류:", status, error);
+ Swal.fire({
+ title: '오류',
+ text: '서버 통신 중 오류가 발생했습니다.',
+ icon: 'error'
+ });
+ }
+ });
+ }
+ });
+}
+
/**
* 품의서 생성 함수
* - 선택된 구매요청서에서 소재단가/가공단가가 입력된 품목만 필터링
@@ -971,6 +1076,7 @@ function fn_executeCreateQuotationRequests(salesRequestObjid, supplyVendorGroups
+
diff --git a/src/com/pms/mapper/salesMng.xml b/src/com/pms/mapper/salesMng.xml
index 4fdf75f..1d20370 100644
--- a/src/com/pms/mapper/salesMng.xml
+++ b/src/com/pms/mapper/salesMng.xml
@@ -4825,6 +4825,19 @@ ORDER BY V.PATH2
WHERE OBJID = #{SALES_REQUEST_PART_OBJID}
+
+
+
+ UPDATE MBOM_DETAIL SET
+ UNIT_PRICE = 0,
+ PROCESSING_UNIT_PRICE = 0,
+ TOTAL_PRICE = 0,
+ PROCESSING_TOTAL_PRICE = 0,
+ GRAND_TOTAL_PRICE = 0,
+ EDIT_DATE = NOW()
+ WHERE MBOM_HEADER_OBJID = #{MBOM_HEADER_OBJID}
+
+