구매요청서
This commit is contained in:
@@ -585,55 +585,73 @@
|
||||
</select>
|
||||
|
||||
<update id="mergeSalesRequestMasterInfo" parameterType="map">
|
||||
INSERT INTO SALES_REQUEST_MASTER
|
||||
(
|
||||
OBJID,
|
||||
REQUEST_MNG_NO,
|
||||
REQUEST_CD,
|
||||
PROJECT_NO,
|
||||
RELEASE_DATE,
|
||||
REQUEST_REASONS,
|
||||
REQUEST_USER_ID,
|
||||
DELIVERY_REQUEST_DATE,
|
||||
UNIT_NAME,
|
||||
STATUS,
|
||||
RECEIPT_USER_ID,
|
||||
RECEIPT_DATE,
|
||||
WRITER,
|
||||
REMARK,
|
||||
REGDATE
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{SALES_REQUEST_MASTER_OBJID },
|
||||
(SELECT 'R'||TO_CHAR(NOW(),'YYYYMMDD')||'-'||LPAD((COALESCE(MAX(SUBSTR(REQUEST_MNG_NO,11,13)),'0')::INTEGER+1)::TEXT,3,'0') FROM SALES_REQUEST_MASTER),
|
||||
#{REQUEST_CD },
|
||||
#{PROJECT_NO },
|
||||
#{RELEASE },
|
||||
#{REQUEST_REASONS },
|
||||
#{REQUEST_USER_ID },
|
||||
#{DELIVERY_REQUEST_DATE },
|
||||
#{UNIT_NAME },
|
||||
#{STATUS },
|
||||
#{RECEIPT_USER_ID },
|
||||
#{RECEIPT_DATE },
|
||||
#{WRITER },
|
||||
#{REMARK },
|
||||
NOW()
|
||||
) ON CONFLICT (OBJID) DO
|
||||
UPDATE
|
||||
SET
|
||||
REQUEST_CD = #{REQUEST_CD },
|
||||
PROJECT_NO = #{PROJECT_NO },
|
||||
RELEASE_DATE = #{RELEASE },
|
||||
REQUEST_REASONS = #{REQUEST_REASONS },
|
||||
REQUEST_USER_ID = #{REQUEST_USER_ID },
|
||||
DELIVERY_REQUEST_DATE = #{DELIVERY_REQUEST_DATE },
|
||||
UNIT_NAME = #{UNIT_NAME },
|
||||
STATUS = #{STATUS },
|
||||
RECEIPT_USER_ID = #{RECEIPT_USER_ID },
|
||||
RECEIPT_DATE = #{RECEIPT_DATE },
|
||||
REMARK = #{REMARK }
|
||||
INSERT INTO SALES_REQUEST_MASTER
|
||||
(
|
||||
OBJID,
|
||||
REQUEST_MNG_NO,
|
||||
REQUEST_CD,
|
||||
PROJECT_NO,
|
||||
RELEASE_DATE,
|
||||
REQUEST_REASONS,
|
||||
REQUEST_USER_ID,
|
||||
DELIVERY_REQUEST_DATE,
|
||||
UNIT_NAME,
|
||||
STATUS,
|
||||
RECEIPT_USER_ID,
|
||||
RECEIPT_DATE,
|
||||
WRITER,
|
||||
REMARK,
|
||||
REGDATE,
|
||||
PURCHASE_TYPE,
|
||||
ORDER_TYPE,
|
||||
PRODUCT_NAME,
|
||||
AREA_CD,
|
||||
CUSTOMER_OBJID,
|
||||
PAID_TYPE
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{SALES_REQUEST_MASTER_OBJID },
|
||||
(SELECT 'R'||TO_CHAR(NOW(),'YYYYMMDD')||'-'||LPAD((COALESCE(MAX(SUBSTR(REQUEST_MNG_NO,11,13)),'0')::INTEGER+1)::TEXT,3,'0') FROM SALES_REQUEST_MASTER),
|
||||
#{REQUEST_CD },
|
||||
#{PROJECT_NO },
|
||||
#{RELEASE },
|
||||
#{REQUEST_REASONS },
|
||||
#{REQUEST_USER_ID },
|
||||
#{DELIVERY_REQUEST_DATE },
|
||||
#{UNIT_NAME },
|
||||
#{STATUS },
|
||||
#{RECEIPT_USER_ID },
|
||||
#{RECEIPT_DATE },
|
||||
#{WRITER },
|
||||
#{REMARK },
|
||||
NOW(),
|
||||
#{PURCHASE_TYPE },
|
||||
#{ORDER_TYPE },
|
||||
#{PRODUCT_NAME },
|
||||
#{AREA_CD },
|
||||
#{CUSTOMER_OBJID },
|
||||
#{PAID_TYPE }
|
||||
) ON CONFLICT (OBJID) DO
|
||||
UPDATE
|
||||
SET
|
||||
REQUEST_CD = #{REQUEST_CD },
|
||||
PROJECT_NO = #{PROJECT_NO },
|
||||
RELEASE_DATE = #{RELEASE },
|
||||
REQUEST_REASONS = #{REQUEST_REASONS },
|
||||
REQUEST_USER_ID = #{REQUEST_USER_ID },
|
||||
DELIVERY_REQUEST_DATE = #{DELIVERY_REQUEST_DATE },
|
||||
UNIT_NAME = #{UNIT_NAME },
|
||||
STATUS = #{STATUS },
|
||||
RECEIPT_USER_ID = #{RECEIPT_USER_ID },
|
||||
RECEIPT_DATE = #{RECEIPT_DATE },
|
||||
REMARK = #{REMARK },
|
||||
PURCHASE_TYPE = #{PURCHASE_TYPE },
|
||||
ORDER_TYPE = #{ORDER_TYPE },
|
||||
PRODUCT_NAME = #{PRODUCT_NAME },
|
||||
AREA_CD = #{AREA_CD },
|
||||
CUSTOMER_OBJID = #{CUSTOMER_OBJID },
|
||||
PAID_TYPE = #{PAID_TYPE }
|
||||
</update>
|
||||
|
||||
<select id="getSalesRequestMasterInfo" parameterType="map" resultType="map">
|
||||
@@ -643,12 +661,12 @@
|
||||
SRM.REQUEST_CD,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_CD) AS REQUEST_CD_NAME,
|
||||
SRM.PROJECT_NO,
|
||||
(SELECT PROJECT_NO FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NUMBER,
|
||||
(SELECT PROJECT_NAME FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NAME,
|
||||
(SELECT SETUP FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS SETUP,
|
||||
(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = (SELECT CUSTOMER_OBJID FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO)::NUMERIC) AS CUSTOMER_NAME,
|
||||
(SELECT CODE_NAME(PM.PRODUCT) FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PRODUCT_NAME,
|
||||
(SELECT MECHANICAL_TYPE FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS MECHANICAL_TYPE,
|
||||
PM.PROJECT_NO AS PROJECT_NUMBER,
|
||||
PM.PROJECT_NAME,
|
||||
PM.SETUP,
|
||||
SM.SUPPLY_NAME AS CUSTOMER_NAME,
|
||||
SM.OBJID::VARCHAR AS CUSTOMER_OBJID, -- 고객사 OBJID (드롭다운 선택용)
|
||||
PM.MECHANICAL_TYPE,
|
||||
SRM.RELEASE_DATE,
|
||||
SRM.REQUEST_REASONS,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_REASONS) AS REQUEST_REASONS_NAME,
|
||||
@@ -669,16 +687,30 @@
|
||||
END STATUS_TITLE,
|
||||
SRM.RECEIPT_USER_ID,
|
||||
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.RECEIPT_USER_ID) AS RECEIPT_USER_NAME,
|
||||
RECEIPT_DATE,
|
||||
SRM.RECEIPT_DATE,
|
||||
SRM.WRITER,
|
||||
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.WRITER) AS WRITER_NAME,
|
||||
SRM.REGDATE,
|
||||
TO_CHAR(SRM.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
||||
REMARK
|
||||
FROM
|
||||
SALES_REQUEST_MASTER SRM
|
||||
SRM.REGDATE,
|
||||
TO_CHAR(SRM.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
||||
SRM.REMARK,
|
||||
|
||||
-- 저장된 값 우선, 없으면 조인으로 가져오기
|
||||
COALESCE(NULLIF(SRM.PURCHASE_TYPE, ''), POM.TYPE) AS PURCHASE_TYPE, -- 구매유형
|
||||
COALESCE(NULLIF(SRM.ORDER_TYPE, ''), POM.ORDER_TYPE_CD) AS ORDER_TYPE, -- 주문유형
|
||||
COALESCE(NULLIF(SRM.PRODUCT_NAME, ''), PM.PRODUCT) AS PRODUCT_NAME, -- 제품구분
|
||||
COALESCE(NULLIF(SRM.AREA_CD, ''), SM.AREA_CD) AS AREA_CD, -- 국내/해외
|
||||
COALESCE(NULLIF(SRM.CUSTOMER_OBJID, ''), SM.OBJID::VARCHAR) AS CUSTOMER_OBJID, -- 고객사
|
||||
COALESCE(NULLIF(SRM.PAID_TYPE, ''), CM.PAID_TYPE) AS PAID_TYPE, -- 유/무상
|
||||
CM.CATEGORY_CD AS CATEGORY_CD -- 제품유형 코드 ID (드롭다운 선택용)
|
||||
|
||||
FROM
|
||||
SALES_REQUEST_MASTER SRM
|
||||
LEFT JOIN PROJECT_MGMT PM ON SRM.PROJECT_NO = PM.OBJID::VARCHAR
|
||||
LEFT JOIN CONTRACT_MGMT CM ON PM.CONTRACT_OBJID = CM.OBJID::VARCHAR
|
||||
LEFT JOIN SUPPLY_MNG SM ON CM.CUSTOMER_OBJID::VARCHAR = SM.OBJID::VARCHAR
|
||||
LEFT JOIN PURCHASE_ORDER_MASTER POM ON SRM.OBJID = POM.SALES_REQUEST_OBJID
|
||||
WHERE 1=1
|
||||
AND OBJID = #{SALES_REQUEST_MASTER_OBJID}
|
||||
AND SRM.OBJID = #{SALES_REQUEST_MASTER_OBJID}
|
||||
</select>
|
||||
|
||||
<!-- 구매의뢰 저장 시 저장된 파트 정보를 초기화 -->
|
||||
@@ -911,23 +943,62 @@
|
||||
</select>
|
||||
|
||||
<select id="getSalesRequestMasterGridList" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
SRM.OBJID,
|
||||
SRM.REQUEST_MNG_NO,
|
||||
SRM.REQUEST_CD,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_CD) AS REQUEST_CD_NAME,
|
||||
|
||||
-- 추가된 컬럼들
|
||||
SRM.PURCHASE_TYPE,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.PURCHASE_TYPE) AS PURCHASE_TYPE_NAME,
|
||||
SRM.ORDER_TYPE,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.ORDER_TYPE) AS ORDER_TYPE_NAME,
|
||||
SRM.PRODUCT_NAME,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.PRODUCT_NAME) AS PRODUCT_NAME_FULL,
|
||||
SRM.AREA_CD,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.AREA_CD) AS AREA_CD_NAME,
|
||||
SRM.CUSTOMER_OBJID,
|
||||
(SELECT SUPPLY_NAME FROM SUPPLY_MNG WHERE OBJID::VARCHAR = SRM.CUSTOMER_OBJID) AS CUSTOMER_NAME,
|
||||
SRM.PAID_TYPE,
|
||||
(CASE WHEN SRM.PAID_TYPE = 'paid' THEN '유상' WHEN SRM.PAID_TYPE = 'free' THEN '무상' ELSE SRM.PAID_TYPE END) AS PAID_TYPE_NAME,
|
||||
|
||||
-- 품번/품명 ("외 N건" 형태로 표시)
|
||||
(
|
||||
SELECT
|
||||
SRM.OBJID,
|
||||
SRM.REQUEST_MNG_NO,
|
||||
SRM.REQUEST_CD,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_CD) AS REQUEST_CD_NAME,
|
||||
SRM.PROJECT_NO,
|
||||
(SELECT PROJECT_NO FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NUMBER,
|
||||
(SELECT PROJECT_NAME FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NAME,
|
||||
SRM.RELEASE_DATE,
|
||||
SRM.REQUEST_REASONS,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_REASONS) AS REQUEST_REASONS_NAME,
|
||||
SRM.REQUEST_USER_ID,
|
||||
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.REQUEST_USER_ID) AS REQUEST_USER_NAME,
|
||||
SRM.DELIVERY_REQUEST_DATE,
|
||||
SRM.UNIT_NAME,
|
||||
(SELECT O.UNIT_NO || '-' || O.TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = SRM.UNIT_NAME) AS UNIT_CODE_NAME,
|
||||
SRM.STATUS,
|
||||
CASE
|
||||
WHEN COUNT(*) > 1 THEN
|
||||
(SELECT PM.PART_NO FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1)) || ' 외 ' || (COUNT(*) - 1) || '건'
|
||||
ELSE
|
||||
(SELECT PM.PART_NO FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1))
|
||||
END
|
||||
FROM SALES_REQUEST_PART
|
||||
WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID
|
||||
) AS PART_NO,
|
||||
(
|
||||
SELECT
|
||||
CASE
|
||||
WHEN COUNT(*) > 1 THEN
|
||||
(SELECT PM.PART_NAME FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1)) || ' 외 ' || (COUNT(*) - 1) || '건'
|
||||
ELSE
|
||||
(SELECT PM.PART_NAME FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1))
|
||||
END
|
||||
FROM SALES_REQUEST_PART
|
||||
WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID
|
||||
) AS PART_NAME,
|
||||
|
||||
SRM.PROJECT_NO,
|
||||
(SELECT PROJECT_NO FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NUMBER,
|
||||
(SELECT PROJECT_NAME FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NAME,
|
||||
SRM.RELEASE_DATE,
|
||||
SRM.REQUEST_REASONS,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_REASONS) AS REQUEST_REASONS_NAME,
|
||||
COALESCE(SRM.REQUEST_USER_ID, SRM.WRITER) AS REQUEST_USER_ID,
|
||||
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = COALESCE(SRM.REQUEST_USER_ID, SRM.WRITER)) AS REQUEST_USER_NAME,
|
||||
SRM.DELIVERY_REQUEST_DATE,
|
||||
SRM.UNIT_NAME,
|
||||
(SELECT O.UNIT_NO || '-' || O.TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = SRM.UNIT_NAME) AS UNIT_CODE_NAME,
|
||||
SRM.STATUS,
|
||||
CASE
|
||||
WHEN ((SELECT COUNT(1) FROM PURCHASE_ORDER_MASTER AS O WHERE O.SALES_REQUEST_OBJID IN (SRM.OBJID)) >= (SELECT COUNT(1) FROM SALES_REQUEST_PART AS SRP WHERE srp.SALES_REQUEST_master_OBJID = SRM.OBJID )) and ((SELECT COUNT(1) FROM PURCHASE_ORDER_MASTER AS O WHERE O.SALES_REQUEST_OBJID IN (SRM.OBJID)) > 0) THEN '발주완료'
|
||||
WHEN ((SELECT COUNT(1) FROM PURCHASE_ORDER_MASTER AS O WHERE O.SALES_REQUEST_OBJID IN (SRM.OBJID)) < (SELECT COUNT(1) FROM SALES_REQUEST_PART AS SRP WHERE srp.SALES_REQUEST_master_OBJID = SRM.OBJID )) and ((SELECT COUNT(1) FROM PURCHASE_ORDER_MASTER AS O WHERE O.SALES_REQUEST_OBJID IN (SRM.OBJID)) > 0) THEN '발주부분완료'
|
||||
@@ -1102,52 +1173,100 @@
|
||||
<select id="purchaseOrderAdminSupplyInfo" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
PM.OBJID
|
||||
,CODE_NAME(PM.PRODUCT) AS PRODUCT_NAME
|
||||
,PM.MECHANICAL_TYPE
|
||||
,PM.CATEGORY_CD
|
||||
,CODE_NAME(PM.CATEGORY_CD) AS CATEGORY_NAME
|
||||
,PM.CUSTOMER_OBJID
|
||||
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = PM.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME
|
||||
,PM.PROJECT_NAME
|
||||
,PM.PRODUCT
|
||||
,CODE_NAME(PM.PRODUCT) AS PRODUCT_NAME
|
||||
,PM.STATUS_CD
|
||||
,CODE_NAME(PM.STATUS_CD) AS STATUS_NAME
|
||||
,PM.DUE_DATE
|
||||
,PM.LOCATION
|
||||
,PM.SETUP
|
||||
,PM.FACILITY
|
||||
,CODE_NAME(PM.FACILITY) AS FACILITY_NAME
|
||||
,PM.FACILITY_QTY
|
||||
,PM.FACILITY_TYPE
|
||||
,PM.FACILITY_DEPTH
|
||||
,PM.PRODUCTION_NO
|
||||
,PM.BUS_CAL_CD
|
||||
,CODE_NAME(PM.BUS_CAL_CD) AS BUS_CAL_NAME
|
||||
,PM.CATEGORY1_CD
|
||||
,CODE_NAME(PM.CATEGORY1_CD) AS CATEGORY1_NAME
|
||||
,PM.CHG_USER_ID
|
||||
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = PM.CHG_USER_ID ) AS CHG_USER_NAME
|
||||
,PM.PLAN_DATE
|
||||
,PM.COMPLETE_DATE
|
||||
,PM.RESULT_CD
|
||||
,CODE_NAME(PM.RESULT_CD) AS RESULT_NAME
|
||||
,PM.PROJECT_NO
|
||||
,PM.PM_USER_ID
|
||||
,PM.CONTRACT_PRICE
|
||||
,PM.CONTRACT_PRICE_CURRENCY
|
||||
,PM.CONTRACT_CURRENCY
|
||||
,CODE_NAME(PM.CONTRACT_CURRENCY) AS CONTRACT_CURRENCY_NAME
|
||||
,TO_CHAR(PM.REGDATE,'YYYY-MM-DD') AS REG_DATE
|
||||
,PM.WRITER
|
||||
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = PM.WRITER ) AS WRITER_NAME
|
||||
,PM.CONTRACT_NO
|
||||
,PM.CUSTOMER_EQUIP_NAME
|
||||
,PM.REQ_DEL_DATE
|
||||
,PM.CONTRACT_DEL_DATE
|
||||
,PM.CONTRACT_COMPANY
|
||||
,CODE_NAME(PM.CONTRACT_COMPANY) AS CONTRACT_COMPANY_NAME
|
||||
,PM.CONTRACT_DATE
|
||||
,PM.PO_NO
|
||||
,PM.MANUFACTURE_PLANT
|
||||
,CODE_NAME(PM.MANUFACTURE_PLANT) AS MANUFACTURE_PLANT_NAME
|
||||
,PM.CONTRACT_RESULT
|
||||
,CODE_NAME(PM.CONTRACT_RESULT) AS CONTRACT_RESULT_NAME
|
||||
,PM.AREA_CD
|
||||
,CODE_NAME(PM.AREA_CD) AS AREA_NAME
|
||||
,PM.PROJECT_NAME
|
||||
,PM.MECHANICAL_TYPE
|
||||
,PM.OVERHAUL_ORDER
|
||||
,RM.RELEASE_DATE
|
||||
,CM.PAID_TYPE
|
||||
,CM.OBJID AS CONTRACT_OBJID
|
||||
FROM
|
||||
PROJECT_MGMT AS PM
|
||||
LEFT OUTER JOIN
|
||||
RELEASE_MGMT RM
|
||||
ON PM.OBJID::VARCHAR = RM.PARENT_OBJID
|
||||
AND PM.PRODUCT = RM.PRODUCT
|
||||
<!-- LEFT OUTER JOIN
|
||||
(SELECT * FROM (SELECT DENSE_RANK() OVER(PARTITION BY T.SUPPLY_OBJID ORDER BY T.CHARGER_NAME ASC) AS TOP, T.*
|
||||
FROM SUPPLY_CHARGER_MNG T WHERE CHARGER_TYPE = '0000330' /*발주서공급처담당*/
|
||||
) AS T WHERE TOP = 1
|
||||
) AS T2
|
||||
ON T1.OBJID = T2.SUPPLY_OBJID::NUMERIC -->
|
||||
LEFT OUTER JOIN
|
||||
CONTRACT_MGMT CM
|
||||
ON PM.CONTRACT_OBJID = CM.OBJID
|
||||
WHERE 1=1
|
||||
AND PM.OBJID = #{PROJECT_NO}
|
||||
</select>
|
||||
|
||||
<select id="SalesBomPartListByProjectUnit" parameterType="map" resultType="map">
|
||||
SELECT T1.PARENT_OBJID AS BOM_REPORT_OBJID
|
||||
,T1.PART_OBJID
|
||||
,T1.OBJID SALES_BOM_REPORT_PART_OBJID
|
||||
,T1.SUPPLY_OBJID
|
||||
,PM.PART_NAME
|
||||
,PM.PART_NO
|
||||
,PM.SPEC
|
||||
,PM.MAKER
|
||||
,PM.REMARK
|
||||
,PM.UNIT
|
||||
,BPQ.QTY AS ORDER_QTY
|
||||
,T1.WRITER
|
||||
FROM SALES_BOM_REPORT_PART AS T1
|
||||
,PART_BOM_REPORT AS PBR
|
||||
,BOM_PART_QTY AS BPQ
|
||||
,PART_MNG AS PM
|
||||
WHERE PBR.OBJID = BPQ.BOM_REPORT_OBJID
|
||||
AND T1.PART_OBJID = BPQ.PART_NO
|
||||
AND T1.PART_OBJID = PM.OBJID::VARCHAR
|
||||
AND PBR.CONTRACT_OBJID = #{PROJECT_OBJID}
|
||||
AND PBR.UNIT_CODE = #{UNIT_CODE}
|
||||
AND PBR.OBJID = T1.PARENT_OBJID
|
||||
ORDER BY BPQ.SEQ
|
||||
<!-- M-BOM 데이터 조회: PROJECT_MGMT.BOM_REPORT_OBJID -> BOM_PART_QTY -> PART_MNG -->
|
||||
SELECT
|
||||
BPQ.BOM_REPORT_OBJID
|
||||
,BPQ.PART_NO AS PART_OBJID
|
||||
,PM.PART_NAME
|
||||
,PM.PART_NO
|
||||
,PM.SPEC
|
||||
,PM.MAKER
|
||||
,PM.REMARK
|
||||
,PM.UNIT
|
||||
,BPQ.QTY AS ORDER_QTY
|
||||
,NULL AS SUPPLY_OBJID
|
||||
,NULL AS WRITER
|
||||
FROM
|
||||
PROJECT_MGMT AS PJT
|
||||
INNER JOIN BOM_PART_QTY AS BPQ
|
||||
ON PJT.BOM_REPORT_OBJID = BPQ.BOM_REPORT_OBJID::VARCHAR
|
||||
LEFT JOIN PART_MNG AS PM
|
||||
ON COALESCE(NULLIF(BPQ.LAST_PART_OBJID, ''), BPQ.PART_NO) = PM.OBJID::VARCHAR
|
||||
WHERE 1=1
|
||||
AND PJT.OBJID = #{PROJECT_OBJID}
|
||||
AND PJT.BOM_REPORT_OBJID IS NOT NULL
|
||||
AND PJT.BOM_REPORT_OBJID != ''
|
||||
ORDER BY BPQ.SEQ, PM.PART_NO
|
||||
</select>
|
||||
|
||||
<update id="mergeReceiptSalesRequestInfo" parameterType="map">
|
||||
|
||||
@@ -100,15 +100,16 @@ $(function(){
|
||||
//상신된 결재라인 가져오기
|
||||
fn_getApprLine();
|
||||
|
||||
fnc_getAjaxProductMgmtList("PRODUCT_CODE", "", "", "${resultMap.PRODUCT_CODE}");
|
||||
fnc_getAjaxProductMgmtList("PRODUCT_CODE", "", "", "${resultMap.PRODUCT_CODE}");
|
||||
fnc_getUserList2("SALES_MNG_USER_ID", "${resultMap.SALES_MNG_USER_ID}");
|
||||
fnc_getCodeListAppend("0000259","REQUEST_STATUS","${resultMap.REQUEST_STATUS}");
|
||||
fn_UnitCodeList("${resultMap.PROJECT_NO}", "UNIT_NAME", "${resultMap.UNIT_NAME}","");
|
||||
// 유닛 관련 주석처리
|
||||
// fn_UnitCodeList("${resultMap.PROJECT_NO}", "UNIT_NAME", "${resultMap.UNIT_NAME}","");
|
||||
|
||||
fnc_datepick();
|
||||
$(".select2").select2();
|
||||
|
||||
fn_getSalesRequestTargetPartList("${resultMap.OBJID}","${param.bom_report_objid}");
|
||||
fn_getSalesRequestTargetPartList("${resultMap.OBJID}","${param.bom_report_objid}");
|
||||
|
||||
$("#ORDER_NUMBER").change(function(){
|
||||
var orderQty = fnc_checkNull($(this).val());
|
||||
@@ -129,38 +130,63 @@ $(function(){
|
||||
|
||||
<% if(isModify){ %>
|
||||
//수정가능
|
||||
$("#REQUEST_CD,#PROJECT_NO,#CUSTOMER_NAME,#PRODUCT_NAME,#MECHANICAL_TYPE,#PROJECT_NAME,#SETUP,#RELEASE_DATE,#REQUEST_REASONS,#REQUEST_USER_ID,#DELIVERY_REQUEST_DATE,#UNIT_NAME").prop("disabled","");
|
||||
$("#REQUEST_CD,#PROJECT_NO,#CUSTOMER_NAME,#PRODUCT_NAME,#MECHANICAL_TYPE,#PROJECT_NAME,#SETUP,#RELEASE_DATE,#REQUEST_REASONS,#REQUEST_USER_ID,#DELIVERY_REQUEST_DATE,#PURCHASE_TYPE,#PURCHASE_TYPE2,#ORDER_TYPE,#AREA_CD,#CUSTOMER_OBJID,#PAID_TYPE").prop("disabled","");
|
||||
|
||||
//프로젝트명 변경시 유닛명 셋팅
|
||||
//프로젝트명 변경시 정보 셋팅 (유닛명 제거)
|
||||
$("#PROJECT_NO").change(function(){
|
||||
$("#CUSTOMER_NAME, #PRODUCT_NAME, #MECHANICAL_TYPE, #PROJECT_NAME, #SETUP, #RELEASE_DATE, #UNIT_NAME").val("");
|
||||
$("#CUSTOMER_NAME, #PRODUCT_NAME, #MECHANICAL_TYPE, #PROJECT_NAME, #SETUP, #RELEASE_DATE").val("");
|
||||
$("#partListArea").empty(); // 기존 품번 목록 초기화
|
||||
|
||||
if($(this).val()!=""){
|
||||
//프로젝트번호로 지정된 정보를 가져온다
|
||||
var list = fnc_getJsonAllDataListBySqlId({"sqlId":"salesMng.purchaseOrderAdminSupplyInfo", "PROJECT_NO":$(this).val()});
|
||||
if(fnc_checkNull( list )!=""){
|
||||
var row = list[0];
|
||||
|
||||
console.log("프로젝트 정보:", row); // 디버깅용
|
||||
|
||||
// 기존 필드 (읽기전용 텍스트)
|
||||
$("#CUSTOMER_NAME" ).val( row["CUSTOMER_NAME" ] );
|
||||
$("#PRODUCT_NAME" ).val( row["PRODUCT_NAME" ] );
|
||||
$("#MECHANICAL_TYPE" ).val( row["MECHANICAL_TYPE" ] );
|
||||
$("#PROJECT_NAME" ).val( row["PROJECT_NAME" ] );
|
||||
$("#SETUP" ).val( row["SETUP" ] );
|
||||
$("#RELEASE" ).val( row["RELEASE_DATE" ] );
|
||||
|
||||
// 프로젝트관리 진행관리 데이터 자동 채우기 (드롭다운)
|
||||
// 제품구분 (PRODUCT from PROJECT_MGMT) - 드롭다운
|
||||
if(fnc_checkNull(row["PRODUCT"]) != ""){
|
||||
$("#PRODUCT_NAME").val(row["PRODUCT"]).trigger("change");
|
||||
console.log("제품구분 설정:", row["PRODUCT"]);
|
||||
}
|
||||
|
||||
// 국내/해외 (AREA_CD from PROJECT_MGMT)
|
||||
if(fnc_checkNull(row["AREA_CD"]) != ""){
|
||||
$("#AREA_CD").val(row["AREA_CD"]).trigger("change");
|
||||
console.log("국내/해외 설정:", row["AREA_CD"]);
|
||||
}
|
||||
|
||||
// 고객사 (CUSTOMER_OBJID from PROJECT_MGMT)
|
||||
if(fnc_checkNull(row["CUSTOMER_OBJID"]) != ""){
|
||||
$("#CUSTOMER_OBJID").val(row["CUSTOMER_OBJID"]).trigger("change");
|
||||
console.log("고객사 설정:", row["CUSTOMER_OBJID"]);
|
||||
}
|
||||
|
||||
// 유/무상 (PAID_TYPE from CONTRACT_MGMT)
|
||||
if(fnc_checkNull(row["PAID_TYPE"]) != ""){
|
||||
$("#PAID_TYPE").val(row["PAID_TYPE"]).trigger("change");
|
||||
console.log("유/무상 설정:", row["PAID_TYPE"]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
fn_UnitCodeList(this.value, "UNIT_NAME", "","");
|
||||
|
||||
});
|
||||
|
||||
//프로젝트번호, 유닛명 변경시 - 구매BOM에서 등록한 PART정보를 가져온다
|
||||
$("#PROJECT_NO,#UNIT_NAME").change(function(){
|
||||
$("#partListArea").empty();
|
||||
fn_addBomPart();
|
||||
});
|
||||
|
||||
$("#REQUEST_USER_ID").val('<%=connectUserId%>');
|
||||
$(".select2").select2();
|
||||
|
||||
<% }else{ %>
|
||||
$("#REQUEST_USER_ID").val('<%=connectUserId%>');
|
||||
$(".select2").select2();
|
||||
$("#btnSupplySave").click(function(){ fn_Supply_save(); }); //공급업체저장
|
||||
<% } %>
|
||||
});
|
||||
@@ -231,38 +257,38 @@ function fn_getSalesRequestTargetPartList(masterObjId,bomObjId){
|
||||
//appendText += " <td class='align_l' value='RNUM'>";
|
||||
//appendText += " <input type='text' name='RNUM_"+rowObjId+"' value='"+RNUM+"'>";
|
||||
//appendText += " </td>";
|
||||
//appendText += " <td class='input_title'><label>품번</label></td>";
|
||||
appendText += " <td class='align_l' colspan=''>";
|
||||
if(requestStatus == 'approvalComplete' || requestStatus == 'reception'){
|
||||
appendText += " <input type='text' name='PART_NO_"+rowObjId+"' id='PART_NO_"+rowObjId+"' value='"+PART_NO+"' readonly>";
|
||||
}else{
|
||||
appendText += " <select name='PART_OBJID_"+rowObjId+"' id='PART_OBJID_"+rowObjId+"' reqTitle='품번' type='select' class='select2'>";
|
||||
appendText += " </select>";
|
||||
}
|
||||
appendText += " </td>";
|
||||
//appendText += " <td class='input_title'><label>품명</label></td>";
|
||||
appendText += " <td class='align_l' colspan=''>";
|
||||
appendText += " <input type='text' name='PART_NAME_"+rowObjId+"' value='"+PART_NAME+"' readonly>";
|
||||
appendText += " </td>";
|
||||
//appendText += " <td class='input_title'><label>품번</label></td>";
|
||||
appendText += " <td class='align_l' colspan=''>";
|
||||
if(requestStatus == 'approvalComplete' || requestStatus == 'reception'){
|
||||
appendText += " <input type='text' name='PART_NO_"+rowObjId+"' id='PART_NO_"+rowObjId+"' value='"+PART_NO+"' readonly style='width: 100%;'>";
|
||||
}else{
|
||||
appendText += " <select name='PART_OBJID_"+rowObjId+"' id='PART_OBJID_"+rowObjId+"' reqTitle='품번' type='select' class='select2' style='width: 100%;'>";
|
||||
appendText += " </select>";
|
||||
}
|
||||
appendText += " </td>";
|
||||
//appendText += " <td class='input_title'><label>품명</label></td>";
|
||||
appendText += " <td class='align_l' colspan=''>";
|
||||
appendText += " <input type='text' name='PART_NAME_"+rowObjId+"' value='"+PART_NAME+"' readonly style='width: 100%;'>";
|
||||
appendText += " </td>";
|
||||
//appendText += " <td class='align_l'>";
|
||||
//appendText += " <input type='text' name='SPEC_"+rowObjId+"' value='"+SPEC+"'>";
|
||||
//appendText += " </td>";
|
||||
//appendText += " <td class='input_title'><label>수량</label></td>";
|
||||
appendText += " <td class='align_c' type='number'>";
|
||||
appendText += " <input type='number' name='QTY_"+rowObjId+"' value='"+QTY+"' reqTitle='수량' required style='text-align: center;'>";
|
||||
appendText += " </td>";
|
||||
//appendText += " <td class='input_title'><label>공급업체</label></td>";
|
||||
appendText += " <td class='align_l'>";
|
||||
appendText += " <select name='PARTNER_OBJID_"+rowObjId+"' id='PARTNER_OBJID_"+rowObjId+"' reqTitle='공급업체' type='select' class='select2' >";
|
||||
appendText += " </select>";
|
||||
appendText += " </td>";
|
||||
//appendText += " <td class='align_l'>";
|
||||
//appendText += " <input type='date' name='DELIVERY_REQUEST_DATE_"+rowObjId+"' value='"+DELIVERY_REQUEST_DATE+"'>";
|
||||
//appendText += " </td>";
|
||||
//appendText += " <td class='align_l'>";
|
||||
//appendText += " <input type='text' name='REMARK_"+rowObjId+"' value='"+REMARK+"'>";
|
||||
//appendText += " </td>";
|
||||
appendText += " </tr>";
|
||||
//appendText += " <td class='input_title'><label>수량</label></td>";
|
||||
appendText += " <td class='align_c' type='number'>";
|
||||
appendText += " <input type='number' name='QTY_"+rowObjId+"' value='"+QTY+"' reqTitle='수량' required style='text-align: center;'>";
|
||||
appendText += " </td>";
|
||||
//appendText += " <td class='input_title'><label>공급업체</label></td>";
|
||||
//appendText += " <td class='align_l'>";
|
||||
//appendText += " <select name='PARTNER_OBJID_"+rowObjId+"' id='PARTNER_OBJID_"+rowObjId+"' reqTitle='공급업체' type='select' class='select2' >";
|
||||
//appendText += " </select>";
|
||||
//appendText += " </td>";
|
||||
//appendText += " <td class='align_l'>";
|
||||
//appendText += " <input type='date' name='DELIVERY_REQUEST_DATE_"+rowObjId+"' value='"+DELIVERY_REQUEST_DATE+"'>";
|
||||
//appendText += " </td>";
|
||||
//appendText += " <td class='align_l'>";
|
||||
//appendText += " <input type='text' name='REMARK_"+rowObjId+"' value='"+REMARK+"'>";
|
||||
//appendText += " </td>";
|
||||
appendText += " </tr>";
|
||||
|
||||
|
||||
//fnc_getSupplyCodeListAppend("PARTNER_OBJID_"+rowObjId, PARTNER_OBJID);
|
||||
@@ -270,15 +296,16 @@ function fn_getSalesRequestTargetPartList(masterObjId,bomObjId){
|
||||
});
|
||||
$("#partListArea").append(appendText);
|
||||
|
||||
$.each(resultData, function(i){
|
||||
var rowObjId = fnc_checkNull(resultData[i].OBJID);
|
||||
var PART_OBJID = fnc_checkNull(resultData[i].PART_OBJID);
|
||||
var PARTNER_OBJID = fnc_checkNull(resultData[i].PARTNER_OBJID);
|
||||
fnc_getAdminSupCdListAppend("", "PARTNER_OBJID_"+rowObjId, PARTNER_OBJID);
|
||||
$("#PARTNER_OBJID_"+rowObjId).val(PARTNER_OBJID);
|
||||
fn_addBomPart("PART_OBJID_"+rowObjId, PART_OBJID, "PART_NAME_"+rowObjId,"");
|
||||
});
|
||||
$(".select2").select2();
|
||||
$.each(resultData, function(i){
|
||||
var rowObjId = fnc_checkNull(resultData[i].OBJID);
|
||||
var PART_OBJID = fnc_checkNull(resultData[i].PART_OBJID);
|
||||
// 공급업체 제거로 주석처리
|
||||
// var PARTNER_OBJID = fnc_checkNull(resultData[i].PARTNER_OBJID);
|
||||
// fnc_getAdminSupCdListAppend("", "PARTNER_OBJID_"+rowObjId, PARTNER_OBJID);
|
||||
// $("#PARTNER_OBJID_"+rowObjId).val(PARTNER_OBJID);
|
||||
fn_addBomPart("PART_OBJID_"+rowObjId, PART_OBJID, "PART_NAME_"+rowObjId,"");
|
||||
});
|
||||
$(".select2").select2();
|
||||
},
|
||||
error: function(jqxhr, status, error){
|
||||
}
|
||||
@@ -292,10 +319,11 @@ function fn_getSalesRequestTargetPartList(masterObjId,bomObjId){
|
||||
|
||||
/* 물품구매요청서 Row 추가 */
|
||||
function fn_AddRow(){
|
||||
if($("#UNIT_NAME").val() == '' || $("#UNIT_NAME").val() == null){
|
||||
Swal.fire("유닛명을 먼저 선택해주세요");
|
||||
return false;
|
||||
}
|
||||
// 유닛명 체크 제거 - 필수 아님
|
||||
// if($("#UNIT_NAME").val() == '' || $("#UNIT_NAME").val() == null){
|
||||
// Swal.fire("유닛명을 먼저 선택해주세요");
|
||||
// return false;
|
||||
// }
|
||||
var rowObjId = fnc_createObjId();
|
||||
|
||||
var appendText = "";
|
||||
@@ -310,12 +338,12 @@ function fn_AddRow(){
|
||||
//appendText += " </td>";
|
||||
//appendText += " <td class='input_title'><label>품번</label></td>";
|
||||
appendText += " <td class='align_l' value='PART_OBJID' title='PART_OBJID' colspan=''>";
|
||||
appendText += " <select name='PART_OBJID_"+rowObjId+"' id='PART_OBJID_"+rowObjId+"' reqTitle='품번' type='select' class='select2'>";
|
||||
appendText += " <select name='PART_OBJID_"+rowObjId+"' id='PART_OBJID_"+rowObjId+"' reqTitle='품번' type='select' class='select2' style='width: 100%;'>";
|
||||
appendText += " </select>";
|
||||
appendText += " </td>";
|
||||
//appendText += " <td class='input_title'><label>품명</label></td>";
|
||||
appendText += " <td class='align_l' value='PART_NAME' title='PART_NAME' colspan='' readonly>";
|
||||
appendText += " <input type='text' name='PART_NAME_"+rowObjId+"' id='PART_NAME_"+rowObjId+"'>";
|
||||
appendText += " <td class='align_l' value='PART_NAME' title='PART_NAME' colspan=''>";
|
||||
appendText += " <input type='text' name='PART_NAME_"+rowObjId+"' id='PART_NAME_"+rowObjId+"' readonly style='width: 100%;'>";
|
||||
appendText += " </td>";
|
||||
//appendText += " <td class='align_l' value='SPEC' title='UNIT_TITLE'>";
|
||||
//appendText += " <input type='text' name='SPEC_"+rowObjId+"'>";
|
||||
@@ -325,10 +353,10 @@ function fn_AddRow(){
|
||||
appendText += " <input type='number' name='QTY_"+rowObjId+"' reqTitle='수량' required style='text-align: center;'>";
|
||||
appendText += " </td>";
|
||||
//appendText += " <td class='input_title'><label>공급업체</label></td>";
|
||||
appendText += " <td class='align_l' value='PARTNER_OBJID'>";
|
||||
appendText += " <select name='PARTNER_OBJID_"+rowObjId+"' id='PARTNER_OBJID_"+rowObjId+"' reqTitle='공급업체' type='select' class='select2'>";
|
||||
appendText += " </select>";
|
||||
appendText += " </td>";
|
||||
//appendText += " <td class='align_l' value='PARTNER_OBJID'>";
|
||||
//appendText += " <select name='PARTNER_OBJID_"+rowObjId+"' id='PARTNER_OBJID_"+rowObjId+"' reqTitle='공급업체' type='select' class='select2'>";
|
||||
//appendText += " </select>";
|
||||
//appendText += " </td>";
|
||||
//appendText += " <td class='align_l' value='DELIVERY_REQUEST_DATE'>";
|
||||
//appendText += " <input type='date' name='DELIVERY_REQUEST_DATE_"+rowObjId+"'>";
|
||||
//appendText += " </td>";
|
||||
@@ -337,15 +365,16 @@ function fn_AddRow(){
|
||||
//appendText += " </td>";
|
||||
appendText += " </tr>";
|
||||
|
||||
if(0 < $("#partListArea tr:first").lenght || typeof $("#partListArea tr:first").lenght != "undefined") {
|
||||
$("#partListArea tr:first").before(appendText);
|
||||
}else{
|
||||
$("#partListArea").append(appendText);
|
||||
}
|
||||
fnc_getAdminSupCdListAppend("", "PARTNER_OBJID_"+rowObjId, "");
|
||||
fn_addBomPart("PART_OBJID_"+rowObjId, "", "PART_NAME_"+rowObjId, "PARTNER_OBJID_"+rowObjId);
|
||||
fnc_datepick();
|
||||
$(".select2").select2();
|
||||
if(0 < $("#partListArea tr:first").lenght || typeof $("#partListArea tr:first").lenght != "undefined") {
|
||||
$("#partListArea tr:first").before(appendText);
|
||||
}else{
|
||||
$("#partListArea").append(appendText);
|
||||
}
|
||||
// 공급업체 제거로 주석처리
|
||||
// fnc_getAdminSupCdListAppend("", "PARTNER_OBJID_"+rowObjId, "");
|
||||
fn_addBomPart("PART_OBJID_"+rowObjId, "", "PART_NAME_"+rowObjId, "");
|
||||
fnc_datepick();
|
||||
$(".select2").select2();
|
||||
}
|
||||
|
||||
/* Row 삭제 */
|
||||
@@ -451,14 +480,17 @@ function fn_addBomPart(selectboxId,selectedVal,sql_id,sql_supply){
|
||||
|
||||
//console.log('type:'+type + ' contract_mgmt_objid:'+contract_mgmt_objid + ' unit_code:'+unit_code + ' partner_objid:'+partner_objid);
|
||||
|
||||
//프로젝트명, 유닛명이 선택되어있으면
|
||||
if(fnc_checkNull(project_objid)!="" && fnc_checkNull(unit_code)!=""){
|
||||
//프로젝트번호만 있으면 품번 조회 가능 (유닛명은 선택사항)
|
||||
if(fnc_checkNull(project_objid)!=""){
|
||||
$("#"+selectboxId).empty();
|
||||
$("#"+selectboxId).append("<option value=''>선택</option>");
|
||||
//구매BOM 조회해서 부품정보를 가져온다
|
||||
var resultList = fnc_getJsonAllDataListBySqlId({"sqlId":"salesMng.SalesBomPartListByProjectUnit"
|
||||
, "PROJECT_OBJID":project_objid
|
||||
, "UNIT_CODE":unit_code });
|
||||
var paramData = {"sqlId":"salesMng.SalesBomPartListByProjectUnit", "PROJECT_OBJID":project_objid};
|
||||
// 유닛명이 있으면 추가
|
||||
if(fnc_checkNull(unit_code)!=""){
|
||||
paramData.UNIT_CODE = unit_code;
|
||||
}
|
||||
var resultList = fnc_getJsonAllDataListBySqlId(paramData);
|
||||
if(0 < resultList.length){
|
||||
for (var i = 0; i < resultList.length; i++) {
|
||||
var commonCodeId = resultList[i].PART_OBJID;
|
||||
@@ -514,78 +546,79 @@ function fn_callbackFnc(){
|
||||
<col width="15%">
|
||||
</colgroup>
|
||||
|
||||
<tr>
|
||||
<td class="input_title"><label for="">구매유형</label></td>
|
||||
<td>
|
||||
<select name="PURCHASE_TYPE" id="PURCHASE_TYPE" reqTitle="구매유형" type="select" class="select2" disabled>
|
||||
<option value="">선택</option> ${code_map.purchase_type}
|
||||
</select>
|
||||
</td>
|
||||
<td class="input_title"><label for="">프로젝트번호</label></td>
|
||||
<td>
|
||||
<select name="PROJECT_NO" id="PROJECT_NO" reqTitle="프로젝트번호" type="select" class="select2" disabled>
|
||||
<option value="">선택</option> ${code_map.project_no}
|
||||
</select>
|
||||
</td>
|
||||
<td class="input_title"><label for="">구매유형</label></td>
|
||||
<td>
|
||||
<select name="PURCHASE_TYPE2" id="PURCHASE_TYPE2" reqTitle="구매유형" type="select" class="select2" disabled>
|
||||
<option value="">선택</option> ${code_map.purchase_type}
|
||||
</select>
|
||||
</td>
|
||||
<td class="input_title"><label for="">주문유형</label></td>
|
||||
<td>
|
||||
<select name="ORDER_TYPE" id="ORDER_TYPE" reqTitle="주문유형" type="select" class="select2" disabled>
|
||||
<option value="">선택</option> ${code_map.order_type}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="input_title"><label for="">제품구분</label></td>
|
||||
<td>
|
||||
<select name="PRODUCT_NAME" id="PRODUCT_NAME" reqTitle="제품구분" type="select" class="select2" disabled>
|
||||
<option value="">선택</option> ${code_map.product_name}
|
||||
</select>
|
||||
</td>
|
||||
<td class="input_title"><label for="">국내/해외</label></td>
|
||||
<td>
|
||||
<select name="AREA_CD" id="AREA_CD" reqTitle="국내/해외" type="select" class="select2" disabled>
|
||||
<option value="">선택</option> ${code_map.area_cd}
|
||||
</select>
|
||||
</td>
|
||||
<td class="input_title"><label for="">고객사</label></td>
|
||||
<td>
|
||||
<!-- <input type="text" name="CUSTOMER_NAME" id="CUSTOMER_NAME" value="${resultMap.CUSTOMER_NAME}" readonly> -->
|
||||
<select name="CUSTOMER_OBJID" id="CUSTOMER_OBJID" reqTitle="고객사" type="select" class="select2" disabled>
|
||||
<option value="">선택</option> ${code_map.area_cd}
|
||||
</select>
|
||||
</td>
|
||||
<td class="input_title"><label for="">유/무상</label></td>
|
||||
<td>
|
||||
<select name="PAYMENT_TYPE" id="PAYMENT_TYPE" reqTitle="유/무상" type="select" class="select2" disabled>
|
||||
<option value="">선택</option> ${code_map.payment_type}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="input_title"><label for="">입고요청일</label></td>
|
||||
<td colspan="7">
|
||||
<input type="text" class="date_icon" name="DELIVERY_REQUEST_DATE" id="DELIVERY_REQUEST_DATE" reqTitle="입고요청일" value="${resultMap.DELIVERY_REQUEST_DATE}" required disabled>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="input_title"><label for="">구매유형</label></td>
|
||||
<td>
|
||||
<select name="PURCHASE_TYPE" id="PURCHASE_TYPE" reqTitle="구매유형" type="select" class="select2" style="width: 100%;">
|
||||
<option value="">선택</option> ${code_map.purchase_type}
|
||||
</select>
|
||||
</td>
|
||||
<td class="input_title"><label for="">프로젝트번호</label></td>
|
||||
<td>
|
||||
<select name="PROJECT_NO" id="PROJECT_NO" reqTitle="프로젝트번호" type="select" class="select2" style="width: 100%;">
|
||||
<option value="">선택</option> ${code_map.project_no}
|
||||
</select>
|
||||
</td>
|
||||
<td class="input_title"><label for="">구매유형</label></td>
|
||||
<td>
|
||||
<select name="PURCHASE_TYPE2" id="PURCHASE_TYPE2" reqTitle="구매유형" type="select" class="select2" style="width: 100%;">
|
||||
<option value="">선택</option> ${code_map.purchase_type}
|
||||
</select>
|
||||
</td>
|
||||
<td class="input_title"><label for="">주문유형</label></td>
|
||||
<td>
|
||||
<select name="ORDER_TYPE" id="ORDER_TYPE" reqTitle="주문유형" type="select" class="select2" style="width: 100%;">
|
||||
<option value="">선택</option> ${code_map.order_type}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="input_title"><label for="">제품구분</label></td>
|
||||
<td>
|
||||
<select name="PRODUCT_NAME" id="PRODUCT_NAME" reqTitle="제품구분" type="select" class="select2" style="width: 100%;">
|
||||
<option value="">선택</option> ${code_map.product_name}
|
||||
</select>
|
||||
</td>
|
||||
<td class="input_title"><label for="">국내/해외</label></td>
|
||||
<td>
|
||||
<select name="AREA_CD" id="AREA_CD" reqTitle="국내/해외" type="select" class="select2" style="width: 100%;">
|
||||
<option value="">선택</option> ${code_map.area_cd}
|
||||
</select>
|
||||
</td>
|
||||
<td class="input_title"><label for="">고객사</label></td>
|
||||
<td>
|
||||
<!-- <input type="text" name="CUSTOMER_NAME" id="CUSTOMER_NAME" value="${resultMap.CUSTOMER_NAME}" readonly> -->
|
||||
<select name="CUSTOMER_OBJID" id="CUSTOMER_OBJID" reqTitle="고객사" type="select" class="select2" style="width: 100%;">
|
||||
<option value="">선택</option> ${code_map.customer_objid}
|
||||
</select>
|
||||
</td>
|
||||
<td class="input_title"><label for="">유/무상</label></td>
|
||||
<td>
|
||||
<select name="PAID_TYPE" id="PAID_TYPE" reqTitle="유/무상" type="select" class="select2" style="width: 100%;">
|
||||
<option value="">선택</option> ${code_map.paid_type}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="input_title"><label for="">입고요청일</label></td>
|
||||
<td colspan="7">
|
||||
<input type="text" class="date_icon" name="DELIVERY_REQUEST_DATE" id="DELIVERY_REQUEST_DATE" reqTitle="입고요청일" value="${resultMap.DELIVERY_REQUEST_DATE}" required disabled>
|
||||
<input type="hidden" name="REQUEST_USER_ID" id="REQUEST_USER_ID" value="${resultMap.REQUEST_USER_ID}">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="btn_wrap">
|
||||
<% if(isModify){ %>
|
||||
<div class="plm_btn_wrap" style="padding:0 8 0 8; text-align: right;">
|
||||
<input type="button" value="행추가" class="plm_btns" id="btnAddRow" name="btnAddRow" style="background:#dfeffc">
|
||||
<input type="button" value="행삭제" class="plm_btns" id="btnDeleteRow" name="btnDeleteRow" style="background:#dfeffc">
|
||||
<input type="button" value="저장" class="plm_btns" id="btnReg" style="background:#dfeffc">
|
||||
<input type="button" value="행추가" class="plm_btns" id="btnAddRow" name="btnAddRow" style="background:#4A90E2; color:white; font-weight:bold;">
|
||||
<input type="button" value="행삭제" class="plm_btns" id="btnDeleteRow" name="btnDeleteRow" style="background:#E74C3C; color:white; font-weight:bold;">
|
||||
<input type="button" value="저장" class="plm_btns" id="btnReg" style="background:#27AE60; color:white; font-weight:bold;">
|
||||
<% }else{ %>
|
||||
<!-- <input type="button" value="공급업체저장" class="plm_btns" id="btnSupplySave" style="background:#dfeffc"> -->
|
||||
<!-- <input type="button" value="공급업체저장" class="plm_btns" id="btnSupplySave" style="background:#27AE60; color:white; font-weight:bold;"> -->
|
||||
<% } %>
|
||||
<input type="button" value="닫기" class="plm_btns" style="background:#dfeffc" onclick="window.close();" >
|
||||
<input type="button" value="닫기" class="plm_btns" style="background:#95A5A6; color:white; font-weight:bold;" onclick="window.close();" >
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -606,7 +639,6 @@ function fn_callbackFnc(){
|
||||
<col width="200px">
|
||||
<col width="200px">
|
||||
<col width="285px">
|
||||
<!-- <col width="200px"> -->
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr class="plm_thead">
|
||||
@@ -614,7 +646,6 @@ function fn_callbackFnc(){
|
||||
<td>품번</td>
|
||||
<td>품명</td>
|
||||
<td>수량</td>
|
||||
<!-- <td>공급업체</td> -->
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
@@ -626,7 +657,6 @@ function fn_callbackFnc(){
|
||||
<col width="200px">
|
||||
<col width="200px">
|
||||
<col width="285px">
|
||||
<!-- <col width="200px"> -->
|
||||
</colgroup>
|
||||
<tbody id="partListArea">
|
||||
</tbody>
|
||||
|
||||
@@ -207,34 +207,33 @@ var columns = [
|
||||
{title:'APPROVAL_OBJID' , field:'APPROVAL_OBJID' ,visible:false},
|
||||
{title:'ROUTE_OBJID' , field:'ROUTE_OBJID' ,visible:false}
|
||||
|
||||
,{headerHozAlign : 'center', hozAlign : 'center', title : "요청번호", field :"REQUEST_MNG_NO" , width:110,
|
||||
formatter: fnc_createGridAnchorTag,
|
||||
cellClick : function(e, cell) {
|
||||
fn_openSalesRequestPopUp(cell.getData().OBJID);
|
||||
}
|
||||
}
|
||||
,{headerHozAlign : 'center', hozAlign : 'center', title : "요청구분", field :"REQUEST_CD_NAME" , width:80 }
|
||||
,{headerHozAlign : 'center', hozAlign : 'left' , title : "프로젝트번호", field :"PROJECT_NUMBER" , width:100 }
|
||||
,{headerHozAlign : 'center', hozAlign : 'left' , title : "프로젝트명", field :"PROJECT_NAME" , width:150}
|
||||
,{headerHozAlign : 'center', hozAlign : 'left' , title : "유닛명", field :"UNIT_CODE_NAME" , width:180 }
|
||||
,{headerHozAlign : 'center', hozAlign : 'center', title : "구매요청품 수", field :"ITEMS_QTY" , width:110 }
|
||||
,{headerHozAlign : 'center', hozAlign : 'center', title : "총 수량", field :"TOTAL_QTY" , width:100}
|
||||
,{headerHozAlign : 'center', hozAlign : 'left' , title : "요청사유", field :"REQUEST_REASONS_NAME" , width:100 }
|
||||
,{headerHozAlign : 'center', hozAlign : 'center', title : "요청인", field :"REQUEST_USER_NAME" , width:110 }
|
||||
,{headerHozAlign : 'center', hozAlign : 'center', title : "입고요청일", field :"DELIVERY_REQUEST_DATE" , width:100 }
|
||||
|
||||
,{headerHozAlign : 'center', hozAlign : 'center', title : "상태", field :"STATUS_TITLE" , width:90,
|
||||
formatter: fnc_createGridApprovalAnchorTag,
|
||||
cellClick:function(e, cell){
|
||||
var targetStatus = fnc_checkNull(cell.getData().STATUS);
|
||||
if("approvalComplete" == targetStatus || "approvalRequest" == targetStatus){
|
||||
fn_approvalDetail(cell.getData().APPROVAL_OBJID, cell.getData().ROUTE_OBJID);
|
||||
}
|
||||
}
|
||||
}
|
||||
,{headerHozAlign : 'center', hozAlign : 'center', title : "접수자", field :"RECEIPT_USER_NAME" , width:110 }
|
||||
,{headerHozAlign : 'center', hozAlign : 'center', title : "접수일", field :"RECEIPT_DATE" , width:90 }
|
||||
,{headerHozAlign : 'center', hozAlign : 'left' , title : "발주서NO", field :"PURCHASE_ORDER_NO_ARR" /* , width:150 */ }
|
||||
,{headerHozAlign : 'center', hozAlign : 'center', title : "요청번호", field :"REQUEST_MNG_NO" , widthGrow:1.3,
|
||||
formatter: fnc_createGridAnchorTag,
|
||||
cellClick : function(e, cell) {
|
||||
fn_openSalesRequestPopUp(cell.getData().OBJID);
|
||||
}
|
||||
}
|
||||
,{headerHozAlign : 'center', hozAlign : 'center', title : "구매유형", field :"PURCHASE_TYPE_NAME" , widthGrow:1.1 }
|
||||
,{headerHozAlign : 'center', hozAlign : 'left' , title : "프로젝트번호", field :"PROJECT_NUMBER" , widthGrow:1.4 }
|
||||
,{headerHozAlign : 'center', hozAlign : 'center', title : "주문유형", field :"ORDER_TYPE_NAME" , widthGrow:1.1 }
|
||||
,{headerHozAlign : 'center', hozAlign : 'center', title : "제품구분", field :"PRODUCT_NAME_FULL" , widthGrow:1.1}
|
||||
,{headerHozAlign : 'center', hozAlign : 'left' , title : "고객사", field :"CUSTOMER_NAME" , widthGrow:1.5 }
|
||||
,{headerHozAlign : 'center', hozAlign : 'center', title : "유/무상", field :"PAID_TYPE_NAME" , widthGrow:0.9 }
|
||||
,{headerHozAlign : 'center', hozAlign : 'left', title : "품번", field :"PART_NO" , widthGrow:1.4}
|
||||
,{headerHozAlign : 'center', hozAlign : 'left' , title : "품명", field :"PART_NAME" , widthGrow:1.8 }
|
||||
,{headerHozAlign : 'center', hozAlign : 'center', title : "구매요청서", field :"REQUEST_MNG_NO" , widthGrow:1.1,
|
||||
formatter: function(cell, formatterParams, onRendered){
|
||||
var objid = fnc_checkNull(cell.getData().OBJID);
|
||||
var iconClass = (objid != '' && objid != null) ? 'file_icon' : 'file_empty_icon';
|
||||
return '<a href="#" class="File ' + iconClass + '" style="width:20px; height:20px; display:inline-block;"></a>';
|
||||
},
|
||||
cellClick : function(e, cell) {
|
||||
fn_openSalesRequestPopUp(cell.getData().OBJID);
|
||||
}
|
||||
}
|
||||
,{headerHozAlign : 'center', hozAlign : 'center', title : "요청인", field :"REQUEST_USER_NAME" , widthGrow:1.1 }
|
||||
,{headerHozAlign : 'center', hozAlign : 'center', title : "입고요청일", field :"DELIVERY_REQUEST_DATE" , widthGrow:1.1 }
|
||||
,{headerHozAlign : 'center', hozAlign : 'center', title : "작성일", field :"REGDATE_TITLE" , widthGrow:1.1 }
|
||||
];
|
||||
|
||||
//var grid;
|
||||
|
||||
11
database/add_sales_request_master_columns.sql
Normal file
11
database/add_sales_request_master_columns.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
-- SALES_REQUEST_MASTER 테이블에 구매유형, 주문유형 컬럼 추가
|
||||
-- 이 컬럼들이 없으면 저장이 불가능합니다!
|
||||
|
||||
ALTER TABLE SALES_REQUEST_MASTER
|
||||
ADD COLUMN IF NOT EXISTS PURCHASE_TYPE VARCHAR(50), -- 구매유형
|
||||
ADD COLUMN IF NOT EXISTS ORDER_TYPE VARCHAR(50); -- 주문유형
|
||||
|
||||
-- 컬럼 설명
|
||||
COMMENT ON COLUMN SALES_REQUEST_MASTER.PURCHASE_TYPE IS '구매유형';
|
||||
COMMENT ON COLUMN SALES_REQUEST_MASTER.ORDER_TYPE IS '주문유형';
|
||||
|
||||
@@ -585,55 +585,73 @@
|
||||
</select>
|
||||
|
||||
<update id="mergeSalesRequestMasterInfo" parameterType="map">
|
||||
INSERT INTO SALES_REQUEST_MASTER
|
||||
(
|
||||
OBJID,
|
||||
REQUEST_MNG_NO,
|
||||
REQUEST_CD,
|
||||
PROJECT_NO,
|
||||
RELEASE_DATE,
|
||||
REQUEST_REASONS,
|
||||
REQUEST_USER_ID,
|
||||
DELIVERY_REQUEST_DATE,
|
||||
UNIT_NAME,
|
||||
STATUS,
|
||||
RECEIPT_USER_ID,
|
||||
RECEIPT_DATE,
|
||||
WRITER,
|
||||
REMARK,
|
||||
REGDATE
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{SALES_REQUEST_MASTER_OBJID },
|
||||
(SELECT 'R'||TO_CHAR(NOW(),'YYYYMMDD')||'-'||LPAD((COALESCE(MAX(SUBSTR(REQUEST_MNG_NO,11,13)),'0')::INTEGER+1)::TEXT,3,'0') FROM SALES_REQUEST_MASTER),
|
||||
#{REQUEST_CD },
|
||||
#{PROJECT_NO },
|
||||
#{RELEASE },
|
||||
#{REQUEST_REASONS },
|
||||
#{REQUEST_USER_ID },
|
||||
#{DELIVERY_REQUEST_DATE },
|
||||
#{UNIT_NAME },
|
||||
#{STATUS },
|
||||
#{RECEIPT_USER_ID },
|
||||
#{RECEIPT_DATE },
|
||||
#{WRITER },
|
||||
#{REMARK },
|
||||
NOW()
|
||||
) ON CONFLICT (OBJID) DO
|
||||
UPDATE
|
||||
SET
|
||||
REQUEST_CD = #{REQUEST_CD },
|
||||
PROJECT_NO = #{PROJECT_NO },
|
||||
RELEASE_DATE = #{RELEASE },
|
||||
REQUEST_REASONS = #{REQUEST_REASONS },
|
||||
REQUEST_USER_ID = #{REQUEST_USER_ID },
|
||||
DELIVERY_REQUEST_DATE = #{DELIVERY_REQUEST_DATE },
|
||||
UNIT_NAME = #{UNIT_NAME },
|
||||
STATUS = #{STATUS },
|
||||
RECEIPT_USER_ID = #{RECEIPT_USER_ID },
|
||||
RECEIPT_DATE = #{RECEIPT_DATE },
|
||||
REMARK = #{REMARK }
|
||||
INSERT INTO SALES_REQUEST_MASTER
|
||||
(
|
||||
OBJID,
|
||||
REQUEST_MNG_NO,
|
||||
REQUEST_CD,
|
||||
PROJECT_NO,
|
||||
RELEASE_DATE,
|
||||
REQUEST_REASONS,
|
||||
REQUEST_USER_ID,
|
||||
DELIVERY_REQUEST_DATE,
|
||||
UNIT_NAME,
|
||||
STATUS,
|
||||
RECEIPT_USER_ID,
|
||||
RECEIPT_DATE,
|
||||
WRITER,
|
||||
REMARK,
|
||||
REGDATE,
|
||||
PURCHASE_TYPE,
|
||||
ORDER_TYPE,
|
||||
PRODUCT_NAME,
|
||||
AREA_CD,
|
||||
CUSTOMER_OBJID,
|
||||
PAID_TYPE
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{SALES_REQUEST_MASTER_OBJID },
|
||||
(SELECT 'R'||TO_CHAR(NOW(),'YYYYMMDD')||'-'||LPAD((COALESCE(MAX(SUBSTR(REQUEST_MNG_NO,11,13)),'0')::INTEGER+1)::TEXT,3,'0') FROM SALES_REQUEST_MASTER),
|
||||
#{REQUEST_CD },
|
||||
#{PROJECT_NO },
|
||||
#{RELEASE },
|
||||
#{REQUEST_REASONS },
|
||||
#{REQUEST_USER_ID },
|
||||
#{DELIVERY_REQUEST_DATE },
|
||||
#{UNIT_NAME },
|
||||
#{STATUS },
|
||||
#{RECEIPT_USER_ID },
|
||||
#{RECEIPT_DATE },
|
||||
#{WRITER },
|
||||
#{REMARK },
|
||||
NOW(),
|
||||
#{PURCHASE_TYPE },
|
||||
#{ORDER_TYPE },
|
||||
#{PRODUCT_NAME },
|
||||
#{AREA_CD },
|
||||
#{CUSTOMER_OBJID },
|
||||
#{PAID_TYPE }
|
||||
) ON CONFLICT (OBJID) DO
|
||||
UPDATE
|
||||
SET
|
||||
REQUEST_CD = #{REQUEST_CD },
|
||||
PROJECT_NO = #{PROJECT_NO },
|
||||
RELEASE_DATE = #{RELEASE },
|
||||
REQUEST_REASONS = #{REQUEST_REASONS },
|
||||
REQUEST_USER_ID = #{REQUEST_USER_ID },
|
||||
DELIVERY_REQUEST_DATE = #{DELIVERY_REQUEST_DATE },
|
||||
UNIT_NAME = #{UNIT_NAME },
|
||||
STATUS = #{STATUS },
|
||||
RECEIPT_USER_ID = #{RECEIPT_USER_ID },
|
||||
RECEIPT_DATE = #{RECEIPT_DATE },
|
||||
REMARK = #{REMARK },
|
||||
PURCHASE_TYPE = #{PURCHASE_TYPE },
|
||||
ORDER_TYPE = #{ORDER_TYPE },
|
||||
PRODUCT_NAME = #{PRODUCT_NAME },
|
||||
AREA_CD = #{AREA_CD },
|
||||
CUSTOMER_OBJID = #{CUSTOMER_OBJID },
|
||||
PAID_TYPE = #{PAID_TYPE }
|
||||
</update>
|
||||
|
||||
<select id="getSalesRequestMasterInfo" parameterType="map" resultType="map">
|
||||
@@ -643,12 +661,12 @@
|
||||
SRM.REQUEST_CD,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_CD) AS REQUEST_CD_NAME,
|
||||
SRM.PROJECT_NO,
|
||||
(SELECT PROJECT_NO FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NUMBER,
|
||||
(SELECT PROJECT_NAME FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NAME,
|
||||
(SELECT SETUP FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS SETUP,
|
||||
(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = (SELECT CUSTOMER_OBJID FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO)::NUMERIC) AS CUSTOMER_NAME,
|
||||
(SELECT CODE_NAME(PM.PRODUCT) FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PRODUCT_NAME,
|
||||
(SELECT MECHANICAL_TYPE FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS MECHANICAL_TYPE,
|
||||
PM.PROJECT_NO AS PROJECT_NUMBER,
|
||||
PM.PROJECT_NAME,
|
||||
PM.SETUP,
|
||||
SM.SUPPLY_NAME AS CUSTOMER_NAME,
|
||||
SM.OBJID::VARCHAR AS CUSTOMER_OBJID, -- 고객사 OBJID (드롭다운 선택용)
|
||||
PM.MECHANICAL_TYPE,
|
||||
SRM.RELEASE_DATE,
|
||||
SRM.REQUEST_REASONS,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_REASONS) AS REQUEST_REASONS_NAME,
|
||||
@@ -669,16 +687,30 @@
|
||||
END STATUS_TITLE,
|
||||
SRM.RECEIPT_USER_ID,
|
||||
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.RECEIPT_USER_ID) AS RECEIPT_USER_NAME,
|
||||
RECEIPT_DATE,
|
||||
SRM.RECEIPT_DATE,
|
||||
SRM.WRITER,
|
||||
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.WRITER) AS WRITER_NAME,
|
||||
SRM.REGDATE,
|
||||
TO_CHAR(SRM.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
||||
REMARK
|
||||
FROM
|
||||
SALES_REQUEST_MASTER SRM
|
||||
SRM.REGDATE,
|
||||
TO_CHAR(SRM.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
||||
SRM.REMARK,
|
||||
|
||||
-- 저장된 값 우선, 없으면 조인으로 가져오기
|
||||
COALESCE(NULLIF(SRM.PURCHASE_TYPE, ''), POM.TYPE) AS PURCHASE_TYPE, -- 구매유형
|
||||
COALESCE(NULLIF(SRM.ORDER_TYPE, ''), POM.ORDER_TYPE_CD) AS ORDER_TYPE, -- 주문유형
|
||||
COALESCE(NULLIF(SRM.PRODUCT_NAME, ''), PM.PRODUCT) AS PRODUCT_NAME, -- 제품구분
|
||||
COALESCE(NULLIF(SRM.AREA_CD, ''), SM.AREA_CD) AS AREA_CD, -- 국내/해외
|
||||
COALESCE(NULLIF(SRM.CUSTOMER_OBJID, ''), SM.OBJID::VARCHAR) AS CUSTOMER_OBJID, -- 고객사
|
||||
COALESCE(NULLIF(SRM.PAID_TYPE, ''), CM.PAID_TYPE) AS PAID_TYPE, -- 유/무상
|
||||
CM.CATEGORY_CD AS CATEGORY_CD -- 제품유형 코드 ID (드롭다운 선택용)
|
||||
|
||||
FROM
|
||||
SALES_REQUEST_MASTER SRM
|
||||
LEFT JOIN PROJECT_MGMT PM ON SRM.PROJECT_NO = PM.OBJID::VARCHAR
|
||||
LEFT JOIN CONTRACT_MGMT CM ON PM.CONTRACT_OBJID = CM.OBJID::VARCHAR
|
||||
LEFT JOIN SUPPLY_MNG SM ON CM.CUSTOMER_OBJID::VARCHAR = SM.OBJID::VARCHAR
|
||||
LEFT JOIN PURCHASE_ORDER_MASTER POM ON SRM.OBJID = POM.SALES_REQUEST_OBJID
|
||||
WHERE 1=1
|
||||
AND OBJID = #{SALES_REQUEST_MASTER_OBJID}
|
||||
AND SRM.OBJID = #{SALES_REQUEST_MASTER_OBJID}
|
||||
</select>
|
||||
|
||||
<!-- 구매의뢰 저장 시 저장된 파트 정보를 초기화 -->
|
||||
@@ -911,23 +943,62 @@
|
||||
</select>
|
||||
|
||||
<select id="getSalesRequestMasterGridList" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
SRM.OBJID,
|
||||
SRM.REQUEST_MNG_NO,
|
||||
SRM.REQUEST_CD,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_CD) AS REQUEST_CD_NAME,
|
||||
|
||||
-- 추가된 컬럼들
|
||||
SRM.PURCHASE_TYPE,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.PURCHASE_TYPE) AS PURCHASE_TYPE_NAME,
|
||||
SRM.ORDER_TYPE,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.ORDER_TYPE) AS ORDER_TYPE_NAME,
|
||||
SRM.PRODUCT_NAME,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.PRODUCT_NAME) AS PRODUCT_NAME_FULL,
|
||||
SRM.AREA_CD,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.AREA_CD) AS AREA_CD_NAME,
|
||||
SRM.CUSTOMER_OBJID,
|
||||
(SELECT SUPPLY_NAME FROM SUPPLY_MNG WHERE OBJID::VARCHAR = SRM.CUSTOMER_OBJID) AS CUSTOMER_NAME,
|
||||
SRM.PAID_TYPE,
|
||||
(CASE WHEN SRM.PAID_TYPE = 'paid' THEN '유상' WHEN SRM.PAID_TYPE = 'free' THEN '무상' ELSE SRM.PAID_TYPE END) AS PAID_TYPE_NAME,
|
||||
|
||||
-- 품번/품명 ("외 N건" 형태로 표시)
|
||||
(
|
||||
SELECT
|
||||
SRM.OBJID,
|
||||
SRM.REQUEST_MNG_NO,
|
||||
SRM.REQUEST_CD,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_CD) AS REQUEST_CD_NAME,
|
||||
SRM.PROJECT_NO,
|
||||
(SELECT PROJECT_NO FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NUMBER,
|
||||
(SELECT PROJECT_NAME FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NAME,
|
||||
SRM.RELEASE_DATE,
|
||||
SRM.REQUEST_REASONS,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_REASONS) AS REQUEST_REASONS_NAME,
|
||||
SRM.REQUEST_USER_ID,
|
||||
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.REQUEST_USER_ID) AS REQUEST_USER_NAME,
|
||||
SRM.DELIVERY_REQUEST_DATE,
|
||||
SRM.UNIT_NAME,
|
||||
(SELECT O.UNIT_NO || '-' || O.TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = SRM.UNIT_NAME) AS UNIT_CODE_NAME,
|
||||
SRM.STATUS,
|
||||
CASE
|
||||
WHEN COUNT(*) > 1 THEN
|
||||
(SELECT PM.PART_NO FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1)) || ' 외 ' || (COUNT(*) - 1) || '건'
|
||||
ELSE
|
||||
(SELECT PM.PART_NO FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1))
|
||||
END
|
||||
FROM SALES_REQUEST_PART
|
||||
WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID
|
||||
) AS PART_NO,
|
||||
(
|
||||
SELECT
|
||||
CASE
|
||||
WHEN COUNT(*) > 1 THEN
|
||||
(SELECT PM.PART_NAME FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1)) || ' 외 ' || (COUNT(*) - 1) || '건'
|
||||
ELSE
|
||||
(SELECT PM.PART_NAME FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1))
|
||||
END
|
||||
FROM SALES_REQUEST_PART
|
||||
WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID
|
||||
) AS PART_NAME,
|
||||
|
||||
SRM.PROJECT_NO,
|
||||
(SELECT PROJECT_NO FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NUMBER,
|
||||
(SELECT PROJECT_NAME FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NAME,
|
||||
SRM.RELEASE_DATE,
|
||||
SRM.REQUEST_REASONS,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_REASONS) AS REQUEST_REASONS_NAME,
|
||||
COALESCE(SRM.REQUEST_USER_ID, SRM.WRITER) AS REQUEST_USER_ID,
|
||||
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = COALESCE(SRM.REQUEST_USER_ID, SRM.WRITER)) AS REQUEST_USER_NAME,
|
||||
SRM.DELIVERY_REQUEST_DATE,
|
||||
SRM.UNIT_NAME,
|
||||
(SELECT O.UNIT_NO || '-' || O.TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = SRM.UNIT_NAME) AS UNIT_CODE_NAME,
|
||||
SRM.STATUS,
|
||||
CASE
|
||||
WHEN ((SELECT COUNT(1) FROM PURCHASE_ORDER_MASTER AS O WHERE O.SALES_REQUEST_OBJID IN (SRM.OBJID)) >= (SELECT COUNT(1) FROM SALES_REQUEST_PART AS SRP WHERE srp.SALES_REQUEST_master_OBJID = SRM.OBJID )) and ((SELECT COUNT(1) FROM PURCHASE_ORDER_MASTER AS O WHERE O.SALES_REQUEST_OBJID IN (SRM.OBJID)) > 0) THEN '발주완료'
|
||||
WHEN ((SELECT COUNT(1) FROM PURCHASE_ORDER_MASTER AS O WHERE O.SALES_REQUEST_OBJID IN (SRM.OBJID)) < (SELECT COUNT(1) FROM SALES_REQUEST_PART AS SRP WHERE srp.SALES_REQUEST_master_OBJID = SRM.OBJID )) and ((SELECT COUNT(1) FROM PURCHASE_ORDER_MASTER AS O WHERE O.SALES_REQUEST_OBJID IN (SRM.OBJID)) > 0) THEN '발주부분완료'
|
||||
@@ -1102,52 +1173,100 @@
|
||||
<select id="purchaseOrderAdminSupplyInfo" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
PM.OBJID
|
||||
,CODE_NAME(PM.PRODUCT) AS PRODUCT_NAME
|
||||
,PM.MECHANICAL_TYPE
|
||||
,PM.CATEGORY_CD
|
||||
,CODE_NAME(PM.CATEGORY_CD) AS CATEGORY_NAME
|
||||
,PM.CUSTOMER_OBJID
|
||||
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = PM.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME
|
||||
,PM.PROJECT_NAME
|
||||
,PM.PRODUCT
|
||||
,CODE_NAME(PM.PRODUCT) AS PRODUCT_NAME
|
||||
,PM.STATUS_CD
|
||||
,CODE_NAME(PM.STATUS_CD) AS STATUS_NAME
|
||||
,PM.DUE_DATE
|
||||
,PM.LOCATION
|
||||
,PM.SETUP
|
||||
,PM.FACILITY
|
||||
,CODE_NAME(PM.FACILITY) AS FACILITY_NAME
|
||||
,PM.FACILITY_QTY
|
||||
,PM.FACILITY_TYPE
|
||||
,PM.FACILITY_DEPTH
|
||||
,PM.PRODUCTION_NO
|
||||
,PM.BUS_CAL_CD
|
||||
,CODE_NAME(PM.BUS_CAL_CD) AS BUS_CAL_NAME
|
||||
,PM.CATEGORY1_CD
|
||||
,CODE_NAME(PM.CATEGORY1_CD) AS CATEGORY1_NAME
|
||||
,PM.CHG_USER_ID
|
||||
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = PM.CHG_USER_ID ) AS CHG_USER_NAME
|
||||
,PM.PLAN_DATE
|
||||
,PM.COMPLETE_DATE
|
||||
,PM.RESULT_CD
|
||||
,CODE_NAME(PM.RESULT_CD) AS RESULT_NAME
|
||||
,PM.PROJECT_NO
|
||||
,PM.PM_USER_ID
|
||||
,PM.CONTRACT_PRICE
|
||||
,PM.CONTRACT_PRICE_CURRENCY
|
||||
,PM.CONTRACT_CURRENCY
|
||||
,CODE_NAME(PM.CONTRACT_CURRENCY) AS CONTRACT_CURRENCY_NAME
|
||||
,TO_CHAR(PM.REGDATE,'YYYY-MM-DD') AS REG_DATE
|
||||
,PM.WRITER
|
||||
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = PM.WRITER ) AS WRITER_NAME
|
||||
,PM.CONTRACT_NO
|
||||
,PM.CUSTOMER_EQUIP_NAME
|
||||
,PM.REQ_DEL_DATE
|
||||
,PM.CONTRACT_DEL_DATE
|
||||
,PM.CONTRACT_COMPANY
|
||||
,CODE_NAME(PM.CONTRACT_COMPANY) AS CONTRACT_COMPANY_NAME
|
||||
,PM.CONTRACT_DATE
|
||||
,PM.PO_NO
|
||||
,PM.MANUFACTURE_PLANT
|
||||
,CODE_NAME(PM.MANUFACTURE_PLANT) AS MANUFACTURE_PLANT_NAME
|
||||
,PM.CONTRACT_RESULT
|
||||
,CODE_NAME(PM.CONTRACT_RESULT) AS CONTRACT_RESULT_NAME
|
||||
,PM.AREA_CD
|
||||
,CODE_NAME(PM.AREA_CD) AS AREA_NAME
|
||||
,PM.PROJECT_NAME
|
||||
,PM.MECHANICAL_TYPE
|
||||
,PM.OVERHAUL_ORDER
|
||||
,RM.RELEASE_DATE
|
||||
,CM.PAID_TYPE
|
||||
,CM.OBJID AS CONTRACT_OBJID
|
||||
FROM
|
||||
PROJECT_MGMT AS PM
|
||||
LEFT OUTER JOIN
|
||||
RELEASE_MGMT RM
|
||||
ON PM.OBJID::VARCHAR = RM.PARENT_OBJID
|
||||
AND PM.PRODUCT = RM.PRODUCT
|
||||
<!-- LEFT OUTER JOIN
|
||||
(SELECT * FROM (SELECT DENSE_RANK() OVER(PARTITION BY T.SUPPLY_OBJID ORDER BY T.CHARGER_NAME ASC) AS TOP, T.*
|
||||
FROM SUPPLY_CHARGER_MNG T WHERE CHARGER_TYPE = '0000330' /*발주서공급처담당*/
|
||||
) AS T WHERE TOP = 1
|
||||
) AS T2
|
||||
ON T1.OBJID = T2.SUPPLY_OBJID::NUMERIC -->
|
||||
LEFT OUTER JOIN
|
||||
CONTRACT_MGMT CM
|
||||
ON PM.CONTRACT_OBJID = CM.OBJID
|
||||
WHERE 1=1
|
||||
AND PM.OBJID = #{PROJECT_NO}
|
||||
</select>
|
||||
|
||||
<select id="SalesBomPartListByProjectUnit" parameterType="map" resultType="map">
|
||||
SELECT T1.PARENT_OBJID AS BOM_REPORT_OBJID
|
||||
,T1.PART_OBJID
|
||||
,T1.OBJID SALES_BOM_REPORT_PART_OBJID
|
||||
,T1.SUPPLY_OBJID
|
||||
,PM.PART_NAME
|
||||
,PM.PART_NO
|
||||
,PM.SPEC
|
||||
,PM.MAKER
|
||||
,PM.REMARK
|
||||
,PM.UNIT
|
||||
,BPQ.QTY AS ORDER_QTY
|
||||
,T1.WRITER
|
||||
FROM SALES_BOM_REPORT_PART AS T1
|
||||
,PART_BOM_REPORT AS PBR
|
||||
,BOM_PART_QTY AS BPQ
|
||||
,PART_MNG AS PM
|
||||
WHERE PBR.OBJID = BPQ.BOM_REPORT_OBJID
|
||||
AND T1.PART_OBJID = BPQ.PART_NO
|
||||
AND T1.PART_OBJID = PM.OBJID::VARCHAR
|
||||
AND PBR.CONTRACT_OBJID = #{PROJECT_OBJID}
|
||||
AND PBR.UNIT_CODE = #{UNIT_CODE}
|
||||
AND PBR.OBJID = T1.PARENT_OBJID
|
||||
ORDER BY BPQ.SEQ
|
||||
<!-- M-BOM 데이터 조회: PROJECT_MGMT.BOM_REPORT_OBJID -> BOM_PART_QTY -> PART_MNG -->
|
||||
SELECT
|
||||
BPQ.BOM_REPORT_OBJID
|
||||
,BPQ.PART_NO AS PART_OBJID
|
||||
,PM.PART_NAME
|
||||
,PM.PART_NO
|
||||
,PM.SPEC
|
||||
,PM.MAKER
|
||||
,PM.REMARK
|
||||
,PM.UNIT
|
||||
,BPQ.QTY AS ORDER_QTY
|
||||
,NULL AS SUPPLY_OBJID
|
||||
,NULL AS WRITER
|
||||
FROM
|
||||
PROJECT_MGMT AS PJT
|
||||
INNER JOIN BOM_PART_QTY AS BPQ
|
||||
ON PJT.BOM_REPORT_OBJID = BPQ.BOM_REPORT_OBJID::VARCHAR
|
||||
LEFT JOIN PART_MNG AS PM
|
||||
ON COALESCE(NULLIF(BPQ.LAST_PART_OBJID, ''), BPQ.PART_NO) = PM.OBJID::VARCHAR
|
||||
WHERE 1=1
|
||||
AND PJT.OBJID = #{PROJECT_OBJID}
|
||||
AND PJT.BOM_REPORT_OBJID IS NOT NULL
|
||||
AND PJT.BOM_REPORT_OBJID != ''
|
||||
ORDER BY BPQ.SEQ, PM.PART_NO
|
||||
</select>
|
||||
|
||||
<update id="mergeReceiptSalesRequestInfo" parameterType="map">
|
||||
|
||||
@@ -274,6 +274,18 @@ public class SalesMngController {
|
||||
|
||||
if(!"".equals(salesRequestMasterObjId)){
|
||||
resultMap = salesMngService.getSalesRequestMasterInfo(request, paramMap);
|
||||
|
||||
// 디버깅: 조인으로 가져온 값 확인
|
||||
System.out.println("========== 디버깅: resultMap 값 확인 ==========");
|
||||
System.out.println("PURCHASE_TYPE: " + resultMap.get("PURCHASE_TYPE"));
|
||||
System.out.println("ORDER_TYPE: " + resultMap.get("ORDER_TYPE"));
|
||||
System.out.println("PRODUCT_NAME: " + resultMap.get("PRODUCT_NAME"));
|
||||
System.out.println("PRODUCT_NAME_FULL: " + resultMap.get("PRODUCT_NAME_FULL"));
|
||||
System.out.println("AREA_CD: " + resultMap.get("AREA_CD"));
|
||||
System.out.println("CUSTOMER_OBJID: " + resultMap.get("CUSTOMER_OBJID"));
|
||||
System.out.println("PAID_TYPE: " + resultMap.get("PAID_TYPE"));
|
||||
System.out.println("CATEGORY_CD: " + resultMap.get("CATEGORY_CD"));
|
||||
System.out.println("==========================================");
|
||||
}else{
|
||||
resultMap.put("OBJID", CommonUtils.createObjId());
|
||||
resultMap.put("STATUS", "create");
|
||||
@@ -286,6 +298,32 @@ public class SalesMngController {
|
||||
code_map.put("request_reasons",commonService.bizMakeOptionList("0001603", (String)resultMap.get("REQUEST_REASONS"),"common.getCodeselect"));
|
||||
//요청인
|
||||
code_map.put("request_user_id", commonService.bizMakeOptionList("", (String)resultMap.get("REQUEST_USER_ID"),"common.getUserselect"));
|
||||
//국내/해외 - 0001219 사용
|
||||
code_map.put("area_cd",commonService.bizMakeOptionList("0001219", (String)resultMap.get("AREA_CD"),"common.getCodeselect"));
|
||||
//고객사
|
||||
code_map.put("customer_objid",commonService.bizMakeOptionList("", (String)resultMap.get("CUSTOMER_OBJID"),"common.getsupplyselect"));
|
||||
//구매유형 (PURCHASE_TYPE) - 0001068 사용
|
||||
code_map.put("purchase_type",commonService.bizMakeOptionList("0001068", (String)resultMap.get("PURCHASE_TYPE"),"common.getCodeselect"));
|
||||
//주문유형 (ORDER_TYPE) - 0001406 사용
|
||||
code_map.put("order_type",commonService.bizMakeOptionList("0001406", (String)resultMap.get("ORDER_TYPE"),"common.getCodeselect"));
|
||||
//제품구분 (PRODUCT_NAME) - 0000001 사용
|
||||
code_map.put("product_name",commonService.bizMakeOptionList("0000001", (String)resultMap.get("PRODUCT_NAME"),"common.getCodeselect"));
|
||||
//제품유형 (CATEGORY_CD) - 0000167 사용
|
||||
code_map.put("category_cd",commonService.bizMakeOptionList("0000167", (String)resultMap.get("CATEGORY_CD"),"common.getCodeselect"));
|
||||
//유/무상 (PAID_TYPE) - COMM_CODE에서 조회 시도, 없으면 하드코딩
|
||||
String paidTypeOptions = "";
|
||||
try {
|
||||
paidTypeOptions = commonService.bizMakeOptionList("PAID_TYPE", (String)resultMap.get("PAID_TYPE"),"common.getCodeselect");
|
||||
} catch (Exception e) {
|
||||
// COMM_CODE에 없으면 하드코딩
|
||||
}
|
||||
if (paidTypeOptions == null || paidTypeOptions.trim().isEmpty()) {
|
||||
String paidType = (String)resultMap.get("PAID_TYPE");
|
||||
paidTypeOptions = "";
|
||||
paidTypeOptions += "<option value='paid'" + ("paid".equals(paidType) ? " selected" : "") + ">유상</option>";
|
||||
paidTypeOptions += "<option value='free'" + ("free".equals(paidType) ? " selected" : "") + ">무상</option>";
|
||||
}
|
||||
code_map.put("paid_type", paidTypeOptions);
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user