extranet/www/pages/international_recherche.php
2009-07-21 15:08:08 +00:00

229 lines
7.0 KiB
PHP

<?php
if (!$_SESSION['connected']) die();
$tabInfo = $_SESSION['tabInfo'];
$vue = isset($_REQUEST['vue']) ? $_REQUEST['vue'] : 'recherche';
require_once 'graydon/graydon_log.php';
require_once 'dbbootstrap.php';
/* Affichage du formulaire de recherche */
if($vue=='recherche'){
?>
<script type="text/javascript">
$(document).ready(function(){
$('#mode').change(function(){
var mode = $('#mode :selected').val();
document.location.href='<?php print EXTRANET_URL; ?>?page=international_recherche&mode='+mode;
});
$('#pays').change(function(){
var pays = $('#pays :selected').val();
$('#method').html('<p><img src="./img/ajax/19-1.gif" /></p>');
$('#method').load('./pages/graydon/methodfield.php', {'paysCode': pays});
});
});
</script>
<div id="international">
<h2 class="StyleRechercheTitre">RECHERCHE INTERNATIONALE</h2>
<form name="recherche" method="post" action="index.php?page=international_recherche">
<input type="hidden" name="vue" value="list">
<div class="fieldgrp">
<label>Mode : </label>
<div class="field">
<select id="mode" name="mode">
<option value="demo" <?php $_REQUEST['mode']=='demo' ? print ' selected' : '' ;?>>Démonstration</option>
<option value="normal" <?php $_REQUEST['mode']=='normal' ? print ' selected' : '' ;?>>Normal</option>
</select>
</div>
</div>
<div id="subsearch">
<?php
//Si les paramètres mode, method sont dans l'url alors on force la méthode de recherche
if(isset($_REQUEST['method']))
{
$method = $_REQUEST['method'];
$pays = $_SESSION['graydon']['pays'];
}
require_once 'international_rechercheform.php';
?>
</div>
</form>
</div>
<?php
}elseif($vue=='list'){
//*********** Mode démonstration
if($_REQUEST['mode']=='demo'){
$pays = $_REQUEST['frmDemo']['Country'];
//Trouver le code pays pour le mode démos
setDbConn('graydon');
$q = Doctrine_Query::Create()
->select('code')
->from('Country')
->where('graydon_country = ?', $pays);
$result = $q->fetchOne();
$paysCode = $result->code;
$_SESSION['graydon']['mode'] = 'demo';
$_SESSION['graydon']['paysCode'] = $paysCode;
$_SESSION['graydon']['pays'] = $pays;
?>
<div id="internationallist">
<span class="StyleInfoLib">Résultat de la recherche de démonstration :</span>
<?php
require_once 'i18n/cleanchar.php';
require_once 'graydon/graydonws.php';
// Create the request parameters
$request = new StdClass();
// Initialise the request object
$request->Authentication_Parameters = $authentication;
$request->Country = $pays;
try
{
// Make a request on the web service
$result = $graydon->getDemoCompanies($request);
//Enregistrement de l'action dans les logs
$transactionIdentifier = $result->Service_Log->TransactionIdentifier;
$sessionID = $result->Service_Log->SessionID;
graydonRequeteLog($_SESSION['tabInfo']['login'], $page, 'getDemoCompanies', $transactionIdentifier, $sessionID, $manager);
//Log de la requete dans la bdd
setDbConn('graydon');
$log = new Requetelog();
$log->login = $_SESSION['tabInfo']['login'];
$log->action = 'getDemoCompanies';
$log->request = serialize($request);
$log->transactionIdentifier = $transactionIdentifier;
$log->sessionID = $sessionID;
$log->mode = 'demo';
$log->save();
//Get the list of companies
$demoCompaniesCountry = $result->DemoCompanies->CountryAndCompany;
?>
<br/>
<span class="StyleInfoLib">Pays :</span> <span><?php print $demoCompaniesCountry->Country; ?></span>
<ol>
<?php
$demoCompanies = array();
//Enregitrement de la liste en session
$count = count($demoCompaniesCountry->Companies->Company);
if ($count>1){
$demoCompanies = $demoCompaniesCountry->Companies->Company;
}elseif($count==1){
$demoCompanies[] = $demoCompaniesCountry->Companies->Company;
}
$firephp->log($demoCompanies,'demoCompanies');
$counterCompany = 1;
foreach($demoCompanies as $company){
?>
<li class="StyleInfoData" type="1" value="<?php print $counterCompany++; ?>">
<b><a title="Voir la fiche d'identit&eacute; de cet &eacute;tablissement" href="index.php?page=international_identite&mode=demo&identifier=<?php print $company->CompanyMatchIdentifier;?>">
<?php print cleanutf8($company->Name); ?></a></b><br />
Adresse :
<?php
print cleanutf8($company->RegisteredAddress->EntireAddress);
?><br/><br/>
</li>
<?php
}
?>
</ol>
</div>
<?php
}catch( SoapFault $fault ){
if(isset($fault->faultstring) && $fault->faultcode = 'HTTP'){
print '<br/>Le service partenaire n\'est pas disponible.';
}else{
$code = $fault->detail->GraydonCompanyData_Fault->FaultReturnCode;
$text = $fault->detail->GraydonCompanyData_Fault->FaultMessage;
$firephp->log($text,'texterror');
require_once 'graydon/graydon_error.php';
if(graydon_error($code, $text)==FALSE){
print graydon_processSoapFault($graydon,$fault,$tabInfo);
}
}
}
//*********** Mode normal
}elseif($_REQUEST['mode']=='normal'){
$paysCode = $_REQUEST['frmRecherche']['CountryCode'];
//Lire le libélé du pays graydon en fonction du code
setDbConn('graydon');
$q = Doctrine_Query::Create()
->select('graydon_country')
->from('Country')
->where('code = ?', $paysCode);
$result = $q->fetchOne();
$pays = $result->graydon_country;
$firephp->log($pays,'pays');
$_SESSION['graydon']['pays'] = $pays;
$_SESSION['graydon']['paysCode'] = $paysCode;
$_SESSION['graydon']['mode'] = 'normal';
?>
<div id="internationallist">
<span class="StyleInfoLib">Résultat de la recherche :</span>
<?php
require_once 'i18n/cleanchar.php';
require_once 'graydon/graydonws.php';
$result = getCompanyMatches($pays);
if(is_object($result) && count($result)>0){
?>
<br/>
<span class="StyleInfoLib">Pays :</span> <span><?php print $result->Service_Log->Country; ?></span>
<ol>
<?php
$count = count($result->CompanyMatches->Company);
if ($count>1){
$companies = $result->CompanyMatches->Company;
}elseif($count==1){
$companies[] = $result->CompanyMatches->Company;
}
$firephp->log($companies,'companies');
$counterCompany = 1;
foreach($companies as $company){
?>
<li class="StyleInfoData" type="1" value="<?php print $counterCompany++; ?>">
<b><a title="Voir la fiche d'identit&eacute; de cet &eacute;tablissement" href="index.php?page=international_identite&identifier=<?php print $company->CompanyMatchIdentifier;?>">
<?php print cleanutf8($company->Name); ?></a></b><br />
Addresse :
<?php
print cleanutf8($company->RegisteredAddress->EntireAddress);
?><br />
</li>
<?php
}
?>
</ol>
<br/>
<p class="StyleInfoLib">Si aucun résultat ne correspond à votre recherche.</p>
<p class="StyleInfoLib"><a href="./index.php?page=international_recherche">Cliquez-ici</a> pour essayer à nouveau avec des informations différentes.</p>
</div>
<?php
}elseif(is_array($result) && count($result)==0){
?>
<br/><p class="StyleInfoLib">Aucun résultat n'a été trouvé. <a href="./index.php?page=international_recherche">Cliquez-ici</a> pour retourner au formulaire de recherche.</p>
<?php
}else{
print $result;
}
}
}
?>