Bugzilla – Attachment 18367 Details for
Bug 9129
Add the ability to set the maximum fine for an item to its replacement price
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price
Bug-9129---Add-the-ability-to-set-the-maximum-fine.patch (text/plain), 5.51 KB, created by
Marcel de Rooy
on 2013-05-24 08:50:05 UTC
(
hide
)
Description:
Bug 9129 - Add the ability to set the maximum fine for an item to its replacement price
Filename:
MIME Type:
Creator:
Marcel de Rooy
Created:
2013-05-24 08:50:05 UTC
Size:
5.51 KB
patch
obsolete
>From 90b97c49966af7307402731b266459e6da463a78 Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Wed, 21 Nov 2012 14:54:17 -0500 >Subject: [PATCH] Bug 9129 - Add the ability to set the maximum fine for an > item to its replacement price >Content-Type: text/plain; charset=utf-8 > >Test plan: >1) Apply patch >2) Run updatedatabase.pl >3) Enable MaxFineIsReplacementPrice >4) Pick an item, set it's replacementprice to some amount ( e.g. $6.50 ) >5) Check it out to a patron, back date the due date by an amount such >that the fine should exceed the replacement price ( a year ago should be good ). >6) Run fines.pl >7) Verify the fine for the item is not exceeded the replacement price. > >Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> >Make sure that you also have maximum fine amount to be higher than the >replacement price you set, otherwise it will stop at that amount. > >Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> >--- > C4/Overdues.pm | 13 +++++++++++++ > installer/data/mysql/sysprefs.sql | 1 + > installer/data/mysql/updatedatabase.pl | 8 ++++++++ > .../prog/en/modules/admin/preferences/patrons.pref | 6 ++++++ > 4 files changed, 28 insertions(+), 0 deletions(-) > >diff --git a/C4/Overdues.pm b/C4/Overdues.pm >index 9c05668..10573b4 100644 >--- a/C4/Overdues.pm >+++ b/C4/Overdues.pm >@@ -268,8 +268,12 @@ sub CalcFine { > } else { > # a zero (or null) chargeperiod or negative units_minus_grace value means no charge. > } >+ > $amount = $data->{overduefinescap} if $data->{overduefinescap} && $amount > $data->{overduefinescap}; >+ $amount = $item->{'replacementprice'} if ( C4::Context->preference('MaxFineIsReplacementPrice') && $item->{'replacementprice'} && $amount > $item->{'replacementprice'} ); >+ > $debug and warn sprintf("CalcFine returning (%s, %s, %s, %s)", $amount, $data->{'chargename'}, $units_minus_grace, $chargeable_units); >+ > return ($amount, $data->{'chargename'}, $units_minus_grace, $chargeable_units); > # FIXME: chargename is NEVER populated anywhere. > } >@@ -543,6 +547,14 @@ sub UpdateFine { > $total_amount_other += $rec->{'amountoutstanding'}; > } > >+ if ( C4::Context->preference('MaxFineIsReplacementPrice') ) { >+ my $item = C4::Items::GetItem( $itemnum ); >+ if ( $item->{'replacementprice'} && $amount > $item->{'replacementprice'} ) { >+ $debug && warn "Reducing fine for item $itemnum borrower $borrowernumber from $amount to $item->{'replacementprice'} - Fine exceeds replacement price"; >+ $amount = $item->{'replacementprice'}; >+ } >+ } >+ > if (my $maxfine = C4::Context->preference('MaxFine')) { > if ($total_amount_other + $amount > $maxfine) { > my $new_amount = $maxfine - $total_amount_other; >@@ -552,6 +564,7 @@ sub UpdateFine { > } > } > >+ > if ( $data ) { > > # we're updating an existing fine. Only modify if amount changed >diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql >index 9aabdb1..6940cf7 100644 >--- a/installer/data/mysql/sysprefs.sql >+++ b/installer/data/mysql/sysprefs.sql >@@ -426,3 +426,4 @@ INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES ( > INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('UniqueItemFields', 'barcode', 'Space-separated list of fields that should be unique (used in acquisition module for item creation). Fields must be valid SQL column names of items table', '', 'Free'); > INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES('UseCourseReserves', '0', 'Enable the course reserves feature.', NULL, 'YesNo'); > INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacShowHoldNotes',0,'Show hold notes on OPAC','','YesNo'); >+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('MaxFineIsReplacementPrice',0,'Make the replacement price a second max fine ceiling.',NULL,'YesNo'); >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index 3134261..05f3909 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -6971,6 +6971,14 @@ if(CheckVersion($DBversion)) { > SetVersion ($DBversion); > } > >+$DBversion = "3.13.00.XXX"; >+if ( CheckVersion($DBversion) ) { >+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('MaxFineIsReplacementPrice',0,'Make the replacement price a second max fine ceiling.',NULL,'YesNo')"); >+ print "Upgrade to $DBversion done (Bug 9129: Add syspref MaxFineIsReplacementPrice)\n"; >+ SetVersion ($DBversion); >+} >+ >+ > =head1 FUNCTIONS > > =head2 TableExists($table) >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref >index 74d14af..33cb821 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref >@@ -80,6 +80,12 @@ Patrons: > - '[% local_currency %].' > - Empty value means no limit. Single item caps are specified in the circulation rules matrix. > - >+ - pref: MaxFineIsReplacementPrice >+ choices: >+ yes: Allow >+ no: "Don't allow" >+ - the maximum fine for an item to exceed the replacement price for that item. >+ - > - pref: memberofinstitution > choices: > yes: Do >-- >1.7.7.6
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 9129
:
13612
|
13614
|
13615
|
13616
|
14553
|
16197
|
17989
|
17990
|
17991
|
17992
|
18366
|
18367
|
18368
|
18370
|
18371
|
18642
|
18643
|
23305
|
43252
|
43253
|
43298
|
43592
|
43685
|
43686
|
43688
|
43689
|
43745
|
43746
|
43747
|
43781
|
43782
|
43783
|
43784
|
46157