650 lines
20 KiB
Plaintext
650 lines
20 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>
|
||
|
|
|
||
|
|
<script type="text/javascript">
|
||
|
|
var grid;
|
||
|
|
$(document).ready(function(){
|
||
|
|
//fnc_datepick();
|
||
|
|
fnc_setFileDropZone("excelImportDropZone", "${objid}", "PRODUCT_EXCEL_IMPORT", "Part Excel Import Template", "setExcelFileArea",true,"fileDelete","/part/excelImportFileProc.do");
|
||
|
|
fnc_setFileDropZone("partAttachFileDropZone", "${objid}", "PART_IMPORT_ATTACH", "Import Part Attach File", "setPartFileArea",false,null,"/part/partImportFileProc.do");
|
||
|
|
|
||
|
|
//fnc_setFileDropZone("dropzone", "${targetObjId}", "${FILE_DOC_TYPE_STRUCTURE_EXCEL_IMPORT_CODE}", "${FILE_DOC_TYPE_STRUCTURE_EXCEL_IMPORT_NAME}", "setUploadTemplateFile", true, "fn_preProcessor");
|
||
|
|
|
||
|
|
$("#templateDownload").click(function(){
|
||
|
|
location.href="/template/PRODUCT_EXCEL_IMPORT_TEMPLATE.xlsx";
|
||
|
|
});
|
||
|
|
|
||
|
|
//Excel File Upload된 파일 목록 부분을 초기화 한다.
|
||
|
|
$("#excelImportList").hide();
|
||
|
|
|
||
|
|
//Excel File이 Upload되지 않은 경우 파트에 대한 첨부파일 영역을 hide 한다.
|
||
|
|
$("#partAttachFileDropZone").hide();
|
||
|
|
|
||
|
|
|
||
|
|
var customer_cd = $.parseJSON($("#customer_cd").val()); //jqGrid 구분
|
||
|
|
var item_cd = $.parseJSON($("#item_cd").val()); //jqGrid 구분
|
||
|
|
var phase_cd = $.parseJSON($("#phase_cd").val()); //jqGrid 구분
|
||
|
|
var fre_cd = $.parseJSON($("#fre_cd").val()); //jqGrid 구분
|
||
|
|
var pd_cd1 = $.parseJSON($("#pd_cd1").val());
|
||
|
|
var pd_cd2 = $.parseJSON($("#pd_cd2").val());
|
||
|
|
var pd_cd3 = $.parseJSON($("#pd_cd3").val());
|
||
|
|
var pd_cd4 = $.parseJSON($("#pd_cd4").val());
|
||
|
|
var pd_cd5 = $.parseJSON($("#pd_cd5").val());
|
||
|
|
var pd_cd6 = $.parseJSON($("#pd_cd6").val());
|
||
|
|
var pd_cd7 = $.parseJSON($("#pd_cd7").val());
|
||
|
|
var pd_cd8 = $.parseJSON($("#pd_cd8").val());
|
||
|
|
var status_cd = $.parseJSON($("#status_cd").val());
|
||
|
|
|
||
|
|
grid = $("#expenseDetailGrid").jqGrid({
|
||
|
|
url: ""
|
||
|
|
,datatype: "local"
|
||
|
|
,colNames: ["고객발주Code","고객제품번호","DHIS제품번호","사양","중량","고객명","수주제품","상수","주파수","변압기용량","1차전압","2차전압","결선","인피던스","도체","디지털온도계","냉각팬","외함","효율","절연등급","상태"]
|
||
|
|
,colModel: [
|
||
|
|
{name:"ORDER_NO",index:"ORDER_NO", width: 50, align:"center", hidden: false, sortable:false, editable:true
|
||
|
|
,editoptions:{
|
||
|
|
dataInit : function(e){
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
,{name:"PRODUCT_NO",index:"PRODUCT_NO", width: 50, align:"center", hidden: false, sortable:false, editable:true
|
||
|
|
,editoptions:{
|
||
|
|
dataInit : function(e){
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
,{name:"DHISPRODUCT_NO",index:"DHISPRODUCT_NO", width: 50, align:"center", hidden: false, sortable:false, editable:true
|
||
|
|
,editoptions:{
|
||
|
|
dataInit : function(e){
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
,{name:"SPEC",index:"SPEC", width: 50, align:"center", hidden: false, sortable:false, editable:true
|
||
|
|
,editoptions:{
|
||
|
|
dataInit : function(e){
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
,{name:"WEIGHT",index:"WEIGHT", width: 50, align:"center", hidden: false, sortable:false, editable:true
|
||
|
|
,editoptions:{
|
||
|
|
dataInit : function(e){
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
,{name:"CUSTOMER_CD" ,index:"CUSTOMER_CD" , width:80, align:"center", hidden:false, sortable:false, editable: true
|
||
|
|
,edittype :"select"
|
||
|
|
,formatter :"select"
|
||
|
|
,editoptions:{
|
||
|
|
value: customer_cd
|
||
|
|
,dataInit : function(e){
|
||
|
|
e.style.width = "92%";
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
,{name:"ITEM_CD" ,index:"ITEM_CD" , width:80, align:"center", hidden:false, sortable:false, editable: true
|
||
|
|
,edittype :"select"
|
||
|
|
,formatter :"select"
|
||
|
|
,editoptions:{
|
||
|
|
value: item_cd
|
||
|
|
,dataInit : function(e){
|
||
|
|
e.style.width = "92%";
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
,{name:"PHASE_CD" ,index:"PHASE_CD" , width:80, align:"center", hidden:false, sortable:false, editable: true
|
||
|
|
,edittype :"select"
|
||
|
|
,formatter :"select"
|
||
|
|
,editoptions:{
|
||
|
|
value: phase_cd
|
||
|
|
,dataInit : function(e){
|
||
|
|
e.style.width = "92%";
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
,{name:"FREQUENCY_CD" ,index:"FREQUENCY_CD" , width:80, align:"center", hidden:false, sortable:false, editable: true
|
||
|
|
,edittype :"select"
|
||
|
|
,formatter :"select"
|
||
|
|
,editoptions:{
|
||
|
|
value: fre_cd
|
||
|
|
,dataInit : function(e){
|
||
|
|
e.style.width = "92%";
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
,{name:"CAPACITY",index:"CAPACITY", width: 50, align:"center", hidden: false, sortable:false, editable:true
|
||
|
|
,editoptions:{
|
||
|
|
dataInit : function(e){
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
,{name:"CODE1" ,index:"CODE1" , width:80, align:"center", hidden:false, sortable:false, editable: true
|
||
|
|
,edittype :"select"
|
||
|
|
,formatter :"select"
|
||
|
|
,editoptions:{
|
||
|
|
value: pd_cd1
|
||
|
|
,dataInit : function(e){
|
||
|
|
e.style.width = "92%";
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
,{name:"SEC_VOLT",index:"SEC_VOLT", width: 50, align:"center", hidden: false, sortable:false, editable:true
|
||
|
|
,editoptions:{
|
||
|
|
dataInit : function(e){
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
,{name:"CODE2" ,index:"CODE2" , width:80, align:"center", hidden:false, sortable:false, editable: true
|
||
|
|
,edittype :"select"
|
||
|
|
,formatter :"select"
|
||
|
|
,editoptions:{
|
||
|
|
value: pd_cd2
|
||
|
|
,dataInit : function(e){
|
||
|
|
e.style.width = "92%";
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
,{name:"IMPEDANCE",index:"IMPEDANCE", width: 50, align:"center", hidden: false, sortable:false, editable:true
|
||
|
|
,editoptions:{
|
||
|
|
dataInit : function(e){
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
,{name:"CODE3" ,index:"CODE3" , width:80, align:"center", hidden:false, sortable:false, editable: true
|
||
|
|
,edittype :"select"
|
||
|
|
,formatter :"select"
|
||
|
|
,editoptions:{
|
||
|
|
value: pd_cd3
|
||
|
|
,dataInit : function(e){
|
||
|
|
e.style.width = "92%";
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
,{name:"CODE4" ,index:"CODE4" , width:80, align:"center", hidden:false, sortable:false, editable: true
|
||
|
|
,edittype :"select"
|
||
|
|
,formatter :"select"
|
||
|
|
,editoptions:{
|
||
|
|
value: pd_cd4
|
||
|
|
,dataInit : function(e){
|
||
|
|
e.style.width = "92%";
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
,{name:"CODE5" ,index:"CODE5" , width:80, align:"center", hidden:false, sortable:false, editable: true
|
||
|
|
,edittype :"select"
|
||
|
|
,formatter :"select"
|
||
|
|
,editoptions:{
|
||
|
|
value: pd_cd5
|
||
|
|
,dataInit : function(e){
|
||
|
|
e.style.width = "92%";
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
,{name:"CODE6" ,index:"CODE6" , width:80, align:"center", hidden:false, sortable:false, editable: true
|
||
|
|
,edittype :"select"
|
||
|
|
,formatter :"select"
|
||
|
|
,editoptions:{
|
||
|
|
value: pd_cd6
|
||
|
|
,dataInit : function(e){
|
||
|
|
e.style.width = "92%";
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
,{name:"CODE7" ,index:"CODE7" , width:80, align:"center", hidden:false, sortable:false, editable: true
|
||
|
|
,edittype :"select"
|
||
|
|
,formatter :"select"
|
||
|
|
,editoptions:{
|
||
|
|
value: pd_cd7
|
||
|
|
,dataInit : function(e){
|
||
|
|
e.style.width = "92%";
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
,{name:"CODE8" ,index:"CODE8" , width:80, align:"center", hidden:false, sortable:false, editable: true
|
||
|
|
,edittype :"select"
|
||
|
|
,formatter :"select"
|
||
|
|
,editoptions:{
|
||
|
|
value: pd_cd8
|
||
|
|
,dataInit : function(e){
|
||
|
|
e.style.width = "92%";
|
||
|
|
e.style.fontSize = 13;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
,{name:"STATUS_CD" ,index:"STATUS_CD" , width:80, align:"center", hidden:false, sortable:false, editable: true
|
||
|
|
,edittype :"select"
|
||
|
|
,formatter :"select"
|
||
|
|
,editoptions:{
|
||
|
|
value: status_cd
|
||
|
|
,dataInit : function(e){
|
||
|
|
e.style.width = "92%";
|
||
|
|
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(){
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
//gridFn.search();
|
||
|
|
});
|
||
|
|
|
||
|
|
|
||
|
|
var gridFn = {
|
||
|
|
addRow : function() {
|
||
|
|
var newId = grid.getGridParam("reccount")+1;
|
||
|
|
var addData = {
|
||
|
|
"PART_NAME": "",
|
||
|
|
"PARENT_PART_NO": "",
|
||
|
|
"PART_NO" : "",
|
||
|
|
"SPEC_CD" : "",
|
||
|
|
"MFA_CD" : "",
|
||
|
|
"QTY" : "",
|
||
|
|
"PROCESS_CD" : "",
|
||
|
|
"SORT_CD" : "",
|
||
|
|
"SUPPLY_CD" : "",
|
||
|
|
"PRICE" : "",
|
||
|
|
"SUP_PRICE" : ""
|
||
|
|
};
|
||
|
|
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() {
|
||
|
|
grid.setGridParam({
|
||
|
|
url: "/productmgmt/parsingExcelFile.do"
|
||
|
|
,datatype : "json"
|
||
|
|
,postData:{"targetObjId":"${objid}","docType":"PRODUCT_EXCEL_IMPORT"}
|
||
|
|
,loadComplete : function(data) {
|
||
|
|
gridFn.footerSummary();
|
||
|
|
}
|
||
|
|
,gridComplete : function() {
|
||
|
|
gridFn.opennEdit(); //수정가능
|
||
|
|
}
|
||
|
|
}).trigger("reloadGrid");
|
||
|
|
grid.setGridParam({url: "", datatype : "local"});
|
||
|
|
}
|
||
|
|
,footerSummary: function(){ //자동합계
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function fn_save(){
|
||
|
|
var ids = grid.jqGrid("getDataIDs");
|
||
|
|
if(ids!=""){
|
||
|
|
if(fnc_valitate("form1")){
|
||
|
|
if(confirm("저장 하시겠습니까?")){
|
||
|
|
gridFn.closeEdit();
|
||
|
|
$.ajax({
|
||
|
|
url:"/productmgmt/productApplySave.do"
|
||
|
|
,type:"POST"
|
||
|
|
,data: $("#form1").serialize() + "&jqGrid="+ JSON.stringify(grid.getRowData())
|
||
|
|
,dataType:"json"
|
||
|
|
,success:function(data){
|
||
|
|
if(data =="SUCCESS"){
|
||
|
|
Swal.fire("저장되었습니다.");
|
||
|
|
top.opener.fn_search();
|
||
|
|
self.close();
|
||
|
|
};
|
||
|
|
}
|
||
|
|
,error: function(jqxhr, status, error){
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}else{
|
||
|
|
Swal.fire('저장할 데이터가 없습니다.');
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
//Excel 파일 업로드 후 처리함수
|
||
|
|
function setExcelFileArea(){
|
||
|
|
setUploadTemplateFile("excelImport");
|
||
|
|
}
|
||
|
|
//파트 관련 첨부파일 업로드 후 처리함수
|
||
|
|
function setPartFileArea(){
|
||
|
|
setUploadTemplateFile("partAttachFile");
|
||
|
|
}
|
||
|
|
|
||
|
|
//템플릿 업로드 후 처리
|
||
|
|
function setUploadTemplateFile(type){
|
||
|
|
var docType = "";
|
||
|
|
var deleteCallBackFN = "";
|
||
|
|
if(type == "excelImport"){
|
||
|
|
docType = "PRODUCT_EXCEL_IMPORT";
|
||
|
|
deleteCallBackFN = "excelFileDelete";
|
||
|
|
}else{
|
||
|
|
$("#partAttachFileArea").empty();
|
||
|
|
docType = "PART_IMPORT_ATTACH";
|
||
|
|
deleteCallBackFN = "setPartFileArea";
|
||
|
|
}
|
||
|
|
$.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("PART_IMPORT_ATTACH" == docType){
|
||
|
|
$("#defaultPartAttachFileRow").hide();
|
||
|
|
}
|
||
|
|
$("#"+type+"List").show();
|
||
|
|
}
|
||
|
|
$.each(data, function(i){
|
||
|
|
var s = "<tr>";
|
||
|
|
|
||
|
|
if("PART_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();
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function savePart(){
|
||
|
|
if(0 < $("input[name='partObjId']").length){
|
||
|
|
|
||
|
|
var cnt = 0;
|
||
|
|
$("input[name='partObjId']").each(function(idx){
|
||
|
|
var targetObjId = $(this).val();
|
||
|
|
if(!partImportValidation(targetObjId)){
|
||
|
|
cnt++;
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
if(cnt == 0){
|
||
|
|
$("input[name='partObjId']").each(function(idx){
|
||
|
|
var otherObjId = $(this).val();
|
||
|
|
if(otherObjId != targetObjId){
|
||
|
|
if($("#"+otherObjId+"_partNo").val() == $("#"+targetObjId+"_partNo").val()){
|
||
|
|
Swal.fire("문서내 중복되는 Part No가 존재 합니다.("+$("#"+otherObjId+"_partNo").val()+","+$("#"+targetObjId+"_partNo").val()+")");
|
||
|
|
cnt++;
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
if(duplicateCount > 0){
|
||
|
|
Swal.fire("등록 불가한 품번이 있어 저장할 수 없습니다.");
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
if(0 == cnt){
|
||
|
|
if(confirm("해당파트 정보를 저장하시겠습니까?")){
|
||
|
|
var param = $("#form1").serialize();
|
||
|
|
$.ajax({
|
||
|
|
type : "POST",
|
||
|
|
url : "/part/saveExcelUploadPart.do",
|
||
|
|
data: param,
|
||
|
|
dataType:"json",
|
||
|
|
async:false,
|
||
|
|
error: function(jqxhr, status, error){
|
||
|
|
Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
|
||
|
|
Swal.fire(jqxhr.status);
|
||
|
|
Swal.fire(jqxhr.responseText);
|
||
|
|
},
|
||
|
|
success: function(result){
|
||
|
|
if(null != result){
|
||
|
|
Swal.fire(result.message);
|
||
|
|
opener.search();
|
||
|
|
self.close();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
}else{
|
||
|
|
Swal.fire("저장할 정보가 없습니다.");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
//파일을 삭제한다.
|
||
|
|
//Excel 파일 삭제 시 파트 첨부파일도 모두 삭제한다.
|
||
|
|
function fileDelete(){
|
||
|
|
if(confirm("Excel 파일을 변경하시겠습니까? 이미 Part 첨부파일이 첨부된 경우 파일은 삭제됩니다.")){
|
||
|
|
$.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>
|
||
|
|
|
||
|
|
</head>
|
||
|
|
<body>
|
||
|
|
<form name="form1" id="form1" action="" method="post">
|
||
|
|
<input type="hidden" name="importPopObjid" id="importPopObjid" value="${objid}">
|
||
|
|
<section>
|
||
|
|
<div class="plm_menu_name">
|
||
|
|
<h2><span>제품마스터 Excel upload</span></h2>
|
||
|
|
</div>
|
||
|
|
</section>
|
||
|
|
|
||
|
|
<div style=" margin: 0 8px;">
|
||
|
|
<div id="partExcelPopupFormWrap">
|
||
|
|
<div class="form_popup_title" style="position:relative;"> Excel upload<img src="/images/btnExcel.png" style="position:absolute; top:9px; right:135px;"/><span style="position:absolute; top:0px; right:10px; cursor:pointer;" id="templateDownload">Template Download</span></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 class="fileDnDWrap">
|
||
|
|
<div id="partAttachFileDropZone" class="dropzone" style="height:50px;">Drag & Drop 파트 첨부파일</div>
|
||
|
|
<div id="partAttachFileList">
|
||
|
|
<table id="partAttachFileTable" class="excelUploadPopupForm">
|
||
|
|
<thead>
|
||
|
|
<tr><td colspan="4">Part 첨부파일</td></tr>
|
||
|
|
</thead>
|
||
|
|
<tr id="defaultPartAttachFileRow">
|
||
|
|
<td colspan="4">첨부된 파일이 없습니다.</td>
|
||
|
|
</tr>
|
||
|
|
<tbody id="partAttachFileArea">
|
||
|
|
</tbody>
|
||
|
|
</table>
|
||
|
|
</div>
|
||
|
|
</div> -->
|
||
|
|
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<section>
|
||
|
|
<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>
|
||
|
|
</br></br>
|
||
|
|
<style>
|
||
|
|
#excelUploadPopupForm .dropzone {width:99.8% !important}
|
||
|
|
</style>
|
||
|
|
<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>
|
||
|
|
|
||
|
|
</section>
|
||
|
|
</form>
|
||
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="customer_cd">${code_map.customer_cd}</textarea>
|
||
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="item_cd">${code_map.item_cd}</textarea><!-- 코드동적설정 -->
|
||
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="phase_cd">${code_map.phase_cd}</textarea><!-- 코드동적설정 -->
|
||
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="fre_cd">${code_map.fre_cd}</textarea><!-- 코드동적설정 -->
|
||
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="pd_cd1">${code_map.pd_cd1}</textarea><!-- 코드동적설정 -->
|
||
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="pd_cd2">${code_map.pd_cd2}</textarea>
|
||
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="pd_cd3">${code_map.pd_cd3}</textarea><!-- 코드동적설정 -->
|
||
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="pd_cd4">${code_map.pd_cd4}</textarea><!-- 코드동적설정 -->
|
||
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="pd_cd5">${code_map.pd_cd5}</textarea><!-- 코드동적설정 -->
|
||
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="pd_cd6">${code_map.pd_cd6}</textarea><!-- 코드동적설정 -->
|
||
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="pd_cd7">${code_map.pd_cd7}</textarea>
|
||
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="pd_cd8">${code_map.pd_cd8}</textarea><!-- 코드동적설정 -->
|
||
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="status_cd">${code_map.status_cd}</textarea><!-- 코드동적설정 -->
|
||
|
|
|
||
|
|
</body>
|
||
|
|
</html>
|