ERP-node/WebContent/WEB-INF/view/costMgmt/laborCostTimeSheetPopup.jsp

473 lines
16 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>
<title><%=Constants.SYSTEM_NAME%></title>
<script>
var grid;
$(document).ready(function() {
//닫기
$("#btnClose").click(function(){
self.close(0);
});
$("#btnDel").click(function(){
gridFn.delRow();
});
fnc_datepick(); //달력
var gridDivisionCd = $.parseJSON($("#gridDivisionCd").val()); //jqGrid 업무구분
var gridProjectNo = $.parseJSON($("#gridProjectNo").val()); //jqGrid 프로젝트 no
var gridDeptselect = $.parseJSON($("#gridDeptselect").val()); //jqGrid 프로젝트 no
var gridFactoryCd = $.parseJSON($("#gridFactoryCd").val()); //jqGrid 출장지
var gridCustomerCd = $.parseJSON($("#gridCustomerCd").val()); //jqGrid 업체명
var gridUserselectArr = $.parseJSON($("#gridUserselect").val()); //jqGrid 팀원
var gridUserselect = {"":"선택"};
for(var i=0; i<gridUserselectArr.length; i++){
cd = gridUserselectArr[i];
gridUserselect[cd["CODE_ID"]] = cd["CODE_NAME"];
};
gridUserselect["OUT1"] = "외주인A";
gridUserselect["OUT2"] = "외주인B";
gridProjectNo["1"] ="공통";
//-------------------------------------------------
/* 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; */
//-------------------------------------------------
grid = $("#timeSheetPopupGrid").jqGrid({
url: ""
,datatype: "local"
,colNames: ["TIME_SHEET_OBJID","SYSTEM_REG_USER_ID","Project No.","Date","팀명","등록인","업무구분","상세내용","출장지","업체명","근무시간","작성자"]
,colModel: [
{name:"TIME_SHEET_OBJID" ,index:"TIME_SHEET_OBJID", width: 10, align:"center", hidden: true, sortable:false, editable:false}
,{name:"SYSTEM_REG_USER_ID" ,index:"SYSTEM_REG_USER_ID", width: 10, align:"center", hidden: true, sortable:false, editable:true}
,{name:"PROJECTNO" ,index:"PROJECTNO" , width:100, align:"center", hidden:false, sortable:false, editable: true
,edittype :"select"
,editoptions:{
value: gridProjectNo
,dataInit: function(e){
e.style.width = "92%";
e.style.fontSize = 13;
}
}
}
,{name:"WORK_DATE" ,index:"WORK_DATE" , width:100, align:"center", hidden:false, sortable:false, editable: true
,editrules:{custom:false,required:false}
//,formatter: "date"
,editoptions:{
//value: now_date
dataInit: function(e){
e.style.width = "92%";
e.style.fontSize = 13;
e.style.textAlign = "center";
$(e).datepicker({dateFormat:'yy-mm-dd'});
/* $(e).datepicker({
changeMonth:true,
changeYear:true
}); */
}
}
}
,{name:"DEPT_ID" ,index:"DEPT_ID" , width:100, align:"center", hidden:false, sortable:false, editable: true
,edittype :"select"
,formatter :"select"
,editoptions:{
value: gridDeptselect
,dataEvents: [
{type:"change", fn:function(e) {
var row = $(e.target).closest("tr.jqgrow");
gridFn.getStep2Cd(this);
}}
]
,dataInit: function(e){
e.style.width = "92%";
e.style.fontSize = 13;
}
}
}
,{name:"REG_USER_ID" ,index:"REG_USER_ID" , width:100, align:"center", hidden:false, sortable:false, editable: true
,edittype :"select"
,formatter :"select"
,editoptions:{
value: gridUserselect
,dataInit: function(e){
e.style.width = "92%";
e.style.fontSize = 13;
}
}
}
,{name:"BUS_CD" ,index:"BUS_CD" , width:100, align:"center", hidden:false, sortable:false, editable: true
,edittype :"select"
,formatter :"select"
,editoptions:{
value: gridDivisionCd
,dataInit: function(e){
e.style.width = "92%";
e.style.fontSize = 13;
}
}
}
,{name:"TITLE" ,index:"TITLE" , width:375, align:"center", hidden:false, sortable:false, editable: true
,editoptions:{
dataInit: function(e){
e.style.width = "92%";
e.style.fontSize = 13;
}
}
}
,{name:"TRIP_CD" ,index:"TRIP_CD" , width:100, align:"center", hidden:false, sortable:false, editable: true
,edittype :"select"
,formatter :"select"
,editoptions:{
value: gridFactoryCd
,dataInit: function(e){
e.style.width = "92%";
e.style.fontSize = 13;
}
}
}
,{name:"COMPANY_CD" ,index:"COMPANY_CD" , width:150, align:"center", hidden:false, sortable:false, editable: true
,edittype :"select"
,formatter :"select"
,editoptions:{
value: gridCustomerCd
,dataInit: function(e){
e.style.width = "92%";
e.style.textAlign = "right";
e.style.fontSize = 13;
}
}
}
,{name:"WORK_TIME" ,index:"WORK_TIME" , width:70, align:"center", hidden:false, sortable:false, editable: true
,formatter: "integer"
,editoptions:{
dataInit: function(e){
e.style.textAlign = "center";
e.style.fontSize = 13;
},
dataEvents: [
{
type:"change", fn:function(e) {
//gridFn.timeSummary(this);
}
,type:"click", fn:function(e) {
var v = $(e.target).val();
if(v == 0){
$(e.target).val("");
}
}
}
]
}
}
,{name:"WRITER" ,index:"WRITER", width: 0, align:"center", hidden: true, sortable:false, editable:false}
/* ,{name:"ADD_WORK_TIME" ,index:"ADD_WORK_TIME" , width:100, align:"right", hidden:false, sortable:false, editable: true
,formatter: "integer"
,editoptions:{
dataInit: function(e){
e.style.textAlign = "right";
e.style.fontSize = 13;
}
}
} */
]
,rownumbers : true
,viewrecords : true
,height : 420
,multiselect : true
,shrinkToFit : false
,autowidth : true
,sortable : false
,rowNum : 1000
,forceFit : false //컬럼의 width를 변화시킬때 그리드의 width를 고정 여부
,jsonReader : {repeatitems: false}
,mtype :"POST"
,loadComplete: function(){}
});
//gridFn.search();
//gridFn.addRow();
if("${insertVal}" == 'regist'){
setTimeout(function() {
gridFn.addRowAuto();
}, 1000);
}else{
gridFn.search();
}
});
</script>
<script>
var gridFn = {
addRow : function() {
var newId = grid.getGridParam("reccount")+1;
var addData = {
"TIME_SHEET_OBJID": "${objId}",
"SYSTEM_REG_USER_ID" : "${writer}",
"WORK_DATE" : "",
"PROJECTNO" : "",
"DEPT_ID" : "",
"REG_USER_ID" : "",
"BUS_CD" : "",
"TITLE" : "",
"TRIP_CD" : "",
"COMPANY_CD" : "",
"WORK_TIME" : "",
};
grid.addRowData(newId, addData);
grid.jqGrid("editRow", newId);
}
,addRowAuto : function() {
for(var i = 0; i < 10; i++){
var newId = grid.getGridParam("reccount")+1;
var addData = {
"TIME_SHEET_OBJID": "${objId}",
"SYSTEM_REG_USER_ID" : "${writer}",
"WORK_DATE" : "",
"PROJECTNO" : "",
"DEPT_ID" : "",
"REG_USER_ID" : "",
"BUS_CD" : "",
"TITLE" : "",
"TRIP_CD" : "",
"COMPANY_CD" : "",
"WORK_TIME" : "",
};
grid.addRowData(newId, addData);
grid.jqGrid("editRow", newId);
}
//grid.jqGrid("setSelection","1",true);
}
,getStep2Cd : function(obj){ //2단계연결코드 재설정
var gridUserselectArr = $.parseJSON($("#gridUserselect").val());
var targetObj = $("#"+$(obj).attr("rowid")+"_REG_USER_ID");
targetObj.empty(); //초기화
targetObj.append("<option value=\"\">선택</option>");
for(var i=0; i<gridUserselectArr.length; i++){
cd = gridUserselectArr[i];
if(cd["DEPT_CODE_ID"]==obj.value){
targetObj.append("<option role=\"option\" value=\""+cd["CODE_ID"]+"\">"+cd["CODE_NAME"]+"</option>");
}
};
if($("#"+$(obj).attr("rowid")+"_DEPT_ID").val() == "MM"){
targetObj.append("<option role=\"option\" value=\""+ "OUT1" +"\">"+"외주인A"+"</option>");
targetObj.append("<option role=\"option\" value=\""+ "OUT2" +"\">"+"외주인B"+"</option>");
}
}
,search : function() {
grid.setGridParam({
url: "/costMgmt/laborCostTimeSheetDetailList.do"
,datatype : "json"
,postData : {"objId" : "${objId}","dpet_val" : "${dpet_val}","regUserId" : "${regUserId}","outVal":"${outVal}"}
,loadComplete : function(data) {
//gridFn.timeSummary();
//gridFn.setExpSortCd();
//console.log(data);
for(var i = 0; data.rows.length > i; i++){
if("${writer}" != $("#"+(i+1)+"_SYSTEM_REG_USER_ID" ).val()){
$("#"+(i+1)+"_TIME_SHEET_OBJID" ).attr('disabled', 'disabled');
$("#"+(i+1)+"_SYSTEM_REG_USER_ID" ).attr('disabled', 'disabled');
$("#"+(i+1)+"_WORK_DATE" ).attr('disabled', 'disabled');
$("#"+(i+1)+"_PROJECTNO" ).attr('disabled', 'disabled');
$("#"+(i+1)+"_DEPT_ID" ).attr('disabled', 'disabled');
$("#"+(i+1)+"_REG_USER_ID" ).attr('disabled', 'disabled');
$("#"+(i+1)+"_BUS_CD" ).attr('disabled', 'disabled');
$("#"+(i+1)+"_TITLE" ).attr('disabled', 'disabled');
$("#"+(i+1)+"_TRIP_CD" ).attr('disabled', 'disabled');
$("#"+(i+1)+"_COMPANY_CD" ).attr('disabled', 'disabled');
$("#"+(i+1)+"_WORK_TIME" ).attr('disabled', 'disabled');
}
}
gridFn.setAddWorkTime();
}
,gridComplete : function() {
gridFn.opennEdit(); //수정가능
}
}).trigger("reloadGrid");
grid.setGridParam({url: "", datatype : "local"});
}
,opennEdit : function() { //수정가능
var ids = grid.jqGrid("getDataIDs");
for (var i = 0; i < ids.length; i++) {
grid.jqGrid("editRow",ids[i]);
}
}
,closeEdit2 : function() { //수정불가
var ids = grid.jqGrid("getDataIDs");
for (var i = 0; i < ids.length; i++) {
var num = i+1;
var wtCnt =$("#"+num+"_PROJECTNO option:selected").val();
if(wtCnt != ""){
grid.jqGrid("saveRow", ids[i], /*successFunction*/null, /*url*/"clientArray"/*, extraparam, aftersavefunc,errorfunc, afterrestorefunc*/);
}
}
}
,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*/);
}
}
,timeSummary: function(e){ //자동합계
var targetId = e.id;
var num = targetId.substring(0,1);
var PROJECTNO = $("#"+num+"_PROJECTNO option:selected").val();
var REG_USER_ID = $("#"+num+"_REG_USER_ID option:selected").val();
var DEPT_ID = $("#"+num+"_DEPT_ID option:selected").val();
var WORK_TIME = $("input[id="+num+"_WORK_TIME]").val();
$.ajax({
url:"/costMgmt/getTimeSheetAddworkTime.do"
,type:"POST"
,data: {"PROJECTNO":PROJECTNO,"REG_USER_ID":REG_USER_ID,"DEPT_ID":DEPT_ID}
,dataType:"json"
,success:function(data){
var ADD_WORK_TIME = data.rows[0].ADD_WORK_TIME;
if("${insertVal}" == 'regist'){
var all = parseInt(WORK_TIME) + parseInt(ADD_WORK_TIME);
} else {
var all = parseInt(WORK_TIME);
}
$("input[id="+num+"_ADD_WORK_TIME]").val(parseInt(all));
}
,error: function(jqxhr, status, error){
}
});
}
,setAddWorkTime: function(){
var add = 0;
$("input[id*=WORK_TIME]").each(function(){
add += Number($(this).val());
});
if("${insertVal}" != 'regist'){
$(".add_time").text("누적시간: "+add);
}
},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--){
if(grid.jqGrid('getCell', selectedRowIds[i], 'WRITER')=="${connectUserId}"){
//Swal.fire(grid.jqGrid('getCell', selectedRowIds[i], 'TIME_SHEET_OBJID'));
fn_del(grid.jqGrid('getCell', selectedRowIds[i], 'TIME_SHEET_OBJID'));
grid.delRowData(selectedRowIds[i]);
}
if(grid.jqGrid('getCell', selectedRowIds[i], 'WRITER')==""){
grid.delRowData(selectedRowIds[i]);
}
if(selectedRowIds.length==i){
if(typeof opener.fn_search =="function"){ opener.fn_search() };
}
}
}
}
function fn_save(){
if(fnc_valitate("form1")){
//console.log(encodeURIComponent(JSON.stringify(grid.getRowData())));
//Swal.fire(encodeURIComponent(JSON.stringify(grid.getRowData())));
if(confirm("저장 하시겠습니까?")){
gridFn.closeEdit();
$.ajax({
url:"/costMgmt/timeSheetListSave.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){
}
});
}
}
}
function fn_del(objId){
$.ajax({
url:"/costMgmt/timeSheetListDelete.do"
,type:"POST"
,data: {"TIME_SHEET_OBJID":objId}
,dataType:"json"
,success:function(data){
}
,error: function(jqxhr, status, error){
}
});
}
</script>
</head>
<body>
<form name="form1" id="form1" action="" method="post">
<input type="hidden" name="objId" id="objId">
<div sytle="">
<section>
<div class="plm_menu_name">
<h2>
<span>원가관리_Time Sheet</span>
</h2>
</div></section>
<section class="contents_page_basic_margin">
<div class="btn_wrap" style="margin-top:10px">
<span style="font-size:13px; color:red; text-align: left;" class="add_time"></span>
<div class="plm_btn_wrap">
<input type="button" class="plm_btns" value="저장" onclick="fn_save();">
<input type="button" class="plm_btns" value="삭제" id="btnDel">
<input type="button" value="닫기" id="btnClose" class="plm_btns">
</div>
</div>
<div id="plm_table_wrap1" style="padding:0;">
<div style="">
<div style="height: 250px;">
<table id="timeSheetPopupGrid"></table>
</div>
</div>
</div>
</section>
</div>
<input type="hidden" name="objId" id="objId" value="${objId}">
<textarea style="width:0px; height:0px; visibility: hidden;" id="gridProjectNo">${code_map.gridProjectNo}</textarea>
<textarea style="width:0px; height:0px; visibility: hidden;" id="gridDeptselect">${code_map.gridDeptselect}</textarea>
<textarea style="width:0px; height:0px; visibility: hidden;" id="gridDivisionCd">${code_map.gridDivisionCd}</textarea>
<textarea style="width:0px; height:0px; visibility: hidden;" id="gridFactoryCd">${code_map.gridFactoryCd}</textarea>
<textarea style="width:0px; height:0px; visibility: hidden;" id="gridCustomerCd">${code_map.gridCustomerCd}</textarea>
<textarea style="width:0px; height:0px; visibility: hidden;" id="gridUserselect">${code_map.gridUserselect}</textarea>
</form>
</body>
</html>