구매요청서

This commit is contained in:
leeheejin
2025-11-25 12:02:52 +09:00
parent 8c1287dd04
commit f22119fbbe
6 changed files with 713 additions and 397 deletions

View File

@@ -601,7 +601,13 @@
RECEIPT_DATE, RECEIPT_DATE,
WRITER, WRITER,
REMARK, REMARK,
REGDATE REGDATE,
PURCHASE_TYPE,
ORDER_TYPE,
PRODUCT_NAME,
AREA_CD,
CUSTOMER_OBJID,
PAID_TYPE
) )
VALUES VALUES
( (
@@ -619,7 +625,13 @@
#{RECEIPT_DATE }, #{RECEIPT_DATE },
#{WRITER }, #{WRITER },
#{REMARK }, #{REMARK },
NOW() NOW(),
#{PURCHASE_TYPE },
#{ORDER_TYPE },
#{PRODUCT_NAME },
#{AREA_CD },
#{CUSTOMER_OBJID },
#{PAID_TYPE }
) ON CONFLICT (OBJID) DO ) ON CONFLICT (OBJID) DO
UPDATE UPDATE
SET SET
@@ -633,7 +645,13 @@
STATUS = #{STATUS }, STATUS = #{STATUS },
RECEIPT_USER_ID = #{RECEIPT_USER_ID }, RECEIPT_USER_ID = #{RECEIPT_USER_ID },
RECEIPT_DATE = #{RECEIPT_DATE }, RECEIPT_DATE = #{RECEIPT_DATE },
REMARK = #{REMARK } 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> </update>
<select id="getSalesRequestMasterInfo" parameterType="map" resultType="map"> <select id="getSalesRequestMasterInfo" parameterType="map" resultType="map">
@@ -643,12 +661,12 @@
SRM.REQUEST_CD, SRM.REQUEST_CD,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_CD) AS REQUEST_CD_NAME, (SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_CD) AS REQUEST_CD_NAME,
SRM.PROJECT_NO, SRM.PROJECT_NO,
(SELECT PROJECT_NO FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NUMBER, PM.PROJECT_NO AS PROJECT_NUMBER,
(SELECT PROJECT_NAME FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NAME, PM.PROJECT_NAME,
(SELECT SETUP FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS SETUP, PM.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, SM.SUPPLY_NAME AS CUSTOMER_NAME,
(SELECT CODE_NAME(PM.PRODUCT) FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PRODUCT_NAME, SM.OBJID::VARCHAR AS CUSTOMER_OBJID, -- 고객사 OBJID (드롭다운 선택용)
(SELECT MECHANICAL_TYPE FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS MECHANICAL_TYPE, PM.MECHANICAL_TYPE,
SRM.RELEASE_DATE, SRM.RELEASE_DATE,
SRM.REQUEST_REASONS, SRM.REQUEST_REASONS,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_REASONS) AS REQUEST_REASONS_NAME, (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, END STATUS_TITLE,
SRM.RECEIPT_USER_ID, SRM.RECEIPT_USER_ID,
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.RECEIPT_USER_ID) AS RECEIPT_USER_NAME, (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, SRM.WRITER,
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.WRITER) AS WRITER_NAME, (SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.WRITER) AS WRITER_NAME,
SRM.REGDATE, SRM.REGDATE,
TO_CHAR(SRM.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE, TO_CHAR(SRM.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
REMARK 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 FROM
SALES_REQUEST_MASTER SRM 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 WHERE 1=1
AND OBJID = #{SALES_REQUEST_MASTER_OBJID} AND SRM.OBJID = #{SALES_REQUEST_MASTER_OBJID}
</select> </select>
<!-- 구매의뢰 저장 시 저장된 파트 정보를 초기화 --> <!-- 구매의뢰 저장 시 저장된 파트 정보를 초기화 -->
@@ -916,14 +948,53 @@
SRM.REQUEST_MNG_NO, SRM.REQUEST_MNG_NO,
SRM.REQUEST_CD, SRM.REQUEST_CD,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_CD) AS REQUEST_CD_NAME, (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
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, SRM.PROJECT_NO,
(SELECT PROJECT_NO FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NUMBER, (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 PROJECT_NAME FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NAME,
SRM.RELEASE_DATE, SRM.RELEASE_DATE,
SRM.REQUEST_REASONS, SRM.REQUEST_REASONS,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_REASONS) AS REQUEST_REASONS_NAME, (SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_REASONS) AS REQUEST_REASONS_NAME,
SRM.REQUEST_USER_ID, COALESCE(SRM.REQUEST_USER_ID, SRM.WRITER) AS REQUEST_USER_ID,
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.REQUEST_USER_ID) AS REQUEST_USER_NAME, (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.DELIVERY_REQUEST_DATE,
SRM.UNIT_NAME, 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, (SELECT O.UNIT_NO || '-' || O.TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = SRM.UNIT_NAME) AS UNIT_CODE_NAME,
@@ -1102,33 +1173,80 @@
<select id="purchaseOrderAdminSupplyInfo" parameterType="map" resultType="map"> <select id="purchaseOrderAdminSupplyInfo" parameterType="map" resultType="map">
SELECT SELECT
PM.OBJID PM.OBJID
,CODE_NAME(PM.PRODUCT) AS PRODUCT_NAME ,PM.CATEGORY_CD
,PM.MECHANICAL_TYPE ,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 ,(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.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 ,RM.RELEASE_DATE
,CM.PAID_TYPE
,CM.OBJID AS CONTRACT_OBJID
FROM FROM
PROJECT_MGMT AS PM PROJECT_MGMT AS PM
LEFT OUTER JOIN LEFT OUTER JOIN
RELEASE_MGMT RM RELEASE_MGMT RM
ON PM.OBJID::VARCHAR = RM.PARENT_OBJID ON PM.OBJID::VARCHAR = RM.PARENT_OBJID
AND PM.PRODUCT = RM.PRODUCT AND PM.PRODUCT = RM.PRODUCT
<!-- LEFT OUTER JOIN LEFT OUTER JOIN
(SELECT * FROM (SELECT DENSE_RANK() OVER(PARTITION BY T.SUPPLY_OBJID ORDER BY T.CHARGER_NAME ASC) AS TOP, T.* CONTRACT_MGMT CM
FROM SUPPLY_CHARGER_MNG T WHERE CHARGER_TYPE = '0000330' /*발주서공급처담당*/ ON PM.CONTRACT_OBJID = CM.OBJID
) AS T WHERE TOP = 1
) AS T2
ON T1.OBJID = T2.SUPPLY_OBJID::NUMERIC -->
WHERE 1=1 WHERE 1=1
AND PM.OBJID = #{PROJECT_NO} AND PM.OBJID = #{PROJECT_NO}
</select> </select>
<select id="SalesBomPartListByProjectUnit" parameterType="map" resultType="map"> <select id="SalesBomPartListByProjectUnit" parameterType="map" resultType="map">
SELECT T1.PARENT_OBJID AS BOM_REPORT_OBJID <!-- M-BOM 데이터 조회: PROJECT_MGMT.BOM_REPORT_OBJID -> BOM_PART_QTY -> PART_MNG -->
,T1.PART_OBJID SELECT
,T1.OBJID SALES_BOM_REPORT_PART_OBJID BPQ.BOM_REPORT_OBJID
,T1.SUPPLY_OBJID ,BPQ.PART_NO AS PART_OBJID
,PM.PART_NAME ,PM.PART_NAME
,PM.PART_NO ,PM.PART_NO
,PM.SPEC ,PM.SPEC
@@ -1136,18 +1254,19 @@
,PM.REMARK ,PM.REMARK
,PM.UNIT ,PM.UNIT
,BPQ.QTY AS ORDER_QTY ,BPQ.QTY AS ORDER_QTY
,T1.WRITER ,NULL AS SUPPLY_OBJID
FROM SALES_BOM_REPORT_PART AS T1 ,NULL AS WRITER
,PART_BOM_REPORT AS PBR FROM
,BOM_PART_QTY AS BPQ PROJECT_MGMT AS PJT
,PART_MNG AS PM INNER JOIN BOM_PART_QTY AS BPQ
WHERE PBR.OBJID = BPQ.BOM_REPORT_OBJID ON PJT.BOM_REPORT_OBJID = BPQ.BOM_REPORT_OBJID::VARCHAR
AND T1.PART_OBJID = BPQ.PART_NO LEFT JOIN PART_MNG AS PM
AND T1.PART_OBJID = PM.OBJID::VARCHAR ON COALESCE(NULLIF(BPQ.LAST_PART_OBJID, ''), BPQ.PART_NO) = PM.OBJID::VARCHAR
AND PBR.CONTRACT_OBJID = #{PROJECT_OBJID} WHERE 1=1
AND PBR.UNIT_CODE = #{UNIT_CODE} AND PJT.OBJID = #{PROJECT_OBJID}
AND PBR.OBJID = T1.PARENT_OBJID AND PJT.BOM_REPORT_OBJID IS NOT NULL
ORDER BY BPQ.SEQ AND PJT.BOM_REPORT_OBJID != ''
ORDER BY BPQ.SEQ, PM.PART_NO
</select> </select>
<update id="mergeReceiptSalesRequestInfo" parameterType="map"> <update id="mergeReceiptSalesRequestInfo" parameterType="map">

View File

@@ -103,7 +103,8 @@ $(function(){
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_getUserList2("SALES_MNG_USER_ID", "${resultMap.SALES_MNG_USER_ID}");
fnc_getCodeListAppend("0000259","REQUEST_STATUS","${resultMap.REQUEST_STATUS}"); 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(); fnc_datepick();
$(".select2").select2(); $(".select2").select2();
@@ -129,38 +130,63 @@ $(function(){
<% if(isModify){ %> <% 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(){ $("#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()!=""){ if($(this).val()!=""){
//프로젝트번호로 지정된 정보를 가져온다 //프로젝트번호로 지정된 정보를 가져온다
var list = fnc_getJsonAllDataListBySqlId({"sqlId":"salesMng.purchaseOrderAdminSupplyInfo", "PROJECT_NO":$(this).val()}); var list = fnc_getJsonAllDataListBySqlId({"sqlId":"salesMng.purchaseOrderAdminSupplyInfo", "PROJECT_NO":$(this).val()});
if(fnc_checkNull( list )!=""){ if(fnc_checkNull( list )!=""){
var row = list[0]; var row = list[0];
console.log("프로젝트 정보:", row); // 디버깅용
// 기존 필드 (읽기전용 텍스트)
$("#CUSTOMER_NAME" ).val( row["CUSTOMER_NAME" ] ); $("#CUSTOMER_NAME" ).val( row["CUSTOMER_NAME" ] );
$("#PRODUCT_NAME" ).val( row["PRODUCT_NAME" ] );
$("#MECHANICAL_TYPE" ).val( row["MECHANICAL_TYPE" ] ); $("#MECHANICAL_TYPE" ).val( row["MECHANICAL_TYPE" ] );
$("#PROJECT_NAME" ).val( row["PROJECT_NAME" ] ); $("#PROJECT_NAME" ).val( row["PROJECT_NAME" ] );
$("#SETUP" ).val( row["SETUP" ] ); $("#SETUP" ).val( row["SETUP" ] );
$("#RELEASE" ).val( row["RELEASE_DATE" ] ); $("#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%>'); $("#REQUEST_USER_ID").val('<%=connectUserId%>');
$(".select2").select2(); $(".select2").select2();
<% }else{ %> <% }else{ %>
$("#REQUEST_USER_ID").val('<%=connectUserId%>');
$(".select2").select2();
$("#btnSupplySave").click(function(){ fn_Supply_save(); }); //공급업체저장 $("#btnSupplySave").click(function(){ fn_Supply_save(); }); //공급업체저장
<% } %> <% } %>
}); });
@@ -234,15 +260,15 @@ function fn_getSalesRequestTargetPartList(masterObjId,bomObjId){
//appendText += " <td class='input_title'><label>품번</label></td>"; //appendText += " <td class='input_title'><label>품번</label></td>";
appendText += " <td class='align_l' colspan=''>"; appendText += " <td class='align_l' colspan=''>";
if(requestStatus == 'approvalComplete' || requestStatus == 'reception'){ if(requestStatus == 'approvalComplete' || requestStatus == 'reception'){
appendText += " <input type='text' name='PART_NO_"+rowObjId+"' id='PART_NO_"+rowObjId+"' value='"+PART_NO+"' readonly>"; appendText += " <input type='text' name='PART_NO_"+rowObjId+"' id='PART_NO_"+rowObjId+"' value='"+PART_NO+"' readonly style='width: 100%;'>";
}else{ }else{
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 += " </select>";
} }
appendText += " </td>"; appendText += " </td>";
//appendText += " <td class='input_title'><label>품명</label></td>"; //appendText += " <td class='input_title'><label>품명</label></td>";
appendText += " <td class='align_l' colspan=''>"; appendText += " <td class='align_l' colspan=''>";
appendText += " <input type='text' name='PART_NAME_"+rowObjId+"' value='"+PART_NAME+"' readonly>"; appendText += " <input type='text' name='PART_NAME_"+rowObjId+"' value='"+PART_NAME+"' readonly style='width: 100%;'>";
appendText += " </td>"; appendText += " </td>";
//appendText += " <td class='align_l'>"; //appendText += " <td class='align_l'>";
//appendText += " <input type='text' name='SPEC_"+rowObjId+"' value='"+SPEC+"'>"; //appendText += " <input type='text' name='SPEC_"+rowObjId+"' value='"+SPEC+"'>";
@@ -252,10 +278,10 @@ function fn_getSalesRequestTargetPartList(masterObjId,bomObjId){
appendText += " <input type='number' name='QTY_"+rowObjId+"' value='"+QTY+"' reqTitle='수량' required style='text-align: center;'>"; appendText += " <input type='number' name='QTY_"+rowObjId+"' value='"+QTY+"' reqTitle='수량' required style='text-align: center;'>";
appendText += " </td>"; appendText += " </td>";
//appendText += " <td class='input_title'><label>공급업체</label></td>"; //appendText += " <td class='input_title'><label>공급업체</label></td>";
appendText += " <td class='align_l'>"; //appendText += " <td class='align_l'>";
appendText += " <select name='PARTNER_OBJID_"+rowObjId+"' id='PARTNER_OBJID_"+rowObjId+"' reqTitle='공급업체' type='select' class='select2' >"; //appendText += " <select name='PARTNER_OBJID_"+rowObjId+"' id='PARTNER_OBJID_"+rowObjId+"' reqTitle='공급업체' type='select' class='select2' >";
appendText += " </select>"; //appendText += " </select>";
appendText += " </td>"; //appendText += " </td>";
//appendText += " <td class='align_l'>"; //appendText += " <td class='align_l'>";
//appendText += " <input type='date' name='DELIVERY_REQUEST_DATE_"+rowObjId+"' value='"+DELIVERY_REQUEST_DATE+"'>"; //appendText += " <input type='date' name='DELIVERY_REQUEST_DATE_"+rowObjId+"' value='"+DELIVERY_REQUEST_DATE+"'>";
//appendText += " </td>"; //appendText += " </td>";
@@ -273,9 +299,10 @@ function fn_getSalesRequestTargetPartList(masterObjId,bomObjId){
$.each(resultData, function(i){ $.each(resultData, function(i){
var rowObjId = fnc_checkNull(resultData[i].OBJID); var rowObjId = fnc_checkNull(resultData[i].OBJID);
var PART_OBJID = fnc_checkNull(resultData[i].PART_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); // var PARTNER_OBJID = fnc_checkNull(resultData[i].PARTNER_OBJID);
$("#PARTNER_OBJID_"+rowObjId).val(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,""); fn_addBomPart("PART_OBJID_"+rowObjId, PART_OBJID, "PART_NAME_"+rowObjId,"");
}); });
$(".select2").select2(); $(".select2").select2();
@@ -292,10 +319,11 @@ function fn_getSalesRequestTargetPartList(masterObjId,bomObjId){
/* 물품구매요청서 Row 추가 */ /* 물품구매요청서 Row 추가 */
function fn_AddRow(){ function fn_AddRow(){
if($("#UNIT_NAME").val() == '' || $("#UNIT_NAME").val() == null){ // 유닛명 체크 제거 - 필수 아님
Swal.fire("유닛명을 먼저 선택해주세요"); // if($("#UNIT_NAME").val() == '' || $("#UNIT_NAME").val() == null){
return false; // Swal.fire("유닛명을 먼저 선택해주세요");
} // return false;
// }
var rowObjId = fnc_createObjId(); var rowObjId = fnc_createObjId();
var appendText = ""; var appendText = "";
@@ -310,12 +338,12 @@ function fn_AddRow(){
//appendText += " </td>"; //appendText += " </td>";
//appendText += " <td class='input_title'><label>품번</label></td>"; //appendText += " <td class='input_title'><label>품번</label></td>";
appendText += " <td class='align_l' value='PART_OBJID' title='PART_OBJID' colspan=''>"; 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 += " </select>";
appendText += " </td>"; appendText += " </td>";
//appendText += " <td class='input_title'><label>품명</label></td>"; //appendText += " <td class='input_title'><label>품명</label></td>";
appendText += " <td class='align_l' value='PART_NAME' title='PART_NAME' colspan='' readonly>"; appendText += " <td class='align_l' value='PART_NAME' title='PART_NAME' colspan=''>";
appendText += " <input type='text' name='PART_NAME_"+rowObjId+"' id='PART_NAME_"+rowObjId+"'>"; appendText += " <input type='text' name='PART_NAME_"+rowObjId+"' id='PART_NAME_"+rowObjId+"' readonly style='width: 100%;'>";
appendText += " </td>"; appendText += " </td>";
//appendText += " <td class='align_l' value='SPEC' title='UNIT_TITLE'>"; //appendText += " <td class='align_l' value='SPEC' title='UNIT_TITLE'>";
//appendText += " <input type='text' name='SPEC_"+rowObjId+"'>"; //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 += " <input type='number' name='QTY_"+rowObjId+"' reqTitle='수량' required style='text-align: center;'>";
appendText += " </td>"; appendText += " </td>";
//appendText += " <td class='input_title'><label>공급업체</label></td>"; //appendText += " <td class='input_title'><label>공급업체</label></td>";
appendText += " <td class='align_l' value='PARTNER_OBJID'>"; //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 name='PARTNER_OBJID_"+rowObjId+"' id='PARTNER_OBJID_"+rowObjId+"' reqTitle='공급업체' type='select' class='select2'>";
appendText += " </select>"; //appendText += " </select>";
appendText += " </td>"; //appendText += " </td>";
//appendText += " <td class='align_l' value='DELIVERY_REQUEST_DATE'>"; //appendText += " <td class='align_l' value='DELIVERY_REQUEST_DATE'>";
//appendText += " <input type='date' name='DELIVERY_REQUEST_DATE_"+rowObjId+"'>"; //appendText += " <input type='date' name='DELIVERY_REQUEST_DATE_"+rowObjId+"'>";
//appendText += " </td>"; //appendText += " </td>";
@@ -342,8 +370,9 @@ function fn_AddRow(){
}else{ }else{
$("#partListArea").append(appendText); $("#partListArea").append(appendText);
} }
fnc_getAdminSupCdListAppend("", "PARTNER_OBJID_"+rowObjId, ""); // 공급업체 제거로 주석처리
fn_addBomPart("PART_OBJID_"+rowObjId, "", "PART_NAME_"+rowObjId, "PARTNER_OBJID_"+rowObjId); // fnc_getAdminSupCdListAppend("", "PARTNER_OBJID_"+rowObjId, "");
fn_addBomPart("PART_OBJID_"+rowObjId, "", "PART_NAME_"+rowObjId, "");
fnc_datepick(); fnc_datepick();
$(".select2").select2(); $(".select2").select2();
} }
@@ -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); //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).empty();
$("#"+selectboxId).append("<option value=''>선택</option>"); $("#"+selectboxId).append("<option value=''>선택</option>");
//구매BOM 조회해서 부품정보를 가져온다 //구매BOM 조회해서 부품정보를 가져온다
var resultList = fnc_getJsonAllDataListBySqlId({"sqlId":"salesMng.SalesBomPartListByProjectUnit" var paramData = {"sqlId":"salesMng.SalesBomPartListByProjectUnit", "PROJECT_OBJID":project_objid};
, "PROJECT_OBJID":project_objid // 유닛명이 있으면 추가
, "UNIT_CODE":unit_code }); if(fnc_checkNull(unit_code)!=""){
paramData.UNIT_CODE = unit_code;
}
var resultList = fnc_getJsonAllDataListBySqlId(paramData);
if(0 < resultList.length){ if(0 < resultList.length){
for (var i = 0; i < resultList.length; i++) { for (var i = 0; i < resultList.length; i++) {
var commonCodeId = resultList[i].PART_OBJID; var commonCodeId = resultList[i].PART_OBJID;
@@ -517,25 +549,25 @@ function fn_callbackFnc(){
<tr> <tr>
<td class="input_title"><label for="">구매유형</label></td> <td class="input_title"><label for="">구매유형</label></td>
<td> <td>
<select name="PURCHASE_TYPE" id="PURCHASE_TYPE" reqTitle="구매유형" type="select" class="select2" disabled> <select name="PURCHASE_TYPE" id="PURCHASE_TYPE" reqTitle="구매유형" type="select" class="select2" style="width: 100%;">
<option value="">선택</option> ${code_map.purchase_type} <option value="">선택</option> ${code_map.purchase_type}
</select> </select>
</td> </td>
<td class="input_title"><label for="">프로젝트번호</label></td> <td class="input_title"><label for="">프로젝트번호</label></td>
<td> <td>
<select name="PROJECT_NO" id="PROJECT_NO" reqTitle="프로젝트번호" type="select" class="select2" disabled> <select name="PROJECT_NO" id="PROJECT_NO" reqTitle="프로젝트번호" type="select" class="select2" style="width: 100%;">
<option value="">선택</option> ${code_map.project_no} <option value="">선택</option> ${code_map.project_no}
</select> </select>
</td> </td>
<td class="input_title"><label for="">구매유형</label></td> <td class="input_title"><label for="">구매유형</label></td>
<td> <td>
<select name="PURCHASE_TYPE2" id="PURCHASE_TYPE2" reqTitle="구매유형" type="select" class="select2" disabled> <select name="PURCHASE_TYPE2" id="PURCHASE_TYPE2" reqTitle="구매유형" type="select" class="select2" style="width: 100%;">
<option value="">선택</option> ${code_map.purchase_type} <option value="">선택</option> ${code_map.purchase_type}
</select> </select>
</td> </td>
<td class="input_title"><label for="">주문유형</label></td> <td class="input_title"><label for="">주문유형</label></td>
<td> <td>
<select name="ORDER_TYPE" id="ORDER_TYPE" reqTitle="주문유형" type="select" class="select2" disabled> <select name="ORDER_TYPE" id="ORDER_TYPE" reqTitle="주문유형" type="select" class="select2" style="width: 100%;">
<option value="">선택</option> ${code_map.order_type} <option value="">선택</option> ${code_map.order_type}
</select> </select>
</td> </td>
@@ -543,27 +575,27 @@ function fn_callbackFnc(){
<tr> <tr>
<td class="input_title"><label for="">제품구분</label></td> <td class="input_title"><label for="">제품구분</label></td>
<td> <td>
<select name="PRODUCT_NAME" id="PRODUCT_NAME" reqTitle="제품구분" type="select" class="select2" disabled> <select name="PRODUCT_NAME" id="PRODUCT_NAME" reqTitle="제품구분" type="select" class="select2" style="width: 100%;">
<option value="">선택</option> ${code_map.product_name} <option value="">선택</option> ${code_map.product_name}
</select> </select>
</td> </td>
<td class="input_title"><label for="">국내/해외</label></td> <td class="input_title"><label for="">국내/해외</label></td>
<td> <td>
<select name="AREA_CD" id="AREA_CD" reqTitle="국내/해외" type="select" class="select2" disabled> <select name="AREA_CD" id="AREA_CD" reqTitle="국내/해외" type="select" class="select2" style="width: 100%;">
<option value="">선택</option> ${code_map.area_cd} <option value="">선택</option> ${code_map.area_cd}
</select> </select>
</td> </td>
<td class="input_title"><label for="">고객사</label></td> <td class="input_title"><label for="">고객사</label></td>
<td> <td>
<!-- <input type="text" name="CUSTOMER_NAME" id="CUSTOMER_NAME" value="${resultMap.CUSTOMER_NAME}" readonly> --> <!-- <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> <select name="CUSTOMER_OBJID" id="CUSTOMER_OBJID" reqTitle="고객사" type="select" class="select2" style="width: 100%;">
<option value="">선택</option> ${code_map.area_cd} <option value="">선택</option> ${code_map.customer_objid}
</select> </select>
</td> </td>
<td class="input_title"><label for="">유/무상</label></td> <td class="input_title"><label for="">유/무상</label></td>
<td> <td>
<select name="PAYMENT_TYPE" id="PAYMENT_TYPE" reqTitle="유/무상" type="select" class="select2" disabled> <select name="PAID_TYPE" id="PAID_TYPE" reqTitle="유/무상" type="select" class="select2" style="width: 100%;">
<option value="">선택</option> ${code_map.payment_type} <option value="">선택</option> ${code_map.paid_type}
</select> </select>
</td> </td>
</tr> </tr>
@@ -571,6 +603,7 @@ function fn_callbackFnc(){
<td class="input_title"><label for="">입고요청일</label></td> <td class="input_title"><label for="">입고요청일</label></td>
<td colspan="7"> <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="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> </td>
</tr> </tr>
</table> </table>
@@ -579,13 +612,13 @@ function fn_callbackFnc(){
<div class="btn_wrap"> <div class="btn_wrap">
<% if(isModify){ %> <% if(isModify){ %>
<div class="plm_btn_wrap" style="padding:0 8 0 8; text-align: right;"> <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="btnAddRow" name="btnAddRow" style="background:#4A90E2; color:white; font-weight:bold;">
<input type="button" value="행삭제" class="plm_btns" id="btnDeleteRow" name="btnDeleteRow" style="background:#dfeffc"> <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:#dfeffc"> <input type="button" value="저장" class="plm_btns" id="btnReg" style="background:#27AE60; color:white; font-weight:bold;">
<% }else{ %> <% }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>
</div> </div>
@@ -606,7 +639,6 @@ function fn_callbackFnc(){
<col width="200px"> <col width="200px">
<col width="200px"> <col width="200px">
<col width="285px"> <col width="285px">
<!-- <col width="200px"> -->
</colgroup> </colgroup>
<thead> <thead>
<tr class="plm_thead"> <tr class="plm_thead">
@@ -614,7 +646,6 @@ function fn_callbackFnc(){
<td>품번</td> <td>품번</td>
<td>품명</td> <td>품명</td>
<td>수량</td> <td>수량</td>
<!-- <td>공급업체</td> -->
</tr> </tr>
</thead> </thead>
</table> </table>
@@ -626,7 +657,6 @@ function fn_callbackFnc(){
<col width="200px"> <col width="200px">
<col width="200px"> <col width="200px">
<col width="285px"> <col width="285px">
<!-- <col width="200px"> -->
</colgroup> </colgroup>
<tbody id="partListArea"> <tbody id="partListArea">
</tbody> </tbody>

View File

@@ -207,34 +207,33 @@ var columns = [
{title:'APPROVAL_OBJID' , field:'APPROVAL_OBJID' ,visible:false}, {title:'APPROVAL_OBJID' , field:'APPROVAL_OBJID' ,visible:false},
{title:'ROUTE_OBJID' , field:'ROUTE_OBJID' ,visible:false} {title:'ROUTE_OBJID' , field:'ROUTE_OBJID' ,visible:false}
,{headerHozAlign : 'center', hozAlign : 'center', title : "요청번호", field :"REQUEST_MNG_NO" , width:110, ,{headerHozAlign : 'center', hozAlign : 'center', title : "요청번호", field :"REQUEST_MNG_NO" , widthGrow:1.3,
formatter: fnc_createGridAnchorTag, formatter: fnc_createGridAnchorTag,
cellClick : function(e, cell) { cellClick : function(e, cell) {
fn_openSalesRequestPopUp(cell.getData().OBJID); fn_openSalesRequestPopUp(cell.getData().OBJID);
} }
} }
,{headerHozAlign : 'center', hozAlign : 'center', title : "요청구분", field :"REQUEST_CD_NAME" , width:80 } ,{headerHozAlign : 'center', hozAlign : 'center', title : "구매유형", field :"PURCHASE_TYPE_NAME" , widthGrow:1.1 }
,{headerHozAlign : 'center', hozAlign : 'left' , title : "프로젝트번호", field :"PROJECT_NUMBER" , width:100 } ,{headerHozAlign : 'center', hozAlign : 'left' , title : "프로젝트번호", field :"PROJECT_NUMBER" , widthGrow:1.4 }
,{headerHozAlign : 'center', hozAlign : 'left' , title : "프로젝트명", field :"PROJECT_NAME" , width:150} ,{headerHozAlign : 'center', hozAlign : 'center', title : "주문유형", field :"ORDER_TYPE_NAME" , widthGrow:1.1 }
,{headerHozAlign : 'center', hozAlign : 'left' , title : "유닛명", field :"UNIT_CODE_NAME" , width:180 } ,{headerHozAlign : 'center', hozAlign : 'center', title : "제품구분", field :"PRODUCT_NAME_FULL" , widthGrow:1.1}
,{headerHozAlign : 'center', hozAlign : 'center', title : "구매요청품 수", field :"ITEMS_QTY" , width:110 } ,{headerHozAlign : 'center', hozAlign : 'left' , title : "고객사", field :"CUSTOMER_NAME" , widthGrow:1.5 }
,{headerHozAlign : 'center', hozAlign : 'center', title : "총 수량", field :"TOTAL_QTY" , width:100} ,{headerHozAlign : 'center', hozAlign : 'center', title : "유/무상", field :"PAID_TYPE_NAME" , widthGrow:0.9 }
,{headerHozAlign : 'center', hozAlign : 'left' , title : "요청사유", field :"REQUEST_REASONS_NAME" , width:100 } ,{headerHozAlign : 'center', hozAlign : 'left', title : "품번", field :"PART_NO" , widthGrow:1.4}
,{headerHozAlign : 'center', hozAlign : 'center', title : "요청인", field :"REQUEST_USER_NAME" , width:110 } ,{headerHozAlign : 'center', hozAlign : 'left' , title : "품명", field :"PART_NAME" , widthGrow:1.8 }
,{headerHozAlign : 'center', hozAlign : 'center', title : "입고요청", field :"DELIVERY_REQUEST_DATE" , width:100 } ,{headerHozAlign : 'center', hozAlign : 'center', title : "구매요청", field :"REQUEST_MNG_NO" , widthGrow:1.1,
formatter: function(cell, formatterParams, onRendered){
,{headerHozAlign : 'center', hozAlign : 'center', title : "상태", field :"STATUS_TITLE" , width:90, var objid = fnc_checkNull(cell.getData().OBJID);
formatter: fnc_createGridApprovalAnchorTag, 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) { cellClick : function(e, cell) {
var targetStatus = fnc_checkNull(cell.getData().STATUS); fn_openSalesRequestPopUp(cell.getData().OBJID);
if("approvalComplete" == targetStatus || "approvalRequest" == targetStatus){
fn_approvalDetail(cell.getData().APPROVAL_OBJID, cell.getData().ROUTE_OBJID);
} }
} }
} ,{headerHozAlign : 'center', hozAlign : 'center', title : "요청인", field :"REQUEST_USER_NAME" , widthGrow:1.1 }
,{headerHozAlign : 'center', hozAlign : 'center', title : "접수자", field :"RECEIPT_USER_NAME" , width:110 } ,{headerHozAlign : 'center', hozAlign : 'center', title : "입고요청일", field :"DELIVERY_REQUEST_DATE" , widthGrow:1.1 }
,{headerHozAlign : 'center', hozAlign : 'center', title : "접수일", field :"RECEIPT_DATE" , width:90 } ,{headerHozAlign : 'center', hozAlign : 'center', title : "작성일", field :"REGDATE_TITLE" , widthGrow:1.1 }
,{headerHozAlign : 'center', hozAlign : 'left' , title : "발주서NO", field :"PURCHASE_ORDER_NO_ARR" /* , width:150 */ }
]; ];
//var grid; //var grid;

View 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 '주문유형';

View File

@@ -601,7 +601,13 @@
RECEIPT_DATE, RECEIPT_DATE,
WRITER, WRITER,
REMARK, REMARK,
REGDATE REGDATE,
PURCHASE_TYPE,
ORDER_TYPE,
PRODUCT_NAME,
AREA_CD,
CUSTOMER_OBJID,
PAID_TYPE
) )
VALUES VALUES
( (
@@ -619,7 +625,13 @@
#{RECEIPT_DATE }, #{RECEIPT_DATE },
#{WRITER }, #{WRITER },
#{REMARK }, #{REMARK },
NOW() NOW(),
#{PURCHASE_TYPE },
#{ORDER_TYPE },
#{PRODUCT_NAME },
#{AREA_CD },
#{CUSTOMER_OBJID },
#{PAID_TYPE }
) ON CONFLICT (OBJID) DO ) ON CONFLICT (OBJID) DO
UPDATE UPDATE
SET SET
@@ -633,7 +645,13 @@
STATUS = #{STATUS }, STATUS = #{STATUS },
RECEIPT_USER_ID = #{RECEIPT_USER_ID }, RECEIPT_USER_ID = #{RECEIPT_USER_ID },
RECEIPT_DATE = #{RECEIPT_DATE }, RECEIPT_DATE = #{RECEIPT_DATE },
REMARK = #{REMARK } 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> </update>
<select id="getSalesRequestMasterInfo" parameterType="map" resultType="map"> <select id="getSalesRequestMasterInfo" parameterType="map" resultType="map">
@@ -643,12 +661,12 @@
SRM.REQUEST_CD, SRM.REQUEST_CD,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_CD) AS REQUEST_CD_NAME, (SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_CD) AS REQUEST_CD_NAME,
SRM.PROJECT_NO, SRM.PROJECT_NO,
(SELECT PROJECT_NO FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NUMBER, PM.PROJECT_NO AS PROJECT_NUMBER,
(SELECT PROJECT_NAME FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NAME, PM.PROJECT_NAME,
(SELECT SETUP FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS SETUP, PM.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, SM.SUPPLY_NAME AS CUSTOMER_NAME,
(SELECT CODE_NAME(PM.PRODUCT) FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PRODUCT_NAME, SM.OBJID::VARCHAR AS CUSTOMER_OBJID, -- 고객사 OBJID (드롭다운 선택용)
(SELECT MECHANICAL_TYPE FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS MECHANICAL_TYPE, PM.MECHANICAL_TYPE,
SRM.RELEASE_DATE, SRM.RELEASE_DATE,
SRM.REQUEST_REASONS, SRM.REQUEST_REASONS,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_REASONS) AS REQUEST_REASONS_NAME, (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, END STATUS_TITLE,
SRM.RECEIPT_USER_ID, SRM.RECEIPT_USER_ID,
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.RECEIPT_USER_ID) AS RECEIPT_USER_NAME, (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, SRM.WRITER,
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.WRITER) AS WRITER_NAME, (SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.WRITER) AS WRITER_NAME,
SRM.REGDATE, SRM.REGDATE,
TO_CHAR(SRM.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE, TO_CHAR(SRM.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
REMARK 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 FROM
SALES_REQUEST_MASTER SRM 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 WHERE 1=1
AND OBJID = #{SALES_REQUEST_MASTER_OBJID} AND SRM.OBJID = #{SALES_REQUEST_MASTER_OBJID}
</select> </select>
<!-- 구매의뢰 저장 시 저장된 파트 정보를 초기화 --> <!-- 구매의뢰 저장 시 저장된 파트 정보를 초기화 -->
@@ -916,14 +948,53 @@
SRM.REQUEST_MNG_NO, SRM.REQUEST_MNG_NO,
SRM.REQUEST_CD, SRM.REQUEST_CD,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_CD) AS REQUEST_CD_NAME, (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
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, SRM.PROJECT_NO,
(SELECT PROJECT_NO FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NUMBER, (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 PROJECT_NAME FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NAME,
SRM.RELEASE_DATE, SRM.RELEASE_DATE,
SRM.REQUEST_REASONS, SRM.REQUEST_REASONS,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_REASONS) AS REQUEST_REASONS_NAME, (SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_REASONS) AS REQUEST_REASONS_NAME,
SRM.REQUEST_USER_ID, COALESCE(SRM.REQUEST_USER_ID, SRM.WRITER) AS REQUEST_USER_ID,
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.REQUEST_USER_ID) AS REQUEST_USER_NAME, (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.DELIVERY_REQUEST_DATE,
SRM.UNIT_NAME, 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, (SELECT O.UNIT_NO || '-' || O.TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = SRM.UNIT_NAME) AS UNIT_CODE_NAME,
@@ -1102,33 +1173,80 @@
<select id="purchaseOrderAdminSupplyInfo" parameterType="map" resultType="map"> <select id="purchaseOrderAdminSupplyInfo" parameterType="map" resultType="map">
SELECT SELECT
PM.OBJID PM.OBJID
,CODE_NAME(PM.PRODUCT) AS PRODUCT_NAME ,PM.CATEGORY_CD
,PM.MECHANICAL_TYPE ,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 ,(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.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 ,RM.RELEASE_DATE
,CM.PAID_TYPE
,CM.OBJID AS CONTRACT_OBJID
FROM FROM
PROJECT_MGMT AS PM PROJECT_MGMT AS PM
LEFT OUTER JOIN LEFT OUTER JOIN
RELEASE_MGMT RM RELEASE_MGMT RM
ON PM.OBJID::VARCHAR = RM.PARENT_OBJID ON PM.OBJID::VARCHAR = RM.PARENT_OBJID
AND PM.PRODUCT = RM.PRODUCT AND PM.PRODUCT = RM.PRODUCT
<!-- LEFT OUTER JOIN LEFT OUTER JOIN
(SELECT * FROM (SELECT DENSE_RANK() OVER(PARTITION BY T.SUPPLY_OBJID ORDER BY T.CHARGER_NAME ASC) AS TOP, T.* CONTRACT_MGMT CM
FROM SUPPLY_CHARGER_MNG T WHERE CHARGER_TYPE = '0000330' /*발주서공급처담당*/ ON PM.CONTRACT_OBJID = CM.OBJID
) AS T WHERE TOP = 1
) AS T2
ON T1.OBJID = T2.SUPPLY_OBJID::NUMERIC -->
WHERE 1=1 WHERE 1=1
AND PM.OBJID = #{PROJECT_NO} AND PM.OBJID = #{PROJECT_NO}
</select> </select>
<select id="SalesBomPartListByProjectUnit" parameterType="map" resultType="map"> <select id="SalesBomPartListByProjectUnit" parameterType="map" resultType="map">
SELECT T1.PARENT_OBJID AS BOM_REPORT_OBJID <!-- M-BOM 데이터 조회: PROJECT_MGMT.BOM_REPORT_OBJID -> BOM_PART_QTY -> PART_MNG -->
,T1.PART_OBJID SELECT
,T1.OBJID SALES_BOM_REPORT_PART_OBJID BPQ.BOM_REPORT_OBJID
,T1.SUPPLY_OBJID ,BPQ.PART_NO AS PART_OBJID
,PM.PART_NAME ,PM.PART_NAME
,PM.PART_NO ,PM.PART_NO
,PM.SPEC ,PM.SPEC
@@ -1136,18 +1254,19 @@
,PM.REMARK ,PM.REMARK
,PM.UNIT ,PM.UNIT
,BPQ.QTY AS ORDER_QTY ,BPQ.QTY AS ORDER_QTY
,T1.WRITER ,NULL AS SUPPLY_OBJID
FROM SALES_BOM_REPORT_PART AS T1 ,NULL AS WRITER
,PART_BOM_REPORT AS PBR FROM
,BOM_PART_QTY AS BPQ PROJECT_MGMT AS PJT
,PART_MNG AS PM INNER JOIN BOM_PART_QTY AS BPQ
WHERE PBR.OBJID = BPQ.BOM_REPORT_OBJID ON PJT.BOM_REPORT_OBJID = BPQ.BOM_REPORT_OBJID::VARCHAR
AND T1.PART_OBJID = BPQ.PART_NO LEFT JOIN PART_MNG AS PM
AND T1.PART_OBJID = PM.OBJID::VARCHAR ON COALESCE(NULLIF(BPQ.LAST_PART_OBJID, ''), BPQ.PART_NO) = PM.OBJID::VARCHAR
AND PBR.CONTRACT_OBJID = #{PROJECT_OBJID} WHERE 1=1
AND PBR.UNIT_CODE = #{UNIT_CODE} AND PJT.OBJID = #{PROJECT_OBJID}
AND PBR.OBJID = T1.PARENT_OBJID AND PJT.BOM_REPORT_OBJID IS NOT NULL
ORDER BY BPQ.SEQ AND PJT.BOM_REPORT_OBJID != ''
ORDER BY BPQ.SEQ, PM.PART_NO
</select> </select>
<update id="mergeReceiptSalesRequestInfo" parameterType="map"> <update id="mergeReceiptSalesRequestInfo" parameterType="map">

View File

@@ -274,6 +274,18 @@ public class SalesMngController {
if(!"".equals(salesRequestMasterObjId)){ if(!"".equals(salesRequestMasterObjId)){
resultMap = salesMngService.getSalesRequestMasterInfo(request, paramMap); 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{ }else{
resultMap.put("OBJID", CommonUtils.createObjId()); resultMap.put("OBJID", CommonUtils.createObjId());
resultMap.put("STATUS", "create"); 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_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")); 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){ }catch(Exception e){
e.printStackTrace(); e.printStackTrace();
} }