Bug 11872 - Lost overdue items should not generate fines
An item can be marked as lost by longoverdue.pl, but left checked out to
the patron. In this case, the item will continue to accrue fines.
Test Plan:
1) Check out an item and back date it so it is overdue and should
generate fines.
2) Mark the item as lost by either using longoverdue.pl, or just
by setting itemlost to 1 by directly accessing the database
3) Run fines.pl
4) Note the overdue generated a fine
5) Repeat steps 1-2
6) Apply this patch
7) Run fines.pl
8) Note a fine was not generated
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit 53923cbd02)
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
This commit is contained in:
parent
779b95cf44
commit
048ba66a90
|
|
@ -109,14 +109,14 @@ sub Getoverdues {
|
|||
my $statement;
|
||||
if ( C4::Context->preference('item-level_itypes') ) {
|
||||
$statement = "
|
||||
SELECT issues.*, items.itype as itemtype, items.homebranch, items.barcode
|
||||
SELECT issues.*, items.itype as itemtype, items.homebranch, items.barcode, items.itemlost
|
||||
FROM issues
|
||||
LEFT JOIN items USING (itemnumber)
|
||||
WHERE date_due < NOW()
|
||||
";
|
||||
} else {
|
||||
$statement = "
|
||||
SELECT issues.*, biblioitems.itemtype, items.itype, items.homebranch, items.barcode
|
||||
SELECT issues.*, biblioitems.itemtype, items.itype, items.homebranch, items.barcode, items.itemlost
|
||||
FROM issues
|
||||
LEFT JOIN items USING (itemnumber)
|
||||
LEFT JOIN biblioitems USING (biblioitemnumber)
|
||||
|
|
|
|||
|
|
@ -95,6 +95,8 @@ if ($filename) {
|
|||
my $counted = 0;
|
||||
my $overdues = Getoverdues();
|
||||
for my $overdue ( @{$overdues} ) {
|
||||
next if $overdue->{itemlost};
|
||||
|
||||
if ( !defined $overdue->{borrowernumber} ) {
|
||||
carp
|
||||
"ERROR in Getoverdues : issues.borrowernumber IS NULL. Repair 'issues' table now! Skipping record.\n";
|
||||
|
|
|
|||
|
|
@ -138,6 +138,7 @@ my ($tyear, $tmonth, $tday) = split( /-/, $today_iso );
|
|||
$today_days = Date_to_Days( $tyear, $tmonth, $tday );
|
||||
|
||||
for ( my $i = 0 ; $i < scalar(@$data) ; $i++ ) {
|
||||
next if $data->[$i]->{'itemlost'};
|
||||
my $datedue;
|
||||
my $datedue_days;
|
||||
eval {
|
||||
|
|
|
|||
Loading…
Reference in New Issue