my $date_returned = $return_date ? dt_from_string($return_date) : dt_from_string();
- my ( $amount, $type, $unitcounttotal ) =
+ my ( $amount, $unitcounttotal, $unitcount ) =
C4::Overdues::CalcFine( $item, $borrower->{categorycode}, $control_branchcode, $datedue, $date_returned );
- $type ||= q{};
-
if ( C4::Context->preference('finesMode') eq 'production' ) {
if ( $amount > 0 ) {
C4::Overdues::UpdateFine({
itemnumber => $issue->itemnumber,
borrowernumber => $issue->borrowernumber,
amount => $amount,
- type => $type,
due => output_pref($datedue),
});
}
itemnumber => $issue->itemnumber,
borrowernumber => $issue->borrowernumber,
amount => 0,
- type => $type,
due => output_pref($datedue),
});
}
=head2 CalcFine
- ($amount, $chargename, $units_minus_grace, $chargeable_units) = &CalcFine($item,
+ ($amount, $units_minus_grace, $chargeable_units) = &CalcFine($item,
$categorycode, $branch,
$start_dt, $end_dt );
Fines scripts should just supply the date range over which to calculate the fine.
-C<&CalcFine> returns four values:
+C<&CalcFine> returns three values:
C<$amount> is the fine owed by the patron (see above).
-C<$chargename> is the chargename field from the applicable record in
-the categoryitem table, whatever that is.
-
C<$units_minus_grace> is the number of chargeable units minus the grace period
C<$chargeable_units> is the number of chargeable units (days between start and end dates, Calendar adjusted where needed,
$amount = $item->{replacementprice} if ( $issuing_rule->cap_fine_to_replacement_price && $item->{replacementprice} && $amount > $item->{replacementprice} );
- $debug and warn sprintf("CalcFine returning (%s, %s, %s, %s)", $amount, $issuing_rule->chargename, $units_minus_grace, $chargeable_units);
- return ($amount, $issuing_rule->chargename, $units_minus_grace, $chargeable_units);
- # FIXME: chargename is NEVER populated anywhere.
+ $debug and warn sprintf("CalcFine returning (%s, %s, %s, %s)", $amount, $units_minus_grace, $chargeable_units);
+ return ($amount, $units_minus_grace, $chargeable_units);
}
=head2 UpdateFine
- &UpdateFine({ issue_id => $issue_id, itemnumber => $itemnumber, borrwernumber => $borrowernumber, amount => $amount, type => $type, $due => $date_due });
+ &UpdateFine(
+ {
+ issue_id => $issue_id,
+ itemnumber => $itemnumber,
+ borrowernumber => $borrowernumber,
+ amount => $amount,
+ due => $date_due
+ }
+ );
(Note: the following is mostly conjecture and guesswork.)
C<$amount> is the current amount owed by the patron.
-C<$type> will be used in the description of the fine.
-
C<$due> is the due date formatted to the currently specified date format
C<&UpdateFine> looks up the amount currently owed on the given item
my $itemnum = $params->{itemnumber};
my $borrowernumber = $params->{borrowernumber};
my $amount = $params->{amount};
- my $type = $params->{type};
my $due = $params->{due};
- $debug and warn "UpdateFine({ itemnumber => $itemnum, borrowernumber => $borrowernumber, type => $type, due => $due, issue_id => $issue_id})";
+ $debug and warn "UpdateFine({ itemnumber => $itemnum, borrowernumber => $borrowernumber, due => $due, issue_id => $issue_id})";
unless ( $issue_id ) {
carp("No issue_id passed in!");
my $nextaccntno = C4::Accounts::getnextacctno($borrowernumber);
- my $desc = ( $type ? "$type " : '' ) . "$title $due"; # FIXEDME, avoid whitespace prefix on empty $type
+ my $desc = "$title $due";
my $accountline = Koha::Account::Line->new(
{
# logging action
&logaction(
"FINES",
- $type,
+ undef,
$borrowernumber,
"due=".$due." amount=".$amount." itemnumber=".$itemnum
) if C4::Context->preference("FinesLog");
my @borrower_fields =
qw(cardnumber categorycode surname firstname email phone address citystate);
my @item_fields = qw(itemnumber barcode date_due);
-my @other_fields = qw(type days_overdue fine);
+my @other_fields = qw(days_overdue fine);
my $libname = C4::Context->preference('LibraryName');
my $control = C4::Context->preference('CircControl');
my $mode = C4::Context->preference('finesMode');
}
++$counted;
- my ( $amount, $type, $unitcounttotal ) =
+ my ( $amount, $unitcounttotal, $unitcount ) =
CalcFine( $overdue, $borrower->{categorycode},
$branchcode, $datedue, $today );
- $type ||= q{};
# Don't update the fine if today is a holiday.
# This ensures that dropbox mode will remove the correct amount of fine.
itemnumber => $overdue->{itemnumber},
borrowernumber => $overdue->{borrowernumber},
amount => $amount,
- type => $type,
due => output_pref($datedue),
}
);
map { defined $borrower->{$_} ? $borrower->{$_} : q{} }
@borrower_fields;
push @cells, map { $overdue->{$_} } @item_fields;
- push @cells, $type, $unitcounttotal, $amount;
+ push @cells, $unitcounttotal, $amount;
say {$fh} join $delim, @cells;
}
}
( $datedue_days <= $today_days ) or next; # or it's not overdue, right?
$overdueItemsCounted++;
- my ( $amount, $type, $unitcounttotal, $unitcount ) = CalcFine(
+ my ( $amount, $unitcounttotal, $unitcount ) = CalcFine(
$data->[$i],
$borrower->{'categorycode'},
$branchcode,
next;
}
- # FIXME: $type NEVER gets populated by anything.
- ( defined $type ) or $type = '';
-
# Don't update the fine if today is a holiday.
# This ensures that dropbox mode will remove the correct amount of fine.
if ( $mode eq 'production' and !$borrowersalreadyapplied->{$data->[$i]->{'borrowernumber'}}) {
itemnumber => $itemnumber7,
borrowernumber => $renewing_borrower->{borrowernumber},
amount => $fine,
- type => 'FU',
due => Koha::DateUtils::output_pref($five_weeks_ago)
}
);
#Test GetIssuingRule
my $sampleissuingrule1 = {
reservecharge => '0.000000',
- chargename => undef,
restrictedtype => 0,
accountsent => 0,
maxissueqty => 5,
overduefinescap => undef,
accountsent => undef,
reservecharge => undef,
- chargename => undef,
restrictedtype => undef,
maxsuspensiondays => 0,
onshelfholds => 1,
overduefinescap => undef,
accountsent => undef,
reservecharge => undef,
- chargename => undef,
restrictedtype => undef,
maxsuspensiondays => 0,
onshelfholds => 1,
overduefinescap,
accountsent,
reservecharge,
- chargename,
restrictedtype,
maxsuspensiondays,
onshelfholds,
opacitemholds,
cap_fine_to_replacement_price,
article_requests
- ) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)';
+ ) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)';
my $sth = $dbh->prepare($query);
$sth->execute(
$sampleissuingrule1->{branchcode},
$sampleissuingrule1->{overduefinescap},
$sampleissuingrule1->{accountsent},
$sampleissuingrule1->{reservecharge},
- $sampleissuingrule1->{chargename},
$sampleissuingrule1->{restrictedtype},
$sampleissuingrule1->{maxsuspensiondays},
$sampleissuingrule1->{onshelfholds},
$sampleissuingrule2->{overduefinescap},
$sampleissuingrule2->{accountsent},
$sampleissuingrule2->{reservecharge},
- $sampleissuingrule2->{chargename},
$sampleissuingrule2->{restrictedtype},
$sampleissuingrule2->{maxsuspensiondays},
$sampleissuingrule2->{onshelfholds},
$sampleissuingrule3->{overduefinescap},
$sampleissuingrule3->{accountsent},
$sampleissuingrule3->{reservecharge},
- $sampleissuingrule3->{chargename},
$sampleissuingrule3->{restrictedtype},
$sampleissuingrule3->{maxsuspensiondays},
$sampleissuingrule3->{onshelfholds},