Bug 13084 [Master] - QA Followup - Use DBIx::Class to simplify logic
authorKyle M Hall <kyle@bywatersolutions.com>
Fri, 17 Oct 2014 11:52:13 +0000 (07:52 -0400)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Thu, 23 Oct 2014 13:40:57 +0000 (10:40 -0300)
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>

C4/Members.pm

index da8dfaf..0978078 100644 (file)
@@ -1814,28 +1814,16 @@ The routine returns 1 for success, undef for failure.
 
 sub MoveMemberToDeleted {
     my ($member) = shift or return;
-    my $dbh = C4::Context->dbh;
-    my $query = qq|SELECT * 
-          FROM borrowers 
-          WHERE borrowernumber=?|;
-    my $sth = $dbh->prepare($query);
-    $sth->execute($member);
-    my $data = $sth->fetchrow_hashref;
-    return if !$data;  # probably bad borrowernumber
-
-    #now construct a insert query that does not depend on the same order of
-    #columns in borrowers and deletedborrowers (see BZ 13084)
-    my $insertq = "INSERT INTO deletedborrowers (";
-    my @values;
-    foreach my $key ( keys %$data ) {
-        $insertq.= $key.",";
-        push @values, $data->{$key};
-    }
-    $insertq =~ s/,$//; #remove last comma
-    $insertq .= ") VALUES (" . ( "?," x ( scalar(@values) - 1 ) ) . "?)";
-    $sth = $dbh->prepare( $insertq );
-    $sth->execute(@values);
-    return $sth->err? undef: 1;
+
+    my $schema       = Koha::Database->new()->schema();
+    my $borrowers_rs = $schema->resultset('Borrower');
+    $borrowers_rs->result_class('DBIx::Class::ResultClass::HashRefInflator');
+    my $borrower = $borrowers_rs->find($member);
+    return unless $borrower;
+
+    my $deleted = $schema->resultset('Deletedborrower')->create($borrower);
+
+    return $deleted ? 1 : undef;
 }
 
 =head2 DelMember