Browse Source

Bug 27949: Allow multiple article requests print slip

This bug allows for batch printing of multiple article requests slips

To test:
1. apply this patch
2. restart_all
3. enable ArticleRequests preference
4. create multiple article requests
5. go to circ/article-requests.pl in staff interface
6. print a single slip from a row
CHECK => it works as expected
7. select all rows and print slip from general actions menu (above the table)
SUCCESS => all article requests slips are printed
8. select multiple rows (not all) and print slip from general actions menu (above the table)
SUCCESS => only selected article requests slips are printed

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

JD amended patch: Perltidy!

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
21.11.x
Agustin Moyano 6 months ago
committed by Jonathan Druart
parent
commit
1616354981
  1. 52
      circ/article-request-slip.pl
  2. 16
      koha-tmpl/intranet-tmpl/prog/en/modules/circ/article-requests.tt

52
circ/article-request-slip.pl

@ -30,7 +30,7 @@ use Koha::Patrons;
my $cgi = CGI->new;
my $id = $cgi->param('id');
my @ids = split( ',', $cgi->param('id') );
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
{
@ -41,30 +41,42 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
}
);
my $ar = Koha::ArticleRequests->find($id);
my $ars = Koha::ArticleRequests->search( { id => { '-in' => \@ids } } );
my $slipContent = '';
my $first = 1;
while ( my $ar = $ars->next ) {
if ( !$first ) {
$slipContent .= "<hr/>";
}
$first = 0;
$template->param( article_request => $ar );
my $patron = Koha::Patrons->find( $ar->borrowernumber );
$template->param( article_request => $ar );
my $patron = Koha::Patrons->find( $ar->borrowernumber );
my $slip = C4::Letters::GetPreparedLetter(
module => 'circulation',
letter_code => 'AR_SLIP',
message_transport_type => 'print',
lang => $patron->lang,
tables => {
article_requests => $ar->id,
borrowers => $ar->borrowernumber,
biblio => $ar->biblionumber,
biblioitems => $ar->biblionumber,
items => $ar->itemnumber,
branches => $ar->branchcode,
},
);
my $slip = C4::Letters::GetPreparedLetter(
module => 'circulation',
letter_code => 'AR_SLIP',
message_transport_type => 'print',
lang => $patron->lang,
tables => {
article_requests => $ar->id,
borrowers => $ar->borrowernumber,
biblio => $ar->biblionumber,
biblioitems => $ar->biblionumber,
items => $ar->itemnumber,
branches => $ar->branchcode,
},
);
$slipContent .=
$slip->{is_html}
? $slip->{content}
: '<pre>' . $slip->{content} . '</pre>';
}
$template->param(
slip => $slip->{content},
slip => $slipContent,
caller => 'article-request',
plain => !$slip->{is_html},
plain => 0,
);
output_html_with_http_headers $cgi, $cookie, $template->output;

16
koha-tmpl/intranet-tmpl/prog/en/modules/circ/article-requests.tt

@ -52,7 +52,13 @@
<i class="fa fa-print"></i>
Print slip
</a>
[% ELSE %]
<a class="ar-print-request" href="#" onclick="PrintMultipleSlip(); return false;">
<i class="fa fa-print"></i>
Print slip
</a>
[% END %]
</li>
</ul>
</span>
@ -648,6 +654,16 @@
}, cancel_id, cancel_a)
});
function PrintMultipleSlip() {
var ids = [];
$( active_tab + " input[type='checkbox']:checked").each(function() {
ids.push($(this).attr('reqid'));
});
var link = 'article-request-slip.pl?multi=1&id='+ids.join(',');
window.open(link, 'popup', 'width=600,height=400,resizable=1,toolbar=0,scrollbars=1,top');
}
function Cancel( id, a ) {
cancel_id = id;
cancel_a = a;

Loading…
Cancel
Save