Bug 22589: Remove C4::Overdues::BorType
Test plan:
0) Apply patch
1) try to run affected scripts and ensure the amounts are corectly
calculated for different patron categories:
installer/data/mysql/fix_unclosed_nonaccruing_fines_bug17135.pl
misc/cronjobs/fines.pl
misc/cronjobs/staticfines.pl
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
parent
8986310a60
commit
ce6229cd75
|
|
@ -56,13 +56,6 @@ BEGIN {
|
|||
&parse_overdues_letter
|
||||
);
|
||||
|
||||
# subs to remove
|
||||
push @EXPORT, qw(
|
||||
&BorType
|
||||
);
|
||||
|
||||
# check that an equivalent don't exist already before moving
|
||||
|
||||
# subs to move to Circulation.pm
|
||||
push @EXPORT, qw(
|
||||
&GetIssuesIteminfo
|
||||
|
|
@ -618,31 +611,6 @@ sub UpdateFine {
|
|||
}
|
||||
}
|
||||
|
||||
=head2 BorType
|
||||
|
||||
$borrower = &BorType($borrowernumber);
|
||||
|
||||
Looks up a patron by borrower number.
|
||||
|
||||
C<$borrower> is a reference-to-hash whose keys are all of the fields
|
||||
from the borrowers and categories tables of the Koha database. Thus,
|
||||
C<$borrower> contains all information about both the borrower and
|
||||
category they belong to.
|
||||
|
||||
=cut
|
||||
|
||||
sub BorType {
|
||||
my ($borrowernumber) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $sth = $dbh->prepare(
|
||||
"SELECT * from borrowers
|
||||
LEFT JOIN categories ON borrowers.categorycode=categories.categorycode
|
||||
WHERE borrowernumber=?"
|
||||
);
|
||||
$sth->execute($borrowernumber);
|
||||
return $sth->fetchrow_hashref;
|
||||
}
|
||||
|
||||
=head2 GetFine
|
||||
|
||||
$data->{'sum(amountoutstanding)'} = &GetFine($itemnum,$borrowernumber);
|
||||
|
|
|
|||
|
|
@ -21,10 +21,11 @@
|
|||
use Modern::Perl;
|
||||
|
||||
use C4::Context;
|
||||
use C4::Overdues qw/CalcFine BorType/;
|
||||
use C4::Overdues qw/CalcFine/;
|
||||
use C4::Log qw/logaction/;
|
||||
|
||||
use Koha::DateUtils;
|
||||
use Koha::Patrons;
|
||||
use Getopt::Long;
|
||||
|
||||
my ($help, $verbose, $confirm, $log, $stdout_log);
|
||||
|
|
@ -151,13 +152,13 @@ sub Bug_17135_fix {
|
|||
my $overdue = $overdues->[0];
|
||||
|
||||
### last if $overdue->{itemlost}; ## arguable
|
||||
my $borrower = BorType( $overdue->{borrowernumber} );
|
||||
my $patron = Koha::Patron->find( $overdue->{borrowernumber} );
|
||||
my $branchcode =
|
||||
( $control eq 'ItemHomeLibrary' ) ? $overdue->{homebranch}
|
||||
: ( $control eq 'PatronLibrary' ) ? $borrower->{branchcode}
|
||||
: ( $control eq 'PatronLibrary' ) ? $patron->branchcode
|
||||
: $overdue->{branchcode};
|
||||
|
||||
my ($amount) = CalcFine( $overdue, $borrower->{categorycode}, $branchcode, $datedue, $today );
|
||||
my ($amount) = CalcFine( $overdue, $patron->categorycode, $branchcode, $datedue, $today );
|
||||
### Warn("CalcFine() returned '$amount'");
|
||||
last if ($amount > 0); ## accruing fine, skip closing
|
||||
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ use File::Spec;
|
|||
|
||||
use Koha::Calendar;
|
||||
use Koha::DateUtils;
|
||||
use Koha::Patrons;
|
||||
use C4::Log;
|
||||
|
||||
my $help;
|
||||
|
|
@ -111,10 +112,10 @@ for my $overdue ( @{$overdues} ) {
|
|||
"ERROR in Getoverdues : issues.borrowernumber IS NULL. Repair 'issues' table now! Skipping record.\n";
|
||||
next;
|
||||
}
|
||||
my $borrower = BorType( $overdue->{borrowernumber} );
|
||||
my $patron = Koha::Patrons->find( $overdue->{borrowernumber} );
|
||||
my $branchcode =
|
||||
( $control eq 'ItemHomeLibrary' ) ? $overdue->{homebranch}
|
||||
: ( $control eq 'PatronLibrary' ) ? $borrower->{branchcode}
|
||||
: ( $control eq 'PatronLibrary' ) ? $patron->branchcode
|
||||
: $overdue->{branchcode};
|
||||
|
||||
# In final case, CircControl must be PickupLibrary. (branchcode comes from issues table here).
|
||||
|
|
@ -129,7 +130,7 @@ for my $overdue ( @{$overdues} ) {
|
|||
++$counted;
|
||||
|
||||
my ( $amount, $unitcounttotal, $unitcount ) =
|
||||
CalcFine( $overdue, $borrower->{categorycode},
|
||||
CalcFine( $overdue, $patron->categorycode,
|
||||
$branchcode, $datedue, $today );
|
||||
|
||||
# Don't update the fine if today is a holiday.
|
||||
|
|
@ -147,6 +148,7 @@ for my $overdue ( @{$overdues} ) {
|
|||
);
|
||||
}
|
||||
}
|
||||
my $borrower = $patron->unblessed;
|
||||
if ($filename) {
|
||||
my @cells;
|
||||
push @cells,
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ use C4::Log;
|
|||
use Getopt::Long;
|
||||
use List::MoreUtils qw/none/;
|
||||
use Koha::DateUtils;
|
||||
use Koha::Patrons;
|
||||
|
||||
my $help = 0;
|
||||
my $verbose = 0;
|
||||
|
|
@ -157,16 +158,16 @@ for ( my $i = 0 ; $i < scalar(@$data) ; $i++ ) {
|
|||
print STDERR "ERROR in Getoverdues line $i: issues.borrowernumber IS NULL. Repair 'issues' table now! Skipping record.\n";
|
||||
next; # Note: this doesn't solve everything. After NULL borrowernumber, multiple issues w/ real borrowernumbers can pile up.
|
||||
}
|
||||
my $borrower = BorType( $data->[$i]->{'borrowernumber'} );
|
||||
my $patron = Koha::Patrons->find( $data->[$i]->{'borrowernumber'} );
|
||||
|
||||
# Skipping borrowers that are not in @categories
|
||||
$bigdebug and warn "Skipping borrower from category " . $borrower->{categorycode} if none { $borrower->{categorycode} eq $_ } @categories;
|
||||
next if none { $borrower->{categorycode} eq $_ } @categories;
|
||||
$bigdebug and warn "Skipping borrower from category " . $patron->categorycode if none { $patron->categorycode eq $_ } @categories;
|
||||
next if none { $patron->categorycode eq $_ } @categories;
|
||||
|
||||
my $branchcode =
|
||||
( $useborrowerlibrary ) ? $borrower->{branchcode}
|
||||
( $useborrowerlibrary ) ? $patron->branchcode
|
||||
: ( $control eq 'ItemHomeLibrary' ) ? $data->[$i]->{homebranch}
|
||||
: ( $control eq 'PatronLibrary' ) ? $borrower->{branchcode}
|
||||
: ( $control eq 'PatronLibrary' ) ? $patron->branchcode
|
||||
: $data->[$i]->{branchcode};
|
||||
# In final case, CircControl must be PickupLibrary. (branchcode comes from issues table here).
|
||||
|
||||
|
|
@ -190,14 +191,14 @@ for ( my $i = 0 ; $i < scalar(@$data) ; $i++ ) {
|
|||
$overdueItemsCounted++;
|
||||
my ( $amount, $unitcounttotal, $unitcount ) = CalcFine(
|
||||
$data->[$i],
|
||||
$borrower->{'categorycode'},
|
||||
$patron->categorycode,
|
||||
$branchcode,
|
||||
$datedue,
|
||||
$today,
|
||||
);
|
||||
|
||||
# Reassign fine's amount if specified in command-line
|
||||
$amount = $catamounts{$borrower->{'categorycode'}} if (defined $catamounts{$borrower->{'categorycode'}});
|
||||
$amount = $catamounts{$patron->categorycode} if (defined $catamounts{$patron->categorycode});
|
||||
|
||||
# We check if there is already a fine for the given borrower
|
||||
my $fine = GetFine(undef, $data->[$i]->{'borrowernumber'});
|
||||
|
|
|
|||
Loading…
Reference in New Issue