X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=admin%2Fbranches.pl;h=27d374e987cdb0024a95a7474ef38673fa0f3fbd;hb=b49a0a30a15ea416bbf4e01d23d3db1e4e21ea0f;hp=8150a1de28d715357c85b8be98287837f31fe974;hpb=34f1987dcb015dd804579d61717c805be119b620;p=koha_fer diff --git a/admin/branches.pl b/admin/branches.pl index 8150a1de28..27d374e987 100755 --- a/admin/branches.pl +++ b/admin/branches.pl @@ -13,9 +13,9 @@ # 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. =head1 branches.pl @@ -96,16 +96,28 @@ elsif ( $op eq 'add_validate' ) { default("MESSAGE1",$template); } else { - my $error = ModBranch($params); # FIXME: causes warnings to log on duplicate branchcode - # if error saving, stay on edit and rise error - if ($error) { - # copy input parameters back to form - # FIXME - doing this doesn't preserve any branch group selections, but good enough for now - editbranchform($branchcode,$template); - $template->param( 'heading-branches-add-branch-p' => 1, 'add' => 1, "ERROR$error" => 1 ); - } else { - $template->param( else => 1); - default("MESSAGE2",$template); + my $mod_branch = 1; + if ($params->{add}) { + my ($existing) = + C4::Context->dbh->selectrow_array("SELECT count(*) FROM branches WHERE branchcode = ?", {}, $branchcode); + if ($existing > 0) { + $mod_branch = 0; + _branch_to_template($params, $template); # preserve most (FIXME) of user's input + $template->param( 'heading-branches-add-branch-p' => 1, 'add' => 1, 'ERROR1' => 1 ); + } + } + if ($mod_branch) { + my $error = ModBranch($params); # FIXME: causes warnings to log on duplicate branchcode + # if error saving, stay on edit and rise error + if ($error) { + # copy input parameters back to form + # FIXME - doing this doesn't preserve any branch group selections, but good enough for now + editbranchform($branchcode,$template); + $template->param( 'heading-branches-add-branch-p' => 1, 'add' => 1, "ERROR$error" => 1 ); + } else { + $template->param( else => 1); + default("MESSAGE2",$template); + } } } } @@ -114,10 +126,21 @@ elsif ( $op eq 'delete' ) { # check to see if the branchcode is being used in the database somewhere.... my $dbh = C4::Context->dbh; - my $sth = $dbh->prepare("select count(*) from items where holdingbranch=? or homebranch=?"); - $sth->execute( $branchcode, $branchcode ); - my ($total) = $sth->fetchrow_array; - if ($total) { + my $sthitems = $dbh->prepare("select count(*) from items where holdingbranch=? or homebranch=?"); + my $sthborrowers = $dbh->prepare("select count(*) from borrowers where branchcode=?"); + $sthitems->execute( $branchcode, $branchcode ); + $sthborrowers->execute( $branchcode ); + my ($totalitems) = $sthitems->fetchrow_array; + my ($totalborrowers) = $sthborrowers->fetchrow_array; + if ($totalitems && !$totalborrowers) { + $template->param( else => 1 ); + default("MESSAGE10", $template); + } + elsif (!$totalitems && $totalborrowers){ + $template->param( else => 1 ); + default("MESSAGE11", $template); + } + elsif ($totalitems && $totalborrowers){ $template->param( else => 1 ); default("MESSAGE7", $template); } @@ -148,6 +171,16 @@ elsif ( $op eq 'addcategory_validate' ) { unless ( $params->{'categorycode'} && $params->{'categoryname'} ) { default("MESSAGE4",$template); } + elsif ($input->param('add')){ + # doing an add must check the code is unique + if (CheckCategoryUnique($input->param('categorycode'))){ + ModBranchCategoryInfo($params); + default("MESSAGE5",$template); + } + else { + default("MESSAGE9",$template); + } + } else { ModBranchCategoryInfo($params); default("MESSAGE5",$template); @@ -207,22 +240,7 @@ sub editbranchform { # get the old printer of the branch $oldprinter = $data->{'branchprinter'} || ''; - $innertemplate->param( - branchcode => $data->{'branchcode'}, - branch_name => $data->{'branchname'}, - branchaddress1 => $data->{'branchaddress1'}, - branchaddress2 => $data->{'branchaddress2'}, - branchaddress3 => $data->{'branchaddress3'}, - branchzip => $data->{'branchzip'}, - branchcity => $data->{'branchcity'}, - branchcountry => $data->{'branchcountry'}, - branchphone => $data->{'branchphone'}, - branchfax => $data->{'branchfax'}, - branchemail => $data->{'branchemail'}, - branchurl => $data->{'branchurl'}, - branchip => $data->{'branchip'}, - branchnotes => $data->{'branchnotes'}, - ); + _branch_to_template($data, $innertemplate); } foreach my $thisprinter ( keys %$printers ) { @@ -374,6 +392,26 @@ sub branchinfotable { } +sub _branch_to_template { + my ($data, $template) = @_; + $template->param( + branchcode => $data->{'branchcode'}, + branch_name => $data->{'branchname'}, + branchaddress1 => $data->{'branchaddress1'}, + branchaddress2 => $data->{'branchaddress2'}, + branchaddress3 => $data->{'branchaddress3'}, + branchzip => $data->{'branchzip'}, + branchcity => $data->{'branchcity'}, + branchcountry => $data->{'branchcountry'}, + branchphone => $data->{'branchphone'}, + branchfax => $data->{'branchfax'}, + branchemail => $data->{'branchemail'}, + branchurl => $data->{'branchurl'}, + branchip => $data->{'branchip'}, + branchnotes => $data->{'branchnotes'}, + ); +} + output_html_with_http_headers $input, $cookie, $template->output; # Local Variables: