Bug 27947: Add authorised values list in article requests cancellation

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
Agustin Moyano 2021-08-19 23:00:26 -03:00 committed by Jonathan Druart
parent 788afd38c7
commit 1b73fac810
7 changed files with 65 additions and 1 deletions

View file

@ -0,0 +1,41 @@
use Modern::Perl;
return {
bug_number => "27947",
description => "Add authorised values list in article requests cancellation",
up => sub {
my ($args) = @_;
my ($dbh, $out) = @$args{qw(dbh out column_exists)};
# Do you stuffs here
$dbh->do(q{
INSERT IGNORE INTO authorised_value_categories( category_name, is_system )
VALUES ('AR_CANCELLATION', 0)
});
# Print useful stuff here
say $out "Add AR_CANCELLATION category for authorised values";
$dbh->do(q{
INSERT IGNORE INTO authorised_values (category, authorised_value, lib) VALUES ('AR_CANCELLATION','NOT_FOUND','Item could not be located on shelves');
});
$dbh->do(q{
INSERT IGNORE INTO authorised_values (category, authorised_value, lib) VALUES ('AR_CANCELLATION','DAMAGED','Item was found to be too damaged to fill article request');
});
say $out "Add AR_CANCELLATION authorised values";
$dbh->do(q{
ALTER TABLE `article_requests` ADD COLUMN `cancellation_reason` varchar(80) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'optional authorised value AR_CANCELLATION' AFTER `urls`
}) unless column_exists('article_requests', 'cancellation_reason');
# Print useful stuff here
say $out "Add cancellation_reason column in article_requests table";
$dbh->do(q{
UPDATE `letter`
SET `content` = 'Dear <<borrowers.firstname>> <<borrowers.surname>> (<<borrowers.cardnumber>>),\r\n\r\nYour request for an article from <<biblio.title>> (<<items.barcode>>) has been canceled for the following reason:\r\n\r\n<<reason>>\r\n\r\nArticle requested:\r\nTitle: <<article_requests.title>>\r\nAuthor: <<article_requests.author>>\r\nVolume: <<article_requests.volume>>\r\nIssue: <<article_requests.issue>>\r\nDate: <<article_requests.date>>\r\nPages: <<article_requests.pages>>\r\nChapters: <<article_requests.chapters>>\r\nNotes: <<article_requests.patron_notes>>\r\nFormat: [% IF article_request.format == ''PHOTOCOPY'' %]Copy[% ELSIF article_request.format == ''SCAN'' %]Scan[% END %]\r\n\r\nYour library'
WHERE `module` = 'circulation'
AND `code` = 'AR_CANCELED'
})
},
}

View file

@ -300,3 +300,12 @@ tables:
- category: "HOLD_CANCELLATION"
authorised_value: "DAMAGED"
lib: "Item was found to be too damaged to fill hold"
# article request cancellations
- category: "AR_CANCELLATION"
authorised_value: "NOT_FOUND"
lib: "Item could not be located on shelves"
- category: "AR_CANCELLATION"
authorised_value: "DAMAGED"
lib: "Item was found to be too damaged to fill article request"

View file

@ -90,3 +90,7 @@ INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('RETURN_
-- hold cancellation
INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('HOLD_CANCELLATION','NOT_FOUND','Item could not be located on shelves');
INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('HOLD_CANCELLATION','DAMAGED','Item was found to be too damaged to fill hold');
-- article request cancellation
INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('AR_CANCELLATION','NOT_FOUND','Item could not be located on shelves');
INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('AR_CANCELLATION','DAMAGED','Item was found to be too damaged to fill article request');

View file

@ -724,3 +724,7 @@ INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('RETURN_
-- hold cancellation
INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('HOLD_CANCELLATION','NOT_FOUND','Item could not be located on shelves');
INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('HOLD_CANCELLATION','DAMAGED','Item was found to be too damaged to fill hold');
-- article request cancellation
INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('AR_CANCELLATION','NOT_FOUND','Item could not be located on shelves');
INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('AR_CANCELLATION','DAMAGED','Item was found to be too damaged to fill article request');

View file

@ -753,6 +753,7 @@ CREATE TABLE `article_requests` (
`notes` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`format` enum('PHOTOCOPY', 'SCAN') NOT NULL DEFAULT 'PHOTOCOPY',
`urls` MEDIUMTEXT,
`cancellation_reason` varchar(80) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'optional authorised value AR_CANCELLATION',
`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(),
PRIMARY KEY (`id`),

View file

@ -18,7 +18,8 @@ INSERT IGNORE INTO authorised_value_categories( category_name, is_system )
('PAYMENT_TYPE', 0),
('PA_CLASS', 0),
('HOLD_CANCELLATION', 0),
('ROADTYPE', 0);
('ROADTYPE', 0),
('AR_CANCELLATION', 0);
INSERT IGNORE INTO authorised_value_categories( category_name, is_system )
VALUES

View file

@ -109,3 +109,7 @@ INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('RETURN_
-- hold cancellation
INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('HOLD_CANCELLATION','NOT_FOUND','Item could not be located on shelves');
INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('HOLD_CANCELLATION','DAMAGED','Item was found to be too damaged to fill hold');
-- article request cancellation
INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('AR_CANCELLATION','NOT_FOUND','Item could not be located on shelves');
INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('AR_CANCELLATION','DAMAGED','Item was found to be too damaged to fill article request');