Bug 12508: adding an error message if a contract cannot be removed
[koha_fer] / members / update-child.pl
index 149cb8c..6e7b1da 100755 (executable)
@@ -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 updatechild.pl
 
 =cut
 
 use strict;
+#use warnings; FIXME - Bug 2505
 use CGI;
 use C4::Context;
 use C4::Auth;
 use C4::Output;
 use C4::Members;
 
-use Smart::Comments;
+use Smart::Comments;
 
 my $dbh   = C4::Context->dbh;
 my $input = new CGI;
@@ -52,11 +53,14 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
 my $borrowernumber = $input->param('borrowernumber');
 my $catcode        = $input->param('catcode');
 my $cattype        = $input->param('cattype');
+my $catcode_multi = $input->param('catcode_multi');
 my $op             = $input->param('op');
 
 if ( $op eq 'multi' ) {
     my ( $catcodes, $labels ) =
-      GetborCatFromCatType( 'C', 'WHERE category_type <> ?' );
+               # FIXME - what are the possible upgrade paths?  C -> A , C -> S ...
+               #   currently just allowing C -> A because of limitation of API.
+      GetborCatFromCatType( 'A', 'WHERE category_type = ?' );
     my @rows;
     foreach my $k ( keys %$labels ) {
         my $row;
@@ -68,6 +72,7 @@ if ( $op eq 'multi' ) {
     }
     $template->param(
         MULTI          => 1,
+        CATCODE_MULTI          => 1,
         borrowernumber => $borrowernumber,
         CAT_LOOP       => \@rows,
     );
@@ -75,17 +80,23 @@ if ( $op eq 'multi' ) {
 }
 
 elsif ( $op eq 'update' ) {
-    my $member = GetMember($borrowernumber);
-    $member->{'guarantorid'}  = '0';
+    my $member = GetMember('borrowernumber'=>$borrowernumber);
+    $member->{'guarantorid'}  = 0;
     $member->{'categorycode'} = $catcode;
     my $borcat = GetBorrowercategory($catcode);
     $member->{'category_type'} = $borcat->{'category_type'};
     $member->{'description'}   = $borcat->{'description'};
+    delete $member->{password};
     ModMember(%$member);
-    $template->param(
-        SUCCESS        => 1,
-        borrowernumber => $borrowernumber,
-    );
-    output_html_with_http_headers $input, $cookie, $template->output;
+
+    if (  $catcode_multi ) {
+        $template->param(
+                SUCCESS        => 1,
+                borrowernumber => $borrowernumber,
+                );
+        output_html_with_http_headers $input, $cookie, $template->output;
+    } else {
+        print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$borrowernumber");
+    }
 }