Recherche dirigeant

This commit is contained in:
Michael RICOIS 2016-05-12 15:23:07 +02:00
parent 735cc014ba
commit 033d01ed62
3 changed files with 421 additions and 3 deletions

View File

@ -21,5 +21,312 @@ class Search_DirigeantController extends Zend_Controller_Action
$this->view->assign('form', $form);
}
public function listAction(){}
public function listAction()
{
$request = $this->getRequest();
$params = $request->getParams();
$type = $request->getParam('type', '');
$token = $request->getParam('token', null);
$filtre = $request->getParam('filtre', 'tout');
$listParams = array('dirNom', 'dirPrenom', 'dirDateNaissJJ', 'dirDateNaissMM', 'dirDateNaissAAAA', 'dirCpVille');
$rechercheParams = new Scores_Session_Recherche();
//Si le formulaire a été soumis alors on enregistre en session et on redirige
if ( !empty($type) ) {
//Vérification si au moins un champs a été saisie
$nbField = count($listParams);
foreach($listParams as $key){
if(!empty($params[$key])){
$params[$key] = strip_tags($params[$key]);
} else {
$nbField--;
}
}
if ($nbField==0){
$this->redirect($this->view->url(array()));
}
//Redirection
$token = $rechercheParams->save($type, $params);
$this->redirect($this->view->url(array('token'=>$token)));
}
//On selectionne en session
if (count($rechercheParams->liste())>0){
$recherche = $rechercheParams->get($token);
$type = $recherche['type'];
$params = $recherche['params'];
}
$user = new Scores_Utilisateur();
$this->view->assign('IDENTITE', $user->checkPerm('IDENTITE'));
//Pagination
$page = $request->getParam('page', 1);
if ( $page <= 0 ) $page = 1;
$nbAffichage = $user->getNbRep();
$position = ($page - 1 ) * $nbAffichage;
require_once 'Scores/WsScores.php';
$ws = new WsScores();
// Type de recherche = dirigeants
//$dirNom = preg_replace('/[^0-9A-Z]/', ' ', strtoupper($params['dirNom']));
//$dirPrenom = preg_replace('/[^0-9A-Z]/', ' ', strtoupper($params['dirPrenom']));
$dirNom = $params['dirNom'];
$dirPrenom = $params['dirPrenom'];
$dirDateNaissJJ = preg_replace('/[^0-9]/', '', $params['dirDateNaissJJ']);
if (intval($dirDateNaissJJ)<0 || intval($dirDateNaissJJ>31)){
//die('Jour de naissance incorrect !');
}
$dirDateNaissMM = preg_replace('/[^0-9]/', '', $params['dirDateNaissMM']);
if (intval($dirDateNaissMM)<0 || intval($dirDateNaissMM>31)){
//die('Mois de naissance incorrect !');
}
$dirDateNaissAAAA = preg_replace('/[^0-9]/', '', $params['dirDateNaissAAAA']);
$year = date('Y')-18;
if (intval($dirDateNaissAAAA)<0 || intval($dirDateNaissAAAA)>$year){
//die('Année de naissance incorrecte !');
}
$dirDateNaiss = $dirDateNaissJJ.'/'.$dirDateNaissMM.'/'.$dirDateNaissAAAA;
if ($dirDateNaiss=='//') $dirDateNaiss = '';
$dirCpVille = preg_replace('/ +/',' ', preg_replace('/[^0-9A-Z]/', ' ',
strtoupper($params['dirCpVille']))
);
/*
if (preg_match('/^([0-9]{2,5})([\D]+)/i', $dirCpVille, $matches))
{
$dirCp = trim($matches[1]);
$dirVille = trim($matches[2]);
}
else {
$dirVille = trim($dirCpVille);
}
*/
$criteres = array();
$criteres['dirNom'] = $dirNom;
$criteres['dirPrenom'] = $dirPrenom;
$criteres['dirDateNaiss'] = $dirDateNaiss;
$criteres['lieuNaiss'] = $dirCpVille;
$reponse = $ws->searchDir($criteres, $position, $user->getNbRep());
$nbReponses = 0;
$nbReponsesTotal = 0;
if (is_object($reponse) && $reponse !== false)
{
$etabs = $reponse->result->item;
$criteresTexte = '';
foreach ($criteres as $value){
if (!empty($value)) $criteresTexte.= $value.' ';
}
$criteresTexte = trim($criteresTexte);
$params['action'] = 'dirigeant';
foreach ($params as $key => $param) {
$params[$key] = str_replace('/', ' ', $params[$key]);
}
$criteresLien = $this->view->url($params);
$liste = array();
if (count($etabs)>0) {
foreach($etabs as $i => $etab) {
$item = array();
$item['position'] = ($position)+$i+1;
$item['id'] = $etab->id;
$item['siren'] = $etab->Siren;
$item['siret'] = $etab->Siren.$etab->Nic;
$item['InfoSiret'] = $etab->Siren.' '.$etab->Nic;
$item['InfoNom'] = $etab->Nom;
$item['source'] = $etab->Source;
$item['sourceId'] = $etab->SourceId;
$nomDetail = '';
if ($etab->Nom2<>'' || $etab->Enseigne<>'' || $etab->Sigle<>'') {
$nomDetail.= '<i>';
if ($etab->Nom2!='') $nomDetail.= $etab->Nom2.'<br/>';
if ($etab->Enseigne<>'') $nomDetail.= 'Enseigne : '.$etab->Enseigne.'&nbsp;&nbsp;&nbsp;&nbsp;';
if ($etab->Sigle<>'') $nomDetail.= 'Sigle : '.$etab->Sigle;
$nomDetail.= '</i><br/>';
}
$item['InfoNomDetail'] = $nomDetail;
$item['InfoSiret'] = substr($etab->Siren,0,3).' '.substr($etab->Siren,3,3).' '.substr($etab->Siren,6,3).' '.$etab->Nic;
$infoEtab = '';
if (null !== $etab->Pays && strtolower($etab->Pays)!='france') {
$infoEtab.= "Etablissement à l'étranger";
} else {
if ($etab->Siege==1){
$infoEtab.= '&Eacute;tablissement si&egrave;ge ';
} elseif ($etab->Siege==2) {
$infoEtab.= '&Eacute;tablissement principal ';
} else {
$infoEtab.= '&Eacute;tablissement secondaire ';
}
if ($etab->Actif==1){
$infoEtab.= 'actif';
} else {
$infoEtab.= 'inactif';
}
//Etablissement communiqués par le RCS n'ayant pas de NIC à l'INSEE
if (intval($etab->Nic)==0 || intval($etab->Nic)>=99990) {
$infoEtab.=' provisoire';
}
if ($etab->Siege!=1 || ($etab->Siege==1 && $etab->Actif!=1)) {
$url = $this->view->url(array(
'controller'=>'identite',
'action'=>'fiche',
'id' => $etab->id,
'siret' => $etab->Siren,
), 'default', true);
if ( $user->checkPerm('IDENTITE') ) {
$infoEtab.= ' <a title="Voir la fiche d\'identité du siège de cette entreprise"'.
' href="'.$url.'">(Accès ';
if ($etab->Siege==1) {
$infoEtab.= 'dernier ';
}
$infoEtab.= 'siège)</a>';
}
}
}
$item['InfoEtab'] = $infoEtab;
$adresse = $etab->Adresse;
if ( !empty($etab->Adresse2) ) {
$adresse.= '<br/>'.$etab->Adresse2;
}
if ( !empty($etab->Ville) && intval($etab->CP) > 0) {
$adresse.= '<br/><b>'.$etab->CP." ".$etab->Ville."</b>";
}
if (null !== $etab->Pays) {
$adresse.= '<br/><b>'.$etab->Pays.'</b>';
}
$item['InfoAdresse'] = $adresse;
if ( $etab->Actif!=1 ) {
$item['class'] = 'StyleInfoData';
} else {
$item['class'] = 'StyleInfoDataActif';
}
$forme = '';
if ( trim($etab->FJ)!='' && intval($etab->FJ)!=0 )
{
$forme = '<i>Forme : '.$etab->FJLib.' ('.$etab->FJ.')</i><br/>';
}
$item['InfoForme'] = $forme;
$activite = '';
if (trim($etab->NafEnt)!='')
{
$activite = '<i>Activit&eacute; : '.$etab->NafEntLib.' ('.$etab->NafEnt.')</i><br/>';
}
$item['InfoActivite'] = $activite;
$item['InfoDirigeant'] = '<u>Dirigeant recherch&eacute; :</u> ';
if ($etab->DirRs!='') {
$item['InfoDirigeant'].= '<b>'.$etab->DirRs.'</b>, repr&eacute;sent&eacute; par ';
}
$item['InfoDirigeant'].= $etab->DirNom .' '. $etab->DirPrenom;
if ( $etab->DirNomUsage != '' && $etab->DirNomUsage != $etab->DirNom) {
$item['InfoDirigeant'].= ' ('. $etab->DirNomUsage . ')';
}
$item['InfoDirigeant'].= '<i>, '.$etab->DirFonction.'</i><br/>';
//Affichage accès direct aux pages
$liens = array();
/**
* test en dur clients pour bilans
* @todo client = 34
* @todo client = 60
*/
if ($user->getIdClient()==34 || $user->getIdClient()==60) {
$liens[] = array(
'title' => 'Comptes annuels',
'href' => $this->view->url(array('controller'=>'pieces', 'action'=>'bilans',
'siret'=>$etab->Siren.$etab->Nic, 'id'=>$etab->id), 'default', true),
);
$liens[] = array(
'title' => 'Actes et status',
'href' => $this->view->url(array('controller'=>'pieces', 'action'=>'actes',
'siret'=>$etab->Siren.$etab->Nic, 'id'=>$etab->id), 'default', true),
);
}
/**
* test en dur clients pour fiche
* @todo client = 60
*/
if ($user->getIdClient()==60) {
$liens[] = array(
'title' => 'Fiche AGS',
'href' => $this->view->url(array('controller'=>'identite', 'action'=>'fichepc',
'siret'=>$etab->Siren.$etab->Nic, 'id'=>$etab->id), 'default', true),
);
}
if (count($liens)>0) {
$item['lien'] = $liens;
}
$liste[] = $item;
}
}
} elseif (is_string($reponse)){
$this->forward('index', 'entreprise', 'search', array_merge( $params, array('message' => $reponse)));
} else {
$this->forward('soap', 'error', 'default');
}
$this->view->assign('blockInvestig', $user->checkPerm('INVESTIG'));
$this->view->assign('blockDirToEntreprise', true);
$this->view->assign('searchDirToEntrepriseTxt', trim($criteres['dirNom'].' '.$criteres['dirPrenom']));
$this->view->assign('searchDirToEntrepriseLien', $this->view->url(array('module'=>'search', 'controller'=>'entreprise',
'action'=>'list', 'type'=>'ent', 'raisonSociale'=>trim($criteres['dirNom'].' '.$criteres['dirPrenom']))));
$this->view->assign('liste', $liste);
//Calcul pagination
$nbReponses = $reponse->nbReponses;
$nbReponsesTotal = $reponse->nbReponsesTotal;
if ($nbReponses < $nbReponsesTotal) {
$pageTotal = ceil( $nbReponsesTotal / $nbAffichage );
$pageCurrent = $page;
$pagePrev = $page - 1;
if ($pagePrev < 1) {
$pagePrev = 1;
}
$pageNext = $page + 1;
if( $pageNext > $pageTotal ) {
$pageNext = $pageTotal;
}
} else {
$pageTotal = $pageCurrent = 1;
}
$this->view->assign('PageTotal', $pageTotal);
$this->view->assign('PagePrev', $pagePrev);
$this->view->assign('PageNext', $pageNext);
$this->view->assign('PageCurrent', $pageCurrent);
$this->view->assign('nbReponses', empty($nbReponses) ? 0 : $nbReponses);
$this->view->assign('nbReponsesTotal', empty($nbReponsesTotal) ? 0 : $nbReponsesTotal);
$this->view->assign('token', $token);
$this->view->assign('criteresTexte', $criteresTexte);
$this->view->assign('criteresLien', $criteresLien);
$this->view->assign('info', $reponse->info);
}
}

