293 lines
8.9 KiB
PHP
293 lines
8.9 KiB
PHP
<?php
|
|
session_start();
|
|
if (!$_SESSION['connected']) die();
|
|
|
|
$tabInfo = $_SESSION['tabInfo'];
|
|
|
|
$identifier = $_REQUEST['identifier'];
|
|
$CompanyProductIdentifier = $_REQUEST['pidentifier'];
|
|
$pays = $_SESSION['graydon']['pays'];
|
|
$mode = $_SESSION['graydon']['mode'];
|
|
|
|
require_once 'i18n/cleanchar.php';
|
|
require_once 'graydon/graydonws.php';
|
|
require_once 'graydon/graydon_log.php';
|
|
require_once 'dbbootstrap.php';
|
|
require_once 'dbgraydon.php';
|
|
|
|
function dVal($value){
|
|
if($value == '' || $value == NULL){
|
|
print 'NC';
|
|
}else{
|
|
print $value;
|
|
}
|
|
}
|
|
?>
|
|
<div id="center">
|
|
<?php
|
|
$path = PATH_DATA.'/graydon';
|
|
$fileName = strtolower(str_replace( array(':',' '), '-', $identifier).'.xml');
|
|
|
|
//Vérifier si le rapport n'est pas disponible en base depuis une autre commandes
|
|
$q = Doctrine_Query::create()
|
|
->from('Report')
|
|
->where('identifier = ?', $_REQUEST['identifier']);
|
|
$nbReports = $q->count();
|
|
$report = new Report();
|
|
$report = $q->fetchOne();
|
|
|
|
//@TODO : si le rapport existe déjà ou que la date n'est pas très éloigné
|
|
if($nbReports==0){
|
|
|
|
//Vérifier si le rapport en ligne à déjà été demandé
|
|
$q = Doctrine_Query::create()
|
|
->from('Commandes')
|
|
->where('companyproductidentifier = ?', $CompanyProductIdentifier);
|
|
$commandes = new Commandes();
|
|
$commandes = $q->fetchOne();
|
|
$nbCommandes = $q->count();
|
|
$report = new Report();
|
|
$report = $commandes->Report;
|
|
if($nbCommandes == 0 && !isset($report->id)){
|
|
|
|
//placeOrder
|
|
$request = new StdClass();
|
|
$request->Authentication_Parameters = $authentication;
|
|
$request->OrderCreatorEmail = 'mricois@scores-decisions.com';
|
|
$request->CompanyProductIdentifier = $CompanyProductIdentifier;
|
|
$request->PartnerData = '';
|
|
try
|
|
{
|
|
$placeOrderResult = $graydon->placeOrder($request);
|
|
|
|
//Enregistrement de l'action dans les logs
|
|
$transactionIdentifier = $placeOrderResult->Service_Log->TransactionIdentifier;
|
|
$sessionID = $placeOrderResult->Service_Log->SessionID;
|
|
graydonRequeteLog($_SESSION['tabInfo']['login'], $page, 'placeOrder', $transactionIdentifier, $sessionID);
|
|
|
|
//Log de la requete dans la bdd
|
|
$log = new Requetelog();
|
|
$log->login = $_SESSION['tabInfo']['login'];
|
|
$log->action = 'placeOrder';
|
|
$log->request = serialize($request);
|
|
$log->transactionIdentifier = $transactionIdentifier;
|
|
$log->sessionID = $sessionID;
|
|
$log->mode = $mode;
|
|
$log->save();
|
|
|
|
//Optention du prix du service
|
|
$prix = Doctrine_Query::create($conn)
|
|
->select('p.immediate')
|
|
->from('Price p')
|
|
->leftJoin('p.Country c')
|
|
->where('c.graydon_country = ?', $pays)
|
|
->fetchOne();
|
|
|
|
//Enregistrement des commandes dans la bdd
|
|
$commandes = new Commandes();
|
|
$commandes->reference = $placeOrderResult->OrderStatus->OrderReference;
|
|
$commandes->servicespeed = $placeOrderResult->OrderStatus->Order->ServiceSpeed;
|
|
$commandes->prix = $prix->immediate;
|
|
$commandes->orderstate = $placeOrderResult->OrderStatus->OrderState;
|
|
$commandes->dateordered = $placeOrderResult->OrderStatus->DateOrdered;
|
|
$commandes->datecompleted = $placeOrderResult->OrderStatus->DateCompleted;
|
|
$commandes->datedue = $placeOrderResult->OrderStatus->DateDue;
|
|
$commandes->companyproductidentifier = $CompanyProductIdentifier;
|
|
$commandes->sessionid = $sessionID;
|
|
$commandes->transactionidentifier = $transactionIdentifier;
|
|
$commandes->user = $tabInfo['login'];
|
|
$commandes->mode = $_SESSION['graydon']['mode'];
|
|
|
|
$country = Doctrine_Query::create()
|
|
->from('Country')
|
|
->where('graydon_country = ?', $pays)
|
|
->fetchOne();
|
|
|
|
$commandes->Country = $country;
|
|
|
|
$commandes->save();
|
|
$firephp->log($commandes->toArray(),'dataCommandes');
|
|
$commandes_id = $commandes->id;
|
|
|
|
//Pas d'enregistrement des détails de la commande car elle est immédiate
|
|
|
|
//$firephp->log($placeOrderResult,'placeOrder');
|
|
}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);
|
|
}
|
|
}
|
|
|
|
//On vérifie l'état de le demande
|
|
if (isset($placeOrderResult) && $placeOrderResult->OrderStatus->OrderState == 'Completed'){
|
|
//getCompanyReport
|
|
$request = new StdClass();
|
|
$request->Authentication_Parameters = $authentication;
|
|
$request->LanguageCode = 'E'; //Spécifier la langue du rapport
|
|
$request->OrderReference = $placeOrderResult->OrderStatus->OrderReference;
|
|
$request->MimeType = 'xml';
|
|
|
|
$firephp->log($request,'requete');
|
|
try
|
|
{
|
|
$reportResult = $graydon->getCompanyReport($request);
|
|
|
|
//Enregistrement de l'action dans les logs
|
|
$transactionIdentifier = $reportResult->Service_Log->TransactionIdentifier;
|
|
$sessionID = $reportResult->Service_Log->SessionID;
|
|
graydonRequeteLog($_SESSION['tabInfo']['login'], $page, 'getCompanyReport', $transactionIdentifier, $sessionID);
|
|
|
|
//Enregistrement dans la bdd
|
|
$log = new Requetelog();
|
|
$log->login = $_SESSION['tabInfo']['login'];
|
|
$log->action = 'getCompanyReport';
|
|
$log->request = serialize($request);
|
|
$log->transactionIdentifier = $transactionIdentifier;
|
|
$log->sessionID = $sessionID;
|
|
$log->mode = $mode;
|
|
$log->save();
|
|
|
|
$firephp->log($reportResult,'reportResult');
|
|
$xml = $reportResult->ReportXML->any;
|
|
|
|
//Enregistrement du fichier xml
|
|
file_put_contents($path.'/'.$fileName, $xml);
|
|
|
|
//Mise en cache dans la bdd
|
|
$report = new Report();
|
|
$report->identifier = $identifier;
|
|
$report->name = $_SESSION['graydon']['name'];
|
|
$report->content = $xml;
|
|
$report->format = 'xml';
|
|
$report->order_id = $commandes_id;
|
|
$report->save();
|
|
|
|
}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);
|
|
}
|
|
}
|
|
}
|
|
//La commande à déjà été demandé
|
|
}else{
|
|
//Assignation du contenu
|
|
$xml = $report->content;
|
|
}
|
|
//Le rapport est disponible
|
|
}else{
|
|
if($nbReports>0){
|
|
/*
|
|
//Enregistrement du fausse commandes dans la bdd
|
|
$commandes = new Commandes();
|
|
$commandes->reference = $placeOrderResult->OrderStatus->OrderReference;
|
|
$commandes->servicespeed = $placeOrderResult->OrderStatus->Order->ServiceSpeed;
|
|
$commandes->prix = $prix->immediate;
|
|
$commandes->orderstate = $placeOrderResult->OrderStatus->OrderState;
|
|
$commandes->dateordered = $placeOrderResult->OrderStatus->DateOrdered;
|
|
$commandes->datecompleted = $placeOrderResult->OrderStatus->DateCompleted;
|
|
$commandes->datedue = $placeOrderResult->OrderStatus->DateDue;
|
|
$commandes->companyproductidentifier = $CompanyProductIdentifier;
|
|
$commandes->sessionid = $sessionID;
|
|
$commandes->transactionidentifier = $transactionIdentifier;
|
|
$commandes->user = $tabInfo['login'];
|
|
$commandes->mode = $_SESSION['graydon']['mode'];
|
|
|
|
$country = Doctrine_Query::create()
|
|
->from('Country')
|
|
->where('graydon_country = ?', $pays)
|
|
->fetchOne();
|
|
|
|
$commandes->Country = $country;
|
|
|
|
$commandes->save();
|
|
$firephp->log($commandes->toArray(),'dataCommandes');
|
|
$commandes_id = $commandes->id;
|
|
*/
|
|
//Assignation du contenu
|
|
$xml = $report->content;
|
|
|
|
}else{
|
|
$firephp->log('Data depuis fichier XML');
|
|
$xml = file_get_contents($path.'/'.$fileName);
|
|
}
|
|
}
|
|
|
|
//========= Affichage des informations =========
|
|
if(isset($xml) && $xml!=''){
|
|
|
|
$tabReport = array();
|
|
|
|
require_once 'graydon/functions.php';
|
|
require_once 'graydon/format.php';
|
|
|
|
//Création du DOM
|
|
$doc = new DOMDocument;
|
|
$doc->preserveWhiteSpace = false;
|
|
$doc->loadxml($xml);
|
|
$xpath = new DOMXPath($doc);
|
|
$tabReport = parseReportXML($xml);
|
|
$firephp->log($tabReport, 'tabReport');
|
|
function utf8decode_deep($value)
|
|
{
|
|
$value = is_array($value) ?
|
|
array_map('utf8decode_deep', $value) :
|
|
cleanutf8($value);
|
|
return $value;
|
|
}
|
|
|
|
?>
|
|
|
|
<style type="text/css">
|
|
.bilans { margin-left:35px; }
|
|
div.bilans { margin-top:15px; font:bold 16px Verdana, Arial, Sans-serif; }
|
|
span.bilans { font-style:italic; }
|
|
table.bilans { width:545px; }
|
|
table.bilans .right {text-align:right;}
|
|
</style>
|
|
|
|
<h1 class="titre">IDENTITÉ INTERNATIONALE DE L'ENTREPRISE</h1>
|
|
<?php dIdentifiant($tabReport); ?>
|
|
<h2>Raison sociale et coordonnées : </h2>
|
|
<?php dIdentite($tabReport);?>
|
|
<h2>Activité(s) et chiffre d'affaire de l'entreprise : </h2>
|
|
<?php dActivite($tabReport); ?>
|
|
<h2> Résumé financier : </h2>
|
|
<?php dResume($tabReport); ?>
|
|
<h2> Credit : </h2>
|
|
<?php dCredit($tabReport); ?>
|
|
<h2> Actionariat / Participation : </h2>
|
|
<?php dLiens($tabReport); ?>
|
|
<h2> Bilans : </h2>
|
|
<?php dBilans($tabReport); ?>
|
|
|
|
<?php
|
|
}else{
|
|
?>
|
|
<table>
|
|
<tr>
|
|
<td width="30"> </td>
|
|
<td width="500" class="StyleInfoLib">Aucune information disponible.</td>
|
|
</tr>
|
|
</table>
|
|
<?php
|
|
}
|
|
?>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|