/**
* シフト提出
*/
$(function () {
$('ul.shift-input li.lp-shift-level-none').on("click", function () {
setShift($(this));
});
$('ul.shift-input li.lp-shift-level-work').on("click", function () {
setShift($(this));
});
$('button#lp-shift-on-off').on("click", function () {
setShiftOnOff($(this));
});
});
function setShift(obj) {
// シフトレベルクリック 待機開始時間を設定
let date = obj.attr('data-date');
let hour = obj.attr('data-hour');
let intHour = parseInt(obj.attr('data-hour'));
let lastTrain = $('input[name="last_train_time[' + date + ']"]').val();
let intLastTrain = parseInt(lastTrain.replace(/:/g, ''));
if (intLastTrain > 1200 && intLastTrain < (intHour * 100)) {
alert('終電より遅いシフトは、提出できません。');
return;
}
$('li[data-date='+ date +']').each(function () {
// アイコン付け替え
let intLiHour = parseInt($(this).attr('data-hour'));
if ($(this).hasClass('lp-shift-level-locked')) {
return;
}
let setLevel = function (eachObj, level, removeLevel) {
eachObj.removeClass('lp-shift-level-' + removeLevel);
eachObj.addClass('lp-shift-level-' + level);
eachObj.find('span').removeClass('lp-shift-level-' + removeLevel);
eachObj.find('span').addClass('lp-shift-level-' + level);
};
intLiHour >= intHour ? setLevel($(this), 'work', 'none') : setLevel($(this), 'none', 'work');
});
$('input[name="stand_by_time[' + date + ']"]').val(hour + ':00');
}
function setShiftOnOff(obj) {
// 出勤可不可の設定
let date = obj.attr('data-date');
let hour = obj.attr('data-hour');
let last = obj.attr('data-last');
let on = obj.attr('data-on');
let off = obj.attr('data-off');
let one_week = obj.attr('data-week');
let off_day = obj.attr('data-offable');
// ボタンを押したときの動作
if (obj.hasClass('btn btn-secondary btn-sm') | obj.hasClass('btn btn-danger btn-sm') | (obj.hasClass('btn btn-info btn-sm') & !one_week & !off_day)){
// 未提出or出勤不可→終日(1週間以内の場合は出勤不可にできない)
obj.removeClass('btn btn-secondary btn-sm');
obj.removeClass('btn btn-danger btn-sm');
obj.removeClass('btn btn-info btn-sm');
obj.addClass('btn btn-primary btn-sm');
$('button[name="shift_on_off[' + date + ']"]').html("終日</br>可");
$('input[name="stand_by_time[' + date + ']"]').attr('type', 'hidden');
$('input[name="last_train_time[' + date + ']"]').attr('type', 'hidden');
$('input[name="stand_by_time[' + date + ']"]').val(hour + ':00');
$('input[name="last_train_time[' + date + ']"]').val(last + ':00');
$('input[name="shift_on_off[' + date + ']"]').val(on);
$('form#lp-action-form').find('div[name="shift_all_stand_by[' + date + ']"]').show();
$('form#lp-action-form').find('div[name="shift_all_last_train[' + date + ']"]').show();
}else if (obj.hasClass('btn btn-primary btn-sm')){
// 終日可→時間入力
obj.removeClass('btn btn-primary btn-sm');
obj.addClass('btn btn-info btn-sm');
$('button[name="shift_on_off[' + date + ']"]').html("時間</br>入力");
$('input[name="stand_by_time[' + date + ']"]').attr('type', 'time');
$('input[name="last_train_time[' + date + ']"]').attr('type', 'time');
$('input[name="stand_by_time[' + date + ']"]').val(hour + ':00');
$('input[name="last_train_time[' + date + ']"]').val(hour + ':00');
$('input[name="shift_on_off[' + date + ']"]').val(on);
$('form#lp-action-form').find('div[name="shift_all_stand_by[' + date + ']"]').hide();
$('form#lp-action-form').find('div[name="shift_all_last_train[' + date + ']"]').hide();
} else {
// 時間入力→出勤不可
obj.removeClass('btn btn-info btn-sm');
obj.addClass('btn btn-danger btn-sm');
$('#input_time[' + date + ']').hide();
$('button[name="shift_on_off[' + date + ']"]').html("出勤</br>不可");
$('input[name="stand_by_time[' + date + ']"]').attr('type', 'hidden');
$('input[name="last_train_time[' + date + ']"]').attr('type', 'hidden');
$('input[name="stand_by_time[' + date + ']"]').val(hour + ':00');
$('input[name="last_train_time[' + date + ']"]').val(hour + ':00');
$('input[name="shift_on_off[' + date + ']"]').val(off);
$('form#lp-action-form').find('div[name="shift_all_stand_by[' + date + ']"]').hide();
$('form#lp-action-form').find('div[name="shift_all_last_train[' + date + ']"]').hide();
}
}