From 2946891d2164c5774cd76ec0f8ecb46cf77b03a6 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Mon, 8 Nov 2021 15:29:14 -0300 Subject: [PATCH] Bug 27946: Add article_requests.debit_id and ARTICLE_REQUEST account debit type Signed-off-by: Tomas Cohen Arazi Signed-off-by: Kyle M Hall Signed-off-by: Martin Renvoize Signed-off-by: Fridolin Somers --- .../data/mysql/atomicupdate/bug_27946.pl | 34 +++++++++++++++++++ installer/data/mysql/kohastructure.sql | 4 ++- .../mysql/mandatory/account_debit_types.sql | 3 +- 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100755 installer/data/mysql/atomicupdate/bug_27946.pl diff --git a/installer/data/mysql/atomicupdate/bug_27946.pl b/installer/data/mysql/atomicupdate/bug_27946.pl new file mode 100755 index 0000000000..0905496ce4 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_27946.pl @@ -0,0 +1,34 @@ +use Modern::Perl; + +return { + bug_number => "27946", + description => "Add article request fees", + up => sub { + my ($args) = @_; + my ( $dbh, $out ) = @$args{qw(dbh out)}; + + if ( !column_exists( 'article_requests', 'debit_id' ) ) { + + $dbh->do( + q{ + ALTER TABLE `article_requests` + ADD COLUMN `debit_id` int(11) NULL DEFAULT NULL COMMENT 'Debit line with cost for article scan request' AFTER `cancellation_reason` + } + ); + + $dbh->do( + q{ + ALTER TABLE `article_requests` + ADD CONSTRAINT `article_requests_ibfk_5` FOREIGN KEY (`debit_id`) REFERENCES `accountlines` (`accountlines_id`) ON DELETE SET NULL ON UPDATE CASCADE + } + ); + } + + $dbh->do( + q{ + INSERT IGNORE INTO account_debit_types ( code, description, can_be_invoiced, can_be_sold, default_amount, is_system ) + VALUES ('ARTICLE_REQUEST', 'Article scan request fee', 0, 0, NULL, 1); + } + ); + }, +}; diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index 54d175fba4..0aab2ff94e 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -784,6 +784,7 @@ CREATE TABLE `article_requests` ( `format` enum('PHOTOCOPY','SCAN') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PHOTOCOPY', `urls` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, `cancellation_reason` varchar(80) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'optional authorised value AR_CANCELLATION', + `debit_id` int(11) NULL DEFAULT NULL COMMENT 'Debit line with cost for article scan request', `created_on` timestamp NULL DEFAULT NULL COMMENT 'Be careful with two timestamps in one table not allowing NULL', `updated_on` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `toc_request` tinyint(4) NOT NULL DEFAULT 0 COMMENT 'borrower requested table of contents', @@ -795,7 +796,8 @@ CREATE TABLE `article_requests` ( CONSTRAINT `article_requests_ibfk_1` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `article_requests_ibfk_2` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `article_requests_ibfk_3` FOREIGN KEY (`itemnumber`) REFERENCES `items` (`itemnumber`) ON DELETE SET NULL ON UPDATE CASCADE, - CONSTRAINT `article_requests_ibfk_4` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE SET NULL ON UPDATE CASCADE + CONSTRAINT `article_requests_ibfk_4` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `article_requests_ibfk_5` FOREIGN KEY (`debit_id`) REFERENCES `accountlines` (`accountlines_id`) ON DELETE SET NULL ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; diff --git a/installer/data/mysql/mandatory/account_debit_types.sql b/installer/data/mysql/mandatory/account_debit_types.sql index 8a133197fe..e1e1a7eb99 100644 --- a/installer/data/mysql/mandatory/account_debit_types.sql +++ b/installer/data/mysql/mandatory/account_debit_types.sql @@ -13,4 +13,5 @@ INSERT INTO account_debit_types ( code, description, can_be_invoiced, can_be_sol ('RENT_DAILY_RENEW', 'Renewal of daily rental item', 0, 0, NULL, 1), ('RESERVE', 'Hold fee', 0, 0, NULL, 1), ('RESERVE_EXPIRED', 'Hold waiting too long', 0, 0, NULL, 1), -('VOID', 'Credit has been voided', 0, 0, NULL, 1); +('VOID', 'Credit has been voided', 0, 0, NULL, 1), +('ARTICLE_REQUEST', 'Article scan request fee', 0, 0, NULL, 1); -- 2.39.5