From 359a045cfc331cf2a928fbe0cff11792c8a6959c Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Thu, 21 Jun 2018 14:43:34 -0300 Subject: [PATCH] Bug 20980: Add 'Manual Credit' and fix existing offsets This patch adds a new offset type 'Manual Credit'. And adds an atomic update for fixing existing offsets. Signed-off-by: Josef Moravec Signed-off-by: Kyle M Hall Signed-off-by: Nick Clemens (cherry picked from commit f7ed22d25372bb7a68dcbf1a744b81aeb8657b0a) Signed-off-by: Martin Renvoize --- installer/data/mysql/account_offset_types.sql | 1 + .../data/mysql/atomicupdate/bug_20980.perl | 39 +++++++++++++++++++ .../prog/en/includes/account_offset_type.inc | 1 + 3 files changed, 41 insertions(+) create mode 100644 installer/data/mysql/atomicupdate/bug_20980.perl diff --git a/installer/data/mysql/account_offset_types.sql b/installer/data/mysql/account_offset_types.sql index a9eaadc450..7b96abfdbd 100644 --- a/installer/data/mysql/account_offset_types.sql +++ b/installer/data/mysql/account_offset_types.sql @@ -3,6 +3,7 @@ INSERT INTO account_offset_types ( type ) VALUES ('Payment'), ('Lost Item'), ('Processing Fee'), +('Manual Credit'), ('Manual Debit'), ('Reverse Payment'), ('Forgiven'), diff --git a/installer/data/mysql/atomicupdate/bug_20980.perl b/installer/data/mysql/atomicupdate/bug_20980.perl new file mode 100644 index 0000000000..691ecd571f --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_20980.perl @@ -0,0 +1,39 @@ +$DBversion = 'XXX'; +if( CheckVersion( $DBversion ) ) { + + # Add 'Manual Credit' offset type + $dbh->do(q{ + INSERT IGNORE INTO `account_offset_types` (`type`) VALUES ('Manual Credit'); + }); + + # Fix wrong account offsets / Manual credits + $dbh->do(q{ + UPDATE account_offsets + SET credit_id=debit_id, + debit_id=NULL, + type='Manual Credit' + WHERE amount < 0 AND + type='Manual Debit' AND + debit_id IN + (SELECT accountlines_id AS debit_id + FROM accountlines + WHERE accounttype='C'); + }); + + # Fix wrong account offsets / Manually forgiven amounts + $dbh->do(q{ + UPDATE account_offsets + SET credit_id=debit_id, + debit_id=NULL, + type='Writeoff' + WHERE amount < 0 AND + type='Manual Debit' AND + debit_id IN + (SELECT accountlines_id AS debit_id + FROM accountlines + WHERE accounttype='FOR'); + }); + + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 20980 - Manual credit offsets are stored as debits)\n"; +} diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/account_offset_type.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/account_offset_type.inc index a36a883a86..6ec71d1f09 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/account_offset_type.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/account_offset_type.inc @@ -1,5 +1,6 @@ [% SWITCH account_offset.type %] [% CASE 'Payment' %]Payment + [% CASE 'Manual Credit' %]Manual credit [% CASE 'Manual Debit' %]Manual invoice [% CASE 'Lost Item Return' %]Lost item returned [% CASE 'Writeoff' %]Writeoff -- 2.39.5