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

(-)a/C4/Reserves.pm (-4 / +22 lines)
Lines 1336-1342 sub ModReserveStatus { Link Here
1336
1336
1337
=head2 ModReserveAffect
1337
=head2 ModReserveAffect
1338
1338
1339
  &ModReserveAffect({ itemnumber => $itemnumber, borrowernumber => $borrowernumber, force_transfer => $diffBranchSend });
1339
  &ModReserveAffect({ item => $item, itemnumber => $itemnumber, borrowernumber => $borrowernumber, force_transfer => $diffBranchSend });
1340
1340
1341
This function affect an item and a status for a given reserve
1341
This function affect an item and a status for a given reserve
1342
The itemnumber parameter is used to find the biblionumber.
1342
The itemnumber parameter is used to find the biblionumber.
Lines 1351-1360 take care of the waiting status Link Here
1351
1351
1352
sub ModReserveAffect {
1352
sub ModReserveAffect {
1353
    my ( $params ) = @_;
1353
    my ( $params ) = @_;
1354
    my $item = $params->{item};
1354
    my $borrowernumber = $params->{borrowernumber};
1355
    my $borrowernumber = $params->{borrowernumber};
1355
    my $itemnumber = $params->{itemnumber};
1356
    my $itemnumber = $params->{itemnumber};
1356
    my $force_transfer = $params->{force_transfer};
1357
    my $force_transfer = $params->{force_transfer};
1357
1358
1359
    if ( $item ) {
1360
        $itemnumber = $item->{itemnumber};
1361
    } else {
1362
        $item = GetBiblioFromItemNumber( $itemnumber );
1363
    }
1364
1358
    my $dbh = C4::Context->dbh;
1365
    my $dbh = C4::Context->dbh;
1359
1366
1360
    # we want to attach $itemnumber to $borrowernumber, find the biblionumber
1367
    # we want to attach $itemnumber to $borrowernumber, find the biblionumber
Lines 1373-1381 sub ModReserveAffect { Link Here
1373
    my $request = GetReserveInfo($reserve_id);
1380
    my $request = GetReserveInfo($reserve_id);
1374
    my $already_on_shelf = ($request && $request->{found} eq 'W') ? 1 : 0;
1381
    my $already_on_shelf = ($request && $request->{found} eq 'W') ? 1 : 0;
1375
1382
1383
    my $transfer_to_do = 0;
1384
    if ( defined $force_transfer ) {
1385
        $transfer_to_do = $force_transfer;
1386
    } else {
1387
        my $userenv_branch = C4::Context->userenv->{'branch'} || '';
1388
        $transfer_to_do = 1
1389
            if $userenv_branch ne $request->{branchcode};
1390
    }
1391
1376
    # If we affect a reserve that has to be transfered, don't set to Waiting
1392
    # If we affect a reserve that has to be transfered, don't set to Waiting
1377
    my $query;
1393
    my $query;
1378
    if ( $force_transfer ) {
1394
    if ( $transfer_to_do ) {
1379
    $query = "
1395
    $query = "
1380
        UPDATE reserves
1396
        UPDATE reserves
1381
        SET    priority = 0,
1397
        SET    priority = 0,
Lines 1399-1405 sub ModReserveAffect { Link Here
1399
    }
1415
    }
1400
    $sth = $dbh->prepare($query);
1416
    $sth = $dbh->prepare($query);
1401
    $sth->execute( $itemnumber, $borrowernumber,$biblionumber);
1417
    $sth->execute( $itemnumber, $borrowernumber,$biblionumber);
1402
    _koha_notify_reserve( $itemnumber, $borrowernumber, $biblionumber ) if ( !$force_transfer && !$already_on_shelf );
1418
1419
    _koha_notify_reserve( $itemnumber, $borrowernumber, $biblionumber )
1420
        unless $transfer_to_do or $already_on_shelf;
1403
    _FixPriority( { biblionumber => $biblionumber } );
1421
    _FixPriority( { biblionumber => $biblionumber } );
1404
1422
1405
    if ( C4::Context->preference("ReturnToShelvingCart") ) {
1423
    if ( C4::Context->preference("ReturnToShelvingCart") ) {
Lines 1842-1848 sub _FixPriority { Link Here
1842
            $priority[$j]->{'reserve_id'}
1860
            $priority[$j]->{'reserve_id'}
1843
        );
1861
        );
1844
    }
1862
    }
1845
    
1863
1846
    $sth = $dbh->prepare( "SELECT reserve_id FROM reserves WHERE lowestPriority = 1 ORDER BY priority" );
1864
    $sth = $dbh->prepare( "SELECT reserve_id FROM reserves WHERE lowestPriority = 1 ORDER BY priority" );
1847
    $sth->execute();
1865
    $sth->execute();
1848
    
1866
    
(-)a/circ/returns.pl (-8 / +6 lines)
Lines 130-148 if ($query->param('WT-itemNumber')){ Link Here
130
}
130
}
131
131
132
if ( $query->param('resbarcode') ) {
132
if ( $query->param('resbarcode') ) {
133
    my $item           = $query->param('itemnumber');
133
    my $itemnumber     = $query->param('itemnumber');
134
    my $borrowernumber = $query->param('borrowernumber');
134
    my $borrowernumber = $query->param('borrowernumber');
135
    my $resbarcode     = $query->param('resbarcode');
135
    my $resbarcode     = $query->param('resbarcode');
136
    my $diffBranchReturned = $query->param('diffBranch');
136
    my $diffBranchReturned = $query->param('diffBranch');
137
    my $iteminfo   = GetBiblioFromItemNumber($item);
137
    my $iteminfo   = GetBiblioFromItemNumber($itemnumber);
138
    # fix up item type for display
138
    # fix up item type for display
139
    $iteminfo->{'itemtype'} = C4::Context->preference('item-level_itypes') ? $iteminfo->{'itype'} : $iteminfo->{'itemtype'};
139
    $iteminfo->{'itemtype'} = C4::Context->preference('item-level_itypes') ? $iteminfo->{'itype'} : $iteminfo->{'itemtype'};
140
    my $diffBranchSend = ($userenv_branch ne $diffBranchReturned) ? $diffBranchReturned : undef;
140
141
# diffBranchSend tells ModReserveAffect whether document is expected in this library or not,
141
    ModReserveAffect({ item => $iteminfo, borrowernumber => $borrowernumber });
142
# i.e., whether to apply waiting status
142
143
    ModReserveAffect({ itemnumber => $item, borrowernumber => $borrowernumber, force_transfer => $diffBranchSend });
144
#   check if we have other reserves for this document, if we have a return send the message of transfer
143
#   check if we have other reserves for this document, if we have a return send the message of transfer
145
    my ( $messages, $nextreservinfo ) = GetOtherReserves($item);
144
    my ( $messages, $nextreservinfo ) = GetOtherReserves($itemnumber);
146
145
147
    my ($borr) = GetMemberDetails( $nextreservinfo, 0 );
146
    my ($borr) = GetMemberDetails( $nextreservinfo, 0 );
148
    my $name   = $borr->{'surname'} . ", " . $borr->{'title'} . " " . $borr->{'firstname'};
147
    my $name   = $borr->{'surname'} . ", " . $borr->{'title'} . " " . $borr->{'firstname'};
149
- 

Return to bug 10827