use Modern::Perl;
use CGI qw ( -utf8 );
-use C4::Auth;
-use C4::Koha;
+use C4::Auth qw( get_template_and_user );
+use C4::Koha qw( GetAuthorisedValues );
use C4::Members;
-use C4::Output;
-use List::MoreUtils qw /any uniq/;
+use C4::Output qw( output_html_with_http_headers );
use Koha::DateUtils qw( dt_from_string );
-use Koha::List::Patron;
+use Koha::List::Patron qw( GetPatronLists );
use Koha::Libraries;
use Koha::Patron::Categories;
-use Koha::Patron::Debarments;
+use Koha::Patron::Debarments qw( AddDebarment DelDebarment GetDebarments );
use Koha::Patrons;
-my $input = new CGI;
+my $input = CGI->new;
my $op = $input->param('op') || 'show_form';
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
{ template_name => "tools/modborrowers.tt",
query => $input,
type => "intranet",
- authnotrequired => 0,
flagsrequired => { tools => "edit_patrons" },
}
);
my $patron_list_id = $input->param('patron_list_id');
my @borrowers;
my @cardnumbers;
- my ( @notfoundcardnumbers, @from_another_group_of_libraries );
+ my @notfoundcardnumbers;
# Get cardnumbers from a file or the input area
- my @contentlist;
if ($filefh) {
while ( my $content = <$filefh> ) {
$content =~ s/[\r\n]*$//g;
# Construct the patron attributes list
my @patron_attributes_values;
my @patron_attributes_codes;
- my $patron_attribute_types = Koha::Patron::Attribute::Types->filter_by_branch_limitations;
- my @patron_categories = Koha::Patron::Categories->search_limited({}, {order_by => ['description']});
+ my $library_id = C4::Context->userenv ? C4::Context->userenv->{'branch'} : undef;
+ my $patron_attribute_types = Koha::Patron::Attribute::Types->search_with_library_limits({}, {}, $library_id);
+ my @patron_categories = Koha::Patron::Categories->search_with_library_limits({}, {order_by => ['description']});
while ( my $attr_type = $patron_attribute_types->next ) {
# TODO Repeatable attributes are not correctly managed and can cause data lost.
# This should be implemented.
my $category_code = $attr_type->category_code;
my ( $category_lib ) = map {
- ( defined $category_code and $attr_type->categorycode eq $category_code ) ? $attr_type->description : ()
+ ( defined $category_code and $attr_type->category_code eq $category_code ) ? $attr_type->description : ()
} @patron_categories;
push @patron_attributes_codes,
{
my @disabled = $input->multi_param('disable_input');
my $infos;
- for my $field ( qw/surname firstname branchcode categorycode streetnumber address address2 city state zipcode country email phone mobile sort1 sort2 dateenrolled dateexpiry borrowernotes opacnote/ ) {
+ for my $field ( qw/surname firstname branchcode categorycode streetnumber address address2 city state zipcode country email phone mobile sort1 sort2 dateenrolled dateexpiry borrowernotes opacnote debarred debarredcomment/ ) {
my $value = $input->param($field);
$infos->{$field} = $value if $value;
$infos->{$field} = "" if grep { $_ eq $field } @disabled;
$attribute->{attribute} = $attr_values[$i];
my $attr_type = Koha::Patron::Attribute::Types->find($_);
# If this borrower is not in the category of this attribute, we don't want to modify this attribute
- ++$i and next if $attr_type->category_code and $attr_type->category_code ne $patron->category_code;
+ ++$i and next if $attr_type->category_code and $attr_type->category_code ne $patron->categorycode;
my $valuename = "attr" . $i . "_value";
if ( grep { $_ eq $valuename } @disabled ) {
# The attribute is disabled, we remove it for this borrower !