Bug 34059: Add only issues from the branch that is creating the notice

Test plan, on k-t-d
1) Go to 'my account' on top right user menu
2) On 'Patron messaging preferences', click 'Edit'
3) On the 'Item due' row, check the 'Email' and 'Digests only' checkboxes and save
4) On the top search bar, press 'Check out' and enter '42' (koha user cardnumber)
5) On the checkout input bar, enter 39999000001372 and press checkout
7) Go to 'Set library' on top right user menu and pick a different library
8) Repeat step 4), then, on the checkout input, enter 39999000004571 and press checkout
9) Verify that this user now has 2 items checked out, from 2 different libraries at /cgi-bin/koha/circ/circulation.pl?borrowernumber=51
9) Run the following 2 queries to force the due_date to be equal to 'today's' date for both issues:
NOTE: change the YYYY-MM-DD below to whatever day it is you're running this test plan

UPDATE issues SET date_due = '2023-06-19 23:59:00' where issue_id = 1;
UPDATE issues SET date_due = '2023-06-19 23:59:00' where issue_id = 2;

10) Run the cronjob:
./koha/misc/cronjobs/advance_notices.pl -c --digest-per-branch

11) Verify that two DUEDGEST notices were created, one per each library, but both notices contain both issues:
SELECT letter_code, time_queued, content FROM message_queue ORDER BY message_id DESC LIMIT 2;

12) Apply patch, then do 10) and 11) again
13) Verify that each notice only contains the issue for its respective library

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Stephen Graham <s.graham4@herts.ac.uk>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 39e6b100cb)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
(cherry picked from commit bdfe5b3cde)
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
This commit is contained in:
Pedro Amorim 2023-06-19 14:24:30 +00:00
parent 3063b166a8
commit 5fdc778da1

View file

@ -388,19 +388,19 @@ UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) {
# Now, run through all the people that want digests and send them
my $sth_digest = $dbh->prepare(<<'END_SQL');
SELECT biblio.*, items.*, issues.*
my $digest_query = 'SELECT biblio.*, items.*, issues.*
FROM issues,items,biblio
WHERE items.itemnumber=issues.itemnumber
AND biblio.biblionumber=items.biblionumber
AND issues.borrowernumber = ?
AND (TO_DAYS(date_due)-TO_DAYS(NOW()) = ?)
END_SQL
AND (TO_DAYS(date_due)-TO_DAYS(NOW()) = ?)';
my $sth_digest = $dbh->prepare($digest_query);
if ($digest_per_branch) {
while (my ($branchcode, $digests) = each %$upcoming_digest) {
send_digests({
sth => $sth_digest,
sth => $dbh->prepare( $digest_query . " AND issues.branchcode = '" . $branchcode . "'"),
digests => $digests,
letter_code => 'PREDUEDGST',
message_name => 'advance_notice',
@ -418,7 +418,7 @@ if ($digest_per_branch) {
while (my ($branchcode, $digests) = each %$due_digest) {
send_digests({
sth => $sth_digest,
sth => $dbh->prepare( $digest_query . " AND issues.branchcode = '" . $branchcode . "'" ),
digests => $digests,
letter_code => 'DUEDGST',
branchcode => $branchcode,