From f2c6d5ad4f042ddcbf7127bc5d440cd8032cc8f4 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Fri, 5 Feb 2016 10:46:28 +0000 Subject: [PATCH] Bug 15746: Do not record individual payments with randomly picked libraries When a payment is made individualy, the library used to record this payment is randomly picked from the library list. This is because C4::Branch::GetBranch looks at 1. the $branch variable sent by the template, wich does not exist, then 2. the branchname cookie, which does not exist neither, then 3. get the first branchcode from a list of keys (non ordered). To reproduce: - Create a manual invoice for a patron (members/maninvoice.pl?borrowernumber=XXXX) - Pay this fine using the "Pay" button of the corresponding line from the members/pay.pl?borrowernumber=XXXX page Look at the statistics table: select * from statistics order by datetime desc limit 10; The branch value of the first line might not correspond to the library you were using to pay the payment. Test plan: Apply this patch, repeat the steps above and confirm that the library picked is now the one used to pay. Signed-off-by: Hector Castro Works as advertised Signed-off-by: Kyle M Hall Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com (cherry picked from commit 80a690588ceac464891dcb2956c3b148433a253c) Signed-off-by: Julian Maurice --- members/paycollect.pl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/members/paycollect.pl b/members/paycollect.pl index 9525464ce5..8a3204000d 100755 --- a/members/paycollect.pl +++ b/members/paycollect.pl @@ -48,8 +48,7 @@ my $borrowernumber = $input->param('borrowernumber'); my $borrower = GetMember( borrowernumber => $borrowernumber ); my $user = $input->remote_user; -# get account details -my $branch = GetBranch( $input, GetBranches() ); +my $branch = C4::Context->userenv->{'branch'}; my ( $total_due, $accts, $numaccts ) = GetMemberAccountRecords($borrowernumber); my $total_paid = $input->param('paid'); -- 2.39.5