Files
wace_plm/WebContent/WEB-INF/view/salesMng/salesRequestFormPopUp.jsp

880 lines
32 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"%>
<%@ page import="com.pms.common.utils.*"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ page import="java.util.*" %>
<%@include file= "/init_new.jsp" %>
<%
Map info = (HashMap)(request.getAttribute("resultMap"));
boolean isModify = true;
if(info!=null &&
( CommonUtils.checkNull(info.get("STATUS_TITLE")).equals( "결재중" )
||CommonUtils.checkNull(info.get("STATUS_TITLE")).equals( "결재완료" )
||CommonUtils.checkNull(info.get("STATUS_TITLE")).equals( "접수" )
||CommonUtils.checkNull(info.get("STATUS")).equals( "confirmed" )
)
){
isModify = false; //수정불가
}
String actType = (String)request.getAttribute("actType");
%>
<%
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String userId = CommonUtils.checkNull(person.getUserId());
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=Constants.SYSTEM_NAME%></title>
</head>
<script>
var grid;
$(function(){
$("._table1").scroll(function () {
$("._table2").scrollLeft($("._table1").scrollLeft());
});
$("._table2").scroll(function () {
$("._table1").scrollLeft($("._table2").scrollLeft());
});
if(fnc_isNotEmpty("${resultMap.WRITER}") && "${resultMap.WRITER}" != "${connectUserId}"){
$("#btnReg").hide();
$("#btnAppr").hide();
}
// 전체 체크 기능
$("#allCheck").click(function() {
if ($("#allCheck").prop("checked")) {
$("input[type=checkbox]").prop("checked", true);
} else {
$("input[type=checkbox]").prop("checked", false);
}
});
$("#btnReg").click(function(){
// 물품구매요청서를 저장한다.
if(fnc_validate("form1")){
if(0 < $("#partListArea tr").length){
var zeroQty = false;
$("input[name*=QTY]").each(function(){
if ($(this).val() == 0){
Swal.fire('수량이 0 입니다.');
zeroQty = true;
return;
}
});
if (!zeroQty) {
fn_save();
}
}else{
Swal.fire('저장할 품목이 존재 하지 않습니다.');
return;
}
}
});
$("#btnAddRow").click(function(){
//물품구매요청서 행을 추가한다
fn_AddRow();
});
$("#btnDeleteRow").click(function(){
//물품구매요청서 행을 삭제한다
fn_deleteRow();
});
// 확정 버튼 클릭
$("#btnConfirm").click(function(){
fn_confirm();
});
$("#btnAppr").click(function(){ //결재상신
if(fnc_valitate("form1")){
var objId = "${resultMap.OBJID}";
/* if(""==grid.getRowData()){
Swal.fire('저장할 품목이 존재 하지 않습니다');
return;
} */
//var title = encodeURIComponent($("#TITLE").val());
var title = encodeURIComponent("발주서 상신");
window.open("/approval/registApproval.do?targetType=SALES_REQUEST&targetObjId="+objId+"&approvalTitle="+title+"&callbackFnc=fn_callbackFnc","registApproval","width=700,height=700");
}
});
//상신된 결재라인 가져오기
fn_getApprLine();
fnc_getAjaxProductMgmtList("PRODUCT_CODE", "", "", "${resultMap.PRODUCT_CODE}");
fnc_getUserList2("SALES_MNG_USER_ID", "${resultMap.SALES_MNG_USER_ID}");
fnc_getCodeListAppend("0000259","REQUEST_STATUS","${resultMap.REQUEST_STATUS}");
// 유닛 관련 주석처리
// fn_UnitCodeList("${resultMap.PROJECT_NO}", "UNIT_NAME", "${resultMap.UNIT_NAME}","");
fnc_datepick();
$(".select2").select2();
fn_getSalesRequestTargetPartList("${resultMap.OBJID}","${param.bom_report_objid}");
$("#ORDER_NUMBER").change(function(){
var orderQty = fnc_checkNull($(this).val());
if("" != orderQty && 0 < orderQty){
$(".TARGET_OBJID").each(function(i){
var targetObjId = $(this).val();
var orgQty = fnc_checkNull($("#ORG_QTY_"+targetObjId).val());
if(null != orgQty && "" != orgQty){
$("#QTY_"+targetObjId).val(orgQty * orderQty);
}
});
}
});
<% if(isModify){ %>
//수정가능
$("#REQUEST_CD,#PROJECT_NO,#CUSTOMER_NAME,#PRODUCT_NAME,#MECHANICAL_TYPE,#PROJECT_NAME,#SETUP,#RELEASE_DATE,#REQUEST_REASONS,#REQUEST_USER_ID,#DELIVERY_REQUEST_DATE,#PURCHASE_TYPE,#ORDER_TYPE,#AREA_CD,#CUSTOMER_OBJID,#PAID_TYPE").prop("disabled","");
//프로젝트명 변경시 정보 셋팅 (유닛명 제거)
$("#PROJECT_NO").change(function(){
$("#CUSTOMER_NAME, #PRODUCT_NAME, #MECHANICAL_TYPE, #PROJECT_NAME, #SETUP, #RELEASE_DATE").val("");
$("#partListArea").empty(); // 기존 품번 목록 초기화
if($(this).val()!=""){
//프로젝트번호로 지정된 정보를 가져온다
var list = fnc_getJsonAllDataListBySqlId({"sqlId":"salesMng.purchaseOrderAdminSupplyInfo", "PROJECT_NO":$(this).val()});
if(fnc_checkNull( list )!=""){
var row = list[0];
// console.log("프로젝트 정보:", row); // 디버깅용
// 기존 필드 (읽기전용 텍스트)
$("#CUSTOMER_NAME" ).val( row["CUSTOMER_NAME" ] );
$("#MECHANICAL_TYPE" ).val( row["MECHANICAL_TYPE" ] );
$("#PROJECT_NAME" ).val( row["PROJECT_NAME" ] );
$("#SETUP" ).val( row["SETUP" ] );
$("#RELEASE" ).val( row["RELEASE_DATE" ] );
// 프로젝트관리 진행관리 데이터 자동 채우기 (드롭다운)
// 제품구분 (PRODUCT from PROJECT_MGMT) - 드롭다운
if(fnc_checkNull(row["PRODUCT"]) != ""){
$("#PRODUCT_NAME").val(row["PRODUCT"]).trigger("change");
// console.log("제품구분 설정:", row["PRODUCT"]);
}
// 국내/해외 (AREA_CD from PROJECT_MGMT)
if(fnc_checkNull(row["AREA_CD"]) != ""){
$("#AREA_CD").val(row["AREA_CD"]).trigger("change");
// console.log("국내/해외 설정:", row["AREA_CD"]);
}
// 고객사 (CUSTOMER_OBJID from PROJECT_MGMT)
if(fnc_checkNull(row["CUSTOMER_OBJID"]) != ""){
$("#CUSTOMER_OBJID").val(row["CUSTOMER_OBJID"]).trigger("change");
// console.log("고객사 설정:", row["CUSTOMER_OBJID"]);
}
// 유/무상 (PAID_TYPE from CONTRACT_MGMT)
if(fnc_checkNull(row["PAID_TYPE"]) != ""){
$("#PAID_TYPE").val(row["PAID_TYPE"]).trigger("change");
// console.log("유/무상 설정:", row["PAID_TYPE"]);
}
// 주문유형 (CATEGORY_CD from CONTRACT_MGMT)
if(fnc_checkNull(row["CATEGORY_CD"]) != ""){
$("#ORDER_TYPE").val(row["CATEGORY_CD"]).trigger("change");
// console.log("주문유형 설정:", row["CATEGORY_CD"]);
}
}
// ★★★ M-BOM 품목 자동 로드 ★★★
fn_loadMbomParts($(this).val());
}
});
$("#REQUEST_USER_ID").val('<%=connectUserId%>');
$(".select2").select2();
<% }else{ %>
$("#REQUEST_USER_ID").val('<%=connectUserId%>');
$(".select2").select2();
$("#btnSupplySave").click(function(){ fn_Supply_save(); }); //공급업체저장
<% } %>
});
</script>
<script>
//상신된 결재라인가져오기
function fn_getApprLine(){
if('${resultMap.OBJID}'!=''){
$.ajax({
url:"/common/getApprovalLine.do",
type:"POST",
data:{"objId":"${resultMap.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 fn_getSalesRequestTargetPartList(masterObjId,bomObjId){
$("#partListArea").empty();
var requestStatus = $("#STATUS").val();
var appendText = "";
$.ajax({
url:"/salesMng/getSalesRequestTargetList.do",
type:"POST",
data:{"SALES_REQUEST_MASTER_OBJID":"${resultMap.OBJID}"},
dataType:"json",
async:false,
success:function(data){
var resultData = data;
$.each(resultData, function(i){
// console.log("resultData["+i+"]:"+resultData[i]);
//var RNUM = fnc_checkNull(resultData[i].RNUM);
var rowObjId = fnc_checkNull(resultData[i].OBJID);
var PART_OBJID = fnc_checkNull(resultData[i].PART_OBJID);
var PART_NO = fnc_checkNull(resultData[i].PART_NO);
var PART_NAME = fnc_checkNull(resultData[i].PART_NAME);
//var SPEC = fnc_checkNull(resultData[i].SPEC);
var QTY = fnc_checkNull(resultData[i].QTY);
var PARTNER_OBJID = fnc_checkNull(resultData[i].PARTNER_OBJID);
//var DELIVERY_REQUEST_DATE = fnc_checkNull(resultData[i].DELIVERY_REQUEST_DATE);
//var REMARK = fnc_checkNull(resultData[i].REMARK);
var SALES_REQUEST_MASTER_OBJID = fnc_checkNull(resultData[i].SALES_REQUEST_MASTER_OBJID);
appendText += " <tr class='dataTr' id='"+rowObjId+"'>";
appendText += " <input type='hidden' name='OBJID' value='"+rowObjId+"'class='TARGET_OBJID'>";
appendText += " <td class='align_c'>";
appendText += " <input type='checkbox' name='chkOBJID"+rowObjId+"' value='"+rowObjId+"' class='chkBox'>";
appendText += " </td>";
//appendText += " <td class='align_l' value='RNUM'>";
//appendText += " <input type='text' name='RNUM_"+rowObjId+"' value='"+RNUM+"'>";
//appendText += " </td>";
//appendText += " <td class='input_title'><label>품번</label></td>";
appendText += " <td class='align_l' colspan=''>";
if(requestStatus == 'approvalComplete' || requestStatus == 'reception'){
appendText += " <input type='text' name='PART_NO_"+rowObjId+"' id='PART_NO_"+rowObjId+"' value='"+PART_NO+"' readonly style='width: 100%;'>";
}else{
appendText += " <select name='PART_OBJID_"+rowObjId+"' id='PART_OBJID_"+rowObjId+"' reqTitle='품번' type='select' class='select2' style='width: 100%;'>";
appendText += " </select>";
}
appendText += " </td>";
//appendText += " <td class='input_title'><label>품명</label></td>";
appendText += " <td class='align_l' colspan=''>";
appendText += " <input type='text' name='PART_NAME_"+rowObjId+"' value='"+PART_NAME+"' readonly style='width: 100%;'>";
appendText += " </td>";
//appendText += " <td class='align_l'>";
//appendText += " <input type='text' name='SPEC_"+rowObjId+"' value='"+SPEC+"'>";
//appendText += " </td>";
//appendText += " <td class='input_title'><label>수량</label></td>";
appendText += " <td class='align_c' type='number'>";
appendText += " <input type='number' name='QTY_"+rowObjId+"' value='"+QTY+"' reqTitle='수량' required style='text-align: center;'>";
appendText += " </td>";
// 공급업체
appendText += " <td class='align_l'>";
appendText += " <select name='PARTNER_OBJID_"+rowObjId+"' id='PARTNER_OBJID_"+rowObjId+"' type='select' class='select2' style='width:100%;'>";
appendText += " </select>";
appendText += " </td>";
// 단가
var PARTNER_PRICE = fnc_checkNull(resultData[i].PARTNER_PRICE);
appendText += " <td class='align_r'>";
appendText += " <input type='text' name='PARTNER_PRICE_"+rowObjId+"' id='PARTNER_PRICE_"+rowObjId+"' value='"+PARTNER_PRICE+"' style='text-align: right; width:100%;'>";
appendText += " </td>";
appendText += " </tr>";
//fnc_getSupplyCodeListAppend("PARTNER_OBJID_"+rowObjId, PARTNER_OBJID);
//fn_addBomPart("PART_OBJID_"+rowObjId, PART_NO);
});
$("#partListArea").append(appendText);
// 프로젝트번호가 설정되어 있는지 확인하고, 없으면 품번 드롭다운을 채울 수 없음
var projectNo = $("#PROJECT_NO").val();
if(!projectNo || projectNo == "") {
console.warn("프로젝트번호가 선택되지 않아 품번 목록을 불러올 수 없습니다.");
}
$.each(resultData, function(i){
var rowObjId = fnc_checkNull(resultData[i].OBJID);
var PART_OBJID = fnc_checkNull(resultData[i].PART_OBJID);
var PART_NO = fnc_checkNull(resultData[i].PART_NO);
var PART_NAME = fnc_checkNull(resultData[i].PART_NAME);
// 공급업체 셋팅 (CLIENT_MNG 테이블)
var PARTNER_OBJID = fnc_checkNull(resultData[i].PARTNER_OBJID);
fnc_getClientMngListAppend("PARTNER_OBJID_"+rowObjId, PARTNER_OBJID);
fn_addBomPart("PART_OBJID_"+rowObjId, PART_OBJID, "PART_NAME_"+rowObjId,"");
// M-BOM에 없는 품번이면 수동으로 추가
if(PART_OBJID != "" && PART_NO != "") {
var selectBox = $("#PART_OBJID_"+rowObjId);
// 이미 옵션이 있는지 확인
if(selectBox.find("option[value='"+PART_OBJID+"']").length == 0) {
selectBox.append("<option value='"+PART_OBJID+"'>"+PART_NO+"</option>");
}
selectBox.val(PART_OBJID);
$("#PART_NAME_"+rowObjId).val(PART_NAME);
}
});
$(".select2").select2();
},
error: function(jqxhr, status, error){
}
});
//$("#partListArea").append(appendText);
}
/* 물품구매요청서 Row 추가 */
function fn_AddRow(){
// 유닛명 체크 제거 - 필수 아님
// if($("#UNIT_NAME").val() == '' || $("#UNIT_NAME").val() == null){
// Swal.fire("유닛명을 먼저 선택해주세요");
// return false;
// }
var rowObjId = fnc_createObjId();
var appendText = "";
appendText += " <tr class='dataTr' id='"+rowObjId+"'>";
appendText += " <input type='hidden' name='OBJID' value='"+rowObjId+"'class='TARGET_OBJID'>";
appendText += " <td class='align_c'>";
appendText += " <input type='checkbox' name='chkOBJID"+rowObjId+"' value='"+rowObjId+"' class='chkBox'>";
appendText += " </td>";
//appendText += " <td class='align_l' value='RNUM'>";
//appendText += " <input type='text' name='RNUM_"+rowObjId+"'>";
//appendText += " </td>";
//appendText += " <td class='input_title'><label>품번</label></td>";
appendText += " <td class='align_l' value='PART_OBJID' title='PART_OBJID' colspan=''>";
appendText += " <select name='PART_OBJID_"+rowObjId+"' id='PART_OBJID_"+rowObjId+"' reqTitle='품번' type='select' class='select2' style='width: 100%;'>";
appendText += " </select>";
appendText += " </td>";
//appendText += " <td class='input_title'><label>품명</label></td>";
appendText += " <td class='align_l' value='PART_NAME' title='PART_NAME' colspan=''>";
appendText += " <input type='text' name='PART_NAME_"+rowObjId+"' id='PART_NAME_"+rowObjId+"' readonly style='width: 100%;'>";
appendText += " </td>";
//appendText += " <td class='align_l' value='SPEC' title='UNIT_TITLE'>";
//appendText += " <input type='text' name='SPEC_"+rowObjId+"'>";
//appendText += " </td>";
//appendText += " <td class='input_title'><label>수량</label></td>";
appendText += " <td class='align_c' value='QTY' type='number' readonly>";
appendText += " <input type='number' name='QTY_"+rowObjId+"' reqTitle='수량' required style='text-align: center;'>";
appendText += " </td>";
// 공급업체
appendText += " <td class='align_l' value='PARTNER_OBJID'>";
appendText += " <select name='PARTNER_OBJID_"+rowObjId+"' id='PARTNER_OBJID_"+rowObjId+"' type='select' class='select2' style='width:100%;'>";
appendText += " </select>";
appendText += " </td>";
// 단가
appendText += " <td class='align_r' value='PARTNER_PRICE'>";
appendText += " <input type='text' name='PARTNER_PRICE_"+rowObjId+"' id='PARTNER_PRICE_"+rowObjId+"' style='text-align: right; width:100%;'>";
appendText += " </td>";
appendText += " </tr>";
if(0 < $("#partListArea tr:first").lenght || typeof $("#partListArea tr:first").lenght != "undefined") {
$("#partListArea tr:first").before(appendText);
}else{
$("#partListArea").append(appendText);
}
// 공급업체 셋팅 (CLIENT_MNG 테이블)
fnc_getClientMngListAppend("PARTNER_OBJID_"+rowObjId, "");
fn_addBomPart("PART_OBJID_"+rowObjId, "", "PART_NAME_"+rowObjId, "");
fnc_datepick();
$(".select2").select2();
}
/* Row 삭제 */
function fn_deleteRow(){
$(".chkBox:checked").length;
if(0 < $(".chkBox:checked").length){
if(confirm("선택된 내용을 삭제하시겠습니까?")){
$(".chkBox:checked").each(function(i){
var targetOBJID = $(this).val();
$("#"+targetOBJID).remove();
});
}
}else{
Swal.fire("선택된 내용이 없습니다.");
return false;
}
}
<!--
//결재정보를 가져온다.
function fn_getApprovalLine(){
var scheduleList = new Array();
<c:forEach items="${approvalList}" var="approvalItem">
var seq = "${approvalItem.SEQ}";
var targetUserName = "${approvalItem.TARGET_USER_NAME}";
var procDate = "${approvalItem.PROC_DATE}";
if(1 == seq){
$("#reviewerName").append(targetUserName);
$("#reviewerDate").append(procDate);
}
if(2 == seq){
$("#confirmName").append(targetUserName);
$("#confirmDate").append(procDate);
}
</c:forEach>
}
-->
// 물품구매요청서 내용을 저장한다.
function fn_save(){
var formData = $("#form1").serialize();
if(confirm("저장하시겠습니까?")){
$.ajax({
type: "POST",
url: "/salesMng/saveSalesRequestInfo.do",
data: $("#form1").serialize(),
dataType:"json",
success:function(data){
//Swal.fire(data.msg);
alert(data.msg);
if(typeof opener.fn_search =="function"){ opener.fn_search() };
self.close();
if(data.result){
opener.fn_search();
self.close();
}
},
error: function(jqxhr, status, error){
}
});
}
}
//공급업체 내용을 저장한다.
function fn_Supply_save(){
var formData = $("#form1").serialize();
if(confirm("저장하시겠습니까?")){
$.ajax({
type: "POST",
url: "/salesMng/saveSalesRequestSupplyInfo.do",
data: $("#form1").serialize(),
dataType:"json",
success:function(data){
//Swal.fire(data.msg);
alert(data.msg);
if(data.result){
opener.fn_search();
self.close();
}
},
error: function(jqxhr, status, error){
}
});
}
}
// 구매요청서 확정 처리
function fn_confirm(){
var masterObjId = $("#SALES_REQUEST_MASTER_OBJID").val();
if(fnc_checkNull(masterObjId) == ""){
Swal.fire("먼저 저장해주세요.");
return;
}
// 품목이 있는지 확인
if($("#partListArea tr").length < 1){
Swal.fire("품목이 없습니다. 먼저 품목을 추가하고 저장해주세요.");
return;
}
Swal.fire({
title: '확정',
text: '확정하시겠습니까? 확정 후에는 수정이 불가능합니다.',
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#5cb85c',
cancelButtonColor: '#d33',
confirmButtonText: '확정',
cancelButtonText: '취소'
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
type: "POST",
url: "/salesMng/confirmSalesRequest.do",
data: { "SALES_REQUEST_MASTER_OBJID": masterObjId },
dataType: "json",
success: function(data){
if(data.result){
Swal.fire({
title: '완료',
text: '확정되었습니다.',
icon: 'success'
}).then(() => {
if(typeof opener.fn_search == "function"){
opener.fn_search();
}
self.close();
});
} else {
Swal.fire('오류', data.msg || '확정 처리 중 오류가 발생했습니다.', 'error');
}
},
error: function(jqxhr, status, error){
Swal.fire('오류', '서버 통신 중 오류가 발생했습니다.', 'error');
}
});
}
});
}
// ★★★ 프로젝트 선택 시 M-BOM 품목 자동 로드 ★★★
function fn_loadMbomParts(projectObjId){
if(fnc_checkNull(projectObjId) == "") return;
// console.log("M-BOM 품목 로드 시작, PROJECT_OBJID:", projectObjId);
// M-BOM 품목 조회
var paramData = {"sqlId":"salesMng.SalesBomPartListByProjectUnit", "PROJECT_OBJID":projectObjId};
var resultList = fnc_getJsonAllDataListBySqlId(paramData);
// console.log("M-BOM 품목 조회 결과:", resultList);
if(resultList && resultList.length > 0){
// 기존 품목 초기화
$("#partListArea").empty();
// M-BOM 품목을 행으로 추가
$.each(resultList, function(i, item){
var rowObjId = fnc_createObjId();
var PART_OBJID = fnc_checkNull(item.PART_OBJID);
var PART_NO = fnc_checkNull(item.PART_NO);
var PART_NAME = fnc_checkNull(item.PART_FULL_NAME) || fnc_checkNull(item.PART_NAME);
var QTY = fnc_checkNull(item.ORDER_QTY) || 1;
var appendText = "";
appendText += "<tr class='dataTr' id='"+rowObjId+"'>";
appendText += " <input type='hidden' name='OBJID' value='"+rowObjId+"' class='TARGET_OBJID'>";
appendText += " <td class='align_c'>";
appendText += " <input type='checkbox' name='chkOBJID"+rowObjId+"' value='"+rowObjId+"' class='chkBox'>";
appendText += " </td>";
appendText += " <td class='align_l'>";
appendText += " <select name='PART_OBJID_"+rowObjId+"' id='PART_OBJID_"+rowObjId+"' reqTitle='품번' type='select' class='select2' style='width: 100%;'>";
appendText += " <option value='"+PART_OBJID+"'>"+PART_NO+"</option>";
appendText += " </select>";
appendText += " </td>";
appendText += " <td class='align_l'>";
appendText += " <input type='text' name='PART_NAME_"+rowObjId+"' id='PART_NAME_"+rowObjId+"' value='"+PART_NAME+"' readonly style='width: 100%;'>";
appendText += " </td>";
appendText += " <td class='align_c'>";
appendText += " <input type='number' name='QTY_"+rowObjId+"' value='"+QTY+"' reqTitle='수량' required style='text-align: center;'>";
appendText += " </td>";
// 공급업체
appendText += " <td class='align_l'>";
appendText += " <select name='PARTNER_OBJID_"+rowObjId+"' id='PARTNER_OBJID_"+rowObjId+"' type='select' class='select2' style='width:100%;'>";
appendText += " </select>";
appendText += " </td>";
// 단가
appendText += " <td class='align_r'>";
appendText += " <input type='text' name='PARTNER_PRICE_"+rowObjId+"' id='PARTNER_PRICE_"+rowObjId+"' style='text-align: right; width:100%;'>";
appendText += " </td>";
appendText += "</tr>";
$("#partListArea").append(appendText);
// 품번 드롭다운에 M-BOM 전체 품목 옵션 추가
fn_addBomPart("PART_OBJID_"+rowObjId, PART_OBJID, "PART_NAME_"+rowObjId, "");
// 공급업체 셋팅 (CLIENT_MNG 테이블)
fnc_getClientMngListAppend("PARTNER_OBJID_"+rowObjId, "");
});
$(".select2").select2();
// console.log("M-BOM 품목 " + resultList.length + "건 로드 완료");
} else {
// console.log("M-BOM 품목이 없습니다.");
}
}
//계약제품, 업체명으로 BOM에 등록된 부품정보를 자동 추가
function fn_addBomPart(selectboxId,selectedVal,sql_id,sql_supply){
$("#BOM_REPORT_OBJID").val("");
var project_objid = $("#PROJECT_NO").val(); //프로젝트명
var unit_code = $("#UNIT_NAME").val(); //유닛명
$("#"+selectboxId).empty();
$("#"+selectboxId).append("<option value=''>선택</option>");
var resultList = [];
// 1. 프로젝트가 선택되어 있으면 M-BOM 품목 먼저 조회
if(fnc_checkNull(project_objid)!=""){
var paramData = {"sqlId":"salesMng.SalesBomPartListByProjectUnit", "PROJECT_OBJID":project_objid};
if(fnc_checkNull(unit_code)!=""){
paramData.UNIT_CODE = unit_code;
}
resultList = fnc_getJsonAllDataListBySqlId(paramData);
// console.log("M-BOM 품목 조회 결과:", resultList.length, "건");
}
// 2. M-BOM 품목이 없으면 전체 PART_MNG에서 조회
if(resultList.length == 0){
// console.log("M-BOM 품목이 없어 전체 품목에서 조회합니다.");
var allPartData = {"sqlId":"salesMng.getAllPartMngList"};
resultList = fnc_getJsonAllDataListBySqlId(allPartData);
// console.log("전체 품목 조회 결과:", resultList.length, "건");
// 전체 품목 조회 결과 처리
if(0 < resultList.length){
for (var i = 0; i < resultList.length; i++) {
var commonCodeId = resultList[i].OBJID;
var commonCodeName = resultList[i].PART_NO;
var partName = resultList[i].PART_NAME;
$("#"+selectboxId).append("<option value='"+commonCodeId+"' data-part_name='"+partName+"'>"+commonCodeName+"</option>");
}
}
} else {
// M-BOM 품목 처리
for (var i = 0; i < resultList.length; i++) {
var commonCodeId = resultList[i].PART_OBJID;
var commonCodeName = resultList[i].PART_NO;
var partName = resultList[i].PART_NAME || resultList[i].PART_FULL_NAME;
var supplyObjid = resultList[i].SUPPLY_OBJID;
$("#"+selectboxId).append("<option value='"+commonCodeId+"' data-part_name='"+partName+"' data-supplyObjid='"+supplyObjid+"'>"+commonCodeName+"</option>");
}
}
// 선택값 설정 및 change 이벤트 바인딩
if(fnc_checkNull(selectedVal) != ""){
$("#"+selectboxId).val(selectedVal);
}
$("#"+selectboxId).off("change").on("change", function(){
$("#"+sql_id).val($(this).find("option:selected").attr("data-part_name"));
if(sql_supply){
$("#"+sql_supply).val($(this).find("option:selected").attr("data-supplyObjid"));
}
});
$("#"+selectboxId).trigger("change");
}
function fn_callbackFnc(){
opener.fn_search();
self.close();
}
</script>
<style>
.input_title {border-left:1px solid #ccc;}
.input_sub_title {border-left:1px solid #ccc;}
.pmsPopupForm tr:last-child td{border-bottom:1px solid #ccc;}
.required-mark { color: red; font-weight: bold; margin-left: 2px; }
</style>
<body>
<form name="form1" id="form1" action="" method="post">
<input type="hidden" name="SALES_REQUEST_MASTER_OBJID" id="SALES_REQUEST_MASTER_OBJID" value="${resultMap.OBJID}">
<input type="hidden" name="STATUS" id="STATUS" value="${resultMap.STATUS}">
<input type="hidden" name="DOC_TYPE" id="DOC_TYPE" value="${param.DOC_TYPE}">
<input type="hidden" name="TARGET_DRAWING_DOWNLOAD" id="TARGET_DRAWING_DOWNLOAD">
<section>
<div class="plm_menu_name" style="display:flex;">
<h2 style="width:100%;height:80px;text-align:center;margin-top:15px;">
<span style="font-size:30px;">구매요청서 (Purchase Request)</span>
</h2>
</div>
<div id="businessPopupFormWrap" style="z-index:99;">
<table class="pmsPopupForm" style="z-index:99;">
<colgroup>
<col width="10%">
<col width="15%">
<col width="10%">
<col width="15%">
<col width="10%">
<col width="15%">
<col width="10%">
<col width="15%">
</colgroup>
<!-- 1행: 구매유형, 프로젝트번호, 구매유형, 주문유형 -->
<tr>
<td class="input_title"><label for="">구매유형<span class="required-mark">*</span></label></td>
<td>
<select name="PURCHASE_TYPE" id="PURCHASE_TYPE" reqTitle="구매유형" required type="select" class="select2" style="width: 100%;">
<option value="">선택</option> ${code_map.purchase_type}
</select>
</td>
<td class="input_title"><label for="">프로젝트번호</label></td>
<td>
<select name="PROJECT_NO" id="PROJECT_NO" reqTitle="프로젝트번호" type="select" class="select2" style="width: 100%;">
<option value="">선택</option> ${code_map.project_no}
</select>
</td>
<!-- <td class="input_title"><label for="">구매유형<span class="required-mark">*</span></label></td>
<td>
<select name="PURCHASE_TYPE2" id="PURCHASE_TYPE2" reqTitle="구매유형" required type="select" class="select2" style="width: 100%;">
<option value="">선택</option> ${code_map.purchase_type}
</select>
</td> -->
<td class="input_title"><label for="">주문유형<span class="required-mark">*</span></label></td>
<td>
<select name="ORDER_TYPE" id="ORDER_TYPE" reqTitle="주문유형" required type="select" class="select2" style="width: 100%;">
<option value="">선택</option> ${code_map.category_cd}
</select>
</td>
<td class="input_title"><label for="">제품구분<span class="required-mark">*</span></label></td>
<td>
<select name="PRODUCT_NAME" id="PRODUCT_NAME" reqTitle="제품구분" required type="select" class="select2" style="width: 100%;">
<option value="">선택</option> ${code_map.product_name}
</select>
</td>
</tr>
<!-- 2행: 제품구분, 국내/해외, 고객사, 유/무상 -->
<tr>
<td class="input_title"><label for="">국내/해외<span class="required-mark">*</span></label></td>
<td>
<select name="AREA_CD" id="AREA_CD" reqTitle="국내/해외" required type="select" class="select2" style="width: 100%;">
<option value="">선택</option> ${code_map.area_cd}
</select>
</td>
<td class="input_title"><label for="">고객사<span class="required-mark">*</span></label></td>
<td>
<select name="CUSTOMER_OBJID" id="CUSTOMER_OBJID" reqTitle="고객사" required type="select" class="select2" style="width: 100%;">
<option value="">선택</option> ${code_map.customer_objid}
</select>
</td>
<td class="input_title"><label for="">유/무상<span class="required-mark">*</span></label></td>
<td>
<select name="PAID_TYPE" id="PAID_TYPE" reqTitle="유/무상" required type="select" class="select2" style="width: 100%;">
<option value="">선택</option> ${code_map.paid_type}
</select>
</td>
<td class="input_title"><label for="">입고요청일</label></td>
<td>
<input type="text" class="date_icon" name="DELIVERY_REQUEST_DATE" id="DELIVERY_REQUEST_DATE" reqTitle="입고요청일" value="${resultMap.DELIVERY_REQUEST_DATE}">
<input type="hidden" name="REQUEST_USER_ID" id="REQUEST_USER_ID" value="${resultMap.REQUEST_USER_ID}">
</td>
</tr>
<!-- 3행: 입고요청일 -->
<!-- <tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr> -->
</table>
</div>
<div class="btn_wrap">
<% if(isModify){ %>
<div class="plm_btn_wrap" style="padding:0 8 0 8; text-align: right;">
<input type="button" value="행추가" class="plm_btns" id="btnAddRow" name="btnAddRow">
<input type="button" value="행삭제" class="plm_btns" id="btnDeleteRow" name="btnDeleteRow">
<input type="button" value="저장" class="plm_btns" id="btnReg">
<input type="button" value="닫기" class="plm_btns" onclick="window.close();">
<input type="button" value="확정" class="plm_btns" id="btnConfirm" style="background-color:#5cb85c; color:white;">
</div>
<% }else{ %>
<div class="plm_btn_wrap" style="padding:0 8 0 8; text-align: right;">
<input type="button" value="닫기" class="plm_btns" onclick="window.close();">
</div>
<% } %>
</div>
<div id="businessPopupFormWrap" style="z-index:99;">
<table class="pmsPopupForm" style="z-index:99;">
<!-- <tr>
<td class="input_title">
<label for="">구매의뢰 부품</label>
</td>
</tr> -->
<tr>
<td style="border-top:1px solid #ccc;">
<div class="in_table_scroll_wrap _table1" style="height:40px;width:100%;">
<table class="plm_table">
<colgroup>
<col width="30px">
<col width="180px">
<col width="180px">
<col width="80px">
<col width="150px">
<col width="100px">
</colgroup>
<thead>
<tr class="plm_thead">
<td><input type="checkbox" name="allCheck" id="allCheck"></td>
<td>품번</td>
<td>품명</td>
<td>수량</td>
<td>공급업체</td>
<td>단가</td>
</tr>
</thead>
</table>
</div>
<div class="in_table_scroll_wrap _table2" style="height:250px;width:100%;">
<table class="plm_table">
<colgroup>
<col width="30px">
<col width="180px">
<col width="180px">
<col width="80px">
<col width="150px">
<col width="100px">
</colgroup>
<tbody id="partListArea">
</tbody>
</table>
</div>
</td>
</tr>
</table>
<!-- <div class="btn_wrap"> -->
<!-- <%-- <c:if test="${'create' eq resultMap.STATUS}"> --%> -->
<!-- <div class="plm_btn_wrap" style="padding:0 8 0 8; text-align: right;"> -->
<!-- <input type="button" value="수정" class="plm_btns" id="btnAddRow" name="btnAddRow" style="background:#dfeffc"> -->
<!-- <% if(isModify){ %> -->
<!-- <input type="button" value="결재상신" class="plm_btns" id="btnAppr" name="btnAppr" style="background:#dfeffc"> -->
<!-- <input type="button" value="저장" class="plm_btns" id="btnReg" style="background:#dfeffc"> -->
<!-- <% }else{ %> -->
<!-- <input type="button" value="공급업체저장" class="plm_btns" id="btnSupplySave" style="background:#dfeffc"> -->
<!-- <% } %> -->
<!-- <input type="button" value="닫기" class="plm_btns" style="background:#dfeffc" onclick="window.close();" > -->
<!-- </div> -->
<!-- <%-- </c:if> --%> -->
<!-- </div> -->
</div>
</section>
</form>
</body>
</html>