영업관리_견적관리 pdf 첨부 가능한 추가견적 컬럼 추가
This commit is contained in:
@@ -2899,6 +2899,14 @@ public class ContractMgmtController {
|
||||
request.setAttribute("docTypeName", CommonUtils.checkNull(paramMap.get("docTypeName")));
|
||||
return "/contractMgmt/FileRegistPopup";
|
||||
}
|
||||
|
||||
/**
|
||||
* 추가견적 PDF 첨부 팝업
|
||||
*/
|
||||
@RequestMapping("/contractMgmt/addEstimatePdfPopup.do")
|
||||
public String addEstimatePdfPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
||||
return "/contractMgmt/addEstimatePdfPopup";
|
||||
}
|
||||
|
||||
/**
|
||||
* 영업정보의 품목 목록 조회 (견적서 작성 시 사용)
|
||||
|
||||
@@ -739,6 +739,8 @@
|
||||
AND CANCEL_QTY != ''
|
||||
AND CANCEL_QTY != '0'
|
||||
) AS CANCEL_QTY_SUM
|
||||
-- 추가견적 PDF 첨부 건수
|
||||
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE = 'estimate02' AND UPPER(STATUS) = 'ACTIVE') AS ADD_EST_CNT
|
||||
FROM
|
||||
CONTRACT_MGMT AS T
|
||||
LEFT OUTER JOIN
|
||||
@@ -1014,9 +1016,134 @@
|
||||
AND COALESCE(IS_DIRECT_ORDER, 'N') != 'Y'
|
||||
</if>
|
||||
|
||||
ORDER BY REGDATE DESC
|
||||
ORDER BY REGDATE DESC
|
||||
</select>
|
||||
|
||||
<!-- 견적관리 리스트 (estimateList_new 전용 - list_type=estimate 필터 적용) -->
|
||||
<select id="estimateGridList" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
T.*
|
||||
FROM
|
||||
<include refid="contractBase"/> T
|
||||
WHERE 1=1
|
||||
<if test="Year !=null and Year != '' ">
|
||||
AND SUBSTR(CONTRACT_DATE,0,5) = #{Year}
|
||||
</if>
|
||||
|
||||
<if test="category_cd !=null and category_cd != '' ">
|
||||
AND category_cd = #{category_cd}
|
||||
</if>
|
||||
|
||||
<if test="customer_objid !=null and customer_objid != '' ">
|
||||
AND customer_objid = #{customer_objid}
|
||||
</if>
|
||||
|
||||
<if test="product != null and product !='' ">
|
||||
AND product = #{product}
|
||||
</if>
|
||||
|
||||
<if test="status_cd !=null and status_cd !=''">
|
||||
AND status_cd = #{status_cd}
|
||||
</if>
|
||||
|
||||
<if test="result_cd !=null and result_cd !=''">
|
||||
AND result_cd = #{result_cd}
|
||||
</if>
|
||||
<if test="contract_result !=null and contract_result !=''">
|
||||
AND contract_result = #{contract_result}
|
||||
</if>
|
||||
|
||||
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
||||
AND TO_DATE(CONTRACT_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
|
||||
</if>
|
||||
<if test="contract_end_date != null and !''.equals(contract_end_date)">
|
||||
AND TO_DATE(CONTRACT_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
||||
</if>
|
||||
|
||||
<if test="pm_user_id !=null and pm_user_id !=''">
|
||||
AND pm_user_id = #{pm_user_id}
|
||||
</if>
|
||||
|
||||
<if test="appr_status !=null and appr_status != '' ">
|
||||
AND APPR_STATUS = #{appr_status}
|
||||
</if>
|
||||
|
||||
<if test="area_cd != null and area_cd !='' ">
|
||||
AND AREA_CD = #{area_cd}
|
||||
</if>
|
||||
|
||||
<if test="paid_type != null and paid_type !='' ">
|
||||
AND PAID_TYPE = #{paid_type}
|
||||
</if>
|
||||
|
||||
<if test="search_partObjId != null and search_partObjId != ''">
|
||||
AND EXISTS (
|
||||
SELECT 1
|
||||
FROM CONTRACT_ITEM CI
|
||||
WHERE CI.CONTRACT_OBJID = T.OBJID
|
||||
AND CI.STATUS = 'ACTIVE'
|
||||
AND CI.PART_OBJID = #{search_partObjId}
|
||||
)
|
||||
</if>
|
||||
|
||||
<if test="search_serialNo != null and search_serialNo != ''">
|
||||
AND UPPER(SERIAL_NO) LIKE UPPER('%${search_serialNo}%')
|
||||
</if>
|
||||
|
||||
<if test="contract_currency != null and contract_currency != ''">
|
||||
AND CONTRACT_CURRENCY = #{contract_currency}
|
||||
</if>
|
||||
|
||||
<if test="receipt_start_date != null and !''.equals(receipt_start_date)">
|
||||
AND RECEIPT_DATE IS NOT NULL
|
||||
AND RECEIPT_DATE != ''
|
||||
AND (
|
||||
CASE
|
||||
WHEN RECEIPT_DATE ~ '^\d{8}$' THEN TO_DATE(RECEIPT_DATE, 'YYYYMMDD')
|
||||
WHEN RECEIPT_DATE ~ '^\d{4}-\d{2}-\d{2}$' THEN TO_DATE(RECEIPT_DATE, 'YYYY-MM-DD')
|
||||
ELSE NULL
|
||||
END
|
||||
) <![CDATA[ >= ]]> TO_DATE(#{receipt_start_date}, 'YYYY-MM-DD')
|
||||
</if>
|
||||
<if test="receipt_end_date != null and !''.equals(receipt_end_date)">
|
||||
AND RECEIPT_DATE IS NOT NULL
|
||||
AND RECEIPT_DATE != ''
|
||||
AND (
|
||||
CASE
|
||||
WHEN RECEIPT_DATE ~ '^\d{8}$' THEN TO_DATE(RECEIPT_DATE, 'YYYYMMDD')
|
||||
WHEN RECEIPT_DATE ~ '^\d{4}-\d{2}-\d{2}$' THEN TO_DATE(RECEIPT_DATE, 'YYYY-MM-DD')
|
||||
ELSE NULL
|
||||
END
|
||||
) <![CDATA[ <= ]]> TO_DATE(#{receipt_end_date}, 'YYYY-MM-DD')
|
||||
</if>
|
||||
|
||||
<if test="due_start_date != null and !''.equals(due_start_date)">
|
||||
AND (
|
||||
SELECT MIN(CI.DUE_DATE)
|
||||
FROM CONTRACT_ITEM CI
|
||||
WHERE CI.CONTRACT_OBJID = T.OBJID
|
||||
AND CI.STATUS = 'ACTIVE'
|
||||
AND CI.DUE_DATE IS NOT NULL
|
||||
AND CI.DUE_DATE != ''
|
||||
) <![CDATA[ >= ]]> #{due_start_date}
|
||||
</if>
|
||||
<if test="due_end_date != null and !''.equals(due_end_date)">
|
||||
AND (
|
||||
SELECT MIN(CI.DUE_DATE)
|
||||
FROM CONTRACT_ITEM CI
|
||||
WHERE CI.CONTRACT_OBJID = T.OBJID
|
||||
AND CI.STATUS = 'ACTIVE'
|
||||
AND CI.DUE_DATE IS NOT NULL
|
||||
AND CI.DUE_DATE != ''
|
||||
) <![CDATA[ <= ]]> #{due_end_date}
|
||||
</if>
|
||||
|
||||
<!-- 통합 등록 건 제외 (견적관리에서는 통합직발 숨김) -->
|
||||
AND COALESCE(IS_DIRECT_ORDER, 'N') != 'Y'
|
||||
|
||||
ORDER BY REGDATE DESC
|
||||
</select>
|
||||
|
||||
<!-- 주문서관리 Total 합계 조회 (조회된 데이터 전체 합계) -->
|
||||
<select id="getContractGridTotalAmount" parameterType="map" resultType="map">
|
||||
/* contractMgmt.getContractGridTotalAmount */
|
||||
@@ -3031,38 +3158,7 @@ SELECT
|
||||
,TOTAL_CNT::integer
|
||||
FROM (
|
||||
SELECT COUNT(1)::float TOTAL_CNT
|
||||
FROM
|
||||
( SELECT
|
||||
OBJID::VARCHAR
|
||||
,CUSTOMER_OBJID
|
||||
,CATEGORY_CD
|
||||
,PRODUCT_GROUP
|
||||
,PRODUCT
|
||||
,PRODUCT_STD
|
||||
,QTY
|
||||
,WARRANTY
|
||||
,PRODUCT_PRICE
|
||||
,OTHER_PRICE
|
||||
,TOTAL_PRICE
|
||||
,CONTRACT_USER_ID
|
||||
,CONTRACT_DATE
|
||||
,CONTRACT_PHONE
|
||||
,CONTRACT_EMAIL
|
||||
,CONTRACT_OFFICE_NO
|
||||
,CONTRACT_FAX_NO
|
||||
,EST_RELEASE_DATE
|
||||
,REGDATE
|
||||
,WRITER
|
||||
,ESTIMATE_NO
|
||||
,CONTRACT_PRODUCT_PRICE
|
||||
,SALE
|
||||
,FINAL_TOTAL_PRICE
|
||||
,CONTRACT_TYPE
|
||||
,NOTE
|
||||
,CUS_REQUEST_DATE
|
||||
,DELIVERY_PLACE
|
||||
,PRODUCT_CODE
|
||||
FROM ESTIMATE_MGMT ) AS T
|
||||
FROM ESTIMATE_MGMT AS T
|
||||
WHERE 1=1
|
||||
<if test="PRODUCT_CATEGORY !=null and PRODUCT_CATEGORY != '' ">
|
||||
AND PRODUCT_GROUP = #{PRODUCT_CATEGORY}
|
||||
@@ -3092,11 +3188,11 @@ SELECT
|
||||
</if>
|
||||
|
||||
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
||||
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
|
||||
AND TO_DATE(CONTRACT_DATE,'YYYYMMDD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
|
||||
|
||||
</if>
|
||||
<if test="contract_end_date != null and !''.equals(contract_end_date)">
|
||||
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
||||
AND TO_DATE(CONTRACT_DATE,'YYYYMMDD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
||||
</if>
|
||||
<if test="status_cd != null and !''.equals(status_cd)">
|
||||
AND CONTRACT_STATUS_CODE = #{status_cd}
|
||||
@@ -3115,19 +3211,19 @@ SELECT
|
||||
FROM(
|
||||
SELECT
|
||||
CONTRACT_MGMT.*
|
||||
,TO_DATE(TO_CHAR(TO_DATE(CONTRACT_MGMT.EST_RELEASE_DATE ,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') AS TO_DATE_EST_RELEASE_DATE
|
||||
,TO_DATE(TO_CHAR(TO_DATE(CONTRACT_MGMT.CONTRACT_DATE ,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') AS TO_DATE_CONTRACT_DATE
|
||||
,TO_DATE(CONTRACT_MGMT.EST_RELEASE_DATE,'YYYYMMDD') AS TO_DATE_EST_RELEASE_DATE
|
||||
,TO_DATE(CONTRACT_MGMT.CONTRACT_DATE,'YYYYMMDD') AS TO_DATE_CONTRACT_DATE
|
||||
,ROW_NUMBER() OVER (ORDER BY ESTIMATE_NO DESC) AS RNUM
|
||||
FROM
|
||||
( SELECT T.OBJID::VARCHAR
|
||||
,T.CUSTOMER_OBJID
|
||||
,ESTIMATE_NO
|
||||
,CASE WHEN T.CUSTOMER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG AS C WHERE 'C_' || C.OBJID::VARCHAR = T.CUSTOMER_OBJID) ELSE (SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = T.CUSTOMER_OBJID::VARCHAR) END AS SUPPLY_NAME
|
||||
,CASE WHEN T.CUSTOMER_OBJID LIKE 'C_%' THEN NULL ELSE (SELECT CODE_NAME(AREA_CD) FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = T.CUSTOMER_OBJID::VARCHAR) END AS AREA_CD_NAME
|
||||
,CASE WHEN T.CUSTOMER_OBJID LIKE 'C_%' THEN (SELECT CEO_NM FROM CLIENT_MNG AS C WHERE 'C_' || C.OBJID::VARCHAR = T.CUSTOMER_OBJID) ELSE (SELECT CHARGE_USER_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = T.CUSTOMER_OBJID::VARCHAR) END AS CHARGE_USER_NAME
|
||||
,CASE WHEN T.CUSTOMER_OBJID LIKE 'C_%' THEN NULL ELSE (SELECT REG_ID FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = T.CUSTOMER_OBJID::VARCHAR) END AS REG_ID
|
||||
,CASE WHEN T.CUSTOMER_OBJID LIKE 'C_%' THEN (SELECT BUS_REG_NO FROM CLIENT_MNG AS C WHERE 'C_' || C.OBJID::VARCHAR = T.CUSTOMER_OBJID) ELSE (SELECT BUS_REG_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = T.CUSTOMER_OBJID::VARCHAR) END AS BUS_REG_NO
|
||||
,CASE WHEN T.CUSTOMER_OBJID LIKE 'C_%' THEN NULL ELSE (SELECT REG_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = T.CUSTOMER_OBJID::VARCHAR) END AS REG_NO
|
||||
,COALESCE(CL.CLIENT_NM, SP.SUPPLY_NAME) AS SUPPLY_NAME
|
||||
,SP.AREA_CD_NAME
|
||||
,COALESCE(CL.CEO_NM, SP.CHARGE_USER_NAME) AS CHARGE_USER_NAME
|
||||
,SP.REG_ID
|
||||
,COALESCE(CL.BUS_REG_NO, SP.BUS_REG_NO) AS BUS_REG_NO
|
||||
,SP.REG_NO
|
||||
,T.CATEGORY_CD
|
||||
,T.PRODUCT_GROUP AS PRODUCT_GROUP
|
||||
,T.PRODUCT AS PRODUCT
|
||||
@@ -3141,12 +3237,35 @@ SELECT
|
||||
,FINAL_TOTAL_PRICE
|
||||
,CONTRACT_DATE
|
||||
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.CONTRACT_USER_ID ) AS CONTRACT_USER_NAME
|
||||
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='estimate01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
|
||||
,COALESCE(FC.CU01_CNT, 0) AS CU01_CNT
|
||||
,COALESCE(FC.ADD_ESTIMATE_FILE_CNT, 0) AS ADD_EST_CNT
|
||||
,T.REGDATE
|
||||
,PRODUCT_CODE
|
||||
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = T.STATUS) AS STATUS_NAME
|
||||
,STATUS
|
||||
FROM ESTIMATE_MGMT AS T) AS CONTRACT_MGMT
|
||||
FROM ESTIMATE_MGMT AS T
|
||||
LEFT JOIN LATERAL (
|
||||
SELECT CLIENT_NM, CEO_NM, BUS_REG_NO
|
||||
FROM CLIENT_MNG AS C
|
||||
WHERE 'C_' || C.OBJID::VARCHAR = T.CUSTOMER_OBJID
|
||||
AND T.CUSTOMER_OBJID LIKE 'C_%'
|
||||
) AS CL ON TRUE
|
||||
LEFT JOIN LATERAL (
|
||||
SELECT SUPPLY_NAME, CODE_NAME(AREA_CD) AS AREA_CD_NAME, CHARGE_USER_NAME, REG_ID, BUS_REG_NO, REG_NO
|
||||
FROM SUPPLY_MNG AS O
|
||||
WHERE O.OBJID::VARCHAR = T.CUSTOMER_OBJID::VARCHAR
|
||||
AND T.CUSTOMER_OBJID NOT LIKE 'C_%'
|
||||
) AS SP ON TRUE
|
||||
LEFT JOIN LATERAL (
|
||||
SELECT
|
||||
COUNT(1) FILTER (WHERE DOC_TYPE = 'estimate01') AS CU01_CNT,
|
||||
COUNT(1) FILTER (WHERE DOC_TYPE = 'estimate02') AS ADD_ESTIMATE_FILE_CNT
|
||||
FROM ATTACH_FILE_INFO
|
||||
WHERE TARGET_OBJID = T.OBJID
|
||||
AND DOC_TYPE IN ('estimate01', 'estimate02')
|
||||
AND UPPER(STATUS) = 'ACTIVE'
|
||||
) AS FC ON TRUE
|
||||
) AS CONTRACT_MGMT
|
||||
WHERE 1=1
|
||||
<if test="PRODUCT_CATEGORY !=null and PRODUCT_CATEGORY != '' ">
|
||||
AND PRODUCT_GROUP = #{PRODUCT_CATEGORY}
|
||||
@@ -3176,11 +3295,11 @@ SELECT
|
||||
</if>
|
||||
|
||||
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
||||
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
|
||||
AND TO_DATE(CONTRACT_DATE,'YYYYMMDD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
|
||||
|
||||
</if>
|
||||
<if test="contract_end_date != null and !''.equals(contract_end_date)">
|
||||
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
||||
AND TO_DATE(CONTRACT_DATE,'YYYYMMDD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
||||
</if>
|
||||
<if test="status_cd != null and !''.equals(status_cd)">
|
||||
AND STATUS = #{status_cd}
|
||||
@@ -3240,6 +3359,7 @@ SELECT
|
||||
END AS CUS_REQUEST_DATE
|
||||
,DELIVERY_PLACE
|
||||
,PRODUCT_CODE
|
||||
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.OBJID AND DOC_TYPE='estimate02' AND UPPER(STATUS) = 'ACTIVE') AS ADD_EST_CNT
|
||||
FROM ESTIMATE_MGMT A
|
||||
WHERE A.OBJID = #{objId}::NUMERIC
|
||||
</select>
|
||||
@@ -3302,13 +3422,13 @@ SELECT
|
||||
, #{qty }
|
||||
, #{warranty }
|
||||
<if test="product_price != null and !''.equals(product_price)">
|
||||
, #{product_price }::NUMERIC
|
||||
, #{product_price }::NUMERIC
|
||||
</if>
|
||||
<if test="other_price != null and !''.equals(other_price)">
|
||||
, #{other_price }::NUMERIC
|
||||
, #{other_price }::NUMERIC
|
||||
</if>
|
||||
<if test="total_price != null and !''.equals(total_price)">
|
||||
, #{total_price }::NUMERIC
|
||||
, #{total_price }::NUMERIC
|
||||
</if>
|
||||
, #{contract_user_id }
|
||||
, #{contract_date }
|
||||
@@ -3317,20 +3437,20 @@ SELECT
|
||||
, #{contract_office_no}
|
||||
, #{contract_fax_no }
|
||||
<if test="est_release_date != null and !''.equals(est_release_date)">
|
||||
,#{est_release_date}
|
||||
,#{est_release_date}
|
||||
</if>
|
||||
, NOW()
|
||||
, #{userId}
|
||||
,(SELECT TO_CHAR(NOW(),'yy')::VARCHAR ||'E-'||LPAD((SELECT NEXTVAL('estimate_mgmt_seq'))::VARCHAR ,4,'0'))
|
||||
<if test="contract_product_price != null and !''.equals(contract_product_price)">
|
||||
,#{contract_product_price}::NUMERIC
|
||||
,#{contract_product_price}::NUMERIC
|
||||
</if>
|
||||
,#{sale}
|
||||
,#{final_total_price}::NUMERIC
|
||||
,#{contract_type}
|
||||
,#{note}
|
||||
<if test="cus_request_date != null and !''.equals(cus_request_date)">
|
||||
,#{cus_request_date}
|
||||
,#{cus_request_date}
|
||||
</if>
|
||||
,#{delivery_place}
|
||||
,#{product_code}
|
||||
|
||||
Reference in New Issue
Block a user