View File

@ -2,7 +2,8 @@
<div id="content">
<h3 class="text-center"><?=$this->translate("Recherche Dirigeant")?></h3>
<form class="form-horizontal" name="<?php echo $form->getName()?>" method="<?php echo $form->getMethod()?>" action="<?php echo $form->getAction()?>">
<form class="form-horizontal" name="<?=$form->getName()?>" method="post" action="<?=$this->url(array('module'=>'search',
'controller'=>'dirigeant', 'action'=>'index'), 'default', true)?>">
<?php echo $form->type?>

View File

@ -1 +1,111 @@
<?php
<div id="center">
<div id="recherche-info">
<p class="StyleInfoLib">
<?=$this->nbReponsesTotal?> r&eacute;ponse<?php if ($this->nbReponsesTotal>1){?>s<?php }?>
avec les crit&egrave;res "<a href="<?php echo $this->criteresLien?>"><?=$this->criteresTexte?></a>".
<?php if ($this->PageTotal!=1) {?>
<?=$this->nbReponses?> r&eacute;sultats affich&eacute;s. Page <?=$this->PageCurrent.'/'.$this->PageTotal.'.';?>
<?php }?>
<?php if ($this->filtres) { ?>
<select name="filtre">
<?php foreach ($this->filtres as $k => $filtre) {?>
<option value="<?=$this->url(array('filtre'=>$k))?>"<?=$filtre['select']?>><?=$filtre['txt']?></option>
<?php }?>
</select>
<script type="text/javascript">
$('select[name=filtre]').change(function(e){
window.location = $(this).val();
});
</script>
<?php }?>
</p>
</div>
<?php if (!empty($this->info)) { ?>
<div style="margin:5px; padding: 0pt 0.7em;" class="ui-state-highlight ui-corner-all">
<p><span style="float: left; margin-right: 0.3em;" class="ui-icon ui-icon-info"></span>
<?=$this->info?></p>
</div>
<?php }?>
<ol>
<?php foreach ( $this->liste as $item ) { ?>
<li style="list-style-type:decimal;" class="<?=$item['class']?>" type="1" value="<?=$item['position']?>">
<b>
<?php if ($this->IDENTITE) {?>
<?php if ($item['source']==7 && !empty($item['sourceId'])) {?>
<a title="Voir les liens inter entreprises de cet établissement"
href="<?=$this->url(array('controller'=>'identite','action'=>'liens','lienref'=>$item['sourceId']),'default',true)?>">
<?php } else {?>
<a title="Voir la fiche d'identité de cet établissement"
href="<?=$this->url(array('controller'=>'identite','action'=>'fiche','id'=>$item['id'],'siret'=>$item['siret']),'default',true)?>">
<?php }?>
<?php } else {?>
<a title="Vous n'avez pas les permissions nécessaires pour accèder à la fiche identité" href="#">
<?php }?>
<?=$item['InfoNom']?></a></b><br/>
<?=$item['InfoNomDetail']?>
<b>RCS <?=$item['InfoSiret']?></b>
<br/>
<b><?=$item['InfoEtab']?></b><br/>
<?=$item['InfoAdresse']?><br/>
<?=$item['InfoForme']?>
<?=$item['InfoActivite']?>
<?php if (isset($item['InfoDirigeant'])) { ?>
<?=$item['InfoDirigeant']?>
<?php } elseif(isset($item['InfoActionnaire'])) {?>
<?=$item['InfoActionnaire']?>
<?php }?>
<?php if (isset($item['lien']) && count($item['lien'])>0) {?>
<br/> Liens : <?php foreach($item['lien'] as $lien){?>
<a href="<?=$lien['href']?>"><?=$lien['title']?></a>
<?php }?>
<?php }?>
</li>
<?php }?>
</ol>
<?php if ($this->PageTotal>1) {?>
<div class="paragraph">
<div class="pagination clearfix">
<a class="first" href="<?=$this->url(array('page'=>1, 'token'=> $this->token))?>">&laquo;</a>
<a class="previous" href="<?=$this->url(array('page'=>$this->PagePrev, 'token'=> $this->token))?>">&lsaquo;</a>
<span>Page <?=$this->PageCurrent?>/<?=$this->PageTotal?></span>
<a class="next" href="<?=$this->url(array('page'=>$this->PageNext, 'token'=> $this->token))?>">&rsaquo;</a>
<a class="last" href="<?=$this->url(array('page'=>$this->PageTotal, 'token'=> $this->token))?>">&raquo;</a>
</div>
</div>
<?php }?>
<div class="paragraph">
<?php if ($this->rechCsv) { ?>
<?php foreach ($this->filtres as $k => $filtre) { if ( !empty($filtre['select']) ) break; }?>
<p class="StyleInfoLib">
<a href="<?=$this->url(array('controller'=>'recherche', 'action'=>'csv', 'filtre'=>$k), 'default', true)?>" target="_blank">
Exporter les résultats de la recherche en CSV.</a>
</p>
<?php } ?>
<?php if ($this->blockDirToEntreprise){ ?>
<p class="StyleInfoLib">
Effectuer une recherche entreprise avec les paramètres "<a href="<?=$this->searchDirToEntrepriseLien?>">
<?=$this->searchDirToEntrepriseTxt?></a>"
</p>
<?php }?>
<?php if ($this->blockInvestig) { ?>
<p class="StyleInfoLib">
Si aucun r&eacute;sultat ne correspond &agrave; votre recherche.
<a href="<?=$this->url(array('controller'=>'recherche','action'=>'enquete'), 'default', true)?>">Cliquez-ici.</a>
</p>
<?php }?>
</div>
</div>