View | Details | Raw Unified | Return to bug 13482
Collapse All | Expand All

(-)a/C4/Reserves.pm (-2 / +9 lines)
Lines 2314-2327 sub GetReserveId { Link Here
2314
2314
2315
=head2 ReserveSlip
2315
=head2 ReserveSlip
2316
2316
2317
  ReserveSlip($branchcode, $borrowernumber, $biblionumber)
2317
  ReserveSlip($branchcode, $borrowernumber, $biblionumber, $itemnumber)
2318
2318
2319
  Returns letter hash ( see C4::Letters::GetPreparedLetter ) or undef
2319
  Returns letter hash ( see C4::Letters::GetPreparedLetter ) or undef
2320
  
2321
$itemnumber is needed to make sure that the ReserveSlip printing has access to the item in question.
2322
There is a race condition where the slip is printed before the reservation is confirmed to the DB,
2323
thus the reserve target needs to be explicitly passed from the calling module if such a race condition is encoutered.
2324
Otherwise $itemnumber is pulled properly from the reserves-table.
2320
2325
2321
=cut
2326
=cut
2322
2327
2323
sub ReserveSlip {
2328
sub ReserveSlip {
2324
    my ($branch, $borrowernumber, $biblionumber) = @_;
2329
    my ($branch, $borrowernumber, $biblionumber, $itemnumber) = @_;
2325
2330
2326
#   return unless ( C4::Context->boolean_preference('printreserveslips') );
2331
#   return unless ( C4::Context->boolean_preference('printreserveslips') );
2327
2332
Lines 2331-2336 sub ReserveSlip { Link Here
2331
    }) or return;
2336
    }) or return;
2332
    my $reserve = GetReserveInfo($reserve_id) or return;
2337
    my $reserve = GetReserveInfo($reserve_id) or return;
2333
2338
2339
	$reserve->{itemnumber} = $itemnumber if (not($reserve->{itemnumber}) && $itemnumber);
