use Koha::Issues;
use Koha::OldIssues;
use Koha::Patron::Categories;
-use Koha::Patron::HouseboundProfiles;
+use Koha::Patron::HouseboundProfile;
+use Koha::Patron::HouseboundRole;
use Koha::Patron::Images;
use Koha::Patrons;
use Koha::Virtualshelves;
sub housebound_profile {
my ( $self ) = @_;
+ my $profile = $self->_result->housebound_profile;
+ return Koha::Patron::HouseboundProfile->_new_from_dbic($profile)
+ if ( $profile );
+ return 0;
+}
+
+=head3 housebound_role
+
+Returns the HouseboundRole associated with this patron.
+
+=cut
+
+sub housebound_role {
+ my ( $self ) = @_;
- return Koha::Patron::HouseboundProfiles->find($self->borrowernumber);
+ my $role = $self->_result->housebound_role;
+ return Koha::Patron::HouseboundRole->_new_from_dbic($role) if ( $role );
+ return 0;
}
=head3 siblings
sub search_housebound_choosers {
my ( $self ) = @_;
- my $cho = $self->_resultset->search
- ->search_related('borrower_attributes', {
- code => 'HSBND',
- attribute => 'CHO',
+ my $cho = $self->_resultset
+ ->search_related('housebound_role', {
+ housebound_chooser => 1,
})->search_related('borrowernumber');
return Koha::Patrons->_new_from_dbic($cho);
}
sub search_housebound_deliverers {
my ( $self ) = @_;
- my $del = $self->_resultset->search
- ->search_related('borrower_attributes', {
- code => 'HSBND',
- attribute => 'DEL',
+ my $del = $self->_resultset
+ ->search_related('housebound_role', {
+ housebound_deliverer => 1,
})->search_related('borrowernumber');
return Koha::Patrons->_new_from_dbic($del);
}
use Koha::Database;
use Koha::Patrons;
-use Test::More tests => 6;
+use Test::More tests => 2;
use_ok('Koha::Patron');
"Fetch housebound_profile."
);
-# patron_choosers and patron_deliverers Tests
-
-# Current Patron Chooser / Deliverer count
-my $orig_del_count = Koha::Patrons->search_housebound_deliverers->count;
-my $orig_cho_count = Koha::Patrons->search_housebound_choosers->count;
-
-# We add one, just in case the above is 0, so we're guaranteed one of each.
-my $patron_chooser = $builder->build({ source => 'Borrower' });
-$builder->build({
- source => 'BorrowerAttribute',
- value => {
- borrowernumber => $patron_chooser->{borrowernumber},
- code => 'HSBND',
- attribute => 'CHO',
- password => undef,
- },
-});
-
-my $patron_deliverer = $builder->build({ source => 'Borrower' });
-$builder->build({
- source => 'BorrowerAttribute',
- value => {
- borrowernumber => $patron_deliverer->{borrowernumber},
- code => 'HSBND',
- attribute => 'DEL',
- password => undef,
- },
-});
-
-# Test search_housebound_choosers
-is(Koha::Patrons->search_housebound_choosers->count, $orig_cho_count + 1, "Correct count of choosers.");
-is(Koha::Patrons->search_housebound_deliverers->count, $orig_del_count + 1, "Correct count of deliverers");
-
-isa_ok(Koha::Patrons->search_housebound_choosers->next, "Koha::Patron");
-isa_ok(Koha::Patrons->search_housebound_deliverers->next, "Koha::Patron");
-
$schema->storage->txn_rollback;
1;
--- /dev/null
+#!/usr/bin/perl
+
+# This file is part of Koha.
+#
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
+
+use Modern::Perl;
+
+use Test::More tests => 6;
+
+use Koha::Database;
+use Koha::Patron::HouseboundRoles;
+use Koha::Patrons;
+
+use t::lib::TestBuilder;
+
+my $schema = Koha::Database->new->schema;
+$schema->storage->txn_begin;
+
+my $builder = t::lib::TestBuilder->new;
+
+# Profile Tests
+
+my $role = $builder->build({ source => 'HouseboundRole' });
+
+is(
+ Koha::Patron::HouseboundRoles
+ ->find($role->{borrowernumber_id})->borrowernumber_id,
+ $role->{borrowernumber_id},
+ "Find created role."
+);
+
+my @roles = Koha::Patron::HouseboundRoles
+ ->search({ borrowernumber_id => $role->{borrowernumber_id} });
+my $found_role = shift @roles;
+is(
+ $found_role->borrowernumber_id,
+ $role->{borrowernumber_id},
+ "Search for created role."
+);
+
+# patron_choosers and patron_deliverers Tests
+
+# Current Patron Chooser / Deliverer count
+my $orig_del_count = Koha::Patrons->search_housebound_deliverers->count;
+my $orig_cho_count = Koha::Patrons->search_housebound_choosers->count;
+
+# We add one, just in case the above is 0, so we're guaranteed one of each.
+my $patron_chooser = $builder->build({ source => 'Borrower' });
+$builder->build({
+ source => 'HouseboundRole',
+ value => {
+ borrowernumber_id => $patron_chooser->{borrowernumber},
+ housebound_chooser => 1,
+ },
+});
+
+my $patron_deliverer = $builder->build({ source => 'Borrower' });
+$builder->build({
+ source => 'HouseboundRole',
+ value => {
+ borrowernumber_id => $patron_deliverer->{borrowernumber},
+ housebound_deliverer => 1,
+ },
+});
+
+# Test search_housebound_choosers
+is(Koha::Patrons->search_housebound_choosers->count, $orig_cho_count + 1, "Correct count of choosers.");
+is(Koha::Patrons->search_housebound_deliverers->count, $orig_del_count + 1, "Correct count of deliverers");
+
+isa_ok(Koha::Patrons->search_housebound_choosers->next, "Koha::Patron");
+isa_ok(Koha::Patrons->search_housebound_deliverers->next, "Koha::Patron");
+
+
+$schema->storage->txn_rollback;
+
+1;