ERP-node/WebContent/WEB-INF/view/purchaseOrder/deliveryAcceptanceFormPopUp...

1448 lines
65 KiB
Plaintext
Raw Permalink 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>
/*
#gview_list_Attachments .ui-jqgrid-bdiv{
max-height: 300px;
overflow-y: visible;
}
*/
.ui-jqgrid-view {
max-height: 322px;
//min-height: 100px !important;
}
.ui-jqgrid-bdiv {
overflow-y: scroll !important;
max-height: 280px !important;
//min-height: 100px !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"; //발주구분코드:잡자재
$(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}" != ""){
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();
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="90px" /><col width="90px" /><col width="130x" /><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='6'>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>입고예정일</td>";
appendText+="<td>입고일</td>";
appendText+="<td><input type='checkbox' name='groupCheck_1' value='1'>Location</td>";
appendText+="<td><input type='checkbox' name='groupSubCheck_1' value='1'>SubLocation</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 RECEIPT_DATE = $('#part_table tbody tr').eq(i).find('td').eq(6).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}";
//alert("PART_OBJID:"+PART_OBJID)
appendText+=" <input type='text' name='ARRIVAL_QTY' class='date' value='"+ARRIVAL_QTY+"'/>";
appendText+="</td>";
appendText+="<td>";
appendText+=" <input type='text' name='ARRIVAL_PLAN_DATE' class='date' value='"+RECEIPT_DATE+"'/>";
appendText+="</td>";
appendText+="<td>";
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' data-select='${item.LOCATION}' onchange='chageLangSelect("+seq+",\"${item.SUB_LOCATION}\")'><option value=''>선택</option>${code_map.location}</select>";
appendText+="</td>";
appendText+="<td>";
appendText+=" <select name='SUB_LOCATION' id='SUB_LOCATION_"+seq+"' class='SUB_LOCATION_1' data-select='${item.SUB_LOCATION}'><option value=''>선택</option></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='6'>" + tdHeaderCount + "차</td>";
appendHead1Text += "<td rowspan='2' class='NON_ARRIVAL_QTY_TXT'>미입고수량</td>";
appendHead2Text += "<td>입고예정수량</td>";
appendHead2Text += "<td>입고예정일</td>";
appendHead2Text += "<td>입고일</td>";
appendHead2Text += "<td><input type='checkbox' name='groupCheck_" + newGroupSeq + "' value='" + newGroupSeq + "'>Location</td>";
appendHead2Text += "<td><input type='checkbox' name='groupSubCheck_" + newGroupSeq + "' value='" + newGroupSeq + "'>SubLocation</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 RECEIPT_DATE = $('#part_table tbody tr').eq(i).find('td').eq(6).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='text' style='text-align:center;' name='ARRIVAL_QTY' class='' value='"+NON_ARRIVAL_QTY+"'/>";
Text+="</td>";
Text+="<td>";
Text+=" <input type='text' name='ARRIVAL_PLAN_DATE' class='date' value='"+sysDate+"'/>";
Text+="</td>";
Text+="<td>";
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+"' data-select='${item.LOCATION}' onchange='chageLangSelect("+seq+",\"${item.SUB_LOCATION}\")'><option value=''>선택</option>${code_map.location}</select>";
Text+="</td>";
Text+="<td>";
Text+=" <select name='SUB_LOCATION' id='SUB_LOCATION_"+seq+"' class='SUB_LOCATION_"+newGroupSeq+"' data-select='${item.SUB_LOCATION}'><option value=''>선택</option></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
});
});
$("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 = 6;
//var cellsToRemove = head2Cells.slice(-3).find("input[type='checkbox']").length > 0 ? 2 : 3;
head2Cells.slice(-cellsToRemove).remove();
// 데이터 행에서 마지막 차수 삭제
$("tr[id^='dataTr_']").each(function() {
var cells = $(this).find("td");
var lastCell = cells.last(); // 마지막 td를 선택
var cellsToRemove = cells.slice(-7, -1); // 마지막 td를 제외하고 그 앞의 네 개 td를 선택
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(-7, -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 fn_setMultiInfo(val){
var projectCnt = 0;
$(".APPLICATION_PROJECT_NO option").remove();
$(".APPLICATION_PROJECT_NO").attr("disabled", "disabled");
$(".DELIVERY_PLAN_DATE").attr("disabled", "disabled");
$(".DELIVERY_PLAN_QTY").attr("disabled", "disabled");
$(".APPLICATION_PROJECT_NO").val('');
$(".DELIVERY_PLAN_DATE").val('');
$(".DELIVERY_PLAN_QTY").val('');
for (i=1; i < 11; i++){
var APPLICATION_PROJECT_NO = "APPLICATION_PROJECT_NO"+i
fn_projectNameList("", APPLICATION_PROJECT_NO, "", val);
projectCnt = $("#"+APPLICATION_PROJECT_NO).find('option').length;
if(projectCnt > 2){
$("#"+APPLICATION_PROJECT_NO).attr("disabled", false);
}
if(projectCnt-2 <= i){ //projectCnt == 0 ||
break;
}
}
//마스터 프로젝트번호 제거
if(fnc_isNotEmpty(val)){
$("select[name^=APPLICATION_PROJECT_NO]").each(function(){
$(this).find('option[value='+val+']').remove();
});
}
}
//동시구매건수 + 메인(1) 건수
function fn_getProjectCount(){
var sameProjectCount = $('.APPLICATION_PROJECT_NO').filter(function(){
return $(this).val() !== '' && fnc_isEmpty($(this).attr("disabled"));
}).length;
return fnc_checkNullDefaultValue(sameProjectCount, 0) + 1;
}
function changelist(objid, kindCode){
$("#SUPPLY_BUS_NO, #SUPPLY_USER_NAME, #SUPPLY_USER_HP, #SUPPLY_USER_TEL, #SUPPLY_USER_FAX, #SUPPLY_USER_EMAIL, #SUPPLY_ADDR").val("");
if(objid!=""){
//공급업체에 발주서공급담당자(0000330)로 지정된 정보를 가져온다
var list = fnc_getJsonAllDataListBySqlId({"sqlId":"purchaseOrder.purchaseOrderAdminSupplyInfo", "PARTNER_OBJID":objid});
if(fnc_checkNull( list )!=""){
var row = list[0];
$("#SUPPLY_BUS_NO" ).val( row["SUPPLY_BUS_NO" ] );
$("#SUPPLY_USER_NAME" ).val( row["SUPPLY_USER_NAME" ] );
$("#SUPPLY_USER_HP" ).val( row["SUPPLY_USER_HP" ] );
$("#SUPPLY_USER_TEL" ).val( row["SUPPLY_USER_TEL" ] );
$("#SUPPLY_USER_FAX" ).val( row["SUPPLY_USER_FAX" ] );
$("#SUPPLY_USER_EMAIL").val( row["SUPPLY_USER_EMAIL"] );
$("#SUPPLY_ADDR" ).val( row["SUPPLY_ADDR" ] );
}
}
}
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>
<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">
<table class="pmsPopupForm">
<colgroup>
<col width="5%" />
<col width="5%" />
<col width="10%" />
<col width="10%" />
<col width="10%" />
<col width="10%" />
<!-- <col width="10%" /> -->
<col width="5%" />
<col width="5%" />
<col width="10%" />
<col width="10%" />
<col width="10%" />
<col width="10%" />
</colgroup>
<tr>
<td colspan="2">발주번호</td>
<td colspan="1"><input type="text" name="PURCHASE_ORDER_NO" id="PURCHASE_ORDER_NO" value="${info.PURCHASE_ORDER_NO }" readonly /></td>
<td colspan="">발주부품</td>
<td colspan="2">
<input type="text" name="TYPE_NAME" id="TYPE_NAME" value="${info.TYPE_NAME }" readonly />
<%-- <select name="TYPE" id="TYPE" required reqTitle="발주부품" type="select" class="select2" autocomplete="off" disabled>
<option value="">선택</option>
${code_map.type}
</select> --%>
</td>
<td colspan="2">프로젝트번호</td>
<td colspan="1">
<input type="text" name="PROJECT_NO" id="PROJECT_NO" value="${info.PROJECT_NO }" readonly />
<input type="hidden" name="CONTRACT_MGMT_OBJID" id="CONTRACT_MGMT_OBJID" value="${info.CONTRACT_MGMT_OBJID }" readonly />
<%-- <select name="CONTRACT_MGMT_OBJID" id="CONTRACT_MGMT_OBJID" required reqTitle="PROJECT명" type="select" class="select2" autocomplete="off" disabled>
<option value="">선택</option>
${code_map.project_no}
</select> --%>
</td>
<td colspan="">유닛명</td>
<td colspan="2">
<input type="text" name="UNIT_NAME" id="UNIT_NAME" value="${info.UNIT_NAME }" readonly />
<input type="hidden" name="UNIT_CODE" id="UNIT_CODE" value="${info.UNIT_CODE }" readonly />
<!-- <select name="UNIT_CODE" id="UNIT_CODE" required reqTitle="유닛명" type="select" class="select2" autocomplete="off" disabled></select> -->
</td>
</tr>
<tr>
<td rowspan="2" colspan="6" style="text-align:center; height: 65px;"><h1 style="font-size: 35px;">입고결과등록<!-- <br/><p style="font-size:12px; border:none; width:100%;">(Inspection sheet)</p> --></h1></td>
<td rowspan="2" colspan="2" style="height: 65px;" class="input_title">결재</td>
<td style="text-align:center; height: 15px;" class="input_title">담당</td>
<td style="text-align:center;" class="input_title">검토</td>
<td style="text-align:center;" class="input_title">결재</td>
<td style="text-align:center;" class="input_title">대표</td>
</tr>
<tr>
<td style="text-align:center;" id="appr0"></td>
<td style="text-align:center;" id="appr1"></td>
<td style="text-align:center;" id="appr2"></td>
<td style="text-align:center;" id="appr3"></td>
</tr>
<tr>
<td rowspan="6" colspan="2" class="input_title">발주처</td>
<td class="input_title">회사명</td>
<td colspan="3">우성에스이주식회사</td>
<td rowspan="6" colspan="2" class="input_title">공급처</td>
<td class="input_title">회사명</td>
<td colspan="3">
<input type="text" name="PARTNER_OBJID" id="PARTNER_OBJID" value="${info.PARTNER_NAME }" readonly />
</td>
</tr>
<tr>
<td class="input_title">사업자번호</td>
<td colspan="3">514-81-95155</td>
<td class="input_title">사업자번호</td>
<td colspan="3"><input type="text" name="SUPPLY_BUS_NO" id="SUPPLY_BUS_NO" value="${info.SUPPLY_BUS_NO }" readonly /></td>
</tr>
<tr>
<td class="input_title">담당자</td>
<td>
<input type="text" name="SALES_MNG_USER_ID" id="SALES_MNG_USER_ID" value="${info.SALES_MNG_USER }" readonly />
</td>
<td class="input_title">HP</td>
<td><input type="text" name="SALES_MNG_USER_HP" id="SALES_MNG_USER_HP" value="${info.SALES_MNG_USER_CELL_PHONE }" readonly /></td>
<td class="input_title">담당자</td>
<td><input type="text" name="SUPPLY_USER_NAME" id="SUPPLY_USER_NAME" value="${info.SUPPLY_USER_NAME }" readonly /></td>
<td class="input_title">HP</td>
<td><input type="text" name="SUPPLY_USER_HP" id="SUPPLY_USER_HP" value="${info.SUPPLY_USER_HP }" readonly /></td>
</tr>
<tr>
<td class="input_title">전 화</td>
<td><input type="text" name="SALES_MNG_USER_TEL" id="SALES_MNG_USER_TEL" value="${oemInfo.OFFICE_NO }" readonly /></td>
<td class="input_title">FAX</td>
<td><input type="text" name="SALES_MNG_USER_FAX" id="SALES_MNG_USER_FAX" value="${oemInfo.SUPPLY_FAX_NO }" readonly /></td>
<td class="input_title">전 화</td>
<td><input type="text" name="SUPPLY_USER_TEL" id="SUPPLY_USER_TEL" value="${info.SUPPLY_USER_TEL }" readonly /></td>
<td class="input_title">FAX</td>
<td><input type="text" name="SUPPLY_USER_FAX" id="SUPPLY_USER_FAX" value="${info.SUPPLY_USER_FAX }" readonly /></td>
</tr>
<tr>
<td class="input_title">E-MAIL</td>
<td colspan="3">ilshin@wsse.co.kr</td>
<td class="input_title">E-MAIL</td>
<td colspan="3"><input type="text" name="SUPPLY_USER_EMAIL" id="SUPPLY_USER_EMAIL" value="${info.SUPPLY_USER_EMAIL }" readonly /></td>
</tr>
<tr>
<td class="input_title">주 소</td>
<td colspan="3">대구광역시 달성군 다사읍 세천로3길 28</td>
<td class="input_title">주 소</td>
<td colspan="3"><input type="text" name="SUPPLY_ADDR" id="SUPPLY_ADDR" value="${info.SUPPLY_ADDR }" readonly /></td>
</tr>
<tr>
<td colspan="12" style="text-align: center; height:40px; color:#003399; font-weight:500;">아래의 자재를 발주하오니 기일 내 필히 납품하여 주시기 바랍니다.</td>
</tr>
<tr>
<td colspan="2" class="input_title">발주구분</td>
<td colspan="1">
<input type="text" name="ORDER_TYPE_CD_NAME" id="ORDER_TYPE_CD_NAME" value="${info.ORDER_TYPE_CD_NAME}" required reqTitle="발주구분" readonly style="width:100%;"/>
<%-- <select name="ORDER_TYPE_CD" id="ORDER_TYPE_CD" required reqTitle="발주구분" type="select" class="select2" autocomplete="off" disabled style="width:100%;">
<option value="">선택</option>
${code_map.order_type_cd}
</select> --%>
</td>
<td colspan="" class="input_title">납품장소</td>
<td colspan="1">
<input type="text" name="DELIVERY_PLACE" id="DELIVERY_PLACE" value="${info.DELIVERY_PLACE_NAME}" required reqTitle="납품장소" readonly style="width:100%;"/>
</td>
<td colspan="1" class="input_title">검수방법</td>
<td colspan="2">
<input type="text" name="INSPECT_METHOD" id="INSPECT_METHOD" value="${info.INSPECT_METHOD_NAME}" required reqTitle="검수방법" readonly style="width:100%;"/>
</td>
<td colspan="1" class="input_title">결제조건</td>
<td colspan="1">
<input type="text" name="PAYMENT_TERMS" id="PAYMENT_TERMS" value="${info.PAYMENT_TERMS_NAME}" required reqTitle="결제조건" readonly style="width:100%;"/>
</td>
<td colspan="1" class="input_title">입고요청일</td>
<td colspan="1"><input type="text" name="DELIVERY_DATE" id="DELIVERY_DATE" class="date_icon" required reqTitle="입고요청일" value="${info.DELIVERY_DATE }" readonly/></td>
</tr>
<tr>
<td colspan="2" class="input_title">발주서 No.</td>
<td colspan="1">
<input type="text" name="PURCHASE_ORDER_NO_ORG" id="PURCHASE_ORDER_NO_ORG" value="${info.PURCHASE_ORDER_NO_ORG}" readonly style="width:100%;"/>
<!-- <select name="PURCHASE_ORDER_NO_ORG" id="PURCHASE_ORDER_NO_ORG" required reqTitle="발주서 No." type="select" class="select2" autocomplete="off" disabled style="width:100%;">
</select> -->
</td>
<td colspan="1" class="input_title">제목</td>
<td colspan="2"><input type="text" name="TITLE" id="TITLE" value="${info.TITLE }" required reqTitle="제목" readonly style="width:100%;"/></td>
<td colspan="2" class="input_title">합계금액(원)</td>
<td colspan="5"><input type="text" name="TOTAL_PRICE_TXT" id="TOTAL_PRICE_TXT" value="${info.TOTAL_PRICE_TXT }" readonly placeHolder="금액합계 자동계산"/></td>
</tr>
</table>
</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:100px;margin-right:10px;" onchange="chageLangSelect('CD','')"><option value=''>선택</option>${code_map.location}</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:100px;margin-right:10px;"></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 8 0 8;">
<div id="plm_over" style="height:379px ; 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.REAL_ORDER_QTY}"><input type="hidden" name="ORDER_QTY" class="ORDER_QTY_${item.ORDER_PART_OBJID}" value="${item.REAL_ORDER_QTY}" onchange="fn_calc('${item.ORDER_PART_OBJID}');"/><fmt:formatNumber value="${item.REAL_ORDER_QTY}" pattern="#,###" /></td>
<td title="${item.POM_DELIVERY_DATE}">${item.POM_DELIVERY_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="90px" />
<col width="90px" />
<col width="130px" />
<col width="130px" />
<col width="90px" />
<!-- <col width="75px" />
<col width="80px" />
<col width="80px" /> -->
</colgroup>
<thead style="position: relative; z-index: 2;">
<tr class="plm_thead" id="head1">
<td colspan="6" class="tdHeader">1차</td>
</tr>
<tr class="plm_thead" id='head2'>
<td>입고예정수량</td>
<td>입고예정일</td>
<td>입고일</td>
<td><input type='checkbox' name='groupCheck_1' value='1'>Location</td>
<td><input type='checkbox' name='groupSubCheck_1' value='1'>SubLocation</td>
<td>입고수량</td>
<!-- <td>부적합수량</td>
<td>부적합사유</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="text" name="ARRIVAL_QTY" style="text-align:center;" value="<fmt:formatNumber value="${item.ARRIVAL_QTY}" pattern="#,###" />" numberOnly />
<%-- <fmt:formatNumber value="${item.ARRIVAL_QTY}" pattern="#,###" /> --%>
</td>
<td>
<input type='text' name='ARRIVAL_PLAN_DATE' readonly id='ARRIVAL_PLAN_DATE_${item.OBJID}' class='date' value='${item.ARRIVAL_PLAN_DATE}' />
</td>
<td>
<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" onchange="chageLangSelect('${item.OBJID}','${item.SUB_LOCATION}')"><option value="">선택</option>${code_map.location}</select>
</td>
<td>
<select name="SUB_LOCATION" id="SUB_LOCATION_${item.OBJID}" data-select="${item.SUB_LOCATION}" class="SUB_LOCATION_1"><option value="">선택</option></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="${varStatus.index % partList.size() == 0}">
<colgroup id="addColgroup">
<col width="90px" />
<col width="90px" />
<col width="90px" />
<col width="130x" />
<col width="130px" />
<col width="90px" />
<!-- <col width="75px" />
<col width="80px" />
<col width="80px" /> -->
</colgroup>
<script>
var appendHead1Text ="<td colspan='6' class='tdHeader realData'>${item.GROUP_SEQ}차</td>";
var appendHead2Text ="<td>입고예정수량</td> <td>입고예정일</td> <td>입고일</td> <td><input type='checkbox' name='groupCheck_${item.GROUP_SEQ}' value='${item.GROUP_SEQ}'>Location</td> <td><input type='checkbox' name='groupSubCheck_${item.GROUP_SEQ}' value='${item.GROUP_SEQ}'>SubLocation</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="text" name="ARRIVAL_QTY" style="text-align:center;" value="<fmt:formatNumber value="${item.ARRIVAL_QTY}" pattern="#,###" />" numberOnly />
<%-- <fmt:formatNumber value="${item.ARRIVAL_QTY}" pattern="#,###" /> --%>
</td>
<td>
<input type='text' name='ARRIVAL_PLAN_DATE' readonly id='ARRIVAL_PLAN_DATE_${item.OBJID}' class='date' value='${item.ARRIVAL_PLAN_DATE}' />
</td>
<td>
<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}" onchange="chageLangSelect('${item.OBJID}','${item.SUB_LOCATION}')"><option value="">선택</option>${code_map.location}</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></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='text' name='ARRIVAL_QTY' style='text-align:center;' value='${item.ARRIVAL_QTY}' numberOnly />";
/* Text += numberWithCommas(fnc_checkNull(${item.ARRIVAL_QTY})); */
Text += "</td>";
Text += "<td>";
/* Text += ${item.ARRIVAL_PLAN_DATE}; */
Text += "<input type='text' name='ARRIVAL_PLAN_DATE' readonly id='ARRIVAL_PLAN_DATE_${item.OBJID}' class='date' value='${item.ARRIVAL_PLAN_DATE}' />";
Text += "</td>";
/* 박창현 */
if("${item.INVENTORY_STATUS}"=="Y"){
//alert("qwe");
Text += "<td>";
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}' onchange='chageLangSelect(\"${item.OBJID}\",\"${item.SUB_LOCATION}\")'><option value=''>선택</option>${code_map.location}</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}'><option value=''>선택</option></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 += "<td>";
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}' onchange='chageLangSelect(\"${item.OBJID}\",\"${item.SUB_LOCATION}\")'><option value=''>선택</option>${code_map.location}</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}'><option value=''>선택</option></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);
//selectSetVal("data-select", true);
//var selVal = $("#LOCATION_${item.OBJID}").attr("data-select");
//$("#LOCATION_${item.OBJID}").val('${item.LOCATION}').trigger("change");//.select2();
//$("#SUB_LOCATION_${item.OBJID}").select2();
</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);
selectSetVal("data-select", true);
</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>
<div id="expenseApplyPopupFormWrap1" style="margin-top:30px;position: ">
<table class="pmsPopupForm">
<colgroup>
<col width="10%" />
<col width="9%" />
<col width="9%" />
<col width="9%" />
<col width="9%" />
<col width="9%" />
<col width="9%" />
<col width="9%" />
<col width="9%" />
<col width="9%" />
<col width="9%" />
</colgroup>
<tr>
<input type="hidden" name="APPLICATION_OBJID1" id="APPLICATION_OBJID1" value="" class="APPLICATION_OBJID"/>
<input type="hidden" name="APPLICATION_OBJID2" id="APPLICATION_OBJID2" value="" class="APPLICATION_OBJID"/>
<input type="hidden" name="APPLICATION_OBJID3" id="APPLICATION_OBJID3" value="" class="APPLICATION_OBJID"/>
<input type="hidden" name="APPLICATION_OBJID4" id="APPLICATION_OBJID4" value="" class="APPLICATION_OBJID"/>
<input type="hidden" name="APPLICATION_OBJID5" id="APPLICATION_OBJID5" value="" class="APPLICATION_OBJID"/>
<input type="hidden" name="APPLICATION_OBJID6" id="APPLICATION_OBJID6" value="" class="APPLICATION_OBJID"/>
<input type="hidden" name="APPLICATION_OBJID7" id="APPLICATION_OBJID7" value="" class="APPLICATION_OBJID"/>
<input type="hidden" name="APPLICATION_OBJID8" id="APPLICATION_OBJID8" value="" class="APPLICATION_OBJID"/>
<input type="hidden" name="APPLICATION_OBJID9" id="APPLICATION_OBJID9" value="" class="APPLICATION_OBJID"/>
<input type="hidden" name="APPLICATION_OBJID10" id="APPLICATION_OBJID10" value="" class="APPLICATION_OBJID"/>
<td rowspan="" colspan="" class="input_title">동시적용 프로젝트번호</td>
<td><input type="text" name="APPLICATION_PROJECT_NUMBER1" id="APPLICATION_PROJECT_NUMBER1" value="" class="APPLICATION_PROJECT_NUMBER"/></td>
<td><input type="text" name="APPLICATION_PROJECT_NUMBER2" id="APPLICATION_PROJECT_NUMBER2" value="" class="APPLICATION_PROJECT_NUMBER"/></td>
<td><input type="text" name="APPLICATION_PROJECT_NUMBER3" id="APPLICATION_PROJECT_NUMBER3" value="" class="APPLICATION_PROJECT_NUMBER"/></td>
<td><input type="text" name="APPLICATION_PROJECT_NUMBER4" id="APPLICATION_PROJECT_NUMBER4" value="" class="APPLICATION_PROJECT_NUMBER"/></td>
<td><input type="text" name="APPLICATION_PROJECT_NUMBER5" id="APPLICATION_PROJECT_NUMBER5" value="" class="APPLICATION_PROJECT_NUMBER"/></td>
<td><input type="text" name="APPLICATION_PROJECT_NUMBER6" id="APPLICATION_PROJECT_NUMBER6" value="" class="APPLICATION_PROJECT_NUMBER"/></td>
<td><input type="text" name="APPLICATION_PROJECT_NUMBER7" id="APPLICATION_PROJECT_NUMBER7" value="" class="APPLICATION_PROJECT_NUMBER"/></td>
<td><input type="text" name="APPLICATION_PROJECT_NUMBER8" id="APPLICATION_PROJECT_NUMBER8" value="" class="APPLICATION_PROJECT_NUMBER"/></td>
<td><input type="text" name="APPLICATION_PROJECT_NUMBER9" id="APPLICATION_PROJECT_NUMBER9" value="" class="APPLICATION_PROJECT_NUMBER"/></td>
<td><input type="text" name="APPLICATION_PROJECT_NUMBER10" id="APPLICATION_PROJECT_NUMBER10" value="" class="APPLICATION_PROJECT_NUMBER"/></td>
</tr>
<tr>
<td rowspan="" colspan="" class="input_title">작업지시사항</td>
<td rowspan="" colspan="10">
<textarea style="width:100%; height: 80px;background-color: #fff;" name="REMARK" id="REMARK" readonly>${info.REMARK}</textarea>
</td>
</tr>
<tr>
<td colspan="12" style="text-align: right; color: #980000; font-weight:500;">★거래명세서 자동생성은 발주서 기준으로 입고수량 대비 정품수량 동일시 구매팀 확인후 발주서 기준으로 자동생성 된다.</td>
</tr>
</table>
</div>
</section>
</form>
<script>
window.onload = 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)';
}); */
};
</script>
</body>
</html>