Bug 24545: Fix license statements
[srvgit] / Koha / Cash / Register.pm
1 package Koha::Cash::Register;
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 Carp;
21
22 use Koha::Database;
23
24 use base qw(Koha::Object);
25
26 =encoding utf8
27
28 =head1 NAME
29
30 Koha::Cash::Register - Koha cashregister Object class
31
32 =head1 API
33
34 =head2 Class methods
35
36 =cut
37
38 =head3 library
39
40 Return the library linked to this cash register
41
42 =cut
43
44 sub library {
45     my ($self) = @_;
46     my $rs = $self->_result->branch;
47     return unless $rs;
48     return Koha::Library->_new_from_dbic($rs);
49 }
50
51 =head3 store
52
53 Local store method to prevent direct manipulation of the 'branch_default' field
54
55 =cut
56
57 sub store {
58     my ($self) = @_;
59     $self->_result->result_source->schema->txn_do(
60         sub {
61             if ( $self->_result->is_column_changed('branch_default') ) {
62                 Koha::Exceptions::Object::ReadOnlyProperty->throw(
63                     property => 'branch_default' );
64             }
65             else {
66                 if ($self->_result->is_column_changed('branch') && $self->branch_default) {
67                 }
68                 $self = $self->SUPER::store;
69             }
70         }
71     );
72     return $self;
73 }
74
75 =head3 make_default
76
77 Set the current cash register as the branch default
78
79 =cut
80
81 sub make_default {
82     my ($self) = @_;
83
84     $self->_result->result_source->schema->txn_do(
85         sub {
86             my $registers =
87               Koha::Cash::Registers->search( { branch => $self->branch } );
88             $registers->update( { branch_default => 0 } );
89             $self->set( { branch_default => 1 } );
90             $self->SUPER::store;
91         }
92     );
93
94     return $self;
95 }
96
97 =head3 drop_default
98
99 Drop the current cash register as the branch default
100
101 =cut
102
103 sub drop_default {
104     my ($self) = @_;
105
106     $self->_result->result_source->schema->txn_do(
107         sub {
108             $self->set( { branch_default => 0 } );
109             $self->SUPER::store;
110         }
111     );
112
113     return $self;
114 }
115
116 =head2 Internal methods
117
118 =cut
119
120 =head3 _type
121
122 =cut
123
124 sub _type {
125     return 'CashRegister';
126 }
127
128 1;
129
130 =head1 AUTHORS
131
132 Martin Renvoize <martin.renvoize@ptfs-europe.com>
133
134 =cut