Files
wace_plm/WebContent/WEB-INF/view/purchaseOrder/deliveryResultFormCostPopUp.jsp
chpark da06c4684c Initial commit: WACE PLM with database initialization features
- Add Docker Compose configurations for dev, prod, and standalone environments
- Add database initialization scripts (init-db.sh, init-db-docker.sh)
- Add enhanced start-docker-linux.sh with DB init support
- Add comprehensive database initialization guide
- Support for automatic dbexport.pgsql import on first run
- Include safety checks for production environment
2025-08-29 15:46:08 +09:00

375 lines
14 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="com.pms.common.utils.*"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ page import="java.util.*" %>
<%@include file= "/init.jsp" %>
<%
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String userId = CommonUtils.checkNull(person.getUserId());
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=Constants.SYSTEM_NAME%></title>
</head>
<script>
$(function() {
$(document).ready(function() {
$("#btnClose").click(function(){
self.close(0);
});
$("#btnReg").click(function(){
fn_save();
});
fn_getPurchaseOrderTargetPartList();
fnc_datepickForName();
$("input[numberOnly='']")
.each(function(){
$(this).css({'text-align':'center'})
})
.on("keyup", function() {
$(this).val(fnc_addComma($(this).val().replace(/[^0-9]/g,"")));
});
});
});
</script>
<script>
function fn_getPurchaseOrderTargetPartList(){
var appendText = "";
$("#partListArea").empty();
$.ajax({
url:"/purchaseOrder/getPurchaseOrderTargetPartList.do",
type:"POST",
data:{"checkArr":"${param.checkArr}"},
dataType:"json",
async:false,
success:function(data){
var resultData = data;
if(0 < resultData.length){
$.each(resultData, function(i){
var RNUM = fnc_checkNull(resultData[i].RNUM);
var PURCHASE_ORDER_NO = fnc_checkNull(resultData[i].PURCHASE_ORDER_NO);
var OBJID = fnc_checkNull(resultData[i].OBJID);
var PART_OBJID = fnc_checkNull(resultData[i].PART_OBJID);
var PART_NO = fnc_checkNull(resultData[i].PART_NO);
var LD_PART_OBJID = fnc_checkNull(resultData[i].LD_PART_OBJID); //장납기부품OBJID
var DPP_OBJID = fnc_checkNull(resultData[i].DPP_OBJID); //단가등록 OBJID
var PART_NAME = fnc_checkNull(resultData[i].PART_NAME);
var PURCHASE_ORDER_MASTER_OBJID = fnc_checkNull(resultData[i].PURCHASE_ORDER_MASTER_OBJID);
var SPEC = fnc_checkNull(resultData[i].SPEC);
var MAKER = fnc_checkNull(resultData[i].MAKER);
var QTY = fnc_checkNull(resultData[i].ORDER_QTY);
//var NON_ARRIVAL_QTY = fnc_checkNullDefaultValue(resultData[i].NON_ARRIVAL_QTY,QTY);
var NON_ARRIVAL_QTY = fnc_checkNull(resultData[i].NON_ARRIVAL_QTY);
var TOTAL_DELIVERY_QTY = fnc_checkNull(resultData[i].TOTAL_DELIVERY_QTY);
var TOTAL_DEFECT_QTY = fnc_checkNull(resultData[i].TOTAL_DEFECT_QTY);
var PARTNER_NAME = fnc_checkNull(resultData[i].PARTNER_NAME);
var PARTNER_PRICE = fnc_checkNull(resultData[i].PARTNER_PRICE);
//var PRICE_SUM = fnc_checkNull(resultData[i].PRICE_SUM);
var REMARK = fnc_checkNull(resultData[i].REMARK);
var TARGET_TITLE = fnc_checkNull(resultData[i].TARGET_TITLE);
var UNIT_TITLE = fnc_checkNull(resultData[i].UNIT_TITLE);
var UNIT = fnc_checkNull(resultData[i].UNIT);
/*
var POM_DELIVERY_DATE = fnc_checkNull(resultData[i].POM_DELIVERY_DATE); //입고요청일
var DELIVERY_DATE = fnc_checkNull(resultData[i].DELIVERY_DATE);
var DH_OBJID = fnc_checkNull(resultData[i].DELIVERY_HISTORY_OBJID);
var DELIVERY_PLAN_DATE = fnc_checkNull(resultData[i].DELIVERY_PLAN_DATE);
*/
var PARTNER_PRICE = fnc_checkNullDefaultValue(resultData[i].DPP_PRICE, resultData[i].PARTNER_PRICE);
var PRICE1 = fnc_checkNullDefaultValue(resultData[i].DPP_PRICE1, resultData[i].PRICE1);
var PRICE2 = fnc_checkNullDefaultValue(resultData[i].DPP_PRICE2, resultData[i].PRICE2);
var PRICE3 = fnc_checkNullDefaultValue(resultData[i].DPP_PRICE3, resultData[i].PRICE3);
//var PRICE4 = fnc_checkNull(resultData[i].PRICE4);
var PRICE_SUM = fnc_checkNullDefaultValue(resultData[i].DPP_PRICE_SUM, resultData[i].PRICE_SUM);
appendText += " <tr class='dataTr' id='"+OBJID+"'>";
appendText += " <input type='hidden' name='OBJID' value='"+OBJID+"'>";
appendText += " <input type='hidden' name='OBJID_"+OBJID+"' value='"+OBJID+"'>";
appendText += " <input type='hidden' name='PART_OBJID_"+OBJID+"' value='"+PART_OBJID+"'>";
appendText += " <input type='hidden' name='LD_PART_OBJID_"+OBJID+"' value='"+LD_PART_OBJID+"'>";
appendText += " <input type='hidden' name='DPP_OBJID_"+OBJID+"' value='"+DPP_OBJID+"'>";
//appendText += " <input type='hidden' name='DH_OBJID_"+OBJID+"' value='"+DH_OBJID+"'>";
//appendText += " <input type='hidden' name='DB_NON_ARRIVAL_QTY_"+OBJID+"' id='DB_NON_ARRIVAL_QTY_"+OBJID+"' value='"+NON_ARRIVAL_QTY+"'>";
//appendText += " <input type='hidden' name='DB_TOTAL_DELIVERY_QTY_"+OBJID+"' id='DB_TOTAL_DELIVERY_QTY_"+OBJID+"' value='"+TOTAL_DELIVERY_QTY+"'>";
//appendText += " <input type='hidden' name='DB_TOTAL_DEFECT_QTY_"+OBJID+"' id='DB_TOTAL_DEFECT_QTY_"+OBJID+"' value='"+TOTAL_DEFECT_QTY+"'>";
/* No */
appendText += " <td title='"+RNUM+"' class='align_c'>"+RNUM+"</td>";
/* 발주번호 */
appendText += " <td title='"+PURCHASE_ORDER_NO+"' class='align_c'>"+PURCHASE_ORDER_NO+"</td>";
/* 관리번호 */
appendText += " <td class='align_l' title='"+PART_NO+"' class='align_c'>"+PART_NO+"</td>";
/* 품명(재질,규격)/품번 */
//appendText += " <td class='align_l' title='"+TARGET_TITLE+"'>";
////appendText += " <a href='#' onclick=\"fn_openPartPopup('"+PART_OBJID+"');\">"+TARGET_TITLE+"</a>";
//appendText += TARGET_TITLE;
//appendText += " </td>";
/* 품명 */
appendText += " <td class='align_l' title='"+PART_NAME+"'>";
appendText += " <input type='hidden' name='PART_NAME_"+OBJID+"' id='PART_NAME_"+OBJID+"' value='"+PART_NAME+"'>";
appendText += PART_NAME;
appendText += " </td>";
/* 규격 */
appendText += " <td class='align_l' title='"+SPEC+"'>";
appendText += " <input type='hidden' name='SPEC_"+OBJID+"' id='SPEC_"+OBJID+"' value='"+SPEC+"'>";
appendText += SPEC;
appendText += " </td>";
/* Maker */
appendText += " <td class='align_l' title='"+MAKER+"'>";
appendText += " <input type='hidden' name='MAKER_"+OBJID+"' id='MAKER_"+OBJID+"' value='"+MAKER+"'>";
appendText += MAKER;
appendText += " </td>";
/* 단위 */
//appendText += " <td title='"+UNIT_TITLE+"' class='align_c'>"+UNIT_TITLE+"</td>";
appendText += " <td class='align'>";
appendText += " <input type='hidden' name='UNIT_"+OBJID+"' id='UNIT_"+OBJID+"' value='"+UNIT+"'>";
appendText += " "+UNIT_TITLE;
appendText += " </td>";
/* 업체 */
//appendText += " <td title='"+PARTNER_NAME+"' class='align_c'>"+PARTNER_NAME+"</td>";
/* 발주수량 */
appendText += " <td class='align_c'>";
appendText += " <input type='hidden' name='ORDER_QTY_"+OBJID+"' id='ORDER_QTY_"+OBJID+"' value='"+QTY+"'>";
appendText += " "+numberWithCommas(QTY);
appendText += " </td>";
/* 단가 공급업체 */
appendText += " <td class='align_c'>";
appendText += " <input style='text-align:center' type='text' name='PARTNER_PRICE_"+OBJID+"' id='PARTNER_PRICE_"+OBJID+"' value='"+numberWithCommas(PARTNER_PRICE)+"' onchange='fn_calc("+OBJID+");' numberOnly>";
//appendText += " "+numberWithCommas(PARTNER_PRICE);
appendText += " </td>";
/* 단가 레이져업체 */
appendText += " <td class='align_c'>";
appendText += " <input style='text-align:center' type='text' name='PRICE1_"+OBJID+"' id='PRICE1_"+OBJID+"' value='"+numberWithCommas(PRICE1)+"' onchange='fn_calc("+OBJID+");' numberOnly>";
//appendText += " "+numberWithCommas(PRICE1);
appendText += " </td>";
/* 단가 용접업체 */
appendText += " <td class='align_c'>";
appendText += " <input style='text-align:center' type='text' name='PRICE2_"+OBJID+"' id='PRICE2_"+OBJID+"' value='"+numberWithCommas(PRICE2)+"' onchange='fn_calc("+OBJID+");' numberOnly>";
//appendText += " "+numberWithCommas(PRICE2);
appendText += " </td>";
/* 단가 가공업체 */
appendText += " <td>";
appendText += " <input style='text-align:center' type='text' name='PRICE3_"+OBJID+"' id='PRICE3_"+OBJID+"' value='"+numberWithCommas(PRICE3)+"' onchange='fn_calc("+OBJID+");' numberOnly>";
//appendText += " "+numberWithCommas(PRICE3);
appendText += " <input type='hidden' name='PRICE_SUM_"+OBJID+"' id='PRICE_SUM_"+OBJID+"' value='"+numberWithCommas(PRICE_SUM)+"'>";
appendText += " </td>";
/* 공급가 */
appendText += " <td class='align_r' id='TD_PRICE_SUM_"+OBJID+"'>";
appendText += " "+numberWithCommas(PRICE_SUM);
appendText += " </td>";
/* 부가세 */
appendText += " <td class='align_r' id='TD_VAT_PRICE_SUM_"+OBJID+"'>";
appendText += " "+numberWithCommas(Number(PRICE_SUM)*0.1);
appendText += " </td>";
appendText += " </tr>";
});
}else{
appendText += "<tr>";
appendText += "<td colspan='14'>조회된 내용이 없습니다.</td>";
appendText +="</tr>";
}
},
error: function(jqxhr, status, error){
}
});
$("#partListArea").append(appendText);
}
function fn_save(){
var formData = $("#form1").serialize();
//if(fn_checkInputData()){
if(confirm("저장하시겠습니까?")){
$("input[numberOnly='']").each(function(){
$(this).val($(this).val().replace(/,/gi,""));
});
$("input[name*='PRICE']").each(function(){
$(this).val($(this).val().replace(/,/gi,""));
});
$.ajax({
type: "POST",
url: "/purchaseOrder/saveDeliveryResultCostInfo.do",
data: $("#form1").serialize(),
dataType:"json",
success:function(data){
Swal.fire(data.msg);
if(data.result){
opener.fn_search();
location.reload();
//self.close();
}
},
error: function(jqxhr, status, error){
}
});
//}
}
}
function fn_checkInputData(){
var returnFlag = true;
$("input[name=OBJID]").each(function(i) {
var targetObjId = $(this).val();
var PRICE1 = Number($("#PRICE1_" +targetObjId).val()); //단가
var PRICE2 = Number($("#PRICE2_" +targetObjId).val()); //단가
var PRICE3 = Number($("#PRICE3_" +targetObjId).val()); //단가
if("" == PRICE1){
Swal.fire("단가를 입력해 주세요.");
returnFlag = false;
return false;
}
});
return returnFlag;
}
//자동계산
function fn_calc(objid){
var PARTNER_PRICE = Number($("#PARTNER_PRICE_" +objid).val().replace(/,/gi,"")); //단가
var PRICE1 = Number($("#PRICE1_" +objid).val().replace(/,/gi,"")); //단가
var PRICE2 = Number($("#PRICE2_" +objid).val().replace(/,/gi,"")); //단가
var PRICE3 = Number($("#PRICE3_" +objid).val().replace(/,/gi,"")); //단가
//var PRICE4 = Number($("#PRICE4" +objid).val()); //단가
var ORDER_QTY = Number($("#ORDER_QTY_" +objid).val().replace(/,/gi,"")); //발주수량
var PRICE_SUM = (PRICE1 + PRICE2 + PRICE3 + PARTNER_PRICE) * ORDER_QTY;
$("#PRICE_SUM_"+objid).val(numberWithCommas(PRICE_SUM+""));
$("#TD_PRICE_SUM_"+objid).html(numberWithCommas(PRICE_SUM+""));
$("#TD_VAT_PRICE_SUM_"+objid).html(numberWithCommas(Number(PRICE_SUM)*0.1 +""));
}
</script>
<style>
.input_title {border-left:1px solid #ccc;}
.input_sub_title {border-left:1px solid #ccc;}
.pmsPopupForm tr:last-child td{border-bottom:1px solid #ccc;}
</style>
<body>
<form name="hiddenForm" id="hiddenForm" action="" method="post">
<input type="hidden" name="targetObjId" />
<input type="hidden" name="docType" />
<input type="hidden" name="docTypeName" />
<input type="hidden" name="TITLE" />
<input type="hidden" name="callbackFnc" />
<input type="hidden" name="OBJID" />
<input type="hidden" name="status" value="0" />
</form>
<form name="form1" id="form1" action="" method="post">
<input type="hidden" name="PURCHASE_ORDER_MASTER_OBJID" value="${paramMap.PURCHASE_ORDER_MASTER_OBJID }" />
<section>
<div class="plm_menu_name" style="display:flex;">
<h2>
<span>단가 등록</span>
</h2>
</div>
<div id="businessPopupFormWrap" style="z-index:99;">
<table class="pmsPopupForm" style="margin-top:10px;">
<tr>
<td class="input_title">
<label for="">입고 품목</label>
</td>
</tr>
<tr>
<td>
<div class="in_table_scroll_wrap _table2" style="height:400px;width:100%;">
<table class="plm_table">
<colgroup>
<col width="30px" />
<col width="120px" />
<col width="120px" />
<col width="170px" />
<col width="170px" />
<col width="80px" />
<col width="50px" />
<col width="50px" />
<col width="60px" />
<col width="60px" />
<col width="60px" />
<col width="60px" />
<col width="80px" />
<col width="60px" />
</colgroup>
<thead>
<tr class="plm_thead">
<td rowspan="" colspan="8">발주서 상세</td>
<td rowspan="" colspan="4">단가</td>
<td rowspan="2" colspan="">공급가</td>
<td rowspan="2" colspan="">부가세</td>
</tr>
<tr class="plm_thead">
<td>No</td>
<td>발주번호</td>
<td>품번</td>
<td>품명</td>
<td>규격</td>
<td>Maker</td>
<td>단위</td>
<td>수량</td>
<td>공급업체</td>
<td>레이져업체</td>
<td>용접업체</td>
<td>가공업체</td>
</tr>
</thead>
<tbody id="partListArea">
</tbody>
</table>
</div>
</td>
</tr>
</table>
</div>
<div class="btn_wrap">
<div class="plm_btn_wrap_center">
<input type="button" value="저장" class="plm_btns" id="btnReg">
<input type="button" value="닫기" id="btnClose" class="plm_btns">
</div>
</div>
</section>
</form>
</body>
</html>