新規投稿
フォローする

テーブルの計算

お世話になっております。

初投稿となります。どうかアドバイスのほど、よろしくお願い致します。

テーブル計算について

を参考させていただいておりますが、 時間外:数値項目の自動計算がご提示していらっしゃる通りでできず、先輩方々貴重なごしどいただければ幸いです。

(function () {
"use strict";
kintone.events.on(["app.record.create.show", "app.record.index.edit.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;
event.record.質問対応合計.disabled = true;
event.record.時間外.disabled = true;
event.record.実務日数.disabled = true;

var table = event.record.Table.value;
table.forEach(function (row) {
row.value.勤務時間.disabled = true;
row.value.時間外T.disabled = true;
});
return event;
});


kintone.events.on(["app.record.create.show", "app.record.edit.show", "app.record.create.change.Table", "app.record.edit.change.Table",
"app.record.create.submit", "app.record.edit.submit", "app.record.create.change.日付", "app.record.edit.change.日付",
"app.record.create.change.区分", "app.record.edit.change.区分", "app.record.create.change.開始", "app.record.edit.change.開始",
"app.record.create.change.時間外T", "app.record.edit.change.時間外T",
"app.record.create.change.終了", "app.record.edit.change.終了", "app.record.create.change.休憩", "app.record.edit.change.休憩", ], function (event) {
var record = event.record;
var mwork = {
'会議合計': moment.duration(0),
'研修合計': moment.duration(0),
'質問対応合計': moment.duration(0),
//'時間外': moment.duration(0)
};
var dailyWHours = {};//毎日
var table = record.Table.value;
table.forEach(function (row, index) {
if (row.value.開始.value && row.value.終了.value && row.value.休憩.value) {
var whours = moment.duration(row.value.終了.value).subtract(moment.duration(row.value.開始.value)).subtract(Number(row.value.休憩.value), 'hours');
row.value.時間外T.value = '';
if (whours.as('hours') > 0) {
row.value.勤務時間.value = whours.as('hours');
var dt1 = row.value.日付.value;
if (dt1) {
if (!dailyWHours.hasOwnProperty(dt1)) {
dailyWHours[dt1] = {
whours: whours.as('hours'),
index: index
};
} else {
dailyWHours[dt1].whours += whours.as('hours');
dailyWHours[dt1].index = index;
}
}

var kubun = row.value.区分.value + '合計';
if (mwork.hasOwnProperty(kubun)) {
mwork[kubun] = mwork[kubun].add(whours);
}
} else {
row.value.終了.error = '開始 > 終了';
}
} else {
row.value.勤務時間.value = '';
}
});

Object.keys(mwork).forEach(function (key) {
record[key].value = mwork[key].as('hours');
});
record['実務日数'].value = Object.keys(dailyWHours).length;

Object.keys(dailyWHours).forEach(function (dt) {
var dInfo = dailyWHours[dt];
if (dInfo.whours > 8) {
table[dInfo.index].value.時間外T.value = dInfo.whours - 8;

} else {
table[dInfo.index].value.時間外T.value = 0;
}

});
// record['時間外'].value += Table.value.時間外T.value ;

return event;
});
})();
0

0件のコメント

ログインしてコメントを残してください。