#!/usr/bin/perl # Copyright 2001-2009 Leslie Richardson # This file is part of Open Admin for Schools. %lex = ('Report' => 'Report', 'Eoy' => 'Eoy', 'Main' => 'Main', 'Staff' => 'Staff', 'Preregistration' => 'Preregistration', 'Unable to open template file' => 'Unable to open template file', 'View/Download' => 'View/Download', 'View Log File' => 'View Log File', 'Error' => 'Error', ); use DBI; use CGI; #use strict; eval require "../../etc/admin.conf"; if ( $@ ) { print $lex{Error}. ": $@
\n"; die $lex{Error}. ": $@\n"; } # Get Lib Latex for filtering eval require "../../lib/liblatex.pl"; if ( $@ ) { print $lex{Error}. ": $@
\n"; die $lex{Error}. ": $@\n"; } my $q = CGI->new; print $q->header( -charset, $charset ); my %arr = $q->Vars; # Select table report on; staff or prereg_staff; my ($table, $tableview); if ( $arr{tbl} ){ # report prereg_staff table $table = 'prereg_staff'; $tableview = "". $lex{Preregistration}. ''. q{ }. $lex{Staff}; } else { $table = 'staff'; $tableview = $lex{Staff}; } my $dsn = "DBI:$dbtype:dbname=$dbase"; my $dbh = DBI->connect($dsn,$user,$password); $dbh->{mysql_enable_utf8} = 1; # Display page header print "$doctype\n$tableview ". $lex{Report}. "\n"; print "\n"; print "$chartype\n[ ".$lex{Main}; print " | ".$lex{Eoy}." ]\n"; print "

$tableview ". $lex{Report}. "

\n"; my @tim = localtime(time); my $year = $tim[5] + 1900; my $month = $tim[4] + 1; my $day = $tim[3]; if (length($month) == 1){ $month = "0".$month;} if (length($day) == 1){ $day = "0".$day;} #my $currdate = "$year-$month-$day"; $currsdate = "$year$month$day"; $currdate = "$month[$month] $day, $year"; # Get Meta values: fieldid and arrayidx my $sth; $sth = $dbh->prepare("select fieldid, arrayidx from meta where tableid = 'staff' order by arrayidx"); $sth->execute; if ($DBI::errstr) { print $DBI::errstr; die $DBI::errstr; } while (my ($fieldid, $arrayidx) = $sth->fetchrow) { $meta[$arrayidx] = $fieldid; } # Get the report template... unless (open (FH,"<", "../../template/staffrpt.tpl")) { print $lex{'Unable to open template file'},": $!\n"; die $lex{'Unable to open template file'},": $!\n"; } my $text; { local $/; $text = ; close FH;} # Open a TeX file for creation; use a template... my $logfile = "pdflog$$.txt"; my $shortname = "staffrpt$$"; my $filename = "$shortname.tex"; open(TEX,">$filename") || die "Can't open tex file"; printTeXStart(); # Setup the start of the file. # Print Heading. if ( $arr{tbl} ) { print TEX $lex{Preregistration}. q{ }. $lex{Staff}. q{ }. $lex{Report}; } else { print TEX $lex{Staff}. q{ }. $lex{Report}; } print TEX "\\hfill{\\LARGE $schoolname} "; print TEX " \\hfill $currdate \n\\smallskip\n\n"; # Find each staff record (staff or prereg_staff) $sth = $dbh->prepare("select * from $table order by lastname, firstname"); $sth->execute; if ($DBI::errstr) { print $DBI::errstr; die $DBI::errstr; } while ( my @st = $sth->fetchrow ) { # Note: entire record loaded.... @st = latex_filter( @st ); my %rec; # populate rec hash with rec{fieldid} = fieldvalue # @meta holds the fieldid's and @st holds current record vals. for (0..$#st) { $rec{$meta[$_]} = $st[$_]; } my $template = $text; # make a new blank record to plug in... # Now put replacement text back in. $template =~ s{\<\#(.*?)\#\>} { exists($rec{$1}) ? $rec{$1} : ' ' }gsex; print TEX $template,"\n"; } print TEX "\\end{document}"; close TEX; system("$pdflatex $filename > $logfile"); system("mv $shortname.pdf $downloaddir"); system("mv $logfile $downloaddir"); system("rm $shortname.*"); print "

"; print "". $lex{'View/Download'}; print " $tableview ". $lex{Report}. "

\n"; print "

[ ". $lex{'Main'}. " | "; print "". $lex{Eoy}. " | \n"; print ""; print $lex{'View Log File'}. " ]

\n"; print "\n"; #---------------- sub printTeXStart { #---------------- my $papersize; if ( $defaultpapersize ) { $papersize = $defaultpapersize; } else { $papersize = 'letterpaper'; } print TEX "\\documentclass[12pt,$papersize]{article} \\usepackage{array,colortbl,graphicx,inputenc} $a_latex_header \\renewcommand{\\familydefault}{\\sfdefault} \\pagestyle{empty} \\setlength{\\textwidth}{7.5in} \\setlength{\\textheight}{10in} \\setlength{\\hoffset}{-1.2in} \\setlength{\\voffset}{-1in} \\setlength{\\headsep}{10pt} \\setlength{\\headheight}{14pt} \\setlength{\\topmargin}{0pt} \\setlength{\\parindent}{0pt} \\setlength{\\tabcolsep}{5pt} \\setlength{\\extrarowheight}{3pt} %\\thispagestyle{empty} %\\pagestyle{empty} \\markright{$schoolname \\hfill "; print TEX $lex{Staff}. q{ }. $lex{Report}; print TEX " \\hfill $currdate -- Pg }\n\\begin{document}\n"; } # End of printTeXStart