Lines 27-34
BEGIN {
Link Here
|
27 |
require Exporter; |
27 |
require Exporter; |
28 |
@ISA = qw(Exporter); |
28 |
@ISA = qw(Exporter); |
29 |
@EXPORT_OK = qw( |
29 |
@EXPORT_OK = qw( |
30 |
GetDebarments |
|
|
31 |
|
32 |
AddDebarment |
30 |
AddDebarment |
33 |
DelDebarment |
31 |
DelDebarment |
34 |
ModDebarment |
32 |
ModDebarment |
Lines 45-72
Koha::Patron::Debarments - Module for managing patron debarments
Link Here
|
45 |
|
43 |
|
46 |
=cut |
44 |
=cut |
47 |
|
45 |
|
48 |
=head2 GetDebarments |
|
|
49 |
|
50 |
my $arrayref = GetDebarments({ borrowernumber => $borrowernumber [, key => $value ] ); |
51 |
|
52 |
=cut |
53 |
|
54 |
sub GetDebarments { |
55 |
my ($params) = @_; |
56 |
|
57 |
return unless ( $params->{'borrowernumber'} ); |
58 |
|
59 |
my @keys = keys %$params; |
60 |
my @values = values %$params; |
61 |
|
62 |
my $where = join( ' AND ', map { "$_ = ?" } @keys ); |
63 |
my $sql = "SELECT * FROM borrower_debarments WHERE $where"; |
64 |
my $sth = C4::Context->dbh->prepare($sql); |
65 |
$sth->execute(@values); |
66 |
|
67 |
return $sth->fetchall_arrayref( {} ); |
68 |
} |
69 |
|
70 |
=head2 AddDebarment |
46 |
=head2 AddDebarment |
71 |
|
47 |
|
72 |
my $success = AddDebarment({ |
48 |
my $success = AddDebarment({ |
Lines 197-214
sub AddUniqueDebarment {
Link Here
|
197 |
|
173 |
|
198 |
return unless ( $borrowernumber && $type ); |
174 |
return unless ( $borrowernumber && $type ); |
199 |
|
175 |
|
200 |
my $debarment = @{ GetDebarments( { borrowernumber => $borrowernumber, type => $type } ) }[0]; |
176 |
my $patron = Koha::Patrons->find($borrowernumber); |
|
|
177 |
return unless $patron; |
178 |
|
179 |
my $debarment = |
180 |
$patron->restrictions->search( { type => $type }, { rows => 1 } )->single; |
201 |
|
181 |
|
202 |
my $r; |
182 |
my $r; |
203 |
if ($debarment) { |
183 |
if ($debarment) { |
204 |
|
184 |
|
205 |
# We don't want to shorten a unique debarment's period, so if this 'update' would do so, just keep the current expiration date instead |
185 |
# We don't want to shorten a unique debarment's period, so if this 'update' would do so, just keep the current expiration date instead |
206 |
$params->{'expiration'} = $debarment->{'expiration'} |
186 |
$params->{'expiration'} = $debarment->expiration |
207 |
if ( $debarment->{'expiration'} |
187 |
if ( $debarment->expiration |
208 |
&& $debarment->{'expiration'} gt $params->{'expiration'} ); |
188 |
&& $debarment->expiration gt $params->{'expiration'} ); |
209 |
|
189 |
|
210 |
$params->{'borrower_debarment_id'} = |
190 |
$params->{'borrower_debarment_id'} = |
211 |
$debarment->{'borrower_debarment_id'}; |
191 |
$debarment->borrower_debarment_id; |
212 |
$r = ModDebarment($params); |
192 |
$r = ModDebarment($params); |
213 |
} else { |
193 |
} else { |
214 |
|
194 |
|
Lines 242-252
sub DelUniqueDebarment {
Link Here
|
242 |
|
222 |
|
243 |
return unless ( $borrowernumber && $type ); |
223 |
return unless ( $borrowernumber && $type ); |
244 |
|
224 |
|
245 |
my $debarment = @{ GetDebarments( { borrowernumber => $borrowernumber, type => $type } ) }[0]; |
225 |
my $patron = Koha::Patrons->find($borrowernumber); |
|
|
226 |
return unless $patron; |
227 |
|
228 |
my $debarment = |
229 |
$patron->restrictions->search( { type => $type }, { rows => 1 } )->single; |
246 |
|
230 |
|
247 |
return unless ( $debarment ); |
231 |
return unless ( $debarment ); |
248 |
|
232 |
|
249 |
return DelDebarment( $debarment->{'borrower_debarment_id'} ); |
233 |
return DelDebarment( $debarment->borrower_debarment_id ); |
250 |
} |
234 |
} |
251 |
|
235 |
|
252 |
=head2 UpdateBorrowerDebarmentFlags |
236 |
=head2 UpdateBorrowerDebarmentFlags |
253 |
- |
|
|