X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;ds=sidebyside;f=admin%2Fbranch_transfer_limits.pl;h=e7422a63c5f762ae43e34894d11001b74a07b679;hb=0fe3d053ffe0adc4fda4fdb660ed93203ecc02d8;hp=8c5c0646a567f4073d00cca295ca3736d30ea53e;hpb=9cf047290377d8a610dddbf05b5655a6b0afff05;p=koha.git diff --git a/admin/branch_transfer_limits.pl b/admin/branch_transfer_limits.pl index 8c5c0646a5..e7422a63c5 100755 --- a/admin/branch_transfer_limits.pl +++ b/admin/branch_transfer_limits.pl @@ -1,6 +1,7 @@ #!/usr/bin/perl # Copyright 2000-2002 Katipo Communications +# copyright 2010 BibLibre # # This file is part of Koha. # @@ -13,17 +14,20 @@ # 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, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. use strict; +use warnings; + use CGI; use C4::Auth; use C4::Context; use C4::Output; use C4::Koha; use C4::Branch; +use C4::Circulation qw{ IsBranchTransferAllowed DeleteBranchTransferLimits CreateBranchTransferLimit }; my $input = new CGI; @@ -36,14 +40,49 @@ my ($template, $loggedinuser, $cookie) }); my $dbh = C4::Context->dbh; +my $branchcode; +if((!defined($input->param('branchcode'))) & mybranch() ne '') +{ + $branchcode = mybranch(); +} +else +{ + $branchcode = $input->param('branchcode'); +} + +my $branchname = GetBranchName($branchcode); + +# Getting the branches for user selection +my $branches = GetBranches(); +my @branch_loop; +for my $thisbranch (sort { $branches->{$a}->{branchname} cmp $branches->{$b}->{branchname} } keys %$branches) { + my %row =(value => $thisbranch, + branchname => $branches->{$thisbranch}->{'branchname'}, + selected => $thisbranch eq $branchcode ? 1 : 0, + ); + push @branch_loop, \%row; +} + -my @itemtypes; +# Set the template language for the correct limit type +my $limit_phrase = 'Collection Code'; +my $limitType = C4::Context->preference("BranchTransferLimitsType") || "ccode"; +if ( $limitType eq 'itemtype' ) { + $limit_phrase = 'Item Type'; +} + +my @codes; my @branchcodes; -my $sth = $dbh->prepare("SELECT itemtype FROM itemtypes"); +my $sth; +if ( $limitType eq 'ccode' ) { + $sth = $dbh->prepare('SELECT authorised_value AS ccode FROM authorised_values WHERE category = "CCODE"'); +} elsif ( $limitType eq 'itemtype' ) { + $sth = $dbh->prepare('SELECT itemtype FROM itemtypes'); +} $sth->execute(); while ( my $row = $sth->fetchrow_hashref ) { - push( @itemtypes, $row->{'itemtype'} ); + push( @codes, $row->{ $limitType } ); } $sth = $dbh->prepare("SELECT branchcode FROM branches"); @@ -54,15 +93,14 @@ while ( my $row = $sth->fetchrow_hashref ) { ## If Form Data Passed, Update the Database if ( $input->param('updateLimits') ) { - DeleteBranchTransferLimits(); + DeleteBranchTransferLimits($branchcode); - foreach my $itemtype ( @itemtypes ) { + + foreach my $code ( @codes ) { foreach my $toBranch ( @branchcodes ) { - foreach my $fromBranch ( @branchcodes ) { - my $isSet = $input->param( $itemtype . "_" . $toBranch . "_" . $fromBranch ); - if ( $isSet ) { - CreateBranchTransferLimit( $toBranch, $fromBranch, $itemtype ); - } + my $isSet = not $input->param( $code . "_" . $toBranch); + if ( $isSet ) { + CreateBranchTransferLimit( $toBranch, $branchcode, $code ); } } } @@ -75,45 +113,37 @@ foreach my $branchcode ( @branchcodes ) { $row_data{ branchcode } = $branchcode; push ( @branchcode_loop, \%row_data ); } +my $branchcount = scalar(@branchcode_loop); ## Build the default data -my @loop0; -foreach my $itemtype ( @itemtypes ) { - my @loop1; +my @codes_loop; +foreach my $code ( @codes ) { + my @to_branch_loop; my %row_data; - $row_data{ itemtype } = $itemtype; - $row_data{ loop1 } = \@loop1; + $row_data{ code } = $code; + $row_data{ to_branch_loop } = \@to_branch_loop; foreach my $toBranch ( @branchcodes ) { - my @loop2; my %row_data; - $row_data{ itemtype } = $itemtype; - $row_data{ toBranch } = $toBranch; - $row_data{ loop2 } = \@loop2; - - foreach my $fromBranch ( @branchcodes ) { - my %row_data; - my $isChecked = ! IsBranchTransferAllowed( $toBranch, $fromBranch, $itemtype ); - $row_data{ itemtype } = $itemtype; - $row_data{ toBranch } = $toBranch; - $row_data{ fromBranch } = $fromBranch; - $row_data{ isChecked } = $isChecked; - - push( @loop2, \%row_data ); - } - - push( @loop1, \%row_data ); + my $isChecked = IsBranchTransferAllowed( $toBranch, $branchcode, $code ); + $row_data{ code } = $code; + $row_data{ toBranch } = $toBranch; + $row_data{ isChecked } = $isChecked; + $row_data{ toBranchname } = GetBranchName($toBranch); + push( @to_branch_loop, \%row_data ); } - push( @loop0, \%row_data ); + push( @codes_loop, \%row_data ); } $template->param( - loop0 => \@loop0, + branchcount => $branchcount, + codes_loop => \@codes_loop, + branch_loop => \@branch_loop, branchcode_loop => \@branchcode_loop, - intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"), - intranetstylesheet => C4::Context->preference("intranetstylesheet"), - IntranetNav => C4::Context->preference("IntranetNav"), + branchcode => $branchcode, + branchname => $branchname, + limit_phrase => $limit_phrase, ); output_html_with_http_headers $input, $cookie, $template->output;