Bug 26510: Transport Cost Matrix editor doesn't show all data when HoldsQueueSkipClosed is enabled

If HoldsQueueSkipClosed is enabled, and a library happens to be closed
on the day you edit the transport cost matrix, all the values for that
library will not show. Instead they will appear disabled, and if you
were to edit the cell and save a new value in it, it will also
'disappear' when the page is reloaded.

Test Plan:
1) Set today as a holiday for a library
2) Set HoldsQueueSkipClosed to 'open'
3) Go to the transport cost matrix editor
4) Edit a cell where the 'from' is for the closed library
5) Note the value doesn't 'save', it is still in the database though
6) Apply this patch
7) Restart all the things!
8) Reload the transport cost matrix editor
9) The value now appears correctly!

Signed-off-by: Lisette Scheer <lisetteslatah@gmail.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
(cherry picked from commit 26ab04a3b3)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit eab46b1758)

Signed-off-by: Aleisha Amohia <aleishaamohia@hotmail.com>
This commit is contained in:
Kyle M Hall 2020-09-22 14:10:10 -04:00 committed by Aleisha Amohia
parent 97a15fe186
commit af55420957
2 changed files with 5 additions and 2 deletions

View File

@ -61,6 +61,9 @@ Returns Transport Cost Matrix as a hashref <to branch code> => <from branch code
=cut
sub TransportCostMatrix {
my ( $params ) = @_;
my $ignore_holds_queue_skip_closed = $params->{ignore_holds_queue_skip_closed};
my $dbh = C4::Context->dbh;
my $transport_costs = $dbh->selectall_arrayref("SELECT * FROM transport_cost",{ Slice => {} });
@ -77,7 +80,7 @@ sub TransportCostMatrix {
disable_transfer => $disabled
};
if ( C4::Context->preference("HoldsQueueSkipClosed") ) {
if ( !$ignore_holds_queue_skip_closed && C4::Context->preference("HoldsQueueSkipClosed") ) {
$calendars->{$from} ||= Koha::Calendar->new( branchcode => $from );
$transport_cost_matrix{$to}{$from}{disable_transfer} ||=
$calendars->{$from}->is_holiday( $today );

View File

@ -45,7 +45,7 @@ my $update = ( $input->param('op') // '' ) eq 'set-cost-matrix';
my ($cost_matrix, $have_matrix);
unless ($update) {
$cost_matrix = TransportCostMatrix();
$cost_matrix = TransportCostMatrix({ ignore_holds_queue_skip_closed => 1 });
$have_matrix = keys %$cost_matrix if $cost_matrix;
}