]> git.koha-community.org Git - koha.git/commit
Bug 5549 followup: fix suspension in days further
authorIan Walls <koha.sekjal@gmail.com>
Thu, 22 Mar 2012 21:06:21 +0000 (17:06 -0400)
committerChris Cormack <chrisc@catalyst.net.nz>
Mon, 14 May 2012 21:11:28 +0000 (09:11 +1200)
commit3a21f898fa2af3202b23aa4a423d2649eb36ab4e
treef41f3f03f9caa2b58d1f1f55f51521a0bccba524
parent59bac06e4f79eefd596e9008bcad6cf81eb0c962
Bug 5549 followup: fix suspension in days further

Grace periods are now measured in the same unit as the loan.

Suspension in days works explicitly in days, independent of unit.  Since
the 'deltadays' duration is actually the duration, possibly in hours, between
when the material was due and when it's returned, we need to take the finedays
factor (how many days per unit overdue) and multiple it by 24 if the unit is
hourly.

Example: a 1 hour loan material with 1 hour grace period and finedays = 2,
returned 2 hours late would give 4 days suspension

To test:
1.  create some circ rules:
  A) an hourly loan rule with suspension in days
  B) an hourly loan rule with suspension in days and a grace period
  C) a daily loan rule with suspension in days
  D) a daily loan rule with suspension in days and a grace period
2.  Check out 2 materials under each rule.  We'll call these A1-D1
and A2-D2 (to associate with the rule)
3.  Return A1-D1 late, but within the grace period for B1 and D1 as appropriate
4.  Return A2-D2 late, after the grace periods

You should get:

A1: suspended for (#hours late) * (#suspensionindays) days
B1: not suspended
C1: suspended for (#days late) * (#suspensionindays) days
D1: not suspended

A2: suspended for (#hours late) * (#suspensionindays) days
B2: suspended for (#hours late) * (#suspensionindays) days
C2: suspended for (#days late) * (#suspensionindays) days
D2: suspended for (#days late) * (#suspensionindays) days

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
C4/Circulation.pm