From 43de9af71f7f4ca5731b94a06d688ae8412ba427 Mon Sep 17 00:00:00 2001 From: M.Gergo Date: Fri, 6 Jul 2018 11:14:41 +0200 Subject: 2018/Feb/28 -i állapot hozzáadva, mint a módosítások kiindulási állapota --- .../www/policy/private/naplo/hianyzas/diak-pre.php | 212 +++++++++++++++++++++ .../www/policy/private/naplo/hianyzas/diak.php | 10 + .../private/naplo/hianyzas/diakIgazolatlan-pre.php | 26 +++ .../private/naplo/hianyzas/diakIgazolatlan.php | 9 + .../private/naplo/hianyzas/diakLista-pre.php | 101 ++++++++++ .../policy/private/naplo/hianyzas/diakLista.php | 10 + .../policy/private/naplo/hianyzas/hianyzas-pre.php | 7 + .../www/policy/private/naplo/hianyzas/hianyzas.php | 0 .../www/policy/private/naplo/hianyzas/info-pre.php | 32 ++++ .../www/policy/private/naplo/hianyzas/info.php | 5 + .../www/policy/private/naplo/hianyzas/nap-pre.php | 161 ++++++++++++++++ .../www/policy/private/naplo/hianyzas/nap.php | 14 ++ .../policy/private/naplo/hianyzas/oktstat-pre.php | 33 ++++ .../www/policy/private/naplo/hianyzas/oktstat.php | 12 ++ .../www/policy/private/naplo/hianyzas/ora-pre.php | 165 ++++++++++++++++ .../www/policy/private/naplo/hianyzas/ora.php | 10 + .../policy/private/naplo/hianyzas/osztaly-pre.php | 124 ++++++++++++ .../www/policy/private/naplo/hianyzas/osztaly.php | 13 ++ .../private/naplo/hianyzas/osztalyNap-pre.php | 53 ++++++ .../policy/private/naplo/hianyzas/osztalyNap.php | 10 + 20 files changed, 1007 insertions(+) create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/diak-pre.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/diak.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/diakIgazolatlan-pre.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/diakIgazolatlan.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/diakLista-pre.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/diakLista.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/hianyzas-pre.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/hianyzas.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/info-pre.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/info.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/nap-pre.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/nap.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/oktstat-pre.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/oktstat.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/ora-pre.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/ora.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/osztaly-pre.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/osztaly.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/osztalyNap-pre.php create mode 100644 mayor-orig/www/policy/private/naplo/hianyzas/osztalyNap.php (limited to 'mayor-orig/www/policy/private/naplo/hianyzas') diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/diak-pre.php b/mayor-orig/www/policy/private/naplo/hianyzas/diak-pre.php new file mode 100644 index 00000000..adbf65d0 --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/diak-pre.php @@ -0,0 +1,212 @@ +date('Y-m-d'),'tanev'=>__TANEV) ); //--ITT a mai napot vesszük alapul, ami osztályváltáskor nem jó sajnos...... + $osztalyId = $OI[0]['osztalyId']; + } + if ($osztalyId != '') { + $ADAT['osztalyId'] = $osztalyId; + $ADAT['osztaly'] = getOsztalyAdat($osztalyId); + } + } + + +if (isset($diakId) && $diakId != '') { + + // ez gyönyörű szép :) + $_POST['diakId'] = $ADAT['diakId'] = $diakId; + $_POST['osztalyId'] = $osztalyId; + $ADAT['diak']['nev'] = getDiakNevById($diakId); + + /* --- igDt, tolDt --- */ + $tolDt = readVariable($_POST['tolDt'],'date',date('Y-m-d', mktime(0,0,0,date('m'),1,date('Y')))); + + $igDt = $_TANEV['zarasDt']; + initTolIgDt(__TANEV, $tolDt, $igDt); + // $ho beállítása + if ($_tmp=readVariable($_POST['dt'],'date',readVariable($_GET['dt'],'date'))) { + $ho = intval(date('m',strtotime($_tmp))); + } else { + $ho = readVariable($_POST['ho'],'numeric','',array(1,2,3,4,5,6,7,8,9,10,11,12)); + if ($ho=='') $ho = readVariable($_GET['ho'],'numeric', + intval(date('m',strtotime($tolDt))), + array(1,2,3,4,5,6,7,8,9,10,11,12)); + } + $ADAT['ho'] = $ho; + /* --- */ + $DIAKOSZTALYAI = getDiakokOsztalyai(array($diakId),array('tanev'=>__TANEV,'tolDt'=>$tolDt,'igDt'=>$igDt)); // diakId => (o1, o2, ...) + $munkatervIds = getMunkatervByOsztalyId($DIAKOSZTALYAI[$diakId], array('result'=>'idonly')); // lehet esetleg több is neki! + define(__OFO, ( + is_array($_OSZTALYA) && + count(array_intersect($DIAKOSZTALYAI[$diakId],$_OSZTALYA)) > 0 )); + if ($_TANEV['statusz']=='aktív' && (__NAPLOADMIN || __OFO || __VEZETOSEG)) { + $ITIPUSOK = getIgazolasTipusLista(); + $ITIPUSOK['engedelyezett'][] = 'orvosi'; + if (__NAPLOADMIN || __OFO) $ITIPUSOK['engedelyezett'][] = 'szülői'; + if (__NAPLOADMIN || __OFO) $ITIPUSOK['engedelyezett'][] = 'osztályfőnöki'; + if (__NAPLOADMIN || __OFO || __VEZETOSEG) $ITIPUSOK['engedelyezett'][] = 'tanulmányi verseny'; + if (__NAPLOADMIN || __OFO || __VEZETOSEG) $ITIPUSOK['engedelyezett'][] = 'nyelvvizsga'; + if (__NAPLOADMIN || __VEZETOSEG) $ITIPUSOK['engedelyezett'][] = 'igazgatói'; + $ITIPUSOK['engedelyezett'][] = 'hatósági'; + $ITIPUSOK['engedelyezett'][] = 'pályaválasztás'; + $ADAT['igazolasTipusok']=$ITIPUSOK; + + $igazolas = readVariable($_POST['igazolas'],'emptystringnull','',$ITIPUSOK['engedelyezett']); + if ($igazolas=='') $igazolas = readVariable($_GET['igazolas'],'emptystringnull','',$ITIPUSOK['engedelyezett']); + if ($igazolas=='') $igazolas = 'orvosi'; + $_POST['igazolas'] = $igazolas; + //if (!in_array($igazolas,$ITIPUSOK['engedelyezett'])) + //$_SESSION['alert'][] = '::hibás beállítás('.$igazolas.')'; + + $ADAT['igazolas'] = $igazolas; + + // Hatarido + if (__NAPLOADMIN || __VEZETOSEG) define('__BEIRAS_HATARIDO',_ZARAS_HATARIDO); + elseif (__OFO) define('__BEIRAS_HATARIDO',_OFO_HIANYZAS_HATARIDO); + else define('__BEIRAS_HATARIDO',_HIANYZAS_HATARIDO); + + //$hatarido = _LEGKORABBI_IGAZOLHATO_HIANYZAS; + $hatarido = getNemIgazolhatoDt($diakId, $munkatervIds); + + if (__NAPLOADMIN || __VEZETOSEG) { + if (strtotime($hatarido) > strtotime(_ZARAS_HATARIDO)) + $hatarido = _ZARAS_HATARIDO; + } elseif (!__OFO) { + $hatarido = date('Y-m-d'); + } // else nem írjuk felül + + define('__STATUS_HATARIDO',$hatarido); + + // Beírások + /* + a beíró függvényeknek átadjuk, hogy mit szeretnénk elérni, + amik lekérdezik a szükséges adatokat, és esetleges jogosultságokat! (darabszám) + a határidőre vonatkozó beállításokat a -pre nek kell végeznie! + */ + if ($action == 'statusModositas') { + + $hianyzasId = readVariable($_GET['hianyzasId'],'id'); + if ($hianyzasId!='') + $_HDATA = getHianyzasById($hianyzasId); + // lekérdezzük, hogy mi a hiányzás dátuma, státusza? ($dt,$statusz) + if (is_array($_HDATA) && count($_HDATA)==1) { + if (strtotime(__STATUS_HATARIDO) < strtotime($_HDATA[0]['dt'])) { + if ($_HDATA[0]['statusz']=='igazolatlan') { + $_statusz = 'igazolt'; + $_igtip = $igazolas; + } else { + $_statusz = 'igazolatlan'; + $_igtip = ''; + } + $IGAZOLANDOK[] = array('id'=> $hianyzasId,'statusz'=>$_statusz,'igazolas'=>$_igtip); + hianyzasIgazolas($IGAZOLANDOK,$diakId); + } else { + $_SESSION['alert'][] = 'message:deadline_expired'.__STATUS_HATARIDO; + } + } else { // nincs hianyzasId megadva, vagy nincs hozzá mégsem (pl már kitörölték egyszer) bejegyzés. + + $_dt = readVariable($_GET['dt'],'date'); + $_ora = readVariable($_GET['ora'],'numeric'); + $_tipus = 'hiányzás'; + $_statusz = readVariable($_POST['status'],'emptystringnull','igazolatlan',array('igazolt','igazolatlan')); + + // ekkor vajon milyen oraId-jű orája volt a diakIdnek? + // esetleg több is! (regisztralando, de nem kötelező bejárnia) + if (strtotime(__BEIRAS_HATARIDO) <= strtotime($_dt)) { + oraHianyzasBeiras($_dt,$_ora,$diakId,array('tipus'=>$_tipus,'statusz'=>$_statusz)); + } else { + $_SESSION['alert'][] = 'message:deadline_expired:'.__BEIRAS_HATARIDO; + } + + } + + } elseif ($action == 'napiHianyzasBeiras') { + + // dt és diakId alapján lekérdezzük, beírjuk, nincs mese. + // illetve van mese: lehet hogy csak a statuszokat lehet módosítani... + + $_dt = readVariable($_POST['dt'],'date'); + $_tipus = 'hiányzás'; + $_statusz = readVariable($_POST['status'],'emptystringnull','igazolatlan',array('igazolt','igazolatlan')); + $_igazolas = ($_statusz=='igazolatlan') ? '' : $igazolas; + napiHianyzasBeiras($_dt,$diakId,array('tipus'=>$_tipus,'statusz'=>$_statusz,'igazolas'=>$_igazolas)); + + } elseif ($action == 'igazolasTipusValtas') { + // itt már elvileg nincs mit tennünk (v2.4) + } + + } else { + //define('__BEIRAS_HATARIDO',''); + //define('__STATUS_HATARIDO',''); + } + + /* --- tanuló hiányzásai (figyelem! dátumok!) --- */ + // --TODO: 9!!! + $ADAT['napok'] = getHonapNapjai($ho, $munkatervIds); + for ($i=0; $i'assoc','dt'=>$_NAPOK[count($_NAPOK)-1])); // dátum nélkül ez a korábbi összes képzését adná. Vegyük a hónap utolsó napján... + +} // ha van nem üres diakId + + if (!__DIAK) { + + $TOOL['osztalySelect'] = array('tipus' => 'cella','paramName' => 'osztalyId', 'post' => array('ho','igazolas')); + $TOOL['diakSelect'] = array('tipus'=>'cella', 'diakId' => $diakId, 'post'=>array('tolDt','osztalyId','ho','igazolas')); + //$TOOL['tanarOraLapozo'] = array('tipus'=>'sor', 'oraId' => $oraId, 'post'=>array('tanarId')); + + } + if ($diakId != '') { + $TOOL['igazolasOsszegzo'] = array('tipus' => 'sor','paramName' => 'igazolasOsszegzo', 'post' => array()); + $TOOL['oldalFlipper'] = array('tipus' => 'cella', + 'url' => array('index.php?page=naplo&sub=hianyzas&f=diakLista','index.php?page=naplo&sub=haladasi&f=stat&diakId='.$diakId), + 'titleConst' => array('_DIAKHIANYZASLISTA','_HALADASISTATISZTIKA'), + 'post' => array('tanev','tolDt','igDt','ho','osztaly'), + 'paramName'=>'diakId'); + } + if (__POLICY == 'parent') $TOOL['pageHelp'] = 'PAGEHELP_SZULO'; + else $TOOL['pageHelp'] = 'PAGEHELP'; + if ($ho!='') $TOOL['honapLapozo'] = array('tipus'=>'sor', 'paramName' => 'ho', 'ho'=>$ho, + 'diakId'=>$diakId, // ideiglenesen! + 'post'=>array('diakId','osztalyId','igazolas')); + getToolParameters(); + + } + +?> diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/diak.php b/mayor-orig/www/policy/private/naplo/hianyzas/diak.php new file mode 100644 index 00000000..5eb61423 --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/diak.php @@ -0,0 +1,10 @@ + diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/diakIgazolatlan-pre.php b/mayor-orig/www/policy/private/naplo/hianyzas/diakIgazolatlan-pre.php new file mode 100644 index 00000000..5ffb0899 --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/diakIgazolatlan-pre.php @@ -0,0 +1,26 @@ + 'cella','paramName' => 'osztalyId', 'post' => array('ho')); + $TOOL['diakSelect'] = array('tipus'=>'cella', 'diakId' => $diakId, 'post'=>array('tolDt','osztalyId','ho')); + getToolParameters(); + + } + +?> diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/diakIgazolatlan.php b/mayor-orig/www/policy/private/naplo/hianyzas/diakIgazolatlan.php new file mode 100644 index 00000000..c934b7c8 --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/diakIgazolatlan.php @@ -0,0 +1,9 @@ + diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/diakLista-pre.php b/mayor-orig/www/policy/private/naplo/hianyzas/diakLista-pre.php new file mode 100644 index 00000000..4818d84d --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/diakLista-pre.php @@ -0,0 +1,101 @@ + 0 )); + + /* --- tanuló hiányzásai (figyelem! dátumok!) --- */ + // --TODO: 9!!! + + $ADAT['napok'] = getHonapNapjai($ho); + for ($i=0; $i 'cella','paramName' => 'osztalyId', 'post' => array('ho')); + $TOOL['diakSelect'] = array('tipus'=>'cella', 'diakId' => $diakId, 'post'=>array('tolDt','osztalyId','ho')); + //$TOOL['tanarOraLapozo'] = array('tipus'=>'sor', 'oraId' => $oraId, 'post'=>array('tanarId')); + + } + if ($diakId != '') { + $TOOL['igazolasOsszegzo'] = array('tipus' => 'sor','paramName' => 'igazolasOsszegzo', 'post' => array()); + $TOOL['oldalFlipper'] = array('tipus' => 'cella', 'url' => array('index.php?page=naplo&sub=hianyzas&f=diak','index.php?page=naplo&sub=haladasi&f=stat&diakId='.$diakId), + 'titleConst' => array('_DIAKHIANYZASNAPTAR','_HALADASISTATISZTIKA'), + 'post' => array('tanev','osztaly','tolDt','ho'), + 'paramName'=>'diakId'); + } + if ($ho != '') $TOOL['honapLapozo'] = array('tipus'=>'sor', 'paramName' => 'ho', 'ho'=>$ho, 'post'=>array('diakId','osztalyId')); + getToolParameters(); + + + } + +?> diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/diakLista.php b/mayor-orig/www/policy/private/naplo/hianyzas/diakLista.php new file mode 100644 index 00000000..f85c9f9b --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/diakLista.php @@ -0,0 +1,10 @@ + diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/hianyzas-pre.php b/mayor-orig/www/policy/private/naplo/hianyzas/hianyzas-pre.php new file mode 100644 index 00000000..ea204c20 --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/hianyzas-pre.php @@ -0,0 +1,7 @@ + diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/hianyzas.php b/mayor-orig/www/policy/private/naplo/hianyzas/hianyzas.php new file mode 100644 index 00000000..e69de29b diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/info-pre.php b/mayor-orig/www/policy/private/naplo/hianyzas/info-pre.php new file mode 100644 index 00000000..0ee4c280 --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/info-pre.php @@ -0,0 +1,32 @@ +'; + + $dt = $refTolDt = readVariable($_POST['refTolDt'],'date',date('Y-m-d',strtotime('-7 day'))); + $refIgDt = readVariable($_POST['refIgDt'],'date',date('Y-m-d')); + + $datediff = strtotime($refIgDt) - strtotime($refTolDt); + $dbNap = floor($datediff / (60 * 60 * 24)); + + $ADAT = array(); + + if (strtotime($dt) <= strtotime($refIgDt)) { + while (strtotime($dt)<= strtotime($refIgDt)) { + if (date('N',strtotime($dt))<=5) $ADAT[$dt] = getDarabDiakHianyzas($dt); + $dt = date('Y-m-d',strtotime('+1 day',strtotime($dt))); + } + } + + $TOOL['datumTolIgSelect'] = array( + 'tipus' => 'sor', 'title' => 'REFDT', + 'post'=>array('tolDt','tanarId','osztalyId','tankorId','mkId','diakId','telephely'), + 'tolParamName' => 'refTolDt', 'igParamName' => 'refIgDt', 'hanyNaponta' => 1, + 'tolDt' => $_TANEV['elozoZarasDt'], + 'igDt' => $_TANEV['kovetkezoKezdesDt'], + 'override' => true, + 'tolDt' => date('Y-m-d', strtotime('last Monday', strtotime($_TANEV['kezdesDt']))), + 'igDt' => $_TANEV['zarasDt'], + ); +?> diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/info.php b/mayor-orig/www/policy/private/naplo/hianyzas/info.php new file mode 100644 index 00000000..ab5bb381 --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/info.php @@ -0,0 +1,5 @@ + diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/nap-pre.php b/mayor-orig/www/policy/private/naplo/hianyzas/nap-pre.php new file mode 100644 index 00000000..7eb2592a --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/nap-pre.php @@ -0,0 +1,161 @@ + array($diakId), + 'adatok' => getTankorByDiakId($diakId,__TANEV,array('tolDt'=>$dt,'igDt'=>$dt)), + 'nevek' => getDiakokById(array($diakId)) + ); + + { + /* jogosultság */ + //$DIAKOSZTALYAI = getDiakokOsztalyai(array($diakId)); + //define(__OFO, (is_array($_OSZTALYA) && count(array_intersect($DIAKOSZTALYAI[$diakId],$_OSZTALYA)) > 0 )); + + /* --- */ + $TANKORIDK = getTankorByDiakId($diakId, __TANEV, $SET = array('csakId' => true, 'tolDt' => $dt, 'igDt' => $dt)); + + $tmpOrak = getOrak($TANKORIDK,array('tolDt'=>$dt,'igDt'=>$dt,'elmaradokNelkul'=>true)); + $ADAT['orak'] = $tmpOrak['orak']; + if (is_array($ADAT['orak']) && count($ADAT['orak'])>0) + foreach($ADAT['orak'] as $tankorId => $OA1) + foreach($OA1 as $ora => $OA2) + foreach($OA2 as $tankorId => $OA) + $ORAI[] = $OA; + $ADAT['jogosultsag'] = getHianyzasJogosultsag($ORAI, array('idk'=>array($diakId))); + unset($ORAI); + + /* rögzítés */ + if ($action == 'hianyzokRogzitese' && (__TANAR || __NAPLOADMIN || __VEZETOSEG)) { + //$EDDIG = getHianyzasByOraId($ORAADAT['oraId'],array('csakId'=>true)); + $EDDIG = getHianyzasByDt(array($diakId),array($dt),array('csakId'=>true)); + $MARADNAK = $H = $TORLENDOK = array(); + // először vizsgáljuk meg, hogy hol hiányzott (mert ekkor f betűs nem lehet) + reset($_POST); + foreach($_POST as $_kulcs => $_ertek) { + if (substr($_kulcs,0,8)=='HIANYZOK') { + list($_mi,$_oraId) = explode('_',$_kulcs); + list($_diakId,$_dt,$_ora,$_tipus,$_hid) = explode('/',$_ertek); + if ($_tipus=='hiányzás') { // akkor f betűsök nem lehetnek + $H[$_diakId][$_dt][$_ora] = true; + $H2[$_diakId][$_oraId] = true; + } + } + } + // majd állítsuk elő a tömböket + reset($_POST); + foreach($_POST as $_kulcs => $_ertek) { + if (substr($_kulcs,0,8)=='HIANYZOK') { + /* Itt az __id most oraId */ + list($__r1,$__id,$__r2) = explode('_',$_kulcs); + list($_diakId,$_dt,$_ora,$_tipus,$_hid) = explode('/',$_ertek); +// if (!isset($H[$_diakId][$_dt][$_ora]) || $_tipus=='hiányzás') { + if (!isset($H2[$_diakId][$__id]) || $_tipus=='hiányzás') { + if ($_hid!='') { + $MARADNAK[] = $_hid; + if ($_tipus=='késés') $PERCEK[$_hid]=intval($_POST['PERC_'.$__id]); + } elseif ($_tipus!='') { + $_perc = intval($_POST['PERC_'.$__id]); + //$_oraId = $ADAT['orak'][$dt]; + //list($_tankorId,$OA) = each($ADAT['orak'][$dt][$_ora]); + // EZ HIBÁS! Egy időben több óra is lehet! Az adat postként rendelkezsére áll, használjuk azt fel! + $BEIRANDOK[] = array('diakId'=>$_diakId,'tipus'=>$_tipus,'id'=>$_hid,'dt'=>$_dt,'ora'=>$_ora,'perc'=>$_perc,'oraId'=>$__id); + } + } + } + } + $TORLENDOK = (is_array($EDDIG)) ? array_diff($EDDIG,$MARADNAK) : array(); + reset($_POST); + foreach($_POST as $_kulcs => $_ertek) { + if (substr($_kulcs,0,8) == 'IGAZOLAS') { + for ($i=0; $i $_hid,'diakId'=>$_diakId,'statusz'=>$_statusz,'igazolas'=>$_igtip); + } + } + } + } + // végül töröljünk, regisztráljunk, igazoljunk + // esetleg okosan kitalálhatjuk, hogy ha egy időpontban van órája, akkor csak egy helyen lehet? (Pl ahol kötelezően kellene lennie...) + if (is_array($EDDIG) && is_array($MARADNAK)) { + hianyzasTorles($TORLENDOK); + } + hianyzasRegisztralas(array(),$BEIRANDOK); + hianyzasIgazolas($IGAZOLANDOK); + hianyzasPercUpdate($PERCEK); + + } + // lekérdezés #2 + // $ADAT['nevsor'] // lásd feljebb + $ADAT['hianyzok'] = array($diakId); + $ADAT['hianyzasok'] = getHianyzasByDt(array($diakId),array('dt'=>$dt)); + $ADAT['tankorok'] = getTankorByDiakId($diakId, __TANEV, $SET = array('csakId' => false, 'tolDt' => $dt, 'igDt' => $dt,'result'=>'multiassoc')); + $ADAT['tankorTipus'] = getTankorTipusok(); + // ez így egy kicsit túl megengedő. Ha pl egy tárgyból csak az első órán van felmentve, de ugyanaz a tankör szerepel később is (pl második), akkor ida is felmentett lesz... + // holott arról nincs fm-tése... Óránként külön kellene vizsgálni... :( + $ADAT['felmentett'] = getTankorDiakFelmentes($diakId, __TANEV, array('result'=>'multiassoc','tolDt' => $dt, 'igDt' => $dt, 'nap'=>$nap)); // !!! + $ADAT['dt'] = $dt; + $ADAT['diak']['nev'] = getDiakNevById($diakId); + $OI = getDiakOsztalya($diakId); + $osztalyId = $OI[0]['osztalyId']; + $ADAT['osztaly'] = getOsztalyAdat($osztalyId); + $ADAT['napiMinOra'] = getMinOra(); + $ADAT['napiMaxOra'] = getMaxOra(); + + } + $_diakJogviszony=getDiakJogviszonyByDts( array($ADAT['diakId']), array($ADAT['dt']) ); + $ADAT['diakJogviszony'] = $_diakJogviszony[$ADAT['diakId']][$ADAT['dt']]['statusz']; + // tanarSelect tul képpen csak readnly + $TOOL['datumSelect'] = array( + 'tipus' => 'sor', 'post' => array('diakId'), + 'paramName' => 'dt', 'hanyNaponta' => 1, + 'tolDt' => date('Y-m-d', strtotime($_TANEV['kezdesDt'])), + 'napTipusok' => array('tanítási nap', 'speciális tanítási nap'), + 'lapozo' => true + ); +// $TOOL['osztalySelect'] = array('tipus' => 'cella','paramName' => 'osztalyId', 'post' => array('ho')); + if (!__DIAK) $TOOL['diakSelect'] = array('tipus' => 'cella', 'diakId' => $diakId, 'post' => array('dt')); + if ($diakId!='') $TOOL['igazolasOsszegzo'] = array('tipus' => 'cella','paramName' => 'igazolasOsszegzo', 'post' => array()); + +// $TOOL['tanuloNapLapozo'] = array('tipus'=>'sor', 'dt' => $dt, 'post'=>array('diakId','dt')); + getToolParameters(); + +?> diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/nap.php b/mayor-orig/www/policy/private/naplo/hianyzas/nap.php new file mode 100644 index 00000000..de542e68 --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/nap.php @@ -0,0 +1,14 @@ + diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/oktstat-pre.php b/mayor-orig/www/policy/private/naplo/hianyzas/oktstat-pre.php new file mode 100644 index 00000000..2fce3e26 --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/oktstat-pre.php @@ -0,0 +1,33 @@ + 'cella', 'action' => 'tanevValasztas', 'post' => array('tanev')); + + getToolParameters(); + +?> diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/oktstat.php b/mayor-orig/www/policy/private/naplo/hianyzas/oktstat.php new file mode 100644 index 00000000..ec4b017a --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/oktstat.php @@ -0,0 +1,12 @@ + diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/ora-pre.php b/mayor-orig/www/policy/private/naplo/hianyzas/ora-pre.php new file mode 100644 index 00000000..9a472287 --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/ora-pre.php @@ -0,0 +1,165 @@ + $_tolDt, 'igDt' => $_igDt, 'tipus' => array('normál','normál máskor','helyettesítés','felügyelet','összevonás')) + ); + $oraId = $_POST['oraId'] = $tanarOrak[0]['oraId']; + } + + if (isset($oraId)) { + + $ORAADAT = getOraAdatById($oraId); + + $nap = date('w',strtotime($ORAADAT['dt'])); + $ora = $ORAADAT['ora']; + + $tanarId = $ORAADAT['ki']; + $tolDt = $igDt = $ORAADAT['dt']; + + /* tankör adatai - óratervi-e */ + $TA = getTankorAdat($ORAADAT['tankorId'], __TANEV); + $ADAT['tankorAdat'] = $TA[$ORAADAT['tankorId']][0]; + $ORAADAT['tankorTipus'] = $ADAT['tankorAdat']['tankorTipus']; + $ADAT['tagokFelvehetok'] = ($ADAT['tankorAdat']['nevsor']=='változtatható'); + /* a tankör tagságának bővítése, ha lehet */ + if ($action!='' && $ADAT['tagokFelvehetok']===true) { + $D['diakId'] = readVariable($_POST['diakId'],id); + if ($D['diakId']!=0) { + $D['tankorId'] = $ORAADAT['tankorId']; + $D['igDt'] = $D['tolDt'] = $ORAADAT['dt']; + tankorDiakFelvesz($D); + } + } + + /* lekérdezés #1 */ + $ADAT['nevsor'] = getTankorDiakjaiByInterval($ORAADAT['tankorId'], __TANEV, $ORAADAT['dt'], $ORAADAT['dt']); + for ($i=0; $itrue,'tolDt'=>$tolDt, 'igDt'=>$igDt, 'nap'=>$nap, 'ora'=>$ora)); + } + $ADAT['diakJogviszony'] = getDiakJogviszonyByDts($ADAT['nevsor']['idk'], array($ORAADAT['dt'])); +//dump($ADAT['nevsor']['idk']); +//dump($ORAADAT['dt']); +//dump($ADAT['diakJogviszony']); + if ($ORAADAT['tipus'] == 'elmarad') { + $_SESSION['alert'][] = 'page:elmaradt_ora'; + } else { + /* jogosultság */ + $ADAT['jogosultsag'] = getHianyzasJogosultsag(array($ORAADAT) , $ADAT['nevsor']); + /* rögzítés */ + if ($action == 'hianyzokRogzitese') { + $EDDIG = getHianyzasByOraId($ORAADAT['oraId'],array('csakId'=>true)); + $MARADNAK = $H = $TORLENDOK = array(); + // először vizsgáljuk meg, hogy hol hiányzott (mert ekkor f betűs nem lehet) + reset($_POST); + foreach($_POST as $_kulcs => $_ertek) { + if (substr($_kulcs,0,8)=='HIANYZOK') { + list($_diakId,$_dt,$_ora,$_tipus,$_hid) = explode('/',$_ertek); + if ($_tipus=='hiányzás') { // akkor f betűsök nem lehetnek + $H[$_diakId][$_dt][$_ora] = true; + } + } + } + // majd állítsuk elő a tömböket + reset($_POST); + foreach($_POST as $_kulcs => $_ertek) { + if (substr($_kulcs,0,8)=='HIANYZOK') { + // ez volt!!!! figyelem!!!list($_diakId,$_tipus,$_hid) = explode('/',$_ertek); + list($__r1,$__id,$__r2) = explode('_',$_kulcs); + list($_diakId,$_dt,$_ora,$_tipus,$_hid) = explode('/',$_ertek); + if (!isset($H[$_diakId][$_dt][$_ora]) || $_tipus=='hiányzás') { + if ($_hid!='') { + $MARADNAK[] = $_hid; + if ($_tipus=='késés') $PERCEK[$_hid]=intval($_POST['PERC_'.$__id]); + } elseif ($_tipus!='') { + $_perc = intval($_POST['PERC_'.$__id]); + $BEIRANDOK[] = array('diakId'=>$_diakId,'tipus'=>$_tipus,'id'=>$_hid,'dt'=>$_dt,'ora'=>$_ora,'perc'=>$_perc); + } + } + } + } + $TORLENDOK = array_diff($EDDIG,$MARADNAK); + reset($_POST); + foreach($_POST as $_kulcs => $_ertek) { + if (substr($_kulcs,0,8) == 'IGAZOLAS') { + for ($i=0; $i $_hid,'diakId'=>$_diakId,'statusz'=>$_statusz,'igazolas'=>$_igtip); + } + } + } + } + + //végül töröljünk, regisztráljunk, igazoljunk + if (is_array($EDDIG) && is_array($MARADNAK)) { + hianyzasTorles($TORLENDOK); + } + hianyzasRegisztralas($ORAADAT,$BEIRANDOK); + hianyzasIgazolas($IGAZOLANDOK); + hianyzasPercUpdate($PERCEK); + + + + } + /* --- */ + + // lekérdezés #2 + // $ADAT['nevsor'] // lásd feljebb + $ADAT['hianyzok'] = getHianyzasByOraId($ORAADAT['oraId']); + $ADAT['napiHianyzasok'] = getHianyzasByDt($ADAT['nevsor']['idk'],$ORAADAT['dt']); + + if ($ADAT['tagokFelvehetok']===true) { + $_to = getTankorOsztalyaiByTanev($ORAADAT['tankorId'], __TANEV, array('result' => 'id', 'tagokAlapjan' => false)); + $ADAT['diakok'] = getDiakok(array('osztalyId'=>$_to)); + + } + } + } // Ha van oraId + + $TOOL['tanarSelect'] = array('tipus'=>'cella', 'tanarId' => $tanarId); + $TOOL['vissza'] = array('tipus'=>'vissza', + 'paramName'=>'vissza', + 'icon'=>'', + 'postOverride' => array('igDt'=>$igDt,'tanarId'=>$tanarId,'page'=>'naplo','sub'=>'haladasi','f'=>'haladasi') + ); + if (isset($oraId)) $TOOL['tanarOraLapozo'] = array('tipus'=>'sor', 'oraId' => $oraId, 'post'=>array('tanarId')); + getToolParameters(); + + } // Ha jogosult az oldal megtekintésére + + +?> \ No newline at end of file diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/ora.php b/mayor-orig/www/policy/private/naplo/hianyzas/ora.php new file mode 100644 index 00000000..5c1acffc --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/ora.php @@ -0,0 +1,10 @@ + diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/osztaly-pre.php b/mayor-orig/www/policy/private/naplo/hianyzas/osztaly-pre.php new file mode 100644 index 00000000..9e7e9418 --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/osztaly-pre.php @@ -0,0 +1,124 @@ +0) + $ADAT['referenciaDt'] = $referenciaDt = readVariable($_POST['referenciaDt'],'datetime',null); + + +// -------------------------------- + + if (isset($osztalyId)) { + $ADAT['osztalyId'] = $osztalyId; + define(__OFO, ( is_array($_OSZTALYA) && in_array($osztalyId, $_OSZTALYA))); + + $jogosult = array(); + if (__TANAR) $jogosult[] = 'szaktanár'; + if (__OFO) $jogosult[] = 'osztályfőnök'; + if (__VEZETOSEG) $jogosult[] = 'vezetőség'; + if (__NAPLOADMIN) $jogosult[] = 'admin'; + + $ADAT['jogosult fokozatok'] = getBejegyzesTipusokByJogosult($jogosult, array('tipus' => array('fegyelmi'), 'hianyzas' => true)); + $ADAT['összes fokozat'] = getBejegyzesTipusokByJogosult(array('szaktanár','osztályfőnök','vezetőség','admin'), array('tipus' => array('fegyelmi'), 'hianyzas' => true)); + $ADAT['fokozat2bejegyzesTipus'] = $ADAT['bejegyzesTipusok'] = $ADAT['bejegyzesTipusIds'] = array(); + foreach ($ADAT['összes fokozat'] as $key => $fAdat) { + $ADAT['bejegyzesTipusok'][ $fAdat['bejegyzesTipusId'] ] = $fAdat; + } + foreach ($ADAT['jogosult fokozatok'] as $key => $fAdat) { + $bejegyzesTipusIds[] = $fAdat['bejegyzesTipusId']; + } + $_TMP = getBejegyzesTipusokByJogosult(array('szaktanár','osztályfőnök','vezetőség','admin'), array('tipus' => array('fegyelmi'), 'hianyzas' => false)); + foreach ($_TMP as $key => $fAdat) { + $ADAT['fokozat2bejegyzesTipus'][ $fAdat['fokozat'] ] = $fAdat; + } + + if ( + $_TANEV['statusz']=='aktív' + && (__NAPLOADMIN || __VEZETOSEG || (__TANAR && __OSZTALYFONOK && in_array($osztalyId, $_OSZTALYA))) + ) { + if ($action == 'fegyelmiRogzitese') { + + $diakId = readVariable($_POST['diakId'], 'id'); + $bejegyzesTipusId = readVariable($_POST['bejegyzesTipusId'], 'id', null, $bejegyzesTipusIds); + $referenciaDt = readVariable($_POST['ujReferenciaDt'], 'date'); + $hianyzasDb = readVariable($_POST['hianyzasDb'], 'numeric unsigned'); + + $szoveg = 'Tisztelt Szülő! Értesítem, hogy gyermeke - igazolatlan hiányzásainak száma ('.$hianyzasDb.') alapján - elérte a(z) "' + .$ADAT['bejegyzesTipusok'][$bejegyzesTipusId]['bejegyzesTipusNev'].'" fegyelmi fokozatot.'; + + if (isset($bejegyzesTipusId) && isset($diakId)) ujBejegyzes($bejegyzesTipusId, $szoveg, $referenciaDt, $diakId, $hianyzasDb); + else $_SESSION['alert'][] = 'message:insufficient_access:a fegyelmi nem rögzíthető (bejegyzesTipusId='.$bejegyzesTipusId.'; hianyzasDb='.$hianyzasDb.')'; + + } + } + + // -------------------------------- + + //$osztalyAdat = getOsztalyAdat($osztalyId); + + if ($tolDt != $_TANEV['kezdesDt'] || $igDt != date('Y-m-d')) { + $OPT = array('hozott','lezárt','igazolható','összes'); + $View = readVariable($_POST['View'], 'enum', array('összes'), $OPT); + } else { + $OPT = array('hozott','lezárt','igazolható','összes','fegyelmi utáni','fegyelmi fokozatok'); + $View = readVariable($_POST['View'], 'enum', ($skin != 'pda')?array('összes','fegyelmi fokozatok'):array('összes'), $OPT); + } + +// elseif ($skin != 'pda') $View = array('összes','fegyelmi fokozatok'); +// else $View = array('összes'); + + if ($nevsor=='aktualis') { + $ADAT['stat'] = getHianyzok($ADAT,array('dt'=>date("Y-m-d"))); + } else { + $ADAT['stat'] = getHianyzok($ADAT); + } +// $ADAT['hianyzasmentesNapokSzama'] = getHianyzasmentesNapokSzama($osztalyId); + + foreach($ADAT['stat']['névsor'] as $_diakId => $_D) { + $ADAT['hozottHianyzas'][$_diakId] = getDiakHozottHianyzas($_diakId); + } + + } // isset(osztalyId) + +// $TOOL['vissza'] = array('tipus'=>'vissza','paramName'=>'','icon'=>'','post'=>array('page'=>'naplo','sub'=>'haladasi','f'=>'haladasi')); + $TOOL['osztalySelect'] = array('tipus' => 'cella','paramName' => 'osztalyId', 'post' => array('tolDt','igDt','View')); + getToolParameters(); + $TOOL['datumTolIgSelect'] = array('tipus' => 'sor', 'tolParamName' => 'tolDt', 'igParamName' => 'igDt', + 'tolDt' => $_TANEV['kezdesDt'], 'igDt' => $_TANEV['zarasDt'], + 'hanyNaponta' => 1, 'post' => array('osztalyId', 'View') + ); + } + +?> diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/osztaly.php b/mayor-orig/www/policy/private/naplo/hianyzas/osztaly.php new file mode 100644 index 00000000..50f5873a --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/osztaly.php @@ -0,0 +1,13 @@ + 0) + putOsztalyOsszesito($ADAT, $View); + +?> diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/osztalyNap-pre.php b/mayor-orig/www/policy/private/naplo/hianyzas/osztalyNap-pre.php new file mode 100644 index 00000000..608f94d4 --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/osztalyNap-pre.php @@ -0,0 +1,53 @@ + $osztalyId, 'result' => 'assoc', 'tanev' => __TANEV, 'tolDt' => $dt, 'igDt' => $dt)); + $ADAT['diakIds'] = array_keys($ADAT['diakok']); + $H = getHianyzasByDiakIds($ADAT['diakIds'], array('result' => 'multiassoc', 'keyfield' => 'ora', 'tolDt' => $dt, 'igDt' => $dt)); + foreach ($H as $ora => $hAdat) { + for ($i = 0; $i < count($hAdat); $i++) { + $_H = $hAdat[$i]; + $ADAT['hianyzas'][$ora][$_H['tankorId']][] = $_H; + $ADAT['diakHianyzott'][$_H['diakId']][$_H['hTipus']][$_H['statusz']][$_H['tankorTipus']]['db']++; + } + } + if (is_array($ADAT['hianyzas'])) $ADAT['tankorIds'] = array_keys($ADAT['hianyzas']); + $ADAT['tankorok'] = getTankorByOsztalyId($osztalyId, __TANEV, array('tanarral' => true, 'result' => 'assoc')); + } + $TOOL['datumSelect'] = array( + 'tipus' => 'sor', 'post' => array('osztalyId'), + 'paramName' => 'dt', 'hanyNaponta' => 1, + 'tolDt' => date('Y-m-d', strtotime($_TANEV['kezdesDt'])), + 'napTipusok' => array('tanítási nap', 'speciális tanítási nap'), + 'lapozo' => true + ); + $TOOL['osztalySelect'] = array('tipus' => 'cella','paramName' => 'osztalyId', 'post' => array('dt')); + getToolParameters(); + } + +?> diff --git a/mayor-orig/www/policy/private/naplo/hianyzas/osztalyNap.php b/mayor-orig/www/policy/private/naplo/hianyzas/osztalyNap.php new file mode 100644 index 00000000..10534428 --- /dev/null +++ b/mayor-orig/www/policy/private/naplo/hianyzas/osztalyNap.php @@ -0,0 +1,10 @@ +0) { + putOsztalyHianyzas($ADAT); + } +?> -- cgit v1.2.3