貸与状況 @ AboutModels

貸手が借手を管理する。素材を提供する側が利用する情報なので、主語は管理者である。管理者が貸与を管理するのだ。

参考:DemanderStatusesController

カラム

name和名typedefaultnulllimitnote
requested_at申請日時datetime
rejected_at否決日時datetime
approved_at可決日時datetime
receive_hour1巡回時1integer
receive_hour2巡回時2integer

検証

カラム別

receive_hour1

  • 数値であること

receive_hour2

  • 数値であること

機能

デフォルト値補充

supply_default()

パラメータ

解説

  • 補充すべきデータはない。

上書き補充

overwrite()

パラメータ

解説

  • 補充すべきデータはない。

所持判定

own?(ad)

パラメータ

  • ad:検査対象

解説

検査対象が貸与状況の持ち主かどうかをTrue/Falseで返す。管理者権限があれば、誰しもがオーナーである。

  • パラメータが管理者でないならFalse
  • パラメータが管理者ならTrue

閲覧許可

visible?(ad)

パラメータ

  • ad:検査対象

解説

検査対象が貸与状況を閲覧できるかどうかを判定する

  • 検査対象が管理者のとき
    • 許可を返す。
  • 検査対象がそれ以外のとき
    • 不許可を返す。

状態

status

パラメータ

戻り

数値

解説

  • 待機中 0
    • 借手を作成したが、借受申請はしていない。
    • 借受申請したが否決された。
    • 申請日時がセットされていない
  • 否決 1
    • 借受申請したが否決された。
    • 申請日時と否決日時がセットされている
  • 申請中 2
    • 借受申請して貸手の返答待ち
    • 申請日時がセットされていて、可決日時と否決日時がセットされていない
  • 貸与中 3
    • 借受申請に対して承認した
    • 申請日時と可決日時がセットされている

1ページの件数

self.default_page_size

パラメータ

解説

一覧取得時に返す件数のデフォルト値

  • 25を返す。

1ページの最大件数

self.max_page_size

パラメータ

解説

ユーザは一覧取得時に返す件数を指定できるが、システムは上限値を設定できる

  • 100を返す。

ページ位置補正

self.page prm = nil

パラメータ

  • prm:ページ位置

解説

一覧取得時に何ページ目を返すかの指定値を補正

  • パラメータを数値として認識する
  • 省略時は1
  • 0以下のときは1

ページ数補正

self.page_size prm = self.default_page_size

パラメータ

  • prm:ページ数

解説

一覧で取得する件数

  • パラメータを数値として認識する
  • 省略時は1
  • 0以下のときは1
  • 1ページの最大件数を上回っているなら、1ページの件数を返す。

一覧取得

list(page = 1, page_size = self.default_page_size)

パラメータ

  • page:何ページ目か
  • page_size:1ページに収まる件数

解説

  • 貸与状況を借手の管理名順に取得する。
  • 関連データとして一覧取得オプションで定義されたモデルを含む。
  • ページ処理に対応し、毎ページn件の条件でmページ目から取得することができる。
    • ただし、page_sizeが0のときは全件取得してページ制御しない。

申請中リスト

requested_list(page = 1, page_size = self.default_page_size)

パラメータ

  • page:何ページ目か
  • page_size:1ページに収まる件数

解説

  • 貸与状況を借手の管理名順に取得する。
  • 貸与状況の申請中の行(申請日時がセットされていて、可決日時と否決日時がセットされていない)に限る
  • 関連データとして一覧取得オプションで定義されたモデルを含む。
  • ページ処理に対応し、毎ページn件の条件でmページ目から取得することができる。
    • ただし、page_sizeが0のときは全件取得してページ制御しない。

一覧取得オプション

下記の関連テーブルを含む

  • demander

json一覧出力オプション

下記の関連テーブルのカラムを含む

  • demander (*)

単体取得

show(id, ad)

パラメータ

  • id:貸与状況id
  • ad:管理者データ

解説

  • idの貸与状況を取得する。
  • 関連データとして単体取得オプションを与えることができる。
  • 貸与状況に閲覧許可を問い合わせ、不許可なら、例外403 ActiveRecord::Forbiddenを発生させる。
  • 存在しない貸与状況のidを要求された場合は、例外404 ActiveRecord::RecordNotFoundを発生させる。

編集取得

edit(id, ad)

パラメータ

  • id:貸与状況id
  • ad:管理者データ

解説

  • idの貸与状況を取得する。
  • 関連データとして単体取得オプションで定義されたモデルを含む。
  • 貸与状況に所持判定を問い合わせ、不所持なら、例外403 ActiveRecord::Forbiddenを発生させる。
  • 存在しない貸与状況のidを要求された場合は、例外404 ActiveRecord::RecordNotFoundを発生させる。

単体取得オプション

下記の関連テーブルを含む

  • demander

json単体出力オプション

下記の関連テーブルのカラムを含む

  • demander (*)

借受申請

request

パラメータ

戻り

処理結果を真偽で返す

解説

待機中と否決に不服のときに使う。

  • 否決日時をクリアする
  • 可決日時をクリアする
  • 申請日時に現在時刻をセットする
  • 自身に保存を依頼して、結果をを返す。
  • 例外ケース
    • 状態が待機中・否決でないときは、処理しないでFalseを返す。

貸与停止

reject

パラメータ

戻り

処理結果を真偽で返す

解説

申請中と貸与中のときに使う。

  • 却下日時をセットする
  • 可決日時をクリアする
  • 借手アカウントの認証トークンをクリアする。
  • 自身に保存を依頼して、結果をを返す。
  • 例外ケース
    • 申請中と貸与中でないときは、処理しないでFalseを返す。
    • 自身の保存か借手アカウントの保存に失敗したときは、ロールバックしてFalseを返す。

貸与承認

approve h1, h2

パラメータ

  • h1:巡回時1
  • h2:巡回時2

戻り

処理結果を真偽で返す

解説

申請中と否決中(だが翻意した)のときに使う。

  • 却下日時をクリアする
  • 可決日時をセットする
  • 巡回時1と巡回時2をセットする
  • 借手アカウントの認証トークンをセットする。
  • 自身に保存を依頼して、結果をを返す。
  • 例外ケース
    • 申請中と否決中でないときは、処理しないでFalseを返す。
    • 自身の保存か借手アカウントの保存に失敗したときは、ロールバックしてFalseを返す。

借受停止

stop

パラメータ

戻り

処理結果を真偽で返す

解説

借手が関係を停止するときに使う。

  • 申請日時をクリアする
  • 却下日時をクリアする
  • 可決日時をクリアする
  • 借手アカウントの認証トークンをクリアする。
  • 自身に保存を依頼して、結果をを返す。
  • 例外ケース
    • 自身の保存か借手アカウントの保存に失敗したときは、ロールバックしてFalseを返す。

申請中一覧取得

支給中一覧取得

待機中一覧取得