<?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');
	exit;
}

/*
 * Si la session est rempli alors on affecte les valeurs
 * pour les champs du formulaire
 */
if (isset($_SESSION['formR'])) {
	$formR = $_SESSION['formR'];
}

$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
if ($vueRecherche != 'list_pre' ){
	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">
<?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);
	}
} elseif ($typeRech == 'act') {
    
	$actNomRs = trim($formR['actNomRs']);
	$pays = $formR['pays'];
	$pctMin = preg_replace('/[^0-9]/', '', trim($formR['pctMin']));
	$pctMax = preg_replace('/[^0-9]/', '', trim($formR['pctMax']));
	$cpVille = preg_replace('/ +/',' ', preg_replace('/[^0-9A-Z]/', ' ',strtoupper(cleanstring($formR['cpVille']))));
	
}

// Index à envoyer au webservice pour obtenir les résultats suivant
if (isset($_REQUEST['p'])) {
    $position = $_REQUEST['p'];
} else {
    $position = 0;
}

// --------------------------------------------------------------------------- //
// Giant
// --------------------------------------------------------------------------- //
if ($typeRech == 'ent' && !empty($formR['pays'])) {
    include_once('giant/Search.php');
    exit;
}

//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);
	}
} elseif ($typeRech=='act') {
	try {
		$O = $client->searchAct(
			$actNomRs, $cpVille, $siret, $pays, $pctMin, $pctMax,
			$tabInfo['nbReponses'], 200, false
			);
		echo '<!-- '.print_r($formR,1).' -->';
		echo '<!-- '.print_r($O,1).' -->';
			
	} catch (SoapFault $fault) {
		require_once 'soaperror.php';
		processSoapFault($client,$fault,$tabInfo);
	}
}

$params = '';
foreach($formR as $key => $value){
	$params.= '&formR['.$key.']='.urlencode($value);
}
if($typeRech == 'ent'){
	$strCriteres = '<a href="./?page=recherche&vue=ent'.$params.'">'.trim(@implode(' ', $O['results']['criteres'])).'</a>';
} elseif($typeRech == 'dir') {
	$strCriteres = '<a href="./?page=recherche&vue=dir'.$params.'">'.trim(@implode(' ', $O['results']['criteres'])).'</a>';
} elseif($typeRech == 'act') {
	$strCriteres = '<a href="./?page=recherche&vue=act'.$params.'">'.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>
<?php
if ( isset($O['results']['info']) &&
	!empty($O['results']['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>
<?=$O['results']['info']?></p>
</div>
<?php
}
?>

	<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 style="list-style-type:decimal;" 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/>';
		}
		
		if ($typeRech == 'act'){
			
			
		}
		
		//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($_SESSION['formR']['dirNom'])){ $search.= $_SESSION['formR']['dirNom']; }
	if(isset($_SESSION['formR']['dirPrenom']) && count($search)>0 ){ $search.= ' '.$_SESSION['formR']['dirPrenom']; }
	if(isset($_SESSION['formR']['dirPrenom']) && count($search)==0 ){ $search.= $_SESSION['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 ( hasPerm('investig') )
{
?>
  <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>