Bugzilla – Attachment 104984 Details for
Bug 23781
Recalls notices and messaging preferences
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 23781: SMS notices and messaging preferences for recalls
Bug-23781-SMS-notices-and-messaging-preferences-fo.patch (text/plain), 30.20 KB, created by
Aleisha Amohia
on 2020-05-18 00:54:12 UTC
(
hide
)
Description:
Bug 23781: SMS notices and messaging preferences for recalls
Filename:
MIME Type:
Creator:
Aleisha Amohia
Created:
2020-05-18 00:54:12 UTC
Size:
30.20 KB
patch
obsolete
>From 1529c13ac2f7613100dfddfdf7a54bc08c9bcaaf Mon Sep 17 00:00:00 2001 >From: Aleisha Amohia <aleishaamohia@hotmail.com> >Date: Tue, 12 May 2020 22:07:56 +0000 >Subject: [PATCH] Bug 23781: SMS notices and messaging preferences for recalls > >This patch adds recalls notices (pick up a waiting recall or return a >requested recall) to the messaging preferences. > >To test: >1) Apply Bug 19532 >2) Apply this bug >3) Update database, rebuild dbix files >4) Ensure UseRecalls syspref is enabled and values have been set in the >circulation rules for recalls >5) Go to a borrower (Person A) account page in the Intranet or the OPAC >6) Go to messaging preferences >7) Notice there are now preferences for two recalls notices >8) Select email as a preference >9) Find a different borrower (Person B) and set their messaging >preferences to SMS >10) Check out any item to Person B >11) Go to the OPAC logged in as Person A and find that item >12) Recall the item >13) In the terminal, look at the message_queue in the database. There >should be a 'RETURN_RECALLED_ITEM' recall notice sent to Person B via SMS >14) Go back to the Intranet and check in the item. Confirm the recall >when checking in >15) Look at the message_queue in the database again. There should be a >'PICKUP_RECALLED_ITEM' recall notice sent to Person A via email. >16) Confirm tests pass >t/db_dependent/Koha/Recall.t >t/db_dependent/Koha/Recalls.t > >Sponsored-by: Toi Ohomai Institute of Technology >--- > Koha/Recall.pm | 9 +++++- > Koha/Recalls.pm | 11 ++++++- > .../bug_23781-recalls_message_attributes.perl | 6 ++++ > .../bug_23781-recalls_message_transports.perl | 6 ++++ > .../bug_23781-recalls_sms_notices.perl | 22 ++++++++++++++ > .../data/mysql/de-DE/mandatory/sample_notices.sql | 16 +++++++++- > .../data/mysql/en/mandatory/sample_notices.yml | 34 ++++++++++++++++++++++ > .../mysql/fr-CA/obligatoire/sample_notices.sql | 16 +++++++++- > .../mysql/fr-FR/1-Obligatoire/sample_notices.sql | 16 +++++++++- > installer/data/mysql/it-IT/necessari/notices.sql | 16 +++++++++- > .../sample_notices_message_attributes.sql | 5 ++-- > .../sample_notices_message_transports.sql | 6 +++- > .../mysql/nb-NO/1-Obligatorisk/sample_notices.sql | 16 +++++++++- > .../data/mysql/pl-PL/mandatory/sample_notices.sql | 16 +++++++++- > .../data/mysql/ru-RU/mandatory/sample_notices.sql | 16 +++++++++- > .../data/mysql/uk-UA/mandatory/sample_notices.sql | 18 +++++++++++- > .../prog/en/includes/messaging-preference-form.inc | 2 ++ > .../bootstrap/en/modules/opac-messaging.tt | 2 ++ > t/db_dependent/Koha/Recall.t | 6 ++++ > t/db_dependent/Koha/Recalls.t | 8 ++++- > 20 files changed, 233 insertions(+), 14 deletions(-) > create mode 100644 installer/data/mysql/atomicupdate/bug_23781-recalls_message_attributes.perl > create mode 100644 installer/data/mysql/atomicupdate/bug_23781-recalls_message_transports.perl > create mode 100644 installer/data/mysql/atomicupdate/bug_23781-recalls_sms_notices.perl > >diff --git a/Koha/Recall.pm b/Koha/Recall.pm >index d2a5f500af6..48897c035f1 100644 >--- a/Koha/Recall.pm >+++ b/Koha/Recall.pm >@@ -363,7 +363,14 @@ sub set_waiting { > }, > ); > >- C4::Message->enqueue($letter, $self->patron->unblessed, 'email'); >+ my $messaging_preferences = C4::Members::Messaging::GetMessagingPreferences({ borrowernumber => $self->borrowernumber, message_name => 'Recall_Waiting' }); >+ while ( my ( $transport, $letter_code ) = each %{ $messaging_preferences->{transports} } ) { if ( $transport eq 'email' ){ >+ C4::Message->enqueue($letter, $self->patron->unblessed, 'email'); >+ } >+ if ( $transport eq 'sms' ){ >+ C4::Message->enqueue($letter, $self->patron->unblessed, 'sms'); >+ } >+ } > > return $self; > } >diff --git a/Koha/Recalls.pm b/Koha/Recalls.pm >index 48dcb7345d2..8043c2a60f2 100644 >--- a/Koha/Recalls.pm >+++ b/Koha/Recalls.pm >@@ -117,7 +117,16 @@ sub add_recall { > }, > ); > >- C4::Message->enqueue( $letter, $checkout->patron->unblessed, 'email' ); >+ my $messaging_preferences = C4::Members::Messaging::GetMessagingPreferences({ borrowernumber => $checkout->borrowernumber, message_name => 'Recall_Requested' }); >+ >+ while ( my ( $transport, $letter_code ) = each %{ $messaging_preferences->{transports} } ) { >+ if ( $transport eq 'email' ){ >+ C4::Message->enqueue($letter, $checkout->patron->unblessed, 'email'); >+ } >+ if ( $transport eq 'sms' ){ >+ C4::Message->enqueue($letter, $checkout->patron->unblessed, 'sms'); >+ } >+ } > > $item = Koha::Items->find( $itemnumber ); > # add to statistics table >diff --git a/installer/data/mysql/atomicupdate/bug_23781-recalls_message_attributes.perl b/installer/data/mysql/atomicupdate/bug_23781-recalls_message_attributes.perl >new file mode 100644 >index 00000000000..26f2a07db97 >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/bug_23781-recalls_message_attributes.perl >@@ -0,0 +1,6 @@ >+$DBversion = 'XXX'; >+if( CheckVersion( $DBversion ) ) { >+ $dbh->do(q{INSERT IGNORE INTO message_attributes (message_attribute_id, message_name, takes_days) VALUES (7, 'Recall_Waiting', 0), (8, 'Recall_Requested', 0) }); >+ >+ NewVersion( $DBversion, 23781, "Adding message attributes for recalls: Recall_Waiting, Recall_Requested" ); >+} >diff --git a/installer/data/mysql/atomicupdate/bug_23781-recalls_message_transports.perl b/installer/data/mysql/atomicupdate/bug_23781-recalls_message_transports.perl >new file mode 100644 >index 00000000000..4ad4f6f6c00 >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/bug_23781-recalls_message_transports.perl >@@ -0,0 +1,6 @@ >+$DBversion = 'XXX'; >+if( CheckVersion( $DBversion ) ) { >+ $dbh->do(q{INSERT IGNORE INTO message_transports (message_attribute_id, message_transport_type, is_digest, letter_module, letter_code, branchcode) VALUES (7, "email", 0, "circulation", "PICKUP_RECALLED_ITEM", null), (7, "sms", 0, "circulation", "PICKUP_RECALLED_ITEM", null), (8, "email", 0, "circulation", "RETURN_RECALLED_ITEM", null), (8, "sms", 0, "circulation", "RETURN_RECALLED_ITEM", null) }); >+ >+ NewVersion( $DBversion, 23781, "Adding message transports for recalls notices" ); >+} >diff --git a/installer/data/mysql/atomicupdate/bug_23781-recalls_sms_notices.perl b/installer/data/mysql/atomicupdate/bug_23781-recalls_sms_notices.perl >new file mode 100644 >index 00000000000..bcd0433fed9 >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/bug_23781-recalls_sms_notices.perl >@@ -0,0 +1,22 @@ >+$DBversion = 'XXX'; >+if( CheckVersion( $DBversion ) ) { >+ $dbh->do(q{ >+ INSERT IGNORE INTO `letter` (`module`, `code`, `branchcode`, `name`, `is_html`, `title`, `content`, `message_transport_type`) VALUES >+ ('circulation','RETURN_RECALLED_ITEM','','Notification to return a recalled item','0','Notification to return a recalled item','Date: <<today>> >+ >+<<borrowers.firstname>> <<borrowers.surname>>, >+ >+A recall has been placed on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>). The due date has been updated, and is now <<issues.date_due>>. Please return the item before the due date. >+ >+Thank you!','sms'), >+ ('circulation','PICKUP_RECALLED_ITEM','','Recalled item awaiting pickup','0','Recalled item awaiting pickup','Date: <<today>> >+ >+<<borrowers.firstname>> <<borrowers.surname>>, >+ >+A recall that you requested on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>) is now ready for you to pick up at <<recalls.branchcode>>. Please pick up your item by <<recalls.expirationdate>>. >+ >+Thank you!','sms') >+ }); >+ >+ NewVersion( $DBversion, 19532, "Add recalls SMS notices: RETURN_RECALLED_ITEM, PICKUP_RECALLED_ITEM" ); >+} >diff --git a/installer/data/mysql/de-DE/mandatory/sample_notices.sql b/installer/data/mysql/de-DE/mandatory/sample_notices.sql >index 37385fa1b46..a6e29fe5291 100644 >--- a/installer/data/mysql/de-DE/mandatory/sample_notices.sql >+++ b/installer/data/mysql/de-DE/mandatory/sample_notices.sql >@@ -233,7 +233,21 @@ ITEM RECALLED > Barcode: <<items.barcode>> > Callnumber: <<items.itemcallnumber>> > Waiting since: <<recalls.waitingdate>> >-Notes: <<recalls.recallnotes>>', 'print'); >+Notes: <<recalls.recallnotes>>', 'print') >+('circulation','RETURN_RECALLED_ITEM','','Notification to return a recalled item','0','Notification to return a recalled item','Date: <<today>> >+ >+<<borrowers.firstname>> <<borrowers.surname>>, >+ >+A recall has been placed on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>). The due date has been updated, and is now <<issues.date_due>>. Please return the item before the due date. >+ >+Thank you!','sms'), >+('circulation','PICKUP_RECALLED_ITEM','','Recalled item awaiting pickup','0','Recalled item awaiting pickup','Date: <<today>> >+ >+<<borrowers.firstname>> <<borrowers.surname>>, >+ >+A recall that you requested on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>) is now ready for you to pick up at <<recalls.branchcode>>. Please pick up your item by <<recalls.expirationdate>>. >+ >+Thank you!','sms'); > > INSERT INTO `letter` (`module`, `code`, `branchcode`, `name`, `is_html`, `title`, `content`, `message_transport_type`, `lang`) VALUES > ('circulation', 'ACCOUNT_PAYMENT', '', 'Zahlung', 0, 'Zahlungsquittung für Bibliothekskonto', '[%- USE Price -%]\r\nEine Zahlung in Höhe von [% credit.amount * -1 | $Price %] wurde auf Ihr Konto verbucht.\r\n\r\nDiese Zahlung wurde mit den folgenden Gebührenposten verrechnet:\r\n[%- FOREACH o IN offsets %]\r\nBeschreibung: [% o.debit.description %]\r\nGezahlter Betrag: [% o.amount * -1 | $Price %]\r\nOffener Betrag: [% o.debit.amountoutstanding | $Price %]\r\n[% END %]', 'email', 'default'), >diff --git a/installer/data/mysql/en/mandatory/sample_notices.yml b/installer/data/mysql/en/mandatory/sample_notices.yml >index 317483961dd..15a030afbde 100644 >--- a/installer/data/mysql/en/mandatory/sample_notices.yml >+++ b/installer/data/mysql/en/mandatory/sample_notices.yml >@@ -1266,3 +1266,37 @@ tables: > - "Callnumber: <<items.itemcallnumber>>" > - "Waiting since: <<recalls.waitingdate>>" > - "Notes: <<recalls.recallnotes>>" >+ >+ - module: circulation >+ code: RETURN_RECALLED_ITEM >+ branchcode: "" >+ name: "Notification to return a recalled item" >+ is_html: 0 >+ title: "Notification to return a recalled item" >+ message_transport_type: sms >+ lang: default >+ content: >+ - "Date: <<today>>" >+ - "" >+ - "<<borrowers.firstname>> <<borrowers.surname>>," >+ - "" >+ - "A recall has been placed on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>). The due date has been updated, and is now <<issues.date_due>>. Please return the item before the due date." >+ - "" >+ - "Thank you!" >+ >+ - module: circulation >+ code: PICKUP_RECALLED_ITEM >+ branchcode: "" >+ name: "Recalled item awaiting pickup" >+ is_html: 0 >+ title: "Recalled item awaiting pickup" >+ message_transport_type: sms >+ lang: default >+ content: >+ - "Date: <<today>>" >+ - "" >+ - "<<borrowers.firstname>> <<borrowers.surname>>," >+ - "" >+ - "A recall that you requested on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>) is now ready for you to pick up at <<recalls.branchcode>>. Please pick up your item by <<recalls.expirationdate>>." >+ - "" >+ - "Thank you!" >diff --git a/installer/data/mysql/fr-CA/obligatoire/sample_notices.sql b/installer/data/mysql/fr-CA/obligatoire/sample_notices.sql >index 08131a25f88..ee1b79a4cdd 100644 >--- a/installer/data/mysql/fr-CA/obligatoire/sample_notices.sql >+++ b/installer/data/mysql/fr-CA/obligatoire/sample_notices.sql >@@ -112,7 +112,21 @@ ITEM RECALLED > Barcode: <<items.barcode>> > Callnumber: <<items.itemcallnumber>> > Waiting since: <<recalls.waitingdate>> >-Notes: <<recalls.recallnotes>>', 'print'); >+Notes: <<recalls.recallnotes>>', 'print'), >+('circulation','RETURN_RECALLED_ITEM','','Notification to return a recalled item','0','Notification to return a recalled item','Date: <<today>> >+ >+<<borrowers.firstname>> <<borrowers.surname>>, >+ >+A recall has been placed on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>). The due date has been updated, and is now <<issues.date_due>>. Please return the item before the due date. >+ >+Thank you!','sms'), >+('circulation','PICKUP_RECALLED_ITEM','','Recalled item awaiting pickup','0','Recalled item awaiting pickup','Date: <<today>> >+ >+<<borrowers.firstname>> <<borrowers.surname>>, >+ >+A recall that you requested on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>) is now ready for you to pick up at <<recalls.branchcode>>. Please pick up your item by <<recalls.expirationdate>>. >+ >+Thank you!','sms'); > > INSERT INTO `letter` (module, code, branchcode, name, is_html, title, content, message_transport_type) > VALUES ('members','PASSWORD_RESET','','Récupération de mot de passe en ligne',1,'Récupération de mot de passe','<html>\r\n<p>Ce courriel vous a été envoyé suite à une demande de récupération de mot de passe pour le compte de <strong><<user>></strong>.\r\n</p>\r\n<p>\r\nVous pouvez créer un nouveau mot de passe en cliquant le lien suivant :\r\n<br/><a href=\"<<passwordreseturl>>\"><<passwordreseturl>></a>\r\n</p>\r\n<p>Ce lien sera valide pour 2 jours après la réception de ce courriel. Si vous ne changez pas votre mot de passe d\'ici deux jours, vous devrez faire une nouvelle demande de récuération de mot de passe..</p>\r\n<p>Merci.</p>\r\n</html>\r\n','email'), >diff --git a/installer/data/mysql/fr-FR/1-Obligatoire/sample_notices.sql b/installer/data/mysql/fr-FR/1-Obligatoire/sample_notices.sql >index 1183df588bb..0efa1ccb400 100644 >--- a/installer/data/mysql/fr-FR/1-Obligatoire/sample_notices.sql >+++ b/installer/data/mysql/fr-FR/1-Obligatoire/sample_notices.sql >@@ -227,7 +227,21 @@ ITEM RECALLED > Barcode: <<items.barcode>> > Callnumber: <<items.itemcallnumber>> > Waiting since: <<recalls.waitingdate>> >-Notes: <<recalls.recallnotes>>', 'print'); >+Notes: <<recalls.recallnotes>>', 'print'), >+('circulation','RETURN_RECALLED_ITEM','','Notification to return a recalled item','0','Notification to return a recalled item','Date: <<today>> >+ >+<<borrowers.firstname>> <<borrowers.surname>>, >+ >+A recall has been placed on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>). The due date has been updated, and is now <<issues.date_due>>. Please return the item before the due date. >+ >+Thank you!','sms'), >+('circulation','PICKUP_RECALLED_ITEM','','Recalled item awaiting pickup','0','Recalled item awaiting pickup','Date: <<today>> >+ >+<<borrowers.firstname>> <<borrowers.surname>>, >+ >+A recall that you requested on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>) is now ready for you to pick up at <<recalls.branchcode>>. Please pick up your item by <<recalls.expirationdate>>. >+ >+Thank you!','sms'); > > INSERT INTO `letter` (`module`, `code`, `branchcode`, `name`, `is_html`, `title`, `content`, `message_transport_type`, `lang`) VALUES > ('circulation', 'ACCOUNT_PAYMENT', '', 'Account payment', 0, 'Account payment', '[%- USE Price -%]\r\nA payment of [% credit.amount * -1 | $Price %] has been applied to your account.\r\n\r\nThis payment affected the following fees:\r\n[%- FOREACH o IN offsets %]\r\nDescription: [% o.debit.description %]\r\nAmount paid: [% o.amount * -1 | $Price %]\r\nAmount remaining: [% o.debit.amountoutstanding | $Price %]\r\n[% END %]', 'email', 'default'), >diff --git a/installer/data/mysql/it-IT/necessari/notices.sql b/installer/data/mysql/it-IT/necessari/notices.sql >index 96897dfb150..0f54fea25a6 100644 >--- a/installer/data/mysql/it-IT/necessari/notices.sql >+++ b/installer/data/mysql/it-IT/necessari/notices.sql >@@ -229,7 +229,21 @@ ITEM RECALLED > Barcode: <<items.barcode>> > Callnumber: <<items.itemcallnumber>> > Waiting since: <<recalls.waitingdate>> >-Notes: <<recalls.recallnotes>>', 'print'); >+Notes: <<recalls.recallnotes>>', 'print'), >+('circulation','RETURN_RECALLED_ITEM','','Notification to return a recalled item','0','Notification to return a recalled item','Date: <<today>> >+ >+<<borrowers.firstname>> <<borrowers.surname>>, >+ >+A recall has been placed on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>). The due date has been updated, and is now <<issues.date_due>>. Please return the item before the due date. >+ >+Thank you!','sms'), >+('circulation','PICKUP_RECALLED_ITEM','','Recalled item awaiting pickup','0','Recalled item awaiting pickup','Date: <<today>> >+ >+<<borrowers.firstname>> <<borrowers.surname>>, >+ >+A recall that you requested on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>) is now ready for you to pick up at <<recalls.branchcode>>. Please pick up your item by <<recalls.expirationdate>>. >+ >+Thank you!','sms'); > > INSERT INTO `letter` (`module`, `code`, `branchcode`, `name`, `is_html`, `title`, `content`, `message_transport_type`, `lang`) VALUES > ('circulation', 'ACCOUNT_PAYMENT', '', 'Account payment', 0, 'Account payment', '[%- USE Price -%]\r\nA payment of [% credit.amount * -1 | $Price %] has been applied to your account.\r\n\r\nThis payment affected the following fees:\r\n[%- FOREACH o IN offsets %]\r\nDescription: [% o.debit.description %]\r\nAmount paid: [% o.amount * -1 | $Price %]\r\nAmount remaining: [% o.debit.amountoutstanding | $Price %]\r\n[% END %]', 'email', 'default'), >diff --git a/installer/data/mysql/mandatory/sample_notices_message_attributes.sql b/installer/data/mysql/mandatory/sample_notices_message_attributes.sql >index a7a6032cc74..c3a2f65294b 100644 >--- a/installer/data/mysql/mandatory/sample_notices_message_attributes.sql >+++ b/installer/data/mysql/mandatory/sample_notices_message_attributes.sql >@@ -5,5 +5,6 @@ values > (2, 'Advance_Notice', 1), > (4, 'Hold_Filled', 0), > (5, 'Item_Check_in', 0), >-(6, 'Item_Checkout', 0); >- >+(6, 'Item_Checkout', 0), >+(7, 'Recall_Waiting', 0), >+(8, 'Recall_Requested', 0); >diff --git a/installer/data/mysql/mandatory/sample_notices_message_transports.sql b/installer/data/mysql/mandatory/sample_notices_message_transports.sql >index 5954bafc7b3..7806fdc7670 100644 >--- a/installer/data/mysql/mandatory/sample_notices_message_transports.sql >+++ b/installer/data/mysql/mandatory/sample_notices_message_transports.sql >@@ -17,4 +17,8 @@ values > (5, 'email', 0, 'circulation', 'CHECKIN'), > (5, 'sms', 0, 'circulation', 'CHECKIN'), > (6, 'email', 0, 'circulation', 'CHECKOUT'), >-(6, 'sms', 0, 'circulation', 'CHECKOUT'); >+(6, 'sms', 0, 'circulation', 'CHECKOUT'), >+(7, "email", 0, "circulation", "PICKUP_RECALLED_ITEM"), >+(7, "sms", 0, "circulation", "PICKUP_RECALLED_ITEM"), >+(8, "email", 0, "circulation", "RETURN_RECALLED_ITEM"), >+(8, "sms", 0, "circulation", "RETURN_RECALLED_ITEM"); >diff --git a/installer/data/mysql/nb-NO/1-Obligatorisk/sample_notices.sql b/installer/data/mysql/nb-NO/1-Obligatorisk/sample_notices.sql >index b6e862c5226..86fd7114e7b 100644 >--- a/installer/data/mysql/nb-NO/1-Obligatorisk/sample_notices.sql >+++ b/installer/data/mysql/nb-NO/1-Obligatorisk/sample_notices.sql >@@ -246,7 +246,21 @@ ITEM RECALLED > Barcode: <<items.barcode>> > Callnumber: <<items.itemcallnumber>> > Waiting since: <<recalls.waitingdate>> >-Notes: <<recalls.recallnotes>>', 'print'); >+Notes: <<recalls.recallnotes>>', 'print'), >+('circulation','RETURN_RECALLED_ITEM','','Notification to return a recalled item','0','Notification to return a recalled item','Date: <<today>> >+ >+<<borrowers.firstname>> <<borrowers.surname>>, >+ >+A recall has been placed on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>). The due date has been updated, and is now <<issues.date_due>>. Please return the item before the due date. >+ >+Thank you!','sms'), >+('circulation','PICKUP_RECALLED_ITEM','','Recalled item awaiting pickup','0','Recalled item awaiting pickup','Date: <<today>> >+ >+<<borrowers.firstname>> <<borrowers.surname>>, >+ >+A recall that you requested on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>) is now ready for you to pick up at <<recalls.branchcode>>. Please pick up your item by <<recalls.expirationdate>>. >+ >+Thank you!','sms'); > > INSERT INTO `letter` (`module`, `code`, `branchcode`, `name`, `is_html`, `title`, `content`, `message_transport_type`, `lang`) VALUES > ('circulation', 'ACCOUNT_PAYMENT', '', 'Account payment', 0, 'Account payment', '[%- USE Price -%]\r\nA payment of [% credit.amount * -1 | $Price %] has been applied to your account.\r\n\r\nThis payment affected the following fees:\r\n[%- FOREACH o IN offsets %]\r\nDescription: [% o.debit.description %]\r\nAmount paid: [% o.amount * -1 | $Price %]\r\nAmount remaining: [% o.debit.amountoutstanding | $Price %]\r\n[% END %]', 'email', 'default'), >diff --git a/installer/data/mysql/pl-PL/mandatory/sample_notices.sql b/installer/data/mysql/pl-PL/mandatory/sample_notices.sql >index 5640b340825..d2cf9baebe2 100644 >--- a/installer/data/mysql/pl-PL/mandatory/sample_notices.sql >+++ b/installer/data/mysql/pl-PL/mandatory/sample_notices.sql >@@ -224,7 +224,21 @@ ITEM RECALLED > Barcode: <<items.barcode>> > Callnumber: <<items.itemcallnumber>> > Waiting since: <<recalls.waitingdate>> >-Notes: <<recalls.recallnotes>>', 'print'); >+Notes: <<recalls.recallnotes>>', 'print'), >+('circulation','RETURN_RECALLED_ITEM','','Notification to return a recalled item','0','Notification to return a recalled item','Date: <<today>> >+ >+<<borrowers.firstname>> <<borrowers.surname>>, >+ >+A recall has been placed on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>). The due date has been updated, and is now <<issues.date_due>>. Please return the item before the due date. >+ >+Thank you!','sms'), >+('circulation','PICKUP_RECALLED_ITEM','','Recalled item awaiting pickup','0','Recalled item awaiting pickup','Date: <<today>> >+ >+<<borrowers.firstname>> <<borrowers.surname>>, >+ >+A recall that you requested on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>) is now ready for you to pick up at <<recalls.branchcode>>. Please pick up your item by <<recalls.expirationdate>>. >+ >+Thank you!','sms'); > > INSERT INTO `letter` (`module`, `code`, `branchcode`, `name`, `is_html`, `title`, `content`, `message_transport_type`, `lang`) VALUES > ('circulation', 'ACCOUNT_PAYMENT', '', 'Account payment', 0, 'Account payment', '[%- USE Price -%]\r\nA payment of [% credit.amount * -1 | $Price %] has been applied to your account.\r\n\r\nThis payment affected the following fees:\r\n[%- FOREACH o IN offsets %]\r\nDescription: [% o.debit.description %]\r\nAmount paid: [% o.amount * -1 | $Price %]\r\nAmount remaining: [% o.debit.amountoutstanding | $Price %]\r\n[% END %]', 'email', 'default'), >diff --git a/installer/data/mysql/ru-RU/mandatory/sample_notices.sql b/installer/data/mysql/ru-RU/mandatory/sample_notices.sql >index 6616841c55e..8eb1b43433b 100644 >--- a/installer/data/mysql/ru-RU/mandatory/sample_notices.sql >+++ b/installer/data/mysql/ru-RU/mandatory/sample_notices.sql >@@ -226,7 +226,21 @@ ITEM RECALLED > Barcode: <<items.barcode>> > Callnumber: <<items.itemcallnumber>> > Waiting since: <<recalls.waitingdate>> >-Notes: <<recalls.recallnotes>>', 'print'); >+Notes: <<recalls.recallnotes>>', 'print'), >+('circulation','RETURN_RECALLED_ITEM','','Notification to return a recalled item','0','Notification to return a recalled item','Date: <<today>> >+ >+<<borrowers.firstname>> <<borrowers.surname>>, >+ >+A recall has been placed on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>). The due date has been updated, and is now <<issues.date_due>>. Please return the item before the due date. >+ >+Thank you!','sms'), >+('circulation','PICKUP_RECALLED_ITEM','','Recalled item awaiting pickup','0','Recalled item awaiting pickup','Date: <<today>> >+ >+<<borrowers.firstname>> <<borrowers.surname>>, >+ >+A recall that you requested on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>) is now ready for you to pick up at <<recalls.branchcode>>. Please pick up your item by <<recalls.expirationdate>>. >+ >+Thank you!','sms'); > > INSERT INTO `letter` (`module`, `code`, `branchcode`, `name`, `is_html`, `title`, `content`, `message_transport_type`, `lang`) VALUES > ('circulation', 'ACCOUNT_PAYMENT', '', 'Account payment', 0, 'Account payment', '[%- USE Price -%]\r\nA payment of [% credit.amount * -1 | $Price %] has been applied to your account.\r\n\r\nThis payment affected the following fees:\r\n[%- FOREACH o IN offsets %]\r\nDescription: [% o.debit.description %]\r\nAmount paid: [% o.amount * -1 | $Price %]\r\nAmount remaining: [% o.debit.amountoutstanding | $Price %]\r\n[% END %]', 'email', 'default'), >diff --git a/installer/data/mysql/uk-UA/mandatory/sample_notices.sql b/installer/data/mysql/uk-UA/mandatory/sample_notices.sql >index a5e87f5ea15..4f0dda30da0 100644 >--- a/installer/data/mysql/uk-UA/mandatory/sample_notices.sql >+++ b/installer/data/mysql/uk-UA/mandatory/sample_notices.sql >@@ -320,7 +320,23 @@ ITEM RECALLED > Barcode: <<items.barcode>> > Callnumber: <<items.itemcallnumber>> > Waiting since: <<recalls.waitingdate>> >-Notes: <<recalls.recallnotes>>', 'print') >+Notes: <<recalls.recallnotes>>', 'print'), >+ >+('circulation','RETURN_RECALLED_ITEM','','Notification to return a recalled item','0','Notification to return a recalled item','Date: <<today>> >+ >+<<borrowers.firstname>> <<borrowers.surname>>, >+ >+A recall has been placed on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>). The due date has been updated, and is now <<issues.date_due>>. Please return the item before the due date. >+ >+Thank you!','sms'), >+ >+('circulation','PICKUP_RECALLED_ITEM','','Recalled item awaiting pickup','0','Recalled item awaiting pickup','Date: <<today>> >+ >+<<borrowers.firstname>> <<borrowers.surname>>, >+ >+A recall that you requested on the following item: <<biblio.title>> / <<biblio.author>> (<<items.barcode>>) is now ready for you to pick up at <<recalls.branchcode>>. Please pick up your item by <<recalls.expirationdate>>. >+ >+Thank you!','sms') > ; > > INSERT INTO `letter` (`module`, `code`, `branchcode`, `name`, `is_html`, `title`, `content`, `message_transport_type`, `lang`) VALUES >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/messaging-preference-form.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/messaging-preference-form.inc >index 2f948c62363..d18f95c455d 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/messaging-preference-form.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/messaging-preference-form.inc >@@ -20,6 +20,8 @@ > [% ELSIF ( messaging_preference.Hold_Filled ) %]Hold filled > [% ELSIF ( messaging_preference.Item_Check_in ) %]Item check-in > [% ELSIF ( messaging_preference.Item_Checkout ) %]Item checkout >+ [% ELSIF ( messaging_preference.Recall_Waiting ) %]Recall awaiting pickup >+ [% ELSIF ( messaging_preference.Recall_Requested ) %]Return recalled item > [% ELSE %]Unknown [% END %]</td> > [% IF ( messaging_preference.takes_days ) %] > <td> >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-messaging.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-messaging.tt >index 7fd47865031..789a115b632 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-messaging.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-messaging.tt >@@ -52,6 +52,8 @@ > [% ELSIF ( messaging_preference.Hold_Filled ) %]Hold filled > [% ELSIF ( messaging_preference.Item_Check_in ) %]Item check-in > [% ELSIF ( messaging_preference.Item_Checkout ) %]Item checkout >+ [% ELSIF ( messaging_preference.Recall_Waiting ) %]Recall awaiting pickup >+ [% ELSIF ( messaging_preference.Recall_Requested ) %]Return recalled item > [% ELSE %]Unknown [% END %]</td> > [% IF ( messaging_preference.takes_days ) %] > <td><select class="input-mini" name="[% messaging_preference.message_attribute_id | html %]-DAYS"> >diff --git a/t/db_dependent/Koha/Recall.t b/t/db_dependent/Koha/Recall.t >index 70d26f29a5f..9cb5e6ff02a 100644 >--- a/t/db_dependent/Koha/Recall.t >+++ b/t/db_dependent/Koha/Recall.t >@@ -126,6 +126,12 @@ $expected_expirationdate = dt_from_string->add({ days => 3 }); > $expirationdate = $recall2->calc_expirationdate; > is( $expirationdate, $expected_expirationdate, "Expiration date calculated based on circulation rules" ); > >+C4::Members::Messaging::SetMessagingPreference({ >+ borrowernumber => $patron1->borrowernumber, >+ message_attribute_id => 7, # Recall_Waiting >+ message_transport_types => [ qw( email sms ) ], >+}); >+ > $recall2->set_waiting({ expirationdate => $expirationdate }); > is( $recall2->waiting, 1, "Recall is waiting" ); > >diff --git a/t/db_dependent/Koha/Recalls.t b/t/db_dependent/Koha/Recalls.t >index 07f8d9f1ad6..6dccd637f87 100644 >--- a/t/db_dependent/Koha/Recalls.t >+++ b/t/db_dependent/Koha/Recalls.t >@@ -67,6 +67,12 @@ Koha::CirculationRules->set_rules({ > C4::Circulation::AddIssue( $patron3->unblessed, $item1->barcode ); > C4::Circulation::AddIssue( $patron3->unblessed, $item2->barcode ); > >+C4::Members::Messaging::SetMessagingPreference({ >+ borrowernumber => $patron3->borrowernumber, >+ message_attribute_id => 8, # Recall_Requested >+ message_transport_types => [ qw( email sms ) ], >+}); >+ > my ( $recall, $due_interval, $due_date ) = Koha::Recalls->add_recall({ > patron => undef, > biblio => $biblio1, >@@ -140,7 +146,7 @@ is( dt_from_string( $recall->checkout->date_due ), $expected_due_date, "Checkout > is( $due_date, $expected_due_date, "Due date correctly returned" ); > > my $messages_count = Koha::Notice::Messages->search({ borrowernumber => $patron3->borrowernumber, letter_code => 'RETURN_RECALLED_ITEM' })->count; >-is( $messages_count, 3, "RETURN_RECALLED_ITEM notice successfully sent to checkout borrower" ); >+is( $messages_count, 6, "RETURN_RECALLED_ITEM notice successfully sent to checkout borrower" ); > > my $message = Koha::Recalls->move_recall; > is( $message, 'no recall_id provided', "Can't move a recall without specifying which recall" ); >-- >2.11.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 23781
:
93905
|
104984
|
131702
|
132044
|
140242
|
140244
|
147107
|
148248
|
148260
|
150430
|
150441
|
155346
|
158696
|
158697
|
158698
|
159013
|
159014
|
159015
|
162377
|
162378
|
162379
|
162380
|
165240
|
165241
|
165242
|
165593
|
165614
|
165615
|
165616
|
165617
|
169201
|
169202
|
169203
|
169204
|
169205