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

(-)a/C4/Circulation.pm (-25 / +24 lines)
Lines 374-380 sub transferbook { Link Here
374
        $messages->{'WasTransfered'} = 1;
374
        $messages->{'WasTransfered'} = 1;
375
375
376
    }
376
    }
377
    ModDateLastSeen( $itemnumber );
377
    C4::Items::ModDateLastSeen( $itemnumber );
378
    return ( $dotransfer, $messages, $biblio );
378
    return ( $dotransfer, $messages, $biblio );
379
}
379
}
380
380
Lines 664-670 sub CanBookBeIssued { Link Here
664
    my $onsite_checkout     = $params->{onsite_checkout}     || 0;
664
    my $onsite_checkout     = $params->{onsite_checkout}     || 0;
665
    my $override_high_holds = $params->{override_high_holds} || 0;
665
    my $override_high_holds = $params->{override_high_holds} || 0;
666
666
667
    my $item = GetItem(GetItemnumberFromBarcode( $barcode ));
667
    my $item = C4::Items::GetItem(GetItemnumberFromBarcode( $barcode ));
668
    my $issue = GetItemIssue($item->{itemnumber});
668
    my $issue = GetItemIssue($item->{itemnumber});
669
	my $biblioitem = GetBiblioItemData($item->{biblioitemnumber});
669
	my $biblioitem = GetBiblioItemData($item->{biblioitemnumber});
670
	$item->{'itemtype'}=$item->{'itype'}; 
670
	$item->{'itemtype'}=$item->{'itype'}; 
Lines 716-722 sub CanBookBeIssued { Link Here
716
                     borrowernumber => $borrower->{'borrowernumber'},
716
                     borrowernumber => $borrower->{'borrowernumber'},
717
                     ccode => $item->{'ccode'}}
717
                     ccode => $item->{'ccode'}}
718
                    );
718
                    );
719
        ModDateLastSeen( $item->{'itemnumber'} );
719
        C4::Items::ModDateLastSeen( $item->{'itemnumber'} );
720
        return( { STATS => 1 }, {});
720
        return( { STATS => 1 }, {});
721
    }
721
    }
