Adding Branch Independancy.
[koha.git] / opac / opac-sendbasket.pl
index 32812df..c0bc03c 100755 (executable)
@@ -5,10 +5,12 @@ use CGI;
 use Mail::Sendmail;
 use MIME::QuotedPrint;
 use MIME::Base64;
-
+use C4::Context;
 use C4::Search;
+use C4::Biblio;
 use C4::Auth;
 use C4::Interface::CGI::Output;
+use C4::Biblio;
 use HTML::Template;
 
 my $query = new CGI;
@@ -24,6 +26,10 @@ my ($template, $borrowernumber, $cookie)
 my $bib_list=$query->param('bib_list');
 my $email_add=$query->param('email_add');
 my $email_sender=$query->param('email_sender');
+my $dbh=C4::Context->dbh;
+my $sth;
+$sth=$dbh->prepare("select bibid from marc_biblio where biblionumber=? order by bibid");
+
 
 if ($email_add) {
        my $email_from = C4::Context->preference('KohaAdminEmailAddress');
@@ -41,12 +47,13 @@ if ($email_add) {
 
        my @bibs = split(/\//, $bib_list);
        my @results;
-
+       my $iso2709;
        foreach my $biblionumber (@bibs) {
                $template2->param(biblionumber => $biblionumber);
 
                my $dat = &bibdata($biblionumber);
                my ($authorcount, $addauthor) = &addauthor($biblionumber);
+               my @items                     = &ItemInfo(undef, $biblionumber, 'opac');
 
                $dat->{'additional'}=$addauthor->[0]->{'author'};
                for (my $i = 1; $i < $authorcount; $i++) {
@@ -54,17 +61,17 @@ if ($email_add) {
                }
 
                $dat->{'biblionumber'} = $biblionumber;
-               
+               $dat->{ITEM_RESULTS} = \@items;
+               $sth->execute($biblionumber);
+               my ($bibid) = $sth->fetchrow;
+               my $record = MARCgetbiblio($dbh,$bibid);
+               $iso2709 .= $record->as_usmarc();
+
                push (@results, $dat);
        }
 
-       my $resultsarray=\@results;
-       $template2->param(BIBLIO_RESULTS => $resultsarray,
-                                       email_sender => $email_sender);
-
-       # Getting template result
-       my $template_res = $template2->output();
-
+    # Getting template result                                                                                             
+    my $template_res = $template2->output();
        # Analysing information and getting mail properties
        if ($template_res =~ /<SUBJECT>\n(.*)\n<END_SUBJECT>/s) { $mail{'subject'} = $1; }
        else { $mail{'subject'} = "no subject"; }
@@ -78,14 +85,44 @@ if ($email_add) {
        if ($template_res =~ /<MESSAGE>\n(.*)\n<END_MESSAGE>/s) { $mail{'body'} = $1; }
 
        my $boundary = "====" . time() . "====";
+#      $mail{'content-type'} = "multipart/mixed; boundary=\"$boundary\"";
+# 
+#      $email_header = encode_qp($email_header);
+# 
+#      $boundary = "--".$boundary;
+# 
+#      # Writing mail
+#      $mail{body} =
        $mail{'content-type'} = "multipart/mixed; boundary=\"$boundary\"";
 
-       $email_header = encode_qp($email_header);
+       my $message = encode_qp( "" );
+
+# $file = $^X; # This is the perl executable
+# 
+# open (F, $file) or die "Cannot read $file: $!";
+# binmode F; undef $/;
+$mail{body} = encode_base64($iso2709);
+# close F;
+
+$boundary = '--'.$boundary;
+$mail{body} = <<END_OF_BODY;
+$boundary
+Content-Type: text/plain; charset="iso-8859-1"
+Content-Transfer-Encoding: quoted-printable
+
+$message
+$boundary
+Content-Type: application/octet-stream; name="basket"
+Content-Transfer-Encoding: base64
+Content-Disposition: attachment; filename="basket"
+
+$mail{body}
+$boundary--
+END_OF_BODY
 
-       $boundary = "--".$boundary;
 
-       # Writing mail
-       $mail{body} = <<END_OF_BODY;
+
+        <<END_OF_BODY;
 $boundary
 Content-Type: text/plain; charset="iso-8859-1"
 Content-Transfer-Encoding: quoted-printable
@@ -97,6 +134,7 @@ $mail{'body'}
 $boundary--
 END_OF_BODY
 
+$mail{attachment} = $iso2709;
 #      $mail{body} = <<END_OF_BODY;
 #$boundary
 #Content-Type: text/plain; charset="iso-8859-1"
@@ -117,7 +155,8 @@ END_OF_BODY
        # Sending mail
        if (sendmail %mail) {
        # do something if it works....
-               warn "Mail sent ok\n";
+#              warn " ".$mail{body};
+#              warn " ".$mail{PJ};
                $template->param(SENT => "1");
                $template->param(email_add => $email_add);
        } else {
@@ -125,10 +164,13 @@ END_OF_BODY
                warn "Error sending mail: $Mail::Sendmail::error \n";
        }
 
-       output_html_with_http_headers $query, $cookie, $template->output;
+    output_html_with_http_headers $query, $cookie, $template->output;
 }
 else {
        $template->param(bib_list => $bib_list);
-       $template->param(url => "/cgi-bin/koha/opac-sendbasket.pl");
+       $template->param(url => "/cgi-bin/koha/opac-sendbasket.pl",
+       suggestion => C4::Context->preference("suggestion"),
+       virtualshelves => C4::Context->preference("virtualshelves"),
+       );
        output_html_with_http_headers $query, $cookie, $template->output;
 }