From 9350d1d6d994b23a61a5faf109958779d15ba192 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 --- 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 88476cd729..3a2e880df6 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/sysprefs.sql @@ -527,6 +527,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 915d9913f2..76774a9b4a 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 @@ -917,6 +917,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 e17f43f322..c810c9116b 100755 --- a/members/pay.pl +++ b/members/pay.pl @@ -98,7 +98,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 64f29ae03f..78002ef5c4 100755 --- a/members/paycollect.pl +++ b/members/paycollect.pl @@ -136,7 +136,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.11.0