いつもお世話になっております。
社員情報アプリのデータをもとに以下のデータを見れるアプリを作成しています。
・有給の取得数、取得タイミング
・誕生日データをもとに定年の年月日を表示
・今日までの勤続年数
有給の取得数・タイミングについては、
http://qiita.com/ushiron/items/14a2cfa05e2132b77558
を元に表示させることができました。
が、定年の年月日を別のテーブルやフィールドへ表示させようとjsをいじってみましたがうまくいかず・・。 jswatchlogなんかも使ってみたんですが、jsとしてそもそも認識されていないようで何が間違っているのかわからず行き詰ってしまいました。
(勤続年数については有給取得のテーブルの一番下に追加して表示させることはできたんですが、可能であれば別に(テーブルでも文字列フィールドでも)表示させたいです。)
どのようにしたら表示させることができるのかご教授頂きたく投稿します。
宜しくお願いします。
※有給取得のjs(勤続年数をテーブル一番下に表示するようにしています)※
(function() {
“use strict”;
// Set local and starting week
moment.locale(‘ja’, { week: { dow: 0, doy: 4 }});
// Insert rowdata in need fieldtype ex.‘SINGLE_LINE_TEXT’
function createRow(detail, result, yukyu) {
return {
‘value’: {
‘Detail’: {
‘type’: ‘SINGLE_LINE_TEXT’,
‘value’: detail
},
‘Result’: {
‘type’: ‘SINGLE_LINE_TEXT’,
‘value’: result
},
‘yukyu’: {
‘type’: ‘NUMBER’,
‘value’: yukyu
}
}
};
}
var eventDatetime = function(event) {
var record = event.record;
var dateA = record[‘DatetimeA’].value;
var dateB = record[‘DatetimeB’].value;
var arrRow = [];
// Initialize table data
record[‘Table’][‘value’].length = 0;
// Basedatetime
arrRow.push(createRow(“~6ヵ月まで”, moment(dateA).add(6, ‘month’).format(‘YYYY/MM’), 5));
arrRow.push(createRow(“~1年5ヵ月まで”, moment(dateA).add(17, ‘month’).format(‘YYYY/MM’), 10));
arrRow.push(createRow(“~2年5ヵ月まで”, moment(dateA).add(29, ‘month’).format(‘YYYY/MM’), 11));
arrRow.push(createRow(“~3年5ヵ月まで”, moment(dateA).add(41, ‘month’).format(‘YYYY/MM’), 12));
arrRow.push(createRow(“~4年5ヵ月まで”, moment(dateA).add(53, ‘month’).format(‘YYYY/MM’), 14));
arrRow.push(createRow(“~5年5ヵ月まで”, moment(dateA).add(65, ‘month’).format(‘YYYY/MM’), 16));
arrRow.push(createRow(“~6年5ヵ月まで”, moment(dateA).add(66, ‘month’).format(‘YYYY/MM’), 18));
arrRow.push(createRow(“~6年6ヵ月以降”, moment(dateA).add(66, ‘month’).format(‘YYYY/MM’), 20));
// Compare datetime
var month = moment(dateB).diff(moment(dateA), ‘months’) % 12;
arrRow.push(createRow(“入社日から比較対象日まで”, moment(dateB).diff(moment(dateA), ‘years’) + "年 " + month + “ヶ月”));
// Appned tabel element
for (var i = 0; i < arrRow.length; i++) {
record[‘Table’][‘value’].push(arrRow[i]);
}
};
// Eventlist
var ev = [‘app.record.create.show’,
‘app.record.edit.show’,
‘app.record.edit.index.show’,
‘app.record.create.change.DatetimeA’,
‘app.record.create.change.DatetimeB’,
‘app.record.edit.change.DatetimeA’,
‘app.record.edit.change.DatetimeB’
];
kintone.events.on(ev, function(event) {
eventDatetime(event);
return event;
});
})();
※認識されないjs 誕生日(日時フィールド)から定年を計算※
(function() {
“use strict”;
// ロケールを初期化
moment.locale(‘ja’, { week: { dow: 0, doy: 4 }});
kintone.events.on(“app.record.edit.submit.success”, function(ev) {
var record = event.record;
var birthd = record[‘birth’].value;
var date = moment(birthd.add(60, ‘years’));
date.format(“YYYY/MM/DD”);
record[‘end’][‘value’] = date;
return event;
});
})();