최초커밋
This commit is contained in:
@@ -0,0 +1,550 @@
|
||||
<%
|
||||
/**
|
||||
* 품목 등록
|
||||
* @since 2021.11.16
|
||||
* @author kim
|
||||
* @version 1.0
|
||||
*
|
||||
* << 개정 이력 >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ---------------- --------------------- --------------------------------------------------------
|
||||
* 2021.11.16 김효일 최초작성
|
||||
**/
|
||||
%>
|
||||
<%@ 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_jqGrid.jsp"%>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style type="text/css">
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: linear-gradient(to bottom, #f5d78e, #f5d78e);
|
||||
}
|
||||
</style>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title><%=Constants.SYSTEM_NAME%></title>
|
||||
</head>
|
||||
<link rel="stylesheet" href="/css/ions-basic.css">
|
||||
<script type="text/javascript" src="/js/ions-common.js" ></script>
|
||||
<script type="text/javascript">
|
||||
var grid;
|
||||
|
||||
$(document).ready(function(){
|
||||
$('.select2').select2();
|
||||
|
||||
fnc_setFileDropZone("excelImportDropZone", "${objid}", "ITEM_EXCEL_IMPORT", "Item Excel Import Template", "setExcelFileArea",true,"fileDelete","/part/excelImportFileProc.do");
|
||||
fnc_setFileDropZone("partAttachFileDropZone", "${objid}", "ITEM_IMPORT_ATTACH", "Import Item Attach File", "setPartFileArea",false,null,"/part/partImportFileProc.do");
|
||||
|
||||
//Excel File Upload된 파일 목록 부분을 초기화 한다.
|
||||
$("#excelImportList").hide();
|
||||
|
||||
//Excel File이 Upload되지 않은 경우 파트에 대한 첨부파일 영역을 hide 한다.
|
||||
$("#partAttachFileDropZone").hide();
|
||||
|
||||
grid = $("#expenseDetailGrid").jqGrid({
|
||||
url: ""
|
||||
,datatype: "local"
|
||||
,colNames: ["Level1","Level2","Level3","Level4","Level5","Level6","기종코드","PartName","모품번","규격","재질","단위","Assay","자재관리등급","조달소요일","수량","불출공정","사급","발주업체","입고단가","등록일시","BOM_REPORT_OBJID"]
|
||||
,colModel: [
|
||||
{name:"level1",index:"level1", width: 50, align:"center", hidden: false, sortable:false, editable:false
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"level2",index:"level2", width: 50, align:"center", hidden: false, sortable:false, editable:false
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"level3",index:"level3", width: 50, align:"center", hidden: false, sortable:false, editable:false
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"level4",index:"level4", width: 50, align:"center", hidden: false, sortable:false, editable:false
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"level5",index:"level5", width: 50, align:"center", hidden: false, sortable:false, editable:false
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"level6",index:"level6", width: 50, align:"center", hidden: false, sortable:false, editable:false
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"imProdNo",index:"imProdNo", width: 100, align:"center", hidden: false, sortable:false, editable:false
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"imItemNm",index:"imItemNm", width: 200, align:"center", hidden: false, sortable:false, editable:true
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"pid",index:"pid", width: 100, align:"center", hidden: false, sortable:false, editable:true
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"imItemSpec",index:"imItemSpec", width: 250, align:"center", hidden: false, sortable:false, editable:true
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"imMaterial",index:"imMaterial", width: 100, align:"center", hidden: false, sortable:false, editable:true
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"imUnit",index:"imUnit", width: 50, align:"center", hidden: false, sortable:false, editable:true
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"imAssy" ,index:"imAssy", width:50, align:"center", hidden:false, sortable:false, editable: true
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"imABC",index:"imABC", width: 100, align:"center", hidden: false, sortable:false, editable:true
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"imDelivery",index:"imDelivery", width: 100, align:"center", hidden: false, sortable:false, editable:true
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"qty",index:"qty", width: 50, align:"center", hidden: false, sortable:false, editable:true
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"ayCorse",index:"ayCorse", width: 80, align:"center", hidden: false, sortable:false, editable:true
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"aySagup",index:"aySagup", width: 50, align:"center", hidden: false, sortable:false, editable:true
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"suVndNm",index:"suVndNm", width: 80, align:"center", hidden: false, sortable:false, editable:true
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"upPrice",index:"upPrice", width: 80, align:"center", hidden: false, sortable:false, editable:true
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"regDate",index:"regDate", width: 80, align:"center", hidden: false, sortable:false, editable:false
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"bom_report_objid",index:"bom_report_objid", width: 80, align:"center", hidden: true, sortable:false, editable:false
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
//,cellEdit : true
|
||||
//,cellsubmit : "clientArray"
|
||||
,rownumbers : true
|
||||
,viewrecords : true
|
||||
,height : 330
|
||||
,multiselect : false
|
||||
,shrinkToFit : false
|
||||
,autowidth : true
|
||||
,sortable : false
|
||||
,rowNum : 2000
|
||||
,forceFit : false //컬럼의 width를 변화시킬때 그리드의 width를 고정 여부
|
||||
,jsonReader : {repeatitems: false}
|
||||
,mtype :"POST"
|
||||
,footerrow : false //바닥합계
|
||||
,userDataOnFooter: true //바닥합계
|
||||
,loadComplete: function() {
|
||||
}
|
||||
,onCellSelect: function(rowid,icol,cellcontent,e) {
|
||||
var value = $("#"+rowid+"_PART_NO").val();
|
||||
if(icol==10){
|
||||
fn_PartDetail(value);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// 닫기
|
||||
$("#btnClose").click(function(){
|
||||
self.close(0);
|
||||
});
|
||||
});
|
||||
|
||||
function fn_count(){
|
||||
$.ajax({
|
||||
url:"/partmgmt/countExcelpart.do",
|
||||
type:"POST",
|
||||
data:{"targetObjId":"${objid}"},
|
||||
dataType:"json",
|
||||
async: false,
|
||||
success:function(data){
|
||||
// Swal.fire("now_cnt :: " +data.RESULT.NOW_CNT);
|
||||
$("#dup_cnt").text(data.RESULT.DUP_CNT);
|
||||
$("#now_cnt").text(data.RESULT.NOW_CNT);
|
||||
},
|
||||
error: function(jqxhr, status, error){
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
var gridFn = {
|
||||
addRow : function() {
|
||||
var newId = grid.getGridParam("reccount")+1;
|
||||
var addData = {
|
||||
"PART_NAME": "",
|
||||
"PARENT_PART_NO": "",
|
||||
"PART_NO" : "",
|
||||
"QTY" : "",
|
||||
"SORT_CD" : "",
|
||||
"SUPPLY_CD" : ""
|
||||
};
|
||||
grid.addRowData(newId, addData);
|
||||
grid.jqGrid("editRow", newId);
|
||||
}
|
||||
,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]);
|
||||
}
|
||||
}
|
||||
,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*/);
|
||||
}
|
||||
}
|
||||
,getStep2Cd : function(obj){ //2단계연결코드 재설정
|
||||
var gridExpSubdCdArr = $.parseJSON($("#gridExpSubdCd").val());
|
||||
var targetObj = $("#"+$(obj).attr("rowid")+"_EXP_SUBD_CD");
|
||||
targetObj.empty(); //초기화
|
||||
targetObj.append("<option value=\"\">선택</option>");
|
||||
for(var i=0; i<gridExpSubdCdArr.length; i++){
|
||||
cd = gridExpSubdCdArr[i];
|
||||
if(cd["PARENT_CODE_ID"]==obj.value){
|
||||
targetObj.append("<option value=\""+cd["CODE_ID"]+"\">"+cd["CODE_NAME"]+"</option>");
|
||||
}
|
||||
};
|
||||
}
|
||||
,search : function() {
|
||||
//save_excel();
|
||||
grid.setGridParam({
|
||||
url: "/imItem/parsingExcelFile.do"
|
||||
,datatype : "json"
|
||||
,postData:{"targetObjId":"${objid}","docType":"ITEM_EXCEL_IMPORT"}
|
||||
,loadComplete : function() {
|
||||
gridFn.footerSummary();
|
||||
//fn_count();
|
||||
}
|
||||
,gridComplete : function() {
|
||||
gridFn.opennEdit(); //수정가능
|
||||
}
|
||||
}).trigger("reloadGrid");
|
||||
grid.setGridParam({url: "", datatype : "local"});
|
||||
}
|
||||
/* ,modify_search : function() {
|
||||
Swal.fire('asdsadas');
|
||||
grid.setGridParam({
|
||||
url: "/partmgmt/parsingExcelData.do"
|
||||
,datatype : "json"
|
||||
,postData : {"targetObjId":"${objid}"}
|
||||
,loadComplete : function(data) {
|
||||
gridFn.footerSummary();
|
||||
}
|
||||
,gridComplete : function() {
|
||||
gridFn.opennEdit(); //수정가능
|
||||
}
|
||||
}).trigger("reloadGrid");
|
||||
grid.setGridParam({url: "", datatype : "local"});
|
||||
} */
|
||||
|
||||
,footerSummary: function(){ //자동합계
|
||||
$("select[id*=_SORT_CD]").each(function(){
|
||||
$(this).select2();
|
||||
} );
|
||||
|
||||
$("select[id*=_SUPPLY_CD]").each(function(){
|
||||
$(this).select2();
|
||||
} );
|
||||
}
|
||||
}
|
||||
|
||||
function fn_save() {
|
||||
var ids = grid.jqGrid("getDataIDs");
|
||||
|
||||
if (ids != "") {
|
||||
if (confirm("저장 하시겠습니까? 기등록된 품목은 수정 됩니다.")) {
|
||||
gridFn.closeEdit();
|
||||
var gridData = JSON.stringify(grid.getRowData());
|
||||
gridData = gridData.replace(/&/gi, "§");
|
||||
|
||||
$.ajax({
|
||||
url:"/imItem/saveImItemBatch.do",
|
||||
type:"POST",
|
||||
data: $("#form1").serialize() + "&jqGrid="+ gridData,
|
||||
dataType:"json",
|
||||
success:function(data) {
|
||||
Swal.fire(data.RESULT.msg);
|
||||
|
||||
if (data.RESULT.result) {
|
||||
self.close();
|
||||
} else {
|
||||
gridFn.opennEdit();
|
||||
}
|
||||
},
|
||||
error: function(jqxhr, status, error) {
|
||||
gridFn.opennEdit();
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
Swal.fire('저장할 데이터가 없습니다.');
|
||||
}
|
||||
}
|
||||
|
||||
// Excel 파일 업로드 후 처리함수
|
||||
function setExcelFileArea(){
|
||||
setUploadTemplateFile("excelImport");
|
||||
}
|
||||
|
||||
// 파트 관련 첨부파일 업로드 후 처리함수
|
||||
function setPartFileArea(){
|
||||
setUploadTemplateFile("itemAttachFile");
|
||||
}
|
||||
|
||||
// 템플릿 업로드 후 처리
|
||||
function setUploadTemplateFile(type){
|
||||
var docType = "";
|
||||
var deleteCallBackFN = "";
|
||||
if (type == "excelImport") {
|
||||
docType = "ITEM_EXCEL_IMPORT";
|
||||
deleteCallBackFN = "excelFileDelete";
|
||||
} else {
|
||||
$("#itemAttachFile").empty();
|
||||
docType = "ITEM_IMPORT_ATTACH";
|
||||
deleteCallBackFN = "setItemFileArea";
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url:"/common/getFileList.do",
|
||||
type:"POST",
|
||||
data:{"targetObjId":"${objid}", "docType":docType},
|
||||
dataType:"json",
|
||||
async:false,
|
||||
success:function(data) {
|
||||
if (null != data && 0 < data.length) {
|
||||
if ("ITEM_IMPORT_ATTACH" == docType) {
|
||||
$("#defaultItemAttachFileRow").hide();
|
||||
}
|
||||
|
||||
$("#"+type+"List").show();
|
||||
}
|
||||
|
||||
$.each(data, function(i){
|
||||
var s = "<tr>";
|
||||
|
||||
if("ITEM_IMPORT_ATTACH" == docType){
|
||||
s += "<td>"+(i+1)+"</td>";
|
||||
}
|
||||
s += "<td colspan='2'><a href='javascript:fnc_downloadFile(\""+data[i].OBJID+"\")'>"+data[i].REAL_FILE_NAME+"</a></td>";
|
||||
/* s += "<td>"+data[i].FILE_SIZE+"</td>"; */
|
||||
s += "<td><div class='delete_btn' onclick='javascript:fnc_deleteFile(\""+data[i].OBJID+"\", \""+deleteCallBackFN+"\")'></div></td>";
|
||||
s += "</tr>";
|
||||
$("#"+type+"Area").append(s);
|
||||
});
|
||||
|
||||
if (type == "excelImport") {
|
||||
parsingExcelFile();
|
||||
}
|
||||
},
|
||||
error: function(jqxhr, status, error) {
|
||||
Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
|
||||
Swal.fire(jqxhr.status);
|
||||
Swal.fire(jqxhr.responseText);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function excelFileDelete() {
|
||||
$("#excelImportArea").empty();
|
||||
$("#excelImportList").hide();
|
||||
$("#parsingPartList").empty();
|
||||
$("#defaultExcelTemplateRow").show();
|
||||
}
|
||||
|
||||
// Excel 파일 업로드에 따른 파트 첨부파일 영역 DISPLAY
|
||||
function displayPartFileInfo(flag){
|
||||
|
||||
if(flag == "true"){
|
||||
$("#partAttachFileDropZone").show();
|
||||
$("#partAttachFileArea").empty();
|
||||
$("#defaultPartAttachFileRow").show();
|
||||
}else{
|
||||
$("#partAttachFileDropZone").show();
|
||||
$("#partAttachFileArea").empty();
|
||||
$("#partAttachFileList").hide();
|
||||
}
|
||||
}
|
||||
|
||||
var duplicateCount = 0;
|
||||
function parsingExcelFile(){
|
||||
gridFn.search();
|
||||
}
|
||||
|
||||
//파일을 삭제한다.
|
||||
//Excel 파일 삭제 시 파트 첨부파일도 모두 삭제한다.
|
||||
function fileDelete(){
|
||||
if (confirm("Excel 파일을 변경하시겠습니까? 이미 품목 첨부파일이 첨부된 경우 파일은 삭제됩니다.")) {
|
||||
$.ajax({
|
||||
url:"/common/deleteFileInfo.do",
|
||||
type:"POST",
|
||||
data:{"targetObjId":"${objid}"},
|
||||
dataType:"json",
|
||||
async:true,
|
||||
success:function(data) {
|
||||
excelFileDelete();
|
||||
},
|
||||
error: function(jqxhr, status, error) {
|
||||
Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
|
||||
Swal.fire(jqxhr.status);
|
||||
Swal.fire(jqxhr.responseText);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<body>
|
||||
<form name="form1" id="form1" action="" method="post">
|
||||
<section>
|
||||
<div class="plm_menu_name">
|
||||
<h2>
|
||||
<span>품목 일괄 등록</span>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div style=" margin: 0 8px;">
|
||||
<div id="partExcelPopupFormWrap">
|
||||
<div class="form_popup_title" style="position:relative;"> Excel upload</div>
|
||||
<div id="excelUploadPopupForm">
|
||||
<div class="fileDnDWrap">
|
||||
<div id="excelImportDropZone" class="dropzone" style="height:50px;">Drag & Drop 엑셀 템플릿</div>
|
||||
<div id="excelImportList">
|
||||
<table id="excelImportTable" class="excelUploadPopupForm">
|
||||
<thead>
|
||||
<tr><td colspan="3">Excel 첨부파일</td></tr>
|
||||
</thead>
|
||||
<tbody id="excelImportArea">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="btn_wrap">
|
||||
<div class="plm_btn_wrap" style="padding:0 8 0 8; text-align: right;">
|
||||
<input type="button" class="plm_btns" value="저장" onclick="fn_save();">
|
||||
<input type="button" class="plm_btns" value="닫기" onclick="window.close();" >
|
||||
</div>
|
||||
<!--
|
||||
<div class="ascendig_text">
|
||||
<font size="3px" style="padding-left: 10px;">신규 <span id="now_cnt">0</span>건</font>
|
||||
<font size="3px">중복 <span id="dup_cnt">0</span>건</font>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
|
||||
<br/><br/>
|
||||
|
||||
<style>
|
||||
#excelUploadPopupForm .dropzone {width:100% !important}
|
||||
</style>
|
||||
<div id="plm_table_wrap1" style="padding:0 8 0 8;">
|
||||
<div style="height: 750px;">
|
||||
<div style="height: 750px;">
|
||||
<table id="expenseDetailGrid"></table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user