Files
wace_plm/WebContent/WEB-INF/view/purchaseOrder/deliveryAcceptanceFormPopUp_new.jsp

1171 lines
49 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ page import="com.pms.common.utils.*"%>
<%@ page import="java.util.*"%>
<%@include file="/init_jqGrid.jsp"%>
<%
Map info = (HashMap)(request.getAttribute("info"));
boolean isModify = true;
if(info!=null &&
( CommonUtils.checkNull(info.get("APPR_STATUS")).equals( "결재중" )
||CommonUtils.checkNull(info.get("APPR_STATUS")).equals( "결재완료" )
||CommonUtils.checkNull(info.get("MULTI_YN")).equals( "Y") && !CommonUtils.checkNull(info.get("MULTI_MASTER_YN")).equals( "Y")
||CommonUtils.checkNull(info.get("STATUS")).equals( "cancel" )
)
){
isModify = false; //수정불가
}
String actType = (String)request.getAttribute("actType");
%>
<!DOCTYPE html>
<html>
<head>
<!-- //JSTL 페이징 변수선언 -->
<c:set var="now" value="<%=new java.util.Date() %>" />
<c:set var="sysYear"><fmt:formatDate value="${now}" pattern="yyyy" /></c:set>
<c:set var="sysDate"><fmt:formatDate value="${now}" pattern="yyyy-MM-dd" /></c:set>
<style>
html, body {
margin: 0;
padding: 0;
overflow: hidden;
height: 100%;
box-sizing: border-box;
}
section {
margin: 0;
padding: 0 4px;
}
form {
margin: 0;
}
.ui-jqgrid-view {
max-height: 322px;
}
.ui-jqgrid-bdiv {
overflow-y: scroll !important;
max-height: 280px !important;
}
.footrow {
display : none;
}
.pointer {
cursor: pointer;
text-decoration: underline;
}
</style>
<script type="text/javascript">
//var grid;
var TYPE_STANDARD = "0001069"; //발주구분코드:일반부품
var TYPE_LONG_DLV = "0001070"; //발주구분코드:장납기부품
var TYPE_ETC = "0001538"; //발주구분코드:잡자재
// 입고창고/계정과목 select2 초기화 (동적 생성 select 대응)
function initDeliverySelect2(scope) {
var $target = scope ? $(scope) : $(document);
$target.find("select[name='LOCATION'], select[name='SUB_LOCATION']").each(function(){
if($(this).data('select2')) $(this).select2('destroy');
$(this).select2({ width:'resolve', placeholder:'선택', allowClear:true });
});
}
$(document).ready(function(){
var _saving = false;
$("#btnReg").click(function(e){
e.preventDefault();
var formData = $("#form1").serialize();
if(fn_checkInputData()){
if(confirm("저장하시겠습니까?")){
if(_saving){
alert('ing');
return;
}
_startLoading("Loading...");
_saving = true;
$("input[name*='_QTY']").each(function(){
$(this).val($(this).val().replace(/,/gi,""));
});
$.ajax({
type: "POST",
/* url: "/purchaseOrder/saveDeliveryAcceptanceInfo.do", */
url: "/purchaseOrder/saveDeliveryInfo.do",
data: $("#form1").serialize(),
dataType:"json",
success:function(data){
_saving = false;
alert(data.message);
/* if(data.RESULT){ */
opener.fn_search();
self.close();
/* } */
},
complete:function(){
//_endLoading();
},
error: function(jqxhr, status, error){
_saving = false;
alert("저장 중 오류가 발생했습니다.");
_endLoading();
}
});
}
}
/* fn_save(); */
});
//추가
$("#btnAdd").click(function(){
fn_addarrival();
});
//상신된 결재라인 가져오기
fn_getApprLine();
if("${info.PARTNER_OBJID}" != "" && typeof changelist === "function"){
changelist("${info.PARTNER_OBJID}");
}
$("#btnApply").click(function(){
fn_Apply();
});
$("#btnLocation").click(function(){
fn_location_save();
});
$("#btnRemove").click(function() {
fn_removearrival();
});
//fn_calc();
//부가세 선택불가처리 230908
//$("#VAT_METHOD").prop("disabled","disabled");
$("input:text[numberOnly]").on("keyup", function() {
$(this).val(fnc_addComma($(this).val().replace(/[^0-9]/g,"")));
});
$("input[name*=PRICE]").each(function(){
$(this).val(fnc_addComma($(this).val()));
});
//유닛명
if("${info.CONTRACT_MGMT_OBJID}"!=""){
fn_UnitCodeList("${info.CONTRACT_MGMT_OBJID}", "UNIT_CODE","");
$("#UNIT_CODE").val("${info.UNIT_CODE}");
}
//프로젝트번호 triggger로 동시적용 정보 셋팅(240109)
$("#CONTRACT_MGMT_OBJID").val("${info.CONTRACT_MGMT_OBJID}");
//$("#CONTRACT_MGMT_OBJID").trigger("change");
//fn_setMultiInfo("${info.CONTRACT_MGMT_OBJID}")
fn_setMultiInfoForSaved("${info.CONTRACT_MGMT_OBJID}"); //동시적용 정보 셋팅
fnc_datepick(); //달력
$(".select2").select2();
$("#LOCATION_CD, #SUB_LOCATION_CD").select2({ width:'resolve', placeholder:'선택', allowClear:true });
// 서버 렌더링된 입고창고/계정과목 select 값 설정 + select2 초기화
selectSetVal("data-select", true);
initDeliverySelect2("#addData");
var originalValue;
$("[id^=RECEIPT_QTY_]").focus(function() {
originalValue = $(this).val(); // Store the original value when the input gains focus
//alert("originalValue:"+originalValue);
});
$("[id^=RECEIPT_QTY_]").change(function() {
var objid = $(this).attr('id').split('_')[2]; // id에서 objid 추출
var arrivalPlanDate = $("#ARRIVAL_PLAN_DATE_"+objid).val();
var invoiceObjid = $("#INVOICE_OBJID_"+objid).val();
var sysDate = "${sysDate}";
var arrivalDate = new Date(arrivalPlanDate);
var systemDate = new Date(sysDate);
//alert("invoiceObjid:"+invoiceObjid);
if(invoiceObjid != null && invoiceObjid != ""){
Swal.fire("거래명세서가 발행되어있습니다. </br> 차수를 추가하여 입고등록해주세요.");
//$(this).val(originalValue);
return;
}
//alert("arrivalPlanDate:"+arrivalPlanDate);
//alert("sysDate:"+sysDate);
//alert("originalValue:"+originalValue);
/* if(arrivalDate < systemDate){
Swal.fire("입고예정일 이후에는 변경할 수 없습니다.");
$(this).val(originalValue); // 값을 원래 값으로 되돌림
return;
} */
});
addZeroEvtAtPriceInput();
});
//차수를 추가한다.
function fn_addarrival(){
var trCount = $("#addData tr").length;
var appendText = "";
var appendHead1Text = "";
var appendHead2Text = "";
var listSize = "${partList.size()}";
var addColStr = '<col width="90px" /><col width="130px" /><col width="130px" /><col width="90px" /><col width="90px" class="lastCol" />';
var tdHeaderCount = $(".tdHeader").length + 1;
// 현재 최대 그룹 시퀀스를 찾기 위해 추가
var maxGroupSeq = 0;
$("input[name='GROUP_SEQ']").each(function() {
var currentGroupSeq = parseInt($(this).val());
if (currentGroupSeq > maxGroupSeq) {
maxGroupSeq = currentGroupSeq;
}
});
var newGroupSeq = maxGroupSeq + 1;
// 현재 최대 시퀀스를 찾기 위해 추가
var maxSeq = 0;
$("input[name='SEQ']").each(function() {
var currentSeq = parseInt($(this).val());
if (currentSeq > maxSeq) {
maxSeq = currentSeq;
}
});
if(trCount==0){
var seq=1;
appendText+="<thead style='position: relative; z-index: 2;'>";
appendText+="<tr class='plm_thead' id='head1' >";
appendText+="<td class='tdHeader thead' colspan='4'>1차</td>";
appendText+= "<td rowspan='2' class='NON_ARRIVAL_QTY_TXT'>미입고수량</td>";
//appendText+="<td rowspan='2'>미입고수량</td>";
appendText+="</tr>";
appendText+="<tr class='plm_thead' id='head2'>";
appendText+="<td>입고일</td>";
appendText+="<td><input type='checkbox' name='groupCheck_1' value='1'>입고창고</td>";
appendText+="<td><input type='checkbox' name='groupSubCheck_1' value='1'>계정과목</td>";
appendText+="<td>입고수량</td>";
appendText+="</tr>";
appendText+="</thead>";
for(var i=0;i<listSize;i++){
appendText+="<tr id='dataTr_"+seq+"'>";
appendText+="<td>";
appendText+="<input type='hidden' name='OBJID' />";
appendText+="<input type='hidden' name='GROUP_SEQ' value='1' />";
appendText+="<input type='hidden' name='SEQ' value='"+seq+"' />";
appendText+="<input type='hidden' name='INVENTORY_STATUS' value='' />";
appendText+="<input type='hidden' name='RECEIPT_INV_QTY' value='' />";
var ARRIVAL_QTY = $('#part_table tbody tr').eq(i).find('td').eq(5).text().trim();
var PART_OBJID = $('#part_table tbody tr').eq(i).find("input[name^='PART_OBJID']").val();
var ORDER_PART_OBJID = $('#part_table tbody tr').eq(i).find("input[name^='ORDER_PART_OBJID']").val();
var sysDate = "${sysDate}";
appendText+=" <input type='hidden' name='ARRIVAL_QTY' value='"+ARRIVAL_QTY+"'/>";
appendText+=" <input type='text' name='RECEIPT_DATE' class='date' value='"+sysDate+"'/>";
appendText+="</td>";
appendText+="<td>";
appendText+=" <select name='LOCATION' id='LOCATION_"+seq+"' class='LOCATION_1'>"+_warehouseOptHtml+"</select>";
appendText+="</td>";
appendText+="<td>";
appendText+=" <select name='SUB_LOCATION' id='SUB_LOCATION_"+seq+"' class='SUB_LOCATION_1'>"+_acctCodeOptHtml+"</select>";
appendText+="</td>";
appendText+="<td>";
appendText+=" <input type='text' style='text-align:center; color:red;' name='RECEIPT_QTY' class='RECEIPT_QTY_"+ORDER_PART_OBJID+"' value='"+ARRIVAL_QTY+"' onchange='fn_calc("+ORDER_PART_OBJID+");' />";
appendText+="</td>";
appendText+="<td style='width:100px;' id='NON_ARRIVAL_QTY_TXT_"+ORDER_PART_OBJID+"' class='NON_ARRIVAL_QTY_TXT'><input type='text' value='0' style='text-align: center;'/></td>";
/* appendText+="<td>";
appendText+="</td>";
appendText+="<td>";
appendText+="</td>";
appendText+="<td>";
appendText+="</td>"; */
appendText+="</tr>";
seq++;
}
$("#addColgroup1").append(addColStr);
$("#addData").append(appendText);
} else {
$(".NON_ARRIVAL_QTY_TXT").remove();
$('.lastCol').remove();
var seq = maxSeq;
appendHead1Text += "<td class='tdHeader' colspan='4'>" + tdHeaderCount + "차</td>";
appendHead1Text += "<td rowspan='2' class='NON_ARRIVAL_QTY_TXT'>미입고수량</td>";
appendHead2Text += "<td>입고일</td>";
appendHead2Text += "<td><input type='checkbox' name='groupCheck_" + newGroupSeq + "' value='" + newGroupSeq + "'>입고창고</td>";
appendHead2Text += "<td><input type='checkbox' name='groupSubCheck_" + newGroupSeq + "' value='" + newGroupSeq + "'>계정과목</td>";
appendHead2Text += "<td>입고수량</td>";
$("#head1").append(appendHead1Text);
$("#head2").append(appendHead2Text);
$("#addColgroup1").append(addColStr);
for(var i=0;i<listSize;i++){
seq++;
var Text = "";
//Text+="<tr id='dataTr_"+seq+"'>";
Text+="<td>";
Text+="<input type='hidden' name='OBJID' />";
Text+="<input type='hidden' name='GROUP_SEQ' value='"+newGroupSeq+"' />";
Text+="<input type='hidden' name='SEQ' value='"+seq+"' />";
Text+="<input type='hidden' name='INVENTORY_STATUS' value='' />";
Text+="<input type='hidden' name='RECEIPT_INV_QTY' value='' />";
var ARRIVAL_QTY = $('#part_table tbody tr').eq(i).find('td').eq(5).text().trim();
var PART_OBJID = $('#part_table tbody tr').eq(i).find("input[name^='PART_OBJID']").val();
var ORDER_PART_OBJID = $('#part_table tbody tr').eq(i).find("input[name^='ORDER_PART_OBJID']").val();
var NON_ARRIVAL_QTY = $('#part_table tbody tr').eq(i).find("input[name^='NON_RECEIPT_QTY']").val();
var sysDate = "${sysDate}";
Text+=" <input type='hidden' name='ARRIVAL_QTY' value='"+NON_ARRIVAL_QTY+"'/>";
Text+=" <input type='text' name='RECEIPT_DATE' class='date' value='"+sysDate+"'/>";
Text+="</td>";
Text+="<td>";
Text+=" <select name='LOCATION' id='LOCATION_"+seq+"' class='LOCATION_"+newGroupSeq+"'>"+_warehouseOptHtml+"</select>";
Text+="</td>";
Text+="<td>";
Text+=" <select name='SUB_LOCATION' id='SUB_LOCATION_"+seq+"' class='SUB_LOCATION_"+newGroupSeq+"'>"+_acctCodeOptHtml+"</select>";
Text+="</td>";
Text+="<td>";
Text+=" <input type='text' style='text-align:center; color:red;' name='RECEIPT_QTY' class='RECEIPT_QTY_"+ORDER_PART_OBJID+"' value='"+NON_ARRIVAL_QTY+"' onchange='fn_calc("+ORDER_PART_OBJID+");' />";
//Text+=" <input type='text' style='text-align:center;' name='RECEIPT_QTY' class='RECEIPT_QTY_"+PART_OBJID+"' value='"+ARRIVAL_QTY+"' onchange='fn_calc("+PART_OBJID+");' />";
Text+="</td>";
Text+="<td style='width:100px;' id='NON_ARRIVAL_QTY_TXT_"+ORDER_PART_OBJID+"' class='NON_ARRIVAL_QTY_TXT'><input type='text' value='0' style='text-align: center;'/></td>";
//Text+="</tr>";
$("#dataTr_" + parseInt(i + 1)).append(Text);
}
}
$('.date').each(function(i,o){
$(this).attr("size","10");
$(this).datepicker({
changeMonth:true,
changeYear:true
});
});
initDeliverySelect2("#addData");
$("input[name*=RECEIPT_QTY]").trigger("change");
applyScrollHandler();
}
function fn_removearrival() {
var tdHeaderCount = $(".tdHeader").length;
if (tdHeaderCount <= 1) {
alert("1차는 삭제할 수 없습니다.");
return;
}
// '#head1' 테이블의 마지막 'td.tdHeader' 요소를 선택
var lastTdHeader = $("#head1 td.tdHeader:last");
// 'realData' 클래스가 포함되어 있는지 확인
if (lastTdHeader.hasClass("realData")) {
alert("입고된 데이터는 삭제할 수 없습니다.")
return;
}
// 마지막 차수의 열 삭제
$("#head1 td.tdHeader:last").remove();
// head2에서 마지막 차수 삭제
var head2Cells = $("#head2 td");
var cellsToRemove = 4;
head2Cells.slice(-cellsToRemove).remove();
// 데이터 행에서 마지막 차수 삭제
$("tr[id^='dataTr_']").each(function() {
var cells = $(this).find("td");
var lastCell = cells.last(); // 마지막 td를 선택
var cellsToRemove = cells.slice(-5, -1); // 마지막 td(미입고수량)를 제외하고 그 앞의 4개 td를 선택
cellsToRemove.find("select").each(function(){ if($(this).data('select2')) $(this).select2('destroy'); });
cellsToRemove.remove(); // 선택한 td를 삭제
$("input[name*=RECEIPT_QTY]").trigger("change");
/* cellsToRemove.find("input[name='OBJID']").each(function() {
var objId = $(this).val();
if (objId) {
deletedObjIds.push(objId);
}
});
cellsToRemove.remove(); */
});
// colgroup 조정
//var colsToRemove = $("#addColgroup col").slice(-3).length === 3 ? 3 : 2;
$("#addColgroup1 col").slice(-5, -1).remove();
applyScrollHandler();
// 창 크기 조정
//adjustWindowSize();
}
function applyScrollHandler() {
var tableHeader1 = document.querySelector('.plm_table4 thead');
console.log(tableHeader1);
var tableBody = document.querySelector('.plm_table4 tbody');
console.log(tableBody);
var tableHeader2 = document.querySelector('.plm_table3 thead');
var tableBody1 = document.querySelector('.plm_table3 tbody');
console.log(tableBody1);
// 부모 요소인 plm_over를 찾습니다.
var parentElement = document.getElementById('plm_over');
// 부모 요소인 plm_over에 스크롤 이벤트 리스너를 등록합니다.
parentElement.addEventListener('scroll', function() {
// 테이블 1: 상하 스크롤 시에는 헤더만 고정
tableHeader1.style.transform = 'translate(' + parentElement.scrollLeft + 'px, ' + parentElement.scrollTop + 'px)';
// 테이블 2: 상하 스크롤 시에는 헤더만 고정
tableHeader2.style.transform = 'translateY(' + parentElement.scrollTop + 'px)';
// 테이블 1의 본문을 좌우로 고정
tableBody.style.transform = 'translateX(' + parentElement.scrollLeft + 'px)';
});
}
//저장 정보 표현용
function fn_setMultiInfoForSaved(val){
$(".APPLICATION_PROJECT_NO").attr("disabled", "disabled"); //전체 비활성화
$(".APPLICATION_PROJECT_NUMBER").attr("readonly", "readonly");
<c:choose>
<c:when test="${empty multiMasterList}">
</c:when>
<c:otherwise>
//$(".APPLICATION_PROJECT_NO option").remove();
<c:forEach var="mInfo" items="${multiMasterList}" varStatus="status">
var i = '${status.index+1}';
var APPLICATION_PROJECT_NO = "APPLICATION_PROJECT_NO"+i;
//fn_projectNameList("", APPLICATION_PROJECT_NO, "${mInfo.CONTRACT_MGMT_OBJID}", "${info.CONTRACT_MGMT_OBJID}");
//projectCnt = $("#"+APPLICATION_PROJECT_NO).find('option').length;
$("#"+APPLICATION_PROJECT_NO).val("${mInfo.CONTRACT_MGMT_OBJID}");
$("#APPLICATION_PROJECT_NUMBER"+i).val("${mInfo.CONTRACT_NO}");
$("#APPLICATION_OBJID"+i).val("${mInfo.OBJID}")
$("#DELIVERY_PLAN_DATE"+i).val("${mInfo.DELIVERY_PLAN_DATE}");
$("#DELIVERY_PLAN_QTY"+i).val("${mInfo.DELIVERY_PLAN_QTY}");
<%if(!isModify){%>
var jSelObj = $("#"+APPLICATION_PROJECT_NO);
var thisVal = jSelObj.val();
//alert(thisVal);
if(fnc_isEmpty(thisVal)){ //선택값없으면 disabled
jSelObj.attr("disabled", "disabled");
jSelObj.find('option').remove(); //전체 삭제
}else{
jSelObj.attr("disabled", false); //저장된 프로젝트번호만 활성화
jSelObj.find('option').not('option[value='+thisVal+']').remove(); //본인 제외 삭제
}
jSelObj.select2();
<%} %>
</c:forEach>
</c:otherwise>
</c:choose>
}
function addZeroEvtAtPriceInput(){
$("input:text[name*=PRICE]").on("focus", function() {
var val = $(this).val();
if(val == 0 || val == '0'){
$(this).val(zero_to_null());
}
});
$("input:text[name*=PRICE]").on("focusout", function() {
var val = $(this).val();
if(val == ''){
$(this).val(0);
}
});
}
function zero_to_null(value){
if(value=="0"){
return "";
}else{
return value;
}
}
function openPartMngPopup(objId){
var popup_width = 600;
var popup_height = 500;
var hiddenForm = document.hiddenForm;
var url = "/partMng/partMngFormPopUp.do";
if("" != objId){
url = "/partMng/partMngDetailPopUp.do";
}
var target = "partMngPopUp";
fn_centerPopup(popup_width, popup_height, url, target);
hiddenForm.action = url;
hiddenForm.OBJID.value = objId;
hiddenForm.target = target;
hiddenForm.submit();
}
//상신된 결재라인가져오기
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"+i).html(o.WRITER +"<br/>"+ o.REGDATE);
}
$("#appr"+(i+1)).html(o.TARGET_USER_NAME +"<br/>"+ (o.PROC_DATE!=undefined?o.PROC_DATE:" "));
});
},
error: function(jqxhr, status, error){
}
});
}
}
function chageLangSelect(objId, subLocation){
var location = $("#LOCATION_"+objId).val();
fnc_getCodeListAppend(location, "SUB_LOCATION_"+objId, subLocation);
}
function fn_setInventoryLocation(){
var resultList = fnc_getCodeList("<%=Constants.INVENTORY_LOCATION_CD%>");
var _sel = [];
_sel.push("<option value=''>선택</option>");
if(resultList != null && 0 < resultList.length){
for (var i = 0; i < resultList.length; i++) {
var commonCodeId = resultList[i].CODE_ID;
var commonCodeName = resultList[i].CODE_NAME;
_sel.push("<option value='"+commonCodeId+"'>"+commonCodeName+"</option>");
}
}
$("input[name=OBJID]").each(function(i) {
var targetObjId = $(this).val();
$("#DELIVERY_PLACE_CD_"+targetObjId).empty();
$("#DELIVERY_PLACE_CD_"+targetObjId).append(_sel.join(""));
$("#DELIVERY_PLACE_CD_"+targetObjId).val("");
});
}
function fn_Apply(){
var location = $("#LOCATION_CD").val();
var SubLocation = $("#SUB_LOCATION_CD").val();
var locationCheck = $("input[name='LOCATION_CHECK']:checked").val();
var subCheck = $("input[name='SUB_CHECK']:checked").val();
if(locationCheck == 'YES'){
$("input[name^='groupCheck_']").each(function(index) {
var groupCheck = $(this).val();
//alert("groupCheck:"+groupCheck);
if ($(this).is(":checked")) {
var locationClass = ".LOCATION_" + groupCheck;
$(locationClass).val(location).trigger("change");
}
});
}
if(subCheck == 'YES'){
$("input[name^='groupSubCheck_']").each(function(index) {
var groupSubCheck = $(this).val();
//alert("groupSubCheck:"+groupSubCheck);
if ($(this).is(":checked")) {
var subLocationClass = ".SUB_LOCATION_" + groupSubCheck;
$(subLocationClass).val(SubLocation).trigger("change");
}
});
}
}
/* function fn_save(){
var formData = $("#form1").serialize();
if(fn_checkInputData()){
if(confirm("저장하시겠습니까?")){
$("input[name*='_QTY']").each(function(){
$(this).val($(this).val().replace(/,/gi,""));
});
$.ajax({
type: "POST",
url: "/purchaseOrder/saveDeliveryAcceptanceInfo.do",
url: "/purchaseOrder/saveDeliveryInfo.do",
data: $("#form1").serialize(),
dataType:"json",
success:function(data){
alert(data.message);
opener.fn_search();
self.close();
},
error: function(jqxhr, status, error){
}
});
}
}
} */
function fn_checkInputData(){
var returnFlag = true;
$("input[name=OBJID]").each(function(i) {
var targetObjId = $(this).val();
var DELIVERY_QTY = Number($("#RECEIPT_QTY_"+targetObjId).val());
var RECEIPT_INV_QTY = Number($("#RECEIPT_INV_QTY_"+targetObjId).val());
var DELIVERY_DATE = $("#RECEIPT_DATE_"+targetObjId).val();
var DELIVERY_PLACE_CD = $("#LOCATION_"+targetObjId).val();
var SUB_LOCATION = $("#SUB_LOCATION_"+targetObjId).val();
//var DEFECT_QTY = $("#ERROR_QTY_"+targetObjId).val()
//var DEFECT_REASON = $("#ERROR_REASON_"+targetObjId).val()
//var DEFECT_RESP = $("#ATTRIBUTION_"+targetObjId).val()
var INSPECT_DATE = $("#INSPECT_DATE"+targetObjId).val()
if(RECEIPT_INV_QTY > DELIVERY_QTY){
Swal.fire("입고수량이 기입고수량보다 작을 수 없습니다.");
returnFlag = false;
return false;
}
if(0 < DELIVERY_QTY){
if("" == DELIVERY_DATE){
Swal.fire("입력된 입고일자가 없습니다.");
returnFlag = false;
return false;
}
// 2024-08-08
/* if("" == DELIVERY_PLACE_CD){
Swal.fire("입력된 Location이 없습니다.");
returnFlag = false;
return false;
}
if("" == SUB_LOCATION){
Swal.fire("입력된 SubLocation이 없습니다.");
returnFlag = false;
return false;
} */
}
/* if(0 < DEFECT_QTY){
if("" == DEFECT_REASON){
Swal.fire("입력된 사유가 없습니다.");
returnFlag = false;
return false;
}
if("" == DEFECT_RESP){
Swal.fire("입력된 귀책이 없습니다.");
returnFlag = false;
return false;
}
} */
});
$("input[name^=ORDER_PART_OBJID_]").each(function(i) {
var targetPartObjId = $(this).val();
var NON_ARRIVAL_QTY = Number($("#NON_ARRIVAL_QTY_TXT_"+targetPartObjId).text());
//alert("targetPartObjId:"+targetPartObjId);
//alert("NON_ARRIVAL_QTY:"+NON_ARRIVAL_QTY);
if(0 > NON_ARRIVAL_QTY){
Swal.fire("입고수량이 발주수량보다 큽니다.");
returnFlag = false;
return false;
}
});
return returnFlag;
}
//자동계산
function fn_calc(objid){
//alert("objid::"+objid);
//alert($(".ORDER_QTY_" +objid).val());
var ORDER_QTY = Number($(".ORDER_QTY_" +objid).val().replace(/[^0-9]/g,"")); //발주수량
var DELIVERY_QTY = 0;
var originalValues = [];
$(".RECEIPT_QTY_"+objid).each(function(index) {
originalValues[index] = $(this).val();
var value = Number($(this).val().replace(/[^0-9]/g,""));
DELIVERY_QTY += value;
});
/* var DEFECT_QTY = 0;
$(".ERROR_QTY_"+objid).each(function() {
var errorValue = Number($(this).val().replace(/[^0-9]/g,""));
DEFECT_QTY += errorValue;
}); */
//alert(ORDER_QTY + ":" + DELIVERY_QTY);
//alert("ORDER_QTY::"+ORDER_QTY);
//alert("DELIVERY_QTY::"+DELIVERY_QTY);
//alert("DEFECT_QTY::"+DEFECT_QTY);
//미입고수량
var nonQty = ORDER_QTY - DELIVERY_QTY;
//alert("nonQty:"+nonQty);
//if(nonQty < 0){
// Swal.fire("입고수량이 발주수량보다 큽니다.");
// return false;
//}
//nonQty = nonQty < 0 ? 0 : nonQty;
//var nonQty = ORDER_QTY - (DELIVERY_QTY - DEFECT_QTY);
//alert("nonQty::"+nonQty);
$("#NON_ARRIVAL_QTY_"+objid).val(nonQty);
$("#NON_ARRIVAL_QTY_TXT_"+objid).text(nonQty);
//alert("originalValues:"+originalValues);
// 변경한 .RECEIPT_QTY_의 value를 원래값으로
//$(".RECEIPT_QTY_" + objid).each(function(index) {
// $(this).val(originalValues[index]);
//});
}
//location 저장
function fn_location_save(){
if(confirm("저장 하시겠습니까?")){
$.ajax({
url:"/purchaseOrder/deliveryAcceptanceFormPopUp_locationSave.do"
,type:"POST"
,data: $("#form1").serialize()
,dataType:"json"
,success:function(data){
if(data =="SUCCESS"){
alert("저장되었습니다.");
};
if(typeof opener.fn_search =="function"){ opener.fn_search() };
self.close();
}
,error: function(jqxhr, status, error){
}
});
}
}
</script>
</head>
<body>
<%-- 옵션 목록 템플릿: 1회만 출력하여 JS에서 재사용 --%>
<select id="_tpl_warehouse" style="display:none"><option value="">선택</option>${code_map.warehouse}</select>
<select id="_tpl_acctCode" style="display:none"><option value="">선택</option>${code_map.acctCode}</select>
<script>
var _warehouseOptHtml = document.getElementById('_tpl_warehouse').innerHTML;
var _acctCodeOptHtml = document.getElementById('_tpl_acctCode').innerHTML;
</script>
<form name="hiddenForm" id="hiddenForm" method="post">
<!-- <input type="hidden" name="OBJID" id="OBJID"> -->
</form>
<form name="form1" id="form1" action="" method="post">
<input type="hidden" name="ORDER_OBJID" id="ORDER_OBJID" value="${objId}" />
<input type="hidden" name="PARENT_OBJID" id="PARENT_OBJID" value="${objId}" />
<input type="hidden" name="BOM_REPORT_OBJID" id="BOM_REPORT_OBJID" value="${info.BOM_REPORT_OBJID}" />
<input type="hidden" name="TYPE" id="TYPE" value="${info.TYPE}" />
<input type="hidden" name="MULTI_YN" id="MULTI_YN" value="${info.MULTI_YN}" />
<input type="hidden" name="DELIVERY_STATUS" id="DELIVERY_STATUS" value="${param.DELIVERY_STATUS}" />
<section>
<div class="plm_menu_name">
<h2><span>입고등록</span></h2>
</div>
<div id="expenseApplyPopupFormWrap1" style="display:flex; justify-content:space-between; align-items:center; padding:4px 8px;">
<h1 style="font-size:28px; margin:0; white-space:nowrap;">입고등록</h1>
<div style="display:flex; align-items:center; gap:8px; white-space:nowrap;">
<span>발주번호</span>
<input type="text" name="PURCHASE_ORDER_NO" id="PURCHASE_ORDER_NO" value="${info.PURCHASE_ORDER_NO }" readonly style="width:140px;" />
<span>프로젝트번호</span>
<input type="text" name="PROJECT_NO" id="PROJECT_NO" value="${info.PROJECT_NO }" readonly style="width:160px;" />
<input type="hidden" name="CONTRACT_MGMT_OBJID" id="CONTRACT_MGMT_OBJID" value="${info.CONTRACT_MGMT_OBJID }" readonly />
</div>
</div>
<div class="btn_wrap" style="height:40px;">
<div class="plm_btn_wrap" style="padding:0 8 0 8; text-align: right;">
<% if(isModify){ %>
<c:if test="${empty info || empty info.MULTI_YN || info.MULTI_YN eq 'Y' and info.MULTI_MASTER_YN eq 'Y'}">
<c:if test="${!empty info && !empty info.OBJID && !empty info.WRITER }">
<!-- 240305 막음(목록에서만 상신)
<input type="button" value="결재상신" class="plm_btns" id="btnAppr" name="btnAppr" style="background:#dfeffc">
-->
</c:if>
</c:if>
<% }else{ %>
<% } %>
<c:choose>
<c:when test="${param.DELIVERY_STATUS ne '입고완료' and param.actionType ne 'view'}">
<div style="float: left;">
<span style="color:red;">미입고 </span>
<td><input type="checkbox" name="LOCATION_CHECK" id="LOCATION_CHECK" value="YES"/></td>
<td><select name="LOCATION_CD" id="LOCATION_CD" style="width:150px;margin-right:10px;"><option value=''>입고창고</option>${code_map.warehouse}</select></td>
<td><input type="checkbox" name="SUB_CHECK" id="SUB_CHECK" value="YES"/></td>
<td><select name="SUB_LOCATION_CD" id="SUB_LOCATION_CD" style="width:150px;margin-right:10px;"><option value=''>계정과목</option>${code_map.acctCode}</select></td>
</div>
<%-- <c:if test="${info.TYPE eq '0001538'}"> --%>
<input type="button" value="추가" id="btnAdd" class="plm_btns" style="background:#dfeffc">
<input type="button" value="삭제" id="btnRemove" class="plm_btns">
<%-- </c:if> --%>
<input type="button" value="일괄적용" id="btnApply" class="plm_btns" style="background:#dfeffc">
<input type="button" value="저장" class="plm_btns" id="btnReg" name="btnReg" style="background:#dfeffc">
</c:when>
<c:otherwise>
<!-- <input type="button" value="Location저장" id="btnLocation" class="plm_btns" style="background:#dfeffc"> -->
</c:otherwise>
</c:choose>
<input type="button" value="닫기" class="plm_btns" style="background:#dfeffc" onclick="window.close();" >
</div>
</div>
<div id="plm_table_wrap1" style="padding:0 8px 0 8px;">
<div id="plm_over" style="height: calc(100vh - 210px); overflow-y: auto; overflow-x: auto;">
<div style="width:44%; display: inline-block; float:left;">
<div class="plm_table_wrap1" style="height: auto;">
<div class="in_table_scroll_wrap _table1" style="height:40%;">
<table class="plm_table4" style="position:absolute; border-Spacing:0; border-Collapse: separate;" id="part_table">
<colgroup>
<col width="13%" />
<col width="15%" />
<col width="14%" />
<col width="10%" />
<col width="5%" />
<col width="5%" />
<col width="8%" />
</colgroup>
<thead style="position: relative; z-index: 4;">
<tr class="plm_thead">
<td colspan="7">발주품목</td>
</tr>
<tr class="plm_thead">
<td>품번</td>
<td>품명</td>
<td>규격</td>
<td>Maker</td>
<td>단위</td>
<td>수량</td>
<td>입고요청일</td>
</tr>
</thead>
<tbody id="plm_tb" style="position: relative; z-index: 3; background: #fff;">
<c:choose>
<c:when test="${empty partList}">
<tr style="text-align:center;">
<td align="center" colspan="7">조회된 데이터가 없습니다.</td>
</tr>
</c:when>
<c:otherwise>
<c:forEach var="item" items="${partList}" varStatus="varStatus">
<tr>
<input type="hidden" name="DETAIL_GROUP" value="${varStatus.count}" />
<input type="hidden" name="DH_OBJID" value="${item.OBJID}" />
<input type="hidden" name="ORDER_PART_OBJID_${varStatus.count}" value="${item.ORDER_PART_OBJID}" />
<input type="hidden" name="PART_OBJID_${varStatus.count}" value="${item.PART_OBJID}" />
<input type="hidden" name="ORDER_QTY_${varStatus.count}" value="${item.ORDER_QTY}" />
<input type="hidden" name="REAL_ORDER_QTY_${varStatus.count}" value="${item.REAL_ORDER_QTY}" />
<input type="hidden" name="NON_RECEIPT_QTY_${varStatus.count}" value="${item.NON_ARRIVAL_QTY}" />
<input type="hidden" name="LD_PART_OBJID_${varStatus.count}" value="${item.LD_PART_OBJID}" />
<td title="${item.PART_NO}" style="text-align:left;">${item.PART_NO}</td>
<td title="${item.PART_NAME}" style="text-align:left;">${item.PART_NAME}</td>
<td title="${item.SPEC}" style="text-align:left;">${item.SPEC}</td>
<td title="${item.MAKER}" style="text-align:left;">${item.MAKER}</td>
<td title="${item.UNIT_TITLE}">${item.UNIT_TITLE}</td>
<td title="${item.ORDER_QTY}"><input type="hidden" name="ORDER_QTY" class="ORDER_QTY_${item.ORDER_PART_OBJID}" value="${item.ORDER_QTY}" onchange="fn_calc('${item.ORDER_PART_OBJID}');"/><fmt:formatNumber value="${item.ORDER_QTY}" pattern="#,###" /></td>
<td title="${item.DELIVERY_REQUEST_DATE}">${item.DELIVERY_REQUEST_DATE}</td>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</div>
</div>
<c:set var="GROUP_SEQ" value="1" />
<div style="width:56%; display: inline-block;">
<div class="plm_table_wrap1" style="height: auto;">
<div class="in_table_scroll_wrap _table1" style="height:40%; width: 100%;">
<table class="plm_table3" style="position:absolute; border-Spacing:0; border-Collapse: separate; width: 100%;" id="addData">
<c:choose>
<c:when test="${empty arrivalList}">
</c:when>
<c:otherwise>
<c:forEach var="item" items="${arrivalList}" varStatus="varStatus">
<c:choose>
<c:when test="${varStatus.index == 0}">
<colgroup id="addColgroup1">
<col width="90px" />
<col width="130px" />
<col width="130px" />
<col width="90px" />
</colgroup>
<thead style="position: relative; z-index: 2;">
<tr class="plm_thead" id="head1">
<td colspan="4" class="tdHeader">1차</td>
</tr>
<tr class="plm_thead" id='head2'>
<td>입고일</td>
<td><input type='checkbox' name='groupCheck_1' value='1'>입고창고</td>
<td><input type='checkbox' name='groupSubCheck_1' value='1'>계정과목</td>
<td>입고수량</td>
</tr>
</thead>
<tbody style="position: relative; z-index: 1;" >
<tr id="dataTr_${varStatus.count}">
<td>
<c:set var="GROUP_SEQ" value="${item.GROUP_SEQ}" />
<input type="hidden" name="OBJID" value="${item.OBJID}" />
<input type="hidden" name="GROUP_SEQ" value="${item.GROUP_SEQ}" />
<input type="hidden" name="SEQ" value="${item.SEQ}" />
<input type="hidden" name="INVENTORY_STATUS" value="${item.INVENTORY_STATUS}" />
<input type="hidden" name="INVOICE_OBJID" id="INVOICE_OBJID_${item.OBJID}" value="${item.INVOICE_OBJID}" />
<input type="hidden" name="ARRIVAL_QTY" value="${item.ARRIVAL_QTY}" />
<c:choose>
<c:when test="${item.INVENTORY_STATUS eq 'Y'}">
<input type="text" name="RECEIPT_DATE" id="RECEIPT_DATE_${item.OBJID}" class="date" value="${item.RECEIPT_DATE}" />
</c:when>
<c:otherwise>
<input type="text" name="RECEIPT_DATE" id="RECEIPT_DATE_${item.OBJID}" class="date" value="${sysDate}" />
</c:otherwise>
</c:choose>
</td>
<td>
<select name="LOCATION" id="LOCATION_${item.OBJID}" data-select="${item.LOCATION}" class="LOCATION_1"><option value="">선택</option>${code_map.warehouse}</select>
</td>
<td>
<select name="SUB_LOCATION" id="SUB_LOCATION_${item.OBJID}" data-select="${item.SUB_LOCATION}" class="SUB_LOCATION_1"><option value="">선택</option>${code_map.acctCode}</select>
</td>
<td>
<input type="hidden" name="RECEIPT_INV_QTY" id="RECEIPT_INV_QTY_${item.OBJID}" value="${item.RECEIPT_QTY}" />
<c:choose>
<c:when test="${item.INVENTORY_STATUS eq 'Y' or param.DELIVERY_STATUS eq '입고완료'}">
<input type="text" name="RECEIPT_QTY" id="RECEIPT_QTY_${item.OBJID}" class="RECEIPT_QTY_${item.ORDER_PART_OBJID}" style="text-align:center;" value="<fmt:formatNumber value="${item.RECEIPT_QTY}" pattern="#,###" />" numberOnly onchange="fn_calc('${item.ORDER_PART_OBJID}');" />
</c:when>
<c:otherwise>
<input type="text" name="RECEIPT_QTY" id="RECEIPT_QTY_${item.OBJID}" class="RECEIPT_QTY_${item.ORDER_PART_OBJID}" style="text-align:center; color:red;" value="<fmt:formatNumber value="${item.ARRIVAL_QTY}" pattern="#,###" />" numberOnly onchange="fn_calc('${item.ORDER_PART_OBJID}');" />
</c:otherwise>
</c:choose>
</td>
<%-- <td>
<input type="text" name="ERROR_QTY" id="ERROR_QTY_${item.OBJID}" class="ERROR_QTY_${item.PART_OBJID}" style="text-align:center;" value="${item.ERROR_QTY}" numberOnly onchange="fn_calc('${item.PART_OBJID}');" />
</td>
<td>
<select name="ERROR_REASON" id="ERROR_REASON_${item.OBJID}" data-select="${item.ERROR_REASON}" ><option value="">선택</option>${code_map.defectReason}</select>
</td>
<td>
<select name="ATTRIBUTION" id="ATTRIBUTION_${item.OBJID}" data-select="${item.ATTRIBUTION}"><option value="">선택</option>${code_map.defectResp}</select>
</td> --%>
</tr>
</c:when>
<c:otherwise>
<c:if test="${partList.size() > 0 and varStatus.index % partList.size() == 0}">
<colgroup id="addColgroup">
<col width="90px" />
<col width="130px" />
<col width="130px" />
<col width="90px" />
</colgroup>
<script>
var appendHead1Text ="<td colspan='4' class='tdHeader realData'>${item.GROUP_SEQ}차</td>";
var appendHead2Text ="<td>입고일</td> <td><input type='checkbox' name='groupCheck_${item.GROUP_SEQ}' value='${item.GROUP_SEQ}'>입고창고</td> <td><input type='checkbox' name='groupSubCheck_${item.GROUP_SEQ}' value='${item.GROUP_SEQ}'>계정과목</td> <td>입고수량</td>";
$("#head1").append(appendHead1Text);
$("#head2").append(appendHead2Text);
</script>
</c:if>
<c:if test="${varStatus.count <= partList.size()}">
<tr id="dataTr_${varStatus.count}">
<td>
<input type="hidden" name="OBJID" value="${item.OBJID}" />
<input type="hidden" name="GROUP_SEQ" value="${item.GROUP_SEQ}" />
<input type="hidden" name="SEQ" value="${item.SEQ}" />
<input type="hidden" name="INVENTORY_STATUS" value="${item.INVENTORY_STATUS}" />
<input type="hidden" name="INVOICE_OBJID" id="INVOICE_OBJID_${item.OBJID}" value="${item.INVOICE_OBJID}" />
<input type="hidden" name="ARRIVAL_QTY" value="${item.ARRIVAL_QTY}" />
<c:choose>
<c:when test="${item.INVENTORY_STATUS eq 'Y'}">
<input type="text" name="RECEIPT_DATE" id="RECEIPT_DATE_${item.OBJID}" class="date" value="${item.RECEIPT_DATE}" />
</c:when>
<c:otherwise>
<input type="text" name="RECEIPT_DATE" id="RECEIPT_DATE_${item.OBJID}" class="date" value="${sysDate}" />
</c:otherwise>
</c:choose>
</td>
<td>
<select name="LOCATION" id="LOCATION_${item.OBJID}" class="LOCATION_${item.GROUP_SEQ}" data-select="${item.LOCATION}"><option value="">선택</option>${code_map.warehouse}</select>
</td>
<td>
<select name="SUB_LOCATION" id="SUB_LOCATION_${item.OBJID}" class="SUB_LOCATION_${item.GROUP_SEQ}" data-select="${item.SUB_LOCATION}"><option value="">선택</option>${code_map.acctCode}</select>
</td>
<td>
<input type="hidden" name="RECEIPT_INV_QTY" id="RECEIPT_INV_QTY_${item.OBJID}" value="${item.RECEIPT_QTY}" />
<c:choose>
<c:when test="${item.INVENTORY_STATUS eq 'Y'}">
<input type="text" name="RECEIPT_QTY" id="RECEIPT_QTY_${item.OBJID}" class="RECEIPT_QTY_${item.ORDER_PART_OBJID}" style="text-align:center;" value="<fmt:formatNumber value="${item.RECEIPT_QTY}" pattern="#,###" />" numberOnly onchange="fn_calc('${item.ORDER_PART_OBJID}');"/>
</c:when>
<c:otherwise>
<input type="text" name="RECEIPT_QTY" id="RECEIPT_QTY_${item.OBJID}" class="RECEIPT_QTY_${item.ORDER_PART_OBJID}" style="text-align:center; color:red;" value="<fmt:formatNumber value="${item.ARRIVAL_QTY}" pattern="#,###" />" numberOnly onchange="fn_calc('${item.ORDER_PART_OBJID}');"/>
</c:otherwise>
</c:choose>
</td>
<%-- <td>
<input type="text" name="ERROR_QTY" id="ERROR_QTY_${item.OBJID}" class="ERROR_QTY_${item.PART_OBJID}" style="text-align:center;" value="${item.ERROR_QTY}" numberOnly onchange="fn_calc('${item.PART_OBJID}');"/>
</td>
<td>
<select name="ERROR_REASON" id="ERROR_REASON_${item.OBJID}" data-select="${item.ERROR_REASON}" ><option value="">선택</option>${code_map.defectReason}</select>
</td>
<td>
<select name="ATTRIBUTION" id="ATTRIBUTION_${item.OBJID}" data-select="${item.ATTRIBUTION}" ><option value="">선택</option>${code_map.defectResp}</select>
</td> --%>
</tr>
</c:if>
</tbody>
<c:if test="${varStatus.count > partList.size()}">
<script>
var Text ="";
Text += "<td>";
Text += "<input type='hidden' name='OBJID' value='${item.OBJID}' />";
Text += "<input type='hidden' name='GROUP_SEQ' value='${item.GROUP_SEQ}' />";
Text += "<input type='hidden' name='SEQ' value='${item.SEQ}' />";
Text += "<input type='hidden' name='INVENTORY_STATUS' value='${item.INVENTORY_STATUS}' />";
Text += "<input type='hidden' name='INVOICE_OBJID' id='INVOICE_OBJID_${item.OBJID}' value='${item.INVOICE_OBJID}' />";
Text += "<input type='hidden' name='ARRIVAL_QTY' value='${item.ARRIVAL_QTY}' />";
if("${item.INVENTORY_STATUS}"=="Y"){
Text += "<input type='text' name='RECEIPT_DATE' id='RECEIPT_DATE_${item.OBJID}' class='date' value='${item.RECEIPT_DATE}' />";
Text += "</td>";
Text += "<td class='align_c'>";
Text += " <select name='LOCATION' id='LOCATION_${item.OBJID}' class='LOCATION_${item.GROUP_SEQ}' data-select='${item.LOCATION}'>"+_warehouseOptHtml+"</select>";
Text += "</td>";
Text += "<td class='align_c'>";
Text += " <select name='SUB_LOCATION' id='SUB_LOCATION_${item.OBJID}' class='SUB_LOCATION_${item.GROUP_SEQ}' data-select='${item.SUB_LOCATION}'>"+_acctCodeOptHtml+"</select>";
Text += "</td>";
Text += "<td class='align_c'>";
Text += "<input type='hidden' name='RECEIPT_INV_QTY' id='RECEIPT_INV_QTY_${item.OBJID}' value='${item.RECEIPT_QTY}' />";
Text += "<input type='text' numberOnly name='RECEIPT_QTY' id='RECEIPT_QTY_${item.OBJID}' class='RECEIPT_QTY_${item.ORDER_PART_OBJID}' value='${item.RECEIPT_QTY}' style='text-align:center;' onchange='fn_calc(${item.ORDER_PART_OBJID});'>";
Text += "</td>";
}else{
Text += "<input type='text' name='RECEIPT_DATE' id='RECEIPT_DATE_${item.OBJID}' class='date' value='${sysDate}' />";
Text += "</td>";
Text += "<td class='align_c'>";
Text += " <select name='LOCATION' id='LOCATION_${item.OBJID}' class='LOCATION_${item.GROUP_SEQ}' data-select='${item.LOCATION}'>"+_warehouseOptHtml+"</select>";
Text += "</td>";
Text += "<td class='align_c'>";
Text += " <select name='SUB_LOCATION' id='SUB_LOCATION_${item.OBJID}' class='SUB_LOCATION_${item.GROUP_SEQ}' data-select='${item.SUB_LOCATION}'>"+_acctCodeOptHtml+"</select>";
Text += "</td>";
Text += "<td class='align_c'>";
Text += "<input type='hidden' name='RECEIPT_INV_QTY' id='RECEIPT_INV_QTY_${item.OBJID}' value='${item.RECEIPT_QTY}' />";
Text += "<input type='text' numberOnly name='RECEIPT_QTY' id='RECEIPT_QTY_${item.OBJID}' class='RECEIPT_QTY_${item.ORDER_PART_OBJID}' value='${item.ARRIVAL_QTY}' style='text-align:center; color:red; ' onchange='fn_calc(${item.ORDER_PART_OBJID});'>";
Text += "</td>";
}
/* Text += "<td class='align_c'>";
Text += "<input type='text' numberOnly name='ERROR_QTY' id='ERROR_QTY_${item.OBJID}' class='ERROR_QTY_${item.PART_OBJID}' value='${item.ERROR_QTY}' style='text-align:center;' onchange='fn_calc(${item.PART_OBJID});'>";
Text += "</td>";
Text += "<td class='align_c'>";
Text += " <select name='ERROR_REASON' id='ERROR_REASON_${item.OBJID}' data-select='${item.ERROR_REASON}'><option value=''>선택</option>${code_map.defectReason}</select>";
Text += "</td>";
Text += "<td class='align_c'>";
Text += " <select name='ATTRIBUTION' id='ATTRIBUTION_${item.OBJID}' data-select='${item.ATTRIBUTION}'><option value=''>선택</option>${code_map.defectResp}</select>";
Text += "</td>"; */
$("#dataTr_${varStatus.index % partList.size()+1}").append(Text);
$("#LOCATION_${item.OBJID}").val('${item.LOCATION}').trigger("change");
$("#SUB_LOCATION_${item.OBJID}").val('${item.SUB_LOCATION}').trigger("change");
if($.fn.select2){
$("#LOCATION_${item.OBJID}").select2({ width:'resolve', placeholder:'선택', allowClear:true });
$("#SUB_LOCATION_${item.OBJID}").select2({ width:'resolve', placeholder:'선택', allowClear:true });
}
</script>
</c:if>
</c:otherwise>
</c:choose>
</c:forEach>
<script>
var groupseq = ${GROUP_SEQ}; //${arrivalList.size()} / ${partList.size()}
var addColStr = '<col width="100px" class="lastCol">'
if(groupseq == 1){
//addColStr = '<col width="100%">'
}
$("#addColgroup").append(addColStr);
var appendText ="<td rowspan='2' class='NON_ARRIVAL_QTY_TXT' style='width:100px;'>미입고수량</td>";
$("#head1").append(appendText);
</script>
<c:forEach var="item" items="${partList}" varStatus="varStatus">
<script>
var groupseq = ${GROUP_SEQ}; //${arrivalList.size()} / ${partList.size()}
var widthStr = '100px';
if(groupseq == 1){
widthStr = '150px';
}
var Text ="";
Text += "<tr class='NON_ARRIVAL_QTY_TXT'>";
Text += "<input type='hidden' name='NON_ARRIVAL_QTY_${varStatus.count}' class='NON_ARRIVAL_QTY_TXT' id='NON_ARRIVAL_QTY_${item.ORDER_PART_OBJID}' value='${item.NON_ARRIVAL_QTY}'>";
Text += "<td style='width:"+widthStr+";' id='NON_ARRIVAL_QTY_TXT_${item.ORDER_PART_OBJID}' class='NON_ARRIVAL_QTY_TXT'>"+numberWithCommas(${item.NON_ARRIVAL_QTY})+"</td>";
Text += "</tr>";
$("#dataTr_${varStatus.index % partList.size()+1}").append(Text);
//selectSetVal("data-select", true);
$("input[name*=RECEIPT_QTY]").trigger("change");
//$(".select2").select2();
</script>
</c:forEach>
</c:otherwise>
</c:choose>
</table>
</div>
</div>
</div>
</div>
</div>
</section>
</form>
<script>
window.onload = function() {
applyScrollHandler();
// 스크립트로 동적 생성된 입고일 필드에 datepicker 재초기화
$("input[name='RECEIPT_DATE']").each(function(){
if(!$(this).hasClass('hasDatepicker')){
$(this).attr("size","10");
$(this).datepicker({ changeMonth:true, changeYear:true });
}
});
/* var tableHeader1 = document.querySelector('.plm_table4 thead');
console.log(tableHeader1);
var tableBody = document.querySelector('.plm_table4 tbody');
console.log(tableBody);
var tableHeader2 = document.querySelector('.plm_table3 thead');
var tableBody1 = document.querySelector('.plm_table3 tbody');
console.log(tableBody1);
// 부모 요소인 plm_over를 찾습니다.
var parentElement = document.getElementById('plm_over');
// 부모 요소인 plm_over에 스크롤 이벤트 리스너를 등록합니다.
parentElement.addEventListener('scroll', function() {
// 테이블 1: 상하 스크롤 시에는 헤더만 고정
tableHeader1.style.transform = 'translate(' + parentElement.scrollLeft + 'px, ' + parentElement.scrollTop + 'px)';
// 테이블 2: 상하 스크롤 시에는 헤더만 고정
tableHeader2.style.transform = 'translateY(' + parentElement.scrollTop + 'px)';
// 테이블 1의 본문을 좌우로 고정
tableBody.style.transform = 'translateX(' + parentElement.scrollLeft + 'px)';
}); */
};
</script>
</body>
</html>