From 8ecb0ef544216a712715ea4e4166e30b204ee5fe Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 3 Dec 2014 13:07:16 +0100 Subject: [PATCH] Bug 13380: Fill order cancellation reasons from AV Since bug 7162, it's possible to give a cancellation reason on deleting an order. This would be better to fill an authorised values category with the different possible values. Like that we will avoid to have duplicate or similar reasons. Also, it will be easier to filter or create reports. Test plan: 0/ Don't apply the patch 1/ Cancel some orders and give a cancelletion reason 2/ Apply the patch and execute the updatedb entry 3/ Cancel an order and verify the you have a list with the reason you previously filled + 3 new ones ('No reason', 'Sold out' and 'Restocking'); 4/ Choose one and verify the value is correctly displayed on the basket page 5/ You can also try to add other values from the admin module. Signed-off-by: Chris Cormack Signed-off-by: Kyle M Hall Signed-off-by: Tomas Cohen Arazi (cherry picked from commit b475728a50477aaff34ff16ed9194b39c46d66ea) Signed-off-by: Chris Cormack Conflicts: installer/data/mysql/updatedatabase.pl koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt --- installer/data/mysql/updatedatabase.pl | 35 +++++++++++++++++++ .../prog/en/modules/acqui/basket.tt | 4 ++- .../prog/en/modules/acqui/cancelorder.tt | 2 +- 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index 16a759f35d..6fb3f66e20 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -9690,6 +9690,41 @@ if(CheckVersion($DBversion)) { SetVersion($DBversion); } +$DBversion = "3.18.04.002"; +if(CheckVersion($DBversion)) { + $dbh->do(q{ + INSERT INTO authorised_values (category, authorised_value, lib) VALUES + ('ORDER_CANCELLATION_REASON', 0, 'No reason'), + ('ORDER_CANCELLATION_REASON', 1, 'Sold out'), + ('ORDER_CANCELLATION_REASON', 2, 'Restocking') + }); + + my $already_existing_reasons = $dbh->selectcol_arrayref(q{ + SELECT DISTINCT( cancellationreason ) + FROM aqorders; + }, { Slice => {} }); + + my $update_orders_sth = $dbh->prepare(q{ + UPDATE aqorders + SET cancellationreason = ? + WHERE cancellationreason = ? + }); + + my $insert_av_sth = $dbh->prepare(q{ + INSERT INTO authorised_values (category, authorised_value, lib) VALUES + ('ORDER_CANCELLATION_REASON', ?, ?) + }); + my $i = 3; + for my $reason ( @$already_existing_reasons ) { + next unless $reason; + $insert_av_sth->execute( $i, $reason ); + $update_orders_sth->execute( $i, $reason ); + $i++; + } + print "Upgrade to $DBversion done (Bug 13380: Add the ORDER_CANCELLATION_REASON authorised value)\n"; + SetVersion($DBversion); +} + =head1 FUNCTIONS =head2 TableExists($table) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt index 9cc23bd2b8..65c6ab8ae1 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt @@ -1,4 +1,6 @@ [% USE KohaDates %] +[% USE AuthorisedValues %] + [% INCLUDE 'doc-head-open.inc' %] Koha › Acquisitions › [% UNLESS ( basketno ) %]New [% END %][% IF ( delete_confirm ) %]Delete [% END %]Basket [% basketname|html %] ([% basketno %]) for [% name|html %] @@ -597,7 +599,7 @@ [% IF ( books_loo.editionstatement ) %], [% books_loo.editionstatement %][% END %] [% IF ( order.cancellationreason ) %]
- Cancellation reason: [% order.cancellationreason %] + Cancellation reason: [% AuthorisedValues.GetByCode( 'ORDER_CANCELLATION_REASON', order.cancellationreason ) %] [% END %]

[% IF order.transferred_to %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/cancelorder.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/cancelorder.tt index 3064a08a8f..5c07c67a1d 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/cancelorder.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/cancelorder.tt @@ -25,7 +25,7 @@ [% END %]

- + [% PROCESS 'av-build-dropbox.inc' name="reason", category="ORDER_CANCELLATION_REASON" default="0" %]

-- 2.39.5