hanocha/how-many-work-time

勤務日数が0になるとdiv/0エラー

Opened this issue · 9 comments

締め日にほぼ確実に落ちる。

対策 step.1 勤務中の場合の計算式を変える

出勤簿の中に「勤務中」が含まれている場合はその日の労働時間を無視したい。
「勤務中」表記でも労働時間はカウントされてしまうので、それをうまく除く必要がある。

「勤務中」がある場合、実働日数から1を引いて、さらに労働時間からその日の勤務時間を引く。
その値を使ってこれまでと同じ計算を行う。

対策 step.2 締め日の時の計算を考慮する

締め日に退勤した後は変わらず 0div 問題は発生する。
これはどうしようもないので、所定勤務日数 - (実働日数+全休数) が0の時の処理を別途追加するしかない気がする。

勤務中に一回勤務表の取得をかけないと、どうやって「勤務中」ステータスを拾ってくるかがわからない・・・

j.main_page.xpath("//*[contains(./text(),'勤務中')]") (edited)

[6:39]
勤務中の場合はNokogiriのオブジェクトが返ってくる

[6:41]

pry(main)> j.main_page.xpath("//*[contains(./text(),'勤務中')]")
=> []

[6:41]
勤務中でなければこんな感じになる

出勤中だった場合の処理

  1. 実働日数 worked_days から1を引く
  2. 実働時間 worked_hours から今日の労働時間を引く
  3. 残り出勤可能日数に1足す(?)

出勤直後は実働日数が増加しない。
出勤中、かつ出勤後5分経過?したら実働日数が増えるのかもしれない。
実働時間も同様だが5分刻みかな…?

…あれ?実働日数…出勤日数?

出勤後10分経過しても実労働時間、実働日数に変化なし。
どこから反映されるんだろう・・

1時間経過を目安に機能を実装していいかもしれない

本当に5分単位計上されるか確かめてから実働時間周りは実装する。

出勤可能日数は実働日数を使って計算しているので、実働日数から1引くだけでそっちも補正される。はず。