From c51005914257a0578d0e5bd2c987ad869aabff43 Mon Sep 17 00:00:00 2001
From: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Date: Wed, 5 Feb 2020 12:19:34 +0000
Subject: [PATCH] Bug 24592: Database Update

---
 installer/data/mysql/account_credit_types.sql |  2 +-
 installer/data/mysql/account_offset_types.sql |  1 +
 .../data/mysql/atomicupdate/bug_24592.perl    | 49 +++++++++++++++++++
 3 files changed, 51 insertions(+), 1 deletion(-)
 create mode 100644 installer/data/mysql/atomicupdate/bug_24592.perl

diff --git a/installer/data/mysql/account_credit_types.sql b/installer/data/mysql/account_credit_types.sql
index 5cf04abb15..70a51629d8 100644
--- a/installer/data/mysql/account_credit_types.sql
+++ b/installer/data/mysql/account_credit_types.sql
@@ -4,7 +4,7 @@ INSERT INTO account_credit_types ( code, description, can_be_added_manually, is_
 ('FORGIVEN', 'Forgiven', 1, 1),
 ('CREDIT', 'Credit', 1, 1),
 ('REFUND', 'A refund applied to a patrons fine', 0, 1),
-('LOST_RETURN', 'Lost item fee refund', 0, 1),
+('LOST_FOUND', 'Lost item fee refund', 0, 1),
 ('PURCHASE', 'Purchase', 0, 1);
 
 INSERT INTO authorised_values (category,authorised_value,lib) VALUES ('PAYMENT_TYPE','CASH','Cash');
diff --git a/installer/data/mysql/account_offset_types.sql b/installer/data/mysql/account_offset_types.sql
index 5863c2341c..f0cb80ece9 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'),
 ('Purchase'),
 ('Lost Item'),
+('Lost Item Found'),
 ('Processing Fee'),
 ('Manual Credit'),
 ('Manual Debit'),
diff --git a/installer/data/mysql/atomicupdate/bug_24592.perl b/installer/data/mysql/atomicupdate/bug_24592.perl
new file mode 100644
index 0000000000..fcfcc067a8
--- /dev/null
+++ b/installer/data/mysql/atomicupdate/bug_24592.perl
@@ -0,0 +1,49 @@
+$DBversion = 'XXX'; # will be replaced by the RM
+if( CheckVersion( $DBversion ) ) {
+
+    # Add LOST_FOUND debit type
+    $dbh->do(qq{
+        INSERT IGNORE INTO
+          account_credit_types ( code, description, can_be_added_manually, is_system )
+        VALUES
+          ('LOST_FOUND', 'Lost item fee refund', 0, 1)
+    });
+
+    # Migrate LOST_RETURN to LOST_FOUND
+    $dbh->do(qq{
+        UPDATE
+          accountlines
+        SET
+          credit_type_code = 'LOST_FOUND'
+        WHERE
+          credit_type_code = 'LOST_RETURN'
+    });
+
+    # Migrate LOST + RETURNED to LOST + FOUND
+    $dbh->do(qq{
+        UPDATE
+          accountlines
+        SET
+          status = 'FOUND'
+        WHERE
+          debit_type_code = 'LOST'
+        AND
+          status = 'RETURNED'
+    });
+
+    # Drop LOST_RETURNED credit type
+    $dbh->do(qq{
+        DELETE FROM account_credit_types WHERE code = 'LOST_RETURN'
+    });
+
+    # Add Lost Item Found offset type
+    $dbh->do(qq{
+        INSERT IGNORE INTO
+          account_offset_types ( type )
+        VALUES
+          ( 'Lost Item Found' )
+    });
+
+    SetVersion( $DBversion );
+    print "Upgrade to $DBversion done (Bug 24592 - Update LOST_RETURN to LOST_FOUND)\n";
+}
-- 
2.20.1