|
Lines 22-32
use Modern::Perl;
Link Here
|
| 22 |
|
22 |
|
| 23 |
use CGI; |
23 |
use CGI; |
| 24 |
|
24 |
|
| 25 |
use C4::Auth qw( get_template_and_user ); |
25 |
use C4::Auth qw( get_template_and_user ); |
| 26 |
use C4::Output qw( output_html_with_http_headers ); |
26 |
use C4::Output qw( output_html_with_http_headers ); |
|
|
27 |
use C4::Circulation qw( barcodedecode ); |
| 28 |
use C4::Context; |
| 27 |
use Koha::Checkouts; |
29 |
use Koha::Checkouts; |
| 28 |
use Koha::DateUtils qw( dt_from_string ); |
30 |
use Koha::DateUtils qw( dt_from_string ); |
| 29 |
use Koha::Items; |
31 |
use Koha::Items; |
|
|
32 |
use List::MoreUtils qw( uniq ); |
| 30 |
|
33 |
|
| 31 |
my $input = CGI->new; |
34 |
my $input = CGI->new; |
| 32 |
my $op = $input->param('op') // q|form|; |
35 |
my $op = $input->param('op') // q|form|; |
|
Lines 50-55
if ( $op eq 'form' ) {
Link Here
|
| 50 |
my @categorycodes = $input->multi_param('categorycodes'); |
53 |
my @categorycodes = $input->multi_param('categorycodes'); |
| 51 |
my @itemtypecodes = $input->multi_param('itemtypecodes'); |
54 |
my @itemtypecodes = $input->multi_param('itemtypecodes'); |
| 52 |
my @branchcodes = $input->multi_param('branchcodes'); |
55 |
my @branchcodes = $input->multi_param('branchcodes'); |
|
|
56 |
my $list = $input->param('barcodelist'); |
| 53 |
my $from_due_date = $input->param('from_due_date'); |
57 |
my $from_due_date = $input->param('from_due_date'); |
| 54 |
my $to_due_date = $input->param('to_due_date'); |
58 |
my $to_due_date = $input->param('to_due_date'); |
| 55 |
my $new_hard_due_date = $input->param('new_hard_due_date'); |
59 |
my $new_hard_due_date = $input->param('new_hard_due_date'); |
|
Lines 71-76
if ( $op eq 'form' ) {
Link Here
|
| 71 |
if (@branchcodes) { |
75 |
if (@branchcodes) { |
| 72 |
$search_params->{'me.branchcode'} = { -in => \@branchcodes }; |
76 |
$search_params->{'me.branchcode'} = { -in => \@branchcodes }; |
| 73 |
} |
77 |
} |
|
|
78 |
if ($list) { |
| 79 |
my $split_chars = C4::Context->preference('BarcodeSeparators'); |
| 80 |
my @barcodelist = grep /\S/, ( split /[$split_chars]/, $list ); |
| 81 |
@barcodelist = uniq @barcodelist; |
| 82 |
|
| 83 |
@barcodelist = map { barcodedecode($_) } @barcodelist; |
| 84 |
|
| 85 |
# Note: adding lc for case insensitivity |
| 86 |
my %itemdata = |
| 87 |
map { lc( $_->{barcode} ) => $_->{itemnumber} } @{ Koha::Items->search( |
| 88 |
{ barcode => { -in => \@barcodelist } }, |
| 89 |
{ columns => [ 'itemnumber', 'barcode' ] } |
| 90 |
)->unblessed |
| 91 |
}; |
| 92 |
my @itemnumbers = map { exists $itemdata{ lc $_ } ? $itemdata{ lc $_ } : () } @barcodelist; |
| 93 |
my @notfoundbarcodes = grep { !exists $itemdata{ lc $_ } } @barcodelist; |
| 94 |
|
| 95 |
$search_params->{'itemnumber'} = { -in => \@itemnumbers }; |
| 96 |
} |
| 74 |
|
97 |
|
| 75 |
if ( $from_due_date and $to_due_date ) { |
98 |
if ( $from_due_date and $to_due_date ) { |
| 76 |
my $to_due_date_endday = dt_from_string($to_due_date); |
99 |
my $to_due_date_endday = dt_from_string($to_due_date); |
| 77 |
- |
|
|