|
Line 0
Link Here
|
| 0 |
- |
1 |
=head1 NAME |
|
|
2 |
|
| 3 |
Koha notices |
| 4 |
|
| 5 |
=head1 DESCRIPTION |
| 6 |
|
| 7 |
Koha notices are stored in the 'letter' table, and contain templates |
| 8 |
used to populate the 'message_queue' table. Data from the letter |
| 9 |
table is read in via C4::Letters::GetPreparedLetter(), which is |
| 10 |
called throughout the Koha code base wherever notices are used. |
| 11 |
|
| 12 |
Notices are added to the message queue via C4::Letters::EnqueueLetter(). |
| 13 |
How the template from the letter template is parsed and populated |
| 14 |
varies widely from notice to notice; this is where all notices are |
| 15 |
documented. For each notice. |
| 16 |
|
| 17 |
* Module |
| 18 |
* Letter Code |
| 19 |
* Source file where the notice is populated |
| 20 |
* Logic that triggers the notice |
| 21 |
* Detail syntax (if any) |
| 22 |
* Available data (tables and substitutions). |
| 23 |
This should include information about the |
| 24 |
relationships between data elements |
| 25 |
* Message transport restrictions (if applicable) |
| 26 |
|
| 27 |
=head1 NOTICE MODULES |
| 28 |
|
| 29 |
=head2 Circulation |
| 30 |
|
| 31 |
=over |
| 32 |
|
| 33 |
=item DUE |
| 34 |
|
| 35 |
* Source file : advance_notices.pl |
| 36 |
* Trigger : Sent the day that a patron has items due. |
| 37 |
* Detail syntax : There is no detail -- one notice is sent per item due. |
| 38 |
* Available data : <<biblio.*>>, <<items.*>>, <<issues.*>>, <<branches.*>> |
| 39 |
|
| 40 |
=item PREDUE |
| 41 |
|
| 42 |
Uses the same fields and syntax ase DUE, except |
| 43 |
|
| 44 |
* Trigger : Sent X days before item is due, as specified by the patron's messaging |
| 45 |
preferences. |
| 46 |
|
| 47 |
=item DUEDGST |
| 48 |
|
| 49 |
* Source file : advance_notices.pl |
| 50 |
* Trigger : Sent the day that a patron has items due. |
| 51 |
* Detail syntax : <<items.content>> |
| 52 |
* Available data : <<count>> (number of items due), <<branches.*>> (patron's home branch) |
| 53 |
|
| 54 |
<<items.content>> is replaced in is entirety by the fields 'due date', 'title', 'author' ,'barcode', unless |
| 55 |
other fields are specified using the --itemscontent option to advance_notices.pl. |
| 56 |
Any column from biblios, items and issues tables may be used in --itemscontent. |
| 57 |
|
| 58 |
=item PREDUEDGST |
| 59 |
|
| 60 |
Uses the same fields and syntax ase DUEDGST, except |
| 61 |
|
| 62 |
* Trigger : Sent X days before items are due, as specified by the patron's |
| 63 |
messaging preferences. |
| 64 |
|
| 65 |
=item Overdue Notices (ODUE*) |
| 66 |
|
| 67 |
* Source file : overdue_notices.pl |
| 68 |
* Trigger : Notices sent X days after items are due, as specified in overdue triggers. |
| 69 |
* Detail syntax : <<items.content>> or <item> ... </item> |
| 70 |
* Available data : |
| 71 |
|
| 72 |
<<items.content>> Works identically to <<items.content>> in advance_notices.pl. |
| 73 |
|
| 74 |
<item> and </item> tags will expand fields from the following tables: |
| 75 |
|
| 76 |
items |
| 77 |
bibio |
| 78 |
biblioitems |
| 79 |
issues |
| 80 |
|
| 81 |
<item> items.barcode </item> will show the overdue item's barcode. |
| 82 |
|
| 83 |
Multiple fields may be expanded inside a single pair of tags. |
| 84 |
There is a special tag <<items.fine>> which is only available in within the |
| 85 |
<item> tag, which expands to the fine on the overdue item. |
| 86 |
|
| 87 |
The letter code for overdue notices may change, based on the values set in the Overdue notice triggers. |
| 88 |
|
| 89 |
=item OVERDUES_SLIP |
| 90 |
|
| 91 |
* Source file : members/print_overdues.pl |
| 92 |
* Detail syntax : Uses the same syntax as ODUE |
| 93 |
* Message transports : Print only. |
| 94 |
|
| 95 |
=item CHECKOUT |
| 96 |
|
| 97 |
* Source file : C4/Circulation.pm |
| 98 |
* Trigger : Data is added to the message in the message queue on every checkout |
| 99 |
(see below). |
| 100 |
* Detail syntax : See below. |
| 101 |
* Available data : <<items.*>> <<biblio.*>> <<biblioitems.*>> <<borrowers.*>> |
| 102 |
<<branches.*>> <<issues.*>> (for CHECKOUT and RENEWAL) |
| 103 |
|
| 104 |
Notices in C4/Circulation.pm use four dashes before and after the detail section: |
| 105 |
|
| 106 |
---- |
| 107 |
Detail here |
| 108 |
---- |
| 109 |
|
| 110 |
This is implemented in C4::Message. |
| 111 |
|
| 112 |
Data is added to message_queue.metadata; each checkout will print a line of detail between the dashes. |
| 113 |
Metadata accumulates until process_message_queue.pl runs. The first subsequent message generates a new |
| 114 |
record in message_queue. |
| 115 |
|
| 116 |
=item RENEWAL |
| 117 |
|
| 118 |
Uses the same syntax and data as CHECKOUT, except |
| 119 |
|
| 120 |
* Trigger : Data is added to the message in the message queue on every renewal. |
| 121 |
|
| 122 |
|
| 123 |
=item CHECKIN |
| 124 |
|
| 125 |
Uses the same syntax and data as CHECKOUT, except |
| 126 |
|
| 127 |
* Trigger : Data is added to the message in the message queue on every checkin. |
| 128 |
* Available data : <<old_issues.*>> (replaces <<issues.*>> as used in CHECKOUT and RENEWAL) |
| 129 |
|
| 130 |
=item TRANSFERSLIP |
| 131 |
|
| 132 |
* Source file : C4/Circulation.pm |
| 133 |
* Trigger : Prints when transfer is sent, except if hold captured. |
| 134 |
* Detail syntax : No repeating detail. |
| 135 |
* Available data : <<branches>>, <<biblio>>, <<items>> |
| 136 |
* Message transports : Set as 'email'. |
| 137 |
|
| 138 |
=item ISSUESLIP |
| 139 |
|
| 140 |
* Source file : C4/Members.pm |
| 141 |
* Trigger : Printed from circulation screen. |
| 142 |
* Detail syntax : <checkedout> </checkedout> |
| 143 |
<overdue> </overdue> |
| 144 |
<news> </news> |
| 145 |
* Message transports : Set as 'email'. |
| 146 |
|
| 147 |
<checkedout> and <overdue> will expand <<biblio.*>>, <<items.*>>, <<issues.*>> |
| 148 |
<news> will expand <<opac_news.*>>, as populated by C4::NewsChannels::GetNewsToDisplay() |
| 149 |
|
| 150 |
=item ISSUEQSLIP |
| 151 |
|
| 152 |
* Source file : C4/Members.pm |
| 153 |
* Trigger : Printed from circulation screen. |
| 154 |
* Detail syntax : <checkedout> </checkedout> |
| 155 |
<overdue> </overdue> |
| 156 |
* Message transports : Set as 'email'. |
| 157 |
|
| 158 |
<checkedout> will expand <<biblio.*>>, <<items.*>>, <<issues.*>> |
| 159 |
|
| 160 |
=item AR_SLIP |
| 161 |
|
| 162 |
* Source file : circ/article-request-slip.pl |
| 163 |
* Trigger : ? |
| 164 |
* Detail syntax : No repeating detail. |
| 165 |
* Available data : <<article_requests.*>>, <<borrowers.*>>, <<biblio.*>>, <<biblioitems.*>>, |
| 166 |
<<items.*>>, <<branches.*>> |
| 167 |
|
| 168 |
=item AR_Processing |
| 169 |
|
| 170 |
* Source file : Koha/ArticleRequest.pm |
| 171 |
* Trigger : ? |
| 172 |
* Detail syntax : No repeating detail. |
| 173 |
* Available data : <<article_requests.*>>, <<borrowers.*>>, <<biblio.*>>, <<biblioitems.*>>, |
| 174 |
<<items.*>>, <<branches.*>> |
| 175 |
=item AR_Completed |
| 176 |
|
| 177 |
Same as AR_Processing |
| 178 |
|
| 179 |
=item AR_Canceled |
| 180 |
|
| 181 |
Same as AR_Processing |
| 182 |
|
| 183 |
=item AR_Pending |
| 184 |
|
| 185 |
Same as AR_Processing |
| 186 |
|
| 187 |
=item OVERDUE |
| 188 |
|
| 189 |
* Source file : misc/cronjobs/thirdparty/TalkingTech_itiva_outbound.pl |
| 190 |
* Trigger : Uses overdue trigger |
| 191 |
* Detail syntax : No repeating detail. |
| 192 |
* Available data : <<borrowers.*>>, <<biblio.*>>, <<biblioitems.*>> |
| 193 |
* Message transports : Phone only |
| 194 |
|
| 195 |
=item PREOVERDUE |
| 196 |
|
| 197 |
Same as OVERDUE |
| 198 |
|
| 199 |
=item RESERVE |
| 200 |
|
| 201 |
Same as OVERDUE |
| 202 |
|
| 203 |
=back |
| 204 |
|
| 205 |
=head2 Holds |
| 206 |
|
| 207 |
=over |
| 208 |
|
| 209 |
=item HOLD |
| 210 |
|
| 211 |
* Source file : C4/Reserves.pm |
| 212 |
* Trigger : Triggered by filled hold |
| 213 |
* Detail syntax : No repeating detail. |
| 214 |
* Available data : <<reserves.*>>, <<branches.*>> (linked by reserves.branchcode), |
| 215 |
<<borrowers.*>> (linked by reserves.borrowernumber), |
| 216 |
<<biblio.*>> (linked by reserves.biblionumber) and |
| 217 |
<<items.*>> (linked by items.itemnumber) |
| 218 |
|
| 219 |
The letter code for trapped/filled/available holds defaults to HOLD, however any notice with the name |
| 220 |
'Hold_Filled' may fill this role. |
| 221 |
|
| 222 |
=item HOLDPLACED |
| 223 |
|
| 224 |
* Source file : C4/Reserves.pm |
| 225 |
* Trigger : Triggered by placed hold |
| 226 |
* Detail syntax : No repeating detail |
| 227 |
* Available data : <<branches.*>> |
| 228 |
(as populated by C4::Branch::GetBranchDetail($borrower->{branchcode}), |
| 229 |
<<borrowers.*>>, <<biblio.*>> and <<items.*>> will be expanded for the |
| 230 |
item placed on hold. Note that <<items.*>> will not be populated for |
| 231 |
'next-available' (i.e. bib-level) holds. |
| 232 |
|
| 233 |
=item HOLD_SLIP |
| 234 |
|
| 235 |
* Source file : C4/Reserves.pm |
| 236 |
* Trigger : Triggered by placed hold |
| 237 |
* Detail syntax : No repeating detail. |
| 238 |
* Available data : See HOLD |
| 239 |
* Message transports : Set as 'email'. |
| 240 |
|
| 241 |
|
| 242 |
=back |
| 243 |
|
| 244 |
=head2 Suggestions |
| 245 |
|
| 246 |
=over |
| 247 |
|
| 248 |
=item ASKED |
| 249 |
|
| 250 |
* Source file : C4/Suggestions.pm |
| 251 |
* Trigger : ? |
| 252 |
* Detail syntax : No repeating detail. |
| 253 |
* Available data : <<branches>>, <<borrowers>>, <<suggestions>>, <<biblio>> |
| 254 |
|
| 255 |
=item CHECKED |
| 256 |
|
| 257 |
|
| 258 |
* Source file : C4/Suggestions.pm |
| 259 |
* Trigger : ? |
| 260 |
* Detail syntax : No repeating detail. |
| 261 |
* Available data : <<branches>>, <<borrowers>>, <<suggestions>>, <<biblio>> |
| 262 |
|
| 263 |
=item ACCEPTED |
| 264 |
|
| 265 |
* Source file : C4/Suggestions.pm |
| 266 |
* Trigger : ? |
| 267 |
* Detail syntax : No repeating detail. |
| 268 |
* Available data : <<branches>>, <<borrowers>>, <<suggestions>>, <<biblio>> |
| 269 |
|
| 270 |
=item REJECTED |
| 271 |
|
| 272 |
* Source file : C4/Suggestions.pm |
| 273 |
* Trigger : ? |
| 274 |
* Detail syntax : No repeating detail. |
| 275 |
* Available data : <<branches>>, <<borrowers>>, <<suggestions>>, <<biblio>> |
| 276 |
|
| 277 |
=item TO_PROCESS |
| 278 |
|
| 279 |
* Source file : misc/cronjobs/notice_unprocessed_suggestions.pl |
| 280 |
* Trigger : ? |
| 281 |
* Detail syntax : No repeating detail. |
| 282 |
* Available data : <<branches>>, <<borrowers>>, <<suggestions>> |
| 283 |
|
| 284 |
=back |
| 285 |
|
| 286 |
=head2 Patrons |
| 287 |
|
| 288 |
=over |
| 289 |
|
| 290 |
=item OPAC_REG_VERIFY |
| 291 |
|
| 292 |
* Source file : opac/opac-memberentry.pl |
| 293 |
* Trigger : Triggered by patron self registration |
| 294 |
* Detail syntax : No repeating detail |
| 295 |
* Available data : <<OPACBaseURL>>, <<borrower_modifications.verification_token>> |
| 296 |
|
| 297 |
=item SHARE_INVITE |
| 298 |
|
| 299 |
* Source file : opac/opac-shareshelf.pl |
| 300 |
* Trigger : Triggered by list share |
| 301 |
* Detail syntax : No repeating detail |
| 302 |
* Available data : <<borrowers.*>>, <<listname>>, <<shareurl>> |
| 303 |
|
| 304 |
=item SHARE_ACCEPT |
| 305 |
|
| 306 |
* Source file : opac/opac-shareshelf.pl |
| 307 |
* Trigger : Triggered by patron accepting list. |
| 308 |
* Detail syntax : No repeating detail |
| 309 |
* Available data : <<borrowers.*>>, <<listname>> |
| 310 |
|
| 311 |
=item ACCTDETAILS |
| 312 |
|
| 313 |
* Source file : members/memberentry.pl |
| 314 |
* Trigger : Triggered by account creation. |
| 315 |
* Detail syntax : No repeating detail. |
| 316 |
* Available data : ? |
| 317 |
|
| 318 |
|
| 319 |
=item MEMBERSHIP_EXPIRY |
| 320 |
|
| 321 |
* Source file : misc/cronjobs/membership_expiry.pl |
| 322 |
* Trigger : Triggered by account expiration. |
| 323 |
* Detail syntax : No repeating detail. |
| 324 |
* Available data : <<borrowers.*>> and <<branches.*>> are available in the notice. |
| 325 |
|
| 326 |
=item DISCHARGE |
| 327 |
|
| 328 |
* Source file : Koha/Patron/Discharge.pm |
| 329 |
* Trigger : ? |
| 330 |
* Detail syntax : No repeating detail. |
| 331 |
* Available data : <<borrowers.*>>, <<branches.*>> |
| 332 |
|
| 333 |
=item PASSWORD_RESET |
| 334 |
|
| 335 |
* Source file : Koha/Patron/Password/Recovery.pm |
| 336 |
* Trigger : ? |
| 337 |
* Detail syntax : No repeating detail. |
| 338 |
* Available data : <<passwordreseturl>> => $uuidLink, <<user>> => $borrower->userid |
| 339 |
|
| 340 |
=back |
| 341 |
|
| 342 |
=head2 Other modules |
| 343 |
|
| 344 |
=over |
| 345 |
|
| 346 |
=item ACQ_NOTIF_ON_RECEIV |
| 347 |
|
| 348 |
* Source file : C4/Acquisition.pm |
| 349 |
* Trigger : Triggered by acquisitions receipt of watched item. |
| 350 |
* Detail syntax : No repeating detail. |
| 351 |
* Available data : <<branches.*>>, <<borrowers.*>>, <<biblio.*>>, <<aqorders.*>> |
| 352 |
|
| 353 |
=item CLAIMSERIAL |
| 354 |
|
| 355 |
* Source file : serials/claims.pl |
| 356 |
* Trigger : ? |
| 357 |
* Detail syntax : As far as I can tell, lines containing <<serial.*>>, <<subscription.*>>, |
| 358 |
<<biblio.*>> or <<aqbooksellers.*>> will be repeated for |
| 359 |
each selected serialid. |
| 360 |
* Available data : <<serial.*>>, <<subscription.*>>, <<branches.*>>, <<aqbooksellers.*>>, |
| 361 |
<<aqcontacts.*>>. |
| 362 |
|
| 363 |
Letter code is chosen via a drop-down on serials/claims.pl, all letters having the module |
| 364 |
'claimissues' will show in the selection list. |
| 365 |
|
| 366 |
=back |