+ # confirm settings change...
+ my $params = $input->Vars;
+ unless ( $params->{'branchcode'} && $params->{'branchname'} ) {
+ $template->param( else => 1 );
+ default("MESSAGE1",$template);
+ }
+ else {
+ 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);
+ }
+ }
+ }
+}
+elsif ( $op eq 'delete' ) {
+ # if the user has pressed the "delete branch" button.
+
+ # check to see if the branchcode is being used in the database somewhere....
+ my $dbh = C4::Context->dbh;
+ 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);
+ }
+ else {
+ $template->param( delete_confirm => 1 );
+ $template->param( branchname => $branchname );
+ $template->param( branchcode => $branchcode );
+ }
+}
+elsif ( $op eq 'delete_confirmed' ) {
+
+ # actually delete branch and return to the main screen....
+ DelBranch($branchcode);
+ $template->param( else => 1 );
+ default("MESSAGE3",$template);
+}
+elsif ( $op eq 'editcategory' ) {