From efd36437f5f66a887fc71e6bdfe63fe008ccf105 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Tue, 23 Apr 2019 18:05:05 +0100 Subject: [PATCH] Bug 11573: Make rental accountlines translatable To test: 1. Set up an item type with a rental charge 2. Issue an item with that item type 3. Check fines - the rental charge does not show the title of the issued item 4. Renew that item, the renewal charge does show the title of the issued item 5. Apply the patch 6. Repeat steps 1-4, both should show the title of the issued item in the description. 7. Repeat steps 1-6 for an item type with a daily rental charge Signed-off-by: Martin Renvoize --- C4/Circulation.pm | 18 +++----- Koha/Account.pm | 29 ++++++++----- .../prog/en/includes/accounts.inc | 43 ++++++++++--------- .../bootstrap/en/includes/account-table.inc | 5 ++- 4 files changed, 53 insertions(+), 42 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index 517d007209..2b675695fe 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -1471,15 +1471,14 @@ sub AddIssue { # If it costs to borrow this book, charge it to the patron's account. my ( $charge, $itemtype ) = GetIssuingCharges( $item_object->itemnumber, $borrower->{'borrowernumber'} ); if ( $charge > 0 ) { - my $description = "Rental"; - AddIssuingCharge( $issue, $charge, $description ); + AddIssuingCharge( $issue, $charge, 'rent' ); } my $itemtype_object = Koha::ItemTypes->find( $item_object->effective_itemtype ); if ( $itemtype_object ) { my $accumulate_charge = $fees->accumulate_rentalcharge(); if ( $accumulate_charge > 0 ) { - AddIssuingCharge( $issue, $accumulate_charge, 'Daily rental' ) if $accumulate_charge > 0; + AddIssuingCharge( $issue, $accumulate_charge, 'rent_daily' ) if $accumulate_charge > 0; $charge += $accumulate_charge; $item_unblessed->{charge} = $charge; } @@ -2888,8 +2887,7 @@ sub AddRenewal { # Charge a new rental fee, if applicable my ( $charge, $type ) = GetIssuingCharges( $itemnumber, $borrowernumber ); if ( $charge > 0 ) { - my $description = "Renewal of Rental Item " . $biblio->title . " " .$item_object->barcode; - AddIssuingCharge($issue, $charge, $description); + AddIssuingCharge($issue, $charge, 'rent_renew'); } # Charge a new accumulate rental fee, if applicable @@ -2897,8 +2895,7 @@ sub AddRenewal { if ( $itemtype_object ) { my $accumulate_charge = $fees->accumulate_rentalcharge(); if ( $accumulate_charge > 0 ) { - my $type_desc = "Renewal of Daily Rental Item " . $biblio->title . " $item_unblessed->{'barcode'}"; - AddIssuingCharge( $issue, $accumulate_charge, $type_desc ) + AddIssuingCharge( $issue, $accumulate_charge, 'rent_daily_renew' ) } $charge += $accumulate_charge; } @@ -3220,12 +3217,12 @@ sub _get_discount_from_rule { =head2 AddIssuingCharge - &AddIssuingCharge( $checkout, $charge, [$description] ) + &AddIssuingCharge( $checkout, $charge, $type ) =cut sub AddIssuingCharge { - my ( $checkout, $charge, $description ) = @_; + my ( $checkout, $charge, $type ) = @_; # FIXME What if checkout does not exist? @@ -3233,12 +3230,11 @@ sub AddIssuingCharge { my $accountline = $account->add_debit( { amount => $charge, - description => $description, note => undef, user_id => C4::Context->userenv ? C4::Context->userenv->{'number'} : undef, library_id => C4::Context->userenv ? C4::Context->userenv->{'branch'} : undef, interface => C4::Context->interface, - type => 'rent', + type => $type, item_id => $checkout->itemnumber, issue_id => $checkout->issue_id, } diff --git a/Koha/Account.pm b/Koha/Account.pm index 0239bac73c..7018a2c183 100644 --- a/Koha/Account.pm +++ b/Koha/Account.pm @@ -432,6 +432,9 @@ $debit_type can be any of: - sundry - processing - rent + - rent_daily + - rent_renewal + - rent_daily_renewal - reserve - manual @@ -697,6 +700,9 @@ our $offset_type = { 'processing' => 'Processing Fee', 'lost_item' => 'Lost Item', 'rent' => 'Rental Fee', + 'rent_daily' => 'Rental Fee', + 'rent_renew' => 'Rental Fee', + 'rent_daily_renew' => 'Rental Fee', 'overdue' => 'OVERDUE', 'manual_debit' => 'Manual Debit', 'hold_expired' => 'Hold Expired' @@ -719,16 +725,19 @@ our $account_type_credit = { =cut our $account_type_debit = { - 'account' => 'A', - 'overdue' => 'OVERDUE', - 'lost_item' => 'LOST', - 'new_card' => 'N', - 'sundry' => 'M', - 'processing' => 'PF', - 'rent' => 'Rent', - 'reserve' => 'Res', - 'manual_debit' => 'M', - 'hold_expired' => 'HE' + 'account' => 'A', + 'overdue' => 'OVERDUE', + 'lost_item' => 'LOST', + 'new_card' => 'N', + 'sundry' => 'M', + 'processing' => 'PF', + 'rent' => 'RENT', + 'rent_daily' => 'RENT_DAILY', + 'rent_renew' => 'RENT_RENEW', + 'rent_daily_renew' => 'RENT_DAILY_RENEW', + 'reserve' => 'Res', + 'manual_debit' => 'M', + 'hold_expired' => 'HE' }; =head1 AUTHORS diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/accounts.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/accounts.inc index 1c2e18c563..53217187ef 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/accounts.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/accounts.inc @@ -1,25 +1,28 @@ [%- BLOCK account_type_description -%] [%- SWITCH account.accounttype -%] - [%- CASE 'Pay' -%]Payment, thanks - [%- CASE 'Pay00' -%]Payment, thanks (cash via SIP2) - [%- CASE 'Pay01' -%]Payment, thanks (VISA via SIP2) - [%- CASE 'Pay02' -%]Payment, thanks (credit card via SIP2) - [%- CASE 'N' -%]New card - [%- CASE 'OVERDUE' -%]Fine[%- PROCESS account_status_description account=account -%] - [%- CASE 'A' -%]Account management fee - [%- CASE 'M' -%]Sundry - [%- CASE 'LOST' -%]Lost item[%- PROCESS account_status_description account=account -%] - [%- CASE 'W' -%]Writeoff[%- PROCESS account_status_description account=account -%] - [%- CASE 'HE' -%]Hold waiting too long - [%- CASE 'Rent' -%]Rental fee - [%- CASE 'FOR' -%]Forgiven[%- PROCESS account_status_description account=account -%] - [%- CASE 'PF' -%]Lost item processing fee - [%- CASE 'PAY' -%]Payment[%- PROCESS account_status_description account=account -%] - [%- CASE 'WO' -%]Writeoff[%- PROCESS account_status_description account=account -%] - [%- CASE 'C' -%]Credit[%- PROCESS account_status_description account=account -%] - [%- CASE 'LOST_RETURN' -%]Lost item fee refund[%- PROCESS account_status_description account=account -%] - [%- CASE 'Res' -%]Hold fee - [%- CASE -%][% account.accounttype | html %] + [%- CASE 'Pay' -%]Payment, thanks + [%- CASE 'Pay00' -%]Payment, thanks (cash via SIP2) + [%- CASE 'Pay01' -%]Payment, thanks (VISA via SIP2) + [%- CASE 'Pay02' -%]Payment, thanks (credit card via SIP2) + [%- CASE 'N' -%]New card + [%- CASE 'OVERDUE' -%]Fine[%- PROCESS account_status_description account=account -%] + [%- CASE 'A' -%]Account management fee + [%- CASE 'M' -%]Sundry + [%- CASE 'LOST' -%]Lost item[%- PROCESS account_status_description account=account -%] + [%- CASE 'W' -%]Writeoff[%- PROCESS account_status_description account=account -%] + [%- CASE 'HE' -%]Hold waiting too long + [%- CASE 'RENT' -%]Rental fee + [%- CASE 'RENT_DAILY' -%]Daily rental fee + [%- CASE 'RENT_RENEW' -%]Renewal of rental item + [%- CASE 'RENT_DAILY_RENEW' -%]Rewewal of daily rental item + [%- CASE 'FOR' -%]Forgiven[%- PROCESS account_status_description account=account -%] + [%- CASE 'PF' -%]Lost item processing fee + [%- CASE 'PAY' -%]Payment[%- PROCESS account_status_description account=account -%] + [%- CASE 'WO' -%]Writeoff[%- PROCESS account_status_description account=account -%] + [%- CASE 'C' -%]Credit[%- PROCESS account_status_description account=account -%] + [%- CASE 'LOST_RETURN' -%]Lost item fee refund[%- PROCESS account_status_description account=account -%] + [%- CASE 'Res' -%]Hold fee + [%- CASE -%][% account.accounttype | html %] [%- END -%] [%- END -%] diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/account-table.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/account-table.inc index 79fb50fb99..36ecf2966b 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/account-table.inc +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/account-table.inc @@ -41,7 +41,10 @@ [% CASE 'LOST' %]Lost item[%- PROCESS account_status_description account=account -%] [% CASE 'W' %]Writeoff[%- PROCESS account_status_description account=account -%] [% CASE 'HE' %]Hold waiting too long - [% CASE 'Rent' %]Rental fee + [% CASE 'RENT' %]Rental fee + [% CASE 'RENT_DAILY' %]Daily rental fee + [% CASE 'RENT_RENEW' %]Renewal of rental item + [% CASE 'RENT_DAILT_RENEW' %]Renewal of dailt rental item [% CASE 'FOR' %]Forgiven[%- PROCESS account_status_description account=account -%] [% CASE 'PF' %]Lost item processing fee [% CASE 'PAY' %]Payment[%- PROCESS account_status_description account=account -%] -- 2.20.1