From: erickson Date: Tue, 10 Feb 2009 22:44:51 +0000 (+0000) Subject: initial support for adding entries to a patron's items-checked-out list X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=ee58d3826ec03d7343285de1da93bc140cb522b7;p=evergreen%2Ftadl.git initial support for adding entries to a patron's items-checked-out list git-svn-id: svn://svn.open-ils.org/ILS/trunk@12144 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm index 0fccc00107..78b3b0af37 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm @@ -2359,5 +2359,42 @@ sub run_renew_permit { } +sub append_reading_list { + my $self = shift; + my $e = $self->editor; + return undef unless $self->patron and $self->title; + + my $bkt = $e->search_container_biblio_record_entry_bucket( + {owner => $self->patron->id, btype => 'reading_list'})->[0]; + + my $pos = 1; + + if($bkt) { + # find the next position + my $last_item = $e->search_container_biblio_record_entry_bucket_item( + {bucket => $bkt->id}, {order_by => {'cbrebi' => 'pos desc'}, limit => 1})->[0]; + $pos = $last_item->pos + 1 if $last_item; + + } else { + $bkt = Fieldmapper::container::biblio_record_entry_bucket->new; + $bkt->owner($self->patron->id); + $bkt->name(''); + $bkt->btype('reading_list'); + $bkt->pub('f'); + $e->create_container_biblio_record_entry_bucket($bkt) or return $e->die_event; + + } + + my $item = Fieldmapper::container::biblio_record_entry_bucket_item->new; + $item->bucket($bkt->id); + $item->target_biblio_record_entry($self->title->id); + $item->pos($pos); + + $e->create_container_biblio_record_entry_bucket_item($item) + or return $e->die_event; + + return undef; +} +