From 3d2ef643c16ebbbae67da54503d9ee997c901bd7 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Wed, 9 Sep 2020 14:34:34 +0100 Subject: [PATCH] Bug 25596: Identify overpayment refunds for translation This patch ensure 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. --- Koha/Account.pm | 4 ++- Koha/Account/Line.pm | 3 +-- installer/data/mysql/account_credit_types.sql | 1 + installer/data/mysql/account_offset_types.sql | 1 + .../data/mysql/atomicupdate/bug_25596.perl | 25 +++++++++++++++++++ .../prog/en/includes/accounts.inc | 1 + .../bootstrap/en/includes/account-table.inc | 1 + 7 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug_25596.perl diff --git a/Koha/Account.pm b/Koha/Account.pm index 2a63856b52..4bbb2e1ec4 100644 --- a/Koha/Account.pm +++ b/Koha/Account.pm @@ -358,9 +358,10 @@ my $credit_line = Koha::Account->new({ patron_id => $patron_id })->add_credit( $credit_type can be any of: - 'CREDIT' - - 'PAYMENT' - 'FORGIVEN' - 'LOST_FOUND' + - 'OVERPAYMENT' + - 'PAYMENT' - 'WRITEOFF' =cut @@ -776,6 +777,7 @@ our $offset_type = { 'CREDIT' => 'Manual Credit', 'FORGIVEN' => 'Writeoff', 'LOST_FOUND' => 'Lost Item Found', + 'OVERPAYMENT' => 'Overpayment Refund', 'PAYMENT' => 'Payment', 'WRITEOFF' => 'Writeoff', 'ACCOUNT' => 'Account Fee', diff --git a/Koha/Account/Line.pm b/Koha/Account/Line.pm index 98d7ef3c15..8772942f82 100644 --- a/Koha/Account/Line.pm +++ b/Koha/Account/Line.pm @@ -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 ) : ()), } diff --git a/installer/data/mysql/account_credit_types.sql b/installer/data/mysql/account_credit_types.sql index 178b98b1c6..d7d8a5b047 100644 --- a/installer/data/mysql/account_credit_types.sql +++ b/installer/data/mysql/account_credit_types.sql @@ -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), diff --git a/installer/data/mysql/account_offset_types.sql b/installer/data/mysql/account_offset_types.sql index c27a68996f..55ee0a4738 100644 --- a/installer/data/mysql/account_offset_types.sql +++ b/installer/data/mysql/account_offset_types.sql @@ -14,6 +14,7 @@ INSERT INTO account_offset_types ( type ) VALUES ('Rental Fee'), ('Reserve Fee'), ('Hold Expired'), +('Overpayment Refund'), ('OVERDUE_INCREASE'), ('OVERDUE_DECREASE'), ('OVERDUE'), diff --git a/installer/data/mysql/atomicupdate/bug_25596.perl b/installer/data/mysql/atomicupdate/bug_25596.perl new file mode 100644 index 0000000000..71df0ce471 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_25596.perl @@ -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 Refund'); + } + ); + + $dbh->do( + qq{ + UPDATE accountlines SET credit_type = 'OVERPAYMENT' WHERE credit_type = 'CREDIT' AND description = 'Overpayment refund' + } + ); + + NewVersion( $DBversion, 25596, "Add OVERPAYMENT credit type" ); +} diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/accounts.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/accounts.inc index 3e37c8d407..0eff7387fb 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/accounts.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/accounts.inc @@ -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 -%] 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 dc3444da34..e24dbe774d 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/account-table.inc +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/account-table.inc @@ -179,6 +179,7 @@ [%- CASE 'FORGIVEN' -%]Forgiven [%- CASE 'CREDIT' -%]Credit [%- CASE 'LOST_FOUND' -%]Lost item fee refund + [%- CASE 'OVERPAYMENT' -%]Overpayment refund [%- CASE -%][% account.credit_type.description | html %] [%- END -%] [%- ELSIF account.debit_type_code -%] -- 2.20.1