Lines 81-113
my $upper_right_y = $pc_template->get_attr('page_height');
Link Here
|
81 |
$pdf->Compress(1); # comment this out to debug pdf files, but be sure to uncomment it in production or you may be very sorry... |
81 |
$pdf->Compress(1); # comment this out to debug pdf files, but be sure to uncomment it in production or you may be very sorry... |
82 |
$pdf->Mbox($lower_left_x, $lower_left_y, $upper_right_x, $upper_right_y); |
82 |
$pdf->Mbox($lower_left_x, $lower_left_y, $upper_right_x, $upper_right_y); |
83 |
|
83 |
|
84 |
my ($llx, $lly) = 0,0; |
84 |
my ( $llx, $lly ) = 0, 0; |
85 |
(undef, undef, $llx, $lly) = $pc_template->get_label_position($start_card); |
85 |
( undef, undef, $llx, $lly ) = $pc_template->get_label_position($start_card); |
86 |
|
86 |
|
87 |
if (@label_ids) { |
87 |
# sort the borrower list by the order_by field |
88 |
my $batch_items = $batch->get_attr('items'); |
88 |
sub sort_borrowerlist { |
89 |
grep { |
89 |
my ( $list, $order_by ) = @_; # $list is a reference to an array of borrower numbers |
90 |
my $label_id = $_; |
90 |
my @borrower_list = @$list; |
91 |
push(@{$items}, grep{$_->{'label_id'} == $label_id;} @{$batch_items}); |
91 |
if ($order_by) { |
92 |
} @label_ids; |
92 |
@borrower_list = |
93 |
} |
93 |
map { $_->borrowernumber } |
94 |
elsif (@borrower_numbers) { |
94 |
Koha::Patrons->search( { borrowernumber => { -in => \@borrower_list } }, { order_by => [$order_by] } ) |
95 |
grep { |
95 |
->as_list; |
96 |
push(@{$items}, {borrower_number => $_}); |
96 |
} |
97 |
} @borrower_numbers; |
97 |
return @borrower_list; |
98 |
} |
98 |
} |
99 |
elsif ( $patronlist_id ) { |
99 |
|
100 |
my ($list) = GetPatronLists( { patron_list_id => $patronlist_id } ); |
100 |
if (@label_ids) { |
101 |
my @borrowerlist = $list->patron_list_patrons()->search_related('borrowernumber') |
101 |
my $batch_items = $batch->get_attr('items'); |
102 |
->get_column('borrowernumber')->all(); |
102 |
my @selected_borrower; |
103 |
@borrowerlist = map { $_->borrowernumber } Koha::Patrons->search( {borrowernumber => { -in => \@borrowerlist }}, { order_by => [$order_by]} )->as_list if($order_by); |
103 |
grep { |
104 |
grep { |
104 |
my $label_id = $_; |
105 |
push(@{$items}, {borrower_number => $_}); |
105 |
push( @selected_borrower, grep { $_->{'label_id'} == $label_id; } @{$batch_items} ); |
106 |
} @borrowerlist; |
106 |
} @label_ids; |
107 |
} |
107 |
@selected_borrower = map { $_->{borrower_number} } @selected_borrower; |
108 |
else { |
108 |
@selected_borrower = sort_borrowerlist( \@selected_borrower, $order_by ) if ($order_by); |
109 |
$items = $batch->get_attr('items'); |
109 |
grep { push( @{$items}, { borrower_number => $_ } ); } @selected_borrower; |
110 |
} |
110 |
} elsif (@borrower_numbers) { |
|
|
111 |
@borrower_numbers = sort_borrowerlist( \@borrower_numbers, $order_by ) if ($order_by); |
112 |
grep { push( @{$items}, { borrower_number => $_ } ); } @borrower_numbers; |
113 |
} elsif ($patronlist_id) { |
114 |
my ($list) = GetPatronLists( { patron_list_id => $patronlist_id } ); |
115 |
my @borrowerlist = |
116 |
$list->patron_list_patrons()->search_related('borrowernumber')->get_column('borrowernumber')->all(); |
117 |
@borrowerlist = sort_borrowerlist( \@borrowerlist, $order_by ) if ($order_by); |
118 |
grep { push( @{$items}, { borrower_number => $_ } ); } @borrowerlist; |
119 |
} elsif ($batch_id) { |
120 |
$items = $batch->get_attr('items'); |
121 |
my @borrowerlist = map { $_->{'borrower_number'} } @{$items}; |
122 |
@borrowerlist = sort_borrowerlist( \@borrowerlist, $order_by ) if ($order_by); |
123 |
@{$items} = map { { borrower_number => $_ } } @borrowerlist; |
124 |
|
125 |
} else { |
126 |
$items = $batch->get_attr('items'); |
127 |
} |
111 |
|
128 |
|
112 |
my $layout_xml = XMLin($layout->get_attr('layout_xml'), ForceArray => 1); |
129 |
my $layout_xml = XMLin($layout->get_attr('layout_xml'), ForceArray => 1); |
113 |
my $layout_back_xml = defined $layout_back ? XMLin($layout_back->get_attr('layout_xml'), ForceArray => 1) : undef; |
130 |
my $layout_back_xml = defined $layout_back ? XMLin($layout_back->get_attr('layout_xml'), ForceArray => 1) : undef; |