From 979b359b27618974e60761bf42ffb378a0deda64 Mon Sep 17 00:00:00 2001
From: Kyle M Hall <kyle@bywatersolutions.com>
Date: Fri, 7 Mar 2014 07:44:57 -0500
Subject: [PATCH] Bug 6427 [Part 20] - Update C4::Circulation::AddEnrolmentFeeIfNeeded

---
 C4/Members.pm |   31 +++++++++++++++----------------
 1 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/C4/Members.pm b/C4/Members.pm
index 7a34901..106127d 100644
--- a/C4/Members.pm
+++ b/C4/Members.pm
@@ -2335,22 +2335,21 @@ Add enrolment fee for a patron if needed.
 
 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 );
+
+    my $schema = Koha::Database->new()->schema();
+
+    my $category = $schema->resultset('Category')->find($categorycode);
+    my $fee      = $category->enrolmentfee();
+
+    if ( $fee && $fee > 0 ) {
+        AddDebit(
+            {
+                borrower =>
+                  $schema->resultset('Borrower')->find($borrowernumber),
+                type   => Koha::Accounts::DebitTypes::AccountManagementFee(),
+                amount => $fee,
+            }
+        );
     }
 }
 
-- 
1.7.2.5