Bug 25596: Identify overpayment refunds for translation

This patch ensures we can uniquely identify automatic overpayment refund
credits from the accountlines by introducing a new account credit type
and adding appropriate translations for the new code.

Test plan
1/ You'll need an overpayment refund to start...
1a/ Issue yourself and item and set the date due early enough
to create an overdue fine for at least 2 days worth of overdue fines
1b/ Run the fines.pl script to add the fines
1c/ As a patron, pay off the accruing fine
1d/ Return the item ensuring you backdate it at least a day
1e/ Check that there is an 'Overpayment refund' credit on the patrons
account.
2/ Check that the overpayment string is translatable (i.e. it appears in
the accounts include file)

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
Martin Renvoize 2020-09-09 14:34:34 +01:00 committed by Jonathan Druart
parent a71596fb39
commit e3183de77b
8 changed files with 34 additions and 3 deletions

View File

@ -361,6 +361,8 @@ $credit_type can be any of:
- 'PAYMENT'
- 'FORGIVEN'
- 'LOST_FOUND'
- 'OVERPAYMENT'
- 'PAYMENT'
- 'WRITEOFF'
=cut
@ -776,6 +778,7 @@ our $offset_type = {
'CREDIT' => 'Manual Credit',
'FORGIVEN' => 'Writeoff',
'LOST_FOUND' => 'Lost Item Found',
'OVERPAYMENT' => 'Overpayment',
'PAYMENT' => 'Payment',
'WRITEOFF' => 'Writeoff',
'ACCOUNT' => 'Account Fee',

View File

@ -695,8 +695,7 @@ sub adjust {
my $credit = $account->add_credit(
{
amount => $new_outstanding * -1,
description => 'Overpayment refund',
type => 'CREDIT',
type => 'OVERPAYMENT',
interface => $interface,
( $update_type eq 'overdue_update' ? ( item_id => $self->itemnumber ) : ()),
}

View File

@ -0,0 +1,25 @@
$DBversion = 'XXX'; # will be replaced by the RM
if ( CheckVersion($DBversion) ) {
$dbh->do(
qq{
INSERT IGNORE INTO account_credit_types (code, description, can_be_added_manually, is_system)
VALUES
('OVERPAYMENT', 'Overpayment refund', 0, 1)
}
);
$dbh->do(
qq{
INSERT IGNORE INTO account_offset_types ( type ) VALUES ('Overpayment');
}
);
$dbh->do(
qq{
UPDATE accountlines SET credit_type_code = 'OVERPAYMENT' WHERE credit_type_code = 'CREDIT' AND description = 'Overpayment refund'
}
);
NewVersion( $DBversion, 25596, "Add OVERPAYMENT credit type" );
}

View File

@ -1,4 +1,5 @@
INSERT INTO account_credit_types ( code, description, can_be_added_manually, is_system ) VALUES
('OVERPAYMENT', 'Overpayment refund', 0, 1),
('PAYMENT', 'Payment', 0, 1),
('WRITEOFF', 'Writeoff', 0, 1),
('FORGIVEN', 'Forgiven', 1, 1),

View File

@ -14,6 +14,7 @@ INSERT INTO account_offset_types ( type ) VALUES
('Rental Fee'),
('Reserve Fee'),
('Hold Expired'),
('Overpayment'),
('OVERDUE_INCREASE'),
('OVERDUE_DECREASE'),
('OVERDUE'),

View File

@ -7,6 +7,7 @@
[%- CASE 'FORGIVEN' -%]Forgiven
[%- CASE 'CREDIT' -%]Credit
[%- CASE 'LOST_FOUND' -%]Lost item fee refund
[%- CASE 'OVERPAYMENT' -%]Overpayment refund
[%- CASE 'REFUND' -%]Refund
[%- CASE -%][% account.credit_type.description | html %]
[%- END -%]

View File

@ -179,6 +179,7 @@
[%- CASE 'FORGIVEN' -%]Forgiven
[%- CASE 'CREDIT' -%]Credit
[%- CASE 'LOST_FOUND' -%]Lost item fee refund
[%- CASE 'OVERPAYMENT' -%]Overpayment refund
[%- CASE 'REFUND' -%]Refund
[%- CASE -%][% account.credit_type.description | html %]
[%- END -%]

View File

@ -570,7 +570,7 @@ subtest 'adjust() tests' => sub {
my $overpayment_refund = $account->lines->last;
is( $overpayment_refund->amount * 1, -10, 'A new credit has been added' );
is( $overpayment_refund->description, 'Overpayment refund', 'Credit generated with the expected description' );
is( $overpayment_refund->credit_type_code, 'OVERPAYMENT', 'Credit generated with the expected credit_type_code' );
$schema->storage->txn_rollback;
};