722
    if ( ref $borrower->{flags} ) {
722
    if ( ref $borrower->{flags} ) {
Lines 1281-1287 sub AddIssue { Link Here
1281
    # Stop here if the patron or barcode doesn't exist
1281
    # Stop here if the patron or barcode doesn't exist
1282
    if ( $borrower && $barcode && $barcodecheck ) {
1282
    if ( $borrower && $barcode && $barcodecheck ) {
1283
        # find which item we issue
1283
        # find which item we issue
1284
        my $item = GetItem( '', $barcode )
1284
        my $item = C4::Items::GetItem( '', $barcode )
1285
          or return;    # if we don't get an Item, abort.
1285
          or return;    # if we don't get an Item, abort.
1286
1286
1287
        my $branch = _GetCircControlBranch( $item, $borrower );
1287
        my $branch = _GetCircControlBranch( $item, $borrower );
Lines 1386-1392 sub AddIssue { Link Here
1386
                }
1386
                }
1387
            }
1387
            }
1388
1388
1389
            ModItem(
1389
            C4::Items::ModItem(
1390
                {
1390
                {
1391
                    issues        => $item->{'issues'},
1391
                    issues        => $item->{'issues'},
1392
                    holdingbranch => C4::Context->userenv->{'branch'},
1392
                    holdingbranch => C4::Context->userenv->{'branch'},
Lines 1397-1403 sub AddIssue { Link Here
1397
                $item->{'biblionumber'},
1397
                $item->{'biblionumber'},
1398
                $item->{'itemnumber'}
1398
                $item->{'itemnumber'}
1399
            );
1399
            );
1400
            ModDateLastSeen( $item->{'itemnumber'} );
1400
            C4::Items::ModDateLastSeen( $item->{'itemnumber'} );
1401
1401
1402
           # If it costs to borrow this book, charge it to the patron's account.
1402
           # If it costs to borrow this book, charge it to the patron's account.
1403
            my ( $charge, $itemtype ) = GetIssuingCharges( $item->{'itemnumber'}, $borrower->{'borrowernumber'} );
1403
            my ( $charge, $itemtype ) = GetIssuingCharges( $item->{'itemnumber'}, $borrower->{'borrowernumber'} );
Lines 1850-1856 sub AddReturn { Link Here
1850
    my $stat_type = 'return';
1850
    my $stat_type = 'return';
1851
1851
1852
    # get information on item
1852
    # get information on item
1853
    my $item = GetItem( undef, $barcode );
1853
    my $item = C4::Items::GetItem( undef, $barcode );
1854
    unless ($item) {
1854
    unless ($item) {
1855
        return ( 0, { BadBarcode => $barcode } );    # no barcode means no item or borrower.  bail out.
1855
        return ( 0, { BadBarcode => $barcode } );    # no barcode means no item or borrower.  bail out.
1856
    }
1856
    }
Lines 1886-1892 sub AddReturn { Link Here
1886
            $item->{location} = $item->{permanent_location};
1886
            $item->{location} = $item->{permanent_location};
1887
        }
1887
        }
1888
1888
1889
        ModItem( $item, $item->{'biblionumber'}, $item->{'itemnumber'} );
1889
        C4::Items::ModItem( $item, $item->{'biblionumber'}, $item->{'itemnumber'} );
1890
    }
1890
    }
1891
1891
1892
        # full item data, but no borrowernumber or checkout info (no issue)
1892
        # full item data, but no borrowernumber or checkout info (no issue)
Lines 1910-1916 sub AddReturn { Link Here
1910
            foreach my $key ( keys %$rules ) {
1910
            foreach my $key ( keys %$rules ) {
1911
                if ( $item->{notforloan} eq $key ) {
1911
                if ( $item->{notforloan} eq $key ) {
1912
                    $messages->{'NotForLoanStatusUpdated'} = { from => $item->{notforloan}, to => $rules->{$key} };
1912
                    $messages->{'NotForLoanStatusUpdated'} = { from => $item->{notforloan}, to => $rules->{$key} };
1913
                    ModItem( { notforloan => $rules->{$key} }, undef, $itemnumber );
1913
                    C4::Items::ModItem( { notforloan => $rules->{$key} }, undef, $itemnumber );
1914
                    last;
1914
                    last;
1915
                }
1915
                }
1916
            }
1916
            }
Lines 1982-1988 sub AddReturn { Link Here
1982
1982
1983
        }
1983
        }
1984
1984
1985
        ModItem({ onloan => undef }, $issue->{'biblionumber'}, $item->{'itemnumber'});
1985
        C4::Items::ModItem({ onloan => undef }, $issue->{'biblionumber'}, $item->{'itemnumber'});
1986
    }
1986
    }
1987
1987
1988
    # the holdingbranch is updated if the document is returned to another location.
1988
    # the holdingbranch is updated if the document is returned to another location.
Lines 1992-1998 sub AddReturn { Link Here
1992
        UpdateHoldingbranch($branch, $item->{'itemnumber'});
1992
        UpdateHoldingbranch($branch, $item->{'itemnumber'});
1993
        $item->{'holdingbranch'} = $branch; # update item data holdingbranch too
1993
        $item->{'holdingbranch'} = $branch; # update item data holdingbranch too
1994
    }
1994
    }
1995
    ModDateLastSeen( $item->{'itemnumber'} );
1995
    C4::Items::ModDateLastSeen( $item->{'itemnumber'} );
1996
1996
1997
    # check if we have a transfer for this document
1997
    # check if we have a transfer for this document
1998
    my ($datesent,$frombranch,$tobranch) = GetTransfers( $item->{'itemnumber'} );
1998
    my ($datesent,$frombranch,$tobranch) = GetTransfers( $item->{'itemnumber'} );
