1073 lines
46 KiB
Plaintext
1073 lines
46 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.jsp"%>
|
|
<%--@include file="/init_jqGrid.jsp"--%>
|
|
<%--Expression Language ::: ${fn:escapeXml(str1)} --%>
|
|
<c:set var="now" value="<%=new java.util.Date() %>"/>
|
|
<c:set var="sysYear"><fmt:formatDate value="${now}" pattern="yyyy" /></c:set>
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title><%=Constants.SYSTEM_NAME%></title>
|
|
</head>
|
|
|
|
<link rel="stylesheet" href="/css/selectMulti.css">
|
|
|
|
<style>
|
|
/* //.tabulator-row-select { */
|
|
.tabulator-row .tabulator-cell {
|
|
/*
|
|
width: 20px !important;
|
|
*/
|
|
}
|
|
|
|
/*
|
|
.tabulator-row .tabulator-cell input[type="checkbox"] {
|
|
/*width: 20px; 원하는 너비로 조절하세요 */
|
|
}
|
|
*/
|
|
</style>
|
|
|
|
|
|
<script type="text/javascript">
|
|
$(document).ready(function(){
|
|
//fnc_changePaginationAndTotalCountArea();
|
|
|
|
//$(".tabulator-row > .tabulator-cell").has('input').css('width', '10px');
|
|
//$(".tabulator-cell input[type='checkbox']").css("width", "20px"); // 원하는 너비로 조절하세요
|
|
//$(".tabulator-row .tabulator-cell input[type='checkbox']").css("width", "20px !important"); // 원하는 너비로 조절하세요
|
|
|
|
$("input").keyup(function(e){
|
|
if(e.keyCode == 13){
|
|
$("#page").val("1");
|
|
fn_search();
|
|
}
|
|
});
|
|
|
|
$('.select2').select2();
|
|
fnc_datepick();
|
|
|
|
//조회
|
|
|
|
|
|
$("#btnSearch").click(function(){
|
|
$("#page").val("1");
|
|
fn_search();
|
|
});
|
|
//등록
|
|
$("#btnReg").click(function(){
|
|
fn_formPopUp("");
|
|
});
|
|
//삭제
|
|
$("#btnDelete").click(function(){
|
|
fn_delete();
|
|
});
|
|
//취소
|
|
$("#btnCancel").click(function(){
|
|
fn_cancel();
|
|
});
|
|
$("#btnSave").click(function(){
|
|
fn_save();
|
|
});
|
|
$("#btnExcel").click(function() {
|
|
fn_excel();
|
|
});
|
|
//수주활동 복사 팝업
|
|
$("#btnCopy").click(function(){
|
|
var checkedObj = _tabulGrid.getSelectedData();
|
|
|
|
if(0 == checkedObj.length){
|
|
Swal.fire("선택된 대상이 없습니다.");
|
|
}else if(checkedObj.length > 1){
|
|
Swal.fire("한 건만 선택하세요.");
|
|
}else{
|
|
var objId = fnc_checkNull(checkedObj[0].OBJID);
|
|
fn_formPopUp(objId, "copy");
|
|
}
|
|
});
|
|
$("#project_no").change(function(){
|
|
//fnc_productUPGNEWList(this.value,"","upg_no", "");
|
|
fn_UnitCodeList(this.value, "unit_code", "");
|
|
});
|
|
|
|
//결재상신
|
|
$("#btnApproval").click(function(){
|
|
//var selectedRowIds = fn_jqGrid_selarrrow(grid1);
|
|
var selectedData = _tabulGrid.getSelectedData();
|
|
if(selectedData.length<1){
|
|
Swal.fire("결재상신할 행을 선택해주십시오.");
|
|
return false;
|
|
}else if(selectedData.length>1){
|
|
Swal.fire("한번에 한개의 결재만 가능합니다.");
|
|
return false;
|
|
}else{
|
|
//var targetStatus = grid1.getCell(selectedRowIds, "APPR_STATUS_NAME");
|
|
//var title = grid1.getCell(selectedRowIds, "TITLE");
|
|
//var objId = grid1.getCell(selectedRowIds, "OBJID");
|
|
|
|
var targetStatus = fnc_checkNull(selectedData[0].APPR_STATUS_NAME);
|
|
var status = fnc_checkNull(selectedData[0].STATUS);
|
|
var MULTI_YN = fnc_checkNull(selectedData[0].MULTI_YN);
|
|
var MULTI_MASTER_YN = fnc_checkNull(selectedData[0].MULTI_MASTER_YN);
|
|
|
|
if(targetStatus == "결재완료" || targetStatus == "결재중" || status == "cancel"){
|
|
//Swal.fire("이미 결재완료 또는 결재중 상태입니다.");
|
|
Swal.fire("작성중/결재반려인 상태만 결재상신 가능합니다.");
|
|
return false;
|
|
}else if(MULTI_YN == 'Y' && MULTI_MASTER_YN == 'N'){
|
|
Swal.fire("동시발주건은 마스터건으로 결재상신해야 합니다.");
|
|
return false;
|
|
}else{
|
|
if(confirm("결재상신 하시겠습니까?")){
|
|
|
|
//var objIds = fnc_checkNull(selectedData[0].MULTI_OBJIDS);
|
|
var objId = fnc_checkNull(selectedData[0].OBJID);
|
|
var objIds = "";
|
|
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "/purchaseOrder/getMultiObjids.do",
|
|
//data: $("#form1").serialize(),
|
|
data: {"PURCHASE_ORDER_MASTER_OBJID" : objId},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
//alert(data.MULTI_OBJIDS);
|
|
objIds = data.MULTI_OBJIDS;
|
|
},
|
|
beforeSend:function(){
|
|
//_startLoading("저장중입니다. 데이터에 따라 시간이 걸릴 수 있습니다.");
|
|
_startLoading("Loading");
|
|
},
|
|
complete:function(){
|
|
_endLoading();
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
|
|
|
|
var title = encodeURIComponent(fnc_checkNull(selectedData[0].TITLE));
|
|
window.open("/approval/registApproval.do?targetType=PURCHASE_ORDER&targetObjId="+objId+"&approvalTitle="+title+"&callbackFnc=fn_search&targetObjIds="+objIds,"registApproval","width=700,height=700");
|
|
}
|
|
}
|
|
}
|
|
|
|
_tabulGrid.on("rowSelected", function(row){
|
|
//row - row component for the selected row
|
|
});
|
|
|
|
});
|
|
/*
|
|
grid1 = $("#grid1").jqGrid({
|
|
url: ""
|
|
,datatype: "local"
|
|
,data : $.parseJSON($("#grid1Data").val())
|
|
,colNames: ["OBJID","결재1","결재2"
|
|
,"년도","고객사","고객사 프로젝트명","당사프로젝트번호","발주부품","발주 No.", "발주구분","발주서_제목","납품장소","검수방법","결재조건","입고요청일","공급업체"
|
|
//,"레이저업체","용접업체","가공업체" // TODO: 협의중
|
|
,"구매담당","발주일","발주금액","상태"]
|
|
,colModel: [
|
|
{name:"OBJID" , index:"", width: 0, align:"center", hidden: true, sortable:false, editable:false}
|
|
,{name:"APPROVAL_OBJID" , index:"", width: 0, align:"center", hidden: true, sortable:false, editable:false}
|
|
,{name:"ROUTE_OBJID" , index:"", width: 0, align:"center", hidden: true, sortable:false, editable:false}
|
|
|
|
,{name:"CM_YEAR" , index:"", width:45, align:"center", hidden:false, sortable:false, editable:false}
|
|
,{name:"CUSTOMER_NAME" , index:"", width:100, align:"left", hidden:false, sortable:false, editable:false}
|
|
,{name:"CUSTOMER_PROJECT_NAME", index:"", width:150, align:"left", hidden:false, sortable:false, editable:false}
|
|
,{name:"PROJECT_NO" , index:"", width:120, align:"center", hidden:false, sortable:false, editable:false}
|
|
,{name:"TYPE_NAME" , index:"", width:70, align:"center", hidden:false, sortable:false, editable:false}
|
|
,{name:"PURCHASE_ORDER_NO" , index:"", width:100, align:"center", hidden:false, sortable:false, editable:false, formatter: col_custom_fmt, unformat:col_custom_fmt_un}
|
|
|
|
,{name:"ORDER_TYPE_CD_NAME" , index:"", width:70, align:"center", hidden:false, sortable:false, editable:false}
|
|
,{name:"TITLE" , index:"", width:200, align:"left", hidden:false, sortable:false, editable:false}
|
|
,{name:"DELIVERY_PLACE_NAME" , index:"", width:90, align:"center", hidden:false, sortable:false, editable:false}
|
|
,{name:"INSPECT_METHOD_NAME" , index:"", width:90, align:"center", hidden:false, sortable:false, editable:false}
|
|
,{name:"PAYMENT_TERMS_NAME" , index:"", width:120, align:"center", hidden:false, sortable:false, editable:false}
|
|
,{name:"DELIVERY_DATE" , index:"", width:90, align:"center", hidden:false, sortable:false, editable:false}
|
|
,{name:"PARTNER_NAME" , index:"", width:120, align:"left", hidden:false, sortable:false, editable:false}
|
|
|
|
//,{name:"SUPPLY1" , index:"", width:110, align:"center", hidden:false, sortable:false, editable:false} // TODO: 협의중
|
|
//,{name:"SUPPLY2" , index:"", width:110, align:"center", hidden:false, sortable:false, editable:false} // TODO: 협의중
|
|
//,{name:"SUPPLY3" , index:"", width:110, align:"center", hidden:false, sortable:false, editable:false} // TODO: 협의중
|
|
|
|
,{name:"SALES_MNG_USER_NAME" , index:"", width:80, align:"center", hidden:false, sortable:false, editable:false}
|
|
,{name:"REGDATE" , index:"", width:90, align:"center", hidden:false, sortable:false, editable:false}
|
|
,{name:"TOTAL_PRICE_ALL" , index:"", width:120, align: "right", hidden:false, sortable:false, editable:false, formatter :"integer"}
|
|
,{name:"APPR_STATUS_NAME" , index:"", width:80, align:"center", hidden:false, sortable:false, editable:false, formatter: col_custom_fmt, unformat:col_custom_fmt_un}
|
|
]
|
|
,ignoreCase : true //로컬 검색 및 정렬이 대,소문자를 구분하지 않도록 하려면true
|
|
,rownumbers : false //row번호 표시
|
|
,viewrecords : true //pager가 있을경우 표시되는 record number
|
|
,autowidth : true //그리드 너비가 자동으로 부모 요소의 너비로 다시 계산
|
|
,sortable : false //마우스로 열을 끌어다 놓아 열을 재정렬
|
|
,shrinkToFit : true //모든 열은 너비에 비례하여 크기가 조정
|
|
,forceFit : false //컬럼의 width를 변화시킬때 그리드의 width를 고정 여부
|
|
,multiselect : true //선택가능. 체크박스표시
|
|
//,height : 650
|
|
,height : 'auto'
|
|
//,rowNum : "${countPerPage}"
|
|
,rowNum : 90000
|
|
,jsonReader : {repeatitems: false}
|
|
,mtype :"POST"
|
|
,footerrow : false //바닥합계
|
|
,userDataOnFooter: false //바닥합계
|
|
//,caption :"제목"
|
|
//,pager :"#grid1Pager"
|
|
,loadComplete: function(data){ //모든 서버 요청 직후에 실행
|
|
var gid = this.id;
|
|
var grid_wrap_div = $("#gbox_"+gid);
|
|
|
|
$.each($("#"+gid).getDataIDs(), function(i,o){
|
|
var st = $("#"+gid).getCell(o, "APPR_STATUS_NAME");
|
|
if(st=="결재중"){
|
|
$("#jqg_"+gid+"_"+o).attr("disabled", true); //체크불가 행 설정
|
|
}
|
|
});
|
|
|
|
setTimeout("fn_jqGrid_init($('#"+gid+"'), true);", 50); //윈도우크기 비례 자동조절
|
|
//footer 커스텀..
|
|
}
|
|
,onSelectRow : function(rowid, status, e){ //행 선택시
|
|
var gid = $(this).attr("id");
|
|
var disabled = $("#jqg_"+gid+"_"+rowid).attr("disabled");
|
|
if(disabled){ //체크불가 처리한 행처리
|
|
$("#jqg_"+gid+"_"+rowid).attr("checked",false);
|
|
$("#jqg_"+gid+"_"+rowid).attr("value","off");
|
|
//$("tr.jqgrow#"+rowid, $("#gbox_"+gid)).removeClass("ui-state-highlight").attr("aria-selected", "false");
|
|
}
|
|
}
|
|
,onSelectAll : function(aRowids,status){ //전체선택시
|
|
var gid = $(this).attr("id");
|
|
if(status){
|
|
for(var i=1;i<=aRowids.length;i++){
|
|
var disabled = $("#jqg_"+gid+"_"+i).attr("disabled");
|
|
if(disabled){ //체크불가 처리한 행처리
|
|
$("#jqg_"+gid+"_"+i).attr("checked",false);
|
|
$("#jqg_"+gid+"_"+i).attr("value","off");
|
|
$("tr.jqgrow#"+i, $("#gbox_"+gid)).removeClass("ui-state-highlight").attr("aria-selected", "false");
|
|
}else{
|
|
$("#jqg_"+gid+"_"+i).attr("value","on");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
*/
|
|
|
|
fn_search();
|
|
|
|
|
|
//fnc_calculateContentHeight("gridDiv", 10);
|
|
setTimeout(() => fnc_calculateContentHeight("gridDiv", 15), 50);
|
|
$("#gridDiv").off("fnc_calculateContentHeight");
|
|
$(window).resize(function() {
|
|
fnc_calculateContentHeight("gridDiv", 15);
|
|
});
|
|
|
|
_tabulGrid.on("cellEdited", function(cell){
|
|
//alert('celedited');
|
|
var row = cell.getRow();
|
|
var rowData = row.getData();
|
|
|
|
var columnField = cell.getColumn().getField();
|
|
var newValue = cell.getValue();
|
|
|
|
//var TOTAL_SUPPLY_UNIT_PRICE = Number(rowData.TOTAL_SUPPLY_UNIT_PRICE); //공급가 부가세 포함
|
|
var TOTAL_REAL_SUPPLY_PRICE = Number(rowData.TOTAL_REAL_SUPPLY_PRICE); //공급가 부가세 별도
|
|
var DISCOUNT_PRICE_ALL = Number(fnc_checkNullDefaultValue(rowData.DISCOUNT_PRICE_ALL, 0)); //할인금액
|
|
var NEGO_RATE = Number(fnc_checkNullDefaultValue(rowData.NEGO_RATE, 0)); //네고율
|
|
var TOTAL_PRICE_ALL = Number(fnc_checkNullDefaultValue(rowData.TOTAL_PRICE_ALL, 0)); //할인공급가
|
|
|
|
var OBJID = fnc_checkNull(row.getData().OBJID);
|
|
var MULTI_YN = fnc_checkNull(row.getData().MULTI_YN);
|
|
var MULTI_MASTER_YN = fnc_checkNull(row.getData().MULTI_MASTER_YN);
|
|
//alert(OBJID + ":" + MULTI_YN + ":" + MULTI_MASTER_YN);
|
|
|
|
if(columnField == 'NEGO_RATE'){
|
|
//if(!fnc_isEmpty(NEGO_RATE) ){ //&& NEGO_RATE == 0
|
|
if(NEGO_RATE > 100){
|
|
alert('네고율은 100보다 클 수 없습니다.');
|
|
rowData.DISCOUNT_PRICE_ALL = '';
|
|
rowData.NEGO_RATE = '';
|
|
rowData.TOTAL_PRICE_ALL = '';
|
|
row.update(rowData);
|
|
return;
|
|
}
|
|
if(NEGO_RATE < 0){
|
|
alert('네고율은 0보다 작을 수 없습니다.');
|
|
rowData.DISCOUNT_PRICE_ALL = '';
|
|
rowData.NEGO_RATE = '';
|
|
rowData.TOTAL_PRICE_ALL = '';
|
|
row.update(rowData);
|
|
return;
|
|
}
|
|
DISCOUNT_PRICE_ALL = (TOTAL_REAL_SUPPLY_PRICE * NEGO_RATE/100).toFixed(1);
|
|
rowData.DISCOUNT_PRICE_ALL = DISCOUNT_PRICE_ALL;
|
|
rowData.TOTAL_PRICE_ALL = (TOTAL_REAL_SUPPLY_PRICE - DISCOUNT_PRICE_ALL).toFixed(1);
|
|
row.update(rowData);
|
|
}else if(columnField == 'DISCOUNT_PRICE_ALL'){
|
|
if(DISCOUNT_PRICE_ALL == 0 || DISCOUNT_PRICE_ALL < 0){
|
|
rowData.DISCOUNT_PRICE_ALL = '';
|
|
rowData.NEGO_RATE = '';
|
|
rowData.TOTAL_PRICE_ALL = '';
|
|
row.update(rowData);
|
|
}else if(DISCOUNT_PRICE_ALL > TOTAL_REAL_SUPPLY_PRICE){
|
|
alert('할인금액은 공급가보다 클 수 없습니다.');
|
|
rowData.DISCOUNT_PRICE_ALL = '';
|
|
rowData.NEGO_RATE = '';
|
|
rowData.TOTAL_PRICE_ALL = '';
|
|
row.update(rowData);
|
|
}else if( (DISCOUNT_PRICE_ALL > 0) // || DISCOUNT_PRICE_ALL == 0 && TOTAL_PRICE_ALL > 0
|
|
&& !isNaN(DISCOUNT_PRICE_ALL)
|
|
&& !isNaN(TOTAL_REAL_SUPPLY_PRICE)
|
|
&& TOTAL_REAL_SUPPLY_PRICE > 0){
|
|
//rowData.NEGO_RATE = Math.round(DISCOUNT_PRICE_ALL/TOTAL_REAL_SUPPLY_PRICE*100*10)/10; //소수점1자리
|
|
rowData.NEGO_RATE = (DISCOUNT_PRICE_ALL/TOTAL_REAL_SUPPLY_PRICE*100).toFixed(1); //소수점1자리
|
|
rowData.TOTAL_PRICE_ALL = TOTAL_REAL_SUPPLY_PRICE - DISCOUNT_PRICE_ALL;
|
|
row.update(rowData);
|
|
}
|
|
}
|
|
|
|
/*//240402 동시발주 단가 싱크처리 막음
|
|
//동시발주건 동일 적용
|
|
if(MULTI_YN == 'Y' && MULTI_MASTER_YN == 'Y'){ // && targetStatus != 'COMPLETE'
|
|
var sameRows = _tabulGrid.searchRows("MULTI_MASTER_OBJID", "=", OBJID);
|
|
//console.log(sameRows);
|
|
sameRows.forEach(function (sameRow) {
|
|
var sameRowData = sameRow.getData();
|
|
sameRowData.DISCOUNT_PRICE_ALL = rowData.DISCOUNT_PRICE_ALL
|
|
sameRowData.NEGO_RATE = rowData.NEGO_RATE
|
|
sameRowData.TOTAL_PRICE_ALL = rowData.TOTAL_PRICE_ALL
|
|
sameRow.update(sameRowData);
|
|
//sameRow.update(sameRow.getData());
|
|
});
|
|
}
|
|
*/
|
|
});
|
|
});
|
|
|
|
function fn_createGridAnchorTag(cell, formatterParams, onRendered){
|
|
var appendText = "";
|
|
var fieldValue = fnc_checkNull(cell.getValue());
|
|
|
|
if(cell.getField() == 'PURCHASE_ORDER_NO'){
|
|
var MULTI_YN = fnc_checkNull(cell.getData().MULTI_YN);
|
|
var MULTI_MASTER_YN = fnc_checkNull(cell.getData().MULTI_MASTER_YN);
|
|
var MULTI_MASTER_OBJID = fnc_checkNull(cell.getData().MULTI_MASTER_OBJID);
|
|
var targetStatus = fnc_checkNull(cell.getData().APPR_STATUS).toUpperCase();
|
|
|
|
if(MULTI_YN == 'Y' && MULTI_MASTER_YN == 'N' && targetStatus != 'COMPLETE'){
|
|
appendText = fieldValue;
|
|
}else{
|
|
appendText = "<a href='#' href='#none' style='color:#0000EE'>"+fieldValue+"</a>";
|
|
}
|
|
}else if(cell.getField() == 'APPR_STATUS_NAME'){
|
|
var targetStatus = fnc_checkNull(cell.getData().APPR_STATUS).toUpperCase();
|
|
var MULTI_YN = fnc_checkNull(cell.getData().MULTI_YN);
|
|
var MULTI_MASTER_YN = fnc_checkNull(cell.getData().MULTI_MASTER_YN);
|
|
var MULTI_MASTER_OBJID = fnc_checkNull(cell.getData().MULTI_MASTER_OBJID);
|
|
var status = fnc_checkNull(cell.getData().STATUS).toUpperCase();
|
|
|
|
if(!fnc_isEmpty(targetStatus) && "CREATE" != targetStatus && "CANCEL" != status //&& "REJECT" != targetStatus
|
|
&& (MULTI_YN != 'Y' || MULTI_YN == 'Y' && MULTI_MASTER_YN == 'Y' || MULTI_YN == 'Y' && MULTI_MASTER_YN == 'N' && targetStatus == 'COMPLETE') ){
|
|
appendText = "<a href='#' href='#none' style='color:#0000EE'>"+fieldValue+"</a>";
|
|
}else{
|
|
appendText = fieldValue;
|
|
}
|
|
}
|
|
|
|
return appendText;
|
|
}
|
|
|
|
var columns = [
|
|
{title:'OBJID_PROJECT',field:'OBJID_PROJECT' ,visible:false ,frozen:true },
|
|
{title:'APPROVAL_OBJID',field:'APPROVAL_OBJID' ,visible:false ,frozen:true },
|
|
{title:'ROUTE_OBJID',field:'ROUTE_OBJID' ,visible:false ,frozen:true },
|
|
{title:'MULTI_MASTER_OBJID',field:'MULTI_MASTER_OBJID' ,visible:false ,frozen:true },
|
|
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '96', title : '발주 No.', field : "PURCHASE_ORDER_NO", frozen:true,
|
|
formatter:fn_createGridAnchorTag,
|
|
cellClick:function(e, cell){
|
|
var MULTI_YN = cell.getData().MULTI_YN;
|
|
var MULTI_MASTER_YN = cell.getData().MULTI_MASTER_YN;
|
|
var MULTI_MASTER_OBJID = cell.getData().MULTI_MASTER_OBJID;
|
|
var targetStatus = fnc_checkNull(cell.getData().APPR_STATUS).toUpperCase();
|
|
|
|
var objId = fnc_checkNull(cell.getData().OBJID);
|
|
if(MULTI_YN == 'Y' && MULTI_MASTER_YN == 'N' && targetStatus != 'COMPLETE'
|
|
//&& 1==2//for test
|
|
){
|
|
objId = MULTI_MASTER_OBJID;
|
|
}else{
|
|
fn_formPopUp(objId);
|
|
}
|
|
//fn_formPopUp(objId); //for test(링크 다 열림)
|
|
}
|
|
},
|
|
/*
|
|
{title:"프로젝트정보", headerHozAlign:'center',
|
|
columns:[
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '50', title : '년도', field : "CM_YEAR" },
|
|
{headerHozAlign : 'center', hozAlign : 'left' , width : '100', title : '고객사', field : "CUSTOMER_NAME" },
|
|
{headerHozAlign : 'center', hozAlign : 'left' , width : '100', title : '고객사 프로젝트명', field : "CUSTOMER_PROJECT_NAME" },
|
|
{headerHozAlign : 'center', hozAlign : 'left' , width : '100', title : '유닛명', field : "UNIT_NAME" },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '프로젝트번호', field : "PROJECT_NO" },
|
|
],
|
|
frozen:true
|
|
},
|
|
*/
|
|
{title:"발주내용", headerHozAlign:'center',
|
|
columns:[
|
|
|
|
//{headerHozAlign : 'center', hozAlign : 'center', width : '50', title : '년도', field : "PO_YEAR" },
|
|
{headerHozAlign : 'center', hozAlign : 'left' , width : '95', title : '고객사', field : "CUSTOMER_NAME" },
|
|
//{headerHozAlign : 'center', hozAlign : 'left' , width : '100', title : '고객사 프로젝트명', field : "CUSTOMER_PROJECT_NAME" },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : '프로젝트번호', field : "PROJECT_NO" },
|
|
{headerHozAlign : 'center', hozAlign : 'left' , width : '140', title : '유닛명', field : "UNIT_NAME" },
|
|
|
|
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '60', title : '부품', field : "TYPE_NAME" },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '50', title : '구분', field : "ORDER_TYPE_CD_NAME" },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '50', title : '동시', field : "MULTI_YN" }, //MULTI_YN_MAKED
|
|
|
|
{headerHozAlign : 'center', hozAlign : 'left ', width : '200', title : '발주서제목', field : "TITLE" },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '63', title : '납품장소', field : "DELIVERY_PLACE_NAME" },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '73', title : '검수방법', field : "INSPECT_METHOD_NAME" },
|
|
//{headerHozAlign : 'center', hozAlign : 'center', width : '73', title : '결재조건', field : "PAYMENT_TERMS_NAME" },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '85', title : '입고요청일', field : "DELIVERY_DATE" },
|
|
{headerHozAlign : 'center', hozAlign : 'left' , /*width : '100',*/ title : '공급업체', field : "PARTNER_NAME" },
|
|
//{headerHozAlign : 'center', hozAlign : 'left' , /*width : '100',*/ title : '레이져업체명', field : "PARTNER_NAME" },
|
|
//{headerHozAlign : 'center', hozAlign : 'left' , /*width : '100',*/ title : '용접업체명', field : "PARTNER_NAME" },
|
|
//{headerHozAlign : 'center', hozAlign : 'left' , /*width : '100',*/ title : '가공업체명', field : "PARTNER_NAME" },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '50', title : '구매', field : "SALES_MNG_USER_NAME" },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '발주일', field : "REGDATE" }, //발주서 작성일 기준(240312 확인)
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '61', title : '상태', field : "APPR_STATUS_NAME" , formatter:fn_createGridAnchorTag,
|
|
cellClick:function(e, cell){
|
|
var targetStatus = fnc_checkNull(cell.getData().APPR_STATUS).toUpperCase();
|
|
var MULTI_YN = fnc_checkNull(cell.getData().MULTI_YN);
|
|
var MULTI_MASTER_YN = fnc_checkNull(cell.getData().MULTI_MASTER_YN);
|
|
var MULTI_MASTER_OBJID = fnc_checkNull(cell.getData().MULTI_MASTER_OBJID);
|
|
var MULTI_MASTER_OBJID = fnc_checkNull(cell.getData().MULTI_MASTER_OBJID);
|
|
var status = fnc_checkNull(cell.getData().STATUS).toUpperCase();
|
|
|
|
if(!fnc_isEmpty(targetStatus) && "CREATE" != targetStatus && "CANCEL" != status //&& "REJECT" != targetStatus
|
|
&& (MULTI_YN != 'Y' || MULTI_YN == 'Y' && MULTI_MASTER_YN == 'Y' || MULTI_YN == 'Y' && MULTI_MASTER_YN == 'N' && targetStatus == 'COMPLETE') ){
|
|
fnc_approvalDetail(cell.getData().APPROVAL_OBJID, cell.getData().ROUTE_OBJID);
|
|
}
|
|
}},
|
|
|
|
/*
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '등록자', field : 'SPEC_WRITER_NAME' },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '등록일', field : 'SPEC_REG_DATE' },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '상태', field : 'SPEC_STATUS_NAME' },
|
|
*/
|
|
{visible:false, headerHozAlign : 'center', hozAlign : 'right' , /* width : '90', */ title : '부가세포함공급가', field : "TOTAL_SUPPLY_UNIT_PRICE", formatter:"money", formatterParams:{ thousand:",", symbolAfter:"p", precision:false, } },
|
|
{headerHozAlign : 'center', hozAlign : 'right' , /* width : '90', */ title : '공급가', field : "TOTAL_SUPPLY_PRICE", formatter:"money", formatterParams:{ thousand:",", symbolAfter:"p", precision:false, } },
|
|
{headerHozAlign : 'center', hozAlign : 'right' , /* width : '90', */ title : '실공급가', field : "TOTAL_REAL_SUPPLY_PRICE", formatter:"money", formatterParams:{ thousand:",", symbolAfter:"p", precision:false, } },
|
|
],
|
|
},
|
|
/*
|
|
{title:"단일", headerHozAlign:'center',
|
|
columns:[
|
|
{headerHozAlign : 'center', hozAlign : 'right' , width : '75', title : '공급가', field : "TOTAL_SUPPLY_PRICE" ,
|
|
formatter:"money", formatterParams:{thousand:",", symbolAfter:"p", precision:false, } },
|
|
],
|
|
},
|
|
*/
|
|
|
|
{title:"할인(NEGO)", headerHozAlign:'center', //고객정보
|
|
columns:[
|
|
{headerHozAlign : 'center', hozAlign : 'right' , width : '80', title : '할인금액', field : "DISCOUNT_PRICE_ALL", editable:editCheck, //DISCOUNT_PRICE
|
|
formatter:"money", formatterParams:{ thousand:",", symbolAfter:"p", precision:false, },
|
|
editor:"number", editorParams:{
|
|
min:0, max:9999999999, maxlength:10,//step:10, mask:"999",
|
|
elementAttributes:{ maxlength:"10", pattern:"\d*",min:0, max:9999999999, oninput:"fnc_maxLengthCheck(this)" },
|
|
selectContents:true, verticalNavigation:"table", //up and down arrow keys navigate away from cell without changing value
|
|
}
|
|
},
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '85', title : '네고율(%)', field : "NEGO_RATE", headerSort:true,
|
|
editor:"number", editorParams:{
|
|
min:0, max:100, maxlength:3,//step:10, mask:"999",
|
|
elementAttributes:{ maxlength:"3", pattern:"\d*",min:0, max:100, oninput:"fnc_maxLengthCheck(this)" },
|
|
selectContents:true, verticalNavigation:"table", //up and down arrow keys navigate away from cell without changing value
|
|
}
|
|
},
|
|
{headerHozAlign : 'center', hozAlign : 'right' , /* width : '115', */ title : '할인공급가', field : "TOTAL_PRICE_ALL" , //TOTAL_PRICE
|
|
formatter:"money", formatterParams:{ thousand:",", symbolAfter:"p", precision:false, } }, //NEGO_ORDER_PRICE
|
|
],
|
|
}
|
|
];
|
|
|
|
function editCheck (cell) {
|
|
//var isEditable = (_idx%2 == 0);
|
|
//결재완료 && 동시발주는 마스터만 활성화
|
|
//return cell.getData().STATUS == 'approvalComplete'; // && ('Y' != cell.getData().MULTI_YN || 'Y' == cell.getData().MULTI_YN && 'Y' == cell.getData().MULTI_MASTER_YN);
|
|
return true; //241014 상태체크 X
|
|
}
|
|
|
|
function fn_excel() {
|
|
document.form1.actionType.value = "excel";
|
|
var form = document.form1;
|
|
form.action="/purchaseOrder/purchaseOrderList_new.do";
|
|
form.submit();
|
|
}
|
|
//var grid;
|
|
function fn_search(){
|
|
var selectedNoValues = $("#project_no").val();
|
|
$('<input>').attr({
|
|
type: 'hidden',
|
|
name: 'project_nos',
|
|
value: selectedNoValues
|
|
}).appendTo('#form1');
|
|
|
|
var selectedValues = $("#sales_mng_user_id").val();
|
|
$('input[name="sales_mng_user_ids"]').remove();
|
|
$('<input>').attr({
|
|
type: 'hidden',
|
|
name: 'sales_mng_user_ids',
|
|
value: selectedValues
|
|
}).appendTo('#form1');
|
|
|
|
var multiParam = new Array();
|
|
multiParam.push(selectedValues);
|
|
var checkArr = multiParam.join();
|
|
$("#checkArr").val(checkArr);
|
|
|
|
_tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/purchaseOrder/purchaseOrderListPaging.do", columns, true, null, null, null, null, null, null, false, rowSelectionControl); //_tabul_layout_fitColumns _tabul_layout_fitDataStretch
|
|
//_tabulGrid.rowSelection = rowCheckControl;
|
|
//_tabulGrid.rowSelectionChanged = rowSelectionControl;
|
|
_tabulGrid.on("rowSelectionChanged", rowSelectionControl);
|
|
//_tabulGrid.selectable = false; //true
|
|
|
|
//_tabulGrid.selectRow();
|
|
//_tabulGrid.deselectRow();
|
|
|
|
/*
|
|
var rows = _tabulGrid.getRows();
|
|
rows.forEach(function (row) {
|
|
var rowData = row.getData();
|
|
//row.select(); // 활성화된 행은 선택됨
|
|
row.deselect(); // 비활성화된 행은 선택 취소됨
|
|
row.getElement().querySelector(".tabulator-row-select").disabled = true; // 비활성화된 행의 체크박스를 비활성화
|
|
// 선택된 행의 상태를 확인하고 활성화/비활성화를 설정
|
|
if (rowData.status === "active") {
|
|
row.getElement().style.backgroundColor = "green"; // 활성화된 행의 배경색을 변경
|
|
} else {
|
|
row.getElement().style.backgroundColor = "red"; // 비활성화된 행의 배경색을 변경
|
|
}
|
|
});
|
|
*/
|
|
|
|
var _sum=0;
|
|
var _sum2=0;
|
|
var text =" <font size='2px' color='red'>총발주금액(원) : ";
|
|
var text2 =" <font size='2px' color='red'>단일발주금액(원) : ";
|
|
$.ajax({
|
|
url:"/purchaseOrder/purchaseOrderMasterListSum.do",
|
|
type:"POST",
|
|
data:$("#form1").serializeObject(),
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
_sum = numberWithCommas(data.TOTAL_REAL_SUPPLY_PRICE);
|
|
_sum2 = numberWithCommas(data.TOTAL_SUPPLY_PRICE);
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
text +=_sum+"</font> ";
|
|
text2 +=_sum2+"</font>";
|
|
//text2 = '';
|
|
$(".purchaseOrderSum").html(text+text2);
|
|
}
|
|
|
|
function rowSelectionControl (data, rows) {
|
|
|
|
//alert('rowSelectionChanged');
|
|
|
|
rows.forEach(function (row) {
|
|
var rowData = row.getData();
|
|
//row.select(); // 활성화된 행은 선택됨
|
|
//row.deselect(); // 비활성화된 행은 선택 취소됨
|
|
|
|
var MULTI_YN = fnc_checkNull(row.getData().MULTI_YN);
|
|
var MULTI_MASTER_YN = fnc_checkNull(row.getData().MULTI_MASTER_YN);
|
|
if(MULTI_YN == 'Y' && MULTI_MASTER_YN != 'Y'){ // && targetStatus != 'COMPLETE'
|
|
row.deselect(); // 선택 비활성화
|
|
}
|
|
|
|
//row.getElement().querySelector(".tabulator-row-select").disabled = true; // 비활성화된 행의 체크박스를 비활성화
|
|
/*
|
|
// 선택된 행의 상태를 확인하고 활성화/비활성화를 설정
|
|
if (rowData.status === "active") {
|
|
row.getElement().style.backgroundColor = "green"; // 활성화된 행의 배경색을 변경
|
|
} else {
|
|
row.getElement().style.backgroundColor = "red"; // 비활성화된 행의 배경색을 변경
|
|
}
|
|
*/
|
|
});
|
|
}
|
|
|
|
function rowCheckControl(row) {
|
|
// rowSelected 이벤트 핸들러
|
|
var rowData = row.getData();
|
|
|
|
var MULTI_YN = fnc_checkNull(row.getData().MULTI_YN);
|
|
var MULTI_MASTER_YN = fnc_checkNull(row.getData().MULTI_MASTER_YN);
|
|
if(MULTI_YN == 'Y' && MULTI_MASTER_YN != 'Y'){ // && targetStatus != 'COMPLETE'
|
|
return false; // 선택 비활성화
|
|
}
|
|
|
|
// 여기에서 원하는 특정 값에 대한 조건을 설정
|
|
if (rowData.status === "inactive") {
|
|
//return false; // 선택 비활성화
|
|
}
|
|
|
|
return true; // 선택 활성화
|
|
}
|
|
|
|
|
|
function fn_searchOld(){
|
|
document.form1.action = "/purchaseOrder/purchaseOrderList_new.do";
|
|
document.form1.submit();
|
|
}
|
|
|
|
//등록,수정,뷰
|
|
function fn_formPopUp(objId, copy){
|
|
var popup_width = 1460;
|
|
var popup_height = 1050;
|
|
|
|
var hiddenForm = document.hiddenForm;
|
|
var target = "purchaseOrderFormPopup_new";
|
|
var url = "/purchaseOrder/purchaseOrderFormPopup_new.do";
|
|
fn_centerPopup(popup_width, popup_height, "", target);
|
|
|
|
hiddenForm.PURCHASE_ORDER_MASTER_OBJID.value = objId;
|
|
hiddenForm.actionType.value = copy;
|
|
hiddenForm.action = url;
|
|
hiddenForm.target = target;
|
|
hiddenForm.submit();
|
|
}
|
|
|
|
function fn_save(){
|
|
var formData = $("#form1").serialize();
|
|
|
|
if(confirm("저장하시겠습니까?")){
|
|
|
|
var param = $("#form1").serializeObject();
|
|
param.dataListJson = JSON.stringify(_tabulGrid.getData());
|
|
//param.dataListJson = JSON.stringify(_tabulGrid.getSelectedData());
|
|
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "/purchaseOrder/updatePurchaseOrderList.do",
|
|
//data: $("#form1").serialize(),
|
|
//data: $("#form1").serializeObject(),
|
|
data: param,
|
|
//data: {"dataListJson" : JSON.stringify(_tabulGrid.getData())},
|
|
dataType:"json",
|
|
success:function(data){
|
|
alert(data.msg);
|
|
if(data.result){
|
|
fn_search();
|
|
}
|
|
},
|
|
beforeSend:function(){
|
|
//_startLoading("저장중입니다. 데이터에 따라 시간이 걸릴 수 있습니다.");
|
|
_startLoading("저장중입니다.");
|
|
},
|
|
complete:function(){
|
|
_endLoading();
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
function fn_cancel(){
|
|
//var selectedRowIds = fn_jqGrid_selarrrow(grid1);
|
|
var checkedObj = _tabulGrid.getSelectedData();
|
|
if(checkedObj.length==0){
|
|
Swal.fire("취소할 행을 선택해 주십시오.");
|
|
return false;
|
|
}else if(checkedObj.length>1){
|
|
Swal.fire("한번에 한개의 취소만 가능합니다.");
|
|
return false;
|
|
}else{
|
|
var checkObjs = new Array();
|
|
/*
|
|
for(var i=0; i<selectedRowIds.length; i++){
|
|
checkObjs.push( grid1.getCell(selectedRowIds[i], "OBJID") );
|
|
}
|
|
*/
|
|
var checkArr = new Array();
|
|
var ngCnt = 0;
|
|
var existsMultiMaster = false; //동시발주 마스터
|
|
var existsMultiSub = false; //동시발주 sub
|
|
for(var i=0;i<checkedObj.length;i++){
|
|
var objId = fnc_checkNull(checkedObj[i].OBJID);
|
|
var currentStatus = fnc_checkNull(checkedObj[i].STATUS);
|
|
var targetStatusName = fnc_checkNull(checkedObj[i].APPR_STATUS_NAME);
|
|
var writer = fnc_checkNull(checkedObj[i].WRITER);
|
|
|
|
/* */
|
|
//if(currentStatus != "" ){ //|| writer != "${connectUserId}"
|
|
//if(targetStatusName == "결재완료" || targetStatusName == "결재중"){
|
|
if(currentStatus == "cancel"){
|
|
ngCnt++;
|
|
break;
|
|
}else{
|
|
checkArr.push(objId);
|
|
}
|
|
|
|
var MULTI_MASTER_YN = fnc_checkNull(checkedObj[i].MULTI_MASTER_YN);
|
|
var MULTI_YN = fnc_checkNull(checkedObj[i].MULTI_YN);
|
|
if(!existsMultiMaster && MULTI_YN == 'Y' && MULTI_MASTER_YN == 'Y'){
|
|
existsMultiMaster = true;
|
|
}
|
|
|
|
if(!existsMultiSub && MULTI_YN == 'Y' && MULTI_MASTER_YN != 'Y'){
|
|
existsMultiSub = true;
|
|
}
|
|
}
|
|
|
|
if(0 < ngCnt){
|
|
Swal.fire("이미 취소된 건입니다.");
|
|
return false;
|
|
}else if(existsMultiSub){
|
|
Swal.fire("동시발주서 하위건은 취소할 수 없습니다.");
|
|
return false;
|
|
}else{
|
|
|
|
var msg = "";
|
|
if(existsMultiMaster){
|
|
msg = "동시발주서 마스터정보 취소시 동시발주서 모두 취소됩니다. ";
|
|
}
|
|
|
|
if(confirm(msg+"취소 하시겠습니까?")){
|
|
$("#materOrdObjId").val(checkArr.join(","));
|
|
$.ajax({
|
|
type : "POST",
|
|
url : "/purchaseOrder/purchaseOrderCancel.do",
|
|
data: $("#hiddenForm").serialize(),
|
|
dataType:"json",
|
|
success:function(data){
|
|
if(data =="SUCCESS"){
|
|
Swal.fire("취소되었습니다.");
|
|
fn_search();
|
|
};
|
|
}
|
|
,error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function fn_delete(){
|
|
//var selectedRowIds = fn_jqGrid_selarrrow(grid1);
|
|
var checkedObj = _tabulGrid.getSelectedData();
|
|
if(checkedObj.length==0){
|
|
Swal.fire("삭제할 행을 선택해 주십시오.");
|
|
return false;
|
|
}else{
|
|
var checkObjs = new Array();
|
|
/*
|
|
for(var i=0; i<selectedRowIds.length; i++){
|
|
checkObjs.push( grid1.getCell(selectedRowIds[i], "OBJID") );
|
|
}
|
|
*/
|
|
var checkArr = new Array();
|
|
var ngCnt = 0;
|
|
var existsMultiMaster = false; //동시발주 마스터
|
|
var existsMultiSub = false; //동시발주 sub
|
|
for(var i=0;i<checkedObj.length;i++){
|
|
var objId = fnc_checkNull(checkedObj[i].OBJID);
|
|
var currentStatus = fnc_checkNull(checkedObj[i].STATUS);
|
|
var targetStatusName = fnc_checkNull(checkedObj[i].APPR_STATUS_NAME);
|
|
var writer = fnc_checkNull(checkedObj[i].WRITER);
|
|
|
|
//if(currentStatus != "" ){ //|| writer != "${connectUserId}"
|
|
if(targetStatusName == "결재완료" || targetStatusName == "결재중"){
|
|
ngCnt++;
|
|
break;
|
|
}else{
|
|
checkArr.push(objId);
|
|
}
|
|
|
|
var MULTI_MASTER_YN = fnc_checkNull(checkedObj[i].MULTI_MASTER_YN);
|
|
var MULTI_YN = fnc_checkNull(checkedObj[i].MULTI_YN);
|
|
if(!existsMultiMaster && MULTI_YN == 'Y' && MULTI_MASTER_YN == 'Y'){
|
|
existsMultiMaster = true;
|
|
}
|
|
|
|
if(!existsMultiSub && MULTI_YN == 'Y' && MULTI_MASTER_YN != 'Y'){
|
|
existsMultiSub = true;
|
|
}
|
|
}
|
|
|
|
if(0 < ngCnt){
|
|
Swal.fire("작성중/반려 건만 삭제할 수 있습니다.");
|
|
return false;
|
|
}else if(existsMultiSub){
|
|
Swal.fire("동시발주서 하위건은 삭제할 수 없습니다.");
|
|
return false;
|
|
}else{
|
|
|
|
var msg = "";
|
|
if(existsMultiMaster){
|
|
msg = "동시발주서 마스터정보 삭제시 동시발주서 모두 삭제됩니다. ";
|
|
}
|
|
|
|
if(confirm(msg+"삭제 하시겠습니까?")){
|
|
$("#materOrdObjId").val(checkArr.join(","));
|
|
|
|
$.ajax({
|
|
type : "POST",
|
|
url : "/purchaseOrder/purchaseOrderDelete.do",
|
|
data: $("#hiddenForm").serialize(),
|
|
dataType:"json",
|
|
success:function(data){
|
|
if(data =="SUCCESS"){
|
|
Swal.fire("삭제되었습니다.");
|
|
fn_search();
|
|
};
|
|
}
|
|
,error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
Custom Formatter Parameters Description
|
|
◆ cellvalue: value to be formatted
|
|
◆ options : { rowId: rid, colModel: {name: , index, width, align, ...}}
|
|
◆ rowObject : row data
|
|
*/
|
|
function col_custom_fmt(cellvalue, options, rowObject) {
|
|
//console.log("rid : "+ options.rowId + " colModel["+JSON.stringify(options.colModel)+"]");
|
|
var return_fmt = "";
|
|
cellvalue = fnc_checkNull(cellvalue);
|
|
|
|
if(options.colModel.name == "PURCHASE_ORDER_NO" ){ //발주NO
|
|
return_fmt = '<a href="#" onclick="javascript:fn_formPopUp(\''+rowObject.OBJID+'\');">'+cellvalue+'</a>';
|
|
|
|
}else if(options.colModel.name == "APPR_STATUS_NAME" ){ //상태
|
|
if(cellvalue=="결재중" || cellvalue=="결재완료"){
|
|
var url = "/approval/approvalDetail.do?approvalObjId="+rowObject.APPROVAL_OBJID+"&routeObjId="+rowObject.ROUTE_OBJID;
|
|
var empty = ($.isNumeric(cellvalue) && Number(cellvalue) > 0) ? "" : "empty_";
|
|
return_fmt = '<a href="#" onclick="javascript:fn_centerPopup(650, 370, \''+url+'\', \'approvalDetailPopup\');">'+cellvalue+'</a>';
|
|
}else{
|
|
return_fmt = cellvalue;
|
|
}
|
|
|
|
}
|
|
return return_fmt;
|
|
}
|
|
/**
|
|
unFormatter : grid1.getRowData(), getCell(n,colname) 에서 값만 나오게하는 함수
|
|
*/
|
|
function col_custom_fmt_un(cellvalue, options, cell) {
|
|
return cellvalue;
|
|
}
|
|
|
|
</script>
|
|
<body class="<%--bodyNoScrollX--%>">
|
|
<form name="hiddenForm" id="hiddenForm" method="post">
|
|
<input type="hidden" name="PURCHASE_ORDER_MASTER_OBJID" id="PURCHASE_ORDER_MASTER_OBJID">
|
|
<input type="hidden" name="actionType" id="actionType">
|
|
<input type="hidden" name="materOrdObjId" id="materOrdObjId">
|
|
</form>
|
|
<form name="form1" id="form1" action="" method="post">
|
|
<input type="hidden" name="actionType" id="actionType">
|
|
<%--
|
|
<input type="hidden" name="countPerPage" id="countPerPage" value="${countPerPage }">
|
|
--%>
|
|
|
|
<div class="content-box" style="">
|
|
<div class="content-box-s">
|
|
<div class="plm_menu_name_gdnsi">
|
|
<h2>
|
|
<span>발주관리_발주관리</span>
|
|
</h2>
|
|
|
|
<div class="btnArea">
|
|
<input type="button" class="plm_btns" value="발주서작성" id="btnReg">
|
|
<input type="button" class="plm_btns" value="복사" id="btnCopy">
|
|
<input type="button" class="plm_btns" value="결재상신" id="btnApproval">
|
|
<input type="button" class="plm_btns" value="취소" id="btnCancel">
|
|
<input type="button" class="plm_btns" value="삭제" id="btnDelete">
|
|
<input type="button" class="plm_btns" value="저장" id="btnSave">
|
|
<input type="button" class="plm_btns" value="조회" id="btnSearch">
|
|
<!--
|
|
<input type="button" value="Excel Download" class="plm_btns" id="btnExcel">
|
|
-->
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div id="plmSearchZon">
|
|
<table class="">
|
|
<!--
|
|
<colgroup>
|
|
<col width="70px">
|
|
<col width="*">
|
|
<col width="60px">
|
|
<col width="*">
|
|
<col width="80px">
|
|
<col width="*">
|
|
<col width="50px">
|
|
<col width="*">
|
|
<col width="60px">
|
|
<col width="*">
|
|
<col width="60px">
|
|
<col width="*">
|
|
<col width="60px">
|
|
<col width="7%">
|
|
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
</colgroup>
|
|
-->
|
|
|
|
<tr>
|
|
<td><label for="Year">년도</label></td>
|
|
<td>
|
|
<select name="Year" id="Year" class="select2" autocomplete="off" style="">
|
|
<option value="">선택</option>
|
|
<c:forEach begin="${sysYear-4}" end="${sysYear}" var="req_year">
|
|
<option value="${req_year}"${param.Year eq req_year ? 'selected':'' }>${req_year}</option>
|
|
</c:forEach>
|
|
</select>
|
|
</td>
|
|
|
|
<td><label for="">고객사</label></td>
|
|
<td><select name="customer_cd" id="customer_cd" class="select2" autocomplete="off" style=""><option value="">선택</option>${code_map.customer_cd}</select></td>
|
|
|
|
<%-- <td><label for="">고객사 프로젝트명</label></td>
|
|
<td><select name="customer_project_name" id="customer_project_name" class="select2" autocomplete="off" style="width:120px"><option value="">선택</option>${code_map.customer_project_name}</select></td> --%>
|
|
|
|
<td><label for="">프로젝트번호</label></td>
|
|
<td><select name="project_no" id="project_no" class="select2" autocomplete="off" style="width:190px;" multiple="multiple"><option value="">선택</option>${code_map.project_no}</select></td>
|
|
|
|
<td><label for="unit_code">유닛명</label></td>
|
|
<td>
|
|
<select name="unit_code" id="unit_code" style="" class="select2" autocomplete="off" type="select" reqTitle="유닛명">
|
|
</select>
|
|
</td>
|
|
|
|
<td><label for="">발주No.</label></td>
|
|
<td><input type="text" name="purchase_order_no" id="purchase_order_no" autocomplete="off" value="${param.purchase_order_no}" style=""/></td>
|
|
|
|
<td><label for="">발주부품</label></td>
|
|
<td><select name="type" id="type" class="select2" autocomplete="off" style=""><option value="">선택</option>${code_map.type}</select></td>
|
|
|
|
<td><label for="">발주구분</label></td>
|
|
<td><select name="order_type_cd" id="order_type_cd" class="select2" autocomplete="off" style=""><option value="">선택</option>${code_map.order_type_cd}</select></td>
|
|
|
|
</tr>
|
|
<tr>
|
|
<td class=""><label>입고요청일</label></td>
|
|
<td>
|
|
<input type="text" name="delivery_start_date" id="delivery_start_date" style="width:77px;" autocomplete="off" value="${param.delivery_start_date}" class="date_icon">~
|
|
<input type="text" name="delivery_end_date" id="delivery_end_date" style="width:77px;" autocomplete="off" value="${param.delivery_end_date }" class="date_icon">
|
|
</td>
|
|
|
|
<td><label for="">공급업체</label></td>
|
|
<td><select name="partner_objid" id="partner_objid" class="select2" autocomplete="off" style=""><option value="">선택</option>${code_map.partner_objid}</select></td>
|
|
|
|
<td><label for="">구매담당자</label></td>
|
|
<td><select name="sales_mng_user_id" id="sales_mng_user_id" class="select2" autocomplete="off" style="width:190px;" multiple="multiple" ><option value="">선택</option>${code_map.sales_mng_user_id}</select></td>
|
|
|
|
<td><label>발주일</label></td>
|
|
<td>
|
|
<input type="text" name="reg_start_date" id="reg_start_date" style="width:77px;" autocomplete="off" value="${param.reg_start_date}" class="date_icon">~
|
|
<input type="text" name="reg_end_date" id="reg_end_date" style="width:77px;" autocomplete="off" value="${param.reg_end_date }" class="date_icon">
|
|
</td>
|
|
|
|
<td><label for="">품번</label></td>
|
|
<td>
|
|
<input type="text" name="SEARCH_PART_NO" id="SEARCH_PART_NO" style="" autocomplete="off" value="${param.SEARCH_PART_NO}">
|
|
</td>
|
|
|
|
<td><label for="">품명</label></td>
|
|
<td>
|
|
<input type="text" name="SEARCH_PART_NAME" id="SEARCH_PART_NAME" style="" autocomplete="off" value="${param.SEARCH_PART_NAME}">
|
|
</td>
|
|
|
|
</tr>
|
|
<tr>
|
|
<td><label for="">상태</label></td>
|
|
<td>
|
|
<select name="appr_status" id="appr_status" class="select2" autocomplete="off" style="">
|
|
<option value="">선택</option>
|
|
<%-- ${code_map.appr_status} --%>
|
|
<option value="create">작성중</option>
|
|
<option value="inProcess">결재중</option>
|
|
<option value="reject">반려</option>
|
|
<option value="complete">결재완료</option>
|
|
<option value="cancel">취소</option>
|
|
</select>
|
|
</td>
|
|
|
|
<td><label for="">규격</label></td>
|
|
<td><input type="text" name="SEARCH_PART_SPEC" id="SEARCH_PART_SPEC" autocomplete="off" value="${param.SEARCH_PART_SPEC }" style="width:;"/></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div style="width:50%;float:left; color: RED;" class="purchaseOrderSum">
|
|
</div>
|
|
|
|
<%@include file= "/WEB-INF/view/common/common_gridArea.jsp" %>
|
|
<%--
|
|
<section class="contents_page_basic_margin">
|
|
<div class="btn_wrap">
|
|
<div class="plm_btn_wrap">
|
|
<input type="button" class="plm_btns" value="결재상신" id="btnApproval">
|
|
<input type="button" class="plm_btns" value="삭제" id="btnDelete">
|
|
<input type="button" class="plm_btns" value="발주서작성" id="btnReg">
|
|
<input type="button" class="plm_btns" value="조회" id="btnSearch">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="plm_table_wrap" style="overflow-x: auto;">
|
|
<table id="grid1"></table>
|
|
<!-- <div id="grid1Pager"></div> -->
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="grid1Data">${LIST}<c:if test="${empty LIST}">[]</c:if></textarea><!-- [{},{},{}] -->
|
|
</div>
|
|
|
|
<div class="pdm_page">${PAGE_HTML}</div>
|
|
</section>
|
|
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="jsonLevel3_csmCategory">${code_map.jsonLevel3_csmCategory}</textarea><!-- 코드동적설정 -->
|
|
--%>
|
|
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</body>
|
|
</html> |