extranet/includes/recherche/recherche_list.php

432 lines
13 KiB
PHP

<?php
/*
* Le formulaire est soumis en POST
* puis on place le résultat dans la session et on fait un header pour rediriger
* le navigateur du client sur la même url
*/
if (isset($_REQUEST['formR'])){
$_SESSION['formR'] = $_REQUEST['formR'];
unset($_REQUEST['formR']);
header('Location: ./?page=recherche&vue=list');
}
FB::log($_SESSION, 'SESSION');
if ( $formR['type']=='ent' || $formR['type']=='dir' ){
$typeRech = $formR['type'];
}
if (isset($formR['siret']) == true) {
$siret = trim(strtr($formR['siret'],
array(' ' => '', '.' => '', '-' => '', '/' => '')));
}
$pays = strtoupper(substr($siret,0,2));
$typeId = '';
require_once 'i18n/cleanchar.php';
//Enregistrement en session des dix dernières recherches
require_once 'recherche/session.php';
recherche_save($formR);
recherche_saveinfo( array('page' => $page) );
?>
<div id="center">
<table border="0">
<tr>
<td width="10">&nbsp;</td>
<td valign="top" width="570"><br/>
<?php
//Traitement des éléments de recherche
if ($siret!='')
{
$len = strlen($siret);
//Numéro WALDEC
if (strtoupper(substr($siret,0,1))=='W') {
$typeId='W';
$autreId=$siret;
$siret='';
}
//Code ISIN
elseif ($len==12){
$typeId = 'I';
$autreId = $siret;
$siret = '';
$firephp->info('Code ISIN');
}
//TVA Intracommunautaire
elseif ( $pays=='AT' || $pays=='BE' || $pays=='BG' || $pays=='CY' || $pays=='CZ' || $pays=='DE' || $pays=='DK' ||
$pays=='EE' || $pays=='EL' || $pays=='ES' || $pays=='FI' || $pays=='GB' || $pays=='HU' || $pays=='IE' ||
$pays=='IT' || $pays=='LT' || $pays=='LU' || $pays=='LV' || $pays=='MT' || $pays=='NL' || $pays=='PL' ||
$pays=='PT' || $pays=='RO' || $pays=='SE' || $pays=='SI' || $pays=='SK')
{
echo "La recherche par numéro de TVA n'est pas encore possible sur ce pays !";
$tvaIntra = true;
}
//Pour la france
elseif ($pays=='FR')
{
if ($len==13) $siret = substr($siret,4,9);
}
//Numéro RC
elseif (preg_match('/A|B|C|D/i', $siret)) {
$typeId='R';
$autreId=$siret;
$siret='';
}
//Siren normal on enleve tout ce qui n'est pas un chiffre
else
{
$siret = trim(preg_replace('/[^0-9]/', '', $siret));
}
}
if ($typeRech == 'ent') {
// Type de recherche = entreprises
$telFax = trim(preg_replace('/[^0-9]/', '', $formR['telFax']));
$naf = trim(preg_replace('/[^0-9A-Z]/i', '', $formR['naf']));
//if ($telFax<>'') $typeId='T';
// Traitement des données formulaire
$raisonSociale =
preg_replace('/[^0-9A-Z]/', ' ',
strtoupper(cleanstring($formR['raisonSociale'])));
$numVoie = preg_replace('/[^0-9]/', '', $formR['numVoie']);
if ($numVoie > 9999) {
die('Numéro de voie incorrecte !');
}
$libVoie = preg_replace('/[^0-9A-Z]/', ' ',
strtoupper(cleanstring($formR['voie'])));
$cpVille =
preg_replace('/ +/',' ',
preg_replace('/[^0-9A-Z]/', ' ',
strtoupper(cleanstring($formR['cpVille']))));
if (preg_match("/^([0-9]{2,5})([\D]*)/i", $cpVille, $matches)) {
$cp = trim($matches[1]);
$ville = trim($matches[2]);
} else {
$cp = '';
$ville = trim($cpVille);
}
} else if ($typeRech == 'dir') {
// Type de recherche = dirigeants
$dirNom = preg_replace('/[^0-9A-Z]/', ' ',
strtoupper(trimAccent($formR['dirNom']))
);
$dirPrenom = preg_replace('/[^0-9A-Z]/', ' ',
strtoupper(trimAccent($formR['dirPrenom']))
);
$dirDateNaissJJ = preg_replace('/[^0-9]/', '',
$formR['dirDateNaissJJ'])*1;
if ($dirDateNaissJJ<0 || $dirDateNaissJJ>31)
die('Jour de naissance incorrect !');
$dirDateNaissMM = preg_replace('/[^0-9]/', '',
$formR['dirDateNaissMM'])*1;
if ($dirDateNaissMM<0 || $dirDateNaissMM>12)
die('Mois de naissance incorrect !');
$dirDateNaissAAAA = preg_replace('/[^0-9]/', '',
$formR['dirDateNaissAAAA'])*1;
$year = date('Y')-18;
if ($dirDateNaissAAAA<0 || $dirDateNaissAAAA>$year)
die('Année de naissance incorrecte !');
$dirDateNaiss=$dirDateNaissJJ.'/'.$dirDateNaissMM.'/'.$dirDateNaissAAAA;
$dirCpVille = preg_replace('/ +/',' ', preg_replace('/[^0-9A-Z]/', ' ',
strtoupper($formR['dirCpVille']))
);
if (preg_match("/^([0-9]{2,5})([\D]*)/i", $dirCpVille, $matches))
{
$dirCp = trim($matches[1]);
$dirVille = trim($matches[2]);
}
else $dirVille = trim($dirCpVille);
}
//Index à envoyer au webservice pour obtenir les résultats suivant
if (isset($_REQUEST['p'])) {
$position = $_REQUEST['p'];
} else {
$position = 0;
}
//Type de recherche = entreprise
if ($typeRech=='ent' && $siret<>'') {
echo "<!--_typeRech=ent, siren=$siret-->\n";
try {
$O = $client->searchSiren($siret, $position, $tabInfo['nbReponses'], 200, $cp);
} catch (SoapFault $fault) {
require_once 'soaperror.php';
processSoapFault($client,$fault,$tabInfo);
}
} elseif ($typeRech=='ent' && $telFax<>'') {
echo "<!--_typeRech=ent, telFax=$telFax-->\n";
try {
$O = $client->searchTelFax($telFax, $position, $tabInfo['nbReponses'], 200);
} catch (SoapFault $fault) {
require_once 'soaperror.php';
processSoapFault($client,$fault,$tabInfo);
}
} elseif ($typeRech=='ent' && ($typeId=='R' || $typeId=='W' || $typeId=='I') ) {
$firephp->log( 'searchAutreId('.$typeId.', '.$autreId.', '.$position.', '.$tabInfo['nbReponses'].', 200, '.$cp.')', 'Requete');
echo "<!--_typeRech=ent, Autre Id $typeId=$autreId-->\n";
try {
$O = $client->searchAutreId($typeId, $autreId, $position, $tabInfo['nbReponses'], 200, $cp);
} catch (SoapFault $fault) {
require_once 'soaperror.php';
processSoapFault($client,$fault,$tabInfo);
}
} elseif ($typeRech=='ent' && $siret=='') {
echo "<!--_typeRech=ent, $raisonSociale, ".
"$numVoie $libVoie, $cp, $ville-->\n";
try {
$O = $client->searchNomAdr($raisonSociale, $numVoie.' '.$libVoie,
$cp, $ville, false, false, $position,
$tabInfo['nbReponses'], 200, false, false,
$naf);
} catch (SoapFault $fault) {
require_once 'soaperror.php';
processSoapFault($client,$fault,$tabInfo);
}
} elseif ($typeRech=='dir') {
echo "<!--_typeRech=dir, $dirNom, $dirPrenom, -->\n";
try {
$O = $client->searchDir($dirNom, $dirPrenom, $dirDateNaiss, $dirVille, $position, $tabInfo['nbReponses'], 200, false);
} catch (SoapFault $fault) {
require_once 'soaperror.php';
processSoapFault($client,$fault,$tabInfo);
}
}
if($typeRech == 'ent'){
$strCriteres = '<a href="./?page=recherche&vue=ent">'.trim(@implode(' ', $O['results']['criteres'])).'</a>';
} elseif($typeRech == 'dir') {
$strCriteres = '<a href="./?page=recherche&vue=dir">'.trim(@implode(' ', $O['results']['criteres'])).'</a>';
}
if ( $O['results']['nbReponses']==0)
{
if( !isset($tvaIntra) )
echo '<p class="StyleInfoLib">Pas de r&eacute;sultat affich&eacute; avec le(s) crit&egrave;re(s) " '. $strCriteres .'" ('.$O['results']['nbReponsesTotal'].' sans les filtres).</p>';
}
else
{
$etabs = $O['results']['reponses'];
//Enregistrement de la première raison sociale trouvé si la recherche n'a été faite que sur un siren
if ($typeRech=='ent' && $siret!='' && $raisonSociale=='')
{
recherche_saveinfo( array('raisonSociale' => $etabs[0]['Nom']) );
}
?>
<p class="StyleInfoLib">
<?php
if ($O['results']['nbReponses']<$O['results']['nbReponsesTotal'])
{
$totPage=ceil($O['results']['nbReponsesTotal']/$tabInfo['nbReponses']);
$curPage=ceil($position/$tabInfo['nbReponses'])+1;
echo $O['results']['nbReponsesTotal'] .
' r&eacute;ponses avec les crit&egrave;res "' .
$strCriteres . '". ' .
$O['results']['nbReponses'].
' r&eacute;sultats affich&eacute;s. Page ' .
$curPage.'/'.$totPage.'.';
} else {
$totPage=$curPage=1;
echo $O['results']['nbReponsesTotal'] .
' r&eacute;ponses avec les crit&egrave;res "' .
$strCriteres .'".';
}
?>
</p>
<ol>
<?php
foreach ($etabs as $i => $etab)
{
if ($etab['Siege']==1) $strEtab='&Eacute;tablissement si&egrave;ge ';
else $strEtab='&Eacute;tablissement secondaire ';
if ($etab['Actif']==1) $strEtab.='actif';
else $strEtab.='inactif';
if($etab['Nic']*1==0 || $etab['Nic']*1>=99990) $strEtab.=' provisoire';
//Lien vers fiche identité
if ($etab['Siege']!=1 || ($etab['Siege']==1 && $etab['Actif']!=1))
$lien='<a title="Voir la fiche d\'identit&eacute; du siège de cette entreprise" href="/?page=identite&siret='.$etab['Siren'].'">(Acc&egrave;s si&egrave;ge)</a>';
else $lien='';
?>
<li class="StyleInfoData" type="1" value="<?=((($curPage-1)*$tabInfo['nbReponses'])+$i+1);?>">
<?php $href = '/?page=identite&siret='.$etab['Siret'].'&idEntreprise='.$etab['id']; ?>
<b><a title="Voir la fiche d'identit&eacute; de cet &eacute;tablissement" href="<?=$href?>"><?=$etab['Nom']?></a></b><br/>
<?
if ($etab['Nom2']<>'' || $etab['Enseigne']<>'' || $etab['Sigle']<>'') {
echo '<i>';
if ($etab['Nom2']<>'') echo $etab['Nom2'].'<br/>';
if ($etab['Enseigne']<>'') echo 'Enseigne : '.$etab['Enseigne'].'&nbsp;&nbsp;&nbsp;&nbsp;';
if ($etab['Sigle']<>'') echo 'Sigle : '.$etab['Sigle'];
echo '</i><br/>';
}
?>
<b>RCS <?=substr($etab['Siren'],0,3).' '.substr($etab['Siren'],3,3).' '.substr($etab['Siren'],6,3).' '.$etab['Nic'];?><br/>
<?=$strEtab;?></b>&nbsp;&nbsp;<?=$lien;?><br/>
<?=$etab['Adresse'];?><br/>
<?php
if (isset($etab['Adresse2']) && $etab['Adresse2'] != '') {
echo $etab['Adresse2'].'<br/>';
}
?>
<b><?=$etab['CP'].' '.$etab['Ville']?></b><br/>
<?php
/** Si présent, on affiche la forme Juridique **/
if (trim($etab['FJ'])!='')
{
?>
<i>Forme : <?=strWsToHtml($etab['FJLib']). ' ('.$etab['FJ'];?>)</i><br/>
<?
}
/** Si présent, on affiche l'activité NAF **/
if (trim($etab['NafEnt'])!='')
{
?>
<i>Activit&eacute; : <?=strWsToHtml($etab['NafEntLib']). ' ('.$etab['NafEnt'];?>)</i><br/>
<?
}
if ($typeRech=='dir')
{
echo '<u>Dirigeant recherch&eacute; :</u> ';
if ($etab['DirRs']<>'') {
echo '<b>'. strWsToHtml($etab['DirRs']) . '</b>, repr&eacute;sent&eacute; par ';
}
echo strWsToHtml($etab['DirNom']) .' '. strWsToHtml($etab['DirPrenom']);
if ($etab['DirNomUsage']<>'' && $etab['DirNomUsage']<>$etab['DirNom'])
echo ' ('. strWsToHtml($etab['DirNomUsage']) . ')';
echo '<i>, '.strWsToHtml($etab['DirFonction']).'</i><br/>';
}
//Affichage spécial
if( $_SESSION['tabInfo']['idClient']==34 )
{
?>
Liens : <i><a title="Consultez les comptes annuels" href="./?page=greffes&vue=bilans&siret=<?=$etab['Siret']?>">Comptes annuels</a></i> -
<i><a title="Consultez les actes et status" href="./?page=greffes&vue=actes&siret=<?=$etab['Siret']?>">Actes et status</a></i>
<br/>
<?php
}
?>
<?php
$listProfile = defineProfil();
$idClient = $_SESSION['tabInfo']['idClient'];
if(array_key_exists($idClient, $listProfile))
{
$liensProfile = $listProfile[$idClient];
if(is_array($liensProfile) && count($liensProfile)>0)
{
$i=0;
foreach($liensProfile as $vue => $lien)
{
if(hasProfil($vue))
{
if($i==0) { echo 'Liens'; }
?>
<i>
<a title="<?=$lien['titre']?>" href="./?page=<?=$vue?>&siret=<?=$etab['Siret']?>&idEntreprise=<?=$etab['idEntreprise']?>&profil=1">
<?=$lien['titre']?>
</a>
</i>
<?php
}
if(count($liensProfile)<$i) { echo '-'; }
$i++;
if(count($liensProfile)==$i) { echo '<br/>'; }
}
}
}
?>
<br/>
</li>
<?
} //fin parcours etabs
?>
<table>
<tr>
<?php
if ($curPage>1)
{
$prev_index=$position-$O['results']['nbReponses'];
if ($prev_index<$O['results']['nbReponses']) $prev_index=0;
?>
<td width="40%" align="right">
<a href="./?page=recherche&vue=list&p=<?=$prev_index?>" title="Page précédente...">
<img src="./img/boutton_precedent_off.gif" onmouseover="this.src='./img/boutton_precedent_on.gif'" onmouseout="this.src='./img/boutton_precedent_off.gif'"/>
</a>
</td>
<?
}
else
{
?>
<td width="40%">&nbsp;</td>
<?php
}
if ($curPage!=$totPage)
{
?>
<td width="20%">Page <?=$curPage?>/<?=$totPage?></td>
<?php
}
if ($curPage<$totPage)
{
?>
<td width="40%" align="left">
<a href="./?page=recherche&vue=list&p=<?=$position+$O['results']['nbReponses']?>" title="Page suivante...">
<img src="./img/boutton_suivant_off.gif" onmouseover="this.src='./img/boutton_suivant_on.gif'" onmouseout="this.src='./img/boutton_suivant_off.gif'"/>
</a>
</td>
<?
}
else
{
?>
<td width="40%">&nbsp;</td>
<?php
}
?>
</table>
</ol>
<?php
} //Fin test nombre de résultat
?>
<br/>
<?php
if ($typeRech=='dir')
{
$search = '';
if(isset($_REQUEST['formR']['dirNom'])){ $search.= $_REQUEST['formR']['dirNom']; }
if(isset($_REQUEST['formR']['dirPrenom']) && count($search)>0 ){ $search.= ' '.$_REQUEST['formR']['dirPrenom']; }
if(isset($_REQUEST['formR']['dirPrenom']) && count($search)==0 ){ $search.= $_REQUEST['formR']['dirPrenom']; }
?>
<p class="StyleInfoLib">Effectuer une recherche entreprise avec les paramètres "<a href="./?page=recherche&vue=list&formR[type]=ent&formR[raisonSociale]=<?=$search?>"><?=$search?></a>"</p>
<?php
}
if (preg_match('/\bINVESTIG\b/i', $_SESSION['tabInfo']['droits']))
{
?>
<p class="StyleInfoLib">
Si aucun r&eacute;sultat ne correspond &agrave; votre recherche.
<a href="./?page=recherche&action=rechercher&vue=enq">Cliquez-ici.</a><br/>
</p>
<?php
}
?>
</td>
</tr>
</table>
</div>