初めての投稿失礼いたします。
今回、勤務時間を利用して休日取得数を計算するアプリを作成しております。
考えた仕組みは以下の通りです。
①勤務時間は 時間フィールドから取得。(〇時間□□分の形式)
②休日は
2-1.年月を書くフィールドからその月の日数(workformat)を取得。
2-2.日数に8時間をかけて(workformat * 8)、それを所定勤務時間とする。
2-3.所定勤務時間から勤務時間を引き、それを8で割る。
作成したコードを添付いたします。
時間の計算部分がうまくいっていないのだと思うのですが、解決方法が不明のため質問させていただきます。
添付し忘れました…。
jQuery.noConflict();
(function(a) {
“use strict”;
var events = [
“app.record.edit.show”,
“app.record.create.show”,
“app.record.create.submit”,
“app.record.edit.submit”,
“app.record.create.change.総勤務時間”,
“app.record.edit.change.総勤務時間”,
];
kintone.events.on(events,function(event){
var record = event.record;
var yearmonth = record[‘年月2’].value;
var year = yearmonth.slice(0,4);
var month = yearmonth.slice(4.6);
var kinmunissuu = parseInt(new Date(year, month, 0).getDate());
var kinmu = 8 * kinmunissuu;
var allworkbase = record[‘総勤務時間’].value;
var sitei = “:”;
var allworkTOKUTEI = allworkbase.indexOf(sitei, 0);
var allworkm = parseInt(allworkbase.substr(allworkTOKUTEI));
var allworkh = parseInt(allworkbase.substring(-2,allworkTOKUTEI));
var allwork = (allworkh*60 + allworkm) /60;
var holiday = (allwork - kinmu) / 8
record[‘休日日数’].value = holiday;
return event;
})
})(jQuery);
Kyohei Kawasaki さん、
jsコードの添付ありがとうございます。
作成しようとされている内容を、当方なりに解釈して、下記のソースコードにしました。
アプリでは、
「休日日数」は数値、「総勤務時間」は文字列、にしました。
「数値A」、「文字列A」は、こちらの確認用で置いてありますが、本題とは関係ありません。
当方の実行結果の画面キャプチャを、本投稿の最後に置ました。
jsソースは、概ね、Kyohei Kawasaki さんの添付された形を踏襲しております。
jQuery.noConflict();
(function(a) {
“use strict”;
var events = [
“app.record.edit.show”,
“app.record.create.show”,
“app.record.create.submit”,
“app.record.edit.submit”,
“app.record.create.change.総勤務時間”,
“app.record.edit.change.総勤務時間”,
];
kintone.events.on(events,function(event){
var record = event.record;
var yearmonth = record[‘年月2’].value;
var year = yearmonth.slice(0,4);
var month = yearmonth.slice(5,7);
var kinmunissuu = parseInt(new Date(year, month, 0).getDate());
var kinmu = 8 * kinmunissuu;
var allworkbase = record[‘総勤務時間’].value;
var sitei = “:”;
// 時間桁数
var allworkTOKUTEI = allworkbase.indexOf(sitei, 0);
var allworkm = parseInt(allworkbase.substr(1+allworkTOKUTEI));
var allworkh = parseInt(allworkbase.substring(-2,allworkTOKUTEI));
var allwork = (allworkh*60 + allworkm) /60;
var holiday = (kinmu - allwork) / 8
record[‘休日日数’].value = holiday;
return event;
})
})(jQuery);
ご参考になれば幸いです。
よろしくお願い致します。
※勤務時間から休日取得数を計算しました。
Kazuo Urata 様
返信ありがとうございます。
いただいたソースで完全動作いたしました。
踏襲していただきありがとうございます。見比べて勉強させていただきます。
ありがとうざいました。