summaryrefslogtreecommitdiff
path: root/generator/after-bake/src/Controller/AdherentsController.php
diff options
context:
space:
mode:
Diffstat (limited to 'generator/after-bake/src/Controller/AdherentsController.php')
-rw-r--r--generator/after-bake/src/Controller/AdherentsController.php149
1 files changed, 149 insertions, 0 deletions
diff --git a/generator/after-bake/src/Controller/AdherentsController.php b/generator/after-bake/src/Controller/AdherentsController.php
new file mode 100644
index 0000000..abec8a0
--- /dev/null
+++ b/generator/after-bake/src/Controller/AdherentsController.php
@@ -0,0 +1,149 @@
+<?php
+/**
+ * Copyright 2016 Ludovic Pouzenc <ludovic@pouzenc.fr>
+ * Copyright 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+ *
+ * This file is part of CHD Gestion.
+ *
+ * CHD Gestion is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * CHD Gestion is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with CHD Gestion. If not, see <http://www.gnu.org/licenses/>.
+**/
+namespace App\Controller;
+
+use App\Controller\AppController;
+use Cake\Datasource\ConnectionManager;
+
+/**
+ * Adherents Controller
+ *
+ * @property \App\Model\Table\AdherentsTable $Adherents
+ */
+class AdherentsController extends AppController
+{
+
+
+ public function initialize()
+ {
+ parent::initialize();
+ if ($this->request->action === 'index') {
+ $this->loadComponent('Paginator', [ 'limit' => 15, 'order' => [ 'Adherents.id' => 'DESC' ] ]);
+ $this->loadComponent('Search.Prg');
+ }
+ }
+
+ /**
+ * Index method
+ *
+ * @return void
+ */
+ public function index()
+ {
+ $this->paginate = [
+ 'contain' => ['AdherentTypes', 'Villes', 'AdherentStatuts', 'Civilites']
+ ];
+ $query = $this->Adherents
+ ->find('search', $this->Adherents->filterParams($this->request->query));
+ $this->set('adherents', $this->paginate($query));
+ $this->set('_serialize', ['adherents']);
+
+ $this->loadModel('Villes');
+ $this->set('villes', $this->Villes->find('list')->toArray());
+
+ //TODO : quick'n'dirty, à améliorer
+ $conn = ConnectionManager::get('default');
+ //$rawq = 'SELECT CASE WHEN COUNT(*)=0 THEN 0 ELSE ROUND(SUM(adherent_statut_id-1) * 100 / (4*COUNT(*))) END FROM adherents WHERE adherent_statut_id <> 1';
+ $rawq='
+SELECT
+ ROUND( COUNT(*) * 100 /
+ (
+ SELECT CASE WHEN COUNT(*)=0 THEN 1 ELSE COUNT(*) END
+ FROM adherents WHERE adherent_statut_id NOT IN (1,8)
+ )
+ )
+FROM adherents WHERE adherent_statut_id = 5;
+';
+ $stmt = $conn->execute($rawq);
+ $score = current($stmt->fetch());
+ $this->set('score', $score);
+ }
+
+ /**
+ * View method
+ *
+ * @param string|null $id Adherent id.
+ * @return void
+ * @throws \Cake\Network\Exception\NotFoundException When record not found.
+ */
+ public function view($id = null)
+ {
+ $adherent = $this->Adherents->get($id, [
+ 'contain' => ['AdherentRoles' => ['AdherentRoleTypes', 'Villes'], 'AdherentTypes', 'Villes', 'AdherentStatuts', 'Civilites', 'Services' => ['ServiceTypes', 'ServiceStatuts'] ]
+ ]);
+ $this->set('adherent', $adherent);
+ $this->set('_serialize', ['adherent']);
+ }
+
+ /**
+ * Add method
+ *
+ * @return void Redirects on successful add, renders view otherwise.
+ */
+ public function add()
+ {
+ $adherent = $this->Adherents->newEntity();
+ if ($this->request->is('post')) {
+ $adherent = $this->Adherents->patchEntity($adherent, $this->request->data);
+ if ($this->Adherents->save($adherent)) {
+ $this->Flash->success(__('The adherent has been saved.'));
+ return $this->redirect(['action' => 'index']);
+ } else {
+ $this->Flash->error(__('The adherent could not be saved. Please, try again.'));
+ }
+ }
+ $adherentTypes = $this->Adherents->AdherentTypes->find('list');
+ $villes = $this->Adherents->Villes->find('list');
+ $adherentStatuts = $this->Adherents->AdherentStatuts->find('list');
+ $civilites = $this->Adherents->Civilites->find('list');
+ $this->set(compact('adherent', 'adherentTypes', 'villes', 'adherentStatuts', 'civilites'));
+ $this->set('_serialize', ['adherent']);
+ }
+
+ /**
+ * Edit method
+ *
+ * @param string|null $id Adherent id.
+ * @return void Redirects on successful edit, renders view otherwise.
+ * @throws \Cake\Network\Exception\NotFoundException When record not found.
+ */
+ public function edit($id = null)
+ {
+ $adherent = $this->Adherents->get($id, [
+ 'contain' => ['Services' => ['ServiceTypes', 'ServiceStatuts'] ]
+ ]);
+ if ($this->request->is(['patch', 'post', 'put'])) {
+ $adherent = $this->Adherents->patchEntity($adherent, $this->request->data);
+ if ($this->Adherents->save($adherent)) {
+ $this->Flash->success(__('The adherent has been saved.'));
+ return $this->redirect(['action' => 'view', $adherent->id]);
+ } else {
+ $this->Flash->error(__('The adherent could not be saved. Please, try again.'));
+ }
+ }
+ $adherentTypes = $this->Adherents->AdherentTypes->find('list');
+ $villes = $this->Adherents->Villes->find('list');
+ $adherentStatuts = $this->Adherents->AdherentStatuts->find('list');
+ $civilites = $this->Adherents->Civilites->find('list');
+ $this->set(compact('adherent', 'adherentTypes', 'villes', 'adherentStatuts', 'civilites'));
+ $this->set('_serialize', ['adherent']);
+ }
+}