Bug 32030: Add users to licenses
[koha.git] / Koha / ERM / License.pm
1 package Koha::ERM::License;
2
3 # This file is part of Koha.
4 #
5 # Koha is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
9 #
10 # Koha is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with Koha; if not, see <http://www.gnu.org/licenses>.
17
18 use Modern::Perl;
19
20 use Koha::Database;
21
22 use base qw(Koha::Object);
23
24 use Koha::Acquisition::Bookseller;
25 use Koha::ERM::UserRoles;
26 use Koha::ERM::Documents;
27
28 =head1 NAME
29
30 Koha::ERM::License - Koha ERM License Object class
31
32 =head1 API
33
34 =head2 Class Methods
35
36 =cut
37
38 =head3 user_roles
39
40 Returns the user roles for this license
41
42 =cut
43
44 sub user_roles {
45     my ( $self, $user_roles ) = @_;
46
47     if ( $user_roles ) {
48         my $schema = $self->_result->result_source->schema;
49         $schema->txn_do(
50             sub {
51                 $self->user_roles->delete;
52
53                 for my $user_role (@$user_roles) {
54                     $self->_result->add_to_erm_user_roles($user_role);
55                 }
56             }
57         );
58     }
59     my $user_roles_rs = $self->_result->erm_user_roles;
60     return Koha::ERM::UserRoles->_new_from_dbic($user_roles_rs);
61 }
62
63 =head3 documents
64
65 Returns or updates the documents for this license
66
67 =cut
68
69 sub documents {
70     my ( $self, $documents ) = @_;
71     if ($documents) {
72         $self->documents->replace_with($documents, $self);
73     }
74     my $documents_rs = $self->_result->erm_documents;
75     return Koha::ERM::Documents->_new_from_dbic($documents_rs);
76 }
77
78 =head3 vendor
79
80 Return the vendor for this license
81
82 =cut
83
84 sub vendor {
85     my ( $self ) = @_;
86     my $vendor_rs = $self->_result->vendor;
87     return unless $vendor_rs;
88     return Koha::Acquisition::Bookseller->_new_from_dbic($vendor_rs);
89 }
90
91 =head2 Internal methods
92
93 =head3 _type
94
95 =cut
96
97 sub _type {
98     return 'ErmLicense';
99 }
100
101 1;