Bug 18736: (QA follow-up) Cosmetic changes
[koha.git] / C4 / Message.pm
index 9b0eee2..e4dafdb 100644 (file)
@@ -1,4 +1,24 @@
 package C4::Message;
+
+# Copyright Liblime 2009
+# Copyright Catalyst IT 2012
+#
+# This file is part of Koha.
+#
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
+
+
 use strict;
 use warnings;
 use C4::Context;
@@ -17,10 +37,16 @@ How to add a new message to the queue:
   use C4::Message;
   use C4::Items;
   my $borrower = { borrowernumber => 1 };
-  my $item     = C4::Items::GetItem(1);
-  my $letter   = C4::Letters::getletter('circulation', 'CHECKOUT');
-  C4::Letters::parseletter($letter, 'biblio',      $item->{biblionumber});
-  C4::Letters::parseletter($letter, 'biblioitems', $item->{biblionumber});
+  my $item     = Koha::Items->find($itemnumber)->unblessed;
+  my $letter =  C4::Letters::GetPreparedLetter (
+      module => 'circulation',
+      letter_code => 'CHECKOUT',
+      branchcode => $branch,
+      tables => {
+          'biblio', $item->{biblionumber},
+          'biblioitems', $item->{biblionumber},
+      },
+  );
   C4::Message->enqueue($letter, $borrower->{borrowernumber}, 'email');
 
 How to update a borrower's last checkout message:
@@ -33,10 +59,11 @@ How to update a borrower's last checkout message:
 
 =head1 DESCRIPTION
 
-This module presents an OO interface to the message_queue.  Previously, you could
-only add messages to the message_queue via C<C4::Letters::EnqueueMessage()>.  With
-this module, you can also get previously inserted messages, manipulate them, and
-save them back to the database.
+This module presents an OO interface to the message_queue.  Previously, 
+you could only add messages to the message_queue via 
+C<C4::Letters::EnqueueMessage()>.  With this module, you can also get 
+previously inserted messages, manipulate them, and save them back to the 
+database.
 
 =cut
 
@@ -79,7 +106,7 @@ sub find {
     if (@$msgs) {
         return $class->new($msgs->[0]);
     } else {
-        return undef;
+        return;
     }
 }
 
@@ -115,7 +142,7 @@ sub find_last_message {
     if (@$msgs) {
         return $class->new($msgs->[0]);
     } else {
-        return undef;
+        return;
     }
 }
 
@@ -132,8 +159,13 @@ sub enqueue {
     my ($class, $letter, $borrower, $transport) = @_;
     my $metadata   = _metadata($letter);
     my $to_address = _to_address($borrower, $transport);
+
+    # Same as render_metadata
+    my $format ||= sub { $_[0] || "" };
+    my $body = join('', map { $format->($_) } @{$metadata->{body}});
+    $letter->{content} = $metadata->{header} . $body . $metadata->{footer};
+
     $letter->{metadata} = Dump($metadata);
-    #carp "enqueuing... to $to_address";
     C4::Letters::EnqueueLetter({
         letter                 => $letter,
         borrowernumber         => $borrower->{borrowernumber},
@@ -279,20 +311,24 @@ If passed a string, it'll append the string to the message.
 # $object->append($letter_or_item) -- add a new item to a message's content
 sub append {
     my ($self, $letter_or_item, $format) = @_;
-    my $item;
+    my ( $item, $header, $footer );
     if (ref($letter_or_item)) {
         my $letter   = $letter_or_item;
         my $metadata = _metadata($letter);
+        $header = $metadata->{header};
+        $footer = $metadata->{footer};
         $item = $metadata->{body}->[0];
     } else {
         $item = $letter_or_item;
     }
     if (not $self->metadata) {
         carp "Can't append to messages that don't have metadata.";
-        return undef;
+        return;
     }
     my $metadata = $self->metadata;
     push @{$metadata->{body}}, $item;
+    $metadata->{header} = $header;
+    $metadata->{footer} = $footer;
     $self->metadata($metadata);
     my $new_content = $self->render_metadata($format);
     return $self->content($new_content);
@@ -302,26 +338,48 @@ sub append {
 
 =head3 $message->message_id
 
+=cut
+
 =head3 $message->borrowernumber
 
+=cut
+
 =head3 $message->subject
 
+=cut
+
 =head3 $message->content
 
+=cut
+
 =head3 $message->metadata
 
+=cut
+
 =head3 $message->letter_code
 
+=cut
+
 =head3 $message->message_transport_type
 
+=cut
+
 =head3 $message->status
 
+=cut
+
 =head3 $message->time_queued
 
+=cut
+
 =head3 $message->to_address
 
+=cut
+
 =head3 $message->from_address
 
+=cut
+
 =head3 $message->content_type
 
 =cut