|
Lines 33-105
use C4::Accounts;
Link Here
|
| 33 |
use C4::Items; |
33 |
use C4::Items; |
| 34 |
use C4::Members::Attributes qw(GetBorrowerAttributes); |
34 |
use C4::Members::Attributes qw(GetBorrowerAttributes); |
| 35 |
|
35 |
|
| 36 |
use Koha::Account; |
|
|
| 37 |
use Koha::Items; |
36 |
use Koha::Items; |
| 38 |
use Koha::Patrons; |
37 |
use Koha::Patrons; |
| 39 |
use Koha::Patron::Categories; |
38 |
use Koha::Patron::Categories; |
| 40 |
use Koha::Token; |
39 |
use Koha::Token; |
| 41 |
|
40 |
|
| 42 |
my $input=new CGI; |
41 |
my $input=new CGI; |
| 43 |
my $flagsrequired = { borrowers => 'edit_borrowers', updatecharges => 1 }; |
|
|
| 44 |
|
42 |
|
| 45 |
my $borrowernumber=$input->param('borrowernumber'); |
43 |
my ($template, $loggedinuser, $cookie) = get_template_and_user( |
|
|
44 |
{ |
| 45 |
template_name => "members/mancredit.tt", |
| 46 |
query => $input, |
| 47 |
type => "intranet", |
| 48 |
authnotrequired => 0, |
| 49 |
flagsrequired => { borrowers => 'edit_borrowers', |
| 50 |
updatecharges => 'remaining_permissions' } |
| 51 |
} |
| 52 |
); |
| 53 |
|
| 54 |
my $logged_in_user = Koha::Patrons->find($loggedinuser) or die "Not logged in"; |
| 55 |
my $borrowernumber = $input->param('borrowernumber'); |
| 56 |
my $patron = Koha::Patrons->find($borrowernumber); |
| 46 |
|
57 |
|
| 47 |
my $patron = Koha::Patrons->find( $borrowernumber ); |
|
|
| 48 |
unless ( $patron ) { |
58 |
unless ( $patron ) { |
| 49 |
print $input->redirect("/cgi-bin/koha/circ/circulation.pl?borrowernumber=$borrowernumber"); |
59 |
print $input->redirect("/cgi-bin/koha/circ/circulation.pl?borrowernumber=$borrowernumber"); |
| 50 |
exit; |
60 |
exit; |
| 51 |
} |
61 |
} |
| 52 |
my $add=$input->param('add'); |
62 |
my $add = $input->param('add'); |
| 53 |
|
63 |
|
| 54 |
if ($add){ |
64 |
if ($add){ |
| 55 |
|
65 |
|
| 56 |
my ( $user_id ) = checkauth( $input, 0, $flagsrequired, 'intranet' ); |
66 |
die "Wrong CSRF token" |
| 57 |
|
67 |
unless Koha::Token->new->check_csrf( { |
| 58 |
if ( $user_id ) { |
68 |
session_id => scalar $input->cookie('CGISESSID'), |
| 59 |
|
69 |
token => scalar $input->param('csrf_token'), |
| 60 |
die "Wrong CSRF token" |
|
|
| 61 |
unless Koha::Token->new->check_csrf( { |
| 62 |
session_id => scalar $input->cookie('CGISESSID'), |
| 63 |
token => scalar $input->param('csrf_token'), |
| 64 |
}); |
| 65 |
|
| 66 |
# Note: If the logged in user is not allowed to see this patron an invoice can be forced |
| 67 |
# Here we are trusting librarians not to hack the system |
| 68 |
my $barcode = $input->param('barcode'); |
| 69 |
my $item_id; |
| 70 |
if ($barcode) { |
| 71 |
my $item = Koha::Items->find({barcode => $barcode}); |
| 72 |
$item_id = $item->itemnumber if $item; |
| 73 |
} |
| 74 |
my $description = $input->param('desc'); |
| 75 |
my $note = $input->param('note'); |
| 76 |
my $amount = $input->param('amount') || 0; |
| 77 |
my $type = $input->param('type'); |
| 78 |
|
| 79 |
Koha::Account->new({ patron_id => $borrowernumber })->add_credit({ |
| 80 |
amount => $amount, |
| 81 |
description => $description, |
| 82 |
item_id => $item_id, |
| 83 |
note => $note, |
| 84 |
type => $type, |
| 85 |
user_id => $user_id |
| 86 |
}); |
70 |
}); |
| 87 |
|
71 |
|
| 88 |
print $input->redirect("/cgi-bin/koha/members/boraccount.pl?borrowernumber=$borrowernumber"); |
72 |
# Note: If the logged in user is not allowed to see this patron an invoice can be forced |
|
|
73 |
# Here we are trusting librarians not to hack the system |
| 74 |
my $barcode = $input->param('barcode'); |
| 75 |
my $item_id; |
| 76 |
if ($barcode) { |
| 77 |
my $item = Koha::Items->find({barcode => $barcode}); |
| 78 |
$item_id = $item->itemnumber if $item; |
| 89 |
} |
79 |
} |
|
|
80 |
my $description = $input->param('desc'); |
| 81 |
my $note = $input->param('note'); |
| 82 |
my $amount = $input->param('amount') || 0; |
| 83 |
my $type = $input->param('type'); |
| 84 |
|
| 85 |
$patron->account->add_credit({ |
| 86 |
amount => $amount, |
| 87 |
description => $description, |
| 88 |
item_id => $item_id, |
| 89 |
note => $note, |
| 90 |
type => $type, |
| 91 |
user_id => $logged_in_user->id |
| 92 |
}); |
| 93 |
|
| 94 |
print $input->redirect("/cgi-bin/koha/members/boraccount.pl?borrowernumber=$borrowernumber"); |
| 95 |
|
| 90 |
} else { |
96 |
} else { |
| 91 |
my ($template, $loggedinuser, $cookie) = get_template_and_user( |
|
|
| 92 |
{ |
| 93 |
template_name => "members/mancredit.tt", |
| 94 |
query => $input, |
| 95 |
type => "intranet", |
| 96 |
authnotrequired => 0, |
| 97 |
flagsrequired => { borrowers => 'edit_borrowers', |
| 98 |
updatecharges => 'remaining_permissions' }, |
| 99 |
debug => 1, |
| 100 |
} |
| 101 |
); |
| 102 |
my $logged_in_user = Koha::Patrons->find( $loggedinuser ) or die "Not logged in"; |
| 103 |
output_and_exit_if_error( $input, $cookie, $template, { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } ); |
97 |
output_and_exit_if_error( $input, $cookie, $template, { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } ); |
| 104 |
|
98 |
|
| 105 |
if (C4::Context->preference('ExtendedPatronAttributes')) { |
99 |
if (C4::Context->preference('ExtendedPatronAttributes')) { |
| 106 |
- |
|
|