Bugzilla – Attachment 105547 Details for
Bug 23091
Add options to charge new or restore forgiven overdues when a lost item is returned
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 23091: Add handling for restore case
Bug-23091-Add-handling-for-restore-case.patch (text/plain), 3.56 KB, created by
Martin Renvoize (ashimema)
on 2020-06-04 09:54:50 UTC
(
hide
)
Description:
Bug 23091: Add handling for restore case
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2020-06-04 09:54:50 UTC
Size:
3.56 KB
patch
obsolete
>From a1641914f63532a489476e0fd393ecef7d94982e Mon Sep 17 00:00:00 2001 >From: Martin Renvoize <martin.renvoize@ptfs-europe.com> >Date: Thu, 4 Jun 2020 10:53:05 +0100 >Subject: [PATCH] Bug 23091: Add handling for restore case > >This patch adds handling for the 'restore' case of lostreturn policy. >--- > C4/Circulation.pm | 70 ++++++++++++++++++++++++++++++++++++++++++++--- > 1 file changed, 66 insertions(+), 4 deletions(-) > >diff --git a/C4/Circulation.pm b/C4/Circulation.pm >index aadebf9adf..c0bdbd1b23 100644 >--- a/C4/Circulation.pm >+++ b/C4/Circulation.pm >@@ -2071,6 +2071,8 @@ sub AddReturn { > $messages->{'LostItemFeeCharged'} = 1; > } > elsif ( $lostreturn_policy eq 'restore' ) { >+ _RestoreOverdueForLostAndFound( $item->itemnumber, >+ $borrowernumber ); > $messages->{'LostItemFeeRestored'} = 1; > } > } >@@ -2477,15 +2479,12 @@ sub _FixOverduesOnReturn { > > $credit->apply({ debits => [ $accountline ], offset_type => 'Forgiven' }); > >- $accountline->status('FORGIVEN'); >- > if (C4::Context->preference("FinesLog")) { > &logaction("FINES", 'MODIFY',$borrowernumber,"Overdue forgiven: item $item"); > } >- } else { >- $accountline->status($status); > } > >+ $accountline->status($status); > return $accountline->store(); > } > ); >@@ -2582,6 +2581,69 @@ sub _FixAccountForLostAndFound { > return ($credit) ? $credit->id : undef; > } > >+=head2 _RestoreOverdueForLostAndFound >+ >+ &_RestoreOverdueForLostAndFound($borrowernumber, $itemnumber ); >+ >+C<$borrowernumber> borrowernumber >+ >+C<$itemnumber> itemnumber >+ >+Internal function >+ >+=cut >+ >+sub _RestoreOverdueForLostAndFound { >+ my ( $borrowernumber, $item ) = @_; >+ >+ unless( $borrowernumber ) { >+ warn "_RestoreOverdueForLostAndFound() not supplied valid borrowernumber"; >+ return; >+ } >+ unless( $item ) { >+ warn "_RestoreOverdueForLostAndFound() not supplied valid itemnumber"; >+ return; >+ } >+ >+ my $schema = Koha::Database->schema; >+ >+ my $result = $schema->txn_do( >+ sub { >+ # check for lost overdue fine >+ my $accountlines = Koha::Account::Lines->search( >+ { >+ borrowernumber => $borrowernumber, >+ itemnumber => $item, >+ debit_type_code => 'OVERDUE', >+ status => 'LOST' >+ }, >+ { >+ order_by => { '-desc' => 'date' }, >+ rows => 1 >+ } >+ ); >+ return 0 unless $accountlines->count; # no warning, there's just nothing to fix >+ >+ # Find related forgive credit >+ my $overdue = $accountlines->next; >+ my $refunds = $overdue->credits( >+ { >+ credit_type_code => 'FORGIVEN', >+ itemnumber => $item, >+ status => { '!=' => 'VOID' } >+ }, >+ { order_by => { '-desc' => 'date' }, rows => 1 } >+ ); >+ return 0 unless $refunds->count; # no warning, there's just nothing to fix >+ >+ # Revert the forgive credit >+ my $refund = $refunds->next; >+ return $refund->void(); >+ } >+ ); >+ >+ return $result; >+} > =head2 _GetCircControlBranch > > my $circ_control_branch = _GetCircControlBranch($iteminfos, $borrower); >-- >2.20.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 23091
:
96217
|
105529
|
105530
|
105531
|
105544
|
105545
|
105546
|
105547
|
105567
|
105649
|
106871
|
106872
|
106873
|
106874
|
106875
|
106876
|
106906
|
106907
|
106908
|
106909
|
106910
|
106911
|
106912
|
106961
|
107026
|
107027
|
107028
|
107029
|
107030
|
107031
|
107032
|
107033
|
107034
|
107100
|
107101
|
107102
|
107103
|
107104
|
107105
|
107106
|
107107
|
107108
|
107335
|
107336
|
107337
|
107338
|
107339
|
107340
|
107341
|
107342
|
107343
|
108718
|
108719
|
108720
|
108721
|
108722
|
108723
|
108724
|
109571
|
109572
|
109573
|
109574
|
109575
|
109576
|
109577
|
110660
|
110661
|
110662
|
110663
|
110664
|
110665
|
110666
|
110667
|
110720
|
110721
|
110722
|
110723
|
110724
|
110725
|
110726
|
110727
|
111501
|
111502
|
111503
|
111504
|
111505
|
111506
|
111507
|
111508
|
111935
|
111936
|
111965
|
111979
|
111980
|
111981
|
111982
|
111983
|
111984
|
111985
|
111986
|
111987
|
111988
|
111989
|
113081
|
113082
|
113083
|
113084
|
113085
|
113086
|
113087
|
113088
|
113089
|
113090
|
113091