Koha/admin/branches.pl
Kyle M Hall 2059f7d801 Bug 16735: Migrate library search groups into the new hierarchical groups
Test Plan:
1) Apply this patch set
2) Note your existing search groups have been ported over to the new
   __SEARCH_GROUPS__ group if you had any
3) Create the group __SEARCH_GROUPS__ if one does not already exist
4) Add some first level subgroups to this group, add libraries to those groups
5) Search the library group searching in the intranet and opac
6) Note you get the same results as pre-patch

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2018-02-12 15:41:25 -03:00

159 lines
4.4 KiB
Perl
Executable file

#!/usr/bin/perl
# Copyright 2000-2002 Katipo Communications
# Copyright 2015 Koha Development Team
#
# This file is part of Koha.
#
# Koha is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# Koha is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Koha; if not, see <http://www.gnu.org/licenses>.
use Modern::Perl;
use CGI qw ( -utf8 );
use C4::Auth;
use C4::Context;
use C4::Output;
use C4::Koha;
use Koha::Patrons;
use Koha::Items;
use Koha::Libraries;
my $input = new CGI;
my $branchcode = $input->param('branchcode');
my $categorycode = $input->param('categorycode');
my $op = $input->param('op') || 'list';
my @messages;
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
{ template_name => "admin/branches.tt",
query => $input,
type => "intranet",
authnotrequired => 0,
flagsrequired => { parameters => 'parameters_remaining_permissions' },
debug => 1,
}
);
if ( $op eq 'add_form' ) {
my $library;
if ($branchcode) {
$library = Koha::Libraries->find($branchcode);
}
$template->param(
library => $library,
);
} elsif ( $op eq 'add_validate' ) {
my @fields = qw(
branchname
branchaddress1
branchaddress2
branchaddress3
branchzip
branchcity
branchstate
branchcountry
branchphone
branchfax
branchemail
branchreplyto
branchreturnpath
branchurl
issuing
branchip
branchnotes
opac_info
marcorgcode
);
my $is_a_modif = $input->param('is_a_modif');
if ($is_a_modif) {
my $library = Koha::Libraries->find($branchcode);
for my $field (@fields) {
$library->$field( scalar $input->param($field) );
}
eval { $library->store; };
if ($@) {
push @messages, { type => 'alert', code => 'error_on_update' };
} else {
push @messages, { type => 'message', code => 'success_on_update' };
}
} else {
$branchcode =~ s|\s||g;
my $library = Koha::Library->new(
{ branchcode => $branchcode,
( map { $_ => scalar $input->param($_) || undef } @fields )
}
);
eval { $library->store; };
if ($@) {
push @messages, { type => 'alert', code => 'error_on_insert' };
} else {
push @messages, { type => 'message', code => 'success_on_insert' };
}
}
$op = 'list';
} elsif ( $op eq 'delete_confirm' ) {
my $library = Koha::Libraries->find($branchcode);
my $items_count = Koha::Items->search(
{ -or => {
holdingbranch => $branchcode,
homebranch => $branchcode
},
}
)->count;
my $patrons_count = Koha::Patrons->search( { branchcode => $branchcode, } )->count;
if ( $items_count or $patrons_count ) {
push @messages,
{ type => 'alert',
code => 'cannot_delete_library',
data => {
items_count => $items_count,
patrons_count => $patrons_count,
},
};
$op = 'list';
} else {
$template->param(
library => $library,
items_count => $items_count,
patrons_count => $patrons_count,
);
}
} elsif ( $op eq 'delete_confirmed' ) {
my $library = Koha::Libraries->find($branchcode);
my $deleted = eval { $library->delete; };
if ( $@ or not $deleted ) {
push @messages, { type => 'alert', code => 'error_on_delete' };
} else {
push @messages, { type => 'message', code => 'success_on_delete' };
}
$op = 'list';
} else {
$op = 'list';
}
if ( $op eq 'list' ) {
my $libraries = Koha::Libraries->search( {}, { order_by => ['branchcode'] }, );
$template->param( libraries => $libraries, );
}
$template->param(
messages => \@messages,
op => $op,
);
output_html_with_http_headers $input, $cookie, $template->output;