<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="im" uri="http://www.intra-mart.co.jp/taglib/im-tenant" %>
<%@ taglib prefix="k" uri="http://kaiden.slcs.co.jp/taglib/v2/ui" %>
<%@ taglib prefix="imui" uri="http://www.intra-mart.co.jp/taglib/imui" %>
<%@ page import="jp.co.slcs.kaide.vn2.base.foundation.util.PropertyJspUtil"%>
<%@ page import="jp.co.slcs.kaiden.v2.base.foundation.conf.BaseProp" %>
<%@ page import="jp.co.slcs.kaiden.v2.product_labormgr.foundation.conf.ProductLabormgrProp" %>
<%@ page import="jp.co.slcs.kaiden.v2.base.foundation.conf.ViewMode" %>
<%-- 遅刻早退時間チェックガジェット --%>
<c:set var="gadgetClass">${param.gadgetClass}</c:set>
<c:set var="gadgetVariation">${param.gadgetVariation}</c:set>
<c:set var="gadgetInstance">${param.gadgetInstance}</c:set>
<c:set var="gadgetId">${gadgetClass}_${gadgetVariation}_${gadgetInstance}</c:set>
<c:set var="gadgetTitle">${param.gadgetName}</c:set>
<c:set var="accessUrl">kaiden/gadget/klsLateEarlyPeriodTimeV01</c:set>
<c:set var="sumCheckBlockId">sumCheckList</c:set>
<c:set var="sumCheckDialogId">sumCheckContent</c:set>
<%-- 設定等 --%>
<c:set var="wsCategoryCd">${param.wsCategoryCd}</c:set>
<c:set var="companyCd">${param.companyCd}</c:set>
<c:set var="wsAgreementCd">${param.wsAgreementCd}</c:set>
<c:set var="openApplyDate">${param.openApplyDate}</c:set>
<c:set var="termCd">${param.termCd}</c:set>
<c:set var="inputMode">${param.inputMode}</c:set>
<c:set var="sumDiv">${param.sumDiv}</c:set>
<c:set var="checkRequiredFlag">${param.checkRequiredFlag}</c:set>
<c:set var="debug">${param.debug}</c:set>
<%-- 画面固有バリデーションID --%>
<c:set var="validTimeMax4Caution1">k_${gadgetId}TimeMax4Caution1</c:set>
<c:set var="validTimeMax4Caution2">k_${gadgetId}TimeMax4Caution2</c:set>
<%-- 画面表示モード --%>
<c:set var="input"><%= ViewMode.INPUT.getCode() %></c:set>
<c:set var="view"><%= ViewMode.VIEW.getCode() %></c:set>
<%-- サーフェス --%>
<c:set var="surfaceCheckRequiredFlag"><%= ProductLabormgrProp.S.WsAgreement.SUM_CHECK_REQUIRED %></c:set>
<c:set var="surfaceCriteriaValue"><%= ProductLabormgrProp.S.WsAgreement.OVER_TIME_LIMIT %></c:set>
<c:set var="surfaceCaution1"><%= ProductLabormgrProp.S.CAUTION_1 %></c:set>
<c:set var="surfaceLevel1"><%= ProductLabormgrProp.S.LEVEL_1 %></c:set>
<c:set var="surfaceCaution2"><%= ProductLabormgrProp.S.CAUTION_2 %></c:set>
<c:set var="surfaceLevel2"><%= ProductLabormgrProp.S.LEVEL_2 %></c:set>
<c:set var="surfaceCaution3"><%= ProductLabormgrProp.S.CAUTION_3 %></c:set>
<c:set var="surfaceLevel3"><%= ProductLabormgrProp.S.LEVEL_3 %></c:set>
<c:set var="surfaceCaution4"><%= ProductLabormgrProp.S.CAUTION_4 %></c:set>
<c:set var="surfaceLevel4"><%= ProductLabormgrProp.S.LEVEL_4%></c:set>
<%-- 集計チェック設定 --%>
<%-- 保存 --%>
<c:set var="surfaceRefreshSumCheck"><%= BaseProp.S.SAVE %></c:set>
<%-- チェックを有効にします。 (文字列化済み) --%>
<c:set var="surfaceCheckRequiredFlagOn_text"><%= PropertyJspUtil.getSurface(ProductLabormgrProp.S.WsAgreement.CHECK_REQUIRED_FLAG_ON) %></c:set>
<%-- チェックを無効にします。(文字列化済み) --%>
<c:set var="surfaceCheckRequiredFlagOff_text"><%= PropertyJspUtil.getSurface(ProductLabormgrProp.S.WsAgreement.CHECK_REQUIRED_FLAG_OFF) %></c:set>
<%-- 集計チェックの内容を表示します。 (文字列化済み) --%>
<c:set var="surfaceSumCheckContentInfo_text"><%= PropertyJspUtil.getSurface(ProductLabormgrProp.S.WsAgreement.SUM_CHECK_CONTENT_INFO) %></c:set>
<%-- 有効(文字列化済み) --%>
<c:set var="surfaceEnabled_text"><%= PropertyJspUtil.getSurface(BaseProp.S.ENABLED) %></c:set>
<%-- 無効 (文字列化済み) --%>
<c:set var="surfaceDisabled_text"><%= PropertyJspUtil.getSurface(BaseProp.S.DISABLED) %></c:set>
<%-- ダイアログボタン --%>
<%-- 閉じる (文字列化済み) --%>
<c:set var="surfaceReturnlist_text"><%=PropertyJspUtil.getSurface(BaseProp.S.CLOSE)%></c:set>
<%-- メッセージ --%>
<%-- 保存します。 --%>
<c:set var="messageSaveConfirm"><%=PropertyJspUtil.getMessage(BaseProp.M.W0012)%></c:set>
<%-- "{0}"以下で入力してください。 --%>
<c:set var="validMsg_timeMax"><%= PropertyJspUtil.getMessage(BaseProp.M.W0226) %></c:set>
<%-- バリデーション --%>
<c:set var="validCriteriaValue_1_setings">{k_time:[''], k_${gadgetId}TimeMax4Caution1:['criteriaValue|2', 'criteriaValue|3', 'criteriaValue|4'], k_timeMax2:['1000:00']}</c:set>
<c:set var="validCriteriaValue_2_setings">{k_time:[''], k_${gadgetId}TimeMax4Caution2:['criteriaValue|3', 'criteriaValue|4'], k_timeMax2:['1000:00']}</c:set>
<c:set var="validCriteriaValue_3_setings">{k_time:[''], k_timeMax:['criteriaValue|4'], k_timeMax2:['1000:00']}</c:set>
<c:set var="validCriteriaValue_4_setings">{k_time:[''], k_timeMax2:['1000:00']}</c:set>
<k:gadgetContainer gadgetId="${gadgetId}"
gadgetClass="${gadgetClass}"
gadgetVariation="${gadgetVariation}"
gadgetInstance="${gadgetInstance}"
gadgetTitle="${gadgetTitle}"
hideGadgetTitle="true">
<form id="gadget_form" onsubmit="return false;">
<k:blockContainer id="${sumCheckBlockId}" style="padding:0px 20px;">
<table class="imui-table-mixed" style="table-layout:fixed;margin-bottom:0.5em;">
<colgroup>
<col style="width:100%;"/>
</colgroup>
<tr>
<th>
<k:surface name="checkRequiredFlagOn" surfaceKey="" class="kaiden-ui-wsA_sumCheck kaiden-ui-icon-enable16 mr-5 hidden kaiden-ui-wsA_sumCheck-label" title="${surfaceCheckRequiredFlagOff_text}"/>
<k:surface name="checkRequiredFlagOff" surfaceKey="" class="kaiden-ui-wsA_sumCheck kaiden-ui-icon-disable16 mr-5 hidden kaiden-ui-wsA_sumCheck-label" title="${surfaceCheckRequiredFlagOn_text}"/>
<k:hidden name="checkRequiredFlag" mode="${inputMode}"/>
<k:surface surfaceKey="${gadgetTitle}"/>
<k:a name="checkContentLink" class="im-ui-icon-common-16-question mr-5 float-R" mode="0" title="${surfaceSumCheckContentInfo_text}"/>
<k:hidden name="parameterDataId" mode="${inputMode}"/>
</th>
</tr>
<tr class="sumCheckParams" style="display:none;">
<td>
<div style="margin-left:50px">
<table style="width:100%">
<colgroup>
<col />
<col style="width:150px;"/>
</colgroup>
<tr>
<td>
<table class="imui-table" style="margin-bottom:0.5em;">
<colgroup>
<col style="width:200px"/>
<col style=""/>
</colgroup>
<thead>
<tr>
<th></th>
<th><span class="kaiden-ui-icon-warn-I16 mr-5 valign-M"></span><k:surface surfaceKey="${surfaceLevel1}" class="valign-M"/></th>
<th><span class="kaiden-ui-icon-warn-II16 mr-5 valign-M"></span><k:surface surfaceKey="${surfaceLevel2}" class="valign-M"/></th>
<th><span class="kaiden-ui-icon-warn-III16 mr-5 valign-M"></span><k:surface surfaceKey="${surfaceLevel3}" class="valign-M"/></th>
<th><span class="kaiden-ui-icon-warn-IV16 mr-5 valign-M"></span><k:surface surfaceKey="${surfaceLevel4}" class="valign-M"/></th>
</tr>
</thead>
<tbody>
<tr>
<th><k:surface surfaceKey="${surfaceCriteriaValue}"/></th>
<td>
<k:time name="criteriaValue|1"
mode="${inputMode}"
surfaceKey="${surfaceCaution1}"
validationSettingsKlsDaily36LimitV01="${validCriteriaValue_1_setings}"
/>
</td>
<td>
<k:time name="criteriaValue|2"
mode="${inputMode}"
surfaceKey="${surfaceCaution2}"
validationSettingsKlsDaily36LimitV01="${validCriteriaValue_2_setings}"
/>
</td>
<td>
<k:time name="criteriaValue|3"
mode="${inputMode}"
surfaceKey="${surfaceCaution3}"
validationSettingsKlsDaily36LimitV01="${validCriteriaValue_3_setings}"
/>
</td>
<td>
<k:time name="criteriaValue|4"
mode="${inputMode}"
surfaceKey="${surfaceCaution4}"
validationSettingsKlsDaily36LimitV01="${validCriteriaValue_4_setings}"
/>
</td>
</tr>
</tbody>
</table>
</td>
<td class="align-C valign-M">
<k:button mode="${inputMode}" class="imui-small-button" value="${surfaceRefreshSumCheck}" name="settings"/>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</k:blockContainer>
</form>
<k:dialog title="${gadgetTitle}" id="${sumCheckDialogId}">
<div class="imui-box-supplementation">
<span class="im-ui-icon-common-24-question mr-5" ></span>
<k:surface name="checkContent" surfaceKey="" style="display:inline-block;vertical-align:top;"/>
</div>
</k:dialog>
</k:gadgetContainer>
<script type="text/javascript">
jQuery(function($) {
var eventMan = KAIDEN.getGadget("${gadgetId}").eventManager;
var blockA = KAIDEN.getGadget("${gadgetId}").blockAccessors["${sumCheckBlockId}"]
, dialog = KAIDEN.getGadget("${gadgetId}").dialogs["${sumCheckDialogId}"]
, dialogA = KAIDEN.getGadget("${gadgetId}").blockAccessors["${sumCheckDialogId}"];
//ガジェット初期設定
KAIDEN.getGadget("${gadgetId}").variable.loadSumCheckSetting = function() {
var ajax = KAIDEN.Ajax()
, criteria = {}
criteria.wsCategoryCd = "${wsCategoryCd}";
criteria.companyCd = "${companyCd}";
criteria.wsAgreementCd = "${wsAgreementCd}";
criteria.openApplyDate = "${openApplyDate}";
criteria.termCd = "${termCd}";
criteria.gadgetClass = "${gadgetClass}";
criteria.gadgetVariation = "${gadgetVariation}";
criteria.gadgetInstance = "${gadgetInstance}";
ajax.postSyncAuto("${accessUrl}/loadSumCheck", criteria, function(returnData) {
var sumCheckData = returnData.${sumDiv}[0];
//チェック利用の設定
blockA("checkRequiredFlag").setValue(sumCheckData.checkRequiredFlag);
if ("1" === sumCheckData.checkRequiredFlag) {
blockA().elem().find("tr.sumCheckParams").show("fast");
blockA("checkRequiredFlagOn").removeClass("hidden");
blockA("checkRequiredFlagOff").addClass("hidden");
} else {
blockA().elem().find("tr.sumCheckParams").hide("fast");
blockA("checkRequiredFlagOn").addClass("hidden");
blockA("checkRequiredFlagOff").removeClass("hidden");
}
blockA("parameterDataId").setValue(sumCheckData.paramDataId);
dialogA("checkContent").setValue(KAIDEN.Util.escapeHTML(sumCheckData.checkContent));
//重要度ごとのパラメータ値
var mildParam = sumCheckData.param.borders.MILD
, severeParam = sumCheckData.param.borders.SEVERE
, wsParam = sumCheckData.param.borders.WS
, violationParam = sumCheckData.param.borders.VIOLATION
//Lv.1
for (var key in mildParam) {
switch(blockA(key + "|1").getType()) {
case "time":
blockA(key + "|1").setMinutes(mildParam[key].paramValue);
break;
case "timelabel":
blockA(key + "|1").setMinutes(mildParam[key].paramValue);
break;
default:
blockA(key + "|1").setValueIgnore(mildParam[key].paramValue);
break;
}
}
//Lv.2
for (var key in severeParam) {
switch(blockA(key + "|2").getType()) {
case "time":
blockA(key + "|2").setMinutes(severeParam[key].paramValue);
break;
case "timelabel":
blockA(key + "|2").setMinutes(severeParam[key].paramValue);
break;
default:
blockA(key + "|2").setValueIgnore(severeParam[key].paramValue);
break;
}
}
//Lv.3
for (var key in wsParam) {
switch(blockA(key + "|3").getType()) {
case "time":
blockA(key + "|3").setMinutes(wsParam[key].paramValue);
break;
case "timelabel":
blockA(key + "|3").setMinutes(wsParam[key].paramValue);
break;
default:
blockA(key + "|3").setValueIgnore(wsParam[key].paramValue);
break;
}
}
//Lv.4
for (var key in violationParam) {
switch(blockA(key + "|4").getType()) {
case "time":
blockA(key + "|4").setMinutes(violationParam[key].paramValue);
break;
case "timelabel":
blockA(key + "|4").setMinutes(violationParam[key].paramValue);
break;
default:
blockA(key + "|4").setValueIgnore(violationParam[key].paramValue);
break;
}
}
});
};
// ............................................................................................................
// 内部イベント
// ............................................................................................................
if ("${input}" === "${inputMode}") {
//チェックボックスON/OFFイベント
blockA().elem(true).find(".kaiden-ui-wsA_sumCheck").on("click", function(e) {
if ("1" === blockA("checkRequiredFlag").getValue()) {
blockA("checkRequiredFlag").setValue("0");
} else {
blockA("checkRequiredFlag").setValue("1");
}
var ajax = KAIDEN.Ajax()
, data = {}
, wsUseSumCheck = {}
, updateData = {};
wsUseSumCheck.wsCategoryCd = "${wsCategoryCd}";
wsUseSumCheck.companyCd = "${companyCd}";
wsUseSumCheck.wsAgreementCd = "${wsAgreementCd}";
wsUseSumCheck.searchCriteriaDate = "${openApplyDate}";
wsUseSumCheck.gadgetClass = "${gadgetClass}";
wsUseSumCheck.gadgetVariation = "${gadgetVariation}";
wsUseSumCheck.gadgetInstance = "${gadgetInstance}";
wsUseSumCheck.checkRequiredFlag = blockA("checkRequiredFlag").getValue();
wsUseSumCheck.parameterDataId = blockA("parameterDataId").getValue();
updateData = KAIDEN.gadgetMan.getDataSet("${gadgetId}");
updateData.wsUseSumCheck = wsUseSumCheck
data.updateDataJson = KAIDEN.Util.stringifyJSON(updateData);
//勤務体系情報より、更新カウンタを要求
data.wsaRenewCnt = KAIDEN.gadgetMan.execPull("claimWsaBasicInfo", undefined, "${gadgetId}")[0].result.renewCnt;
data.termCd = "${termCd}";
data.wsaTermRenewCnt = KAIDEN.gadgetMan.execPull("claimWsaTermInfo", undefined, "${gadgetId}")[0].result.renewCnt;
ajax.postSyncAuto("${accessUrl}/renewCheckFlag", data, function(returnData) {
KAIDEN.getGadget("${gadgetId}").variable.loadSumCheckSetting(); //設定内容を検索
});
e.stopPropagation(); //hrefの動作を抑止
});
} else {
blockA("checkRequiredFlagOn").elem(true).attr("title", "${surfaceEnabled_text}");
blockA("checkRequiredFlagOff").elem(true).attr("title", "${surfaceDisabled_text}");
}
//チェック内容リンク押下イベント
blockA("checkContentLink").elem(true).on("click", function(e) {
//閉じるボタン
dialog.addButton("${surfaceReturnlist_text}", function() {
dialog.close();
});
dialog.open();
e.stopPropagation(); //hrefの動作を抑止
});
//チェック設定リンク押下イベント
blockA("settings").elem(true).on("click", function(e) {
kaidenErrorDisplay("hide");
var ajax = KAIDEN.Ajax()
, data = {}
, wsUseSumCheck = {}
, updateData = {};
if (!KAIDEN.gadgetMan.preSingleValidate()) {return}; //単項目チェック前
if ("${debug}" || KAIDEN.gadgetMan.validate("settingsklsdaily36limitv01", false)) { //バリデーション
imuiConfirm("${messageSaveConfirm}", "", function() {
wsUseSumCheck.wsCategoryCd = "${wsCategoryCd}";
wsUseSumCheck.companyCd = "${companyCd}";
wsUseSumCheck.wsAgreementCd = "${wsAgreementCd}";
wsUseSumCheck.searchCriteriaDate = "${openApplyDate}";
wsUseSumCheck.gadgetClass = "${gadgetClass}";
wsUseSumCheck.gadgetVariation = "${gadgetVariation}";
wsUseSumCheck.gadgetInstance = "${gadgetInstance}";
wsUseSumCheck.checkRequiredFlag = blockA("checkRequiredFlag").getValue();
updateData = KAIDEN.gadgetMan.getDataSet("${gadgetId}");
updateData.wsUseSumCheck = wsUseSumCheck
data.updateDataJson = KAIDEN.Util.stringifyJSON(updateData);
//勤務体系情報より、更新カウンタを要求
data.wsaRenewCnt = KAIDEN.gadgetMan.execPull("claimWsaBasicInfo", undefined, "${gadgetId}")[0].result.renewCnt;
data.termCd = "${termCd}";
data.wsaTermRenewCnt = KAIDEN.gadgetMan.execPull("claimWsaTermInfo", undefined, "${gadgetId}")[0].result.renewCnt;
ajax.postSyncAuto("${accessUrl}/renewParamValues", data, function(returnData) {
KAIDEN.getGadget("${gadgetId}").variable.loadSumCheckSetting(); //設定内容を検索
});
});
} else {
kaidenErrorDisplay("show");
}
});
KAIDEN.getGadget("${gadgetId}").variable.loadSumCheckSetting(); //設定内容を検索
// ............................................................................................................
// その他チェック
// ............................................................................................................
/**
* 注意レベル1最大時刻チェック.
* <p>値 < 注意レベル2 < 注意レベル3 < 注意レベル4 を許容</p>
* @param value 値
* @param element 対象エレメント
* @param param パラメータ(配列)
*/
KAIDEN.validator.addValidateMethod("${validTimeMax4Caution1}", function(/**String*/value, /**HtmlElement*/element, /**array*/param) {
var level2 = KAIDEN.gadgetMan.getNeighboringAccessor(element, param[0]).getValue();
var level3 = KAIDEN.gadgetMan.getNeighboringAccessor(element, param[1]).getValue();
var level4 = KAIDEN.gadgetMan.getNeighboringAccessor(element, param[2]).getValue();
if (level2) {
if (level2 <= value) {
var arg = [level2];
return KAIDEN.validator.validateFunction("k_timeMax")(value, element, arg);
}
}
if (level3) {
if (level3 <= value) {
var arg = [level3];
return KAIDEN.validator.validateFunction("k_timeMax")(value, element, arg);
}
}
if (level4) {
if (level4 <= value) {
var arg = [level4];
return KAIDEN.validator.validateFunction("k_timeMax")(value, element, arg);
}
}
return true;
});
KAIDEN.validator.setInvalidMessage("${validTimeMax4Caution1}",function(arg, element) {
var msgParam = []
$.each(arg, function(index, value) {
if (msgParam [0]) {
msgParam [0] = msgParam [0] + " " + KAIDEN.gadgetMan.getNeighboringAccessor(element, arg[index]).elem().attr("data-kaiden-surface")
} else {
msgParam [0] = KAIDEN.gadgetMan.getNeighboringAccessor(element, arg[index]).elem().attr("data-kaiden-surface")
}
});
return KAIDEN.validator.formatMessage("${validMsg_timeMax}", element, msgParam);
});
/**
* 注意レベル2最大時刻チェック.
* <p>値 < 注意レベル3 < 注意レベル4 を許容</p>
* @param value 値
* @param element 対象エレメント
* @param param パラメータ(配列)
*/
KAIDEN.validator.addValidateMethod("${validTimeMax4Caution2}", function(/**String*/value, /**HtmlElement*/element, /**array*/param) {
var level3 = KAIDEN.gadgetMan.getNeighboringAccessor(element, param[0]).getValue();
var level4 = KAIDEN.gadgetMan.getNeighboringAccessor(element, param[1]).getValue();
if (level3) {
if (level3 <= value) {
var arg = [level3];
return KAIDEN.validator.validateFunction("k_timeMax")(value, element, arg);
}
}
if (level4) {
if (level4 <= value) {
var arg = [level4];
return KAIDEN.validator.validateFunction("k_timeMax")(value, element, arg);
}
}
return true;
});
KAIDEN.validator.setInvalidMessage("${validTimeMax4Caution2}",function(arg, element) {
var msgParam = []
$.each(arg, function(index, value) {
if (msgParam [0]) {
msgParam [0] = msgParam [0] + " " + KAIDEN.gadgetMan.getNeighboringAccessor(element, arg[index]).elem().attr("data-kaiden-surface")
} else {
msgParam [0] = KAIDEN.gadgetMan.getNeighboringAccessor(element, arg[index]).elem().attr("data-kaiden-surface")
}
});
return KAIDEN.validator.formatMessage("${validMsg_timeMax}", element, msgParam);
});
});
</script>