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 |
- |
|
|