Lines 2206-2212 sub MarkIssueReturned { Link Here
2206
                                  AND itemnumber = ?");
2206
                                  AND itemnumber = ?");
2207
    $sth_del->execute($borrowernumber, $itemnumber);
2207
    $sth_del->execute($borrowernumber, $itemnumber);
2208
2208
2209
    ModItem( { 'onloan' => undef }, undef, $itemnumber );
2209
    C4::Items::ModItem( { 'onloan' => undef }, undef, $itemnumber );
2210
2210
2211
    if ( C4::Context->preference('StoreLastBorrower') ) {
2211
    if ( C4::Context->preference('StoreLastBorrower') ) {
2212
        my $item = Koha::Items->find( $itemnumber );
2212
        my $item = Koha::Items->find( $itemnumber );
Lines 2437-2443 sub _FixAccountForLostAndReturned { Link Here
2437
            VALUES (?,?,?,?)");
2437
            VALUES (?,?,?,?)");
2438
        $usth->execute($borrowernumber, $data->{'accountno'}, $nextaccntno, $offset);
2438
        $usth->execute($borrowernumber, $data->{'accountno'}, $nextaccntno, $offset);
2439
    }
2439
    }
2440
    ModItem({ paidfor => '' }, undef, $itemnumber);
2440
    C4::Items::ModItem({ paidfor => '' }, undef, $itemnumber);
2441
    return;
2441
    return;
2442
}
2442
}
2443
2443
Lines 2757-2763 sub CanBookBeRenewed { Link Here
2757
    my $dbh    = C4::Context->dbh;
2757
    my $dbh    = C4::Context->dbh;
2758
    my $renews = 1;
2758
    my $renews = 1;
2759
2759
2760
    my $item      = GetItem($itemnumber)      or return ( 0, 'no_item' );
2760
    my $item      = C4::Items::GetItem($itemnumber)      or return ( 0, 'no_item' );
2761
    my $itemissue = GetItemIssue($itemnumber) or return ( 0, 'no_checkout' );
2761
    my $itemissue = GetItemIssue($itemnumber) or return ( 0, 'no_checkout' );
2762
    return ( 0, 'onsite_checkout' ) if $itemissue->{onsite_checkout};
2762
    return ( 0, 'onsite_checkout' ) if $itemissue->{onsite_checkout};
2763
2763
Lines 2814-2820 sub CanBookBeRenewed { Link Here
2814
            foreach my $b (@borrowernumbers) {
2814
            foreach my $b (@borrowernumbers) {
2815
                my ($borr) = C4::Members::GetMemberDetails($b);
2815
                my ($borr) = C4::Members::GetMemberDetails($b);
2816
                foreach my $i (@itemnumbers) {
2816
                foreach my $i (@itemnumbers) {
2817
                    my $item = GetItem($i);
2817
                    my $item = C4::Items::GetItem($i);
2818
                    if (   IsAvailableForItemLevelRequest( $item, $borr )
2818
                    if (   IsAvailableForItemLevelRequest( $item, $borr )
2819
                        && CanItemBeReserved( $b, $i )
2819
                        && CanItemBeReserved( $b, $i )
2820
                        && !IsItemOnHoldAndFound($i) )
2820
                        && !IsItemOnHoldAndFound($i) )
Lines 2940-2946 sub AddRenewal { Link Here
2940
    my $datedue         = shift;
2940
    my $datedue         = shift;
2941
    my $lastreneweddate = shift || DateTime->now(time_zone => C4::Context->tz)->ymd();
2941
    my $lastreneweddate = shift || DateTime->now(time_zone => C4::Context->tz)->ymd();
2942
2942
2943
    my $item   = GetItem($itemnumber) or return;
2943
    my $item   = C4::Items::GetItem($itemnumber) or return;
2944
    my $biblio = GetBiblioFromItemNumber($itemnumber) or return;
2944
    my $biblio = GetBiblioFromItemNumber($itemnumber) or return;
2945
2945
2946
    my $dbh = C4::Context->dbh;
2946
    my $dbh = C4::Context->dbh;
Lines 2989-2995 sub AddRenewal { Link Here
2989
2989
2990
    # Update the renewal count on the item, and tell zebra to reindex
2990
    # Update the renewal count on the item, and tell zebra to reindex
2991
    $renews = $biblio->{'renewals'} + 1;
2991
    $renews = $biblio->{'renewals'} + 1;
2992
    ModItem({ renewals => $renews, onloan => $datedue->strftime('%Y-%m-%d %H:%M')}, $biblio->{'biblionumber'}, $itemnumber);
2992
    C4::Items::ModItem({ renewals => $renews, onloan => $datedue->strftime('%Y-%m-%d %H:%M')}, $biblio->{'biblionumber'}, $itemnumber);
2993
2993
2994
    # Charge a new rental fee, if applicable?
2994
    # Charge a new rental fee, if applicable?
2995
    my ( $charge, $type ) = GetIssuingCharges( $itemnumber, $borrowernumber );
2995
    my ( $charge, $type ) = GetIssuingCharges( $itemnumber, $borrowernumber );
Lines 3062-3068 sub GetRenewCount { Link Here
3062
    my $renewsleft    = 0;
3062
    my $renewsleft    = 0;
3063
3063
3064
    my $borrower = C4::Members::GetMember( borrowernumber => $bornum);
3064
    my $borrower = C4::Members::GetMember( borrowernumber => $bornum);
3065
    my $item     = GetItem($itemno); 
3065
    my $item     = C4::Items::GetItem($itemno);
3066
3066
3067
    # Look in the issues table for this item, lent to this borrower,
3067
    # Look in the issues table for this item, lent to this borrower,
3068
    # and not yet returned.
3068
    # and not yet returned.
Lines 3111-3117 sub GetSoonestRenewDate { Link Here
3111
3111
3112
    my $dbh = C4::Context->dbh;
3112
    my $dbh = C4::Context->dbh;
3113
3113
3114
    my $item      = GetItem($itemnumber)      or return;
3114
    my $item      = C4::Items::GetItem($itemnumber)      or return;
3115
    my $itemissue = GetItemIssue($itemnumber) or return;
3115
    my $itemissue = GetItemIssue($itemnumber) or return;
3116
3116
3117
    $borrowernumber ||= $itemissue->{borrowernumber};
3117
    $borrowernumber ||= $itemissue->{borrowernumber};
Lines 3166-3172 sub GetLatestAutoRenewDate { Link Here
3166
3166
3167
    my $dbh = C4::Context->dbh;
3167
    my $dbh = C4::Context->dbh;
3168
3168
3169
    my $item      = GetItem($itemnumber)      or return;
3169
    my $item      = C4::Items::GetItem($itemnumber)      or return;
3170
    my $itemissue = GetItemIssue($itemnumber) or return;
3170
    my $itemissue = GetItemIssue($itemnumber) or return;
3171
3171
3172
    $borrowernumber ||= $itemissue->{borrowernumber};
3172
    $borrowernumber ||= $itemissue->{borrowernumber};
Lines 3559-3565 Simple methode for updating hodlingbranch in items BDD line Link Here
3559
3559
3560
sub UpdateHoldingbranch {
3560
sub UpdateHoldingbranch {
3561
	my ( $branch,$itemnumber ) = @_;
3561
	my ( $branch,$itemnumber ) = @_;
3562
    ModItem({ holdingbranch => $branch }, undef, $itemnumber);
3562
    C4::Items::ModItem({ holdingbranch => $branch }, undef, $itemnumber);
3563
}
3563
}
3564
3564
3565
=head2 CalcDateDue
3565
=head2 CalcDateDue
Lines 3753-3759 sub ReturnLostItem{ Link Here
3753
    my @datearr = localtime(time);
3753
    my @datearr = localtime(time);
3754
    my $date = ( 1900 + $datearr[5] ) . "-" . ( $datearr[4] + 1 ) . "-" . $datearr[3];
3754
    my $date = ( 1900 + $datearr[5] ) . "-" . ( $datearr[4] + 1 ) . "-" . $datearr[3];
3755
    my $bor = "$borrower->{'firstname'} $borrower->{'surname'} $borrower->{'cardnumber'}";
3755
    my $bor = "$borrower->{'firstname'} $borrower->{'surname'} $borrower->{'cardnumber'}";
3756
    ModItem({ paidfor =>  $old_note."Paid for by $bor $date" }, undef, $itemnum);
3756
    C4::Items::ModItem({ paidfor =>  $old_note."Paid for by $bor $date" }, undef, $itemnum);
3757
}
3757
}
3758
3758
3759
3759
Lines 3850-3856 sub ProcessOfflineReturn { Link Here
3850
                undef,
3850
                undef,
3851
                $operation->{timestamp},
3851
                $operation->{timestamp},
3852
            );
3852
            );
3853
            ModItem(
3853
            C4::Items::ModItem(
3854
                { renewals => 0, onloan => undef },
3854
                { renewals => 0, onloan => undef },
3855
                $issue->{'biblionumber'},
3855
                $issue->{'biblionumber'},
3856
                $itemnumber
3856
                $itemnumber
Lines 3921-3927 sub ProcessOfflinePayment { Link Here
3921
sub TransferSlip {
3921
sub TransferSlip {
3922
    my ($branch, $itemnumber, $barcode, $to_branch) = @_;
3922
    my ($branch, $itemnumber, $barcode, $to_branch) = @_;
3923
3923
3924
    my $item =  GetItem( $itemnumber, $barcode )
3924
    my $item =  C4::Items::GetItem( $itemnumber, $barcode )
3925
      or return;
3925
      or return;
3926
3926
3927
    return C4::Letters::GetPreparedLetter (
3927
    return C4::Letters::GetPreparedLetter (
3928
- 

Return to bug 17591