Revert "Bug 10481: FIX No enrollment fee when changing patron category."
authorKyle M Hall <kyle@bywatersolutions.com>
Tue, 14 Jan 2014 20:58:57 +0000 (15:58 -0500)
committerKyle M Hall <kyle@bywatersolutions.com>
Tue, 14 Jan 2014 20:58:57 +0000 (15:58 -0500)
This reverts commit 7d6f83012a507b43d1de54bba47cf0dca94c7adb.

C4/Members.pm

index a951a5b..dd2a6fa 100644 (file)
@@ -718,7 +718,6 @@ sub ModMember {
             $data{password} = md5_base64($data{password});
         }
     }
-    my $old_categorycode = GetBorrowerCategorycode( $data{borrowernumber} );
        my $execute_success=UpdateInTable("borrowers",\%data);
     if ($execute_success) { # only proceed if the update was a success
         # ok if its an adult (type) it may have borrowers that depend on it as a guarantor
@@ -729,17 +728,12 @@ sub ModMember {
             # is adult check guarantees;
             UpdateGuarantees(%data);
         }
-
-        # If the patron changes to a category with enrollment fee, we add a fee
-        if ( $data{categorycode} and $data{categorycode} ne $old_categorycode ) {
-            AddEnrolmentFeeIfNeeded( $data{categorycode}, $data{borrowernumber} );
-        }
-
         logaction("MEMBERS", "MODIFY", $data{'borrowernumber'}, "UPDATE (executed w/ arg: $data{'borrowernumber'})") if C4::Context->preference("BorrowersLog");
     }
     return $execute_success;
 }
 
+
 =head2 AddMember
 
   $borrowernumber = &AddMember(%borrower);
@@ -762,8 +756,19 @@ sub AddMember {
        $data{'borrowernumber'}=InsertInTable("borrowers",\%data);      
     # mysql_insertid is probably bad.  not necessarily accurate and mysql-specific at best.
     logaction("MEMBERS", "CREATE", $data{'borrowernumber'}, "") if C4::Context->preference("BorrowersLog");
-
-    AddEnrolmentFeeIfNeeded( $data{categorycode}, $data{borrowernumber} );
+    
+    # check for enrollment fee & add it if needed
+    my $sth = $dbh->prepare("SELECT enrolmentfee FROM categories WHERE categorycode=?");
+    $sth->execute($data{'categorycode'});
+    my ($enrolmentfee) = $sth->fetchrow;
+    if ($sth->err) {
+        warn sprintf('Database returned the following error: %s', $sth->errstr);
+        return;
+    }
+    if ($enrolmentfee && $enrolmentfee > 0) {
+        # insert fee in patron debts
+        manualinvoice($data{'borrowernumber'}, '', '', 'A', $enrolmentfee);
+    }
 
     return $data{'borrowernumber'};
 }
@@ -1700,10 +1705,15 @@ UPDATE borrowers
 SET  dateexpiry='$date' 
 WHERE borrowernumber='$borrowerid'
 EOF
-
-    AddEnrolmentFeeIfNeeded( $borrower->{categorycode}, $borrower->{borrowernumber} );
-
-    logaction("MEMBERS", "RENEW", $borrower->{'borrowernumber'}, "Membership renewed")if C4::Context->preference("BorrowersLog");
+    # add enrolmentfee if needed
+    $sth = $dbh->prepare("SELECT enrolmentfee FROM categories WHERE categorycode=?");
+    $sth->execute($borrower->{'categorycode'});
+    my ($enrolmentfee) = $sth->fetchrow;
+    if ($enrolmentfee && $enrolmentfee > 0) {
+        # insert fee in patron debts
+        manualinvoice($borrower->{'borrowernumber'}, '', '', 'A', $enrolmentfee);
+    }
+     logaction("MEMBERS", "RENEW", $borrower->{'borrowernumber'}, "Membership renewed")if C4::Context->preference("BorrowersLog");
     return $date if ($sth);
     return 0;
 }
@@ -2330,35 +2340,6 @@ sub GetBorrowersWithEmail {
 }
 
 
-=head2 AddEnroltmenFeeIfNeeded
-
-    AddEnrolmentFeeIfNeeded( $borrower->{categorycode}, $borrower->{borrowernumber} );
-
-Add enrolment fee for a patron if needed.
-
-=cut
-
-sub AddEnrolmentFeeIfNeeded {
-    my ( $categorycode, $borrowernumber ) = @_;
-    # check for enrollment fee & add it if needed
-    my $dbh = C4::Context->dbh;
-    my $sth = $dbh->prepare(q{
-        SELECT enrolmentfee
-        FROM categories
-        WHERE categorycode=?
-    });
-    $sth->execute( $categorycode );
-    if ( $sth->err ) {
-        warn sprintf('Database returned the following error: %s', $sth->errstr);
-        return;
-    }
-    my ($enrolmentfee) = $sth->fetchrow;
-    if ($enrolmentfee && $enrolmentfee > 0) {
-        # insert fee in patron debts
-        C4::Accounts::manualinvoice( $borrowernumber, '', '', 'A', $enrolmentfee );
-    }
-}
-
 END { }    # module clean-up code here (global destructor)
 
 1;