diff --git a/src/Controller/BudgetController.php b/src/Controller/BudgetController.php index 0a9425d..6adf9dd 100644 --- a/src/Controller/BudgetController.php +++ b/src/Controller/BudgetController.php @@ -26,16 +26,33 @@ class BudgetController extends AppController } 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', [ - 'conditions' => array('schulart' => 'GY') + 'conditions' => array('schulart' => $schulart) ]); $this->set('wlBudgets',$wlBudgets); } public function editBudget($id = null) { + $session = $this->request->session(); + //debug($session->read('SchoolType'));die; + $schooltype = $session->read('SchoolType'); + $this->loadModel('Schools'); - $schools = $this->Schools->find('all'); + $schools = $this->Schools->find('all', [ + 'conditions' => array('dst_schulart' => $schooltype) + ]); $data = array(); foreach($schools as $school) { $line = array(); @@ -107,15 +124,29 @@ class BudgetController extends AppController } 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; $myfile = fopen(WWW_ROOT . DS . 'files' . DS . 'debug.txt', "w"); $data = $this->request->input('json_decode'); + foreach($data as $line) { for($i=2;$i < sizeof($line);$i++) { if($line[$i] > 0) { $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())) { @@ -129,9 +160,9 @@ class BudgetController extends AppController else { fwrite($myfile,'empty' . PHP_EOL); $new = $this->Budget->newEntity(); - $new_budget['wl_schooltype_id'] = 4; + $new_budget['wl_schooltype_id'] = $schooltype_id; $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['comment'] = 'auto'; $new_budget['year'] = '2018'; @@ -141,7 +172,7 @@ class BudgetController extends AppController $this->Budget->save($new); } 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() { + + $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', [ - 'conditions' => array('schulart' => 'GY') + 'conditions' => array('schulart' => $schulart) ]); - //debug($wlBudgets); + //debug($wlBudgets);die; $this->loadModel('Schools'); - $schools = $this->Schools->find('all'); + $schools = $this->Schools->find('all', [ + 'conditions' => array('dst_schulart' => $schooltype) + ]); $data = array(); foreach($schools as $school) { $line = array(); @@ -168,9 +214,12 @@ class BudgetController extends AppController $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) { - $i = $budget['wl_budget_id']+1; + $i = $budget['wl_budget_id']+$offset; $data[$budget['snr']][$i] = $budget['count']; } $data_arr = array(); diff --git a/src/Controller/SchoolsController.php b/src/Controller/SchoolsController.php index aceb6cd..ae35088 100644 --- a/src/Controller/SchoolsController.php +++ b/src/Controller/SchoolsController.php @@ -12,6 +12,126 @@ use App\Controller\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() { $results = $this->Schools->find('all'); diff --git a/src/Template/Budget/edit_budget.ctp b/src/Template/Budget/edit_budget.ctp index d2c28fa..128d00d 100644 --- a/src/Template/Budget/edit_budget.ctp +++ b/src/Template/Budget/edit_budget.ctp @@ -1,21 +1,21 @@ Html->link($data[$i][0],array('controller' => 'schools', 'action' => 'showbudgets',$data[$i][0])); + } echo '
Data loaded\ No newline at end of file diff --git a/webroot/css/budget-costum.css b/webroot/css/budget-costum.css index 63e8218..7cce98c 100644 --- a/webroot/css/budget-costum.css +++ b/webroot/css/budget-costum.css @@ -1,3 +1,3 @@ -h1 { +nav.top-bar.expanded h1 { color: aliceblue; } \ No newline at end of file diff --git a/webroot/css/handsontable.costum.css b/webroot/css/handsontable.costum.css index 5379049..203d4cc 100644 --- a/webroot/css/handsontable.costum.css +++ b/webroot/css/handsontable.costum.css @@ -17,4 +17,10 @@ div#editbudget.handsontable.htRowHeaders.htColumnHeaders thead th { line-height: 10px; padding: 0px; font-weight: bold; +} + +div#showbudget.handsontable.htRowHeaders.htColumnHeaders thead th { + line-height: 10px; + padding: 0px; + font-weight: bold; } \ No newline at end of file diff --git a/webroot/files/debug-edit.txt b/webroot/files/debug-edit.txt index 9713e8d..655cfc8 100644 Binary files a/webroot/files/debug-edit.txt and b/webroot/files/debug-edit.txt differ diff --git a/webroot/files/debug-single.txt b/webroot/files/debug-single.txt new file mode 100644 index 0000000..acba197 --- /dev/null +++ b/webroot/files/debug-single.txt @@ -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 diff --git a/webroot/files/debug.txt b/webroot/files/debug.txt index 66bfc65..0413859 100644 Binary files a/webroot/files/debug.txt and b/webroot/files/debug.txt differ