操作
QA #866
未完了現在日時からの経過時間
ステータス:
回答済
優先度:
通常
担当者:
-
カテゴリ:
-
対象バージョン:
-
開始日:
2018/10/05
期日:
進捗率:
0%
予定工数:
説明
社員情報をチケットで管理したいと思っています。
入社年月日や生年月日から勤続年数や年齢を自動的にカスタムフィールドに設定する方法などを模索しているのですが、
なかなか上手い手が見つかりません。
プラグイン:redmine_plugin_computed_custom_fieldを利用して、
導出属性のカスタムフィールドを作成すればできそうな気もしているのですが…
なにかご助言いただけないでしょうか。
ファイル
Kawai takashi さんが5年以上前に更新
View Customize Pluginでやってみました。
勤続年数と年齢の計算ロジックが同じと仮定しました。
*チケットのページでやりましたが、社員情報なので「個人設定」のページなのかなとも思ったのですが。
パスのパターン:/issues
挿入位置:チケット入力欄の下
種別:JavaScript
$(function(){
//生年月日を選択したら、年齢を計算して設定する
$('#issue_custom_field_values_51').on('change', function(){ //画面の「生年月日」
//今日
var today = new Date();
//誕生年月日
var birthday = $(this).val();
var birthdayyear = birthday.split("-")[0];
var birthdaymonth = birthday.split("-")[1];
var birthdayday = birthday.split("-")[2];
//今年の誕生日
var thisYearBirthday = new Date(today.getFullYear(), (birthdaymonth-1), birthdayday);
//画面の「年齢」=今年-誕生年
var age = today.getFullYear() - birthdayyear;
if (today < thisYearBirthday){
$('#issue_custom_field_values_53').val(age-1); //今年の誕生日を迎えていなければ、画面の「年齢」にage-1をセット
}else{
$('#issue_custom_field_values_53').val(age); //今年の誕生日を迎えていれば、画面の「年齢」にageをセット
}
})
//入社年月日を選択したら、勤続年数を計算して設定する
$('#issue_custom_field_values_50').on('change', function(){ //画面の「入社年月日」
//今日
var today = new Date();
//入社年月日
var nyushaday = $(this).val();
var nyushayear = nyushaday.split("-")[0];
var nyushamonth = nyushaday.split("-")[1];
var nyushaday = nyushaday.split("-")[2];
//今年の入社日
var thisYearnyushaday = new Date(today.getFullYear(), (nyushamonth-1), nyushaday);
//画面の「勤続年数」=今年-入社年
var kinzoku = today.getFullYear() - nyushayear;
if (today < thisYearnyushaday){
$('#issue_custom_field_values_52').val(kinzoku-1); //今年の入社日を迎えていなければ、画面の「勤続年数」にkinzoku-1をセット
}else{
$('#issue_custom_field_values_52').val(kinzoku); //今年の入社日を迎えていれば、画面の「勤続年数」にkinzokuをセット
}
})
});
操作