229 lines
7.0 KiB
PHP
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é de cet é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é de cet é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;
|
|
}
|
|
}
|
|
}
|
|
?>
|
|
|
|
|