View | Details | Raw Unified | Return to bug 24857
Collapse All | Expand All

(-)a/Koha/Biblio/Volume.pm (-1 / +94 lines)
Lines 19-24 use Modern::Perl; Link Here
19
19
20
use base qw(Koha::Object);
20
use base qw(Koha::Object);
21
21
22
use Koha::Biblio::Volume::Items;
23
use Koha::Exceptions::Object;
24
use Koha::Items;
25
22
=head1 NAME
26
=head1 NAME
23
27
24
Koha::Volume - Koha Volume Object class
28
Koha::Volume - Koha Volume Object class
Lines 27-34 Koha::Volume - Koha Volume Object class Link Here
27
31
28
=head2 Class methods
32
=head2 Class methods
29
33
34
=head3 store
35
36
    $volume->store;
37
38
Overloaded I<store> method that takes care of creation date handling.
39
40
=cut
41
42
sub store {
43
    my ($self) = @_;
44
45
    unless ( $self->in_storage ) {
46
        # new entry
47
        $self->set(
48
            {
49
                created_on => \'NOW()'
50
            }
51
        );
52
    }
53
54
    return $self->SUPER::store();
55
}
56
57
=head3 items
58
59
    my $items = $volume->items;
60
61
Returns all the items linked to the volume.
62
63
=cut
64
65
sub items {
66
    my ($self) = @_;
67
68
    my $items_rs = $self->_result->volume_items;
69
    my @item_numbers = $items_rs->get_column('itemnumber')->all;
70
71
    return unless @item_numbers;
72
73
    return Koha::Items->search(
74
        {
75
            itemnumber => {
76
                -in => \@item_numbers
77
            }
78
        }
79
    );
80
}
81
82
=head3 add_item
83
84
    $volume->add_item({ item_id => $item_id });
85
30
=cut
86
=cut
31
87
88
sub add_item {
89
    my ($self, $params) = @_;
90
91
    my $item_id = $params->{item_id};
92
93
    my $item = Koha::Items->find( $item_id );
94
    unless ( $item->biblionumber == $self->biblionumber ) {
95
        Koha::Exceptions::Object::FKConstraint->throw(
96
            broken_fk => 'biblionumber'
97
        );
98
    }
99
100
    Koha::Biblio::Volume::Item->new(
101
        {
102
            itemnumber => $item_id,
103
            volume_id  => $self->id
104
        }
105
    )->store;
106
107
    return $self;
108
}
109
110
=head3 to_api_mapping
111
112
This method returns the mapping for representing a Koha::Biblio::Volume object
113
on the API.
114
115
=cut
116
117
sub to_api_mapping {
118
    return {
119
        id           => 'volume_id',
120
        biblionumber => 'biblio_id',
121
        created_on   => 'creation_date',
122
        updated_on   => 'modification_date'
123
    };
124
}
125
32
=head2 Internal methods
126
=head2 Internal methods
33
127
34
=head3 _type
128
=head3 _type
35
- 

Return to bug 24857