Lines 20-27
package C4::Members::Messaging;
Link Here
|
20 |
use strict; |
20 |
use strict; |
21 |
use warnings; |
21 |
use warnings; |
22 |
use C4::Context; |
22 |
use C4::Context; |
23 |
|
23 |
use JSON qw( to_json ); |
24 |
|
24 |
use C4::Log qw( logaction ); |
25 |
|
25 |
|
26 |
=head1 NAME |
26 |
=head1 NAME |
27 |
|
27 |
|
Lines 120-126
returns nothing useful.
Link Here
|
120 |
|
120 |
|
121 |
sub SetMessagingPreference { |
121 |
sub SetMessagingPreference { |
122 |
my $params = shift; |
122 |
my $params = shift; |
123 |
|
123 |
|
124 |
unless (exists $params->{borrowernumber} xor exists $params->{categorycode}) { # yes, xor |
124 |
unless (exists $params->{borrowernumber} xor exists $params->{categorycode}) { # yes, xor |
125 |
warn "SetMessagingPreference called without exactly one of borrowernumber or categorycode"; |
125 |
warn "SetMessagingPreference called without exactly one of borrowernumber or categorycode"; |
126 |
return; |
126 |
return; |
Lines 131-136
sub SetMessagingPreference {
Link Here
|
131 |
return; |
131 |
return; |
132 |
} |
132 |
} |
133 |
} |
133 |
} |
|
|
134 |
my $preferences_json = to_json(GetPatronMessagingPreferences($params->{borrowernumber}, $params->{message_attribute_id}),{ utf8 => 1, canonical => 1 }); |
135 |
|
134 |
$params->{'days_in_advance'} = undef unless exists ( $params->{'days_in_advance'} ); |
136 |
$params->{'days_in_advance'} = undef unless exists ( $params->{'days_in_advance'} ); |
135 |
$params->{'wants_digest'} = 0 unless exists ( $params->{'wants_digest'} ); |
137 |
$params->{'wants_digest'} = 0 unless exists ( $params->{'wants_digest'} ); |
136 |
|
138 |
|
Lines 181-186
END_SQL
Link Here
|
181 |
foreach my $transport ( @{$params->{'message_transport_types'}}) { |
183 |
foreach my $transport ( @{$params->{'message_transport_types'}}) { |
182 |
my $success = $sth->execute( $borrower_message_preference_id, $transport ); |
184 |
my $success = $sth->execute( $borrower_message_preference_id, $transport ); |
183 |
} |
185 |
} |
|
|
186 |
|
187 |
my $new_preferences_json = to_json(GetPatronMessagingPreferences($params->{borrowernumber}, $params->{message_attribute_id}),{ utf8 => 1, canonical => 1 }); |
188 |
|
189 |
if ( $preferences_json ne $new_preferences_json ) { |
190 |
my $info; |
191 |
$preferences_json =~ s/,/, /g; |
192 |
$new_preferences_json =~ s/,/, /g; |
193 |
$preferences_json =~ s/\[\]/null/g; |
194 |
$new_preferences_json =~ s/\[\]/null/g; |
195 |
|
196 |
$info = { |
197 |
before => $preferences_json, |
198 |
after => $new_preferences_json |
199 |
}; |
200 |
logaction("MEMBERS","MODIFY",$params->{borrowernumber}, "Messaging preference: after: ". $new_preferences_json . " before: " . $preferences_json); |
201 |
} |
184 |
} |
202 |
} |
185 |
return; |
203 |
return; |
186 |
} |
204 |
} |
Lines 259-264
sub SetMessagingPreferencesFromDefaults {
Link Here
|
259 |
} |
277 |
} |
260 |
} |
278 |
} |
261 |
|
279 |
|
|
|
280 |
sub GetPatronMessagingPreferences { |
281 |
my ($borrowernumber, $message_attribute_id) = @_; |
282 |
my $sql = <<'END_SQL'; |
283 |
SELECT message_name, days_in_advance, wants_digest, |
284 |
borrower_message_transport_preferences.message_transport_type |
285 |
FROM borrower_message_preferences |
286 |
INNER JOIN borrower_message_transport_preferences |
287 |
ON borrower_message_transport_preferences.borrower_message_preference_id = borrower_message_preferences.borrower_message_preference_id |
288 |
INNER JOIN message_attributes |
289 |
ON borrower_message_preferences.message_attribute_id = message_attributes.message_attribute_id |
290 |
AND borrowernumber = ? |
291 |
AND borrower_message_preferences.message_attribute_id = ? |
292 |
END_SQL |
293 |
|
294 |
my $sth = C4::Context->dbh->prepare($sql); |
295 |
$sth->execute($borrowernumber, $message_attribute_id); |
296 |
my $rows = $sth->fetchall_arrayref({}); |
297 |
return $rows; |
298 |
} |
299 |
|
262 |
=head1 TABLES |
300 |
=head1 TABLES |
263 |
|
301 |
|
264 |
=head2 message_queue |
302 |
=head2 message_queue |
265 |
- |
|
|