Lines 251-301
sub longoverdue_sth {
Link Here
|
251 |
return C4::Context->dbh->prepare($query); |
251 |
return C4::Context->dbh->prepare($query); |
252 |
} |
252 |
} |
253 |
|
253 |
|
254 |
sub check_user_categories { |
254 |
my $dbh = C4::Context->dbh; |
255 |
|
255 |
my @available_categories = map { uc $_->[0] } @{ $dbh->selectall_arrayref(q|SELECT categorycode FROM categories|) }; |
256 |
my $categories = shift; |
256 |
my %category_to_process; |
257 |
my $test_categories = shift; |
257 |
for my $cat ( @$borrower_category ) { |
258 |
my $category_label = shift; |
258 |
unless ( grep { /^$cat$/ } @available_categories ) { |
259 |
my %good = map { $_ => 1 } @$categories; |
259 |
pod2usage( |
260 |
my @bad_categories = grep { ! $good{ uc $_ } } @$test_categories; |
260 |
'-exitval' => 1, |
261 |
|
261 |
'-message' => "The category $cat does not exist in the database", |
262 |
if ( scalar @bad_categories ) { |
262 |
); |
263 |
my $error = "$category_label: category/categories '" |
|
|
264 |
. join( ' ', @bad_categories ) |
265 |
. "' not in the available borrower cateogories: [ " |
266 |
. join( ' ', @$categories ) |
267 |
. " ]"; |
268 |
pod2usage( '-verbose' => 1 |
269 |
, '-exitval' => 1 |
270 |
, '-message' => $error |
271 |
); |
272 |
} |
263 |
} |
|
|
264 |
$category_to_process{$cat} = 1; |
273 |
} |
265 |
} |
274 |
|
266 |
if ( @$skip_borrower_category ) { |
275 |
# returns a hash of borrower category codes to test for long-overdue-ness. |
267 |
for my $cat ( @$skip_borrower_category ) { |
276 |
# The key is the borrower category, upper case. The value is 1. This |
268 |
unless ( grep { /^$cat$/ } @available_categories ) { |
277 |
# will make a fast look-up of valid borrower category codes. |
269 |
pod2usage( |
278 |
sub get_borrower_categories { |
270 |
'-exitval' => 1, |
279 |
my ( $borrower_category, $skip_borrower_category ) = ( @_ ); |
271 |
'-message' => "The category $cat does not exist in the database", |
280 |
|
272 |
); |
281 |
return () unless ( scalar @$borrower_category || scalar @$skip_borrower_category ); |
273 |
} |
282 |
|
|
|
283 |
my $dbh = C4::Context->dbh; |
284 |
my @categories = map { uc $_->[0] } @{ $dbh->selectall_arrayref(q|SELECT categorycode FROM categories|) }; |
285 |
if( @$borrower_category ) { |
286 |
check_user_categories( \@categories, $borrower_category, "--category" ); |
287 |
my %borcat = map { ( uc($_) => 1 ) } @$borrower_category; |
288 |
@categories = grep { $borcat{$_} } @categories; |
289 |
} |
290 |
if( @$skip_borrower_category ) { |
291 |
check_user_categories( \@categories, $skip_borrower_category, "--skip-category" ); |
292 |
my %skip_borcat = map { ( uc($_) => 1 ) } @$skip_borrower_category; |
293 |
@categories = grep { ! $skip_borcat{$_} } @categories; |
294 |
} |
274 |
} |
295 |
return map { $_ => 1 } @categories; |
275 |
%category_to_process = map { $_ => 1 } @available_categories; |
|
|
276 |
%category_to_process = ( %category_to_process, map { $_ => 0 } @$skip_borrower_category ); |
296 |
} |
277 |
} |
297 |
|
278 |
|
298 |
my %category_to_process = get_borrower_categories( $borrower_category, $skip_borrower_category ); |
|
|
299 |
my $filter_borrower_categories = ( scalar @$borrower_category || scalar @$skip_borrower_category ); |
279 |
my $filter_borrower_categories = ( scalar @$borrower_category || scalar @$skip_borrower_category ); |
300 |
|
280 |
|
301 |
my $count; |
281 |
my $count; |
302 |
- |
|
|