Schulsicht
This commit is contained in:
@@ -26,16 +26,33 @@ class BudgetController extends AppController
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function listBudgets() {
|
public function listBudgets() {
|
||||||
|
|
||||||
|
$session = $this->request->session();
|
||||||
|
//debug($session->read('SchoolType'));die;
|
||||||
|
$schooltype = $session->read('SchoolType');
|
||||||
|
if ($schooltype == '02') {
|
||||||
|
$schulart = 'RS';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$schulart = 'GY';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
$wlBudgets = $this->Budget->wlBudgets->find('all', [
|
$wlBudgets = $this->Budget->wlBudgets->find('all', [
|
||||||
'conditions' => array('schulart' => 'GY')
|
'conditions' => array('schulart' => $schulart)
|
||||||
]);
|
]);
|
||||||
$this->set('wlBudgets',$wlBudgets);
|
$this->set('wlBudgets',$wlBudgets);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function editBudget($id = null) {
|
public function editBudget($id = null) {
|
||||||
|
$session = $this->request->session();
|
||||||
|
//debug($session->read('SchoolType'));die;
|
||||||
|
$schooltype = $session->read('SchoolType');
|
||||||
|
|
||||||
$this->loadModel('Schools');
|
$this->loadModel('Schools');
|
||||||
$schools = $this->Schools->find('all');
|
$schools = $this->Schools->find('all', [
|
||||||
|
'conditions' => array('dst_schulart' => $schooltype)
|
||||||
|
]);
|
||||||
$data = array();
|
$data = array();
|
||||||
foreach($schools as $school) {
|
foreach($schools as $school) {
|
||||||
$line = array();
|
$line = array();
|
||||||
@@ -107,15 +124,29 @@ class BudgetController extends AppController
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function sajax() {
|
public function sajax() {
|
||||||
|
|
||||||
|
$session = $this->request->session();
|
||||||
|
//debug($session->read('SchoolType'));die;
|
||||||
|
$schooltype = $session->read('SchoolType');
|
||||||
|
if ($schooltype == '02') {
|
||||||
|
$wl_offset = 31;
|
||||||
|
$schooltype_id = '2';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$schooltype_id = '4';
|
||||||
|
$wl_offset = -1;
|
||||||
|
}
|
||||||
|
|
||||||
$this->autoRender = false;
|
$this->autoRender = false;
|
||||||
$myfile = fopen(WWW_ROOT . DS . 'files' . DS . 'debug.txt', "w");
|
$myfile = fopen(WWW_ROOT . DS . 'files' . DS . 'debug.txt', "w");
|
||||||
$data = $this->request->input('json_decode');
|
$data = $this->request->input('json_decode');
|
||||||
|
|
||||||
|
|
||||||
foreach($data as $line) {
|
foreach($data as $line) {
|
||||||
for($i=2;$i < sizeof($line);$i++) {
|
for($i=2;$i < sizeof($line);$i++) {
|
||||||
if($line[$i] > 0) {
|
if($line[$i] > 0) {
|
||||||
$query = $this->Budget->find('all', [
|
$query = $this->Budget->find('all', [
|
||||||
'conditions' => array('snr' => $line[0], 'wl_budget_id' => $i-1)
|
'conditions' => array('snr' => $line[0], 'wl_budget_id' => $i+$wl_offset)
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if(!($query->isEmpty())) {
|
if(!($query->isEmpty())) {
|
||||||
@@ -129,9 +160,9 @@ class BudgetController extends AppController
|
|||||||
else {
|
else {
|
||||||
fwrite($myfile,'empty' . PHP_EOL);
|
fwrite($myfile,'empty' . PHP_EOL);
|
||||||
$new = $this->Budget->newEntity();
|
$new = $this->Budget->newEntity();
|
||||||
$new_budget['wl_schooltype_id'] = 4;
|
$new_budget['wl_schooltype_id'] = $schooltype_id;
|
||||||
$new_budget['snr'] = $line[0];
|
$new_budget['snr'] = $line[0];
|
||||||
$new_budget['wl_budget_id'] = $i-1;
|
$new_budget['wl_budget_id'] = $i+$wl_offset;
|
||||||
$new_budget['count'] = $line[$i];
|
$new_budget['count'] = $line[$i];
|
||||||
$new_budget['comment'] = 'auto';
|
$new_budget['comment'] = 'auto';
|
||||||
$new_budget['year'] = '2018';
|
$new_budget['year'] = '2018';
|
||||||
@@ -141,7 +172,7 @@ class BudgetController extends AppController
|
|||||||
$this->Budget->save($new);
|
$this->Budget->save($new);
|
||||||
}
|
}
|
||||||
fwrite($myfile,serialize($budget). PHP_EOL);
|
fwrite($myfile,serialize($budget). PHP_EOL);
|
||||||
fwrite($myfile,$line[0] . ' ' .($i-1) . ' ' . $line[$i]. PHP_EOL);
|
fwrite($myfile,$line[0] . ' ' .($i+$wl_offset) . ' ' . $line[$i]. PHP_EOL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -149,13 +180,28 @@ class BudgetController extends AppController
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function overview() {
|
public function overview() {
|
||||||
|
|
||||||
|
$session = $this->request->session();
|
||||||
|
//debug($session->read('SchoolType'));die;
|
||||||
|
$schooltype = $session->read('SchoolType');
|
||||||
|
if ($schooltype == '02') {
|
||||||
|
$schulart = 'RS';
|
||||||
|
$offset = -31;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$schulart = 'GY';
|
||||||
|
$offset = 1;
|
||||||
|
}
|
||||||
|
|
||||||
$wlBudgets = $this->Budget->wlBudgets->find('list', [
|
$wlBudgets = $this->Budget->wlBudgets->find('list', [
|
||||||
'conditions' => array('schulart' => 'GY')
|
'conditions' => array('schulart' => $schulart)
|
||||||
]);
|
]);
|
||||||
//debug($wlBudgets);
|
//debug($wlBudgets);die;
|
||||||
|
|
||||||
$this->loadModel('Schools');
|
$this->loadModel('Schools');
|
||||||
$schools = $this->Schools->find('all');
|
$schools = $this->Schools->find('all', [
|
||||||
|
'conditions' => array('dst_schulart' => $schooltype)
|
||||||
|
]);
|
||||||
$data = array();
|
$data = array();
|
||||||
foreach($schools as $school) {
|
foreach($schools as $school) {
|
||||||
$line = array();
|
$line = array();
|
||||||
@@ -168,9 +214,12 @@ class BudgetController extends AppController
|
|||||||
$data[$school['dst_schluessel']] = $line;
|
$data[$school['dst_schluessel']] = $line;
|
||||||
}
|
}
|
||||||
|
|
||||||
$budgets = $this->Budget->find('all');
|
$budgets = $this->Budget->find('all', [
|
||||||
|
'contain' => ['WlSchooltypes'],
|
||||||
|
'conditions' => array('WlSchooltypes.key_value' => $schooltype)
|
||||||
|
]);
|
||||||
foreach($budgets as $budget) {
|
foreach($budgets as $budget) {
|
||||||
$i = $budget['wl_budget_id']+1;
|
$i = $budget['wl_budget_id']+$offset;
|
||||||
$data[$budget['snr']][$i] = $budget['count'];
|
$data[$budget['snr']][$i] = $budget['count'];
|
||||||
}
|
}
|
||||||
$data_arr = array();
|
$data_arr = array();
|
||||||
|
|||||||
@@ -12,6 +12,126 @@ use App\Controller\AppController;
|
|||||||
*/
|
*/
|
||||||
class SchoolsController extends AppController
|
class SchoolsController extends AppController
|
||||||
{
|
{
|
||||||
|
public function showajax($snr = null) {
|
||||||
|
$session = $this->request->session();
|
||||||
|
$schooltype = $session->read('SchoolType');
|
||||||
|
|
||||||
|
$this->autoRender = false;
|
||||||
|
$myfile = fopen(WWW_ROOT . DS . 'files' . DS . 'debug-single.txt', "w");
|
||||||
|
$data = $this->request->input('json_decode');
|
||||||
|
$this->loadModel('Budget');
|
||||||
|
$this->loadModel('wl_Budgets');
|
||||||
|
fwrite($myfile,$schooltype . PHP_EOL);
|
||||||
|
fwrite($myfile,$snr . PHP_EOL);
|
||||||
|
|
||||||
|
foreach($data as $line) {
|
||||||
|
fwrite($myfile,'Size: ' . strlen($line[0]) . PHP_EOL);
|
||||||
|
if(strlen($line[0]) > 0) {
|
||||||
|
fwrite($myfile,'Budget: ' . $line[0] . PHP_EOL);
|
||||||
|
$query = $this->wl_Budgets->find('all', [
|
||||||
|
'conditions' => array('wl_kurz_bezeichnung' => $line[0])
|
||||||
|
]);
|
||||||
|
$wl_budget = $query->first();
|
||||||
|
fwrite($myfile,json_encode($wl_budget). PHP_EOL);
|
||||||
|
$query = $this->Budget->find('all', [
|
||||||
|
'conditions' => array('snr' => $snr, 'wl_budget_id' => $wl_budget['id'])
|
||||||
|
]);
|
||||||
|
fwrite($myfile,$wl_budget['id'] . PHP_EOL);
|
||||||
|
|
||||||
|
if(!($query->isEmpty())) {
|
||||||
|
$budget = $query->first();
|
||||||
|
fwrite($myfile,json_encode($budget). PHP_EOL);
|
||||||
|
if($budget['wl_budget_id'] != $wl_budget['id'] ) {
|
||||||
|
$budget['wl_budget_id'] = $wl_budget['id'];
|
||||||
|
$this->Budget->save($budget);
|
||||||
|
}
|
||||||
|
elseif($budget['count'] != $line[1] ) {
|
||||||
|
$budget['count'] = $line[1];
|
||||||
|
$this->Budget->save($budget);
|
||||||
|
}
|
||||||
|
elseif($budget['comment'] != $line[2] ) {
|
||||||
|
$budget['comment'] = $line[2];
|
||||||
|
$this->Budget->save($budget);
|
||||||
|
}
|
||||||
|
fwrite($myfile,'full' . PHP_EOL);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
fwrite($myfile,'empty' . PHP_EOL);
|
||||||
|
$new = $this->Budget->newEntity();
|
||||||
|
$new_budget['wl_schooltype_id'] = $schooltype;
|
||||||
|
$new_budget['snr'] = $snr;
|
||||||
|
$new_budget['wl_budget_id'] = $wl_budget['id'];
|
||||||
|
$new_budget['count'] = $line[1];
|
||||||
|
$new_budget['comment'] = $line[2];
|
||||||
|
$new_budget['year'] = '2018';
|
||||||
|
fwrite($myfile,'New: ' . json_encode($new_budget). PHP_EOL);
|
||||||
|
$new = $this->Budget->patchEntity($new, $new_budget);
|
||||||
|
|
||||||
|
$this->Budget->save($new);
|
||||||
|
}
|
||||||
|
//fwrite($myfile,serialize($budget). PHP_EOL);
|
||||||
|
//fwrite($myfile,$line[0] . ' ' .($i+$wl_offset) . ' ' . $line[$i]. PHP_EOL);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
fclose($myfile);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function showbudgets($snr = null) {
|
||||||
|
$session = $this->request->session();
|
||||||
|
//debug($session->read('SchoolType'));die;
|
||||||
|
$schooltype = $session->read('SchoolType');
|
||||||
|
if ($schooltype == '02') {
|
||||||
|
$schulart = 'RS';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$schulart = 'GY';
|
||||||
|
}
|
||||||
|
|
||||||
|
$query = $this->Schools->find('all', [
|
||||||
|
'conditions' => array('dst_schluessel' => $snr)
|
||||||
|
]);
|
||||||
|
$school = $query->first();
|
||||||
|
$this->loadModel('Budget');
|
||||||
|
$budgets = $this->Budget->find('all', [
|
||||||
|
'conditions' => ['snr' => $snr]
|
||||||
|
]);
|
||||||
|
$this->loadModel('wl_Budgets');
|
||||||
|
$data = array();
|
||||||
|
foreach($budgets as $budget) {
|
||||||
|
$line = array();
|
||||||
|
//debug($budget);
|
||||||
|
$wl_budget = $this->wl_Budgets->get($budget['wl_budget_id']);
|
||||||
|
//debug($wl_budget);
|
||||||
|
array_push($line,$wl_budget['wl_kurz_bezeichnung']);
|
||||||
|
array_push($line,$budget['count']);
|
||||||
|
array_push($line,$budget['comment']);
|
||||||
|
array_push($data,$line);
|
||||||
|
}
|
||||||
|
for($i=0;$i<5;$i++) {
|
||||||
|
$line = array();
|
||||||
|
array_push($line,'');
|
||||||
|
array_push($line,'');
|
||||||
|
array_push($line,'');
|
||||||
|
array_push($data,$line);
|
||||||
|
}
|
||||||
|
$query = $this->wl_Budgets->find('list', [
|
||||||
|
'conditions' => array('schulart' => $schulart),
|
||||||
|
'valueField' => 'wl_kurz_bezeichnung'
|
||||||
|
]);
|
||||||
|
$wl_budgets = $query->toArray();
|
||||||
|
$budgets_arr = array();
|
||||||
|
foreach ($wl_budgets as $wl_budget) {
|
||||||
|
array_push($budgets_arr,$wl_budget);
|
||||||
|
}
|
||||||
|
//debug(json_encode($budgets_arr));die;
|
||||||
|
$this->set('budgets_arr',$budgets_arr);
|
||||||
|
$this->set('school',$school);
|
||||||
|
$this->set('data',$data);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public function show() {
|
public function show() {
|
||||||
$results = $this->Schools->find('all');
|
$results = $this->Schools->find('all');
|
||||||
|
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
<?php
|
<?php
|
||||||
//debug($budget);
|
//debug($data);
|
||||||
|
for($i=0;$i<sizeof($data);$i++) {
|
||||||
|
$data[$i][0] = $this->Html->link($data[$i][0],array('controller' => 'schools', 'action' => 'showbudgets',$data[$i][0]));
|
||||||
|
}
|
||||||
echo '<h2>' . $budget['wl_kurz_bezeichnung'] .'</h2>';
|
echo '<h2>' . $budget['wl_kurz_bezeichnung'] .'</h2>';
|
||||||
|
//debug($data);
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<button name="load" id="load" class="intext-btn">Load</button>
|
<button name="load" id="load" class="intext-btn">Load</button>
|
||||||
<button name="save" id="save" class="intext-btn">Save</button>
|
<button name="save" id="save" class="intext-btn">Save</button>
|
||||||
<label><input name="autosave" id="autosave" checked="checked" autocomplete="off" type="checkbox">Autosave</label>
|
|
||||||
</div>
|
</div>
|
||||||
<pre id="example1console" class="console">Data loaded</pre>
|
|
||||||
<div id="editbudget"></div>
|
<div id="editbudget"></div>
|
||||||
<script>
|
<script>
|
||||||
var data = <?php echo json_encode($data); ?>;
|
var data = <?php echo json_encode($data); ?>;
|
||||||
|
|
||||||
var container = document.getElementById('editbudget');
|
var container = document.getElementById('editbudget');
|
||||||
var exampleConsole = document.getElementById('example1console');
|
|
||||||
var autosave = document.getElementById('autosave');
|
|
||||||
var load = document.getElementById('load');
|
var load = document.getElementById('load');
|
||||||
var save = document.getElementById('save');
|
var save = document.getElementById('save');
|
||||||
var autosaveNotification;
|
var autosaveNotification;
|
||||||
@@ -24,11 +24,12 @@ var data = <?php echo json_encode($data); ?>;
|
|||||||
var hot = new Handsontable(container, {
|
var hot = new Handsontable(container, {
|
||||||
data: data,
|
data: data,
|
||||||
width: 1400,
|
width: 1400,
|
||||||
height: 1000,
|
height: 800,
|
||||||
rowHeaders: true,
|
rowHeaders: true,
|
||||||
wordWrap: false,
|
wordWrap: false,
|
||||||
colHeaders: ['SNR','Name','Count','Comment'] ,
|
colHeaders: ['SNR','Name','Count','Comment'] ,
|
||||||
colWidths: ['50','500','50','500'],
|
colWidths: ['50','500','50','500'],
|
||||||
|
columns: [{renderer: "html", readOnly: true},{renderer: "text", readOnly: true},{renderer: "text"},{renderer: "text"}],
|
||||||
filters: true,
|
filters: true,
|
||||||
dropdownMenu: true
|
dropdownMenu: true
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
echo '<h1>Wählen Sie eine Budgetart aus.</h1>';
|
||||||
|
echo '<ul>';
|
||||||
foreach ($wlBudgets as $wlBudget) {
|
foreach ($wlBudgets as $wlBudget) {
|
||||||
//debug($wlBudget);
|
//debug($wlBudget);
|
||||||
echo '<p>' . $this->Html->link($wlBudget['wl_kurz_bezeichnung'],['controller' => 'Budget', 'action' => 'edit_budget' , $wlBudget['id']]) . '</p>';
|
echo '<li>' . $this->Html->link($wlBudget['wl_kurz_bezeichnung'],['controller' => 'Budget', 'action' => 'edit_budget' , $wlBudget['id']]) . '</li>';
|
||||||
}
|
}
|
||||||
|
echo '</ul>';
|
||||||
?>
|
?>
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
* @license https://opensource.org/licenses/mit-license.php MIT License
|
* @license https://opensource.org/licenses/mit-license.php MIT License
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$cakeDescription = 'CakePHP: the rapid development php framework';
|
$cakeDescription = 'KM Bayern';
|
||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
|
|||||||
48
src/Template/Schools/showbudgets.ctp
Normal file
48
src/Template/Schools/showbudgets.ctp
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
echo '<h1>'. $school->dst_schluessel . ' ' . $school->dst_name .'</h1>';
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="controls">
|
||||||
|
<button name="load" id="load" class="intext-btn">Load</button>
|
||||||
|
<button name="save" id="save" class="intext-btn">Save</button>
|
||||||
|
</div>
|
||||||
|
<div id="showbudget"></div>
|
||||||
|
<script>
|
||||||
|
var data = <?php echo json_encode($data); ?>;
|
||||||
|
|
||||||
|
var container = document.getElementById('showbudget');
|
||||||
|
var load = document.getElementById('load');
|
||||||
|
var save = document.getElementById('save');
|
||||||
|
var autosaveNotification;
|
||||||
|
var rotated = false;
|
||||||
|
|
||||||
|
var hot = new Handsontable(container, {
|
||||||
|
data: data,
|
||||||
|
width: 1400,
|
||||||
|
height: 800,
|
||||||
|
rowHeaders: true,
|
||||||
|
wordWrap: false,
|
||||||
|
colHeaders: ['Name','Count','Comment'] ,
|
||||||
|
colWidths: ['500','50','500'],
|
||||||
|
columns: [{type: 'dropdown', source: <?php echo json_encode($budgets_arr); ?>},{renderer: "text"},{renderer: "text"}],
|
||||||
|
filters: true,
|
||||||
|
dropdownMenu: true
|
||||||
|
});
|
||||||
|
|
||||||
|
Handsontable.dom.addEvent(save, 'click', function() {
|
||||||
|
// save all cell's data
|
||||||
|
//console.log(hot.getData());
|
||||||
|
//console.log(JSON.stringify({data: hot.getData()}));
|
||||||
|
$.ajax({
|
||||||
|
url: "<?php echo $this->Url->build(array('controller' => 'schools', 'action' => 'showajax',$school->dst_schluessel), true); ?>",
|
||||||
|
data: JSON.stringify(hot.getData()),
|
||||||
|
type: 'POST',
|
||||||
|
success: function (res) {
|
||||||
|
//console.log(res);
|
||||||
|
//var data = JSON.parse(res);
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
h1 {
|
nav.top-bar.expanded h1 {
|
||||||
color: aliceblue;
|
color: aliceblue;
|
||||||
}
|
}
|
||||||
@@ -17,4 +17,10 @@ div#editbudget.handsontable.htRowHeaders.htColumnHeaders thead th {
|
|||||||
line-height: 10px;
|
line-height: 10px;
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#showbudget.handsontable.htRowHeaders.htColumnHeaders thead th {
|
||||||
|
line-height: 10px;
|
||||||
|
padding: 0px;
|
||||||
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
Binary file not shown.
19
webroot/files/debug-single.txt
Normal file
19
webroot/files/debug-single.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
04
|
||||||
|
0001
|
||||||
|
Size: 28
|
||||||
|
Budget: Partnerschule Leistungssport
|
||||||
|
{"id":1,"wl_werteliste_nr":"1502","wl_kurz_bezeichnung":"Partnerschule Leistungssport","schulart":"GY","created":null,"modfied":null}
|
||||||
|
1
|
||||||
|
{"id":9,"wl_schooltype_id":4,"snr":"0001","wl_budget_id":1,"count":3,"comment":"Test Edith","year":"2018","created":"2018-04-02T17:29:13+00:00","modified":"2018-04-02T17:33:09+00:00"}
|
||||||
|
full
|
||||||
|
Size: 23
|
||||||
|
Budget: offenes Ganztagsangebot
|
||||||
|
{"id":4,"wl_werteliste_nr":"1505","wl_kurz_bezeichnung":"offenes Ganztagsangebot","schulart":"GY","created":null,"modfied":null}
|
||||||
|
4
|
||||||
|
empty
|
||||||
|
New: {"wl_schooltype_id":"04","snr":"0001","wl_budget_id":4,"count":"7","comment":"ohne Auto","year":"2018"}
|
||||||
|
Size: 0
|
||||||
|
Size: 0
|
||||||
|
Size: 0
|
||||||
|
Size: 0
|
||||||
|
Size: 0
|
||||||
Binary file not shown.
Reference in New Issue
Block a user