|
Lines 45-119
overdue_notices.pl - prepare messages to be sent to patrons for overdue items
Link Here
|
| 45 |
=head1 SYNOPSIS |
45 |
=head1 SYNOPSIS |
| 46 |
|
46 |
|
| 47 |
overdue_notices.pl |
47 |
overdue_notices.pl |
| 48 |
[ -n ][ -library <branchcode> ][ -library <branchcode> ... ] |
48 |
[ -n ][ --library <branchcode> ][ --library <branchcode> ... ] |
| 49 |
[ -max <number of days> ][ -csv [<filename>] ][ -itemscontent <field list> ] |
49 |
[ --max <number of days> ][ --csv [<filename>] ][ --itemscontent <field list> ] |
| 50 |
[ -email <email_type> ... ] |
50 |
[ --email <email_type> ... ] |
| 51 |
|
51 |
|
| 52 |
Options: |
52 |
Options: |
| 53 |
-help Brief help message. |
53 |
--help Brief help message. |
| 54 |
-man Full documentation. |
54 |
--man Full documentation. |
| 55 |
-v Verbose mode. |
55 |
--verbose | -v Verbose mode. |
| 56 |
-n No email will be sent. |
56 |
--nomail | -n No email will be sent. |
| 57 |
-max <days> Maximum days overdue to deal with. |
57 |
--max <days> Maximum days overdue to deal with. |
| 58 |
-library <branchcode> Only deal with overdues from this library. |
58 |
--library <branchcode> Only deal with overdues from this library. |
| 59 |
(repeatable : several libraries can be given) |
59 |
(repeatable : several libraries can be given) |
| 60 |
-csv <filename> Populate CSV file. |
60 |
--csv <filename> Populate CSV file. |
| 61 |
-html <directory> Output html to a file in the given directory. |
61 |
--html <directory> Output html to a file in the given directory. |
| 62 |
-text <directory> Output plain text to a file in the given directory. |
62 |
--text <directory> Output plain text to a file in the given directory. |
| 63 |
-itemscontent <list of fields> Item information in templates. |
63 |
--itemscontent <list of fields> Item information in templates. |
| 64 |
-borcat <categorycode> Category code that must be included. |
64 |
--borcat <categorycode> Category code that must be included. |
| 65 |
-borcatout <categorycode> Category code that must be excluded. |
65 |
--borcatout <categorycode> Category code that must be excluded. |
| 66 |
-t Only include triggered overdues. |
66 |
--triggered | -t Only include triggered overdues. |
| 67 |
--test Run in test mode. No changes will be made on the DB. |
67 |
--test Run in test mode. No changes will be made on the DB. |
| 68 |
-list-all List all overdues. |
68 |
--list-all List all overdues. |
| 69 |
-date <yyyy-mm-dd> Emulate overdues run for this date. |
69 |
--date <yyyy-mm-dd> Emulate overdues run for this date. |
| 70 |
-email <email_type> Type of email that will be used. |
70 |
--email <email_type> Type of email that will be used. |
| 71 |
Can be 'email', 'emailpro' or 'B_email'. Repeatable. |
71 |
Can be 'email', 'emailpro' or 'B_email'. Repeatable. |
| 72 |
--frombranch Set the from address for the notice to one of 'item-homebranch' or 'item-issuebranch'. |
72 |
--frombranch Set the from address for the notice to one of 'item-homebranch' or 'item-issuebranch'. |
| 73 |
|
73 |
|
| 74 |
=head1 OPTIONS |
74 |
=head1 OPTIONS |
| 75 |
|
75 |
|
| 76 |
=over 8 |
76 |
=over 8 |
| 77 |
|
77 |
|
| 78 |
=item B<-help> |
78 |
=item B<--help> |
| 79 |
|
79 |
|
| 80 |
Print a brief help message and exits. |
80 |
Print a brief help message and exits. |
| 81 |
|
81 |
|
| 82 |
=item B<-man> |
82 |
=item B<--man> |
| 83 |
|
83 |
|
| 84 |
Prints the manual page and exits. |
84 |
Prints the manual page and exits. |
| 85 |
|
85 |
|
| 86 |
=item B<-v> |
86 |
=item B<-v> | B<--verbose> |
| 87 |
|
87 |
|
| 88 |
Verbose. Without this flag set, only fatal errors are reported. |
88 |
Verbose. Without this flag set, only fatal errors are reported. |
| 89 |
|
89 |
|
| 90 |
=item B<-n> |
90 |
=item B<-n> | B<--nomail> |
| 91 |
|
91 |
|
| 92 |
Do not send any email. Overdue notices that would have been sent to |
92 |
Do not send any email. Overdue notices that would have been sent to |
| 93 |
the patrons or to the admin are printed to standard out. CSV data (if |
93 |
the patrons or to the admin are printed to standard out. CSV data (if |
| 94 |
the -csv flag is set) is written to standard out or to any csv |
94 |
the --csv flag is set) is written to standard out or to any csv |
| 95 |
filename given. |
95 |
filename given. |
| 96 |
|
96 |
|
| 97 |
=item B<-max> |
97 |
=item B<--max> |
| 98 |
|
98 |
|
| 99 |
Items older than max days are assumed to be handled somewhere else, |
99 |
Items older than max days are assumed to be handled somewhere else, |
| 100 |
probably the F<longoverdues.pl> script. They are therefore ignored by |
100 |
probably the F<longoverdues.pl> script. They are therefore ignored by |
| 101 |
this program. No notices are sent for them, and they are not added to |
101 |
this program. No notices are sent for them, and they are not added to |
| 102 |
any CSV files. Defaults to 90 to match F<longoverdues.pl>. |
102 |
any CSV files. Defaults to 90 to match F<longoverdues.pl>. |
| 103 |
|
103 |
|
| 104 |
=item B<-library> |
104 |
=item B<--library> |
| 105 |
|
105 |
|
| 106 |
select overdues for one specific library. Use the value in the |
106 |
select overdues for one specific library. Use the value in the |
| 107 |
branches.branchcode table. This option can be repeated in order |
107 |
branches.branchcode table. This option can be repeated in order |
| 108 |
to select overdues for a group of libraries. |
108 |
to select overdues for a group of libraries. |
| 109 |
|
109 |
|
| 110 |
=item B<-csv> |
110 |
=item B<--csv> |
| 111 |
|
111 |
|
| 112 |
Produces CSV data. if -n (no mail) flag is set, then this CSV data is |
112 |
Produces CSV data. if -n (no mail) flag is set, then this CSV data is |
| 113 |
sent to standard out or to a filename if provided. Otherwise, only |
113 |
sent to standard out or to a filename if provided. Otherwise, only |
| 114 |
overdues that could not be emailed are sent in CSV format to the admin. |
114 |
overdues that could not be emailed are sent in CSV format to the admin. |
| 115 |
|
115 |
|
| 116 |
=item B<-html> |
116 |
=item B<--html> |
| 117 |
|
117 |
|
| 118 |
Produces html data. If patron does not have an email address or |
118 |
Produces html data. If patron does not have an email address or |
| 119 |
-n (no mail) flag is set, an HTML file is generated in the specified |
119 |
-n (no mail) flag is set, an HTML file is generated in the specified |
|
Lines 121-127
directory. This can be downloaded or further processed by library staff.
Link Here
|
| 121 |
The file will be called notices-YYYY-MM-DD.html and placed in the directory |
121 |
The file will be called notices-YYYY-MM-DD.html and placed in the directory |
| 122 |
specified. |
122 |
specified. |
| 123 |
|
123 |
|
| 124 |
=item B<-text> |
124 |
=item B<--text> |
| 125 |
|
125 |
|
| 126 |
Produces plain text data. If patron does not have an email address or |
126 |
Produces plain text data. If patron does not have an email address or |
| 127 |
-n (no mail) flag is set, a text file is generated in the specified |
127 |
-n (no mail) flag is set, a text file is generated in the specified |
|
Lines 129-135
directory. This can be downloaded or further processed by library staff.
Link Here
|
| 129 |
The file will be called notices-YYYY-MM-DD.txt and placed in the directory |
129 |
The file will be called notices-YYYY-MM-DD.txt and placed in the directory |
| 130 |
specified. |
130 |
specified. |
| 131 |
|
131 |
|
| 132 |
=item B<-itemscontent> |
132 |
=item B<--itemscontent> |
| 133 |
|
133 |
|
| 134 |
comma separated list of fields that get substituted into templates in |
134 |
comma separated list of fields that get substituted into templates in |
| 135 |
places of the E<lt>E<lt>items.contentE<gt>E<gt> placeholder. This |
135 |
places of the E<lt>E<lt>items.contentE<gt>E<gt> placeholder. This |
|
Lines 138-148
defaults to due date,title,barcode,author
Link Here
|
| 138 |
Other possible values come from fields in the biblios, items and |
138 |
Other possible values come from fields in the biblios, items and |
| 139 |
issues tables. |
139 |
issues tables. |
| 140 |
|
140 |
|
| 141 |
=item B<-borcat> |
141 |
=item B<--borcat> |
| 142 |
|
142 |
|
| 143 |
Repeatable field, that permits to select only some patron categories. |
143 |
Repeatable field, that permits to select only some patron categories. |
| 144 |
|
144 |
|
| 145 |
=item B<-borcatout> |
145 |
=item B<--borcatout> |
| 146 |
|
146 |
|
| 147 |
Repeatable field, that permits to exclude some patron categories. |
147 |
Repeatable field, that permits to exclude some patron categories. |
| 148 |
|
148 |
|
|
Lines 157-180
the cron schedule to ensure proper behavior.
Link Here
|
| 157 |
Add the --triggered option for daily cron, at the risk of no notice |
157 |
Add the --triggered option for daily cron, at the risk of no notice |
| 158 |
being generated if the cron fails to run on time. |
158 |
being generated if the cron fails to run on time. |
| 159 |
|
159 |
|
| 160 |
=item B<-test> |
160 |
=item B<--test> |
| 161 |
|
161 |
|
| 162 |
This option makes the script run in test mode. |
162 |
This option makes the script run in test mode. |
| 163 |
|
163 |
|
| 164 |
In test mode, the script won't make any changes on the DB. This is useful |
164 |
In test mode, the script won't make any changes on the DB. This is useful |
| 165 |
for debugging configuration. |
165 |
for debugging configuration. |
| 166 |
|
166 |
|
| 167 |
=item B<-list-all> |
167 |
=item B<--list-all> |
| 168 |
|
168 |
|
| 169 |
Default items.content lists only those items that fall in the |
169 |
Default items.content lists only those items that fall in the |
| 170 |
range of the currently processing notice. |
170 |
range of the currently processing notice. |
| 171 |
Choose list-all to include all overdue items in the list (limited by B<-max> setting). |
171 |
Choose --list-all to include all overdue items in the list (limited by B<--max> setting). |
| 172 |
|
172 |
|
| 173 |
=item B<-date> |
173 |
=item B<--date> |
| 174 |
|
174 |
|
| 175 |
use it in order to send overdues on a specific date and not Now. Format: YYYY-MM-DD. |
175 |
use it in order to send overdues on a specific date and not Now. Format: YYYY-MM-DD. |
| 176 |
|
176 |
|
| 177 |
=item B<-email> |
177 |
=item B<--email> |
| 178 |
|
178 |
|
| 179 |
Allows to specify which type of email will be used. Can be email, emailpro or B_email. Repeatable. |
179 |
Allows to specify which type of email will be used. Can be email, emailpro or B_email. Repeatable. |
| 180 |
|
180 |
|
|
Lines 269-279
address are sent in a single attachment to the library administrator's
Link Here
|
| 269 |
email address, or to the address in the KohaAdminEmailAddress system |
269 |
email address, or to the address in the KohaAdminEmailAddress system |
| 270 |
preference. |
270 |
preference. |
| 271 |
|
271 |
|
| 272 |
C<overdue_notices.pl -n -csv /tmp/overdues.csv> - sends no email and |
272 |
C<overdue_notices.pl -n --csv /tmp/overdues.csv> - sends no email and |
| 273 |
populates F</tmp/overdues.csv> with information about all overdue |
273 |
populates F</tmp/overdues.csv> with information about all overdue |
| 274 |
items. |
274 |
items. |
| 275 |
|
275 |
|
| 276 |
C<overdue_notices.pl -library MAIN max 14> - prepare notices of |
276 |
C<overdue_notices.pl --library MAIN max 14> - prepare notices of |
| 277 |
overdues in the last 2 weeks for the MAIN library. |
277 |
overdues in the last 2 weeks for the MAIN library. |
| 278 |
|
278 |
|
| 279 |
=head1 SEE ALSO |
279 |
=head1 SEE ALSO |
|
Lines 310-317
my ( $date_input, $today );
Link Here
|
| 310 |
GetOptions( |
310 |
GetOptions( |
| 311 |
'help|?' => \$help, |
311 |
'help|?' => \$help, |
| 312 |
'man' => \$man, |
312 |
'man' => \$man, |
| 313 |
'v' => \$verbose, |
313 |
'v|verbose' => \$verbose, |
| 314 |
'n' => \$nomail, |
314 |
'n|nomail' => \$nomail, |
| 315 |
'max=s' => \$MAX, |
315 |
'max=s' => \$MAX, |
| 316 |
'library=s' => \@branchcodes, |
316 |
'library=s' => \@branchcodes, |
| 317 |
'csv:s' => \$csvfilename, # this optional argument gets '' if not supplied. |
317 |
'csv:s' => \$csvfilename, # this optional argument gets '' if not supplied. |
| 318 |
- |
|
|