Koha/misc/cronjobs/holds/build_holds_queue.pl
Katrin Fischer a4f2e6ae85
Bug 31995: (QA follow-up) Add 'system preference' to help text
We often get asked where something can be found in setting,
adding the hint that RealTimeHoldsQueue is a system preference
is hopefully helpful here.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2022-11-03 09:54:33 -03:00

82 lines
1.7 KiB
Perl
Executable file

#!/usr/bin/perl
#-----------------------------------
# Script Name: build_holds_queue.pl
# Description: builds a holds queue in the tmp_holdsqueue table
#-----------------------------------
# FIXME: add command-line options for verbosity and summary
# FIXME: expand perldoc, explain intended logic
use Modern::Perl;
use Getopt::Long qw( GetOptions );
use Pod::Usage qw( pod2usage );
use C4::Context;
use C4::HoldsQueue qw(CreateQueue);
use C4::Log qw( cronlogaction );
use Koha::Script -cron;
=head1 NAME
build_holds_queue.pl - Rebuild the holds queue
=head1 SYNOPSIS
build_holds_queue.pl [-f]
Options:
-h --help Brief help message
-m --man Full documentation
-f --force Run holds queue builder even if RealTimeHoldsQueue is enabled
=head1 OPTIONS
=over 8
=item B<--help>
Print a brief help message and exits.
=item B<--man>
Prints the manual page and exits.
=item B<--force>
Allows this script to rebuild the entire holds queue even if the RealTimeHoldsQueue system preference is enabled.
=back
=head1 DESCRIPTION
This script builds or rebuilds the entire holds queue.
=cut
my $help = 0;
my $man = 0;
my $force = 0;
my $command_line_options = join( " ", @ARGV );
GetOptions(
'h|help' => \$help,
'm|man' => \$man,
'f|force' => \$force,
);
pod2usage(1) if $help;
pod2usage( -exitval => 0, -verbose => 2 ) if $man;
my $rthq = C4::Context->preference('RealTimeHoldsQueue');
if ( $rthq && !$force ) {
say "RealTimeHoldsQueue system preference is enabled, holds queue not built.";
say "Use --force to force building the holds queue.";
exit(1);
}
cronlogaction( { info => $command_line_options } );
CreateQueue();
cronlogaction( { action => 'End', info => "COMPLETED" } );