From 98864c6079000eef56efc58e16fc9d5cc203ccd7 Mon Sep 17 00:00:00 2001 From: hjjeong Date: Tue, 10 Mar 2026 11:46:19 +0900 Subject: [PATCH] =?UTF-8?q?=EC=99=B8=EC=A3=BC=EA=B0=80=EA=B3=B5=EB=B0=9C?= =?UTF-8?q?=EC=A3=BC=EC=84=9C=20=EC=96=91=EC=8B=9D=EB=B3=80=EA=B2=BD=20?= =?UTF-8?q?=EB=B0=8F=20=ED=92=88=EC=9D=98=EC=84=9C=20=EC=A0=95=EB=B3=B4=20?= =?UTF-8?q?=EA=B0=80=EC=A0=B8=EC=98=A4=EB=8F=84=EB=A1=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchaseOrderFormPopup_outsourcing.jsp | 101 ++++-------------- .../controller/PurchaseOrderController.java | 4 + src/com/pms/mapper/purchaseOrder.xml | 20 +++- src/com/pms/service/PurchaseOrderService.java | 3 + 4 files changed, 47 insertions(+), 81 deletions(-) diff --git a/WebContent/WEB-INF/view/purchaseOrder/purchaseOrderFormPopup_outsourcing.jsp b/WebContent/WEB-INF/view/purchaseOrder/purchaseOrderFormPopup_outsourcing.jsp index 39b8a06..1b5e71d 100644 --- a/WebContent/WEB-INF/view/purchaseOrder/purchaseOrderFormPopup_outsourcing.jsp +++ b/WebContent/WEB-INF/view/purchaseOrder/purchaseOrderFormPopup_outsourcing.jsp @@ -65,23 +65,6 @@ font-size: 28px; font-weight: bold; } -.approval-box { - border: 1px solid #333; - width: 200px; -} -.approval-box table { - width: 100%; - border-collapse: collapse; -} -.approval-box th, .approval-box td { - border: 1px solid #333; - text-align: center; - padding: 5px; - font-size: 12px; -} -.approval-box th { - background-color: #f0f0f0; -} .po-info-table { width: 100%; border-collapse: collapse; @@ -95,7 +78,8 @@ .po-info-table .label { /* background-color: #f5f5f5; */ font-weight: bold; - width: 20%; + width: 35%; + white-space: nowrap; } .po-manager-box { border: 1px solid #333; @@ -215,9 +199,6 @@ $(document).ready(function(){ $("#display_email2").text(email); }); - // 결재라인 가져오기 - fn_getApprLine(); - var unit_cd = $.parseJSON($("#unit_cd").val()); // 그리드 초기화 - 외주가공 발주서용 컬럼 @@ -225,15 +206,15 @@ $(document).ready(function(){ url: "" ,datatype: "local" ,data: $.parseJSON($("#gridDetailList").val()) - ,colNames: ["OBJID","PART_OBJID","No","발주번호","업체명","제품명","부품명","수량","단위","단가","합계","작업지시번호","부품품번","납기요청"] + ,colNames: ["OBJID","PART_OBJID","No","업체명","제품명","부품명","수량","단위","단가","합계","작업지시번호","부품품번","입고요청일"] ,colModel: [ {name:"OBJID" , hidden: true, sortable:false, editable:false} ,{name:"PART_OBJID" , hidden: true, sortable:false, editable:false} ,{name:"ROW_NUM" , width:35, align:"center", sortable:false, editable:false} - ,{name:"PURCHASE_ORDER_NO" , width:110, align:"center", sortable:false, editable:false} - ,{name:"PARTNER_NAME" , width:80, align:"center", sortable:false, editable:false} + //,{name:"PURCHASE_ORDER_NO" , width:110, align:"center", sortable:false, editable:false} + ,{name:"PARTNER_NAME" , width:130, align:"left", sortable:false, editable:false} ,{name:"PRODUCT_NAME" , width:160, align:"left", sortable:false, editable:<%= isModify %>} - ,{name:"PART_NAME" , width:80, align:"center", sortable:false, editable:false} + ,{name:"PART_NAME" , width:140, align:"left", sortable:false, editable:false} ,{name:"ORDER_QTY" , width:50, align:"right", sortable:false, editable:<%= isModify %> ,formatter:"integer", formatoptions:{thousandsSeparator:","} ,editoptions:{ @@ -246,14 +227,14 @@ $(document).ready(function(){ ,editoptions:{ value: unit_cd } } ,{name:"PARTNER_PRICE" , width:80, align:"right", sortable:false, editable:<%= isModify %> - ,formatter:"integer", formatoptions:{thousandsSeparator:","} + ,formatter:"number", formatoptions:{thousandsSeparator:",", decimalPlaces:2} ,editoptions:{ dataInit: function(e){ e.style.textAlign = "right"; } ,dataEvents: [{type:"change", fn:function(e){ gridFn.calcRowAll(e); }}] } } ,{name:"SUPPLY_UNIT_PRICE" , width:90, align:"right", sortable:false, editable:false - ,formatter:"integer", formatoptions:{thousandsSeparator:","} + ,formatter:"number", formatoptions:{thousandsSeparator:",", decimalPlaces:2} } ,{name:"WORK_ORDER_NO" , width:100, align:"center", sortable:false, editable:<%= isModify %>} ,{name:"PART_NO" , width:90, align:"center", sortable:false, editable:false} @@ -306,17 +287,6 @@ $(document).ready(function(){ $("#btnAdd").click(function(){ fn_openPartMngListPopUp(); }); $("#btnDel").click(function(){ gridFn.delRow(); }); $("#btnSave").click(function(){ fn_save(); }); - $("#btnAppr").click(function(){ - if(fnc_valitate("form1")){ - var objId = "${objId}"; - if(""==grid.getRowData()){ - Swal.fire('저장할 품목이 존재 하지 않습니다'); - return; - } - var title = encodeURIComponent("외주가공 발주서"); - window.open("/approval/registApproval.do?targetType=PURCHASE_ORDER_OUTSOURCING&targetObjId="+objId+"&approvalTitle="+title,"registApproval","width=700,height=700"); - } - }); <% }else{ %> $("#btnDown").click(function(){ document.form1.action = "/purchaseOrder/purchaseOrderFormPopup_outsourcing.do?actType=DOWN&PURCHASE_ORDER_MASTER_OBJID=${objId}"; @@ -331,29 +301,6 @@ $(document).ready(function(){ gridFn.footerSummary(); }); -// 결재라인 가져오기 -function fn_getApprLine(){ - if('${objId}'!=''){ - $.ajax({ - url:"/common/getApprovalLine.do", - type:"POST", - data:{"objId":"${objId}"}, - dataType:"json", - async:false, - success:function(data){ - $.each(data.RESULT, function(i,o){ - if(i==0){ - $("#appr_writer").html(o.WRITER); - } - if(i < 3){ - $("#appr"+(i+1)).html(o.TARGET_USER_NAME +"
"+ (o.PROC_DATE!=undefined?o.PROC_DATE:"")); - } - }); - } - }); - } -} - // 행추가 팝업 function fn_openPartMngListPopUp(){ var url = "/partMng/partMngListPopUp.do?callbackFnc=fn_addRow&callType=purchaseOrder"; @@ -499,9 +446,15 @@ var gridFn = { }); $("#TOTAL_SUPPLY_PRICE").val(numberWithCommas(totalSupplyPrice)); + $("#TOTAL_AMOUNT_DISPLAY").text(numberWithCommasDecimal(totalSupplyPrice) + " 원"); } } +function numberWithCommasDecimal(num) { + var n = Number(num); + return n.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ","); +} + // 라이브러리 로드 완료 후 dataLoaded 플래그 설정 $(window).on('load', function() { setTimeout(function() { @@ -718,20 +671,6 @@ function fn_generateAndUploadPdf(callback) {
㈜ 알피에스
외주가공 발주서
-
- - - - - - - - - - - -
담당자부사장대표이사
${info.MANAGER_NAME}전 결
-
@@ -757,6 +696,10 @@ function fn_generateAndUploadPdf(callback) { + + 4. 합계금액(VAT별도) : + + @@ -767,7 +710,7 @@ function fn_generateAndUploadPdf(callback) { 담 당 자 <% if(isModify){ %> - <% for(int u=0; u <% if(isModify){ %> - <% for(int u=0; u -
[아래 상세내역 리스트 확인]
+
@@ -867,7 +810,7 @@ function fn_generateAndUploadPdf(callback) {
- +
총 공 급 가 액총 공 급 가 액 (VAT별도)
diff --git a/src/com/pms/controller/PurchaseOrderController.java b/src/com/pms/controller/PurchaseOrderController.java index ed7cf1c..4692ba8 100644 --- a/src/com/pms/controller/PurchaseOrderController.java +++ b/src/com/pms/controller/PurchaseOrderController.java @@ -911,6 +911,10 @@ public class PurchaseOrderController { if("".equals(vendorName)) vendorName = CommonUtils.checkNull(partRow.get("vendor_name")); detailRow.put("VENDOR_NAME", vendorName); + String productName = CommonUtils.checkNull(partRow.get("PROJECT_PRODUCT_NAME")); + if("".equals(productName)) productName = CommonUtils.checkNull(partRow.get("project_product_name")); + detailRow.put("PRODUCT_NAME", productName); + String partName = CommonUtils.checkNull(partRow.get("PART_NAME")); if("".equals(partName)) partName = CommonUtils.checkNull(partRow.get("part_name")); detailRow.put("PART_NAME", partName); diff --git a/src/com/pms/mapper/purchaseOrder.xml b/src/com/pms/mapper/purchaseOrder.xml index 4575f32..5b89b49 100644 --- a/src/com/pms/mapper/purchaseOrder.xml +++ b/src/com/pms/mapper/purchaseOrder.xml @@ -887,11 +887,27 @@ PM.PART_NO, PM.PART_NAME, PM.SPEC, - PM.UNIT, - PM.MAKER + COALESCE(NULLIF(SRP.UNIT, ''), PM.UNIT) AS UNIT, + PM.MAKER, + (SELECT PJ.PART_NAME FROM PROJECT_MGMT PJ WHERE PJ.OBJID::VARCHAR = SRM.PROJECT_NO) AS PROJECT_PRODUCT_NAME, + COALESCE(SRP.DELIVERY_REQUEST_DATE, + CASE WHEN SRM.MBOM_HEADER_OBJID IS NOT NULL THEN + CASE WHEN COALESCE(SRP.MATERIAL_YN, 'N') = 'Y' THEN + (SELECT MIN(MD3.DELIVERY_REQUEST_DATE) FROM MBOM_DETAIL MD3 + WHERE MD3.RAW_MATERIAL_PART_NO = PM.PART_NO + AND MD3.MBOM_HEADER_OBJID::VARCHAR = SRM.MBOM_HEADER_OBJID::VARCHAR) + ELSE + (SELECT MIN(MD3.DELIVERY_REQUEST_DATE) FROM MBOM_DETAIL MD3 + WHERE MD3.PART_OBJID::VARCHAR = SRP.PART_OBJID::VARCHAR + AND MD3.MBOM_HEADER_OBJID::VARCHAR = SRM.MBOM_HEADER_OBJID::VARCHAR) + END + ELSE NULL + END + ) AS DELIVERY_REQUEST_DATE FROM SALES_REQUEST_PART SRP LEFT JOIN PART_MNG PM ON PM.OBJID::VARCHAR = SRP.PART_OBJID + LEFT JOIN SALES_REQUEST_MASTER SRM ON SRP.SALES_REQUEST_MASTER_OBJID = SRM.OBJID WHERE SRP.SALES_REQUEST_MASTER_OBJID = #{SALES_REQUEST_OBJID} AND SRP.VENDOR_PM = #{PARTNER_OBJID} diff --git a/src/com/pms/service/PurchaseOrderService.java b/src/com/pms/service/PurchaseOrderService.java index 1cf8743..99a1fd4 100644 --- a/src/com/pms/service/PurchaseOrderService.java +++ b/src/com/pms/service/PurchaseOrderService.java @@ -1941,6 +1941,9 @@ public class PurchaseOrderService { partParam.put("SPEC", CommonUtils.checkNull((String) partMap.get("spec"))); partParam.put("UNIT", CommonUtils.checkNull((String) partMap.get("unit"))); partParam.put("MAKER", CommonUtils.checkNull((String) partMap.get("maker"))); + partParam.put("PRODUCT_NAME", CommonUtils.checkNull(partMap.get("project_product_name"))); + Object deliveryDateObj = partMap.get("delivery_request_date"); + partParam.put("DELIVERY_REQUEST_DATE", deliveryDateObj != null ? String.valueOf(deliveryDateObj).trim() : ""); partParam.put("WRITER", writer); partParam.put("STATUS", "create");