diff --git a/.playwright-mcp/structure_popup_main.png b/.playwright-mcp/structure_popup_main.png new file mode 100644 index 0000000..d398cfc Binary files /dev/null and b/.playwright-mcp/structure_popup_main.png differ diff --git a/WebContent/WEB-INF/classes/com/pms/mapper/productionplanning.xml b/WebContent/WEB-INF/classes/com/pms/mapper/productionplanning.xml index 2926e4e..2edcdb4 100644 --- a/WebContent/WEB-INF/classes/com/pms/mapper/productionplanning.xml +++ b/WebContent/WEB-INF/classes/com/pms/mapper/productionplanning.xml @@ -2985,14 +2985,6 @@ WHERE OBJID = #{projectMgmtObjid} - - - UPDATE PROJECT_MGMT - SET - PART_OBJID = NULL - WHERE OBJID = #{projectMgmtObjid} - - - - - - - - - - - - INSERT INTO m_bom_data ( - objid, - project_mgmt_objid, - bom_report_objid, - parent_objid, - child_objid, - parent_part_no, - part_no, - part_name, - qty, - aggregate_qty, - level, - material, - heat_treat_hardness, - heat_treat_method, - surface_treatment, - supplier_name, - category_name, - raw_material, - size, - order_qty, - quantity, - production_qty, - processor_name, - process_due_date, - grinding_due_date, - writer, - regdate - ) VALUES ( - #{OBJID}::NUMERIC, - #{projectMgmtObjid}::NUMERIC, - #{BOM_REPORT_OBJID}::NUMERIC, - - - #{PARENT_OBJID}::NUMERIC, - - - NULL, - - - - - #{CHILD_OBJID}::NUMERIC, - - - NULL, - - - #{PARENT_PART_NO}, - #{PART_NO}, - #{PART_NAME}, - #{QTY}::NUMERIC, - #{AGGREGATE_QTY}::NUMERIC, - #{LEVEL}::INTEGER, - #{MATERIAL}, - #{HEAT_TREAT_HARDNESS}, - #{HEAT_TREAT_METHOD}, - #{SURFACE_TREATMENT}, - #{SUPPLIER_NAME}, - #{CATEGORY_NAME}, - #{RAW_MATERIAL}, - #{SIZE}, - #{ORDER_QTY}::NUMERIC, - #{QUANTITY}::NUMERIC, - #{PRODUCTION_QTY}::NUMERIC, - #{PROCESSOR_NAME}, - #{PROCESS_DUE_DATE}, - #{GRINDING_DUE_DATE}, - #{writer}, - NOW() - ) - - - - - UPDATE project_mgmt - SET - mbom_version = COALESCE(mbom_version, 0) + 1, - mbom_regdate = NOW(), - mbom_writer = #{writer}, - mbom_status = 'Y' - WHERE objid = #{projectMgmtObjid} - - - - - UPDATE m_bom_data - SET - STATUS = 'DELETED', - EDIT_DATE = NOW() - WHERE PROJECT_MGMT_OBJID = #{projectMgmtObjid}::NUMERIC - AND STATUS = 'ACTIVE' - - - - - UPDATE project_mgmt - SET - mbom_status = NULL, - mbom_version = NULL, - mbom_regdate = NULL, - mbom_writer = NULL - WHERE objid = #{projectMgmtObjid} - - - - diff --git a/WebContent/WEB-INF/dispatcher-servlet.xml b/WebContent/WEB-INF/dispatcher-servlet.xml index 0769b0a..8a5b95d 100644 --- a/WebContent/WEB-INF/dispatcher-servlet.xml +++ b/WebContent/WEB-INF/dispatcher-servlet.xml @@ -42,17 +42,6 @@ - - - - - - - - - - - diff --git a/WebContent/WEB-INF/view/contractMgmt/estimateList_new.jsp b/WebContent/WEB-INF/view/contractMgmt/estimateList_new.jsp index bf768b7..1948ab4 100644 --- a/WebContent/WEB-INF/view/contractMgmt/estimateList_new.jsp +++ b/WebContent/WEB-INF/view/contractMgmt/estimateList_new.jsp @@ -668,169 +668,21 @@ function fn_sendEstimateMail(contractObjId){ return; } - // 1단계: 견적서 템플릿 정보 조회 - Swal.fire({ - title: '견적서 조회 중...', - text: '잠시만 기다려주세요.', - allowOutsideClick: false, - onOpen: () => { - Swal.showLoading(); - } - }); - - $.ajax({ - url: "/contractMgmt/getEstimateTemplateList.do", - type: "POST", - data: { objId: contractObjId }, - dataType: "json", - success: function(data){ - if(data.result === "success" && data.list && data.list.length > 0){ - // 최종 차수 견적서 찾기 - var latestEstimate = data.list[0]; // 이미 차수 내림차순으로 정렬되어 있음 - var templateObjId = latestEstimate.OBJID || latestEstimate.objid; - var templateType = latestEstimate.TEMPLATE_TYPE || latestEstimate.template_type || latestEstimate.templateType; - - // 2단계: 견적서 페이지를 새 창으로 열고 PDF 생성 - fn_generatePdfAndSendMail(contractObjId, templateObjId, templateType); - } else { - Swal.close(); - Swal.fire({ - title: '오류', - text: '견적서를 찾을 수 없습니다.', - icon: 'error' - }); - } - }, - error: function(xhr, status, error){ - Swal.close(); - console.error("견적서 조회 오류:", xhr, status, error); - Swal.fire({ - title: '오류', - text: '견적서 조회 중 오류가 발생했습니다.', - icon: 'error' - }); - } - }); -} - -// PDF 생성 및 메일 발송 -function fn_generatePdfAndSendMail(contractObjId, templateObjId, templateType){ - Swal.fire({ - title: 'PDF 생성 중...', - text: '견적서를 PDF로 변환하고 있습니다.', - allowOutsideClick: false, - onOpen: () => { - Swal.showLoading(); - } - }); - - // 견적서 페이지 URL 생성 - var url = ""; - if(templateType === "1"){ - url = "/contractMgmt/estimateTemplate1.do?templateObjId=" + templateObjId; - } else if(templateType === "2"){ - url = "/contractMgmt/estimateTemplate2.do?templateObjId=" + templateObjId; - } - - // 숨겨진 iframe으로 페이지 로드 - var iframe = $('