view->headScript()->appendFile('/themes/default/scripts/dashboard.js', 'text/javascript'); $this->view->headLink()->appendStylesheet('/themes/default/styles/dashboard.css'); } /** * Affiche le tableau de bord */ public function indexAction() { //Liste des derniers comptages $auth = Zend_Auth::getInstance(); $user = $auth->getIdentity(); $db = Zend_Registry::get('db'); $criteresM = new Application_Model_Criteres($db); $sql = $criteresM->select(true) ->columns(array('id', 'reference', 'dateAjout')) ->where("idClient = ?", $user->idClient) ->where("login = ?", $user->username) ->order('dateAjout DESC') ->limit(5); $rows = $criteresM->fetchAll($sql); $results = array(); $comptagesM = new Application_Model_Comptages($db); foreach($rows->toArray() as $item) { $info = array( 'id' => $item['id'], 'reference' => $item['reference'], 'dateCriteres' => $item['dateAjout'], ); //Recherche des comptages $sql = $comptagesM->select(true) ->columns(array('resultat', 'uniteInsee', 'dateAjout')) ->where('idDefinition = ?', $item['id']) ->order('dateAjout DESC')->limit(1); $comptage = $comptagesM->fetchAll($sql)->toArray(); if (count($comptage)>0){ $info['resultat'] = $comptage[0]['resultat']; $info['uniteInsee'] = $comptage[0]['uniteInsee']; $info['dateComptage'] = $comptage[0]['dateAjout']; } $results[] = $info; } $this->view->assign('comptages', $results); //Rechercher un comptage } public function menuAction() { } /** * Affiche la liste des ciblages avec pagination */ public function ciblagesAction() { $request = $this->getRequest(); $page = $request->getParam('page', 1); $offset = 20; //Liste des ciblages par paquet de n $auth = Zend_Auth::getInstance(); $user = $auth->getIdentity(); $db = Zend_Registry::get('db'); $criteresM = new Application_Model_Criteres($db); //Compter le nombre de page $sql = $criteresM->select() ->from($criteresM, array('nb' => 'COUNT(*)')) ->where("idClient = ?", $user->idClient) ->where("login = ?", $user->username); $count = $criteresM->fetchRow($sql); $nbCiblage = $count->nb; //Récupérer les informations $position = ($page-1)*$offset+1; $sql = $criteresM->select() ->from($criteresM, array('id', 'reference', 'dateAjout')) ->where("idClient = ?", $user->idClient) ->where("login = ?", $user->username) ->order('dateAjout DESC') ->limitPage($position, $offset); $rows = $criteresM->fetchAll($sql); $results = array(); $comptagesM = new Application_Model_Comptages($db); foreach($rows->toArray() as $item) { $info = array( 'id' => $item['id'], 'reference' => $item['reference'], 'dateCriteres' => $item['dateAjout'], ); //Recherche des comptages $sql = $comptagesM->select(true) ->columns(array('resultat', 'uniteInsee', 'dateAjout')) ->where('idDefinition = ?', $item['id']) ->order('dateAjout DESC')->limit(1); $comptage = $comptagesM->fetchAll($sql)->toArray(); if (count($comptage)>0){ $info['resultat'] = $comptage[0]['resultat']; $info['uniteInsee'] = $comptage[0]['uniteInsee']; $info['dateComptage'] = $comptage[0]['dateAjout']; } $results[] = $info; } $this->view->assign('ciblages', $results); $this->view->assign('nbCiblage', $nbCiblage); } /** * Affiche le détail du comptage * comptage multiple, fichier, etc.... */ public function ciblagedetailAction() { $request = $this->getRequest(); $id = $request->getParam('id'); $auth = Zend_Auth::getInstance(); $user = $auth->getIdentity(); $db = Zend_Registry::get('db'); $criteresM = new Application_Model_Criteres($db); $sql = $criteresM->select() ->where("idClient = ?", $user->idClient) ->where("login = ?", $user->username) ->where("id = ?", $id); $criteres = $criteresM->fetchRow($sql); $this->view->assign('criteres', $criteres->toArray()); if ($criteres != null){ $comptagesM = new Application_Model_Comptages($db); $sql = $comptagesM->select() ->where('idDefinition = ?', $id); $comptages = $comptagesM->fetchAll($sql); $this->view->assign('comptages', $comptages->toArray()); } } /** * Recherche un comptage avec la référence ou la date */ public function rcomptageAction() { $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); $request = $this->getRequest(); $q = strtolower($this->getRequest()->getParam('q', '')); $auth = Zend_Auth::getInstance(); $user = $auth->getIdentity(); $db = Zend_Registry::get('db'); $criteresM = new Application_Model_Criteres($db); $sql = $criteresM->select() ->from($criteresM, array('id', 'reference', "DATE_FORMAT(dateAjout, '%d/%m/%Y') as date")) ->where("idClient = ?", $user->idClient) ->where("login = ?", $user->username) ->where("reference LIKE ?", $q.'%'); $rows = $criteresM->fetchAll($sql); if (count($rows)>0){ $separator = " , "; foreach ($rows as $item) { $output[] = array( 'label' => $item->reference . $separator . $item->date, 'value' => $item->reference, 'url' => $this->view->url(array('controller'=>'dashboard', 'action'=>'ciblagedetail', 'id'=>$item->id)), ); } } echo json_encode($output); } /** * Gestion de la configuration de l'application */ public function configurationAction() { //Préférences //Profil extraction } /** * Liste des exportations simple non lié à un ciblage */ public function exportsAction() { } }