522 lines
17 KiB
PHP
522 lines
17 KiB
PHP
<?php
|
|
session_start();
|
|
if (!$_SESSION['connected']) die();
|
|
|
|
$tabInfo = $_SESSION['tabInfo'];
|
|
|
|
$identifier = $_REQUEST['identifier'];
|
|
$pays = $_SESSION['graydon']['pays'];
|
|
$mode = $_SESSION['graydon']['mode'];
|
|
|
|
/*
|
|
getCompanyProduct
|
|
Afficher les informations de getCompanyProduct (Identifiant, Activité, téléphone )
|
|
Si product.type=database alors on récupère un rapport
|
|
on traite suivant le mimetype
|
|
on affiche les informations
|
|
|
|
getCompanyMatchIdentifier
|
|
|
|
*/
|
|
require_once 'i18n/cleanchar.php';
|
|
require_once 'graydon/graydonws.php';
|
|
require_once 'graydon/pays.php';
|
|
require_once 'graydon/graydon_log.php';
|
|
require_once 'dbbootstrap.php';
|
|
|
|
/** Recherche des identifiants et mise en cache **/
|
|
setDbConn('graydon');
|
|
$q = Doctrine_Query::create()
|
|
->from('Matchidentifiers')
|
|
->where('country = ?', $pays);
|
|
|
|
$matchidentifiers = new Matchidentifiers();
|
|
$matchidentifiers = $q->fetchOne();
|
|
|
|
/** Recup des types d'identifiants pour le pays **/
|
|
if($matchidentifiers == FALSE){
|
|
//Récupération des intitulés identifiant
|
|
$request = new StdClass();
|
|
$request->Authentication_Parameters = $authentication;
|
|
$request->Country = $pays;
|
|
$firephp->log($request,'REQUETE CompanyMatchIdentifier');
|
|
try
|
|
{
|
|
$result = $graydon->getCompanyMatchIdentifiers($request);
|
|
//Enregistrement de l'action dans les logs
|
|
$transactionIdentifier = $result->Service_Log->TransactionIdentifier;
|
|
$sessionID = $result->Service_Log->SessionID;
|
|
|
|
graydonRequeteLog($_SESSION['tabInfo']['login'], $page, 'getCompanyMatchIdentifiers', $transactionIdentifier, $sessionID);
|
|
|
|
//Log de la requete dans la bdd
|
|
setDbConn('graydon');
|
|
$log = new Requetelog();
|
|
$log->login = $_SESSION['tabInfo']['login'];
|
|
$log->action = 'getCompanyMatchIdentifiers';
|
|
$log->request = serialize($request);
|
|
$log->transactionIdentifier = $transactionIdentifier;
|
|
$log->sessionID = $sessionID;
|
|
$log->mode = $mode;
|
|
$log->save();
|
|
|
|
$count = count($result->CompanyMatchIdentifiers);
|
|
if ($count>1){
|
|
$tabIdentifiers = $result->CompanyMatchIdentifiers->CompanyMatchIdentifier->CompanyIdentifier;
|
|
}elseif($count==1){
|
|
$tabIdentifiers[] = $result->CompanyMatchIdentifiers->CompanyMatchIdentifier->CompanyIdentifier;
|
|
}
|
|
//Stockage du résultat de la méthode en cache
|
|
$matchidentifiers = new Matchidentifiers();
|
|
$matchidentifiers->country = $pays;
|
|
$matchidentifiers->identifiers = serialize($tabIdentifiers);
|
|
$matchidentifiers->replace();
|
|
|
|
}catch( SoapFault $fault ){
|
|
$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){
|
|
if($code=='CWS0112'){
|
|
//Stockage du résultat de la méthode en cache
|
|
$matchidentifiers = new Matchidentifiers();
|
|
$matchidentifiers->country = $pays;
|
|
$matchidentifiers->identifiers = serialize(false);
|
|
$matchidentifiers->replace();
|
|
}
|
|
}else{
|
|
graydon_processSoapFault($graydon,$fault,$tabInfo);
|
|
}
|
|
}
|
|
}else{
|
|
$tabIdentifiers = unserialize($matchidentifiers->identifiers);
|
|
}
|
|
$firephp->log($tabIdentifiers,'tabIdentifiers');
|
|
|
|
/** Recup des produits de la company **/
|
|
setDbConn('graydon');
|
|
$q = Doctrine_Query::create()
|
|
->from('Companyproducts')
|
|
->where('identifiers = ?', $identifier);
|
|
|
|
$companyproducts = new Companyproducts();
|
|
$companyproducts = $q->fetchOne();
|
|
$firephp->log($companyproducts->updated_at,'date');
|
|
$now = mktime(date('G'), date('i'), date('s'), date("m") , date("d"), date("Y"));
|
|
if($companyproducts == FALSE){
|
|
$request = new StdClass();
|
|
$request->Authentication_Parameters = $authentication;
|
|
$request->CompanyMatchIdentifier = $identifier;
|
|
$firephp->log($request,'requete');
|
|
try {
|
|
// Make a request on the web service
|
|
$result = $graydon->getCompanyProducts($request);
|
|
|
|
//Enregistrement de l'action dans les logs
|
|
$transactionIdentifier = $result->Service_Log->TransactionIdentifier;
|
|
$sessionID = $result->Service_Log->SessionID;
|
|
graydonRequeteLog($_SESSION['tabInfo']['login'], $page, 'getCompanyProducts', $transactionIdentifier, $sessionID);
|
|
|
|
//Log de la requete dans la bdd
|
|
setDbConn('graydon');
|
|
$log = new Requetelog();
|
|
$log->login = $_SESSION['tabInfo']['login'];
|
|
$log->action = 'getCompanyProducts';
|
|
$log->request = serialize($request);
|
|
$log->transactionIdentifier = $transactionIdentifier;
|
|
$log->sessionID = $sessionID;
|
|
$log->mode = $mode;
|
|
$log->save();
|
|
|
|
$firephp->log($result,'result');
|
|
|
|
//Sauvegarde dans la bdd
|
|
setDbConn('graydon');
|
|
$companyproducts = new Companyproducts();
|
|
$companyproducts->identifiers = $identifier;
|
|
$companyproducts->company = serialize($result->Company);
|
|
$companyproducts->products = serialize($result->Products);
|
|
$companyproducts->replace();
|
|
|
|
//Extraction
|
|
$company = $result->Company;
|
|
$products = $result->Products->Product;
|
|
|
|
}catch( SoapFault $fault ){
|
|
$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){
|
|
graydon_processSoapFault($graydon,$fault,$tabInfo);
|
|
}
|
|
}
|
|
}else{
|
|
$company = unserialize($companyproducts->company);
|
|
$products = unserialize($companyproducts->products);
|
|
$products = $products->Product;
|
|
}
|
|
|
|
if(isset($company)){
|
|
$firephp->log($products,'products');
|
|
|
|
?>
|
|
<div id="center">
|
|
|
|
<h1 class="titre">IDENTITÉ INTERNATIONALE DE L'ENTREPRISE</h1>
|
|
|
|
<table >
|
|
<tr>
|
|
<td width="30"> </td>
|
|
<td width="200" class="StyleInfoLib">Fiche identité simplifié<br/></td>
|
|
<td>
|
|
<?php
|
|
$count = count($products);
|
|
if($count==1){
|
|
$products[] = $products;
|
|
}
|
|
$noReport = TRUE;
|
|
?>
|
|
<u><b>Accès à la fiche identité approfondie :</b></u>
|
|
<?php
|
|
$tabReport = array();
|
|
$tabProductIdentifier = array();
|
|
$countProducts = 0;
|
|
foreach($products as $product){
|
|
//Rapport en mode normal
|
|
if ($product->ServiceSpeed == 'Normal' && $product->Type == 'Investigation' && $product->Level == 4 ){
|
|
$tabReport[$countProducts] = 'Normal';
|
|
$tabProducts[$countProducts]['identifier'] = $product->CompanyProductIdentifier;
|
|
$tabProducts[$countProducts]['DaysFrom'] = $product->DaysFrom;
|
|
$tabProducts[$countProducts]['DaysTo'] = $product->DaysTo;
|
|
$countProducts++;
|
|
}
|
|
//Rapport en mode Superflash
|
|
if ($product->ServiceSpeed == 'Superflash' && $product->Type == 'Investigation' && $product->Level == 4 ){
|
|
$tabReport[] = 'Superflash';
|
|
$tabProducts[$countProducts]['identifier'] = $product->CompanyProductIdentifier;
|
|
$tabProducts[$countProducts]['DaysFrom'] = $product->DaysFrom;
|
|
$tabProducts[$countProducts]['DaysTo'] = $product->DaysTo;
|
|
$countProducts++;
|
|
}
|
|
//Rapport disponible avec mise à jour
|
|
if ($product->ServiceSpeed == 'ImmediateWithUpdate' && $product->Type == 'Database' && $product->Level == 3 ){
|
|
require_once 'phpmailer/class.phpmailer.php';
|
|
$mail = new PHPMailer();
|
|
$mail->From = "contact@scores-decisions.com";
|
|
$mail->FromName = "Serveur SD-13408";
|
|
$mail->Host = "mail.scores-decisions.com";
|
|
$mail->Mailer = "smtp";
|
|
$mail->Subject = "Rapport International";
|
|
$body = "ImmediateWithUpdate disponible\n";
|
|
$body .= "Identifiant : ".$identifier."";
|
|
$mail->MsgHTML($body);
|
|
$mail->AddAddress(EMAIL_SUPPORTDEV, "Support");
|
|
$mail->Send();
|
|
|
|
//Don't display ImmediateWithUpdate
|
|
/*
|
|
$mimetype = FALSE;
|
|
if (is_array($product->MimeTypes->MimeType)){
|
|
if (in_array('xml', $product->MimeTypes->MimeType)){$mimetype = TRUE;}
|
|
}else{
|
|
if ($product->MimeTypes->MimeType == 'xml' ){$mimetype = TRUE;}
|
|
}
|
|
if ($mimetype == TRUE ){
|
|
$tabReport[] = 'ImmediateWithUpdate';
|
|
$tabProducts[$countProducts]['identifier'] = $product->CompanyProductIdentifier;
|
|
$tabProducts[$countProducts]['DaysFrom'] = $product->DaysFrom;
|
|
$tabProducts[$countProducts]['DaysTo'] = $product->DaysTo;
|
|
$countProducts++;
|
|
}
|
|
*/
|
|
|
|
}
|
|
//Rapport disponible en ligne
|
|
if ($product->ServiceSpeed == 'Immediate' && $product->Type == 'Database' && $product->Level == 3 ){
|
|
$mimetype = FALSE;
|
|
if (is_array($product->MimeTypes->MimeType)){
|
|
if (in_array('xml', $product->MimeTypes->MimeType)){$mimetype = TRUE;}
|
|
else {
|
|
require_once 'phpmailer/class.phpmailer.php';
|
|
$mail = new PHPMailer();
|
|
$mail->From = "contact@scores-decisions.com";
|
|
$mail->FromName = "Serveur SD-13408";
|
|
$mail->Host = "mail.scores-decisions.com";
|
|
$mail->Mailer = "smtp";
|
|
$mail->Subject = "Rapport International";
|
|
$body = "Rapport international disponible dans un autre format que le XML\n";
|
|
$body .= "Identifiant : ".$identifier."";
|
|
$mail->MsgHTML($body);
|
|
$mail->AddAddress(EMAIL_SUPPORTDEV, "Support");
|
|
$mail->Send();
|
|
}
|
|
}else{
|
|
if ($product->MimeTypes->MimeType == 'xml' ){$mimetype = TRUE;}
|
|
else {
|
|
require_once 'phpmailer/class.phpmailer.php';
|
|
$mail = new PHPMailer();
|
|
$mail->From = "contact@scores-decisions.com";
|
|
$mail->FromName = "Serveur SD-13408";
|
|
$mail->Host = "mail.scores-decisions.com";
|
|
$mail->Mailer = "smtp";
|
|
$mail->Subject = "Rapport International";
|
|
$body = "Rapport international disponible dans un autre format que le XML\n";
|
|
$body .= "Identifiant : ".$identifier."";
|
|
$mail->MsgHTML($body);
|
|
$mail->AddAddress(EMAIL_SUPPORTDEV, "Support");
|
|
$mail->Send();
|
|
}
|
|
}
|
|
if ($mimetype == TRUE ){
|
|
$tabReport[] = 'Immediate';
|
|
$tabProducts[$countProducts]['identifier'] = $product->CompanyProductIdentifier;
|
|
$countProducts++;
|
|
}
|
|
}
|
|
}
|
|
|
|
$firephp->log($tabProducts,'tabProducts');
|
|
|
|
if(count($tabReport)==0){
|
|
?>
|
|
(Aucun rapport disponible pour cette société)
|
|
<?php
|
|
}else{
|
|
//Récupération des tarifs propre au pays
|
|
setDbConn('graydon');
|
|
$q = Doctrine_Query::create($conn)
|
|
->from('Price p')
|
|
->leftJoin('p.Country c')
|
|
->where('c.graydon_country = ?', $pays);
|
|
|
|
$tabPaysPrix = $q->fetchArray();
|
|
$firephp->log($tabPaysPrix, 'tableau');
|
|
|
|
if(in_array('Normal',$tabReport)){
|
|
$key = array_search('Normal', $tabReport);
|
|
$pidentifier = $tabProducts[$key]['identifier'];
|
|
$daysFrom = $tabProducts[$key]['DaysFrom'];
|
|
$daysTo = $tabProducts[$key]['DaysTo'];
|
|
//Vérification des droits
|
|
if(preg_match('/international/i', $_SESSION['tabInfo']['droits'])){
|
|
print '<br/><br/><a href="./?page=international_enquete&identifier='.$identifier.'&pidentifier='.$pidentifier.'">Commander le rapport en mode normal</a><br/><i>(Délais : '.$daysFrom.' à '.$daysTo.' Jours, Tarif : '.$tabPaysPrix[0]['normal'].' €)</i>';
|
|
}else{
|
|
print '<br/><br/><a href="#" title="Vous n\'avez pas les droits nécessaires pour commander un rapport international">Commander le rapport en mode normal</a><br/><i>(Délais : '.$daysFrom.' à '.$daysTo.' Jours, Tarif : '.$tabPaysPrix[0]['normal'].' €)</i>';
|
|
}
|
|
|
|
}
|
|
//Affichage des différents rapports dans l'ordre
|
|
if(in_array('Superflash',$tabReport)){
|
|
$key = array_search('Superflash', $tabReport);
|
|
$pidentifier = $tabProducts[$key]['identifier'];
|
|
$daysFrom = $tabProducts[$key]['DaysFrom'];
|
|
$daysTo = $tabProducts[$key]['DaysTo'];
|
|
//Vérification des droits
|
|
if(preg_match('/international/i', $_SESSION['tabInfo']['droits'])){
|
|
print '<br/><br/><a href="./?page=international_enquete&identifier='.$identifier.'&pidentifier='.$pidentifier.'">Commander le rapport en mode rapide</a><br/><i>(Délais : '.$daysFrom.' à '.$daysTo.' Jours, Tarif : '.$tabPaysPrix[0]['superflash'].' €)</i>';
|
|
}else{
|
|
print '<br/><br/><a href="#" title="Vous n\'avez pas les droits nécessaires pour commander un rapport international">Commander le rapport en mode rapide</a><br/><i>(Délais : '.$daysFrom.' à '.$daysTo.' Jours, Tarif : '.$tabPaysPrix[0]['superflash'].' €)</i>';
|
|
}
|
|
}
|
|
if(in_array('Immediate',$tabReport)){
|
|
$key = array_search('Immediate', $tabReport);
|
|
$pidentifier = $tabProducts[$key]['identifier'];
|
|
|
|
//Vérification des droits
|
|
if(preg_match('/international/i', $_SESSION['tabInfo']['droits'])){
|
|
print '<br/><br/><a href="./?page=international_identitec&identifier='.$identifier.'&pidentifier='.$pidentifier.'">Consutler le rapport disponible</a><br/><i>(Délais : Immédiat, Tarif : '.$tabPaysPrix[0]['immediate'].' €)</i>';
|
|
}else{
|
|
print '<br/><br/><a href="#" title="Vous n\'avez pas les droits nécessaires pour commander un rapport international">Consutler le rapport disponible</a><br/><i>(Délais : Immédiat, Tarif : '.$tabPaysPrix[0]['immediate'].' €)</i>';
|
|
}
|
|
}
|
|
}
|
|
?>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3"> </td>
|
|
</tr>
|
|
<?php
|
|
$count = count($company->CompanyIdentifiers->CompanyIdentifier);
|
|
if ($count>1){
|
|
$identifiers = $company->CompanyIdentifiers->CompanyIdentifier;
|
|
}elseif($count==1){
|
|
$identifiers[] = $company->CompanyIdentifiers->CompanyIdentifier;
|
|
}
|
|
foreach($identifiers as $identifier){
|
|
if($identifier->Type != 'Internal'){
|
|
?>
|
|
<tr>
|
|
<td width="30"> </td>
|
|
<td width="200" class="StyleInfoLib">
|
|
<?php
|
|
$identifierDescription = FALSE;
|
|
if($tabIdentifiers === FALSE){
|
|
foreach($tabIdentifiers as $tabIdentifier){
|
|
if($tabIdentifier->Type == $identifier->Type){
|
|
print $tabIdentifier->Description;
|
|
$identifierDescription = TRUE;
|
|
}
|
|
}
|
|
}
|
|
if ($identifierDescription==FALSE){
|
|
print $identifier->Type;
|
|
}
|
|
//@TODO : Tester si la condition à bien été remplie
|
|
?>
|
|
</td>
|
|
<td width="350" class="StyleInfoData">
|
|
<?php print "1".$identifier->Identifier; ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3"> </td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
}
|
|
?>
|
|
</table>
|
|
|
|
<h2>Raison sociale et coordonnées : </h2>
|
|
|
|
<table>
|
|
|
|
<tr>
|
|
<td width="30"> </td>
|
|
<td width="200" class="StyleInfoLib">Raison Sociale</td>
|
|
<td width="350" class="StyleInfoData">
|
|
<?php
|
|
$_SESSION['graydon']['name'] = $company->Name;
|
|
print cleanutf8($company->Name);
|
|
?>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="30"> </td>
|
|
<td width="200" class="StyleInfoLib">Adresse Complète</td>
|
|
<td width="350" class="StyleInfoData"><?php print cleanutf8($company->RegisteredAddress->EntireAddress); ?></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td width="30"> </td>
|
|
<td width="200" class="StyleInfoLib">Adresse</td>
|
|
<td width="350" class="StyleInfoData"><?php print cleanutf8($company->RegisteredAddress->Building.', '.$company->RegisteredAddress->Street); ?></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td width="30"> </td>
|
|
<td width="200" class="StyleInfoLib">Code Postal</td>
|
|
<td width="350" class="StyleInfoData"><?php print $company->RegisteredAddress->PostCode; ?></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td width="30"> </td>
|
|
<td width="200" class="StyleInfoLib">Ville</td>
|
|
<td width="350" class="StyleInfoData"><?php print cleanutf8($company->RegisteredAddress->City); ?></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td width="30"> </td>
|
|
<td width="200" class="StyleInfoLib">Pays</td>
|
|
<td width="350" class="StyleInfoData">
|
|
<?php
|
|
if(isset($company->RegisteredAddress->Country)){
|
|
print $company->RegisteredAddress->Country;
|
|
}else{
|
|
print $pays;
|
|
}
|
|
?>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td width="30"> </td>
|
|
<td width="200" class="StyleInfoLib">Téléphone</td>
|
|
<td width="350" class="StyleInfoData"><?php print $company->Telephone; ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3"> </td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h2>Activité(s) de l'entreprise : </h2>
|
|
|
|
<table>
|
|
<?php
|
|
$count = count($company->Activites->Activity);
|
|
if ($count>1){
|
|
$activites = $company->Activites->Activity;
|
|
}elseif($count==1){
|
|
$activites[] = $company->Activites->Activity;
|
|
}
|
|
if ($count>0){
|
|
foreach($activites as $activity){
|
|
?>
|
|
<tr>
|
|
<td width="30"> </td>
|
|
<td width="200" class="StyleInfoLib">Code <?php print $activity->Type;?></td>
|
|
<td width="350" class="StyleInfoData"><?php print $activity->Code;?> - <?php print cleanutf8($activity->Description);?></td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
}else{
|
|
?>
|
|
<tr>
|
|
<td width="30"> </td>
|
|
<td colspan="2" class="StyleInfoData">Aucune information disponible</td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
?>
|
|
<tr>
|
|
<td colspan="3"> </td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h2>Géolocalisation : </h2>
|
|
<?php
|
|
|
|
/*
|
|
$adresse = $company->RegisteredAddress->Building;
|
|
$codePostal = $company->RegisteredAddress->PostCode;
|
|
$ville = $company->RegisteredAddress->City;
|
|
*/
|
|
|
|
/*
|
|
try {
|
|
$geoCodeResult = $client->geoCode('19 rue de saulnier', '75009', 'paris', 'france');
|
|
$firephp->log($geoCodeResult, 'geocode');
|
|
}catch(SoapFault $fault){
|
|
print '<pre>';
|
|
print $client->__getLastResponse();
|
|
print '</pre>';
|
|
}
|
|
*/
|
|
|
|
/*
|
|
* Récupération du geoCode
|
|
* La page est chargé alors par javascript on load en ajax
|
|
* Chargement de la carte (nouvelle page loadMap.php ??)
|
|
* loadMap => On vérifie la session
|
|
* => On envoi le geocode ?? les markers supplémentaires
|
|
*/
|
|
|
|
?>
|
|
|
|
|
|
<?php
|
|
}else{
|
|
?>
|
|
<table>
|
|
<tr>
|
|
<td width="30"> </td>
|
|
<td colspan="2" class="StyleInfoData">Aucune information disponible</td>
|
|
</tr>
|
|
</table>
|
|
<?php
|
|
}
|
|
?>
|
|
</div>
|