C4::Letters - Give functions for Letters management
use C4::Letters;
"Letters" is the tool used in Koha to manage informations sent to the patrons and/or the library. This include some cron jobs like late issues, as well as other tasks like sending a mail to users that have subscribed to a "serial issue alert" (= being warned every time a new issue has arrived at the library) Letters are managed through "alerts" sent by Koha on some events. All "alert" related functions are in this module too.
$letters = &GetLetters($module); returns informations about letters. if needed, $module filters for letters given module
my $letter_templates = GetLetterTemplates( { module => 'circulation', code => 'my code', branchcode => 'CPL', # '' for default, } ); Return a hashref of letter templates. The key will be the message transport type.
my $letters = GetLettersAvailableForALibrary( { branchcode => 'CPL', # '' for default module => 'circulation', } ); Return an arrayref of letters, sorted by name. If a specific letter exist for the given branchcode, it will be retrieve. Otherwise the default letter will be.
DelLetter( { branchcode => 'CPL', module => 'circulation', code => 'my code', [ mtt => 'email', ] } ); Delete the letter. The mtt parameter is facultative. If not given, all templates mathing the other parameters will be removed.
parameters : - $borrowernumber : the number of the borrower subscribing to the alert - $type : the type of alert. - $externalid : the primary key of the object to put alert on. For issues, the alert is made on subscriptionid. create an alert and return the alertid (primary key)
parameters : - alertid : the alert id deletes the alert
parameters : - $borrowernumber : the number of the borrower subscribing to the alert - $type : the type of alert. - $externalid : the primary key of the object to put alert on. For issues, the alert is made on subscriptionid. all parameters NON mandatory. If a parameter is omitted, the query is done without the corresponding parameter. For example, without $externalid, returns all alerts for a borrower on a topic.
parameters : - $type : the type of alert - $externalid : the id of the "object" to query In the table alert, a "id" is stored in the externalid field. This "id" is related to another table, depending on the type of the alert. When type=issue, the id is related to a subscriptionid and this sub returns the name of the biblio.
my $err = &SendAlerts($type, $externalid, $letter_code); Parameters: - $type : the type of alert - $externalid : the id of the "object" to query - $letter_code : the notice template to use C<&SendAlerts> sends an email notice directly to a patron or a vendor. Currently it supports ($type): - claim serial issues (claimissues) - claim acquisition orders (claimacquisition) - send acquisition orders to the vendor (orderacquisition) - notify patrons about newly received serial issues (issue) - notify patrons when their account is created (members) Returns undef or { error => 'message } on failure. Returns true on success.
%params hash: module => letter module, mandatory letter_code => letter code, mandatory branchcode => for letter selection, if missing default system letter taken tables => a hashref with table names as keys. Values are either: - a scalar - primary key value - an arrayref - primary key values - a hashref - full record substitute => custom substitution key/value pairs repeat => records to be substituted on consecutive lines: - an arrayref - tries to guess what needs substituting by taking remaining << >> tokensr; not recommended - a hashref token => @tables - replaces <token> << >> << >> </token> subtemplate for each @tables row; table is a hashref as above want_librarian => boolean, if set to true triggers librarian details substitution from the userenv Return value: letter fields hashref (title & content useful)
parameters : - $letter : a hash to letter fields (title & content useful) - $table : the Koha table to parse. - $values_in : table record hashref parse all fields from a table, and replace values in title & content with the appropriate value (not exported sub, used only internally)
my $success = EnqueueLetter( { letter => $letter, borrowernumber => '12', message_transport_type => 'email' } )
places a letter in the message_queue database table, which will eventually get processed (sent) by the process_message_queue.pl cronjob when it calls SendQueuedMessages.
return message_id on success
my $sent = SendQueuedMessages( { verbose => 1 } );
sends all of the 'pending' items in the message queue.
returns number of messages sent.
my $message_list = GetRSSMessages( { limit => 10, borrowernumber => '14' } )
returns a listref of all queued RSS messages for a particular person.
my $message_list = GetPrintMessages( { borrowernumber => $borrowernumber } )
Returns a arrayref of all queued print messages (optionally, for a particular person).
my $messages = GetQueuedMessage( { borrowernumber => '123', limit => 20 } );
fetches messages out of the message queue.
returns: list of hashes, each has represents a message in the message queue.
my @mtt = GetMessageTransportTypes(); returns an arrayref of transport types
my $message = C4::Letters::Message($message_id);
Attempt to resend a message which has failed previously. my $has_been_resent = C4::Letters::ResendMessage($message_id); Updates the message to 'pending' status so that it will be resent later on. returns 1 on success, 0 on failure, undef if no message was found
named parameters: letter - the standard letter hashref attachments - listref of attachments. each attachment is a hashref of: type - the mime type, like 'text/plain' content - the actual attachment filename - the name of the attachment. message - a MIME::Lite object to attach these to.
returns your letter object, with the content updated.