Fix upgrade-child: could not update child unless guarantor was defined. Also, limit...
authorRyan Higgins <rch@liblime.com>
Thu, 12 Jun 2008 21:23:32 +0000 (16:23 -0500)
committerJoshua Ferraro <jmf@liblime.com>
Thu, 12 Jun 2008 21:36:50 +0000 (16:36 -0500)
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
C4/Members.pm
members/moremember.pl
members/update-child.pl

index 0fd01f2..9c34351 100644 (file)
@@ -1322,13 +1322,14 @@ to category descriptions.
 #'
 sub GetborCatFromCatType {
     my ( $category_type, $action ) = @_;
+       # FIXME - This API  seems both limited and dangerous. 
     my $dbh     = C4::Context->dbh;
     my $request = qq|   SELECT categorycode,description 
             FROM categories 
             $action
             ORDER BY categorycode|;
     my $sth = $dbh->prepare($request);
-    if ($action) {
+       if ($action) {
         $sth->execute($category_type);
     }
     else {
index 723bb74..5989627 100755 (executable)
@@ -131,19 +131,18 @@ $data->{'ethnicity'} = fixEthnicity( $data->{'ethnicity'} );
 $data->{ "sex_".$data->{'sex'}."_p" } = 1;
 
 my $catcode;
-if ( $category_type eq 'C' and $data->{'guarantorid'} ne '0' ) {
-    my $data2 = GetMember( $data->{'guarantorid'} ,'borrowernumber');
-    foreach (qw(address city B_address B_city phone mobile zipcode)) {
-        $data->{$_} = $data2->{$_};
-    }
-    my  ( $catcodes, $labels ) = 
-        GetborCatFromCatType( 'A', 'WHERE category_type = ?' );
-    my $cnt = scalar(@$catcodes);
-
-#     $cnt  =  1;
-    $template->param( 'CATCODE_MULTI' => 1) if $cnt > 1;
-       
-    $template->param( 'catcode' =>    $catcodes->[0])  if $cnt == 1;
+if ( $category_type eq 'C') {
+       if ($data->{'guarantorid'} ne '0' ) {
+       my $data2 = GetMember( $data->{'guarantorid'} ,'borrowernumber');
+       foreach (qw(address city B_address B_city phone mobile zipcode)) {
+           $data->{$_} = $data2->{$_};
+       }
+   }
+   my  ( $catcodes, $labels ) =  GetborCatFromCatType( 'A', 'WHERE category_type = ?' );
+   my $cnt = scalar(@$catcodes);
+
+   $template->param( 'CATCODE_MULTI' => 1) if $cnt > 1;
+   $template->param( 'catcode' =>    $catcodes->[0])  if $cnt == 1;
 }
 
 
index 7045299..cdfc5ff 100755 (executable)
@@ -57,7 +57,9 @@ 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;