Lines 1464-1471
sub AddIssue {
Link Here
|
1464 |
); |
1464 |
); |
1465 |
|
1465 |
|
1466 |
if ($lostreturn_policy) { |
1466 |
if ($lostreturn_policy) { |
1467 |
_FixAccountForLostAndFound( $item_object->itemnumber, undef, |
1467 |
_FixAccountForLostAndFound( $item_object->itemnumber ); |
1468 |
$item_object->barcode ); |
|
|
1469 |
|
1468 |
|
1470 |
if ( $lostreturn_policy eq 'charge' ) { |
1469 |
if ( $lostreturn_policy eq 'charge' ) { |
1471 |
$actualissue //= Koha::Old::Checkouts->search( |
1470 |
$actualissue //= Koha::Old::Checkouts->search( |
Lines 1475-1480
sub AddIssue {
Link Here
|
1475 |
rows => 1 |
1474 |
rows => 1 |
1476 |
} |
1475 |
} |
1477 |
)->single; |
1476 |
)->single; |
|
|
1477 |
unless (exists($borrower->{branchcode})) { |
1478 |
my $patron = $issue->patron; |
1479 |
$borrower = $patron->unblessed; |
1480 |
} |
1478 |
_CalculateAndUpdateFine( |
1481 |
_CalculateAndUpdateFine( |
1479 |
{ |
1482 |
{ |
1480 |
issue => $actualissue, |
1483 |
issue => $actualissue, |
Lines 1486-1495
sub AddIssue {
Link Here
|
1486 |
$item_object->itemnumber, undef, 'RENEWED' ); |
1489 |
$item_object->itemnumber, undef, 'RENEWED' ); |
1487 |
} |
1490 |
} |
1488 |
elsif ( $lostreturn_policy eq 'restore' ) { |
1491 |
elsif ( $lostreturn_policy eq 'restore' ) { |
1489 |
_RestoreOverdueForLostAndFound( |
1492 |
_RestoreOverdueForLostAndFound( $item_object->itemnumber ); |
1490 |
$borrower->{'borrowernumber'}, |
|
|
1491 |
$item_object->itemnumber |
1492 |
); |
1493 |
} |
1493 |
} |
1494 |
} |
1494 |
} |
1495 |
} |
1495 |
} |
Lines 2072-2079
sub AddReturn {
Link Here
|
2072 |
); |
2072 |
); |
2073 |
|
2073 |
|
2074 |
if ($lostreturn_policy) { |
2074 |
if ($lostreturn_policy) { |
2075 |
_FixAccountForLostAndFound( $item->itemnumber, |
2075 |
_FixAccountForLostAndFound( $item->itemnumber ); |
2076 |
$borrowernumber, $barcode ); |
|
|
2077 |
$messages->{'LostItemFeeRefunded'} = 1; |
2076 |
$messages->{'LostItemFeeRefunded'} = 1; |
2078 |
|
2077 |
|
2079 |
if ( $lostreturn_policy eq 'charge' ) { |
2078 |
if ( $lostreturn_policy eq 'charge' ) { |
Lines 2081-2086
sub AddReturn {
Link Here
|
2081 |
{ itemnumber => $item->itemnumber }, |
2080 |
{ itemnumber => $item->itemnumber }, |
2082 |
{ order_by => { '-desc' => 'returndate' }, rows => 1 } |
2081 |
{ order_by => { '-desc' => 'returndate' }, rows => 1 } |
2083 |
)->single; |
2082 |
)->single; |
|
|
2083 |
unless (exists($patron_unblessed->{branchcode})) { |
2084 |
my $patron = $issue->patron; |
2085 |
$patron_unblessed = $patron->unblessed; |
2086 |
} |
2084 |
_CalculateAndUpdateFine( |
2087 |
_CalculateAndUpdateFine( |
2085 |
{ |
2088 |
{ |
2086 |
issue => $issue, |
2089 |
issue => $issue, |
Lines 2094-2101
sub AddReturn {
Link Here
|
2094 |
$messages->{'LostItemFeeCharged'} = 1; |
2097 |
$messages->{'LostItemFeeCharged'} = 1; |
2095 |
} |
2098 |
} |
2096 |
elsif ( $lostreturn_policy eq 'restore' ) { |
2099 |
elsif ( $lostreturn_policy eq 'restore' ) { |
2097 |
_RestoreOverdueForLostAndFound( $borrowernumber, |
2100 |
_RestoreOverdueForLostAndFound( $item->itemnumber ); |
2098 |
$item->itemnumber ); |
|
|
2099 |
$messages->{'LostItemFeeRestored'} = 1; |
2101 |
$messages->{'LostItemFeeRestored'} = 1; |
2100 |
} |
2102 |
} |
2101 |
} |
2103 |
} |
Lines 2606-2614
sub _FixAccountForLostAndFound {
Link Here
|
2606 |
|
2608 |
|
2607 |
=head2 _RestoreOverdueForLostAndFound |
2609 |
=head2 _RestoreOverdueForLostAndFound |
2608 |
|
2610 |
|
2609 |
&_RestoreOverdueForLostAndFound($borrowernumber, $itemnumber ); |
2611 |
&_RestoreOverdueForLostAndFound( $itemnumber ); |
2610 |
|
|
|
2611 |
C<$borrowernumber> borrowernumber |
2612 |
|
2612 |
|
2613 |
C<$itemnumber> itemnumber |
2613 |
C<$itemnumber> itemnumber |
2614 |
|
2614 |
|
Lines 2617-2628
Internal function
Link Here
|
2617 |
=cut |
2617 |
=cut |
2618 |
|
2618 |
|
2619 |
sub _RestoreOverdueForLostAndFound { |
2619 |
sub _RestoreOverdueForLostAndFound { |
2620 |
my ( $borrowernumber, $item ) = @_; |
2620 |
my ( $item ) = @_; |
2621 |
|
2621 |
|
2622 |
unless( $borrowernumber ) { |
|
|
2623 |
warn "_RestoreOverdueForLostAndFound() not supplied valid borrowernumber"; |
2624 |
return; |
2625 |
} |
2626 |
unless( $item ) { |
2622 |
unless( $item ) { |
2627 |
warn "_RestoreOverdueForLostAndFound() not supplied valid itemnumber"; |
2623 |
warn "_RestoreOverdueForLostAndFound() not supplied valid itemnumber"; |
2628 |
return; |
2624 |
return; |
Lines 2635-2641
sub _RestoreOverdueForLostAndFound {
Link Here
|
2635 |
# check for lost overdue fine |
2631 |
# check for lost overdue fine |
2636 |
my $accountlines = Koha::Account::Lines->search( |
2632 |
my $accountlines = Koha::Account::Lines->search( |
2637 |
{ |
2633 |
{ |
2638 |
borrowernumber => $borrowernumber, |
|
|
2639 |
itemnumber => $item, |
2634 |
itemnumber => $item, |
2640 |
debit_type_code => 'OVERDUE', |
2635 |
debit_type_code => 'OVERDUE', |
2641 |
status => 'LOST' |
2636 |
status => 'LOST' |