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 + '

' + + '
' + + '

초기화 대상:

' + + '' + + '
', + 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} + +