- Add Docker Compose configurations for dev, prod, and standalone environments - Add database initialization scripts (init-db.sh, init-db-docker.sh) - Add enhanced start-docker-linux.sh with DB init support - Add comprehensive database initialization guide - Support for automatic dbexport.pgsql import on first run - Include safety checks for production environment
798 lines
29 KiB
Plaintext
798 lines
29 KiB
Plaintext
<%@ 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"%>
|
|
<!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="fileDocType" value="MATER_MASTER" />
|
|
<c:set var="fileDocTypeName" value="발주등록" />
|
|
|
|
<script type="text/javascript">
|
|
var grid;
|
|
$(document).ready(function(){
|
|
|
|
$("#btnsearch").click(function(){
|
|
|
|
$("#process_cd").val($("#process1_cd option:selected").text());
|
|
|
|
gridFn.search();
|
|
});
|
|
|
|
|
|
$("#btnSave").click(function(){
|
|
fn_save();
|
|
});
|
|
|
|
$("#btnDel").click(function(){
|
|
gridFn.delRow();
|
|
});
|
|
|
|
|
|
$("#sup_cd").change(function(){
|
|
fn_change_sup_cd(this.value);
|
|
});
|
|
|
|
|
|
$("#btnAppr").click(function(){
|
|
|
|
if(fnc_valitate("form1")){
|
|
var objId = "${objId}";
|
|
if(""==grid.getRowData()){
|
|
Swal.fire('저장할 품목이 존재 하지 않습니다');
|
|
return;
|
|
}
|
|
|
|
var title = $("#title").val();
|
|
window.open("/approval/registApproval.do?targetType=MATERIAL_APPLY&targetObjId="+objId+"&approvalTitle="+encodeURIComponent(title)+"&callbackFnc=fn_appr_status","registApproval","width=700,height=700");
|
|
}
|
|
});
|
|
|
|
$('textarea').prop('readonly', true);
|
|
$('textarea').prop('disabled', true);
|
|
//$(".select2").select2();
|
|
|
|
//fnc_datepick(); //달력
|
|
fnc_setFileDropZone("file1DropZone", "${objId}", "${fileDocType}", "${fileDocTypeName}", "file1AreaDraw",false,null,null); //첨부파일
|
|
file1AreaDraw(); //첨부파일목록조회
|
|
|
|
//default value
|
|
//setDefault();
|
|
grid = $("#expenseDetailGrid").jqGrid({
|
|
url: ""
|
|
,datatype: "local"
|
|
,colNames: ["OBJID","마스터OBJID","Level","품명","품번","규격(재질)","제조사","수량","후처리","부품구분","공급업체","Rev","Date","단가","공급금액"]
|
|
,colModel: [
|
|
{name:"PART_MGMT_OBJID",index:"PART_MGMT_OBJID", width: 0, align:"center", hidden: true, sortable:false, editable:true}
|
|
,{name:"MATERIAL_MASTER_OBJID",index:"MATERIAL_MASTER_OBJID", width: 0, align:"center", hidden: true, sortable:false, editable:false}
|
|
,{name:"PART_LEVEL",index:"PART_LEVEL", width: 30, align:"center", hidden: false, sortable:false, editable:false}
|
|
,{name:"PART_NAME",index:"PART_NAME", width: 180, align:"left", hidden: false, sortable:false, editable:false}
|
|
,{name:"PART_NO",index:"PART_NO", width: 170, align:"left", hidden: false, sortable:false, editable:false}
|
|
,{name:"SPEC_CD",index:"SPEC_CD", width: 150, align:"center", hidden: false, sortable:false, editable:false}
|
|
,{name:"MFA_CD",index:"MFA_CD", width: 140, align:"center", hidden: false, sortable:false, editable:false}
|
|
,{name:"QTY" ,index:"QTY" , width:40, align: "center", hidden:false, sortable:false, editable: true
|
|
,formatter: "integer", formatoptions:{thousandsSeparator:","}
|
|
,editoptions:{
|
|
dataEvents: [
|
|
{type:"change", fn:function(e) {
|
|
//var rowid = grid.jqGrid('getGridParam','selrow');
|
|
var rowid = this.id.replace("_QTY","");
|
|
var rowData = grid.getRowData(rowid);
|
|
var cell1 = this.value;
|
|
//var cell2 = rowData.UNIT_PRICE;
|
|
var cell2 = $("#"+rowid+"_UNIT_PRICE").val();
|
|
var newValue = cell1 * cell2;
|
|
grid.jqGrid('setCell', rowid, 'PRICE', newValue);
|
|
|
|
//console.log(grid.jqGrid('getCell', rowid, 'PRICE'));
|
|
|
|
gridFn.footerSummary();
|
|
}}
|
|
]
|
|
,dataInit: function(e){
|
|
e.style.textAlign = "right";
|
|
e.style.fontSize = 13;
|
|
}
|
|
}
|
|
}
|
|
|
|
,{name:"PROCESS_NAME",index:"PROCESS_NAME", width: 130, align:"center", hidden: false, sortable:false, editable:false}
|
|
,{name:"SORT_NAME",index:"SORT_NAME", width: 100, align:"center", hidden: false, sortable:false, editable:false}
|
|
,{name:"SUP_NAME",index:"SUP_NAME", width: 110, align:"center", hidden: false, sortable:false, editable:false}
|
|
,{name:"REV",index:"REV", width: 50, align:"center", hidden: false, sortable:false, editable:false}
|
|
,{name:"REL_DATE",index:"REL_DATE", width: 90, align:"center", hidden: false, sortable:false, editable:false}
|
|
|
|
,{name:"UNIT_PRICE" ,index:"UNIT_PRICE" , width:90, align: "right", hidden:false, sortable:false, editable: true
|
|
,formatter: "integer", formatoptions:{thousandsSeparator:","}
|
|
,editoptions:{
|
|
dataEvents: [
|
|
{type:"change", fn:function(e) {
|
|
//var rowid = grid.jqGrid('getGridParam','selrow');
|
|
var rowid = this.id.replace("_UNIT_PRICE","");
|
|
var rowData = grid.getRowData(rowid);
|
|
var cell1 = $("#"+rowid+"_QTY").val();
|
|
var cell2 = this.value;
|
|
var newValue = cell1 * cell2;
|
|
grid.jqGrid('setCell', rowid, 'PRICE', newValue);
|
|
|
|
//console.log(grid.jqGrid('getCell', rowid, 'PRICE'));
|
|
|
|
gridFn.footerSummary();
|
|
}}
|
|
]
|
|
,dataInit: function(e){
|
|
e.style.textAlign = "right";
|
|
e.style.fontSize = 13;
|
|
}
|
|
}
|
|
}
|
|
|
|
,{name:"PRICE",index:"PRICE", width: 110, align:"right", hidden: false, sortable:false, editable:false ,formatter: "integer", formatoptions:{thousandsSeparator:","}}
|
|
/* ,{name:"PRICE" ,index:"PRICE" , width:130, align: "right", hidden:false, sortable:false, editable: true
|
|
,formatter: "integer", formatoptions:{thousandsSeparator:","}
|
|
,editoptions:{
|
|
dataEvents: [
|
|
{type:"change", fn:function(e) {
|
|
gridFn.footerSummary();
|
|
}}
|
|
]
|
|
,dataInit: function(e){
|
|
e.style.textAlign = "right";
|
|
}
|
|
}
|
|
} */
|
|
]
|
|
,rownumbers : true
|
|
,viewrecords : true
|
|
,height : 225
|
|
,multiselect : false
|
|
,shrinkToFit : false
|
|
,autowidth : true
|
|
,sortable : false
|
|
,rowNum : 1000
|
|
,forceFit : false //컬럼의 width를 변화시킬때 그리드의 width를 고정 여부
|
|
,jsonReader : {repeatitems: false}
|
|
,mtype :"POST"
|
|
,footerrow : false //바닥합계
|
|
,userDataOnFooter: true //바닥합계
|
|
,loadComplete: function(){
|
|
//footer 커스텀..
|
|
/* $(".ui-jqgrid-ftable td:eq(1)").remove();
|
|
$(".ui-jqgrid-ftable td:eq(1)").remove();
|
|
$(".ui-jqgrid-ftable td:eq(1)").remove();
|
|
$(".ui-jqgrid-ftable td:eq(1)").remove();
|
|
$(".ui-jqgrid-ftable td:eq(1)").remove();
|
|
$(".ui-jqgrid-ftable td:eq(1)").remove();
|
|
$(".ui-jqgrid-ftable td:eq(0)").attr({"colspan":"7", "rowspan":"2"});
|
|
$(".ui-jqgrid-ftable td:eq(0)").css({"width":""});
|
|
$(".ui-jqgrid-ftable td:eq(1)").attr({id:"summuryTotalCARD_USED"});
|
|
$(".ui-jqgrid-ftable td:eq(2)").attr({id:"summuryTotalCASH_USED"});
|
|
$(".ui-jqgrid-ftable td:eq(3)").attr({id:"summuryTotalPAYMENT" });
|
|
$(".ui-jqgrid-ftable tbody").append("<tr class=\"ui-widget-content footrow footrow-ltr\"><td colspan=\"3\" id=\"summuryTotal\" style=\"text-align:right\"></td></tr>");
|
|
$("#expenseDetailGrid").jqGrid("footerData", "set", { "rn":"정 산 지 급 액(원)", "CARD_USED": "", "CASH_USED": "", "PAYMENT": "" });
|
|
*/ }
|
|
});
|
|
|
|
//
|
|
|
|
gridFn.modify_search();
|
|
});
|
|
function fn_appr_status(){
|
|
$("#status_cd").val("PURSTCD00500");
|
|
gridFn.closeEdit();
|
|
$.ajax({
|
|
url:"/materMgmt/materMgmtRegSave.do"
|
|
,type:"POST"
|
|
,data: $("#form1").serialize() + "&jqGrid="+ encodeURIComponent(JSON.stringify(grid.getRowData()))
|
|
,dataType:"json"
|
|
,success:function(data){
|
|
/* if(data =="SUCCESS"){
|
|
Swal.fire("저장되었습니다.");
|
|
};
|
|
if(typeof opener.fn_search =="function"){ opener.fn_search() }; */
|
|
if(typeof opener.fn_search =="function"){ opener.fn_search() };
|
|
self.close();
|
|
}
|
|
,error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
|
|
|
|
}
|
|
function setDefault(){
|
|
var date = new Date();
|
|
var _yyyy = date.getFullYear();
|
|
var _mm = (date.getMonth() <10?"0":"") + (date.getMonth()+1);
|
|
var _dd = (date.getDate() <10?"0":"") + date.getDate();
|
|
var now_date = _yyyy+"-"+_mm+"-"+_dd;
|
|
|
|
if($("#bnsStartDate").val()==""){
|
|
$("#bnsStartDate").val(now_date);
|
|
}
|
|
if($("#bnsEndDate").val()==""){
|
|
$("#bnsEndDate").val(now_date);
|
|
}
|
|
if($("#regDate").val()==""){
|
|
$("#regDate").val(now_date);
|
|
}
|
|
}
|
|
|
|
var gridFn = {
|
|
opennEdit : function() { //수정가능
|
|
var ids = grid.jqGrid("getDataIDs");
|
|
for (var i = 0; i < ids.length; i++) {
|
|
grid.jqGrid("editRow",ids[i]);
|
|
}
|
|
}
|
|
,closeEdit : function() { //수정불가
|
|
var ids = grid.jqGrid("getDataIDs");
|
|
for (var i = 0; i < ids.length; i++) {
|
|
grid.jqGrid("saveRow", ids[i], /*successFunction*/null, /*url*/"clientArray"/*, extraparam, aftersavefunc,errorfunc, afterrestorefunc*/);
|
|
}
|
|
}
|
|
,delRow : function(){
|
|
var selectedRowIds = grid.jqGrid("getGridParam","selarrrow");
|
|
if(selectedRowIds.length==0){
|
|
Swal.fire("삭제할 행을 선택해주십시오.");
|
|
return false;
|
|
}
|
|
for(var i = selectedRowIds.length - 1; i >= 0; i--){
|
|
grid.delRowData(selectedRowIds[i]);
|
|
}
|
|
}
|
|
,search : function() {
|
|
grid.setGridParam({
|
|
url: "/materMgmt/searchPartMgmt.do"
|
|
,datatype : "json"
|
|
,postData : $("#form1").serialize()
|
|
,loadComplete : function(data) {
|
|
gridFn.footerSummary();
|
|
}
|
|
,gridComplete : function() {
|
|
gridFn.opennEdit(); //수정가능
|
|
}
|
|
}).trigger("reloadGrid");
|
|
grid.setGridParam({url: "", datatype : "local"});
|
|
}
|
|
,modify_search : function() {
|
|
grid.setGridParam({
|
|
url: "/materMgmt/modifysearchPartMgmt.do"
|
|
,datatype : "json"
|
|
,postData : "material_master_objid=${info.MATERIAL_MASTER_OBJID}"
|
|
,loadComplete : function(data) {
|
|
gridFn.footerSummary();
|
|
}
|
|
,gridComplete : function() {
|
|
gridFn.opennEdit(); //수정가능
|
|
}
|
|
}).trigger("reloadGrid");
|
|
grid.setGridParam({url: "", datatype : "local"});
|
|
}
|
|
,footerSummary: function(){ //자동합계
|
|
var colSum1 = 0;
|
|
var colSum2 = 0;
|
|
var colSum3 = 0;
|
|
//$("input[id*=UNIT_PRICE]").each(function(){ if($.isNumeric($(this).val())){ colSum1 += parseInt($(this).val()); } });
|
|
//$("input[id*=CASH_USED]").each(function(){ if($.isNumeric($(this).val())){ colSum2 += parseInt($(this).val()); } });
|
|
//$("input[id*=PAYMENT]" ).each(function(){ if($.isNumeric($(this).val())){ colSum3 += parseInt($(this).val()); } });
|
|
|
|
//$("#total_amount").val(numberWithCommas(colSum1+""));
|
|
//$("#summuryTotalCASH_USED").text(numberWithCommas(colSum2+""));
|
|
//$("#summuryTotalPAYMENT" ).text(numberWithCommas(colSum3+""));
|
|
//$("#summuryTotal").text(numberWithCommas((colSum1+colSum2-colSum3)+""));
|
|
|
|
var ids = grid.jqGrid("getDataIDs");
|
|
var total =0;
|
|
for (var i = 0; i < ids.length; i++) {
|
|
if($.isNumeric(grid.jqGrid('getCell', i+1, 'PRICE'))){
|
|
total = parseInt(total) + parseInt(grid.jqGrid('getCell', i+1, 'PRICE'));
|
|
}
|
|
|
|
}
|
|
$("#change_amount").val(total);
|
|
}
|
|
}
|
|
|
|
//코드값을 받아와서 동적으로 selectbox 생성
|
|
function fn_change_sup_cd(code){
|
|
var val=code;
|
|
|
|
var params = "codeId="+val;
|
|
//초기화
|
|
$("#supply_name").empty();
|
|
$("#reg_no").empty();
|
|
$("#supply_address").empty();
|
|
$("#supply_busname").empty();
|
|
$("#supply_stockname").empty();
|
|
$("#supply_tel_no").empty();
|
|
$("#supply_fax_no").empty();
|
|
$.ajax({
|
|
type : "POST",
|
|
url : "/admin/makeSupCdSelect.do",
|
|
data : params,
|
|
dataType:"json",
|
|
async: false,
|
|
success: function(data){
|
|
if(data.RESULT.length > 0){
|
|
console.log(data.RESULT[0]);
|
|
$("#supply_name").text(data.RESULT[0].SUPPLY_NAME);
|
|
$("#reg_no").text(data.RESULT[0].REG_NO);
|
|
$("#supply_address").text(data.RESULT[0].SUPPLY_ADDRESS);
|
|
$("#supply_busname").text(data.RESULT[0].SUPPLY_BUSNAME);
|
|
$("#supply_stockname").text(data.RESULT[0].SUPPLY_STOCKNAME);
|
|
$("#supply_tel_no").text(data.RESULT[0].SUPPLY_TEL_NO);
|
|
$("#supply_fax_no").text(data.RESULT[0].SUPPLY_FAX_NO);
|
|
}
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
function fn_save(){
|
|
if(fnc_valitate("form1")){
|
|
|
|
if(""==grid.getRowData()){
|
|
Swal.fire('저장할 품목이 존재 하지 않습니다');
|
|
return;
|
|
}
|
|
|
|
if(confirm("수정 하시겠습니까?")){
|
|
|
|
//return;
|
|
/* Swal.fire($("#form1").serialize());
|
|
return; */
|
|
gridFn.closeEdit();
|
|
$.ajax({
|
|
url:"/materMgmt/materMgmtRegSave.do"
|
|
,type:"POST"
|
|
,data: $("#form1").serialize() + "&jqGrid="+ encodeURIComponent(JSON.stringify(grid.getRowData()))
|
|
,dataType:"json"
|
|
,success:function(data){
|
|
if(data =="SUCCESS"){
|
|
Swal.fire("저장되었습니다.");
|
|
};
|
|
if(typeof opener.fn_search =="function"){ opener.fn_search() };
|
|
//self.close();
|
|
}
|
|
,error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
//형상 영역을 display 한다.
|
|
function file1AreaDraw(){
|
|
fn_fileCallback("file1","${fileDocType}");
|
|
}
|
|
//첨부파일 목록을 가져온다.
|
|
function fn_fileCallback(areaId,fileType){
|
|
$.ajax({
|
|
url:"/common/getFileList.do",
|
|
type:"POST",
|
|
data:{"targetObjId":"${objId}", "docType":fileType},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
if(0 < data.length){
|
|
//첨부파일 목록 영역 show
|
|
$("#"+areaId+"FileArea").empty();
|
|
if(0 < $("#"+areaId+"DefaultRow").length){
|
|
$("#"+areaId+"DefaultRow").hide();
|
|
}
|
|
|
|
$.each(data, function(i){
|
|
var appendText = "";
|
|
var path = data[i].FILE_PATH;
|
|
var fileName = data[i].SAVED_FILE_NAME;
|
|
var fileExt = data[i].UPPER_FILE_EXT;
|
|
appendText += "<colgroup>";
|
|
appendText +=" <col width=\"10%\">";
|
|
appendText +=" <col width=\"*\">";
|
|
appendText +=" <col width=\"20%\">";
|
|
appendText +=" </colgroup>";
|
|
appendText+= "<tr>";
|
|
appendText+= " <td>"+[i+1]+"</td>";
|
|
appendText+= " <td class=\"align_l\"><a href='javascript:fnc_downloadFile(\""+data[i].OBJID+"\")'> "+data[i].REAL_FILE_NAME+"</a>";
|
|
<c:if test="${param.actionType eq 'regist' or info.WRITER eq connectUserId or 'plm_admin' eq connectUserId}">
|
|
appendText+= "<a href=\"javascript:fileDelete('"+data[i].OBJID+"', '"+areaId+"')\"><div class=\"delete_btn\"></div></a>";
|
|
</c:if>
|
|
appendText+= "</td>";
|
|
appendText+= " <td>"+data[i].REGDATE+"</td>";
|
|
appendText+= "</tr>";
|
|
$("#"+areaId+"FileArea").append(appendText);
|
|
});
|
|
}else{
|
|
$("#"+areaId+"DropZone").show();
|
|
$("#"+areaId+"AttachFileList").hide();
|
|
$("#"+areaId+"FileArea").empty();
|
|
var appendText = "";
|
|
appendText += "<tr>";
|
|
appendText += "<td>첨부 파일이 없습니다.</td>";
|
|
appendText +="</tr>";
|
|
$("#"+areaId+"FileArea").append(appendText);
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}//파일 첨부 END
|
|
|
|
/*첨부 파일 삭제 */
|
|
function fileDelete(fileObjId,areaId){
|
|
var type =areaId;
|
|
if(confirm("파일을 삭제하시겠습니까?")){
|
|
$.ajax({
|
|
url:"/common/deleteFileInfo.do",
|
|
type:"POST",
|
|
data:{"objId":fileObjId},
|
|
dataType:"json",
|
|
async:true,
|
|
success:function(data){
|
|
fn_fileCallback("file1","${fileDocType}");
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}
|
|
</script>
|
|
|
|
</head>
|
|
<body>
|
|
<form name="form1" id="form1" action="" method="post">
|
|
<input type="hidden" name="process_cd" id="process_cd">
|
|
<input type="hidden" name="status_cd" id="status_cd">
|
|
<input type="hidden" name="material_master_objid" id="material_master_objid" value="${info.MATERIAL_MASTER_OBJID}">
|
|
<section>
|
|
<div class="plm_menu_name">
|
|
<h2><span>자재관리_발주등록</span></h2>
|
|
</div>
|
|
<div id="expenseApplyPopupFormWrap1" style="margin:3px 8px 5px">
|
|
<table class="pmsPopupForm">
|
|
<tr>
|
|
|
|
<td class="input_title" style="font-size:13px;"><label for="projectno"></label>Project No.</td>
|
|
<td class="input_sub_title">
|
|
<select name="projectno" id="projectno" required reqTitle="Project No" type="select" class="select2" autocomplete="off" disabled>
|
|
<option value="">선택</option>
|
|
${code_map.projectno}
|
|
</select>
|
|
</td>
|
|
|
|
<td class="input_title" style="font-size:13px;"><label for="process1_cd"></label>공정 No.</td>
|
|
<td>
|
|
<select name="process1_cd" id="process1_cd" reqTitle="공정 No" type="select" class="select2" autocomplete="off" disabled>
|
|
<option value="">선택</option>
|
|
${code_map.process1_cd}
|
|
</select>
|
|
<%-- ~
|
|
<!-- </td>
|
|
<td class="input_title"><label for="process1_cd">공정 No.</label></td>
|
|
<td> -->
|
|
<select name="process2_cd" id="process2_cd" reqTitle="공정 No" type="select" class="select2" autocomplete="off" style="width:200px;" >
|
|
<option value="">선택</option>
|
|
${code_map.process2_cd}
|
|
</select> --%>
|
|
</td>
|
|
|
|
<td class="input_title" style="font-size:13px;"><label for="partNo"></label>품번</td>
|
|
<td class="input_sub_title">
|
|
<input type="text" name="part_no" id="part_no" disabled />
|
|
</td>
|
|
|
|
<td class="input_title" style="font-size:13px;"><label for="sort_cd"></label>부품구분</td>
|
|
<td class="input_sub_title">
|
|
<select name="sort_cd" id="sort_cd" type="select" class="select2" autocomplete="off" disabled>
|
|
<option value="">선택</option>
|
|
${code_map.sort_cd}
|
|
</select>
|
|
</td>
|
|
<td class="input_title" style="font-size:13px;"><label for="pur_cd"></label>구매구분</td>
|
|
<td class="input_sub_title">
|
|
<select name="pur_cd" id="pur_cd" required reqTitle="구매구분" type="select" class="select2" autocomplete="off" disabled>
|
|
<option value="">선택</option>
|
|
${code_map.pur_cd}
|
|
</select>
|
|
</td>
|
|
<td class="input_title" style="font-size:13px;"><label for="sup_cd"></label>업체명</td>
|
|
<td class="input_sub_title">
|
|
<select name="sup_cd" id="sup_cd" required reqTitle="업체명" type="select" class="select2" autocomplete="off" disabled>
|
|
<option value="">선택</option>
|
|
${code_map.supply_cd}
|
|
</select>
|
|
</td>
|
|
|
|
</tr>
|
|
<tr>
|
|
<td class="input_title" style="font-size:13px;"><label for="title"></label>제목</td>
|
|
<td class="input_sub_title" colspan="3">
|
|
<input type="text" name="title" id="title" value="${info.TITLE}" disabled />
|
|
</td>
|
|
|
|
|
|
|
|
<td class="input_title" style="font-size:13px;"><label for="recv_date"></label>입고요청일</td>
|
|
<td class="input_sub_title">
|
|
<input type="text" name="recv_date" id="recv_date" class="date_icon" value="${info.RECV_DATE}" required reqTitle="입고요청일" disabled>
|
|
</td>
|
|
|
|
<td class="input_title" style="font-size:13px;"><label for="recv_userid"></label>입고담당자</td>
|
|
<td class="input_sub_title">
|
|
<select name="recv_userid" id="recv_userid" required reqTitle="입고담당자" type="select" class="select2" autocomplete="off" disabled>
|
|
<option value="">선택</option>
|
|
${code_map.recv_userid}
|
|
</select>
|
|
|
|
</td>
|
|
|
|
<td class="input_title" style="font-size:13px;"><label for="payment_cd"></label>결재방식</td>
|
|
<td class="input_sub_title">
|
|
<select name="payment_cd" id="payment_cd" required reqTitle="결재방식" type="select" class="select2" autocomplete="off" disabled>
|
|
<option value="">선택</option>
|
|
${code_map.payment_cd}
|
|
</select>
|
|
</td>
|
|
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="btn_wrap">
|
|
<div class="plm_btn_wrap" style="margin-right:8px;top:0;margin-bottom:-15px">
|
|
<input type="button" value="수정" class="plm_btns" id="btnSave" name="btnSave" style="background:#dfeffc">
|
|
<input type="button" value="닫기" class="plm_btns" style="background:#dfeffc" onclick="window.close();" >
|
|
<input type="button" value="결재상신" class="plm_btns" id="btnAppr" name="btnAppr" style="background:#dfeffc">
|
|
</div>
|
|
</div><br></br><div style="clear:both"></div>
|
|
<div id="plm_table_wrap1" style="padding:0 8 0 8;">
|
|
<div style="">
|
|
<div style="height: 270px;">
|
|
<table id="expenseDetailGrid""></table>
|
|
<!-- <div id="jqGridPager"></div> -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- <div class="btn_wrap">
|
|
<div class="plm_btn_wrap" style="padding:20 8 0 8; text-align: right;">
|
|
<input type="button" value="행추가" class="plm_btns" id="btnAdd" name="btnAdd" style="background: #dfeffc">
|
|
<input type="button" value="행삭제" class="plm_btns" id="btnDel" name="btnDel" style="background: #dfeffc">
|
|
</div>
|
|
</div> -->
|
|
<!-- <div style="padding:10 8 0 8; font-weight: 500; font-size: 12px;">
|
|
※ 작성요령<br/>
|
|
1) 식대는 끼니수(몇식)<br/>
|
|
2) 숙박은 몇인/몇박<br/>
|
|
3) 차량거리(Km), 이용차량(법인/자차, 자차(가솔린/경유/전기차/하이브리드)) 구분
|
|
</div> -->
|
|
|
|
|
|
<div id="plm_table_wrap2" style="padding:0 8 0 8;">
|
|
<table class="plm_table" style="border:3px solid #333">
|
|
<tr>
|
|
<td colspan="3" style="text-align: center; background-color: #e4e7ec; font-weight: 500; font-size: 12px;">
|
|
현업산출금액
|
|
</td>
|
|
|
|
<td colspan="3" style="text-align: center; background-color: #e4e7ec; font-weight: 500; font-size: 12px;">
|
|
구매팀 Nego 금액(원)
|
|
</td>
|
|
<td colspan="6" style="text-align: center; background-color: #FFCD12; font-weight: 500; font-size: 12px;">
|
|
최종 발주 금액(원)
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td colspan="3" style="text-align: right;font-weight: 500; font-size: 12px;">
|
|
<input type="text" name="total_amount" id="total_amount" style="text-align:right;background-color: #fff;" readonly value="${info.TOTAL_AMOUNT}" />
|
|
</td>
|
|
|
|
<td colspan="3" style="text-align: right;font-weight: 500; font-size: 12px;">
|
|
<input type="text" name="change_amount" id="change_amount" style="text-align:right;background-color: #fff;" readonly value="${info.CHANGE_AMOUNT}" />
|
|
</td>
|
|
|
|
<td colspan="6" style="text-align: right;font-weight: 500; font-size: 12px;">
|
|
<input type="text" name="final_order_amount" id="final_order_amount" style="text-align:right;background-color: #fff;" value="${info.FINAL_ORDER_AMOUNT}" />
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="2" style="text-align:center; background-color: #fff; font-weight: 500; font-size: 12px;">파일첨부</td>
|
|
<td colspan="5">
|
|
<div class="project_form_in_table" style="width: 100%" id="fileListAreaTable">
|
|
<div style="overflow-y: scroll;">
|
|
<table style="width:100%;">
|
|
<colgroup>
|
|
<col width="10%">
|
|
<col width="*">
|
|
<col width="20%">
|
|
</colgroup>
|
|
<thead>
|
|
<tr class="plm_thead">
|
|
<td>No</td>
|
|
<td>첨부파일명</td>
|
|
<td>등록일</td>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
<div class="plm_scroll_table" style="height:50px;width:100%;">
|
|
<table class="plm_table">
|
|
<colgroup>
|
|
<col width="10%">
|
|
<col width="*">
|
|
<col width="20%">
|
|
</colgroup>
|
|
</table>
|
|
<table id="file1FileArea" class="fileListscrollTbody">
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
|
|
<td rowspan="2" style="text-align: center; background-color: #fff; font-weight: 500; font-size: 12px;">특이사항</td>
|
|
<td rowspan="2" colspan="5" style="text-align: right;font-weight: 500; font-size: 12px;">
|
|
<textarea style="width:100%; height: 100px;" name="reason" id="reason">${info.REASON}</textarea>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
<td colspan="6" style="text-align: left;font-weight: 500; background-color: #B7F0B1; font-size: 12px;">
|
|
공급업체
|
|
</td>
|
|
|
|
<td colspan="6" style="text-align: left;font-weight: 500; background-color: #B2EBF4; font-size: 12px;">
|
|
공급받는자
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td style="text-align: center;font-weight: 500; background-color: #B7F0B1; font-size: 12px;">
|
|
상호
|
|
</td>
|
|
<td id="supply_name" colspan="2" style="text-align: center;font-weight: 500; background-color: #fff; font-size: 12px;">
|
|
${info.SUPPLY_NAME}
|
|
</td>
|
|
|
|
<td style="text-align: center;font-weight: 500; background-color: #B7F0B1; font-size: 12px;">
|
|
등록번호
|
|
</td>
|
|
|
|
<td id="reg_no" colspan="2" style="text-align: center;font-weight: 500; background-color: #fff; font-size: 12px;">
|
|
${info.REG_NO}
|
|
</td>
|
|
|
|
|
|
<td style="text-align: center;font-weight: 500; background-color: #B2EBF4; font-size: 12px;">
|
|
상호
|
|
</td>
|
|
|
|
<td colspan="2" style="text-align: center;font-weight: 500; background-color: #fff; font-size: 12px;">
|
|
(주)삼덕에스디피
|
|
</td>
|
|
|
|
<td style="text-align: center;font-weight: 500; background-color: #B2EBF4; font-size: 12px;">
|
|
등록번호
|
|
</td>
|
|
|
|
<td colspan="2" style="text-align: center;font-weight: 500; background-color: #fff; font-size: 12px;">
|
|
312-86-44206
|
|
</td>
|
|
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td style="text-align: center;font-weight: 500; background-color: #B7F0B1; font-size: 12px;">
|
|
주소
|
|
</td>
|
|
|
|
<td id="supply_address" colspan="5" style="text-align: center;font-weight: 500; background-color: #fff; font-size: 12px;">
|
|
${info.SUPPLY_ADDRESS}
|
|
</td>
|
|
|
|
<td style="text-align: center;font-weight: 500; background-color: #B2EBF4; font-size: 12px;">
|
|
주소
|
|
</td>
|
|
|
|
<td colspan="5" style="text-align: center;font-weight: 500; background-color: #fff; font-size: 12px;">
|
|
충청남도 천안시 서북구 직산읍 부송1길 32
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
<td style="text-align: center;font-weight: 500; background-color: #B7F0B1; font-size: 12px;">
|
|
업태
|
|
</td>
|
|
|
|
<td id="supply_busname" colspan="2" style="text-align: center;font-weight: 500; background-color: #fff; font-size: 12px;">
|
|
${info.SUPPLY_BUSNAME}
|
|
</td>
|
|
|
|
<td id="supply_stockname" style="text-align: center;font-weight: 500; background-color: #B7F0B1; font-size: 12px;">
|
|
업종
|
|
</td>
|
|
|
|
<td colspan="2" style="text-align: center;font-weight: 500; background-color: #fff; font-size: 12px;">
|
|
${info.SUPPLY_STOCKNAME}
|
|
</td>
|
|
|
|
<td style="text-align: center;font-weight: 500; background-color: #B2EBF4; font-size: 12px;">
|
|
업태
|
|
</td>
|
|
|
|
<td colspan="2" style="text-align: center;font-weight: 500; background-color: #fff; font-size: 12px;">
|
|
제조
|
|
</td>
|
|
|
|
<td style="text-align: center;font-weight: 500; background-color: #B2EBF4; font-size: 12px;">
|
|
업종
|
|
</td>
|
|
|
|
<td colspan="2" style="text-align: center;font-weight: 500; background-color: #fff; font-size: 12px;">
|
|
반도체,LCD,자동화장비 및 부품 제조
|
|
</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
<td style="text-align: center;font-weight: 500; background-color: #B7F0B1; font-size: 12px;">
|
|
대표전화
|
|
</td>
|
|
|
|
<td id="supply_tel_no" colspan="2" style="text-align: center;font-weight: 500; background-color: #fff; font-size: 12px;">
|
|
${info.SUPPLY_TEL_NO}
|
|
</td>
|
|
|
|
<td style="text-align: center;font-weight: 500; background-color: #B7F0B1; font-size: 12px;">
|
|
팩스
|
|
</td>
|
|
|
|
<td id="supply_fax_no" colspan="2" style="text-align: center;font-weight: 500; background-color: #fff; font-size: 12px;">
|
|
${info.SUPPLY_TEL_NO}
|
|
</td>
|
|
|
|
|
|
<td style="text-align: center;font-weight: 500; background-color: #B2EBF4; font-size: 12px;">
|
|
대표전화
|
|
</td>
|
|
|
|
<td colspan="2" style="text-align: center;font-weight: 500; background-color: #fff; font-size: 12px;">
|
|
041-585-0551
|
|
</td>
|
|
|
|
<td style="text-align: center;font-weight: 500; background-color: #B2EBF4; font-size: 12px;">
|
|
팩스
|
|
</td>
|
|
|
|
<td colspan="2" style="text-align: center;font-weight: 500; background-color: #fff; font-size: 12px;">
|
|
041-585-0553
|
|
</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
</table>
|
|
</div>
|
|
</section>
|
|
|
|
<%-- <textarea style="width:0px; height:0px; visibility: hidden;" id="gridExpSortCd">${code_map.gridExpSortCd}</textarea>
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="gridExpSubmCd">${code_map.gridExpSubmCd}</textarea><!-- 코드동적설정 -->
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="gridExpSubdCd">${code_map.gridExpSubdCd}</textarea><!-- 코드동적설정 --> --%>
|
|
|
|
</form>
|
|
</body>
|
|
</html> |