Bug 10184 - Circulation History reverses sort order
[koha_fer] / C4 / Members / Messaging.pm
index 13b91fe..033c694 100644 (file)
@@ -25,7 +25,7 @@ use vars qw($VERSION);
 
 BEGIN {
     # set the version for version checking
-    $VERSION = 3.00;
+    $VERSION = 3.07.00.049;
 }
 
 =head1 NAME
@@ -61,21 +61,23 @@ sub GetMessagingPreferences {
 
     return unless exists $params->{message_name};
     return unless exists $params->{borrowernumber} xor exists $params->{categorycode}; # yes, xor
-
     my $sql = <<'END_SQL';
 SELECT borrower_message_preferences.*,
        borrower_message_transport_preferences.message_transport_type,
-       message_attributes.*,
-       message_transports.*
-  FROM borrower_message_preferences
-  LEFT JOIN borrower_message_transport_preferences
-    ON borrower_message_transport_preferences.borrower_message_preference_id = borrower_message_preferences.borrower_message_preference_id
-  LEFT JOIN message_attributes
-    ON message_attributes.message_attribute_id = borrower_message_preferences.message_attribute_id
-  LEFT JOIN message_transports
-    ON message_transports.message_attribute_id = message_attributes.message_attribute_id
-    AND message_transports.message_transport_type = borrower_message_transport_preferences.message_transport_type
-  WHERE message_attributes.message_name = ?
+       message_attributes.message_name,
+       message_attributes.takes_days,
+       message_transports.is_digest,
+       message_transports.letter_module,
+       message_transports.letter_code
+FROM   borrower_message_preferences
+LEFT JOIN borrower_message_transport_preferences
+ON     borrower_message_transport_preferences.borrower_message_preference_id = borrower_message_preferences.borrower_message_preference_id
+LEFT JOIN message_attributes
+ON     message_attributes.message_attribute_id = borrower_message_preferences.message_attribute_id
+JOIN message_transports
+ON     message_transports.message_attribute_id = message_attributes.message_attribute_id
+AND    message_transports.message_transport_type = borrower_message_transport_preferences.message_transport_type
+WHERE  message_attributes.message_name = ?
 END_SQL
 
     my @bind_params = ( $params->{'message_name'} );
@@ -93,13 +95,11 @@ END_SQL
     my %transports; # helps build a list of unique message_transport_types
     ROW: while ( my $row = $sth->fetchrow_hashref() ) {
         next ROW unless $row->{'message_attribute_id'};
-        # warn( Data::Dumper->Dump( [ $row ], [ 'row' ] ) );
         $return->{'days_in_advance'} = $row->{'days_in_advance'} if defined $row->{'days_in_advance'};
         $return->{'wants_digest'}    = $row->{'wants_digest'}    if defined $row->{'wants_digest'};
-               $return->{'letter_code'}     = $row->{'letter_code'};
-        $transports{$row->{'message_transport_type'}} = 1;
+        $return->{'letter_code'}     = $row->{'letter_code'};
+        $return->{'transports'}->{ $row->{'message_transport_type'} } = $row->{'letter_code'};
     }
-    @{$return->{'transports'}} = keys %transports;
     return $return;
 }
 
@@ -212,7 +212,7 @@ END_SQL
         $choices->{ $row->{'message_name'} }->{'message_name'}         = $row->{'message_name'};
         $choices->{ $row->{'message_name'} }->{'takes_days'}           = $row->{'takes_days'};
         $choices->{ $row->{'message_name'} }->{'has_digest'}           = 1 if $row->{'is_digest'};
-        $choices->{ $row->{'message_name'} }->{'transport-' . $row->{'message_transport_type'}} = ' ';
+        $choices->{ $row->{'message_name'} }->{'transport_' . $row->{'message_transport_type'}} = ' ';
     }
 
     my @return = values %$choices;
@@ -247,8 +247,9 @@ sub SetMessagingPreferencesFromDefaults {
         # FIXME - except for setting the borrowernumber, it really ought to be possible
         # to have the output of GetMessagingPreferences be able to be the input
         # to SetMessagingPreference
+        my @message_transport_types = keys %{ $default_pref->{transports} };
         $default_pref->{message_attribute_id}    = $option->{'message_attribute_id'};
-        $default_pref->{message_transport_types} = $default_pref->{transports};
+        $default_pref->{message_transport_types} = \@message_transport_types;
         $default_pref->{borrowernumber}          = $params->{borrowernumber};
         SetMessagingPreference( $default_pref );
     }