Ajout traitement des graphiques, issue #0000187
This commit is contained in:
parent
b7351fda4c
commit
3c7b46e161
142
includes/commentaires/commentaires.php
Normal file
142
includes/commentaires/commentaires.php
Normal file
@ -0,0 +1,142 @@
|
||||
<?php
|
||||
|
||||
|
||||
function commentaires_graph($id, $titre, $ratios = array() ){
|
||||
$pattern = '/(Rs?)\[(.*)]#(.{1})/';
|
||||
$data = array();
|
||||
$data['x'] = commentaires_graph_x();
|
||||
foreach($ratios as $ratio){
|
||||
FB::log($ratio, 'ratio');
|
||||
if( preg_match($pattern, $ratio, $matches) ){
|
||||
$typeRatio = $matches[1];
|
||||
$numRatio = $matches[2];
|
||||
$typeElement = $matches[3];
|
||||
$titreRatio = commentaires_graph_lib($numRatio);
|
||||
switch($typeRatio){
|
||||
case 'R' : $titreRatio.= ' - Entreprise'; break;
|
||||
case 'Rs' : $titreRatio.= ' - Secteur'; break;
|
||||
}
|
||||
$data['y'][] = array(
|
||||
'titre' => $titreRatio,
|
||||
'data' => commentaires_graph_y($typeRatio, $numRatio),
|
||||
'style' => $typeElement,
|
||||
);
|
||||
}
|
||||
}
|
||||
$output = commentaires_graph_xy($id, $titre, $data);
|
||||
return $output;
|
||||
}
|
||||
|
||||
function commentaires_graph_lib($numRatio){
|
||||
global $ratiosInfos;
|
||||
return htmlspecialchars_decode(
|
||||
$ratiosInfos['r'.$numRatio]['libelle'],
|
||||
ENT_QUOTES);
|
||||
}
|
||||
|
||||
function commentaires_graph_x(){
|
||||
global $bilansInfos;
|
||||
$output = array();
|
||||
foreach($bilansInfos as $bilan){
|
||||
$output[] = $bilan['dateCloture'];
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
|
||||
function commentaires_graph_y($typeRatio, $numRatio){
|
||||
global $ratiosEntrep, $ratiosSecteur;
|
||||
FB::log($typeRatio, 'typeRatio');
|
||||
switch($typeRatio){
|
||||
case 'R' : $tabRatio = $ratiosEntrep; break;
|
||||
case 'Rs' : $tabRatio = $ratiosSecteur; break;
|
||||
}
|
||||
$output = array();
|
||||
foreach($tabRatio as $key => $val){
|
||||
FB::log($val['r'.$numRatio], 'val');
|
||||
$output[$key] = $val['r'.$numRatio];
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
|
||||
function commentaires_graph_xy($id, $titre, $data){
|
||||
require_once 'phpchartdir/phpchartdir.php';
|
||||
$path = PATH_SITE.'/cache/imgcache/';
|
||||
$file = $id.'.png';
|
||||
if(count($data)<=1){
|
||||
$output = 0;
|
||||
}else{
|
||||
//Tri des données
|
||||
foreach($data['y'] as $yKey => $y){
|
||||
$i = 0;
|
||||
foreach($y['data'] as $val){
|
||||
$dataTri[$data['x'][$i]] = $val;
|
||||
$i++;
|
||||
}
|
||||
ksort($dataTri);
|
||||
$data['y'][$yKey]['data'] = array_values($dataTri);
|
||||
}
|
||||
sort($data['x']);
|
||||
|
||||
//Génération du graphique
|
||||
$c = new XYChart(500, 350);
|
||||
$c->addTitle($titre, 'times.ttf', 10);
|
||||
$c->yAxis->setTitle('EUR');
|
||||
$c->yAxis->setWidth(2);
|
||||
$c->xAxis->setTitle('Années');
|
||||
$c->xAxis->setWidth(2);
|
||||
$legendObj = $c->addLegend2(25, 25, -2, "times.ttf", 9);
|
||||
$legendObj->setBackground(Transparent, Transparent);
|
||||
$c->setPlotArea(50, 90, 280, 200);
|
||||
//Génération des labels
|
||||
$labelsX = array();
|
||||
foreach($data['x'] as $x){
|
||||
$annee = substr($x, 0, 4);
|
||||
$mois = substr($x, 4, 2);
|
||||
$jour = substr($x, 6, 2);
|
||||
$labelsX[] = $annee;
|
||||
}
|
||||
//Détection multi-bar
|
||||
$graphStyleMH = false;
|
||||
$precStyle = '';
|
||||
foreach($data['y'] as $ydata){
|
||||
if($ydata['style']=='H' && $precStyle == 'H'){
|
||||
$graphStyleMH = true;
|
||||
}
|
||||
$precStyle = $ydata['style'];
|
||||
}
|
||||
//Affichage standard
|
||||
if(!$graphStyleMH){
|
||||
foreach($data['y'] as $ydata){
|
||||
switch($ydata['style']){
|
||||
case 'L':
|
||||
$lineLayer = $c->addLineLayer(
|
||||
$ydata['data'], -1, $ydata['titre']);
|
||||
$lineLayer->setLineWidth(2);
|
||||
break;
|
||||
case 'H':
|
||||
$c->addBarLayer(
|
||||
$ydata['data'], -1, $ydata['titre']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
//Affichage multibar
|
||||
}else{
|
||||
$layer = $c->addBarLayer2(Side);
|
||||
$color = array(0xff8080, 0x80ff80);
|
||||
$i = 0;
|
||||
foreach($data['y'] as $ydata){
|
||||
FB::log($ydata['data'], 'ydata');
|
||||
$layer->addDataSet($ydata['data'], $color[$i], $ydata['titre']);
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
$c->xAxis->setLabels($labelsX);
|
||||
if( $c->makeChart($path.$file) === true ){
|
||||
$output = $file;
|
||||
}
|
||||
else{
|
||||
$output = false;
|
||||
}
|
||||
}
|
||||
return $output;
|
||||
}
|
@ -51,12 +51,11 @@ $niveau = isset($_REQUEST['niveau']) ? $_REQUEST['niveau'] : '';
|
||||
}
|
||||
|
||||
#commentaires table td, #commentaires table th {
|
||||
padding:2px;
|
||||
border:1px solid;
|
||||
}
|
||||
|
||||
#commentaires table {
|
||||
color:gray;
|
||||
color:grey;
|
||||
border-collapse:collapse;
|
||||
margin:5px 0;
|
||||
width:100%;
|
||||
@ -78,7 +77,7 @@ $niveau = isset($_REQUEST['niveau']) ? $_REQUEST['niveau'] : '';
|
||||
}
|
||||
|
||||
#commentaires table tr.VERT {
|
||||
background:#3c0;
|
||||
background:#00FF00;
|
||||
color:#000000;
|
||||
}
|
||||
|
||||
@ -119,6 +118,7 @@ function dRow($lib, $data, $title = '')
|
||||
$html.= '</tr>'."\n";
|
||||
return $html;
|
||||
}
|
||||
/*
|
||||
?>
|
||||
<h1>RAPPORT DE SYNTHESE</h1>
|
||||
|
||||
@ -295,6 +295,7 @@ if($element!==false){ echo dRow($element['lib'], $element['data'], $element['tit
|
||||
require_once 'mappy/mappy.php';
|
||||
$ville = ' '.trim(preg_replace('/([0-9]|ARRONDISSEMENT|_)/i',' ',$etab['Ville'])).' ';
|
||||
$ville = trim(strtr($ville, array(' EME '=>'', ' ER '=>'')));
|
||||
$firephp->log($ville, 'ville');
|
||||
if ( hasPref('mappy') && in_array(strtoupper($ville), $tabVilleMappy) )
|
||||
{
|
||||
$rue = trim( strtr(
|
||||
@ -347,7 +348,7 @@ if ( hasPref('mappy') && in_array(strtoupper($ville), $tabVilleMappy) )
|
||||
//News
|
||||
if (preg_match('/\bNEWS\b/i', $_SESSION['tabInfo']['pref']))
|
||||
{
|
||||
/* Information presse 15 Aug 2007 09:21:49 GMT - */
|
||||
// Information presse 15 Aug 2007 09:21:49 GMT
|
||||
require_once ('XML/RSS.php');
|
||||
$rss=&new XML_RSS('http://news.google.fr/news?hl=fr&ned=fr&q='.urlencode('"'.$etab['Nom'].'"').'&output=rss');
|
||||
$rss->parse();
|
||||
@ -381,6 +382,7 @@ if (preg_match('/\bNEWS\b/i', $_SESSION['tabInfo']['pref']))
|
||||
?>
|
||||
</table>
|
||||
<?php
|
||||
*/
|
||||
//=> FIN BLOC IDENTITE
|
||||
|
||||
//=> BLOC ANNONCES
|
||||
@ -415,6 +417,7 @@ if ($siren != $_SESSION['tabInfo']['entrep']['siren']) {
|
||||
$raisonSociale = $etab['Nom'];
|
||||
} else
|
||||
$raisonSociale = $_SESSION['tabInfo']['entrep']['raisonSociale'];
|
||||
/*
|
||||
?>
|
||||
<h1 class="titre page">ANNONCES LÉGALES</h1>
|
||||
<?php
|
||||
@ -435,7 +438,7 @@ if (count($annonces)>0)
|
||||
$annoncesBodacc[] = $ann;
|
||||
}
|
||||
}
|
||||
/** Affichage de la liste des annonces **/
|
||||
// Affichage de la liste des annonces
|
||||
//Affiche annonces Bodacc
|
||||
if (count($annoncesBodacc)>0)
|
||||
{
|
||||
@ -569,7 +572,7 @@ if (count($annonces)>0)
|
||||
}
|
||||
else
|
||||
{
|
||||
/** Aucune annonce bodacc pour cette entreprise **/
|
||||
// Aucune annonce bodacc pour cette entreprise
|
||||
?>
|
||||
<h2>Evénements légaux</h2>
|
||||
<table>
|
||||
@ -583,7 +586,7 @@ else
|
||||
</tr>
|
||||
</table>
|
||||
<?php
|
||||
}
|
||||
}*/
|
||||
//=> FIN BLOC ANNONCES
|
||||
|
||||
//=> BLOC DIRIGEANTS
|
||||
@ -594,6 +597,7 @@ require_once 'cache/cache.php';
|
||||
require_once 'scoresws/scoresws.php';
|
||||
|
||||
$dirs = scoresws_dirigeants($siret, $siren, $idEntreprise);
|
||||
/*
|
||||
?>
|
||||
<h1 class="page">DIRIGEANTS</h1>
|
||||
<h2>Liste des dirigeants actifs</h2>
|
||||
@ -661,6 +665,7 @@ $dirs = scoresws_dirigeants($siret, $siren, $idEntreprise);
|
||||
</tr>
|
||||
</table>
|
||||
<?php
|
||||
*/
|
||||
//=> FIN BLOC DIRIGEANTS
|
||||
|
||||
//=> BLOC LIENS
|
||||
@ -683,16 +688,24 @@ $ratiosSecteur = $result['ratiosSecteur'];
|
||||
$dataActif = $result['dataActif'];
|
||||
$dataPassif = $result['dataPassif'];
|
||||
$dataSIG = $result['dataSIG'];
|
||||
|
||||
FB::log($bilansInfos, 'bilansInfos');
|
||||
FB::log($ratiosSecteur, 'ratiosSecteur');
|
||||
|
||||
list($typeBilan, $numBilan) = countBilans($bilansInfos, $typeBilan);
|
||||
$numBilanN = $numBilan['N'];
|
||||
$numBilanC = $numBilan['C'];
|
||||
$numBilanB = $numBilan['B'];
|
||||
$numBilanA = $numBilan['A'];
|
||||
list($bilansInfos, $ratiosEntrep, $ratiosEntrepEvol, $ratiosSecteur, $dataActif, $dataPassif, $dataSIG) = filtreTypeBilans($bilansInfos, $ratiosEntrep, $ratiosEntrepEvol, $ratiosSecteur, $dataActif, $dataPassif, $dataSIG, $typeBilan);
|
||||
list($bilansInfos, $ratiosEntrep, $ratiosEntrepEvol,
|
||||
$ratiosSecteur, $dataActif, $dataPassif, $dataSIG) =
|
||||
filtreTypeBilans($bilansInfos, $ratiosEntrep, $ratiosEntrepEvol,
|
||||
$ratiosSecteur, $dataActif, $dataPassif, $dataSIG, $typeBilan);
|
||||
$nbrAnnees = count($bilansInfos)-1;
|
||||
$data = synthese_datagraph($bilansInfos, $ratiosEntrep, $ratio);
|
||||
$dataGraph = $data['graph'];
|
||||
$dataEvol = $data['evol'];
|
||||
/*
|
||||
?>
|
||||
<h1 class="page">SYNTHÈSE</h1>
|
||||
|
||||
@ -782,9 +795,11 @@ if(count($tabRatio)==1){ ?>
|
||||
<br/><br/>
|
||||
<?php
|
||||
}
|
||||
*/
|
||||
//=> FIN BLOC SYNTHESE
|
||||
|
||||
//=> BLOC BILANS
|
||||
/*
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
@ -1539,6 +1554,7 @@ else
|
||||
</table>
|
||||
<?php
|
||||
}
|
||||
*/
|
||||
//=> FIN BLOC BILANS
|
||||
|
||||
//=> BLOC RATIOS
|
||||
@ -1571,6 +1587,7 @@ else
|
||||
?>
|
||||
<h1 class="titre page">RATIOS</h1>
|
||||
<?php
|
||||
$firephp->log($_SESSION, 'SESSION');
|
||||
if (count($bilansInfos)==0)
|
||||
{
|
||||
?>
|
||||
@ -1587,7 +1604,7 @@ else
|
||||
<td width="30"> </td>
|
||||
<td width="200" class="StyleInfoLib">Secteur d'activité :</td>
|
||||
<td width="340" class="StyleInfoData">
|
||||
<?php print $_SESSION['tabInfo']['entrep']['nafEn']; ?> - <?php print $_SESSION['tabInfo']['entrep']['nafEnLib']; ?>
|
||||
<?=$_SESSION['tabInfo']['entrep']['nafEn']?> - <?=$_SESSION['tabInfo']['entrep']['nafEnLib']?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
@ -1727,6 +1744,8 @@ $tabCommentaires = $etab['tabCommentaires'];
|
||||
<br/>
|
||||
<div class="blockh2" id="commentaires">
|
||||
<?php
|
||||
FB::log($ratiosSecteur, 'ratiosSecteur');
|
||||
require_once 'commentaires/commentaires.php';
|
||||
if(count($tabCommentaires)>0)
|
||||
{
|
||||
$ligne = true;
|
||||
@ -1735,13 +1754,53 @@ if(count($tabCommentaires)>0)
|
||||
$output = '';
|
||||
if(!is_array($commentaires) && !empty($commentaires))
|
||||
{
|
||||
$output.= html_entity_decode($commentaires,ENT_COMPAT,'utf-8')."\n";
|
||||
if ( preg_match('/<(table)/i', $output) ){
|
||||
//Traitement préalable des lignes
|
||||
$commentaires = html_entity_decode(
|
||||
$commentaires,
|
||||
ENT_COMPAT,
|
||||
'utf-8');
|
||||
|
||||
|
||||
//Traitement des graphiques
|
||||
$pattern = '/\[GRAPHIQUE id=(.*?) titre=\'(.*?)\',(.*),(.*)]/';
|
||||
if( preg_match($pattern, $commentaires, $matches) ){
|
||||
//Initialisation des éléments
|
||||
FB::log($matches[0],'graphique');
|
||||
$image_id = $matches[1];
|
||||
$graph_titre = $matches[2];
|
||||
$ratio1 = $matches[3];
|
||||
$ratio2 = $matches[4];
|
||||
//Génération du graphique
|
||||
if (($siret*1)==0 || ($siren*1)<100){
|
||||
$id = 'gcomment-'.$idEntreprise.'-'.$image_id;
|
||||
}else{
|
||||
$id = 'gcomment-'.$siret.'-'.$image_id;
|
||||
}
|
||||
$image_file = commentaires_graph($id, $graph_titre,
|
||||
array($ratio1, $ratio2));
|
||||
//Le fichier image existe
|
||||
if( file_exists(PATH_SITE.'/cache/imgcache/'.$image_file) ){
|
||||
$commentaires = str_replace(
|
||||
$matches[0],
|
||||
'<img src="./imgcache/'.$image_file.'" />',
|
||||
$commentaires);
|
||||
}else{
|
||||
$commentaires = str_replace(
|
||||
$matches[0],
|
||||
'Erreur génération graphique',
|
||||
$commentaires);
|
||||
}
|
||||
}
|
||||
$output.= $commentaires."\n";
|
||||
|
||||
//Détection des début et fin de tableau
|
||||
if ( preg_match('/<(table)/i', $commentaires) ){
|
||||
$ligne = false;
|
||||
}
|
||||
if ( preg_match('/<\/(table)>/i', $commentaires) ){
|
||||
$ligne = true;
|
||||
}
|
||||
//Nouvelle ligne
|
||||
if($ligne){ $output.= '<br/>'; }
|
||||
echo $output;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user