プロジェクト

全般

プロフィール

QA #866

現在日時からの経過時間

k a4ヶ月前に追加. 21日前に更新.

ステータス:
回答済
優先度:
通常
担当者:
-
カテゴリ:
-
対象バージョン:
-
開始日:
2018/10/05
期日:
進捗率:

0%

予定工数:

説明

社員情報をチケットで管理したいと思っています。
入社年月日や生年月日から勤続年数や年齢を自動的にカスタムフィールドに設定する方法などを模索しているのですが、
なかなか上手い手が見つかりません。

プラグイン:redmine_plugin_computed_custom_fieldを利用して、
導出属性のカスタムフィールドを作成すればできそうな気もしているのですが…

なにかご助言いただけないでしょうか。

年数計算.png (66.9 KB) 年数計算.png 年数計算 Kawai takashi, 2018/12/28 22:45
420

履歴

#1 おがわ あきぴー3ヶ月前に更新

  • プロジェクトredmine.tokyo から Unofficial Redmine Cooking に変更

奈良さん、対応よろしく~。

#2 おがわ あきぴー3ヶ月前に更新

  • 担当者奈良 裕記 にセット

#3 Kawai takashi21日前に更新

420

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をセット
   }
 })

});

#4 奈良 裕記21日前に更新

ありがとうございます。

生年月日=2006/6/25
入社年月日=2011/9/8
として、12歳の勤続7年になりました。

#上記日付は、この付近に密接に関連する日付です。。

#5 奈良 裕記21日前に更新

  • ステータス新規 から 回答済 に変更
  • 担当者 を削除 (奈良 裕記)

他の形式にエクスポート: Atom PDF