견적서 없이 추가견적서만 있어도 메일 발송가능하게 수정

This commit is contained in:
2026-03-27 10:55:34 +09:00
parent 1b91fac393
commit 48a1b9aef9
3 changed files with 101 additions and 20 deletions

View File

@@ -282,21 +282,24 @@ $(document).ready(function(){
var apprStatus = fnc_checkNull(selectedData[0].APPR_STATUS);
var objId = fnc_checkNull(selectedData[0].OBJID);
var estStatus = fnc_checkNull(selectedData[0].EST_STATUS);
var addEstCnt = parseInt(fnc_checkNull(selectedData[0].ADD_EST_CNT) || "0");
// 결재완료 또는 결재불필요 상태 확인
if(apprStatus !== "결재완료" && apprStatus !== "결재불필요"){
Swal.fire("결재완료 또는 결재불필요 상태의 견적서만 발송 가능합니다.");
return false;
}
// 견적서 존재 여부 확인
if(estStatus === "0" || estStatus === 0){
Swal.fire("작성된 견적서가 없습니다.");
// 견적서 존재 여부 확인 (기본 견적서 또는 추가견적 PDF 하나라도 있으면 발송 가능)
var hasBaseEst = !(estStatus === "0" || estStatus === 0 || estStatus === "");
var hasAddEst = addEstCnt > 0;
if(!hasBaseEst && !hasAddEst){
Swal.fire("작성된 견적서가 없습니다.<br>기본 견적서 또는 추가견적 PDF가 필요합니다.");
return false;
}
// 메일 작성 팝업 열기
fn_openMailFormPopup(objId);
fn_openMailFormPopup(objId, hasBaseEst, hasAddEst);
}
});
@@ -913,16 +916,22 @@ function fn_openAmaranthApproval(estObjId, contractNo) {
}
// 메일 작성 팝업 열기
function fn_openMailFormPopup(contractObjId){
// hasBaseEst: 기본 견적서 존재 여부 (기본값: true)
// hasAddEst: 추가견적 PDF 존재 여부 (기본값: false)
function fn_openMailFormPopup(contractObjId, hasBaseEst, hasAddEst){
if(!contractObjId || contractObjId === ''){
Swal.fire("잘못된 요청입니다.");
return;
}
if(typeof hasBaseEst === 'undefined') hasBaseEst = true;
if(typeof hasAddEst === 'undefined') hasAddEst = false;
var popup_width = 950;
var popup_height = 800;
var url = "/contractMgmt/estimateMailFormPopup.do?contractObjId=" + contractObjId;
url += "&hasBaseEst=" + (hasBaseEst ? "Y" : "N");
url += "&hasAddEst=" + (hasAddEst ? "Y" : "N");
window.open(url, "estimateMailForm", "width="+popup_width+",height="+popup_height+",menubar=no,scrollbars=yes,resizable=yes");
}

View File

@@ -7,6 +7,8 @@
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String connector = person.getUserId();
String contractObjId = request.getParameter("contractObjId");
String hasBaseEst = request.getParameter("hasBaseEst") != null ? request.getParameter("hasBaseEst") : "Y";
String hasAddEst = request.getParameter("hasAddEst") != null ? request.getParameter("hasAddEst") : "N";
%>
<!DOCTYPE html>
<html>
@@ -152,12 +154,19 @@ String contractObjId = request.getParameter("contractObjId");
<div class="pdf-status">
<i class="fa fa-file-pdf-o"></i>
<%if("N".equals(hasBaseEst) && "Y".equals(hasAddEst)){%>
<strong>PDF 첨부:</strong> 추가견적 PDF가 첨부됩니다.
<%}else if("Y".equals(hasBaseEst) && "Y".equals(hasAddEst)){%>
<strong>PDF 첨부:</strong> 최종 차수 견적서 + 추가견적 PDF가 합본으로 첨부됩니다.
<%}else{%>
<strong>PDF 첨부:</strong> 최종 차수 견적서가 자동으로 첨부됩니다.
<%}%>
</div>
<form id="mailForm">
<input type="hidden" id="contractObjId" name="contractObjId" value="<%=contractObjId%>"/>
<input type="hidden" id="pdfSessionId" name="pdfSessionId" value=""/>
<input type="hidden" id="useAddEstOnly" name="useAddEstOnly" value=""/>
<!-- 고객사 담당자 선택 -->
<div class="form-group">
@@ -204,6 +213,8 @@ String contractObjId = request.getParameter("contractObjId");
<script>
var contractInfo = null;
var managerList = [];
var hasBaseEst = "<%=hasBaseEst%>";
var hasAddEst = "<%=hasAddEst%>";
$(document).ready(function(){
// 계약 정보 및 담당자 목록 로드
@@ -392,7 +403,21 @@ function fn_sendMail(){
// PDF 생성 및 발송
function fn_generatePdfAndSend(){
var contractObjId = $("#contractObjId").val();
// 추가견적만 있는 경우: PDF 생성 없이 추가견적 파일 직접 첨부 발송
if(hasBaseEst === "N" && hasAddEst === "Y"){
Swal.fire({
title: '메일 발송 중...',
text: '추가견적 PDF를 첨부하여 발송 중입니다.',
allowOutsideClick: false,
onOpen: () => { Swal.showLoading(); }
});
$("#pdfSessionId").val("");
$("#useAddEstOnly").val("Y");
fn_submitMailForm();
return;
}
Swal.fire({
title: 'PDF 생성 중...',
text: '견적서를 PDF로 변환하고 있습니다.',
@@ -401,7 +426,7 @@ function fn_generatePdfAndSend(){
Swal.showLoading();
}
});
// 1. 최종 차수 견적서 정보 조회
$.ajax({
url: "/contractMgmt/getEstimateTemplateList.do",
@@ -607,6 +632,7 @@ function fn_submitMailForm(){
var formData = {
objId: $("#contractObjId").val(),
pdfSessionId: $("#pdfSessionId").val(),
useAddEstOnly: $("#useAddEstOnly").val(),
toEmails: $("#toEmails").val(),
ccEmails: $("#ccEmails").val(),
subject: $("#subject").val(),