my $units_minus_grace = $chargeable_units - $data->{firstremind};
my $amount = 0;
if ($data->{'chargeperiod'} && ($units_minus_grace > 0) ) {
- $amount = int($chargeable_units / $data->{'chargeperiod'}) * $data->{'fine'};# TODO fine calc should be in cents
+ if ( C4::Context->preference('FinesIncludeGracePeriod') ) {
+ $amount = int($chargeable_units / $data->{'chargeperiod'}) * $data->{'fine'};# TODO fine calc should be in cents
+ } else {
+ $amount = int($units_minus_grace / $data->{'chargeperiod'}) * $data->{'fine'};
+ }
} else {
# a zero (or null) chargeperiod or negative units_minus_grace value means no charge.
}
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('TrackClicks','0','Track links clicked',NULL,'Integer');
INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES('PatronSelfRegistrationAdditionalInstructions','','A free text field to display additional instructions to newly self registered patrons.','','free');
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('UseQueryParser', '0', 'If enabled, try to use QueryParser for queries.', NULL, 'YesNo');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('FinesIncludeGracePeriod','1','If enabled, fines calculations will include the grace period.',NULL,'YesNo');
SetVersion($DBversion);
}
+$DBversion = "3.11.00.XXX";
+if ( CheckVersion($DBversion) ) {
+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('FinesIncludeGracePeriod','1','If enabled, fines calculations will include the grace period.',NULL,'YesNo');");
+ print "Upgrade to $DBversion done (Add system preference FinesIncludeGracePeriod)\n";
+ SetVersion($DBversion);
+}
+
$DBversion = "3.11.00.026";
if ( CheckVersion($DBversion) ) {
yes: Refund
no: "Don't refund"
- lost item fees charged to a borrower when the lost item is returned.
+ -
+ - pref: FinesIncludeGracePeriod
+ choices:
+ yes: Include
+ no: "Don't include"
+ - the grace period when calculating the fine for an overdue item.
Self Checkout:
-
- "Include the following JavaScript on all pages in the web-based self checkout:"