お世話になっております。
有休計算について② を参照にしたいですが、初心者のため、どう応用すればよろしいかわからなくて、彷徨っております。
以下のコードでは「県内実務時間」、「県外実務時間」を時間単位での合計が反映されなくて、また「時間外」は「終了」時間が 19時以降 であれば、合計したいですが、全然動けなくて、ご教授いただけたら、幸いです。ぜひよろしくお願い致します。
(function() {
“use strict”;
kintone.events.on([“app.record.create.show”,“app.record.edit.show”,“app.record.create.change.Table”, “app.record.edit.change.Table”], function(event) {
event.record.県内実務時間.disabled = true;
event.record.県外実務時間.disabled = true;
var table = event.record.Table.value;
for (var i = 0, l = table.length; i < l; i++) {
event.record.Table.value[i].value.勤務時間.disabled = true;
}
return event;
});
kintone.events.on([
“app.record.create.change.開始”, “app.record.edit.change.開始”,
“app.record.create.change.終了”, “app.record.edit.change.終了”,
“app.record.create.change.休憩”, “app.record.edit.change.休憩”,
], function(event) {
event.changes.row.value.勤務時間.value = event.changes.row.value.開始.value;
var start_time;
var end_time;
var time;
var hour;
var minute;
if(typeof event.changes.row.value.開始.value !== “undefined” && typeof event.changes.row.value.終了.value !== “undefined” && typeof event.changes.row.value.休憩.value !== “undefined”){
start_time = event.changes.row.value.開始.value.split(‘:’);
end_time = event.changes.row.value.終了.value.split(‘:’);
time = (Number(end_time[0]) * 60 + Number(end_time[1])) - (Number(start_time[0]) * 60 + Number(start_time[1])) - Number(event.changes.row.value.休憩.value);
hour = time / 60;
event.changes.row.value.勤務時間.value = hour + “時間” ;
}else{
event.changes.row.value.勤務時間.value = undefined;
}
return event;
});
function calcDays(event){
var record = event.record;
var types = [
{radioLabel:‘県内’, daysFieldCode:‘県内実務時間’},
{radioLabel:‘県外’, daysFieldCode:‘県外実務時間’},
];
types.forEach(function(type){
var time = [];
var sum = 0;
for (var i = 0; i < record.Table.value.length; i++) {
if (record.Table.value[i].value.形態.value === type.radioLabel && typeof record.Table.value[i].value.勤務時間.value !== “undefined”) {
time = record.Table.value[i].value.勤務時間.value;
}
}
record[type.daysFieldCode].value = time + “時間”;
});
return event;
}
})();