Bug 30708: Do not allow adding new items to a closed train
[koha.git] / Koha / Exceptions / Preservation.pm
1 package Koha::Exceptions::Preservation;
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::Exception;
21
22 use Exception::Class (
23
24     'Koha::Exceptions::Preservation' => {
25         isa => 'Koha::Exception',
26     },
27     'Koha::Exceptions::Preservation::MissingSettings' => {
28         isa         => 'Koha::Exceptions::Preservation',
29         description => "Missing configuration settings",
30         fields      => ['parameter'],
31     },
32     'Koha::Exceptions::Preservation::ItemAlreadyInTrain' => {
33         isa         => 'Koha::Exceptions::Preservation',
34         description => "Cannot add item to waiting list, it is already in a non-received train",
35     },
36     'Koha::Exceptions::Preservation::ItemAlreadyInAnotherTrain' => {
37         isa         => 'Koha::Exceptions::Preservation',
38         description => "Cannot add item to this train, it is already in an other non-received train",
39         fields      => ['train_id'],
40     },
41     'Koha::Exceptions::Preservation::ItemNotInWaitingList' => {
42         isa         => 'Koha::Exceptions::Preservation',
43         description => "Cannot add item to train, it is not in the waiting list",
44     },
45     'Koha::Exceptions::Preservation::ItemNotFound' => {
46         isa         => 'Koha::Exceptions::Preservation',
47         description => "Cannot add item to train, the item does not exist",
48     },
49     'Koha::Exceptions::Preservation::CannotAddItemToClosedTrain' => {
50         isa         => 'Koha::Exceptions::Preservation',
51         description => "Cannot add item to a closed train",
52     },
53
54 );
55
56 sub full_message {
57     my $self = shift;
58
59     my $msg = $self->message;
60
61     unless ( $msg ) {
62         if ( $self->isa('Koha::Exceptions::Preservation::MissingSettings') ) {
63             $msg = sprintf("The following parameter settings is required: %s", $self->parameter );
64         }
65     }
66
67     return $msg;
68 }
69
70 =head1 NAME
71
72 Koha::Exceptions::Preservation - Exception class for the preservation module
73
74 =head1 Exceptions
75
76 =head2 Koha::Exceptions::Preservation
77
78 Generic Preservation exception
79
80 =head2 Koha::Exceptions::Preservation::MissingSettings
81
82 Exception to be used when the preservation module is not configured correctly
83 and a setting is missing
84
85 =head1 Class methods
86
87 =head2 full_message
88
89 Overloaded method for exception stringifying.
90
91 =cut
92
93 1;