Neue Statistik

This commit is contained in:
2021-05-28 07:24:22 +02:00
parent c9bfd40728
commit 9bf57f696b
36 changed files with 91139 additions and 4743 deletions

View File

@@ -16,8 +16,8 @@ define('SCHULPORTAL_ASD_BASE_URL', SCHULPORTAL_BASE0_URL . '/uniquesigc3ba168505
//define('PROD_SCHULPORTAL_ASD_BASE_URL', SCHULPORTAL_BASE0_URL . '/uniquesigc3ba1685059aaf325d44099df697a0a635e79a4ec36ec614a98f3bf4b79d7c043ac3880605b7751df91d11233380ad86/uniquesig0/asd'); //define('PROD_SCHULPORTAL_ASD_BASE_URL', SCHULPORTAL_BASE0_URL . '/uniquesigc3ba1685059aaf325d44099df697a0a635e79a4ec36ec614a98f3bf4b79d7c043ac3880605b7751df91d11233380ad86/uniquesig0/asd');
//define('PROD_SCHULPORTAL_ASD_BASE_URL', SCHULPORTAL_BASE0_URL . '/uniquesig632cea04e8c585dd8dd40ffb367af53448ad1113e945323b22126735ae9513abb1f12262cb9414f17e32ca470882289a/uniquesig0/asd'); //define('PROD_SCHULPORTAL_ASD_BASE_URL', SCHULPORTAL_BASE0_URL . '/uniquesig632cea04e8c585dd8dd40ffb367af53448ad1113e945323b22126735ae9513abb1f12262cb9414f17e32ca470882289a/uniquesig0/asd');
define('PROD_SCHULPORTAL_ASD_BASE_URL', SCHULPORTAL_BASE0_URL . '/f5-w-687474703a2f2f6173642d6170702d70726f642e727a2d737565642e62617965726e2e64653a38323830$$/asd/'); define('PROD_SCHULPORTAL_ASD_BASE_URL', SCHULPORTAL_BASE0_URL . '/f5-w-687474703a2f2f6173642d6170702d70726f642e727a2d737565642e62617965726e2e64653a38323830$$/asd/');
define('PARA_SCHULPORTAL_ASD_BASE_URL', SCHULPORTAL_BASE0_URL . '/uniquesiga877c16a8d4fa0326c4d1f7447020d3867d9b0ca4503652219a0f5b2b569f316747c8c199bc9626ccb01613a0a36a342/uniquesig0/asd'); //define('PARA_SCHULPORTAL_ASD_BASE_URL', SCHULPORTAL_BASE0_URL . '/uniquesiga877c16a8d4fa0326c4d1f7447020d3867d9b0ca4503652219a0f5b2b569f316747c8c199bc9626ccb01613a0a36a342/uniquesig0/asd');
define('PARA_SCHULPORTAL_ASD_BASE_URL', SCHULPORTAL_BASE0_URL . '/f5-w-687474703a2f2f6173642d6170702d766d7030312e727a2d737565642e6279626e2e64653a38323830$$/asd/');
//define('SCHULPORTAL_MSTR_BASE_URL', SCHULPORTAL_BASE0_URL . '/uniquesig9adaec6129c81dbeb2f42638bc9f27ac0c442a10891f0c915c9d7f0c371a00b3/uniquesig1/asd'); //define('SCHULPORTAL_MSTR_BASE_URL', SCHULPORTAL_BASE0_URL . '/uniquesig9adaec6129c81dbeb2f42638bc9f27ac0c442a10891f0c915c9d7f0c371a00b3/uniquesig1/asd');
define('SCHULPORTAL_MSTR_BASE_URL', SCHULPORTAL_BASE0_URL . '/uniquesig182e937bef9540ecffb7e0ba167caaea052491068bd93a46e70dbd73bf9f8963/uniquesig1/asd'); define('SCHULPORTAL_MSTR_BASE_URL', SCHULPORTAL_BASE0_URL . '/uniquesig182e937bef9540ecffb7e0ba167caaea052491068bd93a46e70dbd73bf9f8963/uniquesig1/asd');
@@ -31,7 +31,8 @@ Configure::write('AsdCurl.cookiefile', '/tmp/cookies.txt');
Configure::write('AsdCurl.cookie', 'cookiename=cookievalue'); Configure::write('AsdCurl.cookie', 'cookiename=cookievalue');
Configure::write('AsdCurl.useragent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0'); Configure::write('AsdCurl.useragent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0');
//Configure::write('AsdCurl.useragent', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36'); //Configure::write('AsdCurl.useragent', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36');
Configure::write('AsdCurl.cert','/var/www/html/ssl_KM_Z2016_asd.trinkl.pem'); //Configure::write('AsdCurl.cert','/var/www/html/ssl_KM_Z2016_asd.trinkl.pem');
Configure::write('AsdCurl.cert','/var/www/html/ssl_Z_KM2019_asd.trinkl.pem');
Configure::write('AsdCurl.schulbase0url',SCHULPORTAL_BASE0_URL); Configure::write('AsdCurl.schulbase0url',SCHULPORTAL_BASE0_URL);
Configure::write('AsdCurl.schulbaseurl',SCHULPORTAL_BASE_URL); Configure::write('AsdCurl.schulbaseurl',SCHULPORTAL_BASE_URL);
Configure::write('AsdCurl.asdbaseurl',SCHULPORTAL_ASD_BASE_URL); Configure::write('AsdCurl.asdbaseurl',SCHULPORTAL_ASD_BASE_URL);

View File

@@ -97,13 +97,12 @@ class AsdCurl
if(!($this->status)) { if(!($this->status)) {
die($this->error); die($this->error);
} }
$viewstate = $this->get_string_between($this->html, 'id="javax.faces.ViewState" value="', '" autocomplete'); //debug($this->html);die;
$viewstate = $this->get_string_between($this->html, 'id="j_id1:javax.faces.ViewState:0" value="', '" autocomplete');
//debug($viewstate);
$login_data = [ $login_data = [
'asd_username' => 'A005_TrinklW', 'asd_username' => 'A005_TrinklW',
'asd_password' => 'HiegTzs!195', 'asd_password' => 'qQ8r&Dm->>sAKv<r',
//'asd_username' => 'A005_KnollmüllerP',
//'asd_password' => 'Ooricha8e!',
]; ];
$post = [ $post = [
'login:username' => $login_data['asd_username'], 'login:username' => $login_data['asd_username'],
@@ -116,7 +115,7 @@ class AsdCurl
if(!($this->status)) { if(!($this->status)) {
die($this->error); die($this->error);
} }
$viewstate = $this->get_string_between($this->html, 'id="javax.faces.ViewState" value="', '" autocomplete'); $viewstate = $this->get_string_between($this->html, 'id="j_jdi:javax.faces.ViewState:0" value="', '" autocomplete');
Configure::write('Session', ['viewstate' => $viewstate]); Configure::write('Session', ['viewstate' => $viewstate]);
//echo $this->html;die; //echo $this->html;die;
} }
@@ -131,7 +130,7 @@ class AsdCurl
$post = [ $post = [
'Uid' => 'A005_TrinklW', 'Uid' => 'A005_TrinklW',
'Pwd' => 'HiegTzs!12', 'Pwd' => 'geheim',
]; ];
$pvar['ConnMode'] = $this->get_string_between($this->html, '<input name="ConnMode" id="ConnMode" type="hidden" class="mstrHiddenInput" value="', '"/>'); $pvar['ConnMode'] = $this->get_string_between($this->html, '<input name="ConnMode" id="ConnMode" type="hidden" class="mstrHiddenInput" value="', '"/>');
$pvar['3054'] = $this->get_string_between($this->html, '<input name="3054" id="3054" type="submit" value="', '" class="mstrButton"/>'); $pvar['3054'] = $this->get_string_between($this->html, '<input name="3054" id="3054" type="submit" value="', '" class="mstrButton"/>');
@@ -178,10 +177,9 @@ class AsdCurl
if(!($this->status)) { if(!($this->status)) {
die($this->error); die($this->error);
} }
$vorschalt = $this->get_string_between($this->html,'gibt es vereinzelt ',' beim');
$vorschalt = $this->get_string_between($this->html,'an parallelen Zugriffen zu ',' beim');
//debug($vorschalt); //debug($vorschalt);
if($vorschalt == 'Anmeldeproblemen') { if($vorschalt == 'Störungen') {
$post = [ $post = [
'choice' => 1 'choice' => 1
@@ -208,7 +206,7 @@ class AsdCurl
]; ];
// Anmeldeformular fuer das Schulportal abschicken - Step 2 // Anmeldeformular fuer das Schulportal abschicken - Step 2
//https://portal.schulen.bayern.de/uniquesig2d1dfad4a11c25e42c462e53b4721e48/uniquesig0/SecureSchulportalPortalHomePage/ //https://portal.schulen.bayern.de/uniquesig2d1dfad4a11c25e42c462e53b4721e48/uniquesig0/SecureSchulportalPortalHomePage/
//$this->exec_curl($ch, $SCHULPORTAL_BASE_URL . '/SecureSchulportalPortalHomePage', $post); //$this->exec_curl($ch, $SCHULPORTAL_BASE_URL . '/SecureSchulportalPortalHomePage', $post);
//debug($SCHULPORTAL_BASE_URL); //debug($SCHULPORTAL_BASE_URL);
//$this->exec_curl($ch, $SCHULPORTAL_BASE_URL . '/InternalSite/Validate.asp', $post); //$this->exec_curl($ch, $SCHULPORTAL_BASE_URL . '/InternalSite/Validate.asp', $post);
@@ -216,9 +214,10 @@ class AsdCurl
if(!($this->status)) { if(!($this->status)) {
die($this->error); die($this->error);
} }
//debug($this);die;
//debug($this->html);die; //debug($this->html);die;
//$this->exec_curl($ch, $SCHULPORTAL_BASE_URL . '/SecureSchulportalPortalHomePage/',false); //$this->exec_curl($ch, $SCHULPORTAL_BASE_URL . '/SecureSchulportalPortalHomePage/',false);
//debug($this->html);die; //echo $this->html;die;
} }
public function exec_mstr($ch, $url, $post) public function exec_mstr($ch, $url, $post)

View File

@@ -57,7 +57,7 @@ class AsdUs extends AsdCurl
public function save_us_data($ch,$env) { public function save_us_data($ch,$env) {
$SCHULPORTAL_ASD_BASE_URL = Configure::read('AsdCurl.asdbaseurl.'.$env); $SCHULPORTAL_ASD_BASE_URL = Configure::read('AsdCurl.asdbaseurl.'.$env);
// Maske US 01 01 vom linken Menü aufrufen // Maske US 01 01 vom linken Menü aufrufen
$viewstate = $this->get_string_between($this->html, 'id="javax.faces.ViewState" value="', '" autocomplete'); $viewstate = $this->get_string_between($this->html, 'id="j_id1:javax.faces.ViewState:0" value="', '" autocomplete');
$conversationId = $this->get_string_between($this->html, 'name="conversationId" value="', '" />'); $conversationId = $this->get_string_between($this->html, 'name="conversationId" value="', '" />');
$post = [ $post = [
'sideMenu' => 'sideMenu', 'sideMenu' => 'sideMenu',
@@ -70,7 +70,7 @@ class AsdUs extends AsdCurl
} }
//echo $this->html;die; //echo $this->html;die;
// In Maske US 01 01 alle Felder leer lassen und "Suchen" ausführen // In Maske US 01 01 alle Felder leer lassen und "Suchen" ausführen
$viewstate = $this->get_string_between($this->html, 'id="javax.faces.ViewState" value="', '" autocomplete'); $viewstate = $this->get_string_between($this->html, 'id="j_id1:javax.faces.ViewState:0" value="', '" autocomplete');
$conversationId = $this->get_string_between($this->html, 'name="conversationId" value="', '" />'); $conversationId = $this->get_string_between($this->html, 'name="conversationId" value="', '" />');
$post = [ $post = [
'mainForm' => 'mainForm', 'mainForm' => 'mainForm',
@@ -109,14 +109,16 @@ class AsdUs extends AsdCurl
} }
//echo $this->html; //echo $this->html;
// Auf der Ergebnisseite auf "Alle" Klicken // Auf der Ergebnisseite auf "Alle" Klicken
$viewstate = $this->get_string_between($this->html, 'id="javax.faces.ViewState" value="', '" autocomplete'); $viewstate = $this->get_string_between($this->html, 'id="j_id1:javax.faces.ViewState:0" value="', '" autocomplete');
$conversationId = $this->get_string_between($this->html, 'name="conversationId" value="', '" />'); $conversationId = $this->get_string_between($this->html, 'name="conversationId" value="', '" />');
$htmlParser = new \DOMDocument(); //to parse html using DOMDocument $htmlParser = new \DOMDocument(); //to parse html using DOMDocument
libxml_use_internal_errors(true); // your HTML gives parser warnings, keep them internal libxml_use_internal_errors(true); // your HTML gives parser warnings, keep them internal
$htmlParser->loadHTML($this->html); //Loaded the html string we took from simple xml $htmlParser->loadHTML($this->html); //Loaded the html string we took from simple xml
//debug($this->html);
$htmlParser->preserveWhiteSpace = false; $htmlParser->preserveWhiteSpace = false;
$hrefs = $htmlParser->getElementsByTagName('a'); $hrefs = $htmlParser->getElementsByTagName('a');
//debug($hrefs);die;
foreach($hrefs as $href) { foreach($hrefs as $href) {
if($href->textContent == 'ALLE') { if($href->textContent == 'ALLE') {
foreach ($href->attributes as $attribute) { foreach ($href->attributes as $attribute) {
@@ -197,22 +199,31 @@ class AsdUs extends AsdCurl
} }
public function save_up_data($ch,$env) { public function save_up_data($ch,$env) {
//echo $this->html;die;
$SCHULPORTAL_ASD_BASE_URL = Configure::read('AsdCurl.asdbaseurl.'.$env); $SCHULPORTAL_ASD_BASE_URL = Configure::read('AsdCurl.asdbaseurl.'.$env);
// Maske US 01 01 vom linken Menü aufrufen // Maske US 01 01 vom linken Menü aufrufen
$viewstate = $this->get_string_between($this->html, 'id="javax.faces.ViewState" value="', '" autocomplete'); //$viewstate = $this->get_string_between($this->html, 'id="javax.faces.ViewState" value="', '" autocomplete');
$viewstate = $this->get_string_between($this->html, 'id="j_id1:javax.faces.ViewState:0" value="', '" autocomplete');
$conversationId = $this->get_string_between($this->html, 'name="conversationId" value="', '" />'); $conversationId = $this->get_string_between($this->html, 'name="conversationId" value="', '" />');
//debug($viewstate);
//debug($conversationId);
$post = [ $post = [
'sideMenu' => 'sideMenu', 'sideMenu' => 'sideMenu',
'javax.faces.ViewState' => $viewstate, 'javax.faces.ViewState' => $viewstate,
'sideMenu:j_idt52:0:j_idt58:1:j_idt60' => 'sideMenu:j_idt52:0:j_idt58:1:j_idt60', 'sideMenu:j_idt52:0:j_idt58:1:j_idt60' => 'sideMenu:j_idt52:0:j_idt58:1:j_idt60',
]; ];
$this->exec_curl($ch, $SCHULPORTAL_ASD_BASE_URL . '/asdup/up_18_01.jsf?cid=' . $conversationId, $post); //$this->exec_curl($ch, $SCHULPORTAL_ASD_BASE_URL . '/asdup/up_18_01.jsf?cid=' . $conversationId, $post);
$this->exec_curl($ch, $SCHULPORTAL_ASD_BASE_URL . '/asdup/up_00_00.jsf?cid=' . $conversationId, $post);
if(!($this->status)) { if(!($this->status)) {
die($this->error); die($this->error);
} }
//echo $this->html;die;
// In Maske US 01 01 alle Felder leer lassen und "Suchen" ausführen // In Maske US 01 01 alle Felder leer lassen und "Suchen" ausführen
$viewstate = $this->get_string_between($this->html, 'id="javax.faces.ViewState" value="', '" autocomplete'); //$viewstate = $this->get_string_between($this->html, 'id="javax.faces.ViewState" value="', '" autocomplete');
$viewstate = $this->get_string_between($this->html, 'id="j_id1:javax.faces.ViewState:0" value="', '" autocomplete');
$conversationId = $this->get_string_between($this->html, 'name="conversationId" value="', '" />'); $conversationId = $this->get_string_between($this->html, 'name="conversationId" value="', '" />');
//debug($viewstate);
//debug($conversationId);
$post = [ $post = [
'mainForm' => 'mainForm', 'mainForm' => 'mainForm',
'referenzBaumAnzeigen' => 'false', 'referenzBaumAnzeigen' => 'false',
@@ -243,17 +254,21 @@ class AsdUs extends AsdCurl
'mainForm:action_suchen' => 'Suchen', 'mainForm:action_suchen' => 'Suchen',
'javax.faces.ViewState' => $viewstate, 'javax.faces.ViewState' => $viewstate,
]; ];
//debug($post);
$this->exec_curl($ch, $SCHULPORTAL_ASD_BASE_URL . '/asdup/up_03_01.jsf?cid=' . $conversationId, $post); $this->exec_curl($ch, $SCHULPORTAL_ASD_BASE_URL . '/asdup/up_03_01.jsf?cid=' . $conversationId, $post);
if(!($this->status)) { if(!($this->status)) {
die($this->error); die($this->error);
} }
//debug($this->html);die;
$htmlParser = new \DOMDocument(); //to parse html using DOMDocument $htmlParser = new \DOMDocument(); //to parse html using DOMDocument
libxml_use_internal_errors(true); // your HTML gives parser warnings, keep them internal libxml_use_internal_errors(true); // your HTML gives parser warnings, keep them internal
$htmlParser->loadHTML($this->html); //Loaded the html string we took from simple xml $htmlParser->loadHTML($this->html); //Loaded the html string we took from simple xml
$htmlParser->preserveWhiteSpace = false; $htmlParser->preserveWhiteSpace = false;
$hrefs = $htmlParser->getElementsByTagName('a'); $hrefs = $htmlParser->getElementsByTagName('a');
//debug($hrefs);
foreach($hrefs as $href) { foreach($hrefs as $href) {
debug($href->textContent);
if($href->textContent == 'ALLE') { if($href->textContent == 'ALLE') {
foreach ($href->attributes as $attribute) { foreach ($href->attributes as $attribute) {
if($attribute->name == 'onclick') { if($attribute->name == 'onclick') {
@@ -264,9 +279,11 @@ class AsdUs extends AsdCurl
} }
} }
} }
//echo $this->html;die; //debug($linkid);
//debug($this->html);die;
// Auf der Ergebnisseite auf "Alle" Klicken // Auf der Ergebnisseite auf "Alle" Klicken
$viewstate = $this->get_string_between($this->html, 'id="javax.faces.ViewState" value="', '" autocomplete'); //$viewstate = $this->get_string_between($this->html, 'id="javax.faces.ViewState" value="', '" autocomplete');
$viewstate = $this->get_string_between($this->html, 'id="j_id1:javax.faces.ViewState:0" value="', '" autocomplete');
$conversationId = $this->get_string_between($this->html, 'name="conversationId" value="', '" />'); $conversationId = $this->get_string_between($this->html, 'name="conversationId" value="', '" />');
//$mainform = $this->get_string_between($this->html, '\\\':\\\'', '\\\'},\\\'\\\')\');return false\" class=\"ignoreChangeNotification notBold\">ALLE</a>'); //$mainform = $this->get_string_between($this->html, '\\\':\\\'', '\\\'},\\\'\\\')\');return false\" class=\"ignoreChangeNotification notBold\">ALLE</a>');
//debug($mainform);die; //debug($mainform);die;
@@ -285,12 +302,14 @@ class AsdUs extends AsdCurl
'mainForm:istAnzeigeMaske' => 'false', 'mainForm:istAnzeigeMaske' => 'false',
'javax.faces.ViewState' => $viewstate, 'javax.faces.ViewState' => $viewstate,
'mainForm:j_idt'.$linkid => 'mainForm:j_idt'.$linkid 'mainForm:j_idt'.$linkid => 'mainForm:j_idt'.$linkid
//'mainForm:j_idt189' => 'mainForm:j_idt189'
]; ];
//debug($post);
$this->exec_curl($ch, $SCHULPORTAL_ASD_BASE_URL . '/asdup/up_03_02.jsf?cid=' . $conversationId, $post); $this->exec_curl($ch, $SCHULPORTAL_ASD_BASE_URL . '/asdup/up_03_02.jsf?cid=' . $conversationId, $post);
if(!($this->status)) { if(!($this->status)) {
die($this->error); die($this->error);
} }
//echo $this->html;die; //debug($this->html);die;
// Ergebnisse parsen und in die MySQL - Datenbank schreiben // Ergebnisse parsen und in die MySQL - Datenbank schreiben
$htmlParser = new \DOMDocument(); //to parse html using DOMDocument $htmlParser = new \DOMDocument(); //to parse html using DOMDocument
libxml_use_internal_errors(true); // your HTML gives parser warnings, keep them internal libxml_use_internal_errors(true); // your HTML gives parser warnings, keep them internal

View File

@@ -13,7 +13,7 @@ class CurlsController extends AppController
{ {
public function beforeFilter(Event $event) { public function beforeFilter(Event $event) {
//$this->Auth->setConfig('checkAuthIn', 'Controller.initialize'); //$this->Auth->setConfig('checkAuthIn', 'Controller.initialize');
$this->Auth->allow(['saveus','getjsonus','saveup','getjsonup','usStatistik','usStatistikPara','upStatistik','upStatistikPara','hackasd']); $this->Auth->allow(['saveus','getjsonus','saveup','getjsonup','usStatistik','usStatistikPara','upStatistik','upStatistikTest','upStatistikPara','hackasd']);
} }
//public $uses = array('Monitoring'); //public $uses = array('Monitoring');
@@ -202,6 +202,15 @@ class CurlsController extends AppController
$this->viewBuilder()->layout('pivot'); $this->viewBuilder()->layout('pivot');
} }
public function upStatistikTest() {
$file = new File('/var/www/html/asd-control/webroot/files/test.json', true, 0644);
$ts = $file->lastChange();
$time = Time::createFromTimestamp($ts);
$time->timezone = 'Europe/Paris';
$this->set('time', $time);
$this->viewBuilder()->layout('pivotdatatables');
}
public function upStatistikPara() { public function upStatistikPara() {
$file = new File('/var/www/html/asd-control/webroot/files/para-data-up.json', true, 0644); $file = new File('/var/www/html/asd-control/webroot/files/para-data-up.json', true, 0644);
$ts = $file->lastChange(); $ts = $file->lastChange();

View File

@@ -180,7 +180,7 @@ class EmailsController extends AppController
$email $email
->emailFormat('html') ->emailFormat('html')
->from(['abschlusspruefung@schulen.bayern.de' => 'Abschlusspruefung']) ->from(['abschlusspruefung@schulen.bayern.de' => 'Abschlusspruefung'])
//->to('asd.trinkl@schulen.bayern.de') //->to('asd.statistik@schulen.bayern.de')
->to($mail->snr . '@schulen.bayern.de') ->to($mail->snr . '@schulen.bayern.de')
->cc('abschlusspruefung@schulen.bayern.de') ->cc('abschlusspruefung@schulen.bayern.de')
->template('abschluss') ->template('abschluss')
@@ -190,6 +190,7 @@ class EmailsController extends AppController
$mail['sent'] = 1; $mail['sent'] = 1;
//$line = $this->Apimports->patchEntity($line, (array) $data); //$line = $this->Apimports->patchEntity($line, (array) $data);
$result = $this->Emails->save($mail); $result = $this->Emails->save($mail);
//die;
} }
//die; //die;
return $this->redirect(['controller' => 'Apresults', 'action' => 'export']); return $this->redirect(['controller' => 'Apresults', 'action' => 'export']);
@@ -236,7 +237,8 @@ class EmailsController extends AppController
$data->text .= '<tr><td align="left">'. $item->anzahl . '</td><td align="left">' . $item->schuelerstatus .'</td></tr>'; $data->text .= '<tr><td align="left">'. $item->anzahl . '</td><td align="left">' . $item->schuelerstatus .'</td></tr>';
} }
$data->text .= '</table>'; $data->text .= '</table>';
$data->text .= '<p>Bitte überprüfen Sie diese Ergebnisse sorgfältig und wenden Sie sich umgehend an den ASV Support, falls Unstimmigkeiten auftreten sollten.</p>'; $data->text .= '<p>Bitte überprüfen Sie ob die Anzahl der Prüflinge, externen Prüfungsteilnehmer und insbesondere die der <b>Nichtschüler</b> plausibel ist.</p>';
$data->text .= '<p>Wenden Sie sich bitte umgehend an den ASV Support, falls Unstimmigkeiten auftreten sollten.</p>';
$data->text .= '<p>Ihr ASD-Team</p>'; $data->text .= '<p>Ihr ASD-Team</p>';
//debug($data); //debug($data);
@@ -283,7 +285,9 @@ class EmailsController extends AppController
$data->lieferung = trim($row[5]); $data->lieferung = trim($row[5]);
$line = $this->Apimports->newEntity(); $line = $this->Apimports->newEntity();
$line = $this->Apimports->patchEntity($line, (array) $data); $line = $this->Apimports->patchEntity($line, (array) $data);
//debug($line);
$result = $this->Apimports->save($line); $result = $this->Apimports->save($line);
//debug($result);
//$i++; //$i++;
} }
//die; //die;

View File

@@ -4,6 +4,7 @@ namespace App\Controller;
use App\Controller\AppController; use App\Controller\AppController;
use Cake\Mailer\Email; use Cake\Mailer\Email;
use Cake\Event\Event;
/** /**
* Examinations Controller * Examinations Controller
@@ -12,6 +13,11 @@ use Cake\Mailer\Email;
*/ */
class ExaminationsController extends AppController { class ExaminationsController extends AppController {
public function beforeFilter(Event $event) {
//$this->Auth->setConfig('checkAuthIn', 'Controller.initialize');
$this->Auth->allow(['sendresult']);
}
public function sendresult() { public function sendresult() {
$email = new Email('default'); $email = new Email('default');
$email->from(['asd.trinkl@schulen.bayern.de' => 'ASD Trinkl']) $email->from(['asd.trinkl@schulen.bayern.de' => 'ASD Trinkl'])

View File

@@ -17,7 +17,7 @@ class ImportsController extends AppController {
public function beforeFilter(Event $event) { public function beforeFilter(Event $event) {
//$this->Auth->setConfig('checkAuthIn', 'Controller.initialize'); //$this->Auth->setConfig('checkAuthIn', 'Controller.initialize');
//$this->Auth->allow('ftp','ftpAnalyse','ftp_analyse','index'); //$this->Auth->allow('ftp','ftpAnalyse','ftp_analyse','index');
$this->Auth->allow(['ftp','ftpanalyse']); $this->Auth->allow(['ftp','ftpanalyse','ftpGetJson']);
} }
@@ -137,6 +137,45 @@ class ImportsController extends AppController {
} }
public function ftpGetJson() {
$ftp_server = "10.190.22.35";
$ftp_port = "2587";
$ftp_user = "LfStaD-Log";
$ftp_pass = "135!Log!086";
$local_file = '/var/www/html/asd-control/webroot/files/test.zip';
$zip_pass = 'z&bwr8zx3$$)';
$local_folder = '/var/www/html/asd-control/webroot/files';
$conn_id = ftp_connect($ftp_server, $ftp_port) or die("Couldn't connect to $ftp_server");
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
echo "Angemeldet als $ftp_user@$ftp_server\n";
} else {
echo "Anmeldung als $ftp_user nicht möglich\n";
}
ftp_get($conn_id, $local_file, 'AB-1928_data_up_2021.zip', FTP_BINARY);
$zip = new ZipArchive();
$zip_status = $zip->open($local_file);
if ($zip_status === true) {
if ($zip->setPassword($zip_pass)) {
if (!$zip->extractTo($local_folder))
echo "Extraction failed (wrong password?)";
}
//debug($zip->statIndex(0));
$file = $zip->statIndex(0)['name'];
//debug($file);
//debug($file);
$zip->close();
}
else {
die("Failed opening archive: " . @$zip->getStatusString() . " (code: " . $zip_status . ")");
}
rename($local_folder. DS . $file,'/var/www/html/asd-control/webroot/files/data-up.json');
}
public function ftp() { public function ftp() {
$ftp_server = "10.190.22.35"; $ftp_server = "10.190.22.35";
$ftp_port = "2587"; $ftp_port = "2587";
@@ -157,8 +196,9 @@ class ImportsController extends AppController {
ftp_chdir($conn_id, 'ap-csv'); ftp_chdir($conn_id, 'ap-csv');
$contents = ftp_nlist($conn_id, "."); $contents = ftp_nlist($conn_id, ".");
//debug($contents); //debug($contents);
$abschluss = array_search('AB-341_Abschlusspruefung_2019_PROD.zip',$contents); //$abschluss = array_search('AB-1153_Abschlusspruefung_2020_VorProd.zip',$contents);
debug($abschluss); $abschluss = array_search('AB-1189_Abschlusspruefung_2020_Prod.zip',$contents);
//debug($abschluss);
//die; //die;
ftp_get($conn_id, $local_file, $contents[$abschluss], FTP_BINARY); ftp_get($conn_id, $local_file, $contents[$abschluss], FTP_BINARY);
@@ -180,7 +220,8 @@ class ImportsController extends AppController {
die("Failed opening archive: " . @$zip->getStatusString() . " (code: " . $zip_status . ")"); die("Failed opening archive: " . @$zip->getStatusString() . " (code: " . $zip_status . ")");
} }
rename('/test/results/'.$file,'/var/www/html/asd-control/webroot/files/ap/results.csv'); rename('/test/results/'.$file,'/var/www/html/asd-control/webroot/files/ap/results.csv');
exec('/usr/bin/smbclient -U \'BAYKM/km-tri-wil%HiegTzs!193\' //KM-Svr-Daten/Projektshare -c \'cd /14_Materialien/Austausch/WiTr/ap; put /var/www/html/asd-control/webroot/files/ap/results.csv results-ap.csv\''); //die;
//exec('/usr/bin/smbclient -U \'BAYKM/km-tri-wil%HiegTzs!202\' //KM-Svr-Daten/Projektshare -c \'cd /14_Materialien/Austausch/WiTr/ap; put /var/www/html/asd-control/webroot/files/ap/results.csv results-ap.csv\'');
//die; //die;
//debug($contents);die; //debug($contents);die;
@@ -210,6 +251,8 @@ class ImportsController extends AppController {
$this->csv2db($job); $this->csv2db($job);
} */ } */
ftp_close($conn_id); ftp_close($conn_id);
//debug($file);
//die;
return $this->redirect(['controller' => 'Emails', 'action' => 'import']); return $this->redirect(['controller' => 'Emails', 'action' => 'import']);
} }

View File

@@ -3,6 +3,7 @@ namespace App\Controller;
use App\Controller\AppController; use App\Controller\AppController;
//use Cake\ORM\TableRegistry; //use Cake\ORM\TableRegistry;
use Cake\Event\Event;
/** /**
* Offices Controller * Offices Controller
@@ -11,6 +12,10 @@ use App\Controller\AppController;
*/ */
class OfficesController extends AppController class OfficesController extends AppController
{ {
public function beforeFilter(Event $event) {
//$this->Auth->setConfig('checkAuthIn', 'Controller.initialize');
$this->Auth->allow(['importdst']);
}
public function importdst() { public function importdst() {
@@ -19,7 +24,7 @@ class OfficesController extends AppController
//debug($this->request['data']);die; //debug($this->request['data']);die;
$options = [ $options = [
'length' => 0, 'length' => 0,
'delimiter' => ',', 'delimiter' => ';',
'enclosure' => '"', 'enclosure' => '"',
'escape' => '\\', 'escape' => '\\',
'headers' => false, 'headers' => false,
@@ -79,7 +84,9 @@ class OfficesController extends AppController
'text' => false, 'text' => false,
'excel_bom' => false, 'excel_bom' => false,
]; ];
//debug($this->request['data']['file']);
$handle = fopen($this->request['data']['file']['tmp_name'], "r"); $handle = fopen($this->request['data']['file']['tmp_name'], "r");
//die;
$i = 0; $i = 0;
while ($row = fgetcsv($handle, $options['length'], $options['delimiter'])) { while ($row = fgetcsv($handle, $options['length'], $options['delimiter'])) {
$data = array(); $data = array();

View File

@@ -1,48 +1,23 @@
<?php <?php
echo '<h4 style="margin-left: 30px;">UP 2020 (PARA) - Stand: ' . $time->i18nFormat('dd.MM.yyyy HH:mm') . '</h4>'; echo '<h4 style="margin-left: 30px;">UP 2021 (PARA) - Stand: ' . $time->i18nFormat('dd.MM.yyyy HH:mm') . '</h4>';
?> ?>
<script type="text/javascript"> <script type="text/javascript">
$(function(){ $(function(){
var origin = window.location.origin; var origin = window.location.origin;
if (typeof $.cookie('pivotOrg') === 'undefined'){
var org = true;
console.log(org);
$.cookie("pivotOrg", JSON.stringify(org), { expires: 1 });
}
else {
var org = JSON.parse($.cookie("pivotOrg"));
}
//console.log(origin);
console.log(origin); console.log(origin);
if (origin == 'http://km-pc-asd-ap.stmukwk.bayern.de') { if (origin == 'http://km-pc-asd-ap.stmukwk.bayern.de') {
jsonurl = '/files/para-data-up.json'; jsonurl = '/files/para-data-up.json?nocache=' + (new Date()).getTime();;
} }
else { else {
jsonurl = '/asd-control/files/para-data-up.json'; jsonurl = '/asd-control/files/para-data-up.json?nocache=' + (new Date()).getTime();;
} }
$.getJSON(jsonurl, function(mps) { $.getJSON(jsonurl, function(mps) {
if (typeof $.cookie('pivotConfig') === 'undefined'){
cookie = {};
cookie.rows = ["Schulart"];
cookie.cols = ["Übermittlungsstatus"];
}
else {
var cookie = JSON.parse($.cookie("pivotConfig"));
if (cookie == null || org == true ) {
cookie = {};
cookie.rows = ["Schulart"];
cookie.cols = ["Übermittlungsstatus"];
}
}
//console.log(cookie.exclusions);
$("#output").pivotUI(mps, { $("#output").pivotUI(mps, {
rows: cookie.rows, rows: ["Schulart"],
cols: cookie.cols, cols: ["Übermittlungsstatus"],
exclusions: cookie.exclusions,
autoSortUnusedAttrs: true, autoSortUnusedAttrs: true,
sorters:{ sorters:{
Übermittlungsstatus: $.pivotUtilities.sortAs( Übermittlungsstatus: $.pivotUtilities.sortAs(
@@ -51,11 +26,29 @@ echo '<h4 style="margin-left: 30px;">UP 2020 (PARA) - Stand: ' . $time->i18nForm
rendererOptions: { rendererOptions: {
table: { table: {
clickCallback: function(e, value, filters, pivotData){ clickCallback: function(e, value, filters, pivotData){
//console.log(filters); console.log(filters);
$( "#heading").text(filters.Schulart + ' - ' + filters.Übermittlungsstatus); if (typeof(filters.Schulart) == "undefined") {
Schulart = "Alle";
}
else {
Schulart = filters.Schulart;
}
if (typeof(filters.Übermittlungsstatus) == "undefined") {
Übermittlungsstatus = "Alle";
}
else {
Übermittlungsstatus = filters.Übermittlungsstatus;
}
$( "#heading").html('<table class="result"><tr><td>Schulart</td><td>Übermittlungsstatus</td></tr><tr><td>' + Schulart + '</td><td>' + Übermittlungsstatus + '</td></tr></table');
var names = []; var names = [];
pivotData.forEachMatchingRecord(filters, pivotData.forEachMatchingRecord(filters,
function(record){ names.push(record.Schule + ' (' + record.Datum.substring(0,10) + ' ' + record.Datum.substring(11,19) + ')'); }); function(record){ names.push(record.Schule + ' (' + record.Datum.substring(0,10) + ')'); });
//alert(pivotData.getColKeys());
//alert(pivotData.colKeys);
//pivotData.colKeys.push('Hallo');
//alert(pivotData.colKeys);
//pivotData.applyFilter();
//alert(names.join("\n"));
list = '<ul>'; list = '<ul>';
$.each(names, function() { $.each(names, function() {
list += '<li>' + this + '</li>'; list += '<li>' + this + '</li>';
@@ -66,35 +59,6 @@ echo '<h4 style="margin-left: 30px;">UP 2020 (PARA) - Stand: ' . $time->i18nForm
} }
} }
}); });
$("#standard").on("click", function(){
org = true;
console.log(org);
$.cookie("pivotOrg", JSON.stringify(org), { expires: 1 });
window.location.reload(true);
});
$("#load").on("click", function(){
org = false;
console.log(org);
$.cookie("pivotOrg", JSON.stringify(org), { expires: 1 });
window.location.reload(true);
});
$("#save").on("click", function(){
var config = $("#output").data("pivotUIOptions");
//console.log(config);
var config_copy = JSON.parse(JSON.stringify(config));
//console.log(config_copy);
//delete some values which will not serialize to JSON
delete config_copy["aggregators"];
delete config_copy["renderers"];
$.cookie("pivotConfig", JSON.stringify(config_copy), { expires: 365 });
});
$("#del").on("click", function(){
//$.cookie("pivotConfig", null, { path: '/' });
$.cookie("pivotConfig", null);
window.location.reload(true);
});
}); });
}); });

View File

@@ -0,0 +1,113 @@
<?php
echo '<h4 style="margin-left: 30px;">UP ' . date("Y") .' - Stand: ' . $time->i18nFormat('dd.MM.yyyy HH:mm') . '</h4>';
?>
<script type="text/javascript">
//var data;
//var hot;
$(function(){
if (origin == 'http://km-pc-asd-ap.stmukwk.bayern.de') {
jsonurl = '/files/test.json?nocache=' + (new Date()).getTime();
}
else {
jsonurl = '/asd-control/files/test.json?nocache=' + (new Date()).getTime();
}
$.getJSON(jsonurl, function(mps) {
//console.log(mps);
data = mps;
//console.log(data);
$("#output").pivotUI(mps, {
rows: ["Schulart"],
cols: ["Übermittlungsstatus"],
autoSortUnusedAttrs: true,
sorters:{
Übermittlungsstatus: $.pivotUtilities.sortAs(
["n. überm. (kein Liefervers.)", "Schulaufs. abgelehnt", "übermittelt (PL-Fehler)", "n. überm. (Lieferversuch)" , "übermittelt (keine PL-Fehler)", "abgegeben", "Schulaufs. freigegeben"]
)},
rendererOptions: {
table: {
clickCallback: function(e, value, filters, pivotData){
//console.log(filters);
if (typeof(filters.Schulart) == "undefined") {
Schulart = "Alle";
}
else {
Schulart = filters.Schulart;
}
if (typeof(filters.Übermittlungsstatus) == "undefined") {
Übermittlungsstatus = "Alle";
}
else {
Übermittlungsstatus = filters.Übermittlungsstatus;
}
$( "#heading").html('<table class="result"><tr><td>Schulart</td><td>Übermittlungsstatus</td></tr><tr><td>' + Schulart + '</td><td>' + Übermittlungsstatus + '</td></tr></table');
var names = [];
//console.log(pivotData);
jsonarray = [];
//console.log(data);
pivotData.forEachMatchingRecord(filters,
function(record){
//console.log(record);
// console.log(JSON.parse(record));
//names.push(record.Schule + ' (' + record.Datum.substring(0,10) + ')');
jsonarray.push([record.SNR,record.Schule,record.Dienststellentyp,record.MB_Bezirk,record.Regierung,record.Schulamt,record.Datum]);
});
//console.log(jsonarray);
$(function(){
//table.destroy();
//console.log(jsonarray);
//console.log(JSON.parse(jsonarray));
table = $('#example').DataTable( {
dom: 'Bfrtipl',
lengthMenu: [ [-1, 10, 25, 50], ["Alle", 10, 25, 50] ],
buttons: [
'copy', 'excel', 'pdf'
],
destroy: true,
data: jsonarray,
columns: [
{ title: "SNR" },
{ title: "Schule" },
{ title: "Typ" },
{ title: "MB_Bezirk" },
{ title: "Regierung" },
{ title: "Schulamt" },
{ title: "Datum" }
],
language: {
url: '/asd-control/js/German.json'
}
} );
});
//console.log(hot);
//hot.ajax.reload();
//alert(pivotData.getColKeys());
//alert(pivotData.colKeys);
//pivotData.colKeys.push('Hallo');
//alert(pivotData.colKeys);
//pivotData.applyFilter();
//alert(names.join("\n"));
/*list = '<ul>';
$.each(names, function() {
list += '<li>' + this + '</li>';
});
list += '</ul>'; */
//$( "#schools" ).html(list);
}
}
}
});
});
});
</script>
<div id="output" style="margin-left: 30px;"></div>
<p id="heading" style="margin-left: 30px;font-weight: bold;"><p>
<!-- <div id="schools" style="margin-left: 30px;"></div> -->
<table id="example" class="display" style="width:100%"></div>

View File

@@ -1,5 +1,5 @@
<?php <?php
echo '<h4 style="margin-left: 30px;">US 2019 (PROD) - Stand: ' . $time->i18nFormat('dd.MM.yyyy HH:mm') . '</h4>'; echo '<h4 style="margin-left: 30px;">US 2020 (PROD) - Stand: ' . $time->i18nFormat('dd.MM.yyyy HH:mm') . '</h4>';
?> ?>
<script type="text/javascript"> <script type="text/javascript">

View File

@@ -1,5 +1,5 @@
<?php <?php
echo '<h4 style="margin-left: 30px;">US 2019 (PARA) - Stand: ' . $time->i18nFormat('dd.MM.yyyy HH:mm') . '</h4>'; echo '<h4 style="margin-left: 30px;">US 2020 (PARA) - Stand: ' . $time->i18nFormat('dd.MM.yyyy HH:mm') . '</h4>';
?> ?>
<script type="text/javascript"> <script type="text/javascript">
@@ -16,12 +16,11 @@ echo '<h4 style="margin-left: 30px;">US 2019 (PARA) - Stand: ' . $time->i18nForm
} }
//console.log(origin); //console.log(origin);
console.log(origin);
if (origin == 'http://km-pc-asd-ap.stmukwk.bayern.de') { if (origin == 'http://km-pc-asd-ap.stmukwk.bayern.de') {
jsonurl = '/files/para-data-us.json'; jsonurl = '/files/para-data-us.json?nocache=' + (new Date()).getTime();
} }
else { else {
jsonurl = '/asd-control/files/para-data-us.json'; jsonurl = '/asd-control/files/para-data-us.json?nocache=' + (new Date()).getTime();
} }
$.getJSON(jsonurl, function(mps) { $.getJSON(jsonurl, function(mps) {
if (typeof $.cookie('pivotConfig') === 'undefined'){ if (typeof $.cookie('pivotConfig') === 'undefined'){

View File

View File

@@ -0,0 +1,56 @@
<?php
/**
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
*
* Licensed under The MIT License
* For full copyright and license information, please see the LICENSE.txt
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
* @link http://cakephp.org CakePHP(tm) Project
* @since 0.10.0
* @license http://www.opensource.org/licenses/mit-license.php MIT License
*/
$cakeDescription = 'ASD - Control';
?>
<!DOCTYPE html>
<html>
<head>
<?= $this->Html->charset() ?>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>
<?= $cakeDescription ?>:
<?= $this->fetch('title') ?>
</title>
<?= $this->Html->meta('icon') ?>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="-1">
<?= $this->Html->css('base.css') ?>
<?= $this->Html->css('pivot.css') ?>
<?= $this->Html->css('datatables') ?>
<?= $this->Html->css('pivot-costum.css') ?>
<?= $this->Html->script('jquery.min') ?>
<?= $this->Html->script('jquery-ui.min') ?>
<?= $this->Html->script('jquery.cookie.min') ?>
<?= $this->Html->script('pivot') ?>
<?= $this->Html->script('datatables') ?>
<?= $this->fetch('meta') ?>
<?= $this->fetch('css') ?>
<?= $this->fetch('script') ?>
</head>
<body>
<div class="container clearfix">
<?= $this->fetch('content') ?>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 B

1277
webroot/css/datatables.css Normal file

File diff suppressed because it is too large Load Diff

21
webroot/css/datatables.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -4,3 +4,25 @@
font-weight: bold; font-weight: bold;
width: 265px; width: 265px;
} }
.dataTables_wrapper .dataTables_length select {
border: 1px solid #aaa;
border-radius: 3px;
padding: 5px;
background-color: transparent;
padding: 4px;
margin-left: 0px;
}
.dataTables_wrapper .dataTables_filter input {
border: 1px solid #aaa;
border-radius: 3px;
padding: 5px;
background-color: transparent;
margin-left: 3px;
margin-right: 10px;
}
.dataTables_wrapper {
margin-left: 30px;
margin-right: 10px;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,33 @@
[{"Dienststellentyp":"staatlich","MB_Bezirk":"MB RS Obb-O","Regierung":"N/A","Schulamt":"N/A","Schulart":"Realschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"1079 Staatl. Realschule Freising II, Realschule Gute Änger","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB GYM Obb-O","Regierung":"N/A","Schulamt":"N/A","Schulart":"Gymnasium","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9306 TestGy-NTG-SG-MUS","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB GYM Obb-O","Regierung":"N/A","Schulamt":"N/A","Schulart":"Gymnasium","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9310 TestGymOberbayernOst","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB GYM Obb-O","Regierung":"N/A","Schulamt":"N/A","Schulart":"Gymnasium","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9311 TestGymOberbayernASD","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"Priv-Ersatz","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"N/A","Schulart":"Förderzentrum","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9315 Test1VSFOberbayern","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"SAM München","Schulart":"Grundsch.sow.Mittelschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9316 TestGS","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"SAM München","Schulart":"Grundsch.sow.Mittelschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9317 TestMS","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"Priv-Ersatz","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"N/A","Schulart":"Förderzentrum","Übermittlungsstatus":"abgegeben","Schule":"9318 TestFZOberbayernASD","Datum":"19.05.2021 09:33"},
{"Dienststellentyp":"kommunal","MB_Bezirk":"MB RS Obb-W","Regierung":"N/A","Schulamt":"N/A","Schulart":"Realschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9321 TestRSOberbayernOst","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"SAM Rosenheim L","Schulart":"Grundsch.sow.Mittelschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9322 TestVSOberbayernS187","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"SAM Rosenheim L","Schulart":"Grundsch.sow.Mittelschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9323 TestGSOberbayernS187","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"SAM Rosenheim L","Schulart":"Grundsch.sow.Mittelschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9324 TestHSOberbayernS187","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"SAM München","Schulart":"Grundsch.sow.Mittelschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9346 TestGSOberbayernWest","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"SAM München","Schulart":"Grundsch.sow.Mittelschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9347 TestMSOberbayernWest mit BV","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"Priv-Ersatz","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"SAM München L","Schulart":"Grundsch.sow.Mittelschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9348 Test-GMS am Arabellabogen","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"N/A","Schulart":"Schule für Kranke","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9353 Testschule für Kranke","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB RS Obb-W","Regierung":"N/A","Schulamt":"N/A","Schulart":"Realschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9400 TestRS2OberbayernOst","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB RS Obb-W","Regierung":"N/A","Schulamt":"N/A","Schulart":"Realschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9401 TestRSOberbayernASD","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB RS Ofr","Regierung":"N/A","Schulamt":"N/A","Schulart":"Realschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9408 RS Testburg","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB RS Schw","Regierung":"N/A","Schulamt":"N/A","Schulart":"Realschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9409 RS Teststadt","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"N/A","Schulart":"Berufsschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9410 Test1BSOberbayern","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"N/A","Schulart":"Berufsfachschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9411 Test1BFSOberbayern","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB RS Ufr","Regierung":"N/A","Schulamt":"N/A","Schulart":"Realschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9418 RS Testdorf","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB RS Ndb","Regierung":"N/A","Schulamt":"N/A","Schulart":"Realschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9419 RS Testmühl","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"N/A","Schulart":"Wirtschaftsschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9423 Test2WSOberbayern","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"Priv-Ersatz","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"N/A","Schulart":"Freie Waldorfschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9460 Mini_FWS","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Ndb","Schulamt":"N/A","Schulart":"Förderzentrum","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9461 Mini_FZ","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB GYM Obb-O","Regierung":"N/A","Schulamt":"N/A","Schulart":"Gymnasium","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9463 Mini_GY","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB RS Obb-W","Regierung":"N/A","Schulamt":"N/A","Schulart":"Integrierte Gesamtschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9465 Mini_IGS","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB GYM Ndb","Regierung":"N/A","Schulamt":"N/A","Schulart":"Kolleg","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9466 Mini_KOL","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"kommunal","MB_Bezirk":"MB RS Obb-O","Regierung":"N/A","Schulamt":"N/A","Schulart":"Realschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9469 Mini_RS","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"N/A","Schulart":"Schule für Kranke","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9471 Mini_SKR","Datum":"01.10.2020 00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"N/A","Schulart":"Schule für Kranke","Übermittlungsstatus":"n. überm. (kein Liefervers.)","Schule":"9474 Mini_SKR","Datum":"01.10.2020 00:00"}]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,20 +1,35 @@
[ [{"Dienststellentyp":"staatlich","MB_Bezirk":"MB GYM Mfr","Regierung":"N/A","Schulamt":"N/A","Schulart":"Gymnasium","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"0001","Schule":"Leibniz-Gymnasium Altdorf","Datum":"2021-05-21 10:30:58"},
{"dst_typ":"Priv-Ersatz","schulart":"Gymnasium","uestatus":"abgegeben","schulname":"A.B. von Stettensches Institut Augsburg -Gymnasium-","schulnummer":"0024"}, {"Dienststellentyp":"staatlich","MB_Bezirk":"MB GYM Ufr","Regierung":"N/A","Schulamt":"N/A","Schulart":"Gymnasium","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"0003","Schule":"Spessart-Gymnasium Alzenau","Datum":"2021-05-21 10:29:52"},
{"dst_typ":"Priv-Ersatz","schulart":"Realschule","uestatus":"abgegeben","schulname":"A.B. von Stettensches Institut Augsburg Realschule f\u00fcr M\u00e4dchen","schulnummer":"0420"}, {"Dienststellentyp":"staatlich","MB_Bezirk":"MB RS Obb-O","Regierung":"N/A","Schulamt":"N/A","Schulart":"Realschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"1079","Schule":"Staatl. Realschule Freising II, Realschule Gute Änger","Datum":"2020-10-01 00:00:00"},
{"dst_typ":"kommunal","schulart":"Abendrealschule","uestatus":"\u00fcbermittelt (keine PL-Fehler)","schulname":"Abendrealschule f\u00fcr Berufst\u00e4tige der Stadt Augsburg","schulnummer":"0681"}, {"Dienststellentyp":"staatlich","MB_Bezirk":"MB GYM Obb-O","Regierung":"N/A","Schulamt":"N/A","Schulart":"Gymnasium","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9306","Schule":"TestGy-NTG-SG-MUS","Datum":"2020-10-01 00:00:00"},
{"dst_typ":"staatlich","schulart":"Grundsch.sow.Mittelschule","uestatus":"\u00fcbermittelt (keine PL-Fehler)","schulname":"Abt-Bachmeier-Grundschule Au\u00dfernzell","schulnummer":"3571"}, {"Dienststellentyp":"staatlich","MB_Bezirk":"MB GYM Obb-O","Regierung":"N/A","Schulamt":"N/A","Schulart":"Gymnasium","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9310","Schule":"TestGymOberbayernOst","Datum":"2020-10-01 00:00:00"},
{"dst_typ":"staatlich","schulart":"Grundsch.sow.Mittelschule","uestatus":"abgegeben","schulname":"Abt-Knauer-Grundschule Weismain","schulnummer":"5865"}, {"Dienststellentyp":"staatlich","MB_Bezirk":"MB GYM Obb-O","Regierung":"N/A","Schulamt":"N/A","Schulart":"Gymnasium","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9311","Schule":"TestGymOberbayernASD","Datum":"2020-10-01 00:00:00"},
{"dst_typ":"staatlich","schulart":"Grundsch.sow.Mittelschule","uestatus":"\u00fcbermittelt (keine PL-Fehler)","schulname":"Abt-Utto-Grundschule Metten","schulnummer":"3591"}, {"Dienststellentyp":"Priv-Ersatz","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"N/A","Schulart":"Förderzentrum","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9315","Schule":"Test1VSFOberbayern","Datum":"2020-10-01 00:00:00"},
{"dst_typ":"staatlich","schulart":"Realschule","uestatus":"abgegeben","schulname":"Achental-Realschule Staatl. Realschule Marquartstein","schulnummer":"0764"}, {"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"SAM München","Schulart":"Grundsch.sow.Mittelschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9316","Schule":"TestGS","Datum":"2020-10-01 00:00:00"},
{"dst_typ":"staatlich","schulart":"Grundsch.sow.Mittelschule","uestatus":"abgegeben","schulname":"Adalbert-Stifter-Grundschule Forchheim","schulnummer":"5585"}, {"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"SAM München","Schulart":"Grundsch.sow.Mittelschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9317","Schule":"TestMS","Datum":"2020-10-01 00:00:00"},
{"dst_typ":"staatlich","schulart":"Grundsch.sow.Mittelschule","uestatus":"\u00fcbermittelt (keine PL-Fehler)","schulname":"Adalbert-Stifter-Grundschule F\u00fcrth","schulnummer":"6550"}, {"Dienststellentyp":"Priv-Ersatz","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"N/A","Schulart":"Förderzentrum","Übermittlungsstatus":"abgegeben","SNR":"9318","Schule":"TestFZOberbayernASD","Datum":"2021-05-19 09:33:46"},
{"dst_typ":"staatlich","schulart":"Grundsch.sow.Mittelschule","uestatus":"Schulaufs. freigegeben","schulname":"Adalbert-Stifter-Grundschule Kaufbeuren-Neugablonz","schulnummer":"8549"}, {"Dienststellentyp":"kommunal","MB_Bezirk":"MB RS Obb-W","Regierung":"N/A","Schulamt":"N/A","Schulart":"Realschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9321","Schule":"TestRSOberbayernOst","Datum":"2020-10-01 00:00:00"},
{"dst_typ":"staatlich","schulart":"Grundsch.sow.Mittelschule","uestatus":"Schulaufs. freigegeben","schulname":"Adalbert-Stifter-Grundschule Marktoberdorf","schulnummer":"8831"}, {"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"SAM Rosenheim L","Schulart":"Grundsch.sow.Mittelschule","Übermittlungsstatus":"abgegeben","SNR":"9322","Schule":"TestVSOberbayernS187","Datum":"2021-05-19 10:10:39"},
{"dst_typ":"staatlich","schulart":"Grundsch.sow.Mittelschule","uestatus":"Schulaufs. freigegeben","schulname":"Adalbert-Stifter-Grundschule N\u00fcrnberg","schulnummer":"6777"}, {"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"SAM Rosenheim L","Schulart":"Grundsch.sow.Mittelschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9323","Schule":"TestGSOberbayernS187","Datum":"2020-10-01 00:00:00"},
{"dst_typ":"staatlich","schulart":"Grundsch.sow.Mittelschule","uestatus":"abgegeben","schulname":"Adalbert-Stifter-Grundschule Wegscheid ","schulnummer":"3757"}, {"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"SAM Rosenheim L","Schulart":"Grundsch.sow.Mittelschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9324","Schule":"TestHSOberbayernS187","Datum":"2020-10-01 00:00:00"},
{"dst_typ":"staatlich","schulart":"Grundsch.sow.Mittelschule","uestatus":"\u00fcbermittelt (keine PL-Fehler)","schulname":"Adalbert-Stifter-Grundschule W\u00fcrzburg-Zellerau ","schulnummer":"7546"}, {"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"SAM München","Schulart":"Grundsch.sow.Mittelschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9346","Schule":"TestGSOberbayernWest","Datum":"2020-10-01 00:00:00"},
{"dst_typ":"staatlich","schulart":"Gymnasium","uestatus":"abgegeben","schulname":"Adalbert-Stifter-Gymnasium Passau","schulnummer":"0252"}, {"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"SAM München","Schulart":"Grundsch.sow.Mittelschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9347","Schule":"TestMSOberbayernWest mit BV","Datum":"2020-10-01 00:00:00"},
{"dst_typ":"staatlich","schulart":"Grundsch.sow.Mittelschule","uestatus":"abgegeben","schulname":"Adalbert-Stifter-Mittelschule Forchheim","schulnummer":"5721"}, {"Dienststellentyp":"Priv-Ersatz","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"SAM München L","Schulart":"Grundsch.sow.Mittelschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9348","Schule":"Test-GMS am Arabellabogen","Datum":"2020-10-01 00:00:00"},
{"dst_typ":"staatlich","schulart":"Grundsch.sow.Mittelschule","uestatus":"Schulaufs. abgelehnt","schulname":"Adalbert-Stifter-Mittelschule N\u00fcrnberg","schulnummer":"6609"}, {"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"N/A","Schulart":"Schule für Kranke","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9353","Schule":"Testschule für Kranke","Datum":"2020-10-01 00:00:00"},
{"dst_typ":"staatlich","schulart":"Grundsch.sow.Mittelschule","uestatus":"abgegeben","schulname":"Adalbert-Stifter-Mittelschule Wegscheid","schulnummer":"3803"}, {"Dienststellentyp":"staatlich","MB_Bezirk":"MB RS Obb-W","Regierung":"N/A","Schulamt":"N/A","Schulart":"Realschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9400","Schule":"TestRS2OberbayernOst","Datum":"2020-10-01 00:00:00"},
{"dst_typ":"staatlich","schulart":"Gymnasium","uestatus":"abgegeben","schulname":"Adam-Kraft-Gymnasium Schwabach","schulnummer":"0282"}] {"Dienststellentyp":"staatlich","MB_Bezirk":"MB RS Obb-W","Regierung":"N/A","Schulamt":"N/A","Schulart":"Realschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9401","Schule":"TestRSOberbayernASD","Datum":"2020-10-01 00:00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB RS Ofr","Regierung":"N/A","Schulamt":"N/A","Schulart":"Realschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9408","Schule":"RS Testburg","Datum":"2020-10-01 00:00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB RS Schw","Regierung":"N/A","Schulamt":"N/A","Schulart":"Realschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9409","Schule":"RS Teststadt","Datum":"2020-10-01 00:00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"N/A","Schulart":"Berufsschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9410","Schule":"Test1BSOberbayern","Datum":"2020-10-01 00:00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"N/A","Schulart":"Berufsfachschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9411","Schule":"Test1BFSOberbayern","Datum":"2020-10-01 00:00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB RS Ufr","Regierung":"N/A","Schulamt":"N/A","Schulart":"Realschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9418","Schule":"RS Testdorf","Datum":"2020-10-01 00:00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB RS Ndb","Regierung":"N/A","Schulamt":"N/A","Schulart":"Realschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9419","Schule":"RS Testmühl","Datum":"2020-10-01 00:00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"N/A","Schulart":"Wirtschaftsschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9423","Schule":"Test2WSOberbayern","Datum":"2020-10-01 00:00:00"},
{"Dienststellentyp":"Priv-Ersatz","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"N/A","Schulart":"Freie Waldorfschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9460","Schule":"Mini_FWS","Datum":"2020-10-01 00:00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Ndb","Schulamt":"N/A","Schulart":"Förderzentrum","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9461","Schule":"Mini_FZ","Datum":"2020-10-01 00:00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB GYM Obb-O","Regierung":"N/A","Schulamt":"N/A","Schulart":"Gymnasium","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9463","Schule":"Mini_GY","Datum":"2020-10-01 00:00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB RS Obb-W","Regierung":"N/A","Schulamt":"N/A","Schulart":"Integrierte Gesamtschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9465","Schule":"Mini_IGS","Datum":"2020-10-01 00:00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"MB GYM Ndb","Regierung":"N/A","Schulamt":"N/A","Schulart":"Kolleg","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9466","Schule":"Mini_KOL","Datum":"2020-10-01 00:00:00"},
{"Dienststellentyp":"kommunal","MB_Bezirk":"MB RS Obb-O","Regierung":"N/A","Schulamt":"N/A","Schulart":"Realschule","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9469","Schule":"Mini_RS","Datum":"2020-10-01 00:00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"N/A","Schulart":"Schule für Kranke","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9471","Schule":"Mini_SKR","Datum":"2020-10-01 00:00:00"},
{"Dienststellentyp":"staatlich","MB_Bezirk":"N/A","Regierung":"Reg. v. Obb","Schulamt":"N/A","Schulart":"Schule für Kranke","Übermittlungsstatus":"n. überm. (kein Liefervers.)","SNR":"9474","Schule":"Mini_SKR","Datum":"2020-10-01 00:00:00"}]

BIN
webroot/files/test.zip Normal file

Binary file not shown.

View File

@@ -0,0 +1,64 @@
SET feedback OFF verify OFF heading OFF pagesize 0
--SET feedback ON
SET linesize 1000;
ALTER SESSION SET NLS_DATE_FORMAT = 'DD.MM.YYYY';
SET serveroutput ON;
DECLARE
schuljahr CONSTANT VARCHAR2(4) := '2020';
eh_typ CONSTANT VARCHAR2(2) := 'US';
eh_datum varchar2(200);
date_format CONSTANT VARCHAR2(200) := 'yyyy-mm-dd';
cursor schule IS
(
select * from
(SELECT
dsttyp.wl_kurz_bezeichnung as dienststellentyp,
nvl(mb.dst_kurz,'N/A') as mb,
nvl(reg.dst_kurz,'N/A') as reg,
nvl(samt.dst_kurz,'N/A') as samt,
sart.wl_kurz_bezeichnung as sart,
dst.DST_SCHLUESSEL || ' ' || sst.sst_name_offiziell AS schule,
es.ES_ERZ_DATUM as datum,
sta.ss_kurz_bezeichnung as status,
count(*) over () as tot_rows
FROM asd.ASD_ERHEBUNGSSTATUS es
JOIN asd.ASD_DIENSTSTELLE dst ON es.ES_DST_DIENSTSTELLE_ID = dst.DST_DIENSTSTELLE_ID
join asd.asd_schulstelle sst on sst.sst_schulstellen_id = dst.dst_sst_hauptstelle_id
join asd.asd_sd_werteliste dsttyp on dsttyp.wl_werteliste_id = dst.dst_wl_dsttyp_id
left outer join asd.asd_dienststelle mb on mb.dst_dienststelle_id = dst.dst_dst_mb_bezirk_id
left outer join asd.asd_dienststelle reg on reg.dst_dienststelle_id = dst.dst_dst_regierung_id
left outer join asd.asd_dienststelle samt on samt.dst_dienststelle_id = dst.dst_dst_schulamt_id
join asd.asd_sd_werteliste sart on sart.wl_werteliste_id = dst.dst_wl_schulart_id
JOIN asd.ASD_SD_SCHULJAHR sja ON es.ES_WL_SCHULJAHR_ID = sja.SJA_SCHULJAHR_ID
JOIN asd.ASD_SD_WERTELISTE eht ON es.ES_WL_ERHEBUNGSTYP_ID = eht.WL_WERTELISTE_ID
JOIN asd.ASD_SD_STATISTIK_STATUS sta ON es.ES_WL_STATUS_ID = sta.SS_STATISTIK_STATUS_ID
LEFT OUTER JOIN asd.ASD_SST_AUFTRAG aft ON es.ES_AFT_AUFTRAG_ID = aft.AFT_AUFTRAG_ID
LEFT OUTER JOIN asd.ASD_SST_LIEFERUNG lfg ON aft.AFT_LIEFERUNG_ID = lfg.LFG_LIEFERUNG_ID
WHERE sja.SJA_SCHLUESSEL = schuljahr
AND eht.WL_KUERZEL = eh_typ
AND (es.ES_STATUS_AKT_ID IN
(select max(es_status_akt_id)
from asd.ASD_erhebungsstatus es
join asd.ASD_SD_SCHULJAHR sja on es.ES_WL_SCHULJAHR_ID = sja.SJA_SCHULJAHR_ID
join asd.ASD_SD_WERTELISTE eht on es.ES_WL_ERHEBUNGSTYP_ID = eht.WL_WERTELISTE_ID
where sja.SJA_SCHLUESSEL = schuljahr
and eht.WL_KUERZEL = eh_typ
group by es_dst_dienststelle_id
)
)
order by dst.DST_SCHLUESSEL asc )
);
begin
dbms_output.put('[');
for rec in schule loop
dbms_output.put('{"Dienststellentyp":"' || rec.dienststellentyp || '","MB_Bezirk":"' || rec.mb || '","Regierung":"' || rec.reg || '","Schulamt":"' || rec.samt || '","Schulart":"' || rec.sart || '","Übermittlungsstatus":"' || rec.status || '","Schule":"' || rec.schule || '","Datum":"' || TO_CHAR(rec.datum,'dd.mm.yyyy HH24:MI') || '"}');
if schule%rowcount != rec.tot_rows then
dbms_output.put_line(',');
end if;
end loop;
dbms_output.put_line(']');
end;
/

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

182
webroot/js/German.json Normal file
View File

@@ -0,0 +1,182 @@
{
"emptyTable": "Keine Daten in der Tabelle vorhanden",
"info": "_START_ bis _END_ von _TOTAL_ Einträgen",
"infoEmpty": "Keine Daten vorhanden",
"infoFiltered": "(gefiltert von _MAX_ Einträgen)",
"infoThousands": ".",
"loadingRecords": "Wird geladen ..",
"processing": "Bitte warten ..",
"paginate": {
"first": "Erste",
"previous": "Zurück",
"next": "Nächste",
"last": "Letzte"
},
"aria": {
"sortAscending": ": aktivieren, um Spalte aufsteigend zu sortieren",
"sortDescending": ": aktivieren, um Spalte absteigend zu sortieren"
},
"select": {
"rows": {
"_": "%d Zeilen ausgewählt",
"1": "1 Zeile ausgewählt"
},
"1": "1 Eintrag ausgewählt",
"2": "2 Einträge ausgewählt",
"_": "%d Einträge ausgewählt",
"cells": {
"1": "1 Zelle ausgewählt",
"_": "%d Zellen ausgewählt"
},
"columns": {
"1": "1 Spalte ausgewählt",
"_": "%d Spalten ausgewählt"
}
},
"buttons": {
"print": "Drucken",
"copy": "Kopieren",
"copyTitle": "In Zwischenablage kopieren",
"copySuccess": {
"_": "%d Zeilen kopiert",
"1": "1 Zeile kopiert"
},
"collection": "Aktionen <span class=\"ui-button-icon-primary ui-icon ui-icon-triangle-1-s\"><\/span>",
"colvis": "Spaltensichtbarkeit",
"colvisRestore": "Sichtbarkeit wiederherstellen",
"copyKeys": "Drücken Sie die Taste <i>ctrl<\/i> oder <i>⌘<\/i> + <i>C<\/i> um die Tabelle<br \/>in den Zwischenspeicher zu kopieren.<br \/><br \/>Um den Vorgang abzubrechen, klicken Sie die Nachricht an oder drücken Sie auf Escape.",
"csv": "CSV",
"excel": "Excel",
"pageLength": {
"-1": "Alle Zeilen anzeigen",
"1": "Eine Zeile anzeigen",
"_": "%d Zeilen anzeigen"
},
"pdf": "PDF"
},
"autoFill": {
"cancel": "Abbrechen",
"fill": "Alle Zellen mit <i>%d<i> füllen<\/i><\/i>",
"fillHorizontal": "Alle horizontalen Zellen füllen",
"fillVertical": "Alle vertikalen Zellen füllen",
"info": "Bitte wählen Sie die gewünschte Aktion aus:"
},
"decimal": ",",
"search": "Suche:",
"searchBuilder": {
"add": "Bedingung hinzufügen",
"button": {
"0": "Such-Baukasten",
"_": "Such-Baukasten (%d)"
},
"condition": "Bedingung",
"conditions": {
"date": {
"after": "Nach",
"before": "Vor",
"between": "Zwischen",
"empty": "Leer",
"not": "Nicht",
"notBetween": "Nicht zwischen",
"notEmpty": "Nicht leer",
"equals": "Gleich"
},
"number": {
"between": "Zwischen",
"empty": "Leer",
"equals": "Entspricht",
"gt": "Größer als",
"gte": "Größer als oder gleich",
"lt": "Kleiner als",
"lte": "Kleiner als oder gleich",
"not": "Nicht",
"notBetween": "Nicht zwischen",
"notEmpty": "Nicht leer"
},
"string": {
"contains": "Beinhaltet",
"empty": "Leer",
"endsWith": "Endet mit",
"equals": "Entspricht",
"not": "Nicht",
"notEmpty": "Nicht leer",
"startsWith": "Startet mit"
},
"array": {
"equals": "ist gleich",
"empty": "ist leer",
"contains": "enthält",
"not": "ist ungleich",
"notEmpty": "ist nicht leer",
"without": "aber nicht"
}
},
"data": "Daten",
"deleteTitle": "Filterregel entfernen",
"leftTitle": "Äußere Kriterien",
"logicAnd": "UND",
"logicOr": "ODER",
"rightTitle": "Innere Kriterien",
"title": {
"0": "Such-Baukasten",
"_": "Such-Baukasten (%d)"
},
"value": "Wert",
"clearAll": "Alle löschen"
},
"searchPanes": {
"clearMessage": "Leeren",
"collapse": {
"0": "Suchmasken",
"_": "Suchmasken (%d)"
},
"countFiltered": "{shown} ({total})",
"emptyPanes": "Keine Suchmasken",
"loadMessage": "Lade Suchmasken..",
"title": "Aktive Filter: %d",
"count": "Anzahl"
},
"searchPlaceholder": "Suchbegriff eingeben",
"thousands": ".",
"zeroRecords": "Keine passenden Einträge gefunden",
"lengthMenu": "_MENU_ Zeilen anzeigen",
"datetime": {
"previous": "Vorher",
"next": "Nachher",
"hours": "Stunden",
"minutes": "Minuten",
"seconds": "Sekunden",
"unknown": "Unbekannt"
},
"editor": {
"close": "Schließen",
"create": {
"button": "Neu",
"title": "Neuen Eintrag erstellen",
"submit": "Neu"
},
"edit": {
"button": "Ändern",
"title": "Eintrag ändern",
"submit": "ändern"
},
"remove": {
"button": "Löschen",
"title": "Löschen",
"submit": "Löschen",
"confirm": {
"_": "Sollen %d Zeilen gelöscht werden?",
"1": "Soll diese Zeile gelöscht werden?"
}
},
"error": {
"system": "Ein Systemfehler ist aufgetreten"
},
"multi": {
"title": "Mehrere Werte",
"info": "Die ausgewählten Elemente enthalten mehrere Werte für dieses Feld. Um alle Elemente für dieses Feld zu bearbeiten und auf denselben Wert zu setzen, klicken oder tippen Sie hier, andernfalls behalten diese ihre individuellen Werte bei.",
"restore": "Änderungen zurücksetzen",
"noMulti": "Dieses Feld kann nur einzeln bearbeitet werden, nicht als Teil einer Mengen-Änderung."
}
}
}

81531
webroot/js/datatables.js Normal file

File diff suppressed because one or more lines are too long

437
webroot/js/datatables.min.js vendored Normal file

File diff suppressed because one or more lines are too long