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 <chris@bigballofwax.co.nz>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
This commit is contained in:
parent
2c7457a0d4
commit
b475728a50
|
|
@ -9832,6 +9832,41 @@ if ( CheckVersion($DBversion) ) {
|
|||
SetVersion($DBversion);
|
||||
}
|
||||
|
||||
$DBversion = "3.19.00.XXX";
|
||||
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)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
[% USE KohaDates %]
|
||||
[% USE Price %]
|
||||
[% USE AuthorisedValues %]
|
||||
|
||||
[% INCLUDE 'doc-head-open.inc' %]
|
||||
<title>Koha › Acquisitions › [% UNLESS ( basketno ) %]New [% END %][% IF ( delete_confirm ) %]Delete [% END %]Basket [% basketname|html %] ([% basketno %]) for [% name|html %]</title>
|
||||
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
|
||||
|
|
@ -598,7 +600,7 @@
|
|||
[% IF ( books_loo.editionstatement ) %], [% books_loo.editionstatement %][% END %]
|
||||
[% IF ( order.cancellationreason ) %]
|
||||
<br />
|
||||
Cancellation reason: [% order.cancellationreason %]
|
||||
Cancellation reason: [% AuthorisedValues.GetByCode( 'ORDER_CANCELLATION_REASON', order.cancellationreason ) %]
|
||||
[% END %]
|
||||
</p>
|
||||
[% IF order.transferred_to %]
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
[% END %]
|
||||
</p>
|
||||
<p>
|
||||
<textarea name="reason" placeholder="Reason of cancellation"></textarea>
|
||||
[% PROCESS 'av-build-dropbox.inc' name="reason", category="ORDER_CANCELLATION_REASON" default="0" %]
|
||||
</p>
|
||||
<input type="hidden" name="action" value="confirmcancel" />
|
||||
<input type="hidden" value="[% ordernumber %]" name="ordernumber" />
|
||||
|
|
|
|||
Loading…
Reference in New Issue