diff --git a/C4/Form/MessagingPreferences.pm b/C4/Form/MessagingPreferences.pm index f42e0dba8a..8c83263f2f 100644 --- a/C4/Form/MessagingPreferences.pm +++ b/C4/Form/MessagingPreferences.pm @@ -93,7 +93,7 @@ OPTION: foreach my $option (@$messaging_options) { } if ( $option->{'takes_days'} ) { - if ( defined $query->param( $option->{'message_attribute_id'} . '-DAYS' ) ) { + if ( $query->param( $option->{'message_attribute_id'} . '-DAYS' ) ) { $updater->{'days_in_advance'} = $query->param( $option->{'message_attribute_id'} . '-DAYS' ); } } @@ -135,7 +135,7 @@ PREF: foreach my $option (@$messaging_options) { $option->{days_in_advance} = $days_in_advance; @{ $option->{'select_days'} } = map { { - day => $_, + day => $_ || q{}, selected => $_ == $days_in_advance } } ( 0 .. MAX_DAYS_IN_ADVANCE ); @@ -173,7 +173,7 @@ sub restore_form_values { $option->{days_in_advance} = $days_in_advance; @{ $option->{'select_days'} } = map { { - day => $_, + day => $_ || q{}, selected => $_ == $days_in_advance } } ( 0 .. MAX_DAYS_IN_ADVANCE ); diff --git a/C4/Members/Messaging.pm b/C4/Members/Messaging.pm index 7c355eb7c9..dc29f55456 100644 --- a/C4/Members/Messaging.pm +++ b/C4/Members/Messaging.pm @@ -140,8 +140,8 @@ sub SetMessagingPreference { return; } } - $params->{'days_in_advance'} = undef unless exists( $params->{'days_in_advance'} ); - $params->{'wants_digest'} = 0 unless exists( $params->{'wants_digest'} ); + $params->{'days_in_advance'} = undef if !exists $params->{'days_in_advance'} || $params->{'days_in_advance'} <= 0; + $params->{'wants_digest'} = 0 unless exists( $params->{'wants_digest'} ); my $dbh = C4::Context->dbh(); @@ -160,7 +160,9 @@ END_SQL my $sth = $dbh->prepare($delete_sql); my $deleted = $sth->execute(@bind_params); - if ( $params->{'message_transport_types'} ) { + if ( $params->{'message_transport_types'} + && !( $params->{'message_attribute_id'} == 2 && !$params->{'days_in_advance'} ) ) + { my $insert_bmp = <<'END_SQL'; INSERT INTO borrower_message_preferences (borrower_message_preference_id, borrowernumber, categorycode, message_attribute_id, days_in_advance, wants_digest)