From d8e186a7a932869c7d6766aa7d9c5066518d128d Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Fri, 3 Jun 2016 11:24:07 -0300 Subject: [PATCH] Bug 14048: Add syspref and atomic update This patch introduces the changes to the sysprefs and the atomic update that creates the new table. It picks the syspref value for RefundLostItemFeeOnReturn and uses it to create a default (branchcode='*') rule on the new table. Sponsored-by: DoverNet Sponsored-by: South-East Kansas Library System Sponsored-by: SWITCH Library Consortium Signed-off-by: Nick Clemens Signed-off-by: Jason Robb Signed-off-by: Jennifer Schmidt Signed-off-by: Margaret Thrasher Signed-off-by: Jonathan Druart Signed-off-by: Jesse Weaver --- .../bug_14048_refundlostitemfeeonreturn.sql | 49 +++++++++++++++++++ installer/data/mysql/sysprefs.sql | 2 +- .../admin/preferences/circulation.pref | 9 ++-- 3 files changed, 55 insertions(+), 5 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug_14048_refundlostitemfeeonreturn.sql diff --git a/installer/data/mysql/atomicupdate/bug_14048_refundlostitemfeeonreturn.sql b/installer/data/mysql/atomicupdate/bug_14048_refundlostitemfeeonreturn.sql new file mode 100644 index 0000000000..2f372fb202 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_14048_refundlostitemfeeonreturn.sql @@ -0,0 +1,49 @@ +CREATE TABLE `refund_lost_item_fee_rules` ( + `branchcode` varchar(10) NOT NULL default '', + `refund` tinyint(1) NOT NULL default 0, + PRIMARY KEY (`branchcode`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) +VALUES( 'RefundLostOnReturnControl', + 'CheckinLibrary', + 'If a lost item is returned, choose which branch to pick rules for refunding.', + 'CheckinLibrary|PatronLibrary|ItemHomeBranch|ItemHoldingbranch', + 'Choice'); + +INSERT INTO refund_lost_item_fee_rules (branchcode,refund) + SELECT '*', COALESCE(value,'1') FROM systempreferences WHERE variable='RefundLostItemFeeOnReturn'; + +DELETE IGNORE FROM systempreferences; + +-- $DBversion = "16.06.00.XXX"; +-- if ( CheckVersion($DBversion) ) { +-- $dbh->do(q{ +-- CREATE TABLE `refund_lost_item_fee_rules` ( +-- `branchcode` varchar(10) NOT NULL default '', +-- `refund` tinyint(1) NOT NULL default 0, +-- PRIMARY KEY (`branchcode`) +-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +-- }); +-- $dbh->do(q{ +-- INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) +-- VALUES( 'RefundLostOnReturnControl', +-- 'CheckinLibrary', +-- 'If a lost item is returned, choose which branch to pick rules for refunding.', +-- 'CheckinLibrary|PatronLibrary|ItemHomeBranch|ItemHoldingbranch', +-- 'Choice') +-- }); +-- # Pick the old syspref as the default rule +-- $dbh->do(q{ +-- INSERT INTO refund_lost_item_fee_rules (branchcode,refund) +-- SELECT '*', COALESCE(value,'1') FROM systempreferences WHERE variable='RefundLostItemFeeOnReturn' +-- }); +-- # Delete the old syspref +-- $dbh->do(q{ +-- DELETE IGNORE FROM systempreferences +-- WHERE variable='RefundLostItemFeeOnReturn' +-- }); + +-- print "Upgrade to $DBversion done (Bug 14048: Change RefundLostItemFeeOnReturn to be branch specific)\n"; +-- SetVersion($DBversion); +-- } diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql index af42f6646a..512211a670 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/sysprefs.sql @@ -400,7 +400,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('QuoteOfTheDay','0',NULL,'Enable or disable display of Quote of the Day on the OPAC home page','YesNo'), ('RandomizeHoldsQueueWeight','0',NULL,'if ON, the holds queue in circulation will be randomized, either based on all location codes, or by the location codes specified in StaticHoldsQueueWeight','YesNo'), ('RecordLocalUseOnReturn','0',NULL,'If ON, statistically record returns of unissued items as local use, instead of return','YesNo'), -('RefundLostItemFeeOnReturn','1',NULL,'If enabled, the lost item fee charged to a borrower will be refunded when the lost item is returned.','YesNo'), +('RefundLostOnReturnControl','CheckinLibrary','CheckinLibrary|ItemHomeBranch|ItemHoldingbranch','If a lost item is returned, choose which branch to pick rules for refunding.','Choice'), ('RenewalPeriodBase','date_due','date_due|now','Set whether the renewal date should be counted from the date_due or from the moment the Patron asks for renewal ','Choice'), ('RenewalSendNotice','0','',NULL,'YesNo'), ('RenewSerialAddsSuggestion','0',NULL,'If ON, adds a new suggestion at serial subscription renewal','YesNo'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref index 9a3760843b..fffa4c6e43 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref @@ -654,11 +654,12 @@ Circulation: - fines (when misc/cronjobs/fines.pl is being run). -
Note: Fines can also be charged by the CalculateFinesOnReturn system preference. - - - pref: RefundLostItemFeeOnReturn + - If a lost item is returned, apply the refunding rules defined in the + - pref: RefundLostOnReturnControl choices: - yes: Refund - no: "Don't refund" - - lost item fees charged to a borrower when the lost item is returned. + CheckinLibrary: "check-in library." + ItemHomeBranch: "item home branch." + ItemHoldingbranch: "item holding branch." - - pref: FinesIncludeGracePeriod choices: -- 2.39.5