Bug 4906: Allow fine calculation to exclude grace period
This patch adds the system preference FinesIncludeGracePeriod which allows the library the choice to include the grace period when calculating a fine ( Koha's current behavior ) or to ignore the grace period for the purposes of fines calculation. It is set by default to preserve the current behavior. Signed-off-by: Srikanth Dhondi <srikanth@catalyst.net.nz> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Rebased March 8, 2013. Included renaming pref. Works as advertised. Renamed the bug title and opened a new report for the original bug. Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
This commit is contained in:
parent
41e176d97a
commit
aba4f05b80
|
|
@ -264,7 +264,11 @@ sub CalcFine {
|
|||
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.
|
||||
}
|
||||
|
|
|
|||
|
|
@ -420,3 +420,4 @@ INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('
|
|||
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');
|
||||
|
|
|
|||
|
|
@ -6477,6 +6477,13 @@ if ( CheckVersion($DBversion) ) {
|
|||
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) ) {
|
||||
|
|
|
|||
|
|
@ -482,6 +482,12 @@ Circulation:
|
|||
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:"
|
||||
|
|
|
|||
Loading…
Reference in New Issue