diff options
author | M.Gergo | 2018-07-06 11:14:41 +0200 |
---|---|---|
committer | M.Gergo | 2018-07-06 11:14:41 +0200 |
commit | 43de9af71f7f4ca5731b94a06d688ae8412ba427 (patch) | |
tree | 54835de1dfcda504c02da261f0dc26885aed2e89 /mayor-orig/www/include/modules/naplo/nyomtatas | |
parent | 50310b0e4513ee3fcce67351ae61e8fff851130e (diff) | |
download | mayor-43de9af71f7f4ca5731b94a06d688ae8412ba427.tar.gz mayor-43de9af71f7f4ca5731b94a06d688ae8412ba427.zip |
2018/Feb/28 -i állapot hozzáadva, mint a módosítások kiindulási állapota
Diffstat (limited to 'mayor-orig/www/include/modules/naplo/nyomtatas')
17 files changed, 2962 insertions, 0 deletions
diff --git a/mayor-orig/www/include/modules/naplo/nyomtatas/beiskolazasiTerv.php b/mayor-orig/www/include/modules/naplo/nyomtatas/beiskolazasiTerv.php new file mode 100644 index 00000000..1fd6402e --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/nyomtatas/beiskolazasiTerv.php @@ -0,0 +1,64 @@ +<?php + + function getBeiskolazasiTerv($tanev) { + + $q = "select * from tovabbkepzesTanulmanyiEgyseg left join tovabbkepzes using (tovabbkepzesId) left join tovabbkepzoIntezmeny using (tovabbkepzoIntezmenyId) + left join tovabbkepzesTanar using (tanarId, tovabbkepzesId) + where tovabbkepzesStatusz in ('terv','jóváhagyott','teljesített') and tanev=%u"; + return db_query($q, array('fv'=>'getBeiskolazasiTerv','modul'=>'naplo_intezmeny','result'=>'indexed','values'=>array($tanev))); + + } + + function beiskolazasNyomtatvanyKeszites($ADAT) { + + global $Honapok; + + // A sablonfile meghatározása + define('__TEMPLATE_DIR', _MAYOR_DIR.'/print/module-naplo/templates'); + $tmplFile = 'beiskolazasiTerv'; + + if (file_exists(__TEMPLATE_DIR.'/'.__INTEZMENY.'/'.$tmplFile.'.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/'.__INTEZMENY.'/'.$tmplFile.'.tmpl'; + } elseif (file_exists(__TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl'; + } else { + $_SESSION['alert'][] = 'message:file_not_found:'.__TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl'; + return false; + } + + $Intezmeny = getIntezmenyByRovidnev(__INTEZMENY); + list($ev, $ho, $nap) = explode('-', $ADAT['tanulmanyiEgyseg']['igDt']); + $DATA = array( + 'file' => $ADAT['file'], + 'base' => array('nyomtatasDt' => date('Y.m.d'), 'nyomtatasDatumStr' => date('Y. m. d.'), + 'datumEv' => $ev, 'datumHonap' => $ho, 'datumNap' => $nap, 'hoNev' => kisbetus($Honapok[$ho-1]), + 'intezmenyNev' => $Intezmeny['nev'], 'intezmenyOMKod' => $Intezmeny['OMKod'], 'intezmenyCimIrsz' => $Intezmeny['cimIrsz'], + 'intezmenyCimHelyseg' => $Intezmeny['cimHelyseg'], 'intezmenyCimKozteruletNev' => $Intezmeny['cimKozteruletNev'], + 'intezmenyCimKozteruletJelleg' => $Intezmeny['cimKozteruletJelleg'], 'intezmenyCimHazszam' => $Intezmeny['cimHazszam'], + 'intezmenyTelefon' => $Intezmeny['telefon'], 'intezmenyHonlap' => $Intezmeny['honlap'], + 'intezmenyFax' => $Intezmeny['fax'], 'intezmenyEmail' => $Intezmeny['email'], + + 'tanevJele'=>$ADAT['tanev'].'/'.($ADAT['tanev']+1), 'tanev'=>$ADAT['tanev'], + + 'tanulmanyiEgyseg' => range(0, count($ADAT['tanulmanyiEgyseg'])-1), + + ), + 'tanulmanyiEgyseg' => $ADAT['tanulmanyiEgyseg'] + + ); + for ($i = 0; $i < count($ADAT['tanulmanyiEgyseg']); $i++) { + $TE = $ADAT['tanulmanyiEgyseg'][$i]; + $DATA['tanulmanyiEgyseg'][$i]['tanarNev'] = $ADAT['tanarok'][ $TE['tanarId'] ]['tanarNev']; + $DATA['tanulmanyiEgyseg'][$i]['tolDt'] = str_replace('-','. ',$TE['tolDt']).'.'; + $DATA['tanulmanyiEgyseg'][$i]['igDt'] = str_replace('-','. ',$TE['igDt']).'.'; + //$DATA['tanulmanyiEgyseg'][$i]['tanarBesorolas'] = $ADAT['tanarok'][ $TE['tanarId'] ]['besorolas']; + } + +//dump($ADAT); +//dump($DATA); +//return false; +//die(); + return template2file($templateFile, $DATA); + } + +?>
\ No newline at end of file diff --git a/mayor-orig/www/include/modules/naplo/nyomtatas/bizonyitvanyNyomtatas.php b/mayor-orig/www/include/modules/naplo/nyomtatas/bizonyitvanyNyomtatas.php new file mode 100644 index 00000000..b4d254d2 --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/nyomtatas/bizonyitvanyNyomtatas.php @@ -0,0 +1,164 @@ +<?php + + define('__PRINT_DIR',_DOWNLOADDIR.'/private/osztalyozo'); + + function pdfBizonyitvany($file, $ADAT) { + + global $KOVETELMENY, $Honapok, $bizonyitvanyMegjegyzesek; + +// $ftex = fopen(__PRINT_DIR.'/'.$file.'-A6.tex', 'w'); +// if (!$ftex) return false; + + $ev = substr($ADAT['szemeszterAdat']['zarasDt'], 0, 4); + $ho = substr($ADAT['szemeszterAdat']['zarasDt'], 5, 2); + $nap = substr($ADAT['szemeszterAdat']['zarasDt'], 8, 2); + $dtStr = $ev.'. '.kisbetus($Honapok[--$ho]).' '.$nap.'.'; + + + // fejléc + $TeX = '\documentclass[8pt]{article}'."\n\n"; + $TeX .= '\usepackage[a6paper]{geometry} % A6-os méret'."\n"; +// $TeX .= '\usepackage[utf8]{inputenc} % UTF-8 kódolású forrás'."\n"; + $TeX .= '\usepackage[utf8x]{inputenc} % UTF-8 kódolású forrás (ucs)'."\n"; + $TeX .= '\usepackage{ucs} % Jobb UTF-8 támogatás'."\n"; + $TeX .= '\usepackage{t1enc}'."\n"; + $TeX .= '\usepackage[magyar]{babel} % magyar elválasztási szabályok'."\n"; + $TeX .= '\frenchspacing % a magyar tipográfiai szabályoknak megfelelő szóközök írásjelek után'."\n"; + $TeX .= '\usepackage{booktabs} % táblázatok magasabb szintű formázása'."\n"; +// $TeX .= '\usepackage{soul} % Ritkítás'."\n"; + $TeX .= '\usepackage{fancyhdr} % Ritkítás'."\n"; +// $TeX .= '\pagestyle{empty}'."\n"; + $TeX .= '\pagestyle{fancy}'."\n"; + + $TeX .= '\def\mayor{%'."\n"; +// $TeX .= '\font\mayorfnt=cmsl6%'."\n"; +// $TeX .= '\font\Mayorfnt=cmsl9'."\n"; + $TeX .= '\font\mayorfnt=cmsl4%'."\n"; + $TeX .= '\font\Mayorfnt=cmsl6'."\n"; + $TeX .= '{\mayorfnt\lower0.5ex\hbox{\lower-0.5ex\hbox{Ma}\kern-0.3em\lower0.25ex\hbox{\Mayorfnt Y}\kern-0.2em\hbox{o}\lower0ex\hbox{R}}}}'."\n"; + + $TeX .= '\renewcommand{\footnotesize}{\fontsize{6pt}{8pt}\selectfont}'."\n"; + $TeX .= '\addtolength{\skip\footins}{2mm}'."\n"; + $TeX .= '\addtolength{\textheight}{10mm}'."\n"; + $TeX .= '\setlength{\footskip}{16pt}'."\n"; + $TeX .= '\setlength{\headsep}{14pt}'."\n"; + + $TeX .= '\cfoot{\tiny \copyright\mayor\ elektronikus napló - Nyomtatva: '.date('Y.m.d').'}'; + $TeX .= '\lhead{\tiny '.$ADAT['intezmeny']['nev'].'}'."\n"; + $TeX .= '\rhead{\tiny Értesítő '.$ADAT['szemeszterAdat']['tanev'].'-'.(1+$ADAT['szemeszterAdat']['tanev']).'/'.$ADAT['szemeszterAdat']['szemeszter'].'}'; + + $TeX .= '\begin{document}'."\n\n"; + + for ($i = 0; $i < count($ADAT['diakok']); $i++) { + + $diakId = $ADAT['diakok'][$i]['diakId']; + $jegyek = $ADAT['jegyek'][$diakId]; + $hianyzas = $ADAT['hianyzas'][$diakId]; +//2013NKT if (_KESESI_IDOK_OSSZEADODNAK===true) + $igazolatlan = intval($hianyzas['kesesPercOsszeg']/45)+intval($hianyzas['igazolatlan']); +//2013NKT else +//2013NKT $igazolatlan = intval($hianyzas['igazolatlan']); + $igazolt = intval($hianyzas['igazolt']); + //$atlag = $ADAT['atlag'][$diakId]; + + $TeX .= '\begin{center}'."\n"; + +// $TeX .= '{\large\bfseries\scshape\so{\\\'Ertes{\\\'\\i}t\\H o}}'."\n"; +// $TeX .= '\vspace{8pt}'."\n\n"; + $TeX .= '{\large '.$ADAT['diakok'][$i]['diakNev'].'}\\\\ '."\n"; +// $TeX .= '\vspace{2pt}'."\n\n"; +// $TeX .= '{\scriptsize '.$ADAT['osztaly']['osztalyJel'].' osztály\\\\'.$ADAT['intezmeny']['nev']."}\n\n"; + $TeX .= '{\scriptsize '.$ADAT['osztaly']['osztalyJel'].' osztály'."}\n\n"; + $TeX .= '\vspace{2pt}'."\n\n"; +// $TeX .= '{\small '.$ADAT['szemeszterAdat']['tanev'].'-'.(1+$ADAT['szemeszterAdat']['tanev']).'/'.$ADAT['szemeszterAdat']['szemeszter'].'}'."\n"; +// $TeX .= '\vspace{4pt}'."\n\n"; + + + // --!!--!!-- Magatartás és szorgalom jegyek, ID alapján kellenének, nem pedig targyNev alapján! + $__magatartas = ''; + for ($m=0; $m<count($ADAT['magatartasIdk']); $m++) { + $__mId = $ADAT['magatartasIdk'][$m]; + for ($m2=0; $m2<count($jegyek[$__mId]); $m2++) { + if ($__magatartas!='') $__magatartas .= ' '; + $__magatartas .= $KOVETELMENY['magatartás'][$jegyek[$__mId][$m2]['jegy']]['hivatalos']; + } + } + $__szorgalom = ''; + for ($m=0; $m<count($ADAT['szorgalomIdk']); $m++) { + $__szId = $ADAT['szorgalomIdk'][$m]; + for ($m2=0; $m2<count($jegyek[$__szId]); $m2++) { + if ($__szorgalom!='') $__szorgalom .= ' '; + $__szorgalom .= $KOVETELMENY['szorgalom'][$jegyek[$__szId][$m2]['jegy']]['hivatalos']; + } + } + + $TeX .= '\small'."\n"; + $TeX .= '\begin{tabular}{@{\ \ }l|r@{\ \ }}'."\n"; + $TeX .= '\toprule\hline magatartás & '; + $TeX .= '\emph{'.$__magatartas.'}\\\\ '."\n"; + $TeX .= '\hline szorgalom & '; + $TeX .= '\emph{'.$__szorgalom.'}\\\\ '."\n"; +// $TeX .= '\midrule\multicolumn{2}{c}{tantárgyak} \\\\'."\n"; +// $TeX .= '\midrule\hline'."\n"; + $TeX .= '\hline\hline'."\n"; +// $TeX .= '\hline\multicolumn{2}{c}{tantárgyak} \\\\'."\n"; +// $TeX .= '\hline'."\n"; + + for ($j = 0; $j < count($ADAT['targyak']); $j++) if (!in_array($ADAT['targyak'][$j]['targyId'], array_merge($ADAT['magatartasIdk'],$ADAT['szorgalomIdk']))) { + $__jegyek=''; + for ($k=0; $k<count($jegyek[$ADAT['targyak'][$j]['targyId']]); $k++) { + $jegyAdat = $jegyek[$ADAT['targyak'][$j]['targyId']][$k]; + if ($jegyAdat['jegy'] != '' && $jegyAdat['jegy'] != 0) { + if ($__jegyek!='') $__jegyek .= ' '; + $__jegyek .= $KOVETELMENY[$jegyAdat['jegyTipus']][$jegyAdat['jegy']]['hivatalos'].' '.$bizonyitvanyMegjegyzesek[$jegyAdat['megjegyzes']]; + } + } + if ($__jegyek!='') { + $TeX .= $ADAT['targyak'][$j]['targyNev'].' & \emph{'.$__jegyek.'} \\\\ '."\n"; + $TeX .= '\hline'."\n"; + } + + } + $TeX .= '\bottomrule'."\n"; + $TeX .= '\end{tabular}'."\n\n"; + + $TeX .= '\vspace{4pt}'."\n"; + $TeX .= '\begin{tabular}{@{\ \ }l|r|l|r@{\ \ }}'."\n"; + $TeX .= '\multicolumn{4}{c}{mulasztott órák száma} \\\\ '."\n"; + $TeX .= '\midrule'."\n"; + $TeX .= 'igazolt&{\sl '.$igazolt.'}&'; + if (!__ZARO_SZEMESZTER) $TeX .= 'igazolatlan\footnotemark[1]&'; + else $TeX .= 'igazolatlan&'; + $TeX .= '{\sl '.$igazolatlan.'}\\\\ '."\n"; + + $TeX .= '\bottomrule'."\n"; + $TeX .= '\end{tabular}'."\n"; + if (!__ZARO_SZEMESZTER) $TeX .= '\footnotetext[1]{Tartalmazhat még igazolható hiányzásokat is!}'."\n"; + + $TeX .= '\vspace{4pt}\begin{flushleft}'."\n"; + $TeX .= '{\scriptsize '.$ADAT['intezmeny']['cimHelyseg'].', '.$dtStr."}\n"; + $TeX .= '\end{flushleft}'."\n"; + + $TeX .= '\vspace{6pt}\slshape\scriptsize'."\n"; + $TeX .= '\begin{tabular}{ccc}'."\n"; + $TeX .= '\rule{3cm}{0.1pt}&&\rule{3cm}{0.1pt}\\\\ '."\n"; + $TeX .= 'osztályfőnök&&szülő\\\\ '."\n"; + $TeX .= '\end{tabular}'."\n"; + + $TeX .= '\end{center}'."\n"; + + $TeX .= '\newpage %%%%%%%%%%%%%%%%% új oldal %%%%%%%%%%%%%%%%%%%%'."\n\n"; + + } + + // dokumentum lezárása + $TeX .= '\end{document}'."\n"; + + pdfLaTeXA6($TeX, $file); + + return true; + + + } + +?> diff --git a/mayor-orig/www/include/modules/naplo/nyomtatas/diakAdatlap.php b/mayor-orig/www/include/modules/naplo/nyomtatas/diakAdatlap.php new file mode 100644 index 00000000..46adec96 --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/nyomtatas/diakAdatlap.php @@ -0,0 +1,22 @@ +<?php + + function nyomtatvanyKeszites($ADAT) { + + + // A sablonfile meghatározása + define('__TEMPLATE_DIR', _MAYOR_DIR.'/print/module-naplo/templates'); + if (file_exists(__TEMPLATE_DIR.'/'.__INTEZMENY.'/diakAdatlap.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/'.__INTEZMENY.'/diakAdatlap.tmpl'; + } elseif (file_exists(__TEMPLATE_DIR.'/default/diakAdatlap.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/default/diakAdatlap.tmpl'; + } else { + $_SESSION['alert'][] = 'message:file_not_found:'.__TEMPLATE_DIR.'/default/szovegesErtekeles.tmpl'; + return false; + } + + return template2file($templateFile, $ADAT); + + } + + +?> diff --git a/mayor-orig/www/include/modules/naplo/nyomtatas/diakTankorJelentkezes.php b/mayor-orig/www/include/modules/naplo/nyomtatas/diakTankorJelentkezes.php new file mode 100644 index 00000000..7eb0807e --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/nyomtatas/diakTankorJelentkezes.php @@ -0,0 +1,336 @@ +<?php + + function getValasztottTankorok($tanev, $szemeszter, $OSZTALYIDK) { + + if ($tanev=='') { + $tanevAdat = $_TANEV; + } else { + $tanevAdat = getTanevAdat($tanev); + } + + $tanevDbNev = tanevDbNev(__INTEZMENY, $tanev); + + $DT['tolDt'] = $tanevAdat['kezdesDt']; + $DT['igDt'] = $tanevAdat['zarasDt'] ; + + $tankorBlokkok = getTankorBlokkok($tanev); + $TID2B = $TID2BN = array(); + if (is_array($tankorBlokkok) && is_array($tankorBlokkok['idk'])) + foreach ($tankorBlokkok['idk'] as $blokkId => $TB) { + for ($j = 0; $j < count($TB); $j++) { + $TID2B[$TB[$j]][] = $blokkId; + $TID2BN[$TB[$j]][] = $tankorBlokkok['blokkNevek'][$blokkId]; + } + } + $v = array(); + if (is_array($OSZTALYIDK) && count($OSZTALYIDK) > 0) { + $W = " AND osztalyId IN (".implode(',', array_fill(0, count($OSZTALYIDK), '%u')).")"; + $v = $OSZTALYIDK; + } + $q = "SELECT DISTINCT tankorId, targyId, kovetelmeny, min, max, tanev, szemeszter, oraszam, tankorNev + FROM tankor LEFT JOIN tankorSzemeszter USING (tankorId) JOIN tankorOsztaly USING (tankorId) + WHERE tanev=%u and szemeszter=%u and tankor.felveheto =1".$W." ORDER BY tankorNev,tankor.tankorId"; + array_unshift($v, $tanev, $szemeszter); + $felvehetoTankorok = db_query($q,array('debug'=>false,'fv' => 'getValasztottTankorok', 'modul' => 'naplo_intezmeny', 'result' => 'indexed', 'values' => $v)); + for ($i = 0; $i < count($felvehetoTankorok); $i++) { + $_tankorId = $felvehetoTankorok[$i]['tankorId']; + if ($_tankorId != null) { + $fTankorok[$_tankorId] = $felvehetoTankorok[$i]; + $fTankorok[$_tankorId]['blokkIdk'] = $TID2B[$_tankorId]; + $fTankorok[$_tankorId]['blokkNevek'] = $TID2BN[$_tankorId]; + //$felvehetoTankorok[$_tankorid]['letszam'] = getTankorLetszam($felvehetoTankorok[$i]['tankorId'],$DT); + $fTankorok[$_tankorId]['tanarok'] = getTankorTanaraiByInterval($_tankorId, array('tolDt' => $DT['tolDt'], 'igDt' => $DT['igDt'], 'result' => 'nevsor')); + $FT[] = $_tankorId; + } + } + + if (is_array($FT) && count($FT) > 0) { + if (is_array($OSZTALYIDK) && count($OSZTALYIDK)>0) { + $W .= " AND osztalyDiak.beDt<='".$DT['tolDt']."' AND (osztalyDiak.kiDt IS NULL OR '".$DT['tolDt']."'<=osztalyDiak.kiDt)"; + $v = mayor_array_join($FT, $OSZTALYIDK); + } else { $v = $FT; } + $q = "SELECT tankorId,diakId FROM tankorDiak LEFT JOIN diak USING (diakId) LEFT JOIN osztalyDiak USING (diakId) + WHERE tankorId IN (".implode(',', array_fill(0, count($FT), '%u')).") $W + ORDER BY CONCAT_WS(' ',viseltCsaladinev,viseltUtonev)"; + $r = db_query($q,array('debug'=>false,'fv' => 'getValasztottTankorok', 'modul' => 'naplo_intezmeny', 'result' => 'indexed', 'values' => $v)); + for ($i = 0; $i < count($r); $i++) { + $felvett[$r[$i]['diakId']][] = $r[$i]['tankorId']; + } + } + + $ADAT['felveheto'] = $fTankorok; + $ADAT['felvett'] = $felvett; + return $ADAT; + } + + function texLevelGeneralasMasodikNyelvValasztas($ADAT) { + + $return = ''; + $return .= ' +\documentclass[8pt]{article} + +\usepackage[a5paper]{geometry} % A5-os méret +\usepackage[utf8]{inputenc} % UTF-8 kódolású forrás +\usepackage{t1enc} +\usepackage[magyar]{babel} % magyar elválasztási szabályok +\frenchspacing % a magyar tipográfiai szabályoknak megfelelő szóközök írásjelek után +\usepackage{booktabs} % táblázatok magasabb szintű formázása +\usepackage{fancyhdr} % Ritkítás +\pagestyle{fancy} +\def\mayor{% +\font\mayorfnt=cmsl4% +\font\Mayorfnt=cmsl6 +{\mayorfnt\lower0.5ex\hbox{\lower-0.5ex\hbox{Ma}\kern-0.3em\lower0.25ex\hbox{\Mayorfnt Y}\kern-0.2em\hbox{o}\lower0ex\hbox{R}}}} +\renewcommand{\footnotesize}{\fontsize{6pt}{8pt}\selectfont} +%\addtolength{\skip\footins}{2mm} +\addtolength{\textheight}{16mm} +\setlength{\footskip}{26pt} +\setlength{\headsep}{24pt} +\lhead{\tiny '.$ADAT['intezmeny']['nev'].'} +\rhead{\tiny 2. nyelv jelentkezés '.$ADAT['tanev'].'} +\cfoot{\tiny \copyright\mayor\ elektronikus napló - Nyomtatva: '.date('Y.m.d.').'} +\begin{document} +'; + $Tankorok = $tankorNev = $ADAT['valasztott']['felveheto']; + if (is_array($ADAT['valasztott']['felvett'])) foreach ($ADAT['valasztott']['felvett'] as $diakId => $tankorIds) { + $diakNev = $ADAT['diakAdat'][$diakId]['diakNev']; + $diakOsztaly = $ADAT['osztalyok'][ $ADAT['diakOsztaly'][$diakId][0] ]['osztalyJel']; + + $return .= ' +\begin{center} +{\large\bfseries J E L E N T K E Z É S}\\\\ +\small + +\vspace{12pt} + +A '.$ADAT['tanev'].'. szeptemberében induló\\\\ +második idegen nyelv képzésre + +\vspace{12pt} + +{\bfseries\normalsize '.$diakNev.'}\\\\ +'.$diakOsztaly.' osztály\\\\ +\end{center} + +\vspace{10pt} + +\footnotesize +A Városmajori Gimnázium Pedagógiai Programja szerint az iskola tanulói a 9-12. évfolyamon +(kötelező módon) két különböző idegen nyelvet tanulnak. Az első idegen nyelv az adott osztálynak, +ill. a nyelvi előkészítő osztály adott csoportjának már előzetesen meghatározott, azonban a második +nyelvet mindenki – az iskola lehetőségeinek figyelembevétele mellett – szabadon választhatja meg. +Amennyiben a választott idegen nyelvet elegendő számú diák jelölte meg, úgy lehetőség van a +nyelvi csoport indítására. (A csoportok évfolyamszintű bontásban kerülnek kialakításra.) A nyelvi +csoportok várható létszáma 12-18 fő közötti lesz. A 9. évfolyamtól a 12. évfolyam végéig ez a +tantárgy is ugyanolyan kötelező lesz, mint a többi tárgy. +nem lehet hiányozni róla és jegyet kell szerezni belőle.) + +A fentiek tudomásul vételével, az internetes jelentkezési felületen a '.$ADAT['tanev'].'/'.($ADAT['tanev']+1).' tanév +9. évfolyamos diákjai számára meghirdetett képzések közül általam választott 2. idegen nyelv: + +\vspace{16pt} + +\begin{tabular}{l|l|c|l} +Tankör neve & Blokk & Óraszám & Tanár \\\\ +\toprule +%%\hline +'; + + + + for ($i = 0; $i < count($tankorIds); $i++) { + $tankorId = $tankorIds[$i]; + $tankorNev = $Tankorok[$tankorId]['tankorNev']; + $oraszam = intval($Tankorok[$tankorId]['oraszam']); + if (is_array($Tankorok[$tankorId]['tanarok']) && count($Tankorok[$tankorId]['tanarok']) > 0) + $tanarNev = $Tankorok[$tankorId]['tanarok'][0]['tanarNev']; + else $tanarNev = '{\slshape n.a.}'; + if (is_array($Tankorok[$tankorId]['blokkNevek'])) $blokkNev = implode(', ', $Tankorok[$tankorId]['blokkNevek']); + else $blokkNev = ''; + $return .= '\vbox to 1.2em {}'.$tankorNev.' & '.$blokkNev.' & '.$oraszam.' & '.$tanarNev.' \\\\ +\hline'; + +//echo $tankorId.' '.$tankorNev.' '.$oraszam.':'.$blokkNev.'<br>'; +//echo $diakId.' '.$diakNev.' '.$diakOsztaly.'<hr>'; +//echo '<pre>'; +//var_dump($ADAT); die(); + } + + $return .= ' +%%\bottomrule +\end{tabular} + +\vspace{16pt} + + +Amennyiben a választott nyelv az angol vagy a német, úgy a megfelelő szó aláhúzásával kérjük +megadni, hogy az adott nyelvet kezdő vagy haladó szintről szeretné elkezdeni tanulni: + +\begin{center} +\vspace{10pt} + +{ +\bfseries +\begin{tabular}{ccc} +kezdő szintet választom&\hspace{1cm}\ &haladó szintről szeretném kezdeni\\\\ +\end{tabular} +} + +\vspace{10pt} + +(A haladó szintet választóknak egy szintfelmérő vizsgán kell részt venniük, ami alapján a nyelvi +csoportbesorolást elvégezzük.) + +\vspace{12pt} + +{\slshape Az aláírt jelentkezési lap osztályfőnöknél történő leadásának határideje:} {\bfseries '.$ADAT['leadasiHatarido'].'} + +\vspace{20pt} +\begin{flushleft} +{\scriptsize Budapest, '.$ADAT['tanev'].'. április} +\end{flushleft} +\vspace{20pt}\slshape\scriptsize +\begin{tabular}{ccc} +\rule{3.5cm}{0.1pt}&\hspace{3cm}\ &\rule{3.5cm}{0.1pt}\\\\ +tanuló&&szülő/gondviselő\\\\ +\end{tabular} + +\end{center} +\newpage %%%%% új oldal %%%%%'; + + + } + + $return .= ' +\end{document}'; + + + return $return; + } + +/* ---- eredeti ---- */ + + function texLevelGeneralas($ADAT) { + + $return = ''; + $return .= ' +\documentclass[8pt]{article} + +\usepackage[a5paper]{geometry} % A5-os méret +\usepackage[utf8]{inputenc} % UTF-8 kódolású forrás +\usepackage{t1enc} +\usepackage[magyar]{babel} % magyar elválasztási szabályok +\frenchspacing % a magyar tipográfiai szabályoknak megfelelő szóközök írásjelek után +\usepackage{booktabs} % táblázatok magasabb szintű formázása +\usepackage{fancyhdr} % Ritkítás +\pagestyle{fancy} +\def\mayor{% +\font\mayorfnt=cmsl4% +\font\Mayorfnt=cmsl6 +{\mayorfnt\lower0.5ex\hbox{\lower-0.5ex\hbox{Ma}\kern-0.3em\lower0.25ex\hbox{\Mayorfnt Y}\kern-0.2em\hbox{o}\lower0ex\hbox{R}}}} +\renewcommand{\footnotesize}{\fontsize{6pt}{8pt}\selectfont} +%\addtolength{\skip\footins}{2mm} +\addtolength{\textheight}{16mm} +\setlength{\footskip}{26pt} +\setlength{\headsep}{24pt} +\lhead{\tiny '.$ADAT['intezmeny']['nev'].'} +\rhead{\tiny Fakultációs jelentkezés '.$ADAT['tanev'].'} +\cfoot{\tiny \copyright\mayor\ elektronikus napló - Nyomtatva: '.date('Y.m.d.').'} +\begin{document} +'; + $Tankorok = $tankorNev = $ADAT['valasztott']['felveheto']; + if (is_array($ADAT['valasztott']['felvett'])) foreach ($ADAT['valasztott']['felvett'] as $diakId => $tankorIds) { + $diakNev = $ADAT['diakAdat'][$diakId]['diakNev']; + $diakOsztaly = $ADAT['osztalyok'][ $ADAT['diakOsztaly'][$diakId][0] ]['osztalyJel']; + + $return .= ' +\begin{center} +{\large\bfseries J E L E N T K E Z É S}\\\\ +\small + +\vspace{12pt} + +A '.$ADAT['tanev'].'. szeptemberében induló\\\\ +közép- és emeltszintű érettségire előkészítő képzésekre + +\vspace{12pt} + +{\bfseries\normalsize '.$diakNev.'}\\\\ +'.$diakOsztaly.' osztály\\\\ + +\vspace{12pt} + +A '.$ADAT['tanev'].'/'.($ADAT['tanev']+1).' tanév 11. évfolyamos diákjai számára meghirdetett képzések közül +–~az internetes jelentkezés adatai alapján~– +%–~az elektronikus adminisztrációs rendszer adatai alapján~– +az alábbi képzéseket választottam: + +\vspace{16pt} + +\begin{tabular}{l|l|c|l} +Tankör neve & Blokk & Óraszám & Tanár \\\\ +\toprule +\hline +'; + + + + for ($i = 0; $i < count($tankorIds); $i++) { + $tankorId = $tankorIds[$i]; + $tankorNev = $Tankorok[$tankorId]['tankorNev']; + $oraszam = intval($Tankorok[$tankorId]['oraszam']); + if (is_array($Tankorok[$tankorId]['tanarok']) && count($Tankorok[$tankorId]['tanarok']) > 0) + $tanarNev = $Tankorok[$tankorId]['tanarok'][0]['tanarNev']; + else $tanarNev = '{\slshape n.a.}'; + if (is_array($Tankorok[$tankorId]['blokkNevek'])) $blokkNev = implode(', ', $Tankorok[$tankorId]['blokkNevek']); + else $blokkNev = ''; + $return .= '\vbox to 1.2em {}'.$tankorNev.' & '.$blokkNev.' & '.$oraszam.' & '.$tanarNev.' \\\\ +\hline'; + +//echo $tankorId.' '.$tankorNev.' '.$oraszam.':'.$blokkNev.'<br>'; +//echo $diakId.' '.$diakNev.' '.$diakOsztaly.'<hr>'; +//echo '<pre>'; +//var_dump($ADAT); die(); + } + + $return .= ' +\bottomrule +\end{tabular} + +\vspace{16pt} + +Tudomásul veszem, hogy az általam választott, két tanévre meghirdetett tantárgyak a következő tanévben számomra kötelezőek lesznek, leadásukra csak a +11. osztályos követelmények teljesítése után lesz lehetőségem.\footnotemark[1] +\footnotetext[1]{Az iskola belső szabályai szerint a 12. évfolyamban is meg kell maradjon legalább heti 4 óra választott képzés, továbbá más tankör +utólagos felvétele létszámkeretekhez, illetve a sikeres különbözeti vizsga letételéhez köthető.} + +\vspace{12pt} + +{\slshape Az aláírt jelentkezési lap osztályfőnöknél történő leadásának határideje:} {\bfseries '.$ADAT['leadasiHatarido'].'} + +\vspace{20pt} +\begin{flushleft} +{\scriptsize Budapest, '.$ADAT['tanev'].'. június} +\end{flushleft} +\vspace{20pt}\slshape\scriptsize +\begin{tabular}{ccc} +\rule{3.5cm}{0.1pt}&\hspace{3cm}\ &\rule{3.5cm}{0.1pt}\\\\ +tanuló&&szülő/gondviselő\\\\ +\end{tabular} + +\end{center} +\newpage %%%%% új oldal %%%%%'; + + + } + + $return .= ' +\end{document}'; + + + return $return; + } + + + +?> diff --git a/mayor-orig/www/include/modules/naplo/nyomtatas/ertesito.php b/mayor-orig/www/include/modules/naplo/nyomtatas/ertesito.php new file mode 100644 index 00000000..5c1a5c97 --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/nyomtatas/ertesito.php @@ -0,0 +1,101 @@ +<?php + + function pdfErtesito($ADAT) { + + global $KOVETELMENY, $Honapok, $bizonyitvanyMegjegyzesek; + + // A sablonfile meghatározása + define('__TEMPLATE_DIR', _MAYOR_DIR.'/print/module-naplo/templates'); + $tmplFile = 'ertesito'; + if (file_exists(__TEMPLATE_DIR.'/'.__INTEZMENY.'/'.$tmplFile.'.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/'.__INTEZMENY.'/'.$tmplFile.'.tmpl'; + } elseif (file_exists(__TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl'; + } else { + $_SESSION['alert'][] = 'message:file_not_found:'.__TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl'; + return false; + } + + list($ev,$ho,$nap) = explode('-', $ADAT['szemeszterAdat']['zarasDt']); + + $DATA = array( + 'file' => $ADAT['file'], + 'base' => array('nyomtatasDt' => date('Y.m.d'), 'ev' => $ev, 'honap' => $ho, 'nap' => $nap, 'hoNev' => kisbetus($Honapok[$ho-1]), + 'tanevKezdesEv' => $ADAT['szemeszterAdat']['tanev'], 'tanevZarasEv' => ($ADAT['szemeszterAdat']['tanev']+1), + 'szemeszter' => $ADAT['szemeszterAdat']['szemeszter'], + 'intezmenyNev' => $ADAT['intezmeny']['nev'], 'intezmenyCimIrsz' => $ADAT['intezmeny']['cimIrsz'], + 'intezmenyCimHelyseg' => $ADAT['intezmeny']['cimHelyseg'], 'intezmenyCimKozteruletNev' => $ADAT['intezmeny']['cimKozteruletNev'], + 'intezmenyCimKozteruletJelleg' => $ADAT['intezmeny']['cimKozteruletJelleg'], 'intezmenyCimHazszam' => $ADAT['intezmeny']['cimHazszam'], + 'intezmenyTelefon' => $ADAT['intezmeny']['telefon'], 'intezmenyHonlap' => $ADAT['intezmeny']['honlap'], + 'intezmenyFax' => $ADAT['intezmeny']['fax'], 'intezmenyEmail' => $ADAT['intezmeny']['email'], + 'diak' => array(), 'osztaly' => $ADAT['osztaly']['osztalyJel'], + 'magatartas' => '', 'szorgalom' => '', + 'igazolt' => 0, 'igazolatlan' => 0, 'kesesIgazolatlan' => 0, 'kesesPercOsszeg' => 0, + 'gyakIgazolt' => 0, 'gyakIgazolatlan' => 0, 'gyakKesesIgazolatlan' => 0, 'gyakKesesPercOsszeg' => 0, + 'elmIgazolt' => 0, 'elmIgazolatlan' => 0, 'elmKesesIgazolatlan' => 0, 'elmKesesPercOsszeg' => 0, + 'mJel' => '', 'megjegyzes' => '', + ), + 'diak' => $ADAT['diakok'], + ); + for ($i = 0; $i < count($ADAT['diakIds']); $i++) if (isset($ADAT['jegyek'][ $ADAT['diakIds'][$i] ])) $DATA['base']['diak'][] = $ADAT['diakIds'][$i]; + for ($i = 0; $i < count ($ADAT['targyak']); $i++) { + $DATA['targy'][ $ADAT['targyak'][$i]['targyId'] ] = $ADAT['targyak'][$i]; + } + if (is_array($ADAT['jegyek']) && count($ADAT['jegyek']) > 0) foreach ($ADAT['jegyek'] as $diakId => $dJegyek) { + if (is_array($dJegyek) && count($dJegyek) > 0) { // Ha vanak egyáltalán jegyei... + foreach ($DATA['targy'] as $targyId => $tAdat) { // A helyes sorrend miatt kell ezen végigmenni + if (is_array($dJegyek[$targyId])) { // van az adott tárgyból jegye + $tJegyek = $dJegyek[$targyId]; + // Az utolsó jegyet írjuk csak ki + $jegy = $tJegyek[ count($tJegyek)-1 ]; + if (in_array($targyId, $ADAT['szorgalomIds'])) { + $DATA['diak'][$diakId]['szorgalom'] = $KOVETELMENY['szorgalom'][ $jegy['jegy'] ]['hivatalos']; + $DATA['diak'][$diakId]['szorgMegjJel'] = nagybetus($jegy['megjegyzes'][0]); + } elseif (in_array($targyId, $ADAT['magatartasIds'])) { + $DATA['diak'][$diakId]['magatartas'] = $KOVETELMENY['magatartás'][ $jegy['jegy'] ]['hivatalos']; + $DATA['diak'][$diakId]['magMegjJel'] = nagybetus($jegy['megjegyzes'][0]); + } else { + $DATA['diak'][$diakId]['targy'][$targyId] = $jegy; + $DATA['diak'][$diakId]['targy'][$targyId]['jTipus'] = $jegy['jegyTipus']; + $DATA['diak'][$diakId]['targy'][$targyId]['mJel'] = nagybetus($jegy['megjegyzes'][0]); + $DATA['diak'][$diakId]['targy'][$targyId]['hivatalos'] = $KOVETELMENY[ $jegy['jegyTipus'] ][ $jegy['jegy'] ]['hivatalos']; + $DATA['diak'][$diakId]['targy'][$targyId]['rovid'] = $KOVETELMENY[ $jegy['jegyTipus'] ][ $jegy['jegy'] ]['rovid']; + } + } + } + } + } +// foreach ($ADAT['hianyzas'] as $diakId => $dHianyzas) { - A kimaradó diákok bajt okoznak => az összes diákon végig kell menni! + foreach ($ADAT['diakIds'] as $key => $diakId) { + $dHianyzas = $ADAT['hianyzas'][$diakId]; + + $DATA['diak'][$diakId]['igazolt'] = $dHianyzas['igazolt']; + $DATA['diak'][$diakId]['kesesPercOsszeg'] = intval($dHianyzas['kesesPercOsszeg']); + $DATA['diak'][$diakId]['kesesIgazolatlan'] = floor($dHianyzas['kesesPercOsszeg']/45); + $DATA['diak'][$diakId]['osszesIgazolatlan'] = $dHianyzas['igazolatlan']; // Tartalmazza az összes hivatalos hiányzást! A késések percösszegéből adódóakat is!! + $DATA['diak'][$diakId]['igazolatlan'] = $dHianyzas['igazolatlan']-$DATA['diak'][$diakId]['kesesIgazolatlan']; + + $DATA['diak'][$diakId]['gyakIgazolt'] = intval($dHianyzas['gyakorlatIgazolt']); + $DATA['diak'][$diakId]['gyakIgazolatlan'] = intval($dHianyzas['gyakorlatIgazolatlan']); + $DATA['diak'][$diakId]['gyakKesesPercOsszeg'] = intval($dHianyzas['gyakorlatKesesPercOsszeg']); + $DATA['diak'][$diakId]['gyakKesesIgazolatlan'] = floor($dHianyzas['gyakorlatKesesPercOsszeg']/45); + $DATA['diak'][$diakId]['gyakOsszesIgazolatlan'] = $DATA['diak'][$diakId]['gyakIgazolatlan']+$DATA['diak'][$diakId]['gyakKesesIgazolatlan']; + + $DATA['diak'][$diakId]['elmIgazolt'] = intval($dHianyzas['elmeletIgazolt']); + $DATA['diak'][$diakId]['elmIgazolatlan'] = intval($dHianyzas['elmeletIgazolatlan']); + $DATA['diak'][$diakId]['elmKesesPercOsszeg'] = intval($dHianyzas['elmeletKesesPercOsszeg']); + $DATA['diak'][$diakId]['elmKesesIgazolatlan'] = floor($dHianyzas['elmeletKesesPercOsszeg']/45); + $DATA['diak'][$diakId]['elmOsszesIgazolatlan'] = $DATA['diak'][$diakId]['elmIgazolatlan']+$DATA['diak'][$diakId]['elmKesesIgazolatlan']; + + } +//echo '<pre>'; +//var_dump($DATA['base']['diak'], $ADAT['jegyek']); +//echo '</pre>'; +//die(); + + return template2file($templateFile, $DATA); + + + } + +?> diff --git a/mayor-orig/www/include/modules/naplo/nyomtatas/haladasinaplo.php b/mayor-orig/www/include/modules/naplo/nyomtatas/haladasinaplo.php new file mode 100644 index 00000000..1577a367 --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/nyomtatas/haladasinaplo.php @@ -0,0 +1,139 @@ +<?php +/* + Module: naplo +*/ + + function getTankorokNaploja() { + + $q = "SELECT tankorId,osztalyId FROM tankorNaplo"; + return db_query($q, array('fv' => 'tankorokNaploja', 'modul' => 'naplo', 'result' => 'keyvaluepair')); + + } + + function getNaploTankorei($osztalyId) { + + $q = "SELECT tankorId FROM tankorNaplo WHERE osztalyId=%u"; + return db_query($q, array('fv' => 'getNaploTankorei', 'modul' => 'naplo', 'result' => 'idonly', 'values' => array($osztalyId))); + + } + + function getNaploOrak(&$ADAT) { + + + $q = "SELECT * FROM ora WHERE tankorId IN (".implode(',', array_fill(0, count($ADAT['naploTankor']), '%u')).") + AND '%s'<=dt AND dt<='%s' ORDER BY dt,ora,tankorId"; + $v = mayor_array_join($ADAT['naploTankor'], array($ADAT['tanevAdat']['kezdesDt'], $ADAT['tanevAdat']['zarasDt'])); + $A = db_query($q, array('fv' => 'getNaploOrak', 'modul' => 'naplo', 'result' => 'indexed', 'values' => $v)); + $Oraszam = $oraIds = array(); + for ($i = 0; $i < count($A); $i++) { + + $ADAT['orak'][ $A[$i]['dt'] ][ $A[$i]['ora'] ][] = $A[$i]; + $oraIds[] = $A[$i]['oraId']; $oraId2dt[ $A[$i]['oraId'] ] = array('dt' => $A[$i]['dt'], 'ora' => $A[$i]['ora']); + if ( + !in_array($A[$i]['tipus'], array('elmarad','elmarad máskor')) // Lehet olyan elmaradó óra, amihez van beírva tananyag... + && ( + !is_array($ADAT['tananyag'][ $A[$i]['dt'] ][ $A[$i]['tankorId'] ]) + || !in_array($A[$i]['leiras'], $ADAT['tananyag'][ $A[$i]['dt'] ][ $A[$i]['tankorId'] ]) + ) + ) $ADAT['tananyag'][ $A[$i]['dt'] ][ $A[$i]['tankorId'] ][] = $A[$i]['leiras']; + + if (defined('__ORASZAMOT_NOVELO_TIPUSOK')) { + $oraszamNoveloTipus = explode(',', __ORASZAMOT_NOVELO_TIPUSOK); + } else { + $_SESSION['alert'][] = 'info:missing_constant:__ORASZAMOT_NOVELO_TIPUSOK'; + $oraszamNoveloTipus = array('normál', 'normál máskor', 'helyettesítés', 'összevonás'); + } + if (in_array($A[$i]['tipus'], $oraszamNoveloTipus)) { + $ADAT['oraszam'][ $A[$i]['dt'] ][ $A[$i]['tankorId'] ][] = (++$Oraszam[ $A[$i]['tankorId'] ]); + } else { + $ADAT['oraszam'][ $A[$i]['dt'] ][ $A[$i]['tankorId'] ][] = '---'; + } + if (in_array($A[$i]['tipus'], array('helyettesítés', 'összevonás', 'felügyelet'))) { + $ADAT['helyettesites'][ $A[$i]['dt'] ][] = $A[$i]; + } + + } + $tmp = getOralatogatasByOraIds($oraIds, $SET = array('result' => 'assoc'));; + if (is_array($tmp)) foreach ($tmp as $oraId => $olAdat) { + $olAdat['ora'] = $oraId2dt[$oraId]['ora']; + $ADAT['oralatogatas'][ $oraId2dt[$oraId]['dt'] ][] = $olAdat; + } + } + + function getNaploHianyzasok(&$ADAT) { + + global $HianyzasJeloles; + + $q = "SELECT * FROM hianyzas WHERE '%s'<dt AND dt<'%s' + AND diakId IN (".implode(',', array_fill(0, count($ADAT['diakIds']), '%u')).") AND tipus IN ('hiányzás','késés') + ORDER BY dt,ora,diakId"; + $v = mayor_array_join(array($ADAT['tanevAdat']['kezdesDt'], $ADAT['tanevAdat']['zarasDt']), $ADAT['diakIds']); + $A = db_query($q, array('fv' => 'getNaploHianyzas', 'modul' => 'naplo', 'result' => 'indexed', 'values' => $v)); + for ($i = 0; $i < count($A); $i++) { + $diakId = $A[$i]['diakId']; + $dt = $A[$i]['dt']; + $ora = $A[$i]['ora']; + if (!is_array($ADAT['hianyzas'][$dt][$diakId])) { + $nev = $ADAT['diakAdat'][$diakId]['diakNev']; + if (mb_strlen($nev, 'UTF-8') > 20) { + if (mb_substr($nev,20,1) == ' ') { + $nev = mb_substr($nev, 0, 20, 'UTF-8'); + } else { + $nev = mb_substr($nev, 0, 20, 'UTF-8'); + $pos = mb_strrpos($nev, ' ', 0, 'UTF-8'); + if ($pos !== false) $nev = mb_substr($nev, 0, $pos, 'UTF-8'); + else $nev .= '.'; + } + } + $ADAT['hianyzas'][$dt][$diakId] = array('ora' => array(), 'diakNev' => $nev); + } + $ADAT['hianyzas'][$dt][$diakId]['ora'][$ora] = $HianyzasJeloles[$A[$i]['tipus']]; + if ($A[$i]['tipus'] == 'hiányzás') { + $ADAT['hianyzas'][$dt][$diakId]['összesen']++; + $ADAT['hianyzas'][$dt][$diakId][ $A[$i]['statusz'] ]++; + } + } + + } + + function tordel($szavak) { + + $sorok = array(); // A tárgyNev sorokra bontása + $maxHossz = 8; // egy sorba írható karakterek maximális száma + + for ($j = 0; $j < count($szavak); $j++) { + $szo = str_replace('--', '~-', $szavak[$j]); + $tagok = explode('-', $szo); + $sor = str_replace('~', '-', $tagok[0]); + for ($k = 1; $k < count($tagok); $k++) { + $tag = str_replace('~', '-', $tagok[$k]); + $tl = mb_strlen($tag, 'UTF-8'); + $sl = mb_strlen($sor,'UTF-8'); + $ct = count($tagok); + if ( + ( + $sl+$tl < $maxHossz // általában max $maxHossz karaktert engedünk meg + && !( + $k == ($ct - 2) // az utolsó előtti tag + && ($sl > 3) // a sor már elég hosszú + && ($tl + mb_strlen($targok[$k+1], 'UTF-8')) <= $maxHossz // és befér az utolsó sorba --> akkor hagyjuk a következő sorba + ) + ) + || ( + $sl+$tl == $maxHossz + && ($k == ($ct-1) || substr($tag,-1) == '-')) // szóvégén, vagy kötőjeles szó kötőjelénél nincs újabb kötőjel + ) { + $sor .= $tag; + } else { + if ($k < $ct && substr($sor, -1) != '-') $sorok[] = $sor.'-'; // ha nem az utolsó és nincs még kötőjel (kötőjeles szavak) + else $sorok[] = $sor; + $sor = $tag; + } + } + $sorok[] = $sor; + } + return $sorok; + + } + +?> diff --git a/mayor-orig/www/include/modules/naplo/nyomtatas/helyettesitesinaplo.php b/mayor-orig/www/include/modules/naplo/nyomtatas/helyettesitesinaplo.php new file mode 100644 index 00000000..88949802 --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/nyomtatas/helyettesitesinaplo.php @@ -0,0 +1,148 @@ +<?php + + function naploGeneralas($filename, $tolDt, $igDt) { + + // A sablonfile meghatározása + define('__TEMPLATE_DIR', _MAYOR_DIR.'/print/module-naplo/templates'); + if (file_exists(__TEMPLATE_DIR.'/'.__INTEZMENY.'/helyettesitesinaplo.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/'.__INTEZMENY.'/helyettesitesinaplo.tmpl'; + } elseif (file_exists(__TEMPLATE_DIR.'/default/helyettesitesinaplo.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/default/helyettesitesinaplo.tmpl'; + } else { + $_SESSION['alert'][] = 'message:file_not_found:'.__TEMPLATE_DIR.'/default/helyettesitesinaplo.tmpl'; + return false; + } + + $Helyettesitesek = getHelyettesitettOra($tolDt, $igDt); + $Intezmeny = getIntezmenyByRovidnev(__INTEZMENY); + + $DATA = array( + 'file' => $filename, + 'base' => array( + 'intezmenyNev' => $Intezmeny['nev'], 'tanev' => __TANEV, 'nyDt' => date('Y.m.d'), + 'tolDt' => dateToString($tolDt), 'igDt' => dateToString($igDt), 'intezmenyHelyseg' => $Intezmeny['cimHelyseg'], + 'nyDatumStr' => dateToString(date('Y-m-d')) + ) + ); + for ($i = 0; $i < count($Helyettesitesek); $i++) { + $oraAdat = $Helyettesitesek[$i]; + if ($oraAdat['eredet'] == 'plusz') $oraAdat['tipus'] = $oraAdat['tipus'].' '.$oraAdat['eredet']; + unset($oraAdat['ki']); + unset($oraAdat['kit']); + $oraAdat['tankorNev'] = LaTeXSpecialChars($oraAdat['tankorNev']); + $DATA['hDt'][ $oraAdat['dt'] ]['helyettesites'][ $oraAdat['oraId'] ] = $oraAdat; + } + if (is_array($DATA['hDt']) && count($DATA['hDt'])>0) { + $DATA['base']['hDt'] = array_keys($DATA['hDt']); + return template2file($templateFile, $DATA); + } else { + $_SESSION['alert'][] = 'info:no_data'; + return false; + } + + + } + +/* + function naploGeneralasOld($filename, $tolDt, $igDt) { + + // Helyettesítések lekérdezése + $Helyettesitesek = getHelyettesitettOra($tolDt, $igDt); + $Intezmeny = getIntezmenyByRovidnev(__INTEZMENY); + + $TeX = '\documentclass[8pt]{article} +\usepackage[a4paper]{geometry} % A4-es méret +\usepackage[utf8]{inputenc} % UTF-8 kódolású forrás +\usepackage{t1enc} +\usepackage[magyar]{babel} % magyar elválasztási szabályok +\frenchspacing % a magyar tipográfiai szabályoknak megfelelő szóközök írásjelek után +\usepackage{booktabs} % táblázatok magasabb szintű formázása +\usepackage{longtable} % többoldalas táblázatok +\setlength\LTleft{-65pt} +\setlength\LTright{-65pt} +\usepackage{fancyhdr} % Fejléc és lábléc kezelés +\pagestyle{fancy} +\def\mayor{% +\font\mayorfnt=cmsl4% +\font\Mayorfnt=cmsl6 +{\mayorfnt\lower0.5ex\hbox{\lower-0.5ex\hbox{Ma}\kern-0.3em\lower0.25ex\hbox{\Mayorfnt Y}\kern-0.2em\hbox{o}\lower0ex\hbox{R}}}} +\renewcommand{\footnotesize}{\fontsize{6pt}{8pt}\selectfont} +%\addtolength{\skip\footins}{2mm} +%\addtolength{\textheight}{16mm} +%\addtolength{\textwidth}{30mm} +\setlength{\footskip}{26pt} +\setlength{\headsep}{24pt} +\lhead{\small '.$Intezmeny['nev'].'} +\rhead{\small Helyettesítési-napló '.__TANEV.'} +\lfoot{\scriptsize\copyright\mayor\ elektronikus napló - Nyomtatva: '.date('Y.m.d.').'} +\rfoot{\scriptsize\thepage . oldal} +\cfoot{} +\begin{document} +'; + + $TeX .= ' +\begin{center} +{\large\bfseries H E L Y E T T E S Í T É S E K}\\\\ + +\vspace{12pt} + +{\bfseries\normalsize '.dateToString($tolDt).' – '.dateToString($igDt).'}\\\\ + +\vspace{12pt} + +\scriptsize +\begin{longtable}{@{\extracolsep{\fill}}c|c|l|l|l|c} +Dátum & Óra & Ki & Kit & Tankör & Típus \\\\ +\toprule +\endfirsthead +Dátum & Óra & Ki & Kit & Tankör & Típus \\\\ +\toprule +\endhead +\bottomrule +\endfoot +\bottomrule +\endlastfoot +\hline +'; + + for ($i = 0; $i < count($Helyettesitesek); $i++) { + $oraAdat = $Helyettesitesek[$i]; + if ($oraAdat['eredet'] == 'plusz') $oraAdat['tipus'] = $oraAdat['tipus'].' '.$oraAdat['eredet']; + $TeX .= '\vbox to 1.2em {}'.$oraAdat['dt'].'&'.$oraAdat['ora'].'&'.$oraAdat['kiCn'].'&'.$oraAdat['kitCn'] + .'&'.$oraAdat['tankorNev'].'&'.$oraAdat['tipus'].'\\\\ '; + if ($Helyettesitesek[$i+1]['dt'] != $oraAdat['dt']) $TeX .= '\midrule'."\n"; + //else $TeX .= '\hline'; + + } + + $TeX .= ' +\end{longtable} + +\vspace{16pt} + +\begin{flushleft} +{\scriptsize '.$Intezmeny['cimHelyseg'].', '.dateToString(date('Y-m-d')).'} +\end{flushleft} +\vspace{20pt}\slshape\scriptsize +\begin{tabular}{ccc} +%\rule{3.5cm}{0.1pt} +\hspace{3.5cm}% +&\hspace{3cm}\ &\rule{3.5cm}{0.1pt}\\\\ +%tanuló +&&igazgató\\\\ +\end{tabular} + +\end{center} +'; + + + $TeX .= ' +\end{document}'; + + pdfLaTeX($TeX, $filename); // A longtable miatt többször kell fordítani + return pdfLaTeX($TeX, $filename); + + } +*/ + +?> diff --git a/mayor-orig/www/include/modules/naplo/nyomtatas/nyomtatas.php b/mayor-orig/www/include/modules/naplo/nyomtatas/nyomtatas.php new file mode 100644 index 00000000..b91c18e8 --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/nyomtatas/nyomtatas.php @@ -0,0 +1,89 @@ +<?php +/* + Module: naplo +*/ + + global $HIANYZASJELOLES, $targyTXT, $targyTXT2, $targyCsoportTXT; + +// function generatePDF($texFile) { +// +//echo 'tex -output-directory /tmp -fmt '._BASEDIR.'../install/module-naplo/tex/mayor '.$texFile; +// exec('tex -output-directory /tmp -fmt '._BASEDIR.'../install/module-naplo/tex/mayor '.$texFile); +// +// } + + $HIANYZASJELOLES = array( + 'hiányzás'=>'H', + 'késés'=>'k', + 'felszerelés hiány'=>'f', + 'egyenruha hiány'=>'e' + ); + + $targyCsoportTXT = array( + 'tanóra' => '', + 'fakultáció' => 'fakt.', + 'előfakultáció' => 'előfakt.', + 'szakkör' => 'szakk.' + ); + + $targyTXT = array( + 'angol nyelv' => 'Angol% nyelv', + 'biológia' => 'Bio-%lógia', + 'dráma' => 'Dráma', + 'ének-zene' => 'Ének%-zene', + 'fizika' => 'Fizika', + 'filozófia' => 'Filo-%zófia', + 'földrajz' => 'Föld-%rajz', + 'francia nyelv' => 'Francia% nyelv', + 'idegenvezetés' => 'Idegen-%vezetés', + 'japán nyelv' => 'Japán% nyelv', + 'kémia' => 'Kémia', + 'latin nyelv' => 'Latin% nyelv', + 'magyar' => 'Magyar', + 'magyar irodalom' => 'Magyar% irodalom', + 'magyar nyelv' => 'Magyar% nyelv', + 'matematika' => 'Mate-%matika', + 'művészettörténet' => 'Művészet-%történet', + 'német nyelv' => 'Német% nyelv', + 'olasz nyelv' => 'Olasz% nyelv', + 'rajz' => 'Rajz', + 'spanyol nyelv' => 'Spanyol% nyelv', + 'számítástechnika' => 'Számítás-%technika', + 'szociálpszichológia' => 'Szociál-%pszich.', + 'testnevelés' => 'Testne-%velés', + 'történelem' => 'Törté-%nelem', + 'zenetörténet' => 'Zene-%történet' + ); + + // Ezt az órarendnél, és az első lapon fogjuk használni :) + $targyTXT2 = array( + 'angol nyelv' => 'Angol', + 'biológia' => 'Biológia', + 'dráma' => 'Dráma', + 'ének-zene' => 'Ének', + 'fizika' => 'Fizika', + 'filozófia' => 'Filozófia', + 'földrajz' => 'Földrajz', + 'francia nyelv' => 'Francia', + 'idegenvezetés' => 'Idegenvezetés', + 'japán nyelv' => 'Japán', + 'kémia' => 'Kémia', + 'latin nyelv' => 'Latin', + 'magyar' => 'Magyar', + 'magyar irodalom' => 'Magyar irodalom', + 'magyar nyelv' => 'Magyar nyelv', + 'matematika' => 'Matematika', + 'művészettörténet' => 'Művészettörténet', + 'német nyelv' => 'Német', + 'olasz nyelv' => 'Olasz', + 'osztályfőnöki' => 'Osztályfőnöki', + 'rajz' => 'Rajz', + 'spanyol nyelv' => 'Spanyol', + 'számítástechnika' => 'Szám. tech.', + 'szociálpszichológia' => 'Szoc.pszich.', + 'testnevelés' => 'Testnevelés', + 'történelem' => 'Történelem', + 'zenetörténet' => 'Zenetörténet' + ); + +?> diff --git a/mayor-orig/www/include/modules/naplo/nyomtatas/osztalyozonaplo.php b/mayor-orig/www/include/modules/naplo/nyomtatas/osztalyozonaplo.php new file mode 100644 index 00000000..bdc16662 --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/nyomtatas/osztalyozonaplo.php @@ -0,0 +1,24 @@ +<?php + + function getDiakJegyek($ADAT) { + global $_TANEV; + $q = "SELECT diakId,targyId, dt, SUBSTRING(dt,6,2) AS ho, jegy, jegyTipus + FROM jegy LEFT JOIN ".__INTEZMENYDBNEV.".tankor USING (tankorId) + WHERE diakId IN (".implode(',', array_fill(0, count($ADAT['diakIds']), '%u')).") ORDER BY jegy.dt"; + $r = db_query($q, array('fv' => 'getDiakJegyek', 'modul' => 'naplo', 'result' => 'indexed', 'values' => $ADAT['diakIds'])); + $RET = array(); + for ($i = 0; $i < count($r); $i++) { + /* Melyik félév is lehetett? */ + $_felev = (in_date_interval($r[$i]['dt'],$_TANEV['szemeszter'][1]['kezdesDt'],$_TANEV['szemeszter'][1]['zarasDt'])) ? 1:2; + + if ( + $ADAT['diakAdat'][ $r[$i]['diakId'] ]['osztalyDiak'][0]['kiDt'] == '' + || strtotime($r[$i]['dt']) <= strtotime($ADAT['diakAdat'][ $r[$i]['diakId'] ]['osztalyDiak'][0]['kiDt']) + ) + $RET[ $r[$i]['diakId'] ][ $r[$i]['targyId'] ][ $r[$i]['ho'] ][] = $r[$i]; + $RET[ $r[$i]['diakId'] ][ 'felevenkent' ][ $r[$i]['targyId'] ][ $_felev ][] = $r[$i]; + } + return $RET; + } + +?> diff --git a/mayor-orig/www/include/modules/naplo/nyomtatas/sniEvVegiJegyzokonyv.php b/mayor-orig/www/include/modules/naplo/nyomtatas/sniEvVegiJegyzokonyv.php new file mode 100644 index 00000000..3ed53ae3 --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/nyomtatas/sniEvVegiJegyzokonyv.php @@ -0,0 +1,48 @@ +<?php + + function generateJegyzokonyv($ADAT) { + + global $Honapok, $_TANEV; + + // A sablonfile meghatározása + define('__TEMPLATE_DIR', _MAYOR_DIR.'/print/module-naplo/templates'); + $tmplFile = 'sniEvVegiJegyzokonyv'; + if (file_exists(__TEMPLATE_DIR.'/'.__INTEZMENY.'/'.$tmplFile.'.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/'.__INTEZMENY.'/'.$tmplFile.'.tmpl'; + } elseif (file_exists(__TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl'; + } else { + $_SESSION['alert'][] = 'message:file_not_found:'.__TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl'; + return false; + } + + list($kEv,$kHo,$kNap) = explode('-', $_TANEV['kezdesDt']); + list($zEv,$zHo,$zNap) = explode('-', $_TANEV['zarasDt']); + if (!is_array($ADAT['osztalyTanar'])) $ADAT['osztalyTanar'] = array(); + $DATA = array( + 'file' => $ADAT['file'], + 'base' => array('nyomtatasDt' => date('Y.m.d'), + 'tanev' => "$kEv-$zEv", +// 'ev' => $ev, 'honap' => $ho, 'nap' => $nap, 'hoNev' => kisbetus($Honapok[$ho-1]), + 'intezmenyNev' => $ADAT['intezmeny']['nev'], 'intezmenyCimIrsz' => $ADAT['intezmeny']['cimIrsz'], + 'intezmenyCimHelyseg' => $ADAT['intezmeny']['cimHelyseg'], 'intezmenyCimKozteruletNev' => $ADAT['intezmeny']['cimKozteruletNev'], + 'intezmenyCimKozteruletJelleg' => $ADAT['intezmeny']['cimKozteruletJelleg'], 'intezmenyCimHazszam' => $ADAT['intezmeny']['cimHazszam'], + 'intezmenyTelefon' => $ADAT['intezmeny']['telefon'], 'intezmenyHonlap' => $ADAT['intezmeny']['honlap'], + 'intezmenyFax' => $ADAT['intezmeny']['fax'], 'intezmenyEmail' => $ADAT['intezmeny']['email'], + 'diak' => $ADAT['sniDiakIds'], 'osztaly' => $ADAT['osztaly']['osztalyJel'], + 'tanarNev' => '', 'osztalyTanar' => array_keys($ADAT['osztalyTanar']), + ), + 'diak' => $ADAT['diakAdat'], + 'felelos' => $ADAT['tanarok'], + 'osztalyTanar' => $ADAT['osztalyTanar'], + ); + +//echo '<pre>'; +//var_dump($ADAT['diakAdat']); +//echo '</pre>'; + + return template2file($templateFile, $DATA); + + } + +?> diff --git a/mayor-orig/www/include/modules/naplo/nyomtatas/sniHaviJegyzokonyv.php b/mayor-orig/www/include/modules/naplo/nyomtatas/sniHaviJegyzokonyv.php new file mode 100644 index 00000000..f9f182d0 --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/nyomtatas/sniHaviJegyzokonyv.php @@ -0,0 +1,41 @@ +<?php + + function generateJegyzokonyv($ADAT) { + + global $Honapok; + + // A sablonfile meghatározása + define('__TEMPLATE_DIR', _MAYOR_DIR.'/print/module-naplo/templates'); + $tmplFile = 'sniHaviJegyzokonyv'; + if (file_exists(__TEMPLATE_DIR.'/'.__INTEZMENY.'/'.$tmplFile.'.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/'.__INTEZMENY.'/'.$tmplFile.'.tmpl'; + } elseif (file_exists(__TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl'; + } else { + $_SESSION['alert'][] = 'message:file_not_found:'.__TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl'; + return false; + } + + list($ev,$ho,$nap) = explode('-', $ADAT['dt']); + $DATA = array( + 'file' => $ADAT['file'], + 'base' => array('nyomtatasDt' => date('Y.m.d'), + 'ev' => $ev, 'honap' => $ho, 'nap' => $nap, 'hoNev' => kisbetus($Honapok[$ho-1]), + 'intezmenyNev' => $ADAT['intezmeny']['nev'], 'intezmenyCimIrsz' => $ADAT['intezmeny']['cimIrsz'], + 'intezmenyCimHelyseg' => $ADAT['intezmeny']['cimHelyseg'], 'intezmenyCimKozteruletNev' => $ADAT['intezmeny']['cimKozteruletNev'], + 'intezmenyCimKozteruletJelleg' => $ADAT['intezmeny']['cimKozteruletJelleg'], 'intezmenyCimHazszam' => $ADAT['intezmeny']['cimHazszam'], + 'intezmenyTelefon' => $ADAT['intezmeny']['telefon'], 'intezmenyHonlap' => $ADAT['intezmeny']['honlap'], + 'intezmenyFax' => $ADAT['intezmeny']['fax'], 'intezmenyEmail' => $ADAT['intezmeny']['email'], + 'diak' => $ADAT['sniDiakIds'], 'osztaly' => $ADAT['osztaly']['osztalyJel'], + 'tanarNev' => '', 'osztalyTanar' => array_keys($ADAT['osztalyTanar']), + ), + 'diak' => $ADAT['diakAdat'], + 'felelos' => $ADAT['tanarok'], + 'osztalyTanar' => $ADAT['osztalyTanar'], + ); + + return template2file($templateFile, $DATA); + + } + +?> diff --git a/mayor-orig/www/include/modules/naplo/nyomtatas/szovegesErtekeles.php b/mayor-orig/www/include/modules/naplo/nyomtatas/szovegesErtekeles.php new file mode 100644 index 00000000..1b095a4e --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/nyomtatas/szovegesErtekeles.php @@ -0,0 +1,131 @@ +<?php + + function nyomtatvanyKeszites($ADAT) { + + global $Honapok; + + // A sablonfile meghatározása + define('__TEMPLATE_DIR', _MAYOR_DIR.'/print/module-naplo/templates'); + if (isset($ADAT['szemeszterId'])) $tmplFile = 'szovegesZaroErtekeles'; + else $tmplFile = 'szovegesErtekeles'; + if (file_exists(__TEMPLATE_DIR.'/'.__INTEZMENY.'/'.$tmplFile.'.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/'.__INTEZMENY.'/'.$tmplFile.'.tmpl'; + } elseif (file_exists(__TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl'; + } else { + $_SESSION['alert'][] = 'message:file_not_found:'.__TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl'; + return false; + } + + $Intezmeny = getIntezmenyByRovidnev(__INTEZMENY); + $Ertekeles = getOsztalySzovegesErtekeles($ADAT); + $_Targyak = getTargyak(array('targySorrendNev' => $ADAT['targySorrendNev'],'osztalyId' => $ADAT['osztalyId'])); $Targyak = array(); + for ($i = 0; $i < count($_Targyak); $i++) { + $Targyak[ $_Targyak[$i]['targyId'] ] = $_Targyak[$i]; + $Targyak[ $_Targyak[$i]['targyId'] ]['targyNev'] = nagybetus(mb_substr($_Targyak[$i]['targyNev'],0,1)).mb_substr($_Targyak[$i]['targyNev'],1); + } + unset($_Targyak); + + list($ev,$ho,$nap) = explode('-', $ADAT['dt']); + list($evf,$oszt) = explode('.', $ADAT['osztalyAdat']['osztalyJel']); + + $DATA = array( + 'file' => $ADAT['file'], + 'base' => array('nyomtatasDt' => date('Y.m.d'), 'ev' => $ev, 'honap' => $ho, 'nap' => $nap, 'hoNev' => kisbetus($Honapok[$ho-1]), + 'intezmenyNev' => $Intezmeny['nev'], 'intezmenyOMKod' => $Intezmeny['OMKod'], 'intezmenyCimIrsz' => $Intezmeny['cimIrsz'], + 'intezmenyCimHelyseg' => $Intezmeny['cimHelyseg'], 'intezmenyCimKozteruletNev' => $Intezmeny['cimKozteruletNev'], + 'intezmenyCimKozteruletJelleg' => $Intezmeny['cimKozteruletJelleg'], 'intezmenyCimHazszam' => $Intezmeny['cimHazszam'], + 'intezmenyTelefon' => $Intezmeny['telefon'], 'intezmenyHonlap' => $Intezmeny['honlap'], + 'intezmenyFax' => $Intezmeny['fax'], 'intezmenyEmail' => $Intezmeny['email'], + 'tanevJele' => substr($ADAT['tanevAdat']['kezdesDt'],0,4).'/'.substr($ADAT['tanevAdat']['zarasDt'],0,4), + 'felevi' => ($ADAT['szemeszter']['szemeszter'] == 1), + 'diak' => $ADAT['diakIds'], 'osztaly' => "$evf. ".nagybetus($oszt), + ), + 'diak' => $ADAT['diakAdat'], + 'targy' => $Targyak, + 'szempont' => array(), + 'minosites' => array(), + ); + unset($Intezmeny); + + foreach ($ADAT['hianyzas'] as $diakId => $dHianyzas) { + $DATA['diak'][$diakId]['igazolt'] = $dHianyzas['igazolt']; + $DATA['diak'][$diakId]['igazolatlan'] = $dHianyzas['igazolatlan']; + $DATA['diak'][$diakId]['kesesPercOsszeg'] = intval($dHianyzas['kesesPercOsszeg']); + $DATA['diak'][$diakId]['kesesIgazolatlan'] = floor($dHianyzas['kesesPercOsszeg']/45); + $DATA['diak'][$diakId]['osszesIgazolatlan'] = $DATA['diak'][$diakId]['igazolatlan']+$DATA['diak'][$diakId]['kesesIgazolatlan']; + + $DATA['diak'][$diakId]['gyakIgazolt'] = intval($dHianyzas['gyakorlatIgazolt']); + $DATA['diak'][$diakId]['gyakIgazolatlan'] = intval($dHianyzas['gyakorlatIgazolatlan']); + $DATA['diak'][$diakId]['gyakKesesPercOsszeg'] = intval($dHianyzas['gyakorlatKesesPercOsszeg']); + $DATA['diak'][$diakId]['gyakKesesIgazolatlan'] = floor($dHianyzas['gyakorlatKesesPercOsszeg']/45); + $DATA['diak'][$diakId]['gyakOsszesIgazolatlan'] = $DATA['diak'][$diakId]['gyakIgazolatlan']+$DATA['diak'][$diakId]['gyakKesesIgazolatlan']; + + $DATA['diak'][$diakId]['elmIgazolt'] = intval($dHianyzas['elmeletIgazolt']); + $DATA['diak'][$diakId]['elmIgazolatlan'] = intval($dHianyzas['elmeletIgazolatlan']); + $DATA['diak'][$diakId]['elmKesesPercOsszeg'] = intval($dHianyzas['elmeletKesesPercOsszeg']); + $DATA['diak'][$diakId]['elmKesesIgazolatlan'] = floor($dHianyzas['elmeletKesesPercOsszeg']/45); + $DATA['diak'][$diakId]['elmOsszesIgazolatlan'] = $DATA['diak'][$diakId]['elmIgazolatlan']+$DATA['diak'][$diakId]['elmKesesIgazolatlan']; + } + + + + if (strtotime($ADAT['dt']) < strtotime($ADAT['tanevAdat']['szemeszter'][1]['zarasDt'])) $DATA['base']['negyedev'] = 'az első'; + else $DATA['base']['negyedev'] = 'a harmadik'; + foreach ($Ertekeles as $diakId => $E) { + $DATA['diak'][$diakId]['targy'] = array(); + + // !!! Tesztelendő !!! // +# foreach ($E as $targyId => $eAdat) { + foreach ($Targyak as $targyId => $tAdat) { + if (is_array($E[$targyId])) { + $eAdat = $E[$targyId]; + } else { + continue; + } + // !!! Tesztelendő !!! // + if ( + ( + (is_array($eAdat['szovegesErtekeles']['minosites']) && count($eAdat['szovegesErtekeles']['minosites']) > 0) + || (is_array($eAdat['szovegesErtekeles']['egyediMinosites']) && count($eAdat['szovegesErtekeles']['egyediMinosites']) > 0) + ) + && $ADAT['tolDt'] <= $eAdat['szovegesErtekeles']['dt'] + ) { + + $DATA['diak'][$diakId]['targy'][$targyId] = $eAdat; // Ezt lehetne finomítani +//if ($targyId == 2) { +//echo '<pre>';var_dump($ADAT['tolDt']); +//var_dump($eAdat['szovegesErtekeles']['dt']); +//} + + $DATA['diak'][$diakId]['targy'][$targyId]['szempont'] = $eAdat['szempontRendszer']['szempont']; + $targyMinositesId = $eAdat['szovegesErtekeles']['minosites'][0]; // Ha egy tárgy egy minősítés kell (az első) + foreach ($eAdat['szempontRendszer']['szempont'] as $szempontId => $szAdat) { + $DATA['diak'][$diakId]['targy'][$targyId]['szempont'][$szempontId]['egyediMinosites'] = + $eAdat['szovegesErtekeles']['egyediMinosites'][$szempontId]['egyediMinosites']; + $M = $eAdat['szempontRendszer']['minosites'][$szempontId]; + $elsoValasztottKovetkezik = true; + for ($i = 0; $i < count($M); $i++) { + $DATA['diak'][$diakId]['targy'][$targyId]['szempont'][$szempontId]['minosites'][ $M[$i]['minositesId'] ] + = array('minosites' => $M[$i]['minosites']); + if (in_array($M[$i]['minositesId'], $eAdat['szovegesErtekeles']['minosites'])) { + $DATA['diak'][$diakId]['targy'][$targyId]['szempont'][$szempontId]['minosites'][$M[$i]['minositesId']]['valasztott'] = true; + $DATA['diak'][$diakId]['targy'][$targyId]['szempont'][$szempontId]['minosites'][$M[$i]['minositesId']]['elsoValasztott'] = $elsoValasztottKovetkezik; + $DATA['diak'][$diakId]['targy'][$targyId]['szempont'][$szempontId]['minosites'][$M[$i]['minositesId']]['tobbedikValasztott'] = (!$elsoValasztottKovetkezik); + $elsoValasztottKovetkezik = false; + if ($M[$i]['minositesId'] == $targyMinositesId) { + $DATA['diak'][$diakId]['targy'][$targyId]['targyMinosites'] = $M[$i]['minosites']; // Ha tárgyanként egy minősítés kell (az első) + } + } + } + } + } + } + } + + return template2file($templateFile, $DATA); + + } + + +?> diff --git a/mayor-orig/www/include/modules/naplo/nyomtatas/tankorNaplohozRendeles.php b/mayor-orig/www/include/modules/naplo/nyomtatas/tankorNaplohozRendeles.php new file mode 100644 index 00000000..596cbcf9 --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/nyomtatas/tankorNaplohozRendeles.php @@ -0,0 +1,48 @@ +<?php + + function tankorNaploInit($torlessel = false) { + + // Az eddigi ejegyzések törlése - induljunk tiszta lappal! + if ($torlessel === true) { + $q = "DELETE FROM tankorNaplo"; + db_query($q, array('fv' => 'tankorNaploInit/delete', 'modul' => 'naplo')); + } + // Kérdezzük le, hogy melyik osztályhoz nincs még bejegyzés + $q = "SELECT osztalyId FROM osztalyNaplo LEFT JOIN tankorNaplo USING (osztalyId) GROUP BY osztalyId HAVING COUNT(tankorId) = 0"; + $osztalyIds = db_query($q, array('fv' => 'tankorNaploInit', 'modul' => 'naplo', 'result' => 'idonly')); + // Ezen osztályok hozzárendelése a csak hozzájuk tartozó tankörökhöz + if (is_array($osztalyIds) && count($osztalyIds) > 0) { + $q = "REPLACE INTO tankorNaplo (tankorId,osztalyId) + SELECT tankorId,osztalyId FROM ".__INTEZMENYDBNEV.".tankorOsztaly + WHERE osztalyId IN (".implode(',', $osztalyIds).") + AND tankorId IN ( + SELECT DISTINCT tankorId FROM ".__INTEZMENYDBNEV.".tankorSzemeszter WHERE tanev=".__TANEV." + ) GROUP BY tankorId HAVING COUNT(*)=1"; + return db_query($q, array('fv' => 'tankorNaploInit', 'modul' => 'naplo')); + } else { return true; } + + } + + function tankorNaplohozRendeles($osztalyId, $T) { + $v = $V = array(); + for ($i = 0; $i < count($T); $i++) { + list($tankorId, $naplo) = explode('/',$T[$i]); + array_push($v, $tankorId, $naplo); + $V[] = "(%u, %u)"; + } + if (count($V) > 0) { + $q = "DELETE FROM tankorNaplo WHERE osztalyId=%u"; + db_query($q, array('fv' => 'tankorNaplohozRendeles', 'modul' => 'naplo', 'values' => array($osztalyId))); + $q = "REPLACE INTO tankorNaplo (tankorId,osztalyId) VALUES ".implode(',', $V); + db_query($q, array('fv' => 'tankorNaplohozRendeles', 'modul' => 'naplo', 'values' => $v)); + } + } + + function getTankorokNaploja() { + + $q = "SELECT tankorId,osztalyId FROM tankorNaplo"; + return db_query($q, array('fv' => 'tankorokNaploja', 'modul' => 'naplo', 'result' => 'keyvaluepair')); + + } + +?> diff --git a/mayor-orig/www/include/modules/naplo/nyomtatas/tex.php b/mayor-orig/www/include/modules/naplo/nyomtatas/tex.php new file mode 100644 index 00000000..ab2ca3c0 --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/nyomtatas/tex.php @@ -0,0 +1,1285 @@ +<?php + +function putTeXLapdobas() { + return '\vfil\eject%'."\n"; +} + +function putTeXUresLap() { + return '\eject\null\vfill\eject%'."\n"; +} + + +function putTeXDefineFootline($osztalyJel = '', $ofo = '') { + + global $_TANEV; + + $tanev = $_TANEV['tanev'].'/'.substr($_TANEV['zarasDt'],0,4); + + if ($osztalyJel != '') { + list($evf,$oJel) = explode('.', $osztalyJel); + $osztalySTR = TeXSpecialChars($evf.'/'.($evf>8?nagybetus($oJel):kisbetus($oJel))); + $return = '\footline{\ifodd\pageno\rightfootline\else\leftfootline\fi} +\def\rightfootline{\hbox to \hsize{\copyright\ \mayor\ elektronikus napló -- Nyomtatva: '.date('Y.m.d').'.\hfil\folio}} +\def\leftfootline{\hbox to \hsize{\folio\hfil '.$tanev.' -- '.$osztalySTR.', of.: '.$ofo.'}}'; + + } else { + + $return = '\footline{\ifodd\pageno\rightfootline\else\leftfootline\fi} +\def\rightfootline{\hbox to \hsize{\copyright\ \mayor\ elektronikus napló '.$tanev.'\hfil\folio}} +\def\leftfootline{\hbox to \hsize{\folio\hfil Nyomtatva: '.date('Y.m.d.').'}}'; + + } + return $return; + +} + +function endTeXDocument() { + + return '\bye'; + +} + +// ======= Haladási ====== // + + $HianyzasJeloles = array( + 'hiányzás'=>'H', + 'késés'=>'k', + 'felszerelés hiány'=>'f', + 'egyenruha hiány' => 'e' + ); + + function datumString($tanitasiNapOk) { + global $Honapok; + $tolStamp = strtotime($tanitasiNapOk[0]); + $igStamp = strtotime($tanitasiNapOk[2]); + $tolString = date('Y',$tolStamp) . '. '.$Honapok[intval(date('m',$tolStamp))-1].' '.date('j',$tolStamp).'.'; + $igString = date('Y',$igStamp) . '. '.$Honapok[intval(date('m',$igStamp))-1].' '.date('j',$igStamp).'.'; + $datumString = $tolString.' -- '.$igString; + + return kisbetus($datumString); + } + + + $hoRomai = array('01'=>'I', + '02' => 'II', + '03' => 'III', + '04' => 'IV', + '05' => 'V', + '06' => 'VI', + '07' => 'VII', + '08' => 'VIII', + '09' => 'IX', + '10' => 'X', + '11' => 'XI', + '12' => 'XII'); + + function datumRomai($dt) { + global $hoRomai; + list($ev,$honap,$nap) = explode('-',date('Y-m-j',strtotime($dt))); + return strtr($honap,$hoRomai).'.'.$nap.'.'; + } + + + function putTeXOrarendParameterek($dt, $ADAT) { + + $return = ''; + for($ora = 1; $ora <= 8; $ora++) { + $oraAdat = $ADAT['orak'][$dt][$ora]; + $return .= '{'; + $targyNev = array(); + if (is_array($oraAdat)) for ($i = 0; $i < count($oraAdat); $i++) { + $targyId = $ADAT['tankorTargy'][ $oraAdat[$i]['tankorId'] ]; + if ($ADAT['targyAdat'][$targyId]['targyRovidNev'] != '') { + $tNev = $ADAT['targyAdat'][$targyId]['targyRovidNev']; + } else { + $tNev = $ADAT['targyAdat'][$targyId]['targyNev']; + } + if (!in_array($tNev, $targyNev)) $targyNev[] = $tNev; + } + $return .= TeXSpecialChars(implode(', ', $targyNev)); + $return .= '}'; + } + + return $return; + + } + + function putTeXHaladasiOldalbeallitas() { + + /* ELválasztás: szám < pretolerance(100) --> sikeres + elválasztás + sikertelenség !< tolerance(200) + */ + return '%% Oldalbeállítás %% +\\pretolerance=100 +\\tolerance=10000 +\\magnification=960 +\\vsize=26cm +\\hsize=18.5cm +\\hoffset=-1cm%% később generáljuk +\\voffset=-1cm +\\normal +'; + } + + function putTeXFirstFootline($ADAT) { + return '\\footline{Nyomtatta: '.TeXSpecialChars($ADAT['intezmenyAdat']['nev']).' (OM: '.$ADAT['intezmenyAdat']['OMKod'].')'.' -- Látta: VMG 2003. X. 10. Sz. T.\\hfill}%'."\n"; + } + + function putTeXElolap($ADAT) { + + global $targyTXT; + + $return = ''; + $dbSor = 0; + for ($i=0; $i < count($ADAT['tankorokNaploElejere']); $i++) + $dbSor += count($ADAT['tankorokNaploElejere'][$i]['tanarok']); + $maxSorPerLap = 36; + + + $return .= putTeXFirstFootline($ADAT); + + $sor = 0; $i = 0; // hanyadik tankörnél tartunk + while ($sor < $dbSor) { + + $lapSorai = 0; + $return .= '\\vbox to \\vsize{%%%%%%%%%%%%%%%%%%%%%%%'; + + if ($sor == 0) $return .=' +\\vskip60pt% +\\centerline{\\hbox to 120pt{\\hrulefill}}% +\\centerline{az intézmény hosszú bélyegzője}% +'; + $return .='\\hbox{\\vbox to 30pt{\\vfil\\hbox{\\centerline{'.TeXSpecialChars(nagybetus($ADAT['osztalyAdat']['osztalyJel'])) +.' osztályának HALADÁSI NAPLÓJA a '.$ADAT['tanev'].'/'.substr($ADAT['tanevAdat']['zarasDt'],0,4).' tanévre}}\\vfil}}% +\\hbox{\\centerline{Osztályfőnök: '.$ADAT['osztalyAdat']['osztalyfonokNev'].'}}% +%% egész lapos vbox vége... %%%%%%%%%%%%%%%%%%%%%%% +%%ez a regi volt:\\vbox to 60pt{}% +\\vfill% +\\centerline{% +\\vbox{\\hsize=300pt\\baselineskip=15pt'; + + while ( + $i < count($ADAT['tankorokNaploElejere']) + && ($lapSorai + count($ADAT['tankorokNaploElejere'][$i]['tanarok'])) <= $maxSorPerLap + ) { + $targyId = $ADAT['tankorokNaploElejere'][$i]['targyId']; + $targyNev = $ADAT['targyAdat'][$targyId]['targyNev']; + + $_tankorId = $ADAT['tankorokNaploElejere'][$i]['tankorId']; + $_osztalyId = $ADAT['tankorNaploja'][$_tankorId]; + if ($_osztalyId!==null) { + $naplojaban = TeXSpecialChars($ADAT['osztalyJele'][$_osztalyId]); + $return .= '\\hbox to 300pt{'.TeXSpecialChars($targyNev); + if ($ADAT['targyAdat'][$targyId]['db'] > 1) { + $return .= ' '.(++$ADAT['targyAdat'][$targyId]['kiirtDb']).'. csoport'; + } + if ($ADAT['osztalyId'] != $_osztalyId) $return .=' ('.$naplojaban.' naplójában)'; + $return .= '\\quad\\dotfill\\quad '; + // Egy tanár - az első - félrevezető, pontatlan + // $return .= $ADAT['tankorokNaploElejere'][$i]['tanarok'][0]['tanarNev']; //.' tanár'; + // ----------- + // több tanár egy sorban, vesszővel elválasztva - esetleg nem fér ki a sorban + //$return .= implode(', ', $ADAT['tankorokNaploElejere'][$i]['tanarok']); //.' tanár'; + // ----------- + // több tanár külön-külön sorban - esetleg nem fér ki az oldalra ($maxLap?) + $return .= implode("}%\n\\hbox to 300pt{\\hfill\\quad ", $ADAT['tankorokNaploElejere'][$i]['tanarok']); //.' tanár'; + $return .= '}%'."\n"; + } + $sor += count($ADAT['tankorokNaploElejere'][$i]['tanarok']); + $lapSorai += count($ADAT['tankorokNaploElejere'][$i]['tanarok']); + $i++; + } + $return .= '}% +}% eocenterline% +\\vfill% +}'; + + if ($sor < $dbSor) $return .= putTexUresLap(); + } // while + + return $return; + + } + + + + + + + function putTeXTanuloTankorMatriX($ADAT) { + + define('__MAXTANKOR',30); + + $return .= '\\vbox to 20pt{\\vfil\\centerline{\\nagy A tanulók tankörbeosztása\\normal}\\vfil}%'."\n"; + +$k = 0; // Hányadik tankörtől indulunk a táblázat elején +$pageDb = 0; +while ($k < count($ADAT['tankorok'])) { + + $return .= '\\centerline{\\vbox{%'."\n"; + + $return .= '\\halign{\\vrule width2pt\\strut\\kicsi\\space\\noindent#\\hfill\\vrule width2pt'; + for($i = $k; ($i < count($ADAT['tankorok'])) && ($i-$k<__MAXTANKOR); $i++) $return.= '&\\hbox to 10pt{\\hfil\kicsi#\\hfil}\\vrule'; + $return .= ' width2pt\\cr%'."\n"; + $return .='\\noalign{\\hrule height2pt}%'."\n"; + + $return .= '\\vbox to 180pt{\\hsize=100pt\\parindent=0pt\\vfill\\centerline{Tankör mátrix}\\vfill}'; + for($i = $k; ($i < count($ADAT['tankorok'])) && ($i-$k<__MAXTANKOR); $i++) { + $return .= '&'; + $return .= '\\setbox\\rotbox=\\hbox to 180pt{'. TeXSpecialChars( $ADAT['tankorok'][$i]['tankorNev'] ) .'\\hfill}'; + $return .= '\\rotl\\rotbox'; + } + $return .= '\\cr%'."\n"; + $return .='\\noalign{\\hrule height2pt}%'."\n"; + + for ($j = 0; $j < count($ADAT['nevsor']); $j++){ + $diakNev = $ADAT['nevsor'][$j]['diakNev']; + $diakId = $ADAT['nevsor'][$j]['diakId']; + $return .= $diakNev; + for($i = $k; ($i < count($ADAT['tankorok'])) && ($i-$k<__MAXTANKOR); $i++) { + $return.= '&'; + if (in_array($ADAT['tankorok'][$i]['tankorId'], $ADAT['diakTankor'][$diakId])) $return.= 'x'; + } + $return .='\\cr%'."\n"; + $return .='\\noalign{\\hrule}%'."\n"; + } + $return .='\\noalign{\\hrule height1.6pt}%'."\n"; + $return .= '}}}\\hoffset=-0.8cm'; + + $k = $i; +$pageDb++; +} +if (($pageDb % 2) == 0) $return .= putTeXUresLap(); // hogy ne csússzon el a páros/páratlan... + return $return; + } + + function putTeXTanuloTankorMatriXOrig($ADAT) { + + $return .= '\\vbox to 20pt{\\vfil\\centerline{\\nagy A tanulók tankörbeosztása\\normal}\\vfil}% +\\centerline{\\vbox{%'."\n"; + + $return .= '\\halign{\\vrule width2pt\\strut\\kicsi\\space\\noindent#\\hfill\\vrule width2pt'; + for($i = 0; $i < count($ADAT['tankorok']); $i++) $return.= '&\\hbox to 10pt{\\hfil\kicsi#\\hfil}\\vrule'; + $return .= ' width2pt\\cr%'."\n"; + $return .='\\noalign{\\hrule height2pt}%'."\n"; + + $return .= '\\vbox to 180pt{\\hsize=100pt\\parindent=0pt\\vfill\\centerline{Tankör mátrix}\\vfill}'; + for($i = 0; $i < count($ADAT['tankorok']); $i++) { + $return .= '&'; + $return .= '\\setbox\\rotbox=\\hbox to 180pt{'. TeXSpecialChars( $ADAT['tankorok'][$i]['tankorNev'] ) .'\\hfill}'; + $return .= '\\rotl\\rotbox'; + } + $return .= '\\cr%'."\n"; + $return .='\\noalign{\\hrule height2pt}%'."\n"; + + for ($j = 0; $j < count($ADAT['nevsor']); $j++){ + $diakNev = $ADAT['nevsor'][$j]['diakNev']; + $diakId = $ADAT['nevsor'][$j]['diakId']; + $return .= $diakNev; + for($i = 0; $i < count($ADAT['tankorok']); $i++) { + $return.= '&'; + if (in_array($ADAT['tankorok'][$i]['tankorId'], $ADAT['diakTankor'][$diakId])) $return.= 'x'; + } + $return .='\\cr%'."\n"; + $return .='\\noalign{\\hrule}%'."\n"; + } + $return .='\\noalign{\\hrule height1.6pt}%'."\n"; + $return .= '}}}\\hoffset=-0.8cm'; + + + return $return; + } + + + + + function putTeXAllandoFejlec() { + +$return='% ======================================================================= % +% "Órán" táblázat (8.9pt?) 25.6pt +\\def\\oran{\\vbox{\\halign{% +\\vbox to 30pt{\\hsize=8.9pt\\vfill\\noindent\\hfil ##\\hfil\\vfill}\\vrule% +&\\vbox to 30pt{\\hsize=8.9pt\\vfill\\noindent\\hfil ##\\hfil\\vfill}\\vrule% +&\\vbox to 30pt{\\hsize=8.9pt\\vfill\\noindent\\hfil ##\\hfil\\vfill}\\vrule% +&\\vbox to 30pt{\\hsize=8.9pt\\vfill\\noindent\\hfil ##\\hfil\\vfill}\\vrule% +&\\vbox to 30pt{\\hsize=8.9pt\\vfill\\noindent\\hfil ##\\hfil\\vfill}\\vrule% +&\\vbox to 30pt{\\hsize=8.9pt\\vfill\\noindent\\hfil ##\\hfil\\vfill}\\vrule% +&\\vbox to 30pt{\\hsize=8.9pt\\vfill\\noindent\\hfil ##\\hfil\\vfill}\\vrule% +&\\vbox to 30pt{\\hsize=8.9pt\\vfill\\noindent\\hfil ##\\hfil\\vfill}\\vrule width0.8pt% +\\cr% +% ----------------------------------------------------------------------- % +1&2&3&4&5&6&7&8\\cr% +\\noalign{\\hrule}% +\\multispan8{\\vbox to 32pt{\\hsize=74pt\\vfill\\noindent\\hfil órán\\hfil\\vfill}\\vrule width 0.8pt}\\cr% +}}}% +% ======================================================================= % +% "Mulasztott" órák táblázat +\\def\\mulasztott{% +\\setbox\\rotbox=\\hbox to 40pt{\\vbox to 14pt{\\vfil\\noindent\\space összesen\\vfil}}% +\\vbox {% +\\halign{##&\\hfil##\\hfil\\cr% +\\oran&\\hbox{\\rotl\\rotbox}\\cr% +\\noalign{\\hrule}% +\\multispan2{\\strut\\hfil mulasztott\\hfil}\\cr% +}}} +% ======================================================================= % +\\def\\igazolas{% +\\setbox\\rotboxA=\\hbox to 60pt{\\vbox to 14pt{\\vfil\\noindent\\space igazolt\\vfil}}% +\\setbox\\rotboxB=\\hbox to 60pt{\\vbox to 14pt{\\vfil\\noindent\\space igazolatlan\\vfil}}% +\\lower3pt\\vbox{% +\\halign{##&##\\cr% +\\multispan2{\\strut\\space\\hfil Ebből\\hfil\\space}\\cr% +\\noalign{\\hrule}% +\\rotl\\rotboxA\\vrule&\\rotl\\rotboxB\\cr}}} +% ======================================================================= % +\\def\\hianyzasFejlec{% +\\vbox{% +\\halign{\\kozepen{2.4cm}{2.3cm}{##}\\vrule&##\\vrule width0.8pt&##\\cr% +\\vbox{\\centerline{A hiányzó} \\centerline{tanuló neve}}% +&\\mulasztott&\\igazolas\\cr}}} +'; return $return; + + } + /* ------------------------------------------------------------------------------------- */ + + /* ----- Haladási napló baloldalán a napi órarend. ------------------------------------- */ + function putTeXOrarendMacro() { + +$return='% ====ORERDND MAKRÓ========================================================= % +\\def\\orarend#1#2#3#4#5#6#7#8{% +\\lower-3pt\\vbox to 160pt{% +\\baselineskip=10pt% +\\hsize=82.5pt% +\\hbox{\\vbox to 20.4pt{\\vfil\\leftskip=3pt\\noindent\\raggedright#1\\vfil}}% +\\hrule width82.5pt% +\\hbox{\\vbox to 20.4pt{\\vfil\\leftskip=3pt\\noindent\\raggedright#2\\vfil}}% +\\hrule width82.5pt% +\\hbox{\\vbox to 20.4pt{\\vfil\\leftskip=3pt\\noindent\\raggedright#3\\vfil}}% +\\hrule width82.5pt% +\\hbox{\\vbox to 20.4pt{\\vfil\\leftskip=3pt\\noindent\\raggedright#4\\vfil}}% +\\hrule width82.5pt% +\\hbox{\\vbox to 20.4pt{\\vfil\\leftskip=3pt\\noindent\\raggedright#5\\vfil}}% +\\hrule width82.5pt% +\\hbox{\\vbox to 20.4pt{\\vfil\\leftskip=3pt\\noindent\\raggedright#6\\vfil}}% +\\hrule width82.5pt% +\\hbox{\\vbox to 20.4pt{\\vfil\\leftskip=3pt\\noindent\\raggedright#7\\vfil}}% +\\hrule width82.5pt% +\\hbox{\\vbox to 20.4pt{\\vfil\\leftskip=3pt\\noindent\\raggedright#8\\vfil}}% +}}% +'; return $return; + + } // end of putTeXOrarendMacro() + /* ------------------------------------------------------------------------------------- */ + + /* ------------------------------------------------------------------------------------- */ + function putTeXHianyzasAlTablazat($napiHianyzas) { + +$return='% ======================================================================= % +\\lower3pt\\vbox to 166pt{\\noindent{\\halign{% +\\lower-2pt\\hbox to 2.4cm{\\hfil\\kicsi#\\hfill}\\vrule% +&\\vbox to 10pt{\\hsize=8.9pt\\vfill\\noindent\\hfil #\\hfil\\vfill}\\vrule% +&\\vbox to 10pt{\\hsize=8.9pt\\vfill\\noindent\\hfil #\\hfil\\vfill}\\vrule% +&\\vbox to 10pt{\\hsize=8.9pt\\vfill\\noindent\\hfil #\\hfil\\vfill}\\vrule% +&\\vbox to 10pt{\\hsize=8.9pt\\vfill\\noindent\\hfil #\\hfil\\vfill}\\vrule% +&\\vbox to 10pt{\\hsize=8.9pt\\vfill\\noindent\\hfil #\\hfil\\vfill}\\vrule% +&\\vbox to 10pt{\\hsize=8.9pt\\vfill\\noindent\\hfil #\\hfil\\vfill}\\vrule% +&\\vbox to 10pt{\\hsize=8.9pt\\vfill\\noindent\\hfil #\\hfil\\vfill}\\vrule% +&\\vbox to 10pt{\\hsize=8.9pt\\vfill\\noindent\\hfil #\\hfil\\vfill}\\vrule width0.8pt% +&\\lower-2pt\\hbox to 14pt{\\hfil#\\hfil}\\vrule width0.8pt% +&\\lower-2pt\\hbox to 14pt{\\hfil#\\hfil}\\vrule% +&\\lower-2pt\\hbox to 14pt{\\hfil#\\hfil}\\cr% +% ----------------------------------------- +'; + $i = 0; // Kiírt hiányzók száma (max 16) + if (is_array($napiHianyzas)) { + foreach ($napiHianyzas as $diakId => $H) { + if ($i > 15) break; + if ($i != 0) $return .= '\\noalign{\\hrule}'; + $return .= $H['diakNev']; + for ($j = 1; $j <= 8; $j++) $return .= '&'.$H['ora'][$j]; + $return .= '&'.$H['összesen'].'&'.$H['igazolt'].'&'.$H['igazolatlan'].'\\cr'; + $i++; + } + } + // Üres sorok + for ($i;$i<=15; $i++) { + if ($i != 0) $return .= '\\noalign{\\hrule}'; + $return .= '&&&&&&&&&&&\\cr'; + } +$return .= '}}}% +'; return $return; + + + } // end of putTeXHianyzasAlTablazat($DATA) + /* ------------------------------------------------------------------------------------- */ + + function putTargyFejlec($lap, $ADAT) { + + $return = ''; + + if ($lap > 0) { + + $return='%% PAGE '.($lap+1).' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'."\n"; + if ($lap == 2) + $return .= '\\vbox to 20pt{\\vfil\\centerline{\\nagy'.datumString($ADAT['tanitasiNapOk']).'\\normal}\\vfil}'."\n"; + else + $return .= '\\vbox to 20pt{\\vfil\\centerline{\\nagy '.date('W',strtotime($ADAT['tanitasiNapOk'][1])).'. hét\\normal}\\vfil}'."\n"; + $return .= '\\halign{% +\\vrule width2pt% +\\hbox to 34pt{#}\\vrule width0.8pt&% +\\hbox to 34pt{#}\\vrule width0.8pt&% +\\hbox to 34pt{#}\\vrule width0.8pt&% +\\hbox to 34pt{#}\\vrule width0.8pt&% +\\hbox to 34pt{#}\\vrule width0.8pt&% +\\hbox to 34pt{#}\\vrule width0.8pt&% +\\hbox to 34pt{#}\\vrule width0.8pt&% +\\hbox to 34pt{#}\\vrule width0.8pt&% +\\hbox to 34pt{#}\\vrule width0.8pt&% +\\hbox to 34pt{#}\\vrule width0.8pt&% +\\hbox to 34pt{#}\\vrule width0.8pt&% +\\hbox to 34pt{#}\\vrule width0.8pt&% +\\hbox to 34pt{#}\\vrule width0.8pt&% +\\hbox to 34pt{#}\\vrule width0.8pt&% +\\hbox to 34pt{#}\\vrule width2pt\\cr% +% -------------------------------------------------------------- % +\\noalign{\\hrule height2pt}% +%%+++ EZ ITT NEM JÓ ÁM MINDIG Hö... \\vbox to 75pt{}% +'; + + } +$foglalt = 0; +for ($i = 0; $i < count($ADAT['targyFejlec'][$lap]); $i++) { + $targyId = $ADAT['targyFejlec'][$lap][$i]['targyId']; + $db = $ADAT['targyFejlec'][$lap][$i]['db']; + $sorsz = $ADAT['targyFejlec'][$lap][$i]['sorsz']; + $tAdat = $ADAT['targyAdat'][$targyId]; + + $tordeltTargyNev = $ADAT['targyAdat'][$targyId]['tordeltTargyNev']; + $targyNev = $ADAT['targyAdat'][$targyId]['targyNev']; + + $foglalt += $db; + + if ($db == 1) { + if (count($tordeltTargyNev) < 5) $return .= '\\vbox to 72pt{}\\tetejen{34pt}{41.2pt}{\\vbox{'; + else $return .= '\\vbox to 72pt{}\\kozepen{34pt}{72pt}{\\vbox{'; + for ($j = 0; $j < count($tordeltTargyNev); $j++) $return .= '\\centerline{'.TeXSpecialChars($tordeltTargyNev[$j]).'}'; + $return .= '}}&'; + } else { + $return .= '\\multispan{'.$db.'}{'; + if ($lap != 0 && $foglalt == $db) $return .= '\\vrule width2pt\\vbox to 72pt{}'; + //$return .= '\\ennes{'.TeXSpecialChars($targyNev).'}{'.$db.'}'; + $return .= '\\emmes{'.TeXSpecialChars($targyNev).'}{'.$db.'}{'.$sorsz.'}'; + if ($foglalt == $ADAT['helyek'][$lap]) $return .= '\\vrule width2pt}&'; + else $return .= '\\vrule width0.8pt}&'; + } +} +for ($i = $foglalt; $i < $ADAT['helyek'][$lap]; $i++) { + $return .= '\\tetejen{34pt}{41.2pt}{\\vbox{'; + $return .= '\\centerline{}'; + $return .= '}}&'; +} +return substr($return,0,-1)."\\cr%\n"; + + } + +/* -------------------------------------- */ + + function putOraleiras($lap, $ADAT) { + $tol = 0; + for ($tLap = 0; $tLap < $lap; $tLap++) $tol += $ADAT['helyek'][$tLap]; + $ig = $tol + $ADAT['helyek'][$lap]; + +$return = ''; +$return .= '% ------------------------------------------------------------- % +\\noalign{\\hrule height2pt}% +'; + + for ($i = 0; $i < 3; $i++) { + + $dt = $ADAT['tanitasiNapOk'][$i]; + if (count($ADAT['orak'][$dt]) > 0) { + for ($j = $tol; $j < $ig; $j++) { + $tankorId = $ADAT['oszlopTankore'][$j]; + if (is_array($ADAT['oraszam'][$dt][$tankorId])) { + if (is_numeric($ADAT['oraszam'][$dt][$tankorId][0])) + $oraszam1 = $ADAT['oraszam'][$dt][$tankorId][0].'.'; + else $oraszam1='---'; + if (is_numeric($ADAT['oraszam'][$dt][$tankorId][ (count($ADAT['oraszam'][$dt][$tankorId])-1) ])) + $oraszam2 = $ADAT['oraszam'][$dt][$tankorId][ (count($ADAT['oraszam'][$dt][$tankorId])-1) ].'.'; + else $oraszam2='---'; + } else { $oraszam1 = $oraszam2 = ''; } + if (is_array($ADAT['tananyag'][$dt][$tankorId])) $leiras = TeXSpecialChars(implode(' ', $ADAT['tananyag'][$dt][$tankorId])); + else $leiras = ''; + // $dupla_orszam_formátum = \\vbox{\\hsize=20pt\\centerline{134.} \\centerline{135.}} + if ($oraszam1 == $oraszam2) { + $return .= '\\tananyag{'.$leiras.'}{'.$oraszam1.'}'; + } else { + $return .= '\\tananyag{'.$leiras.'}{\\vbox{\\hsize=20pt\\centerline{'.$oraszam1.'} \\centerline{'.$oraszam2.'}}}'; + } + if ($j < $ig - 1) $return .= '&'; + } + $return .= '\\cr\\noalign{\\hrule height2pt}'; + } else { + $return .= '\\multispan{15}{\\vrule width2pt\\vbox to 166pt{}\\hfil\\vrule width2pt}\\cr\\noalign{\\hrule height2pt}'; + } + } + + + $return .= '% ------------------------------------------------------------- % +\\multispan{15}{% +\\vrule width2pt\\megjegyzes{Látogatások és egyéb}{észrevételek}% +'; + return $return; + } + + /* ------------------------------------------------------------------------------------- */ + function putTeXPage1($ADAT) { + global $aHetNapjai; +$return=' +%%%%%%%%%%%%%%%%%%% PAGE 1 %%%%%%%%%%%%%%%%%%%%%%% +\\vbox to 20pt{\\vfil\\centerline{\\nagy'.datumString($ADAT['tanitasiNapOk']).'\\normal}\\vfil} +\\halign{% +\\hbox to 22pt{\\hfil#}% +&\\vrule width0.8pt\\hbox to 82.5pt{#}\\vrule width0.8pt% +&#\\vrule width0.8pt&\\hbox to 34pt{#}\\vrule width0.8pt% +&\\hbox to 34pt{#}\\vrule width0.8pt% +&\\hbox to 34pt{#}\\vrule width0.8pt% +&\\hbox to 34pt{#}\\vrule width0.8pt% +&\\hbox to 34pt{#}\\vrule width0.8pt% +&\\hbox to 34pt{#}\\vrule width2pt\\cr% +% -------------------------------------------------------------- % +\\noalign{\\hrule height2pt}% +%xetex%\\vrule width2pt\\tanitasi&\\kozepen{82.5pt}{70pt}{Tant\\\'argy}&\\hianyzasFejlec&% +\\vrule width2pt\\tanitasi&\\kozepen{82.5pt}{70pt}{Tantárgy}&\\hianyzasFejlec&% +% -------------------------------------------------------------- % +'; + + +$lap = 0; +$return .= putTargyFejlec($lap, $ADAT); + +$return .= '% ------------------------------------------------------------- % +\\noalign{\\hrule height2pt}% +'; + + for ($i = 0; $i <= 2; $i++) { + // ---------------------------------- Mintanap... + $dt = $ADAT['tanitasiNapOk'][$i]; + if (count($ADAT['orak'][$dt]) > 0) { + $return .= '\\datum{'. + getTanitasiNapSzama($dt, $ADAT['munkatervId']).'}{'. + datumRomai($dt).'}{'. + $aHetNapjai[(date('w',strtotime($dt))-1)].'}&\\orarend'. + putTeXOrarendParameterek($dt, $ADAT).'&'. + putTeXHianyzasAlTablazat($ADAT['hianyzas'][$dt]); + for ($j = 0; $j < 6; $j++) { + $tankorId = $ADAT['oszlopTankore'][$j]; + if (is_array($ADAT['oraszam'][$dt][$tankorId])) { + if (is_numeric($ADAT['oraszam'][$dt][$tankorId][0])) + $oraszam1 = $ADAT['oraszam'][$dt][$tankorId][0].'.'; + else $oraszam1 = '---'; + if (is_numeric($ADAT['oraszam'][$dt][$tankorId][ (count($ADAT['oraszam'][$dt][$tankorId])-1) ])) + $oraszam2 = $ADAT['oraszam'][$dt][$tankorId][ (count($ADAT['oraszam'][$dt][$tankorId])-1) ].'.'; + else $oraszam2='---'; + } else { $oraszam1 = $oraszam2 = ''; } + if (is_array($ADAT['tananyag'][$dt][$tankorId])) $leiras = TeXSpecialChars(implode(' ', $ADAT['tananyag'][$dt][$tankorId])); + else $leiras = ''; + // $dupla_orszam_formátum = \\vbox{\\hsize=20pt\\centerline{134.} \\centerline{135.}} + if ($oraszam1 == $oraszam2) { + $return .= '&\\tananyag{'.$leiras.'}{'.$oraszam1.'}'; + } else { + $return .= '&\\tananyag{'.$leiras.'}{\\vbox{\\hsize=20pt\\centerline{'.$oraszam1.'} \\centerline{'.$oraszam2.'}}}'; + } + } + $return .= '\\cr\\noalign{\\hrule height2pt}'; + } elseif ($ADAT['napok'][$dt][0]['tipus'] == 'speciális tanítási nap') { + $return .= '\\datum{'. + getTanitasiNapSzama($dt, $ADAT['munkatervId']).'}{'. + datumRomai($dt).'}{'. + $aHetNapjai[(date('w',strtotime($dt))-1)] + .'}&\\multispan{8}{\\vrule width0.8pt\\vbox to 160pt{' + .'\\line{}\\centerline{'.$ADAT['napok'][$dt][0]['tipus'].'}\\line{}\\centerline{'.$ADAT['napok'][$dt][0]['megjegyzes'].'}' + .'}\\hfil\\vrule width2pt}\\cr\\noalign{\\hrule height2pt}'; + } else { + $return .= '\\datum{}{'.datumRomai($ADAT['tanitasiNapOk'][$i] ).'}{'.$aHetNapjai[(date('w',strtotime($ADAT['tanitasiNapOk'][$i]))-1)] + .'}&\\multispan{8}{\\vrule width0.8pt\\vbox to 160pt{}\\hfil\\vrule width2pt}\\cr\\noalign{\\hrule height2pt}'; + } + } + + // ---------------------------------- Mintanap VÉGE +$return .= '% ------------------------------------------------------------- % +\\vrule width2pt\\megjegyzes{Mulasztott órák és}{későn jövés igazolása}% +&\\multispan8{'; + + for ($i = 0; $i <= 2; $i++) { + + // Kell ez? + //$return .= '\\vrule width0.8pt\\quad\\vbox to 85pt{\\hsize=140pt\\hbox{'. $aHetNapjai[(date('w',strtotime($ADAT['tanitasiNapOk'][$i]))-1)] .':}'; + //$return .= '\\vfill}\\hfil'; + + $dt = $ADAT['tanitasiNapOk'][$i]; + $pluszHIANYZASOK = array(); + + $return .= '\\vrule width0.8pt'; + $return .= '\\vbox to 85pt{\\baselineskip=10pt\\leftskip=3pt\\hsize=159pt'; + $return .= '\\par{\\noindent '.$aHetNapjai[(date('w',strtotime($ADAT['tanitasiNapOk'][$i]))-1)].':}'; + + if (count($ADAT['hianyzas'][$dt]) > 16) { + $napiHianyzas = $ADAT['hianyzas'][$dt]; + $h = 0; + foreach ($napiHianyzas as $diakId => $H) { + if ($h > 15) { + $return .= '\\par{'.$H['diakNev']; + if (intval($H['összesen']) != 0) { + $return .= ' '.intval($H['összesen']) + .'('.intval($H['igazolt']).')'; + // Hiányzó hiányzásai, késései felsorolás + for ($k = 1; $k <= 8; $k++) { // itt k=8 a maximális óraszám! + if (isset($H['ora'][$k])) { + $pluszHIANYZASOK[ $H['ora'][$k] ] .= $k.'.'; + } + } + while (list($key,$val) = each($pluszHIANYZASOK)) { + $return .= ' '.$key.':'.$val; + } + } else { // nem hiányzott, csak késett + $return .= ' késett:'; + for ($k = 1; $k <= 8; $k++) { // itt k=8 a maximális óraszám! + if (isset($H['ora'][$k])) { + $return .= ' '.$k.'.'; + } + } + } + $return .= '}'; // ez a vége a \par{} - nak. + } + $h++; + } + } + $return .= '\\vfill}'; + } + + +$return .='\\vrule width2pt% +}\\cr% multispan +\\noalign{\\hrule height2pt}% +}\\hoffset=-1cm +'; + return $return; + + + } // end of putTeXElsoOldal() + /* ------------------------------------------------------------------------------------- */ + + /* ------------------------------------------------------------------------------------- */ + function putTeXPage2($ADAT) { + + global $aHetNapjai; + + $lap = 1; + $return .= putTargyFejlec($lap, $ADAT); + $return .= putOraleiras($lap, $ADAT); + + for ($i = 0; $i < 3; $i++) { + $dt = $ADAT['tanitasiNapOk'][$i]; + $return .= '\\vrule width0.8pt'; + $return .= '\\vbox to 85pt{\\leftskip=3pt\\hsize=120pt'; + $return .= '\\par{\\noindent '.$aHetNapjai[(date('w',strtotime($dt))-1)].':}\\parindent=15pt'; + for ($k = 0; $k < count($ADAT['helyettesites'][$dt]); $k++) + $return .= '\\item{'.$ADAT['helyettesites'][$dt][$k]['ora'].'.}{' + .$ADAT['helyettesites'][$dt][$k]['tipus'].' \\dolt ' + .$ADAT['tanarok'][ $ADAT['helyettesites'][$dt][$k]['ki'] ]['tanarNev'].'}'; + for ($k = 0; $k < count($ADAT['oralatogatas'][$dt]); $k++) { + $return .= '\\item{'.$ADAT['oralatogatas'][$dt][$k]['ora'].'.}{' + .'óralátogatás \\dolt '; + $tNev = array(); + foreach ($ADAT['oralatogatas'][$dt][$k]['tanarIds'] as $tanarId) + $tNev[] = $ADAT['tanarok'][$tanarId]['tanarNev']; + $return .= implode(', ', $tNev).'}'; + } + $return .= '\\vfill}'; + } + + $return .= '\\vrule width0.8pt'; + $return .= '\\vbox to 85pt{\\parindent=0pt\\leftskip=3pt\\hsize=120pt'; + $return .= '\\par{Osztályfőnöki óra:}'; + $oraszam1 = $oraszam2 = ''; + for ($i = 0; $i < 3; $i++) { + $dt = $ADAT['tanitasiNapOk'][$i]; + if ($ADAT['tananyag'][$dt][ $ADAT['ofoTankorId'] ] != '') $return .= '\\par{'. + TeXSpecialChars(implode('; ', array_unique($ADAT['tananyag'][$dt][ $ADAT['ofoTankorId'] ]))).'}'; + + // óraszám + if (is_array($ADAT['oraszam'][$dt][ $ADAT['ofoTankorId'] ])) { + if (is_numeric($ADAT['oraszam'][$dt][ $ADAT['ofoTankorId'] ][0])) + $oraszam1 = $ADAT['oraszam'][$dt][ $ADAT['ofoTankorId'] ][0].'.'; + else $oraszam1 = '---'; + if (is_numeric($ADAT['oraszam'][$dt][ $ADAT['ofoTankorId'] ][ (count($ADAT['oraszam'][$dt][ $ADAT['ofoTankorId'] ])-1) ])) + $oraszam2 = $ADAT['oraszam'][$dt][ $ADAT['ofoTankorId'] ][ (count($ADAT['oraszam'][$dt][ $ADAT['ofoTankorId'] ])-1) ].'.'; + else $oraszam2 = '---'; + } + + } + $return .= '\\vfill'; + $return .= '\\hbox to 138pt{\\hfill\\lower3pt\\oraszam{'; + + if ($oraszam1 == $oraszam2) $return .= $oraszam1; + else $return .= '\\vbox{\\hsize=20pt\\centerline{'.$oraszam1.'} \\centerline{'.$oraszam2.'}}'; + + $return .= '}}'; + $return .= '}%end of vbox'."\n"; + $return .= '\\vrule width2pt'; + + $return .= '}\\cr% multispan +\\noalign{\\hrule height2pt}% +}\\hoffset=-0.4cm'; + + return $return; + } + /* ------------------------------------------------------------------------------------- */ + + + /* ------------------------------------------------------------------------------------- */ + function putTeXPage34($ADAT) { + + global $aHetNapjai; + + $lap = 2; + $return .= putTargyFejlec($lap, $ADAT); + $return .= putOraleiras($lap, $ADAT); + for ($i = 0; $i < 3; $i++) { + $dt = $ADAT['tanitasiNapOk'][$i]; + $return .= '\\vrule width0.8pt'; + $return .= '\\vbox to 85pt{\\leftskip=3pt\\hsize=120pt'; + $return .= '\\par{\\noindent '.$aHetNapjai[(date('w',strtotime($dt))-1)].':}\\parindent=15pt'; + $return .= '\\vfill}'; + } + + $return .= '\\vrule width0.8pt'; + $return .= '\\vbox to 85pt{\\parindent=0pt\\leftskip=3pt\\hsize=120pt'; + $return .= '\\vfill'; + $return .= '\\hbox to 138pt{\\hfill'; + $return .= '}'; + $return .= '}%end of vbox'."\n"; + $return .= '\\vrule width2pt'; + + $return .= '}\\cr% multispan +\\noalign{\\hrule height2pt}% +}\\hoffset=-1cm'; + + $return .= putTeXLapdobas(); + + $lap = 3; + $return .= putTargyFejlec($lap, $ADAT); + $return .= putOraleiras($lap, $ADAT); + for ($i = 0; $i < 3; $i++) { + $dt = $ADAT['tanitasiNapOk'][$i]; + $return .= '\\vrule width0.8pt'; + $return .= '\\vbox to 85pt{\\leftskip=3pt\\hsize=120pt'; + $return .= '\\par{\\noindent '.$aHetNapjai[(date('w',strtotime($dt))-1)].':}\\parindent=15pt'; + $return .= '\\vfill}'; + } + + $return .= '\\vrule width0.8pt'; + $return .= '\\vbox to 85pt{\\parindent=0pt\\leftskip=3pt\\hsize=120pt'; + $return .= '\\vfill'; + $return .= '\\hbox to 138pt{\\hfill'; + $return .= '}'; + $return .= '}%end of vbox'."\n"; + $return .= '\\vrule width2pt'; + + $return .= '}\\cr% multispan +\\noalign{\\hrule height2pt}% +}\\hoffset=-0.4cm'; + + + return $return; + } + /* ------------------------------------------------------------------------------------- */ + + + + + + +// ======= Osztályozó ======= // + +function putTeXOsztalyozoOldalbeallitas() { + + return '%% Oldalbeállítás %% +\pretolerance=10000 +\tolerance=100 +\magnification=960 +\vsize=27.7cm +\hsize=19cm +\voffset=-1.54cm +\hoffset=-1.27cm'; + +} + +function putTeXOsztalyozoFejlec($sorszam, $diakNev, $szuletesiHely, $szuletesiIdo) { + + global $Honapok; + + $ev = substr($szuletesiIdo, 0, 4); + $ho = kisbetus($Honapok[ intval(substr($szuletesiIdo, 5, 2))-1 ]); + $nap = intval(substr($szuletesiIdo, -2)); + if ($szuletesiHely == '') $szuletesiHely = 'n.a.'; + + $return .= '%--Osztályozó napló egy diák fejléce--'.$sorszam.' +\ifodd\pageno\hoffset=-0,64cm\else\hoffset=-1,64cm\fi +\hbox to\hsize{\nagy '.$sorszam.'. '.$diakNev.'\hfil '.$szuletesiHely.", $ev. $ho $nap.".'}% +\medskip'; + + return $return; + +} + +function putTeXOsztalyozoAllandoFejlec($Ho) { + global $hoRomai; + foreach ($Ho as $k=>$v) { + $rHo[$k] = $hoRomai[$v].'.'; + } + + + $return .= ' +\halign{'; + + if (__OSZTALYOZONAPLO_JEGYEK_FELEVENTE === true) { + $return .= '\hbox to 194.8pt{\strut\hfil #\hfil}\vrule width1.2pt&'; + $return .= '\hbox to 194.8pt{\strut\hfil #\hfil}\vrule width1.2pt\cr%'."\n"; + $return .= 'I.&II.\cr%'."\n"; + $txt = 'félévben nyert érdemjegy'; + $return .= '\noalign{\hrule height0.8pt}% +\multispan{2}{\vbox to 25pt{\hsize=390.8pt\vfil\hbox to 390.8pt{\hfil '.$txt.'\hfil}\vfil}\vrule width1.2pt}\cr% +}% +'; + } else { + for($i=1; $i<=10; $i++) $return .= '\hbox to 38pt{\strut\hfil #\hfil}\vrule width1.2pt&'; + $return = substr($return,0,-1); + $return .= '\cr% 10 darab'."\n"; + // Ha a hónapokat írnánk ki? + $return .= implode('&', $rHo).'\cr%'."\n"; + $txt = 'hónapban nyert érdemjegy'; +// Vagy tíz "témakört".. + //1.&2.&3.&4.&5.&6.&7.&8.&9.&10.\cr% +// $return .= '1.'; +// for ($i = 1; $i < count($Ho); $i++) $return .= '&'.($i+1).'.'; +// $return .= '\cr%'."\n"; +// $txt = 'szakaszból (témakörből) nyert érdemjegy'; + $return .= '\noalign{\hrule height0.8pt}% +\multispan{10}{\vbox to 25pt{\hsize=390.8pt\vfil\hbox to 390.8pt{\hfil '.$txt.'\hfil}\vfil}\vrule width1.2pt}\cr% +}% +'; + + } + + return $return; + +} + +function putTeXOsztalyozoJegyek($diakId, $ADAT, $start = 0) { +/* + $sorszam - hány tárgy sora lett kiírva + $i - Hányadik tárgynál tartunk az osztály tárgyai között + $start - honnan indul a $i +*/ + global $KOVETELMENY, $_TANEV; + +// csúnya megoldás, de nincs jobb ötletem: + global $iGlobal; + + $return .= '%%%% Osztalyozó jegyek %%%%'."\n"; +// $return .= '\halign{\vrule width2pt\hbox to 85pt{\vbox to 30pt{\hsize=85pt\vfil{\ #}\vfil}\hfill}\vrule width1.2pt&'; // Tárgy oszlopa - balra igazított + $return .= '\halign{\vrule width2pt\hbox to 85pt{\hglue 5pt plus 0pt minus 0pt \vbox to 30pt{\hsize=80pt\vfil{#}\vfil}\hfill}\vrule width1.2pt&'; // Tárgy oszlopa - balra igazított + + if (__OSZTALYOZONAPLO_JEGYEK_FELEVENTE === true) { + for ($i = 0; $i < 2; $i++) { // A hónapok + $return .= '\hbox to 194.8pt{\hfil\vbox to 30pt{\hsize=186.8pt{\baselineskip=9pt\vfil#\vfil}}\hfil}\vrule width1.2pt&'; // középre igazított + } + } else { + for ($i = 0; $i < count($ADAT['honapok']); $i++) { // A hónapok + $return .= '\hbox to 38pt{\hfil\vbox to 30pt{\hsize=30pt{\baselineskip=9pt\vfil#\vfil}}\hfil}\vrule width1.2pt&'; // középre igazított + } + } + $return .= '\hbox to 28pt{\vbox to 30pt{\hsize=28pt\vfil\hfil{\nagyss #}\hfil\vfil}}\vrule&% +\hbox to 28pt{\vbox to 30pt{\hsize=28pt\vfil\hfil{\nagyss #}\hfil\vfil}}\vrule width2pt\cr% +%%%% Formátum sor vége %%%% +\noalign{\hrule height2pt}% +%%%% Tárgy fejlécsora %%%% +\omit{\vrule width2pt\hbox to 85pt{\vbox to 25pt{\hsize=85pt\vfil{\hfil Tantárgy\vfil}\vfil}\hfill}\vrule width1.2pt}&% +%%%% Hónapok fejlécsora %%%%'."\n"; +if (__OSZTALYOZONAPLO_JEGYEK_FELEVENTE === true) $return .= '\multispan{2}{\lower3pt\vbox{'.putTeXOsztalyozoAllandoFejlec($ADAT['honapok']).'}}&%'."\n"; +else $return .= '\multispan{10}{\lower3pt\vbox{'.putTeXOsztalyozoAllandoFejlec($ADAT['honapok']).'}}&%'."\n"; +$return .= '%%%% Zárójegy fejlécsora %%%% +\multispan2{\vbox{% +\halign{\hbox to 28pt{\space\lower3pt\vbox to 25pt{\hsize=22pt\vfil\baselineskip=0pt #\vfil}\space}\vrule&% +\hbox to 28pt{\space\lower3pt\vbox to 25pt{\hsize=22pt\vfil\baselineskip=0pt #\vfil}\space}% +\cr% +\multispan2{\strut\hfil Osztályzata\hfil}\cr% +\noalign{\hrule height 0.8pt}% +félév- kor&év végén\cr% +}% +}\vrule width2pt}\cr% +%%%%%%%% Fejléc vége %%%%%%%% +\noalign{\hrule height1.2pt}% +'; + +## ===================================================== +# Tárgynév formálása, és a 10 hónapban külön a rublikák + $sorszam = 0; + for ($i = $start; ($i < count($ADAT['targyak']) && $sorszam < 20); $i++) { + + $targyId = $ADAT['targyak'][$i]['targyId']; + $targyNev = $ADAT['targyak'][$i]['targyNev']; + // A hosszabb nevek esetén az első szóköz nem nyújtható - de ezt most az elválaszott alak kiiktatja + // if ($pos = strpos($targyNev, ' ')) $targyNev = substr($targyNev, 0, $pos).'\hglue 1ex plus 0pt minus 0pt '.substr($targyNev, $pos+1); + if ( + ( + //---------IDE ÍRJ + //is_array($ADAT['jegyek'][$diakId][$targyId]) + in_array($targyId,$ADAT['diakTargy'][$diakId]) + || is_array($ADAT['zaroJegy'][1][$diakId][$targyId]) + || is_array($ADAT['zaroJegy'][2][$diakId][$targyId]) + ) + && ($targyId != $ADAT['targyak']['magatartasId']) + && ($targyId != $ADAT['targyak']['szorgalomId']) + && ($targyNev != 'osztályfőnöki') + && ($targyNev != 'magatartás') + && ($targyNev != 'szorgalom') + ) { + $sorszam++; + // $return .= $targyNev; + $return .= $ADAT['targyak'][$i]['elvalasztott']; + $return .= '&'; + + if (__OSZTALYOZONAPLO_JEGYEK_FELEVENTE !== true) { + for ($k = 0; $k < count($ADAT['honapok']); $k++) { + $ho = $ADAT['honapok'][$k]; + for($j = 0; $j < count($ADAT['jegyek'][$diakId][$targyId][$ho]); $j++) { + $_jegy = $ADAT['jegyek'][$diakId][$targyId][$ho][$j]['jegy']; + $_jegyTipus = $ADAT['jegyek'][$diakId][$targyId][$ho][$j]['jegyTipus']; + $return .= TeXSpecialChars($KOVETELMENY[$_jegyTipus][$_jegy]['rovid']).' '; + } + $return .= '&'; + } + } else { /* Ha félévenként! */ + for ($felev=1; $felev<=2; $felev++) { + for ($j=0; $j<count($ADAT['jegyek'][$diakId]['felevenkent'][$targyId][$felev]); $j++) { + $_jegy = $ADAT['jegyek'][$diakId]['felevenkent'][$targyId][$felev][$j]['jegy']; + $_jegyTipus = $ADAT['jegyek'][$diakId]['felevenkent'][$targyId][$felev][$j]['jegyTipus']; + $return .= TeXSpecialChars($KOVETELMENY[$_jegyTipus][$_jegy]['rovid']).' '; + } + $return .= '&'; + } + } + + if ( + strtotime($ADAT['diakAdat'][$diakId]['osztalyDiak'][0]['kiDt']) == '' + || strtotime($_TANEV['szemeszter'][1]['zarasDt']) <=strtotime($ADAT['diakAdat'][$diakId]['osztalyDiak'][0]['kiDt']) + ) { + $zaroJegyek=$ADAT['zaroJegy'][1][$diakId][$targyId]; + for ($zji=0; $zji<count($zaroJegyek); $zji++) { + if ($zji>0) $return .= ' '; + if ($zaroJegyek[$zji]['jegy'] != 0) $return .= TeXSpecialChars( + $KOVETELMENY[ $zaroJegyek[$zji]['jegyTipus'] ][ $zaroJegyek[$zji]['jegy'] ]['rovid'] + ); + $return .= TeXSpecialChars(nagybetus(substr( + $zaroJegyek[$zji]['megjegyzes'],0,1 + ))); + + } + } // ha még tagja félévkor az osztálynak + + $return .= '&'; + + if ( + strtotime($ADAT['diakAdat'][$diakId]['osztalyDiak'][0]['kiDt']) == '' + || strtotime($_TANEV['szemeszter'][2]['zarasDt']) <= strtotime($ADAT['diakAdat'][$diakId]['osztalyDiak'][0]['kiDt']) + ) { + $zaroJegyek=$ADAT['zaroJegy'][2][$diakId][$targyId]; + for ($zji=0; $zji<count($zaroJegyek); $zji++) { + if ($zji>0) $return .= ' '; + if ($zaroJegyek[$zji]['jegy'] != 0) $return .= TeXSpecialChars( + $KOVETELMENY[ $zaroJegyek[$zji]['jegyTipus'] ][ $zaroJegyek[$zji]['jegy'] ]['rovid'] + ); + $return .= TeXSpecialChars(nagybetus(substr( + $zaroJegyek[$zji]['megjegyzes'],0,1 + ))); + } + } // ha még tagja év végén az osztálynak + $return .= '\cr% +\noalign{\hrule height0.8pt}% +'; + } + } + + + for($j = $sorszam; $j < 20; $j++) { + if (__OSZTALYOZONAPLO_JEGYEK_FELEVENTE === true) $return .= '&&&&\cr'; + else $return .= str_repeat('&', 2+count($ADAT['honapok'])).'\cr'; +// $return .= '0&1&2&3&4&5&6&7&8&9&10&11&12\cr'; + $return .= '\noalign{\hrule height0.8pt}'; + } + + $return .= '}'; + + $iGlobal = $i; + + return $return; +} + +function putTeXOsztalyozoAdatok($diakId, $ADAT) { + + global $KOVETELMENY; + + $return .= '\halign{\vrule width2.0pt\hbox to 398.6pt{\vbox to 80pt{\hsize=398.6pt#}}\vrule width1.2pt&% +\hbox to 135.2pt{#}\vrule width2pt\cr% +\noalign{\hrule height1.2pt}% +\quad\vbox{\vbox to 8pt{}% +\settabs\+ Oktatási azonosító\quad&\quad Itt egy nagyon hosszzú név \quad&\quad Törvényes képviselő:\ &\quad adatsor3 \cr +\+ Oktatási azonosító:&'. +$ADAT['diakAdat'][$diakId]['oId'] +.'&Törzslapszám:&'. +TeXSpecialChars($ADAT['diakAdat'][$diakId]['torzslapszam']) +#.'&Törvényes képviselő:&'. +#str_replace(',',', ',$ADAT['diakAdat'][$diakId]['torvenyesKepviselo']) +.'\cr% +\+ Anyja neve:&'. +# Ha van leánykori neve, akkor azt írjuk ki, különben a viselt nevet +(($ADAT['szulok'][ $ADAT['diakAdat'][$diakId]['anyaId'] ]['szuleteskoriCsaladinev']!='')?trim( + $ADAT['szulok'][ $ADAT['diakAdat'][$diakId]['anyaId'] ]['szuleteskoriCsaladinev'].' '. + $ADAT['szulok'][ $ADAT['diakAdat'][$diakId]['anyaId'] ]['szuleteskoriUtonev'] +):$ADAT['szulok'][ $ADAT['diakAdat'][$diakId]['anyaId'] ]['szuloNev']) +.'&TAJ:&'. +implode('-', str_split($ADAT['diakAdat'][$diakId]['tajSzam'],3)) +.'\cr%'; + $return .= ' +\+ ' +.'Apa neve:&'. +$ADAT['szulok'][ $ADAT['diakAdat'][$diakId]['apaId'] ]['szuloNev'] +.'&Telefonszám:&'. +implode( + ', ', + array_unique( + array_diff( + array($ADAT['szulok'][ $ADAT['diakAdat'][$diakId]['anyaId'] ]['telefon'],$ADAT['szulok'][ $ADAT['diakAdat'][$diakId]['apaId'] ]['telefon']), + array(null,'') + ) + ) +) +.'\cr%'; + $return .= ' +\+ Gondviselő neve:&'. +$ADAT['szulok'][ $ADAT['diakAdat'][$diakId]['gondviseloId'] ]['szuloNev'] +.'&Törvényes képviselő:&'. +str_replace(',',', ',$ADAT['diakAdat'][$diakId]['torvenyesKepviselo']) +.'\cr%'; +$return .= ' +\+ Tanuló lakcíme:&'.TeXSpecialChars($ADAT['diakAdat'][$diakId]['lakhelyIrsz'].' ' + .$ADAT['diakAdat'][$diakId]['lakhelyHelyseg'].', ' + .$ADAT['diakAdat'][$diakId]['lakhelyKozteruletNev'].' ' + .$ADAT['diakAdat'][$diakId]['lakhelyKozteruletJelleg'].' ' + .$ADAT['diakAdat'][$diakId]['lakhelyHazszam'].' ' + .$ADAT['diakAdat'][$diakId]['lakhelyEmelet'].' ' + .$ADAT['diakAdat'][$diakId]['lakhelyAjto'].' ') + .'\cr%'; +if ($ADAT['diakAdat'][$diakId]['gondozasiSzam'] != '' || $ADAT['diakAdat'][$diakId]['fogyatekossag'] != '') { + $return .= ' +\+ Felmentés:&'. +str_replace(',',', ',$ADAT['diakAdat'][$diakId]['fogyatekossag']).' ('.TeXSpecialChars($ADAT['diakAdat'][$diakId]['gondozasiSzam']).')' +.'\cr%'; +} + + $return .= ' +}&%--------------------------------- +\lower3pt\vbox{% +\halign{\hbox to 77.6pt{\vbox to 19.3pt{\hsize=77.6pt\vfil\space#\vfil}}&% +\vrule\hbox to 28pt{\vbox to 19.3pt{\hsize=28pt\vfil{\nagyss\hfil#\hfil}\vfil}}\vrule&% +\hbox to 28pt{\vbox to 19.3pt{\hsize=28pt\vfil{\nagyss\hfil#\hfil}\vfil}}\cr% +\quad Magatartás&'; +$return .= $KOVETELMENY[ $ADAT['zaroJegy'][1][$diakId][ $ADAT['targyak']['magatartasId'] ][0]['jegyTipus'] + ][ $ADAT['zaroJegy'][1][$diakId][ $ADAT['targyak']['magatartasId'] ][0]['jegy'] ]['rovid']; +$return .= '&'; +$return .= $KOVETELMENY[ $ADAT['zaroJegy'][2][$diakId][ $ADAT['targyak']['magatartasId'] ][0]['jegyTipus'] + ][ $ADAT['zaroJegy'][2][$diakId][ $ADAT['targyak']['magatartasId'] ][0]['jegy'] ]['rovid']; +$return .= '\cr% +\noalign{\hrule}% +\quad Szorgalom&'; +$return .= $KOVETELMENY[ $ADAT['zaroJegy'][1][$diakId][ $ADAT['targyak']['szorgalomId'] ][0]['jegyTipus'] + ][ $ADAT['zaroJegy'][1][$diakId][ $ADAT['targyak']['szorgalomId'] ][0]['jegy'] ]['rovid']; +$return .= '&'; +$return .= $KOVETELMENY[ $ADAT['zaroJegy'][2][$diakId][ $ADAT['targyak']['szorgalomId'] ][0]['jegyTipus'] + ][ $ADAT['zaroJegy'][2][$diakId][ $ADAT['targyak']['szorgalomId'] ][0]['jegy'] ]['rovid']; +$return .= '\cr% +\noalign{\hrule height1.2pt}% +\omit\vbox to 42.4pt{\hsize=77.6pt{%====================== +\halign{\hbox to 30.4pt{\space\vbox to 20.8pt{\hsize=28.4pt\vfil#\vfil}}\vrule&% +\hbox to 46.4pt{\hbox to 2pt{}\vbox to 20.8pt{\hsize=40.4pt#}}\cr% +igazolt&\vfil mulasztott\cr% +\noalign{\hrule width 30.4pt}% +\baselineskip9pt igazo\-latlan&órák száma\cr% +}% +%=========================== +}}&%~~~~~~~~~~~~~~~~ +\omit\vrule\vbox{\halign{\vbox to 20.8pt{\hsize=28pt\vfil\hfil{\nagyss #}\hfil\vfil}\cr% +'.intval($ADAT['hianyzas'][1][$diakId]['igazolt']).'\cr% +\noalign{\hrule}% +'.intval($ADAT['hianyzas'][1][$diakId]['igazolatlan']+floor($ADAT['hianyzas'][1][$diakId]['kesesPercOsszeg']/45)).'\cr% +}}\vrule% +%~~~~~~~~~~~~~~~~~~~ +&%~~~~~~~~~~~~~~~~~~ +\omit\vbox{\halign{\vbox to 20.8pt{\hsize=28pt\vfil\hfil{\nagyss #}\hfil\vfil}\cr% +'.intval($ADAT['hianyzas'][2][$diakId]['igazolt']).'\cr% +\noalign{\hrule}% +'.intval($ADAT['hianyzas'][2][$diakId]['igazolatlan']+floor($ADAT['hianyzas'][2][$diakId]['kesesPercOsszeg']/45)).'\cr% +}}% +%~~~~~~~~~~~~~~~~~~~ +\cr% +}% +}% +%----------------------------------- +\cr% +\noalign{\hrule height2pt}% +}'; + return $return; + +} + +function putTeXTanarLista($ADAT, $lapDobasok) { + + $TANAROK = $ADAT['tanarok']; + + $return = ''; + $dbTanar = count($TANAROK); + $maxTanarperlap = 24; + $maxLap = ceil($dbTanar / $maxTanarperlap); + + if ($lapDobasok%2==1) $return .= putTexUresLap(); + + for ($lap=0; $lap<$maxLap; $lap++) { + if ($maxLap>1) $extStr = ' '.$maxLap.'/'.($lap+1); + + $return .= '\vbox to 32pt{}\centerline{\nagy Aláíróív'.$extStr.'}%'."\n"; //\bigskip + $return .= '\vfill'."\n"; + $return .= '\centerline{Ezt a haladási naplót '.$ADAT['tanitasiNapokSzama'].' tanítási nappal lezártam.}'."\n"; + $return .= '\centerline{Ezt az osztályozó naplót '.count($ADAT['diakIds']); + $return .= ' beírt tanulóval lezártam.}'."\n"; + + $return .= '\vfill'."\n"; + for ($i = 0 + $lap*($maxTanarperlap); $i < $dbTanar && ($maxLap==1 || ($maxLap>=2 && $i<($lap+1)*$maxTanarperlap)); $i=$i+2) { + $return .= '\line{\hfill'. + '\vbox to 45pt{\hsize=150pt\vfil'. + '\hbox to 150pt{\dotfill}'. + '\hbox to 150pt{\hfil '.$TANAROK[$i].'\hfil}'. + '}'; + if ($TANAROK[$i+1] != '' && $i+1<($lap+1)*$maxTanarperlap) { + $return .= '\hbox to 80pt{}'. + '\vbox to 45pt{\hsize=150pt\vfil'. + '\hbox to 150pt{\dotfill}'. + '\hbox to 150pt{\hfil '.$TANAROK[$i+1].'\hfil}'. + '}'; + } + $return .= '\hfill}'; + } + $return .= '\vfill'."\n"; + + $return .= putTeXUresLap(); + + } + + return $return; +} + +/* Páratlan mayTanarperlap-pal nem jó!! + +function putTeXTanarLista($ADAT, $lapDobasok) { + +// Gutbrod András + + $TANAROK = $ADAT['tanarok']; + +// teszteléshez... +$TANAROK = array( + 'Tanár 01', 'Tanár 02', 'Tanár 03', 'Tanár 04', 'Tanár 05', 'Tanár 06', 'Tanár 07', 'Tanár 08', 'Tanár 09', 'Tanár 10', + 'Tanár 11', 'Tanár 12', 'Tanár 13', 'Tanár 14', 'Tanár 15', 'Tanár 16', 'Tanár 17', 'Tanár 18', 'Tanár 19', 'Tanár 20', + 'Tanár 21', 'Tanár 22', 'Tanár 23', 'Tanár 24', 'Tanár 25', 'Tanár 26', 'Tanár 27', 'Tanár 28', 'Tanár 29', 'Tanár 30', + 'Tanár 31', 'Tanár 32', 'Tanár 33', 'Tanár 34', 'Tanár 35', 'Tanár 36', 'Tanár 37', 'Tanár 38', 'Tanár 39', 'Tanár 40', + 'Tanár 41', 'Tanár 42', 'Tanár 43', 'Tanár 44', 'Tanár 45', 'Tanár 46', 'Tanár 47', 'Tanár 48', 'Tanár 49', 'Tanár 50', 'Tanár 51' +); + + + $return = ''; + $dbTanar = count($TANAROK); + $maxTanarperlap = 23; + $maxLap = ceil($dbTanar / $maxTanarperlap); + $lap = 1; + + if ($lapDobasok%2==1) $return .= putTexUresLap(); + + for ($i=0; $i<$dbTanar; $i++) { + + // lap teteje? + if ($i % $maxTanarperlap == 0) { + + if ($maxLap>1) $extStr = ' '.$maxLap.'/'.($lap); + + $return .= '\vbox to 32pt{}\centerline{\nagy Aláíróív'.$extStr.'}%'."\n"; + $return .= '\vfill'."\n"; + $return .= '\centerline{Ezt a haladási naplót '.$ADAT['tanitasiNapokSzama'].' tanítási nappal lezártam.}'."\n"; + $return .= '\centerline{Ezt az osztályozó naplót '.count($ADAT['diakIds']); + $return .= ' beírt tanulóval lezártam.}'."\n"; + $return .= '\vfill'."\n"; + + } + + if ($i % 2 == 0) { + + $return .= '\line{\hfill'. + '\vbox to 45pt{\hsize=150pt\vfil'. + '\hbox to 150pt{\dotfill}'. + '\hbox to 150pt{\hfil '.$TANAROK[$i].'\hfil}'. + '}'; + + // utolsó? + if (($i+1) == $dbTanar) { + $return .= '\hfill}'; + } + + } else { + + $return .= '\hbox to 80pt{}'. + '\vbox to 45pt{\hsize=150pt\vfil'. + '\hbox to 150pt{\dotfill}'. + '\hbox to 150pt{\hfil '.$TANAROK[$i].'\hfil}'. + '}'; + $return .= '\hfill}'; + + } + + // lap alja? + if ((($i+1) % $maxTanarperlap) == 0) { + + $return .= '\vfill'."\n"; + $return .= putTeXUresLap(); + $lap = $lap+1; + + } else { + + // Nem lap alja és utolsó. + if (($i+1) == $dbTanar) { + + $return .= '\vfill'."\n"; + $return .= putTeXUresLap(); + + } + } + } + + return $return; + +} + +*/ + +?> diff --git a/mayor-orig/www/include/modules/naplo/nyomtatas/torzslap.php b/mayor-orig/www/include/modules/naplo/nyomtatas/torzslap.php new file mode 100644 index 00000000..4ae32d4b --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/nyomtatas/torzslap.php @@ -0,0 +1,199 @@ +<?php + + function torzslapNyomtatvanyKeszites($ADAT) { + + global $Honapok, $KOVETELMENY, $ZaradekIndex, $bizonyitvanyJegyzetek; + + // A sablonfile meghatározása + define('__TEMPLATE_DIR', _MAYOR_DIR.'/print/module-naplo/templates'); + $tmplFile = 'torzslap'; + + if (file_exists(__TEMPLATE_DIR.'/'.__INTEZMENY.'/'.$tmplFile.'.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/'.__INTEZMENY.'/'.$tmplFile.'.tmpl'; + } elseif (file_exists(__TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl'; + } else { + $_SESSION['alert'][] = 'message:file_not_found:'.__TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl'; + return false; + } + + $Intezmeny = getIntezmenyByRovidnev(__INTEZMENY); + $Ertekeles = getOsztalySzovegesErtekeles($ADAT); + $_Targyak = getTargyak(array('targySorrendNev' => $ADAT['targySorrendNev'],'osztalyId' => $ADAT['osztalyId'])); $Targyak = array(); + for ($i = 0; $i < count($_Targyak); $i++) { + $Targyak[ $_Targyak[$i]['targyId'] ] = $_Targyak[$i]; + $Targyak[ $_Targyak[$i]['targyId'] ]['targyNev'] = nagybetus(mb_substr($_Targyak[$i]['targyNev'],0,1)).mb_substr($_Targyak[$i]['targyNev'],1); + } + unset($_Targyak); + + list($ev,$ho,$nap) = explode('-', $ADAT['dt']); + list($evf,$oszt) = explode('.', $ADAT['osztalyAdat']['osztalyJel']); + + $DATA = array( + 'file' => $ADAT['file'], + 'base' => array('nyomtatasDt' => date('Y.m.d'), 'datumEv' => $ev, 'datumHonap' => $ho, 'datumNap' => $nap, 'hoNev' => kisbetus($Honapok[$ho-1]), + 'intezmenyNev' => $Intezmeny['nev'], 'intezmenyOMKod' => $Intezmeny['OMKod'], 'intezmenyCimIrsz' => $Intezmeny['cimIrsz'], + 'intezmenyCimHelyseg' => $Intezmeny['cimHelyseg'], 'intezmenyCimKozteruletNev' => $Intezmeny['cimKozteruletNev'], + 'intezmenyCimKozteruletJelleg' => $Intezmeny['cimKozteruletJelleg'], 'intezmenyCimHazszam' => $Intezmeny['cimHazszam'], + 'intezmenyTelefon' => $Intezmeny['telefon'], 'intezmenyHonlap' => $Intezmeny['honlap'], + 'intezmenyFax' => $Intezmeny['fax'], 'intezmenyEmail' => $Intezmeny['email'], + 'tanevJele' => substr($ADAT['szemeszter']['tanevAdat']['kezdesDt'],0,4).'/'.substr($ADAT['szemeszter']['tanevAdat']['zarasDt'],2,2), + 'felevi' => ($ADAT['szemeszter']['szemeszter'] == 1), + 'diak' => $ADAT['diakIds'], 'osztaly' => "$evf. ".nagybetus($oszt), + 'szovegesErtekeles' => false, + ), + 'diak' => $ADAT['diakAdat'], + 'targy' => $Targyak, + 'szempont' => array(), + 'minosites' => array(), + ); + + unset($Intezmeny); + // Az osztályzatokhoz tartozó tárgyak (lesznek szöveges értékeléshez tartozók is....) + for ($i = 0; $i < count ($ADAT['targyak']); $i++) { + $DATA['osztalyzatTargy'][ $ADAT['targyak'][$i]['targyId'] ] = $ADAT['targyak'][$i]; + } + if (is_array($ADAT['jegyek']) && count($ADAT['jegyek']) > 0) foreach ($ADAT['jegyek'] as $diakId => $dJegyek) { + if (is_array($dJegyek) && count($dJegyek) > 0) { // Ha vanak egyáltalán jegyei... + foreach ($DATA['osztalyzatTargy'] as $targyId => $tAdat) { // A helyes sorrend miatt kell ezen végigmenni + if (is_array($dJegyek[$targyId])) { // van az adott tárgyból jegye + $targyNev = kisbetus($Targyak[$targyId]['targyNev']); + $tJegyek = $dJegyek[$targyId]; + // Az utolsó jegyet írjuk csak ki + $jegy = $tJegyek[ count($tJegyek)-1 ]; + if (in_array($targyId, $ADAT['szorgalomIds'])) { + $DATA['diak'][$diakId]['szorgalom'] = $KOVETELMENY['szorgalom'][ $jegy['jegy'] ]['hivatalos']; + $DATA['diak'][$diakId]['szorgMegjJel'] = nagybetus($jegy['megjegyzes'][0]); + } elseif (in_array($targyId, $ADAT['magatartasIds'])) { + $DATA['diak'][$diakId]['magatartas'] = $KOVETELMENY['magatartás'][ $jegy['jegy'] ]['hivatalos']; + $DATA['diak'][$diakId]['magMegjJel'] = nagybetus($jegy['megjegyzes'][0]); + } else { + $DATA['diak'][$diakId]['osztalyzatTargy'][$targyId] = $jegy; + $DATA['diak'][$diakId]['osztalyzatTargy'][$targyId]['jTipus'] = $jegy['jegyTipus']; + $DATA['diak'][$diakId]['osztalyzatTargy'][$targyId]['mJel'] = nagybetus($jegy['megjegyzes'][0]); + $DATA['diak'][$diakId]['osztalyzatTargy'][$targyId]['hivatalos'] = $KOVETELMENY[ $jegy['jegyTipus'] ][ $jegy['jegy'] ]['hivatalos']; + if ($jegy['megjegyzes'] == 'dicséret') { // csak dicséreteket rakunk be - év végén nincs más + $DATA['diak'][$diakId]['bejegyzesek'] .= str_replace('%1%', $targyNev, $bizonyitvanyJegyzetek['dicséret'])."\n\n"; + } + $DATA['diak'][$diakId]['osztalyzatTargy'][$targyId]['evesOraszam'] = $ADAT['targyOraszam'][$diakId][$targyId]['evesOraszam']; + } + } + } + } + } + + $DATA['diak'][$diakId]['feljegyzesek'] = $DATA['diak'][$diakId]['zaroZaradek'] = $DATA['diak'][$diakId]['zaradekok'] = ''; + if (is_array($ADAT['diakZaradekok'])) { + foreach ($ADAT['diakZaradekok'] as $diakId => $dZaradekok) { + if (count($dZaradekok) > 0) { + foreach ($dZaradekok as $idx => $zAdat) { + if (in_array($zAdat['zaradekIndex'], array_values($ZaradekIndex['törzslap feljegyzés']))) { + $DATA['diak'][$diakId]['feljegyzesek'] .= '['.$zAdat['sorszam'].'] '.$zAdat['szoveg'].' ('.dateToString($zAdat['dt']).')'; + } elseif ( + in_array($zAdat['zaradekIndex'], array_values($ZaradekIndex['konferencia'])) + || in_array($zAdat['zaradekIndex'], array_values($ZaradekIndex['konferencia bukás'])) + ) { + $DATA['diak'][$diakId]['zaroZaradek'] .= '['.$zAdat['sorszam'].'] '.$zAdat['szoveg'].' ('.dateToString($zAdat['dt']).')'."\n\n"; + } else { + $DATA['diak'][$diakId]['zaradekok'] .= '['.$zAdat['sorszam'].'] '.$zAdat['szoveg'].' ('.dateToString($zAdat['dt']).')'."\n\n"; + } + } + } + } + } + if (is_array($ADAT['diakBejegyzesek'])) { + foreach ($ADAT['diakBejegyzesek'] as $diakId => $dBejegyzesek) { + if (is_null($DATA['diak'][$diakId]['bejegyzesek'])) $DATA['diak'][$diakId]['bejegyzesek'] = ''; + if (count($dBejegyzesek)>0) { + foreach ($dBejegyzesek as $idx => $bAdat) { + $DATA['diak'][$diakId]['bejegyzesek'] .= $bAdat['szoveg']."\n\n"; + } + } + } + } + if (is_array($ADAT['diakAdat'])) { + foreach ($ADAT['diakAdat'] as $diakId => $dAdat) { // alapértelmezések + if ($DATA['diak'][$diakId]['feljegyzesek'] == '') $DATA['diak'][$diakId]['feljegyzesek'] = '\ '; + foreach (array('igazolt','igazolatlan','kesesPercOsszeg','kesesIgazolatlan','osszesIgazolatlan', + 'gyakIgazolt','gyakIgazolatlan','gyakKesesPercOsszeg','gyakKesesIgazolatlan','gyakOsszesIgazolatlan', + 'elmIgazolt','elmIgazolatlan','elmKesesPercOsszeg','elmKesesIgazolatlan','elmOsszesIgazolatlan') as $_k) { + $DATA['diak'][$diakId][$_k] = 0; + } + } + } + if (is_array($ADAT['hianyzas'])) { + foreach ($ADAT['hianyzas'] as $diakId => $dHianyzas) { + $DATA['diak'][$diakId]['igazolt'] = intval($dHianyzas['igazolt']); + $DATA['diak'][$diakId]['igazolatlan'] = intval($dHianyzas['igazolatlan']); + $DATA['diak'][$diakId]['kesesPercOsszeg'] = intval($dHianyzas['kesesPercOsszeg']); + $DATA['diak'][$diakId]['kesesIgazolatlan'] = floor($dHianyzas['kesesPercOsszeg']/45); + $DATA['diak'][$diakId]['osszesIgazolatlan'] = intval($DATA['diak'][$diakId]['igazolatlan']+$DATA['diak'][$diakId]['kesesIgazolatlan']); + + $DATA['diak'][$diakId]['gyakIgazolt'] = intval($dHianyzas['gyakorlatIgazolt']); + $DATA['diak'][$diakId]['gyakIgazolatlan'] = intval($dHianyzas['gyakorlatIgazolatlan']); + $DATA['diak'][$diakId]['gyakKesesPercOsszeg'] = intval($dHianyzas['gyakorlatKesesPercOsszeg']); + $DATA['diak'][$diakId]['gyakKesesIgazolatlan'] = floor($dHianyzas['gyakorlatKesesPercOsszeg']/45); + $DATA['diak'][$diakId]['gyakOsszesIgazolatlan'] = intval($DATA['diak'][$diakId]['gyakIgazolatlan']+$DATA['diak'][$diakId]['gyakKesesIgazolatlan']); + + $DATA['diak'][$diakId]['elmIgazolt'] = intval($dHianyzas['elmeletIgazolt']); + $DATA['diak'][$diakId]['elmIgazolatlan'] = intval($dHianyzas['elmeletIgazolatlan']); + $DATA['diak'][$diakId]['elmKesesPercOsszeg'] = intval($dHianyzas['elmeletKesesPercOsszeg']); + $DATA['diak'][$diakId]['elmKesesIgazolatlan'] = floor($dHianyzas['elmeletKesesPercOsszeg']/45); + $DATA['diak'][$diakId]['elmOsszesIgazolatlan'] = intval($DATA['diak'][$diakId]['elmIgazolatlan']+$DATA['diak'][$diakId]['elmKesesIgazolatlan']); + } + } + // van egyáltalán tanév adat? + if (strtotime($ADAT['dt']) < strtotime($ADAT['tanevAdat']['szemeszter'][1]['zarasDt'])) $DATA['base']['negyedev'] = 'az első'; + else $DATA['base']['negyedev'] = 'a harmadik'; + foreach ($Ertekeles as $diakId => $E) { + $DATA['diak'][$diakId]['targy'] = array(); + + // !!! Tesztelendő !!! // +# foreach ($E as $targyId => $eAdat) { + foreach ($Targyak as $targyId => $tAdat) { + if (is_array($E[$targyId])) { + $eAdat = $E[$targyId]; + $DATA['base']['szovegesErtekeles'] = true; + } else { + continue; + } + // !!! Tesztelendő !!! // + if ( + is_array($eAdat['szovegesErtekeles']['minosites']) + && count($eAdat['szovegesErtekeles']['minosites']) > 0 + && $ADAT['tolDt'] <= $eAdat['szovegesErtekeles']['dt'] + ) { + + $DATA['diak'][$diakId]['targy'][$targyId] = $eAdat; // Ezt lehetne finomítani + + $DATA['diak'][$diakId]['targy'][$targyId]['szempont'] = $eAdat['szempontRendszer']['szempont']; + $targyMinositesId = $eAdat['szovegesErtekeles']['minosites'][0]; // Ha egy tárgy egy minősítés kell (az első) + foreach ($eAdat['szempontRendszer']['szempont'] as $szempontId => $szAdat) { + $DATA['diak'][$diakId]['targy'][$targyId]['szempont'][$szempontId]['egyediMinosites'] = + $eAdat['szovegesErtekeles']['egyediMinosites'][$szempontId]['egyediMinosites']; + $M = $eAdat['szempontRendszer']['minosites'][$szempontId]; + $elsoValasztottKovetkezik = true; + for ($i = 0; $i < count($M); $i++) { + $DATA['diak'][$diakId]['targy'][$targyId]['szempont'][$szempontId]['minosites'][ $M[$i]['minositesId'] ] + = array('minosites' => $M[$i]['minosites']); + if (in_array($M[$i]['minositesId'], $eAdat['szovegesErtekeles']['minosites'])) { + $DATA['diak'][$diakId]['targy'][$targyId]['szempont'][$szempontId]['minosites'][$M[$i]['minositesId']]['valasztott'] = true; + $DATA['diak'][$diakId]['targy'][$targyId]['szempont'][$szempontId]['minosites'][$M[$i]['minositesId']]['elsoValasztott'] = $elsoValasztottKovetkezik; + $DATA['diak'][$diakId]['targy'][$targyId]['szempont'][$szempontId]['minosites'][$M[$i]['minositesId']]['tobbedikValasztott'] = (!$elsoValasztottKovetkezik); + $elsoValasztottKovetkezik = false; + if ($M[$i]['minositesId'] == $targyMinositesId) { + $DATA['diak'][$diakId]['targy'][$targyId]['targyMinosites'] = $M[$i]['minosites']; // Ha tárgyanként egy minősítés kell (az első) + } + } + } + } + } + } + } + + return template2file($templateFile, $DATA); + + } + + +?> diff --git a/mayor-orig/www/include/modules/naplo/nyomtatas/tovabbkepzesHatarozat.php b/mayor-orig/www/include/modules/naplo/nyomtatas/tovabbkepzesHatarozat.php new file mode 100644 index 00000000..024fbe94 --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/nyomtatas/tovabbkepzesHatarozat.php @@ -0,0 +1,60 @@ +<?php + + function getTanulmanyiEgyseg($tovabbkepzesId, $tanarId, $tanev) { + + $q = "select * from tovabbkepzesTanulmanyiEgyseg left join tovabbkepzes using (tovabbkepzesId) left join tovabbkepzoIntezmeny using (tovabbkepzoIntezmenyId) + left join tovabbkepzesTanar using (tanarId, tovabbkepzesId) + where tovabbkepzesId=%u and tanarId=%u and tanev=%u"; + return db_query($q, array('debug'=>false,'fv'=>'getTanulmanyiEgyseg','modul'=>'naplo_intezmeny','result'=>'record','values'=>array($tovabbkepzesId, $tanarId, $tanev))); + + } + + function tovabbkepzesNyomtatvanyKeszites($ADAT) { + + global $Honapok; + + // A sablonfile meghatározása + define('__TEMPLATE_DIR', _MAYOR_DIR.'/print/module-naplo/templates'); + $tmplFile = 'tovabbkepzesHatarozat'; + + if (file_exists(__TEMPLATE_DIR.'/'.__INTEZMENY.'/'.$tmplFile.'.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/'.__INTEZMENY.'/'.$tmplFile.'.tmpl'; + } elseif (file_exists(__TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl'; + } else { + $_SESSION['alert'][] = 'message:file_not_found:'.__TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl'; + return false; + } + + $Intezmeny = getIntezmenyByRovidnev(__INTEZMENY); + list($ev, $ho, $nap) = explode('-', $ADAT['tanulmanyiEgyseg']['igDt']); + $DATA = array( + 'file' => $ADAT['file'], + 'base' => array('nyomtatasDt' => date('Y.m.d'), 'nyomtatasDatumStr' => date('Y. m. d.'), + 'datumEv' => $ev, 'datumHonap' => $ho, 'datumNap' => $nap, 'hoNev' => kisbetus($Honapok[$ho-1]), + 'intezmenyNev' => $Intezmeny['nev'], 'intezmenyOMKod' => $Intezmeny['OMKod'], 'intezmenyCimIrsz' => $Intezmeny['cimIrsz'], + 'intezmenyCimHelyseg' => $Intezmeny['cimHelyseg'], 'intezmenyCimKozteruletNev' => $Intezmeny['cimKozteruletNev'], + 'intezmenyCimKozteruletJelleg' => $Intezmeny['cimKozteruletJelleg'], 'intezmenyCimHazszam' => $Intezmeny['cimHazszam'], + 'intezmenyTelefon' => $Intezmeny['telefon'], 'intezmenyHonlap' => $Intezmeny['honlap'], + 'intezmenyFax' => $Intezmeny['fax'], 'intezmenyEmail' => $Intezmeny['email'], + + 'tanev'=>$ADAT['tanulmanyiEgyseg']['tanev'], 'reszosszeg'=>$ADAT['tanulmanyiEgyseg']['reszosszeg'], 'tamogatas'=>$ADAT['tanulmanyiEgyseg']['tamogatas'], + 'tovabbkepzesStatusz'=>$ADAT['tanulmanyiEgyseg']['tovabbkepzesStatusz'], 'megjegyzes'=>$ADAT['tanulmanyiEgyseg']['megjegyzes'], 'tovabbkepzesNev'=>$ADAT['tanulmanyiEgyseg']['tovabbkepzesNev'], + 'oraszam'=>$ADAT['tanulmanyiEgyseg']['oraszam'], 'akkreditalt'=>$ADAT['tanulmanyiEgyseg']['akkreditalt'], 'tovIntRovidNev'=>$ADAT['tanulmanyiEgyseg']['intezmenyRovidNev'], + 'tovIntNev'=>$ADAT['tanulmanyiEgyseg']['intezmenyNev'], 'tovIntCim'=>$ADAT['tanulmanyiEgyseg']['intezmenyCim'], + 'tolDt'=>str_replace('-','. ',$ADAT['tanulmanyiEgyseg']['tolDt']).'.', 'igDt'=>str_replace('-','. ',$ADAT['tanulmanyiEgyseg']['igDt']).'.', + + 'tanarNev' => $ADAT['tanarAdat']['tanarNev'], 'szuletesiHely' => $ADAT['tanarAdat']['szuletesiHely'], 'szuletesiIdo' => $ADAT['tanarAdat']['szuletesiIdo'], + 'hetiMunkaora' => $ADAT['tanarAdat']['hetiMunkaora'], 'statusz' => $ADAT['tanarAdat']['statusz'], 'hetiKotelezoOraszam' => $ADAT['tanarAdat']['hetiKotelezoOraszam'], + 'besorolas' => $ADAT['tanarAdat']['besorolas'], + ), + + ); + +//dump($ADAT); +//dump($DATA); +//die(); + return template2file($templateFile, $DATA); + } + +?>
\ No newline at end of file diff --git a/mayor-orig/www/include/modules/naplo/nyomtatas/zaradekok.php b/mayor-orig/www/include/modules/naplo/nyomtatas/zaradekok.php new file mode 100644 index 00000000..50501765 --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/nyomtatas/zaradekok.php @@ -0,0 +1,63 @@ +<?php + + function pdfZaradekok($ADAT) { + + global $Honapok; + + // A sablonfile meghatározása + define('__TEMPLATE_DIR', _MAYOR_DIR.'/print/module-naplo/templates'); + $tmplFile = 'zaradekok'; + if (file_exists(__TEMPLATE_DIR.'/'.__INTEZMENY.'/'.$tmplFile.'.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/'.__INTEZMENY.'/'.$tmplFile.'.tmpl'; + } elseif (file_exists(__TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl')) { + $templateFile = __TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl'; + } else { + $_SESSION['alert'][] = 'message:file_not_found:'.__TEMPLATE_DIR.'/default/'.$tmplFile.'.tmpl'; + return false; + } + + list($evf, $oszt) = explode('.', $ADAT['osztaly']['osztalyJel']); + list($zEv, $zHo, $zNap) = explode('-', $ADAT['tanevAdat']['zarasDt']); + + $DATA = array( + 'file' => $ADAT['file'], + 'base' => array('nyomtatasDt' => date('Y.m.d'), + 'intezmenyNev' => $ADAT['intezmeny']['nev'], 'intezmenyCimIrsz' => $ADAT['intezmeny']['cimIrsz'], + 'intezmenyCimHelyseg' => $ADAT['intezmeny']['cimHelyseg'], 'intezmenyCimKozteruletNev' => $ADAT['intezmeny']['cimKozteruletNev'], + 'intezmenyCimKozteruletJelleg' => $ADAT['intezmeny']['cimKozteruletJelleg'], 'intezmenyCimHazszam' => $ADAT['intezmeny']['cimHazszam'], + 'intezmenyTelefon' => $ADAT['intezmeny']['telefon'], 'intezmenyHonlap' => $ADAT['intezmeny']['honlap'], + 'intezmenyFax' => $ADAT['intezmeny']['fax'], 'intezmenyEmail' => $ADAT['intezmeny']['email'], + 'osztalyJele' => $evf.'/'.nagybetus($oszt), 'tanevJele' => $ADAT['tanev'].'/'.$zEv, + ), + ); + + for ($i = 0; $i < count($ADAT['diakIds']); $i++) + $DATA['diak'][ $ADAT['diakIds'][$i] ] = array('diakNev' => $ADAT['diak'][ $ADAT['diakIds'][$i] ]['diakNev']); + foreach ($ADAT['zaradek'] as $diakId => $dZaradek) { + for ($i = 0; $i < count($dZaradek); $i++) { + $DATA['diak'][$diakId]['zaradek'][ $dZaradek[$i]['zaradekId'] ] = $dZaradek[$i]['zaradekId']; + $DATA['zaradek'][ $dZaradek[$i]['zaradekId'] ] = $dZaradek[$i]; + } + } + foreach ($ADAT['bejegyzes'] as $diakId => $dBejegyzes) { + for ($i = 0; $i < count($dBejegyzes); $i++) { + $DATA['diak'][$diakId]['bejegyzes'][ $dBejegyzes[$i]['bejegyzesId'] ] = $dBejegyzes[$i]['bejegyzesId']; + $DATA['bejegyzes'][ $dBejegyzes[$i]['bejegyzesId'] ] = $dBejegyzes[$i]; + // A "bejegyzes" név már foglalt ezért át kell nevezni a bejegyzesTipusNev-et... + $DATA['bejegyzes'][ $dBejegyzes[$i]['bejegyzesId'] ]['szovFokozat'] = $dBejegyzes[$i]['bejegyzesTipusNev']; + } + } + $DATA['base']['diak'] = array(); + for ($i = 0; $i < count($ADAT['diakIds']); $i++) { + if ( + is_array($DATA['diak'][ $ADAT['diakIds'][$i] ]['bejegyzes']) + || is_array($DATA['diak'][ $ADAT['diakIds'][$i] ]['zaradek']) + ) $DATA['base']['diak'][] = $ADAT['diakIds'][$i]; + } + + return template2file($templateFile, $DATA); + + + } + +?> |