Bugzilla – Attachment 26806 Details for
Bug 11759
Batch checkout
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 11759: Batch checkout - prepare the ground
Bug-11759-Batch-checkout---prepare-the-ground.patch (text/plain), 7.44 KB, created by
Jonathan Druart
on 2014-04-04 08:04:47 UTC
(
hide
)
Description:
Bug 11759: Batch checkout - prepare the ground
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2014-04-04 08:04:47 UTC
Size:
7.44 KB
patch
obsolete
>From 4b1aecc1cb5cc1ac0db16444070edad3da0c5153 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] 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. >--- > circ/circulation.pl | 79 +++++++++++++++++++++++++++++++-------------------- > 1 file changed, 48 insertions(+), 31 deletions(-) > >diff --git a/circ/circulation.pl b/circ/circulation.pl >index cdc40e3..a10dc95 100755 >--- a/circ/circulation.pl >+++ b/circ/circulation.pl >@@ -84,6 +84,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.tmpl', >@@ -125,10 +130,12 @@ if (C4::Context->preference("UseTablesortForCirc")) { > $template->param(UseTablesortForCirc => 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'); >@@ -138,7 +145,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' ); >@@ -164,12 +171,12 @@ if($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 >@@ -279,25 +286,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); >@@ -317,34 +328,30 @@ if ($barcode) { > push( @options, \%chosen_single ); > } > } >- $template->param( options => \@options ); >+ $template_params->{options} = \@options; > } > } > > 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 ){ > 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 >- ); >+ $template_params->{$needsconfirmation} = $$question{$needsconfirmation}; >+ $template_params->{getTitleMessageIteminfo} = $iteminfo->{'title'}; >+ $template_params->{getBarcodeMessageIteminfo} = $iteminfo->{'barcode'}; >+ $template_params->{NEEDSCONFIRMATION} = 1; > $confirm_required = 1; > } > } >@@ -353,10 +360,20 @@ if ($barcode) { > $inprocess = 1; > } > } >- >+ > # FIXME If the issue is confirmed, we launch another time GetMemberIssuesAndFines, now display the issue count after issue > my ( $od, $issue, $fines ) = GetMemberIssuesAndFines( $borrowernumber ); >- $template->param( issuecount => $issue ); >+ $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..... >@@ -714,7 +731,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