227 lines
5.8 KiB
PHP
227 lines
5.8 KiB
PHP
<?php
|
|
/**
|
|
* Tableau de bord de gestion pour le client
|
|
* Permet de retrouver ces différents comptages et export
|
|
*
|
|
*/
|
|
class DashboardController extends Zend_Controller_Action
|
|
{
|
|
public function init()
|
|
{
|
|
$this->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()
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
} |