X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=admin%2Fclone-rules.pl;h=9dc78d80940c56d5ef3edc763e7551c6906abda0;hb=9d6d641d1f8b77271800f43bc027b651f9aea52b;hp=c9e4665a4a04daedb26ef195cc9daf100f129abb;hpb=37328c709ecb1e8868c4dd8ce344e844647d8715;p=srvgit diff --git a/admin/clone-rules.pl b/admin/clone-rules.pl index c9e4665a4a..9dc78d8094 100755 --- a/admin/clone-rules.pl +++ b/admin/clone-rules.pl @@ -4,18 +4,18 @@ # # 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 2 of the License, or (at your option) any later -# version. +# 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. +# 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, 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, see . # This script clones issuing rules from a library to another @@ -25,83 +25,41 @@ # # The script can be called with one of the parameters, both or none -use strict; -#use warnings; FIXME - Bug 2505 -use CGI; +use Modern::Perl; +use CGI qw ( -utf8 ); use C4::Context; -use C4::Output; -use C4::Auth; -use C4::Koha; -use C4::Debug; -use C4::Branch; # GetBranches +use C4::Output qw( output_html_with_http_headers ); +use C4::Auth qw( get_template_and_user ); +use Koha::CirculationRules; -my $input = new CGI; -my $dbh = C4::Context->dbh; +my $input = CGI->new; my ($template, $loggedinuser, $cookie) - = get_template_and_user({template_name => "admin/clone-rules.tmpl", + = get_template_and_user({template_name => "admin/clone-rules.tt", query => $input, type => "intranet", - authnotrequired => 0, - flagsrequired => {parameters => 'parameters_remaining_permissions'}, - debug => 1, + flagsrequired => {parameters => 'manage_circ_rules'}, }); my $frombranch = $input->param("frombranch"); my $tobranch = $input->param("tobranch"); -my $branchloop = GetBranchesLoop; $template->param(frombranch => $frombranch) if ($frombranch); -$template->param(frombranchname => GetBranchName($frombranch)) if ($frombranch); $template->param(tobranch => $tobranch) if ($tobranch); -$template->param(tobranchname => GetBranchName($tobranch)) if ($tobranch); -$template->param(branchloop => $branchloop); +if ($frombranch && $tobranch && $frombranch ne $tobranch) { + $frombranch = ( $frombranch ne '*' ? $frombranch : undef ); + $tobranch = ( $tobranch ne '*' ? $tobranch : undef ); -if ($frombranch && $tobranch) { + Koha::CirculationRules->search({branchcode => $tobranch})->delete; - my $error; - - # First, we create a temporary table with the rules we want to clone - my $query = "CREATE TEMPORARY TABLE tmpissuingrules ENGINE=memory SELECT * FROM issuingrules WHERE branchcode=?"; - my $sth = $dbh->prepare($query); - my $res = $sth->execute($frombranch); - $error = 1 unless ($res); - - if (!$error) { - # We modify these rules according to the new branchcode - $query = "UPDATE tmpissuingrules SET branchcode=? WHERE branchcode=?"; - $sth = $dbh->prepare($query); - $res = $sth->execute($tobranch, $frombranch); - $error = 1 unless ($res); - } - - if (!$error) { - # We delete the rules for the existing branchode - $query = "DELETE FROM issuingrules WHERE branchcode=?"; - $sth = $dbh->prepare($query); - $res = $sth->execute($tobranch); - $error = 1 unless ($res); - } - - - if (!$error) { - # We insert the new rules from our temporary table - $query = "INSERT INTO issuingrules SELECT * FROM tmpissuingrules WHERE branchcode=?"; - $sth = $dbh->prepare($query); - $res = $sth->execute($tobranch); - $error = 1 unless ($res); - } - - # Finally, we delete our temporary table - $query = "DROP TABLE tmpissuingrules"; - $sth = $dbh->prepare($query); - $res = $sth->execute(); - - $template->param(result => "1"); - $template->param(error => $error); + my $rules = Koha::CirculationRules->search({ branchcode => $frombranch }); + $rules->clone($tobranch); +} else { + $template->param(error => 1); } +$template->param(result => 1); output_html_with_http_headers $input, $cookie, $template->output;