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 <josef.moravec@gmail.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
(cherry picked from commit f7ed22d253)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
Tomas Cohen Arazi 2018-06-21 14:43:34 -03:00 committed by Martin Renvoize
parent 9bbc1fc7b1
commit 359a045cfc
No known key found for this signature in database
GPG Key ID: 422B469130441A0F
3 changed files with 41 additions and 0 deletions

View File

@ -3,6 +3,7 @@ INSERT INTO account_offset_types ( type ) VALUES
('Payment'),
('Lost Item'),
('Processing Fee'),
('Manual Credit'),
('Manual Debit'),
('Reverse Payment'),
('Forgiven'),

View File

@ -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";
}

View File

@ -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