From ae075fded2a4ef8fb2f241e4cf9bb90d7587b02c Mon Sep 17 00:00:00 2001 From: Nick Date: Thu, 3 Oct 2019 11:06:47 +0000 Subject: [PATCH] Bug 17140: Make rounding syspref controlled Signed-off-by: Nick Clemens Signed-off-by: Jesse Maseto Signed-off-by: Martin Renvoize --- installer/data/mysql/sysprefs.sql | 1 + .../prog/en/modules/admin/preferences/circulation.pref | 6 ++++++ members/pay.pl | 2 +- members/paycollect.pl | 2 +- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql index f1ace4b088..75b04e2fd0 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/sysprefs.sql @@ -530,6 +530,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('ReturnpathDefault','',NULL,'Use this email address as return path or bounce address for undeliverable emails','Free'), ('reviewson','1','','If ON, enables patron reviews of bibliographic records in the OPAC','YesNo'), ('RisExportAdditionalFields', '', NULL , 'Define additional RIS tags to export from MARC records in YAML format as an associative array with either a marc tag/subfield combination as the value, or a list of tag/subfield combinations.', 'textarea'), +('RoundFinesAtPayment','0', NULL,'If enabled any fines with fractions of a cent will be rounded to the nearest cent when payments are coll ected. e.g. 1.004 will be paid off by a 1.00 payment','YesNo'), ('RoutingListAddReserves','0','','If ON the patrons on routing lists are automatically added to holds on the issue.','YesNo'), ('RoutingListNote','To change this note edit RoutingListNote system preference.','70|10','Define a note to be shown on all routing lists','Textarea'), ('RoutingSerials','1',NULL,'If ON, serials routing is enabled','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 4ff6a8331d..9f7c0dcb48 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 @@ -923,6 +923,12 @@ Circulation: type: textarea syntax: javascript class: code + - + - pref: RoundFinesAtPayment + choices: + yes: Do + no: "Don't" + - round fines to the nearest cent when collecting payments. Enabling this preference allows paying fines of partial cents which may not be visible in the interface. Self Checkout: - - "Include the following JavaScript on all pages in the web-based self checkout:" diff --git a/members/pay.pl b/members/pay.pl index 73b87fa113..ee2d5f23ff 100755 --- a/members/pay.pl +++ b/members/pay.pl @@ -99,7 +99,7 @@ elsif ( $input->param('confirm_writeoff') ) { my $accountline = Koha::Account::Lines->find( $accountlines_id ); - $amount = $accountline->amountoutstanding if (abs($amount - $accountline->amountoutstanding) < 0.01); + $amount = $accountline->amountoutstanding if (abs($amount - $accountline->amountoutstanding) < 0.01) && C4::Context->preference('RoundFinesAtPayment'); if ( $amount > $accountline->amountoutstanding ) { print $input->redirect( "/cgi-bin/koha/members/paycollect.pl?" . "borrowernumber=$borrowernumber" diff --git a/members/paycollect.pl b/members/paycollect.pl index e340750e21..bbd4b5a322 100755 --- a/members/paycollect.pl +++ b/members/paycollect.pl @@ -137,7 +137,7 @@ if ( $pay_individual || $writeoff_individual ) { } if ( $total_paid and $total_paid ne '0.00' ) { - $total_paid = $total_due if (abs($total_paid - $total_due) < 0.01); + $total_paid = $total_due if (abs($total_paid - $total_due) < 0.01) && C4::Context->preference('RoundFinesAtPayment'); if ( $total_paid < 0 or $total_paid > $total_due ) { $template->param( error_over => 1, -- 2.39.5