2340
2334
    return  C4::Letters::GetPreparedLetter (
2341
    return  C4::Letters::GetPreparedLetter (
2335
        module => 'circulation',
2342
        module => 'circulation',
2336
        letter_code => 'RESERVESLIP',
2343
        letter_code => 'RESERVESLIP',
(-)a/circ/hold-transfer-slip.pl (-1 / +2 lines)
Lines 38-43 my $session = get_session($sessionID); Link Here
38
38
39
my $biblionumber = $input->param('biblionumber');
39
my $biblionumber = $input->param('biblionumber');
40
my $borrowernumber = $input->param('borrowernumber');
40
my $borrowernumber = $input->param('borrowernumber');
41
my $itemnumber = $input->param('itemnumber');
41
my $transfer = $input->param('transfer');
42
my $transfer = $input->param('transfer');
42
43
43
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
44
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
Lines 53-59 my ( $template, $loggedinuser, $cookie ) = get_template_and_user( Link Here
53
54
54
my $userenv = C4::Context->userenv;
55
my $userenv = C4::Context->userenv;
55
my ($slip, $is_html);
56
my ($slip, $is_html);
56
if ( my $letter = ReserveSlip ($session->param('branch') || $userenv->{branch}, $borrowernumber, $biblionumber) ) {
57
if ( my $letter = ReserveSlip ($session->param('branch') || $userenv->{branch}, $borrowernumber, $biblionumber, $itemnumber) ) {
57
    $slip = $letter->{content};
58
    $slip = $letter->{content};
58
    $is_html = $letter->{is_html};
59
    $is_html = $letter->{is_html};
59
}
60
}
(-)a/circ/returns.pl (+1 lines)
Lines 267-272 if ($barcode) { Link Here
267
        author           => $biblio->{'author'},
267
        author           => $biblio->{'author'},
268
        itembarcode      => $biblio->{'barcode'},
268
        itembarcode      => $biblio->{'barcode'},
269
        itemtype         => $biblio->{'itemtype'},
269
        itemtype         => $biblio->{'itemtype'},
270
        itemnumber       => $itemnumber,
270
        ccode            => $biblio->{'ccode'},
271
        ccode            => $biblio->{'ccode'},
271
        itembiblionumber => $biblio->{'biblionumber'},
272
        itembiblionumber => $biblio->{'biblionumber'},
272
        borrower         => $borrower,
273
        borrower         => $borrower,
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt (-6 / +5 lines)
Lines 161-167 $(document).ready(function () { Link Here
161
            <input type="hidden" name="WT-waitingAt" value="[% TransferWaitingAt %]" />
161
            <input type="hidden" name="WT-waitingAt" value="[% TransferWaitingAt %]" />
162
            <input type="hidden" name="WT-From" value="[% wtransfertFrom %]" />
162
            <input type="hidden" name="WT-From" value="[% wtransfertFrom %]" />
163
        <input type="submit" class="approve" value="Confirm" />
163
        <input type="submit" class="approve" value="Confirm" />
164
            <input type="submit" value="Print slip and confirm" class="print" onclick="Dopop('hold-transfer-slip.pl?transfer=1&amp;borrowernumber=[% borrowernumber %]&amp;biblionumber=[% itembiblionumber %]&amp;op=slip'); this.form.submit();" />
164
            <input type="submit" value="Print slip and confirm" class="print" onclick="Dopop('hold-transfer-slip.pl?transfer=1&amp;borrowernumber=[% borrowernumber %]&amp;biblionumber=[% itembiblionumber %]&amp;itemnumber=[% itemnumber %]&amp;op=slip'); this.form.submit();" />
165
        <input type="hidden" name="return_date_override" value="[% return_date_override %]" />
165
        <input type="hidden" name="return_date_override" value="[% return_date_override %]" />
166
        <input type="hidden" name="return_date_override_remember" value="[% return_date_override_remember %]" />
166
        <input type="hidden" name="return_date_override_remember" value="[% return_date_override_remember %]" />
167
    </form>
167
    </form>
Lines 199-205 $(document).ready(function () { Link Here
199
        <form method="post" action="returns.pl" class="confirm">
199
        <form method="post" action="returns.pl" class="confirm">
200
            <input type="submit" class="approve" value="Confirm" />
200
            <input type="submit" class="approve" value="Confirm" />
201
201
202
            <input type="submit" value="Print and confirm" class="print" onclick="Dopop('hold-transfer-slip.pl?borrowernumber=[% borrowernumber %]&amp;biblionumber=[% itembiblionumber %]&amp;op=slip'); this.form.submit();" />
202
            <input type="submit" value="Print and confirm" class="print" onclick="Dopop('hold-transfer-slip.pl?borrowernumber=[% borrowernumber %]&amp;biblionumber=[% itembiblionumber %]&amp;itemnumber=[% itemnumber %]&amp;op=slip'); this.form.submit();" />
203
            [% FOREACH inputloo IN inputloop %]
203
            [% FOREACH inputloo IN inputloop %]
204
                <input type="hidden" name="ri-[% inputloo.counter %]" value="[% inputloo.barcode %]" />
204
                <input type="hidden" name="ri-[% inputloo.counter %]" value="[% inputloo.barcode %]" />
205
                <input type="hidden" name="dd-[% inputloo.counter %]" value="[% inputloo.duedate %]" />
205
                <input type="hidden" name="dd-[% inputloo.counter %]" value="[% inputloo.duedate %]" />
Lines 244-250 $(document).ready(function () { Link Here
244
244
245
        <form method="post" action="returns.pl" class="confirm">
245
        <form method="post" action="returns.pl" class="confirm">
246
            <input type="submit" class="approve" value="Confirm" />
246
            <input type="submit" class="approve" value="Confirm" />
247
            <input type="submit" value="Print slip and confirm" class="print" onclick="Dopop('hold-transfer-slip.pl?transfer=1&amp;borrowernumber=[% borrowernumber %]&amp;biblionumber=[% itembiblionumber %]&amp;op=slip'); this.form.submit();" />
247
            <input type="submit" value="Print slip and confirm" class="print" onclick="Dopop('hold-transfer-slip.pl?transfer=1&amp;borrowernumber=[% borrowernumber %]&amp;biblionumber=[% itembiblionumber %]&amp;itemnumber=[% itemnumber %]&amp;op=slip'); this.form.submit();" />
248
            [% FOREACH inputloo IN inputloop %]
248
            [% FOREACH inputloo IN inputloop %]
249
                <input type="hidden" name="ri-[% inputloo.counter %]" value="[% inputloo.barcode %]" />
249
                <input type="hidden" name="ri-[% inputloo.counter %]" value="[% inputloo.barcode %]" />
250
                <input type="hidden" name="dd-[% inputloo.counter %]" value="[% inputloo.duedate %]" />
250
                <input type="hidden" name="dd-[% inputloo.counter %]" value="[% inputloo.duedate %]" />
Lines 361-370 $(document).ready(function () { Link Here
361
        <form method="post" action="returns.pl" class="confirm">
361
        <form method="post" action="returns.pl" class="confirm">
362
            [% IF ( transfertodo ) %]
362
            [% IF ( transfertodo ) %]
363
                <input type="submit" class="approve" value="Confirm hold and transfer" />
363
                <input type="submit" class="approve" value="Confirm hold and transfer" />
364
                <input type="submit" value="Print slip, transfer, and confirm" class="print" onclick="Dopop('hold-transfer-slip.pl?transfer=1&amp;borrowernumber=[% borrowernumber %]&amp;biblionumber=[% itembiblionumber %]&amp;op=slip'); this.form.submit();" />
364
                <input type="submit" value="Print slip, transfer, and confirm" class="print" onclick="Dopop('hold-transfer-slip.pl?transfer=1&amp;borrowernumber=[% borrowernumber %]&amp;biblionumber=[% itembiblionumber %]&amp;itemnumber=[% itemnumber %]&amp;op=slip'); this.form.submit();" />
365
            [% ELSE %]
365
            [% ELSE %]
366
                <input type="submit" class="approve" value="Confirm hold" />
366
                <input type="submit" class="approve" value="Confirm hold" />
367
                <input type="submit" value="Print slip and confirm" class="print" onclick="Dopop('hold-transfer-slip.pl?borrowernumber=[% borrowernumber %]&amp;biblionumber=[% itembiblionumber %]&amp;op=slip'); this.form.submit();" />
367
                <input type="submit" value="Print slip and confirm" class="print" onclick="Dopop('hold-transfer-slip.pl?borrowernumber=[% borrowernumber %]&amp;biblionumber=[% itembiblionumber %]&amp;itemnumber=[% itemnumber %]&amp;op=slip'); this.form.submit();" />
368
            [% END %]
368
            [% END %]
369
                <input type="submit" class="deny" value="Ignore" onclick="$('.dialog:visible').hide('slow'); $('#barcode').focus(); return false;" />
369
                <input type="submit" class="deny" value="Ignore" onclick="$('.dialog:visible').hide('slow'); $('#barcode').focus(); return false;" />
370
            [% FOREACH inputloo IN inputloop %]
370
            [% FOREACH inputloo IN inputloop %]
371
- 

Return to bug 13482