受付画面の病理番号フィールド
編集が出来ない(Read only)テキストフィールド。ひとまず表示はこれでいいと思う。
<%= f.text_field :pathological_number, :value => Time.now.year * 100000 + Entry.where("entryyear = ?", Time.now.year).count + 1,:readonly => true %>
ただ、entryyearという項目を一つ設けないで、pathological numberを使った関数を書いて処理した方が後々良いと思う。
新しいpathological_numberを生成するメソッドは、entries_helper.rbにヘルパーメソッドとして記述。
基本的にModel-View-Controlerパターンに則り、Viewの部分(erbファイル)にロジックを記載することは最小限にしてみた。
既存の入力件数を呼び出して、自動的に番号を割り当て(受付時には非表示でも良い)。 ただし、病理番号は年毎に一度リセットされる。 現在の西暦を取得し、その値をもとに、病理番号か受付番号で検索し、西暦+(該当件数+1)を現在の病理番号へ。 2/12予定。
病理番号のフォーマットはHXXXX-YYYYY 隠しフィールドに初期値として入力される。 通し番号の所はテーブルの件数のカウント+1、 入力時の年度の件数のみを数えることで、年ごとに通し番号がリセットされる仕組み。
サブミット後の確認画面では病理番号を表示。