Bug 37480: Make addroutingmember use Koha::Subscription::Routinglists

This patch rewriteis the method so it relies on Koha::Object-based
classes instead of the old way.

To test:
1. Run:
   $ ktd --shell
  k$ prove t/db_dependent/Serials.t
=> SUCCESS: Tests pass!
2. Apply this patch
3. Repeat 1
=> SUCCESS: Tests pass!
4. Run:
   $ git grep addroutingmember
=> SUCCESS: It is only called on a single .pl file which doesn't care
about the return value. Neither the tests care.
5. Sign off :-D

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This commit is contained in:
Tomás Cohen Arazi 2024-07-25 14:20:09 -03:00 committed by Katrin Fischer
parent c895a8d563
commit 27f94d8f9b
Signed by: kfischer
GPG key ID: 0EF6E2C03357A834

View file

@ -46,6 +46,7 @@ use Koha::DateUtils qw( dt_from_string );
use Koha::Serial;
use Koha::SharedContent;
use Koha::Subscription::Histories;
use Koha::Subscription::Routinglists;
use Koha::Subscriptions;
use Koha::Suggestions;
use Koha::TemplateUtils qw( process_tt );
@ -2017,21 +2018,18 @@ of either 1 or highest current rank + 1
sub addroutingmember {
my ( $borrowernumber, $subscriptionid ) = @_;
return unless ($borrowernumber and $subscriptionid);
return unless ( $borrowernumber and $subscriptionid );
my $rank;
my $dbh = C4::Context->dbh;
my $sth = $dbh->prepare( "SELECT max(ranking) `rank` FROM subscriptionroutinglist WHERE subscriptionid = ?" );
$sth->execute($subscriptionid);
while ( my $line = $sth->fetchrow_hashref ) {
if ( defined $line->{rank} && $line->{rank} > 0 ) {
$rank = $line->{rank} + 1;
} else {
$rank = 1;
my $max_ranking = Koha::Subscription::Routinglists->search( { subscriptionid => $subscriptionid } )
->_resultset->get_column('ranking')->max;
return Koha::Subscription::Routinglist->new(
{
subscriptionid => $subscriptionid,
borrowernumber => $borrowernumber,
ranking => defined $max_ranking ? $max_ranking + 1 : 1,
}
}
$sth = $dbh->prepare( "INSERT INTO subscriptionroutinglist (subscriptionid,borrowernumber,ranking) VALUES (?,?,?)" );
$sth->execute( $subscriptionid, $borrowernumber, $rank );
)->store();
}
=head2 reorder_members