Bugzilla – Attachment 37609 Details for
Bug 11759
Batch checkout
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[SIGNED-OFF] Bug 11759: Batch checkout - prepare the ground
SIGNED-OFF-Bug-11759-Batch-checkout---prepare-the-.patch (text/plain), 7.86 KB, created by
Josef Moravec
on 2015-04-09 09:28:57 UTC
(
hide
)
Description:
[SIGNED-OFF] Bug 11759: Batch checkout - prepare the ground
Filename:
MIME Type:
Creator:
Josef Moravec
Created:
2015-04-09 09:28:57 UTC
Size:
7.86 KB
patch
obsolete
>From aeeaac6220e5bc6ce05491473c46908d629f3a6c Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@biblibre.com> >Date: Fri, 14 Feb 2014 12:57:47 +0100 >Subject: [PATCH] [SIGNED-OFF] Bug 11759: Batch checkout - prepare the ground > >This patch does not introduce any changes. >It prepares the circulation script to accept several barcodes in >parameter. >A loop is done on all barcodes (until now, only 1) to generate a >structure to sent to the template. >At the end, only the first generated data is sent. > >Signed-off-by: Josef Moravec <josef.moravec@gmail.com> >--- > circ/circulation.pl | 84 +++++++++++++++++++++++++++++++-------------------- > 1 file changed, 52 insertions(+), 32 deletions(-) > >diff --git a/circ/circulation.pl b/circ/circulation.pl >index 22c5e24..4d830d9 100755 >--- a/circ/circulation.pl >+++ b/circ/circulation.pl >@@ -87,6 +87,11 @@ if (!C4::Context->userenv && !$branch){ > } > } > >+my $barcodes = []; >+if ( my $barcode = $query->param('barcode') ) { >+ $barcodes = [ $barcode ]; >+} >+ > my ( $template, $loggedinuser, $cookie ) = get_template_and_user ( > { > template_name => 'circ/circulation.tt', >@@ -131,10 +136,12 @@ if (C4::Context->preference("DisplayClearScreenButton")) { > $template->param(DisplayClearScreenButton => 1); > } > >-my $barcode = $query->param('barcode') || q{}; >-$barcode =~ s/^\s*|\s*$//g; # remove leading/trailing whitespace >+for my $barcode ( @$barcodes ) { >+ $barcode =~ s/^\s*|\s*$//g; # remove leading/trailing whitespace >+ $barcode = barcodedecode($barcode) >+ if( $barcode && C4::Context->preference('itemBarcodeInputFilter')); >+} > >-$barcode = barcodedecode($barcode) if( $barcode && C4::Context->preference('itemBarcodeInputFilter')); > my $stickyduedate = $query->param('stickyduedate') || $session->param('stickyduedate'); > my $duedatespec = $query->param('duedatespec') || $session->param('stickyduedate'); > my $issueconfirmed = $query->param('issueconfirmed'); >@@ -144,7 +151,7 @@ my $debt_confirmed = $query->param('debt_confirmed') || 0; # Don't show the debt > my $charges = $query->param('charges') || q{}; > > # Check if stickyduedate is turned off >-if ( $barcode ) { >+if ( @$barcodes ) { > # was stickyduedate loaded from session? > if ( $stickyduedate && ! $query->param("stickyduedate") ) { > $session->clear( 'stickyduedate' ); >@@ -177,12 +184,12 @@ if( $onsite_checkout && !$duedatespec_allow ) { > our $todaysdate = C4::Dates->new->output('iso'); > > # check and see if we should print >-if ( $barcode eq '' && $print eq 'maybe' ) { >+if ( @$barcodes == 0 && $print eq 'maybe' ) { > $print = 'yes'; > } > >-my $inprocess = ($barcode eq '') ? '' : $query->param('inprocess'); >-if ( $barcode eq '' && $charges eq 'yes' ) { >+my $inprocess = (@$barcodes == 0) ? '' : $query->param('inprocess'); >+if ( @$barcodes == 0 && $charges eq 'yes' ) { > $template->param( > PAYCHARGES => 'yes', > borrowernumber => $borrowernumber >@@ -294,25 +301,29 @@ if ($borrowernumber) { > # STEP 3 : ISSUING > # > # >-if ($barcode) { >+if (@$barcodes) { >+ my $checkout_infos; >+ for my $barcode ( @$barcodes ) { >+ my $template_params = { barcode => $barcode }; > # always check for blockers on issuing > my ( $error, $question, $alerts ) = > CanBookBeIssued( $borrower, $barcode, $datedue , $inprocess ); > my $blocker = $invalidduedate ? 1 : 0; > >- $template->param( alert => $alerts ); >+ $template_params->{alert} = $alerts; > > # Get the item title for more information > my $getmessageiteminfo = GetBiblioFromItemNumber(undef,$barcode); >- $template->param( >- authvalcode_notforloan => C4::Koha::GetAuthValCode('items.notforloan', $getmessageiteminfo->{'frameworkcode'}), >- ); >+ $template_params->{authvalcode_notforloan} = >+ C4::Koha::GetAuthValCode('items.notforloan', $getmessageiteminfo->{'frameworkcode'}); >+ > # Fix for bug 7494: optional checkout-time fallback search for a book > > if ( $error->{'UNKNOWN_BARCODE'} >- && C4::Context->preference("itemBarcodeFallbackSearch") ) >+ && C4::Context->preference("itemBarcodeFallbackSearch") >+ ) > { >- $template->param( FALLBACK => 1 ); >+ $template_params->{FALLBACK} = 1; > > my $query = "kw=" . $barcode; > my ( $searcherror, $results, $total_hits ) = SimpleSearch($query); >@@ -334,37 +345,33 @@ if ($barcode) { > } > } > } >- $template->param( options => \@options ); >+ $template_params->{options} = \@options; > } > } > > unless( $onsite_checkout and C4::Context->preference("OnSiteCheckoutsForce") ) { > delete $question->{'DEBT'} if ($debt_confirmed); > foreach my $impossible ( keys %$error ) { >- $template->param( >- $impossible => $$error{$impossible}, >- IMPOSSIBLE => 1 >- ); >+ $template_params->{$impossible} = $$error{$impossible}; >+ $template_params->{IMPOSSIBLE} = 1; > $blocker = 1; > } > } >+ my $iteminfo = GetBiblioFromItemNumber(undef, $barcode); > if( !$blocker || $force_allow_issue ){ > my $confirm_required = 0; > unless($issueconfirmed){ > # Get the item title for more information >- my $getmessageiteminfo = GetBiblioFromItemNumber(undef,$barcode); >- $template->{VARS}->{'additional_materials'} = $getmessageiteminfo->{'materials'}; >- $template->param( itemhomebranch => $getmessageiteminfo->{'homebranch'} ); >+ $template_params->{additional_materials} = $iteminfo->{'materials'}; >+ $template_params->{itemhomebranch} = $iteminfo->{'homebranch'}; > > # pass needsconfirmation to template if issuing is possible and user hasn't yet confirmed. > foreach my $needsconfirmation ( keys %$question ) { >- $template->param( >- $needsconfirmation => $$question{$needsconfirmation}, >- getTitleMessageIteminfo => $getmessageiteminfo->{'title'}, >- getBarcodeMessageIteminfo => $getmessageiteminfo->{'barcode'}, >- NEEDSCONFIRMATION => 1, >- onsite_checkout => $onsite_checkout, >- ); >+ $template_params->{$needsconfirmation} = $$question{$needsconfirmation}; >+ $template_params->{getTitleMessageIteminfo} = $iteminfo->{'title'}; >+ $template_params->{getBarcodeMessageIteminfo} = $iteminfo->{'barcode'}; >+ $template_params->{NEEDSCONFIRMATION} = 1; >+ $template_params->{onsite_checkout} => $onsite_checkout, > $confirm_required = 1; > } > } >@@ -374,9 +381,22 @@ if ($barcode) { > $inprocess = 1; > } > } >- >+ > my ( $od, $issue, $fines ) = GetMemberIssuesAndFines($borrowernumber); >- $template->param( issuecount => $issue ); >+ >+ # FIXME If the issue is confirmed, we launch another time GetMemberIssuesAndFines, now display the issue count after issue >+ my ( $od, $issue, $fines ) = GetMemberIssuesAndFines( $borrowernumber ); >+ $iteminfo->{issuecount} = $issue; >+ >+ if ( $iteminfo ) { >+ $iteminfo->{subtitle} = GetRecordValue('subtitle', GetMarcBiblio($iteminfo->{biblionumber}), GetFrameworkCode($iteminfo->{biblionumber})); >+ $template_params->{item} = $iteminfo; >+ } >+ push @$checkout_infos, $template_params; >+ } >+ >+ $template->param( %{$checkout_infos->[0]} ); >+ $template->param( barcode => $barcodes->[0] ); > } > > # reload the borrower info for the sake of reseting the flags..... >@@ -585,7 +605,7 @@ $template->param( > cardnumber => $borrower->{'cardnumber'}, > othernames => $borrower->{'othernames'}, > amountold => $amountold, >- barcode => $barcode, >+ barcodes => $barcodes, > stickyduedate => $stickyduedate, > duedatespec => $duedatespec, > message => $message, >-- >1.7.10.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 11759
:
25255
|
25256
|
25257
|
25258
|
25260
|
25620
|
26442
|
26455
|
26806
|
26807
|
26808
|
26809
|
26810
|
26811
|
26813
|
26814
|
26815
|
26833
|
26854
|
27613
|
37603
|
37604
|
37605
|
37606
|
37607
|
37608
|
37609
|
37610
|
37611
|
37612
|
37613
|
37614
|
37650
|
37653
|
41692
|
41693
|
41694
|
41695
|
41696
|
41697
|
41698
|
41735
|
41736
|
41737
|
41738
|
41739
|
41740
|
41741
|
43626
|
43627