Fixed up the Print module. Added a function printslip that takes a string as an argum...
[koha.git] / C4 / Print.pm
1 package C4::Print; #assumes C4/Print.pm
2
3 use strict;
4 require Exporter;
5 #use C4::InterfaceCDK;
6
7 use vars qw($VERSION @ISA @EXPORT);
8
9 # set the version for version checking
10 $VERSION = 0.01;
11
12 @ISA = qw(Exporter);
13 @EXPORT = qw(&remoteprint &printreserve &printslip);
14
15 sub remoteprint {
16   my ($env,$items,$borrower)=@_;
17   #open (FILE,">/tmp/olwen");
18   #print FILE "queue $env->{'queue'}";
19   #close FILE;
20   #debug_msg($env,"In print");
21   my $file=time;
22   my $queue = $env->{'queue'};
23   if ($queue eq "" || $queue eq 'nulllp') {
24     open (PRINTER,">/tmp/kohaiss");
25   } else {  
26     open(PRINTER, "| lpr -P $queue") or die "Couldn't write to queue:$queue!\n";
27   }  
28 #  print $queue;
29   #open (FILE,">/tmp/$file");
30   my $i=0;
31   my $brdata = $env->{'brdata'};
32   print PRINTER "Horowhenua Library Trust\r\n";
33 #  print PRINTER "$brdata->{'branchname'}\r\n";
34   print PRINTER "Phone: 368-1953\r\n";   
35   print PRINTER "Fax:    367-9218\r\n";   
36   print PRINTER "Email:  renewals\@library.org.nz\r\n\r\n\r\n";
37   print PRINTER "$borrower->{'cardnumber'}\r\n";
38   print PRINTER "$borrower->{'title'} $borrower->{'initials'} $borrower->{'surname'}\r\n";
39   while ($items->[$i]){
40 #    print $i;
41     my $itemdata = $items->[$i];
42     print PRINTER "$i $itemdata->{'title'}\r\n";
43     print PRINTER "$itemdata->{'barcode'}";
44     print PRINTER " "x15;
45     print PRINTER "$itemdata->{'date_due'}\r\n";
46     $i++;
47   }
48   print PRINTER "\r\n\r\n\r\n\r\n\r\n\r\n\r\n";
49   if ($env->{'printtype'} eq "docket"){
50     #print chr(27).chr(105);
51   } 
52   close PRINTER;
53   #system("lpr /tmp/$file");
54 }
55
56 sub printreserve {
57   my($env, $branchname, $bordata, $itemdata)=@_;
58   my $file=time;
59   my $printer = $env->{'printer'};
60   if ($printer eq "" || $printer eq 'nulllp') {
61     open (PRINTER,">>/tmp/kohares");
62   } else {
63     open (PRINTER, "| lpr -P $printer") or die "Couldn't write to queue:$!\n";
64   }
65   my @da = localtime(time());
66   my $todaysdate = "$da[2]:$da[1]  $da[3]/$da[4]/$da[5]";
67
68 #(1900+$datearr[5]).sprintf ("%0.2d", ($datearr[4]+1)).sprintf ("%0.2d", $datearr[3]);
69   my $slip = <<"EOF";
70 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 Date: $todaysdate;
72
73 ITEM RESERVED: 
74 $itemdata->{'title'} ($itemdata->{'author'})
75 barcode: $itemdata->{'barcode'}
76
77 COLLECT AT: $branchname
78
79 BORROWER:
80 $bordata->{'surname'}, $bordata->{'firstname'}
81 card number: $bordata->{'cardnumber'}
82 Phone: $bordata->{'phone'}
83 $bordata->{'streetaddress'}
84 $bordata->{'suburb'}
85 $bordata->{'town'}
86 $bordata->{'emailaddress'}
87
88
89 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
90 EOF
91     print PRINTER $slip;
92   close PRINTER;
93   return $slip;
94 }
95
96 sub printslip {
97   my($env, $slip)=@_;
98   my $printer = $env->{'printer'};
99   if ($printer eq "" || $printer eq 'nulllp') {
100     open (PRINTER,">/tmp/kohares");
101   } else {
102     open (PRINTER, "| lpr -P $printer") or die "Couldn't write to queue:$!\n";
103   }
104   print PRINTER $slip;
105   close PRINTER;
106 }
107
108 END { }       # module clean-up code here (global destructor)
109   
110