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

(-)a/C4/Circulation.pm (-3 / +25 lines)
Lines 1717-1729 sub AddReturn { Link Here
1717
    $branch = C4::Context->userenv->{'branch'} unless $branch;  # we trust userenv to be a safe fallback/default
1717
    $branch = C4::Context->userenv->{'branch'} unless $branch;  # we trust userenv to be a safe fallback/default
1718
    my $messages;
1718
    my $messages;
1719
    my $borrower;
1719
    my $borrower;
1720
    my $biblio;
1721
    my $doreturn       = 1;
1720
    my $doreturn       = 1;
1722
    my $validTransfert = 0;
1721
    my $validTransfert = 0;
1723
    my $stat_type = 'return';    
1722
    my $stat_type = 'return';    
1724
1723
1725
    # get information on item
1724
    # get information on item
1726
    my $itemnumber = GetItemnumberFromBarcode( $barcode );
1725
    my $itemnumber = GetItemnumberFromBarcode( $barcode );
1726
    my $biblio = GetBiblioFromItemNumber($itemnumber);
1727
    unless ($itemnumber) {
1727
    unless ($itemnumber) {
1728
        return (0, { BadBarcode => $barcode }); # no barcode means no item or borrower.  bail out.
1728
        return (0, { BadBarcode => $barcode }); # no barcode means no item or borrower.  bail out.
1729
    }
1729
    }
Lines 1773-1778 sub AddReturn { Link Here
1773
        return ( $doreturn, $messages, $issue, $borrower );
1773
        return ( $doreturn, $messages, $issue, $borrower );
1774
    }
1774
    }
1775
1775
1776
    # if we try a checkin that would result in a forbidden branchtransfer, refuse the return as well
1777
    # first, find branchtransferlimit value for this item
1778
    my $branchtransferlimitvalue = $biblio->{itemtype};
1779
    $branchtransferlimitvalue = $item->{itype}
1780
        if C4::Context->preference("item-level_itypes")
1781
            && C4::Context->preference("BranchTransferLimitsType") eq 'itemtype';
1782
    $branchtransferlimitvalue = $item->{ccode}
1783
        if C4::Context->preference("item-level_itypes")
1784
            && C4::Context->preference("BranchTransferLimitsType") eq 'ccode';
1785
    if ( $hbr ne $branch
1786
            && (
1787
                C4::Context->preference("IndependentBranches")
1788
                or ( C4::Context->preference("UseBranchTransferLimits")
1789
                    and not IsBranchTransferAllowed($hbr, $branch, $branchtransferlimitvalue ) )
1790
        )
1791
    ) {
1792
        $messages->{'Wrongbranch'} = {
1793
            Wrongbranch => $branch,
1794
            Rightbranch => $message
1795
        };
1796
        $doreturn = 0;
1797
        return ( $doreturn, $messages, $issue, $borrower );
1798
    }
1799
1776
    if ( $item->{'withdrawn'} ) { # book has been cancelled
1800
    if ( $item->{'withdrawn'} ) { # book has been cancelled
1777
        $messages->{'withdrawn'} = 1;
1801
        $messages->{'withdrawn'} = 1;
1778
        $doreturn = 0 if C4::Context->preference("BlockReturnOfWithdrawnItems");
1802
        $doreturn = 0 if C4::Context->preference("BlockReturnOfWithdrawnItems");
Lines 3225-3231 Code is either an itemtype or collection doe depending on the pref BranchTransfe Link Here
3225
3249
3226
sub IsBranchTransferAllowed {
3250
sub IsBranchTransferAllowed {
3227
	my ( $toBranch, $fromBranch, $code ) = @_;
3251
	my ( $toBranch, $fromBranch, $code ) = @_;
3228
3229
	if ( $toBranch eq $fromBranch ) { return 1; } ## Short circuit for speed.
3252
	if ( $toBranch eq $fromBranch ) { return 1; } ## Short circuit for speed.
3230
        
3253
        
3231
	my $limitType = C4::Context->preference("BranchTransferLimitsType");   
3254
	my $limitType = C4::Context->preference("BranchTransferLimitsType");   
3232
- 

Return to bug 7376