extranet/includes/ratios/ratios.php

179 lines
6.1 KiB
PHP

<?php
require_once realpath(dirname(__FILE__)).'/functions.php';
/**
* Retourne un tableau de données formatés pour les graphiques.
* @param array $bilansInfo
* Le tableau des bilans
* @param array $ratiosEntrep
* Le tableau des ratios entreprise
* @param array $tabRatioGraph
* Un tableau des ratios à utiliser pour le graphique général
* @param array $tabRatioGraphEvol
* Un tableau des ratios à utiliser pour les graphiques d'évolution
* @return array
* Retourne un tableau structuré composé de dataGraph, et de dataEvol.
*/
function synthese_datagraph($bilansInfos, $ratiosEntrep, $tabRatioGraph, $tabRatioGraphEvol){
global $firephp;
$dataGraph = array();
$dataEvol = array();
$nbrAnnees = count($bilansInfos)-1;
$i=0;
foreach($bilansInfos as $dateCloture){
//Données pour le graphique
if(isset($dateCloture['dateCloture'])){
$dataGraph[$i]['date'] = $dateCloture['dateCloture'];
foreach($tabRatioGraph as $item){
$dataGraph[$i][$item['ratio']] = $ratiosEntrep[$i][$item['ratio']]/$item['op'];
}
}
//Données pour les graphiques évolutions
if(isset($bilansInfos[$nbrAnnees-$i]['dateCloture'])){
foreach($tabRatioGraphEvol as $ratio => $info){
$dataEvol[$ratio][] = array(
'date'=>$bilansInfos[$nbrAnnees-$i]['dateCloture'],
'value'=>(($ratiosEntrep[$nbrAnnees-$i][$ratio]!='NS') ? $ratiosEntrep[$nbrAnnees-$i][$ratio]/$info['op'] : 0 )
);
}
}
$i++;
}
return array("graph" => $dataGraph, "evol" => $dataEvol);
}
/**
* Formatte chaîne contenant la date formaté.
* @param array $bilansInfo
* Le tableau des bilans
* @param array $nAnnee
* Le numéro de l'année
* @return string
* Retourne la date formaté.
*/
function synthese_formatdateCloture($bilansInfos, $nAnnee){
if(isset($bilansInfos[$nAnnee]['dateCloture'])) {
print substr($bilansInfos[$nAnnee]['dateCloture'],6,2).'/'.substr($bilansInfos[$nAnnee]['dateCloture'],4,2).'/'.substr($bilansInfos[$nAnnee]['dateCloture'],0,4).'<br/>'.$bilansInfos[$nAnnee]['duree'].' mois';
}else{ print '-'; }
}
/**
* Retourne une chaîne contenant les ligne d'un tableau html.
* @param array $ratiosInfos
* Le tableau des informations ratios
* @param array $dataEvol
* Le tableau des données évolution
* @param array $tabRatio
* Un tableau des ratios à utiliser pour générer les lignes
* @return string
* Retourne une chaîne.
*/
function synthese_tablerow($ratiosInfos, $dataEvol, $tabRatio){
global $firephp;
$row = '';
foreach($tabRatio as $ratio => $info){
$row.= '<tr>'."\n".
' <td class="head"><a tooltip="'.wrapComment($ratiosInfos[$ratio]['commentaires']).'">'.$info['titre'].'</a></td>'."\n".
' <td class="right">'.dRatio(2,$ratio).'</td>'."\n".
' <td class="right">'.dRatio(1,$ratio).'</td>'."\n".
' <td class="right">'.dEvol(1,$info['evol']).'</td>'."\n".
' <td class="right">'.dRatio(0,$ratio).'</td>'."\n".
' <td class="right">'.dEvol(0,$info['evol']).'</td>'."\n";
if(count($tabRatio)!=1){
$class = 'class="jTip"';
$href='/?page=synthese&siret='.$_REQUEST['siret'].'&idEntreprise='.$_REQUEST['idEntreprise'].'&ratio='.$ratio;
$rel=synthese_graphEvol($dataEvol[$ratio]);
}else{
$class = '';
$href='#';
$ref='';
}
$row.= ' <td><a '.$class.' href="'.$href.'" rel="'.$rel;
if(isset($info['unite']) && $info['unite']==1){
$row.= '&unite='.$ratiosInfos[$info['evol']]['unite'];
}
$row.= '" name="'.$info['titre'].'"><img src="./img/synthese/chart_bar.png" alt="Visionner le graphique"></a></td>'."\n";
$row.= '</tr>'."\n";
}
return $row;
}
/**
* Retourne l'url de la page d'appel du graphique avec tous ces paramètres.
* @param array $data
* Les données du tableau
* @return string
* Retourne une chaîne.
*/
function synthese_graphEvol($data, $img = FALSE){
$url = './pages/synthese_dgraph.php';
$width = 375;
$data = urlencode(serialize($data));
return $url.'?width='.$width.'&data='.$data;
}
/**
* Retourne une chaîne contenant la ligne d'un tableau html.
* @param array $ratiosInfos
* Le tableau des information ratios
* @param array $dataEvol
* Le tableau des données évolution
* @param array $tabRatio
* Un tableau des ratios à utiliser pour le générer les lignes
* @return string
* Retourne une chaîne.
*/
function ratios_tablerow($ratiosInfos, $tabRatio, $bilan, $ratio = ''){
foreach($tabRatio as $item){
if($ratio==''){
if(isset($item['ratio'])){
$row.= '<tr>'."\n";
$row.= ' <td><a tooltip="'.wrapComment($ratiosInfos[$item['ratio']]['commentaires']).'">'.$item['titre'].'<br/>'.$item['stitre'].'</a></td>'."\n";
$row.= ' <td class="right">'.dRatio($bilan,$item['ratio']).'</td>'."\n";
$row.= ' <td class="right">'.dSecteur($bilan,$item['ratio']).'</td>'."\n";
$row.= ' <td class="position">';
$row.= '<a class="jTip" href="/?page=ratios&siret='.$_REQUEST['siret'].'&idEntreprise='.$_REQUEST['idEntreprise'].'&ratio='.$item['ratio'].'" rel="./pages/ratios_dgraph.php?width=375&data='.urlencode(serialize(dGraph($item['ratio']))).'" name="'.$item['titre'].'">'."\n";
$row.= dPosition($bilan,$item['ratio'],'>');
$row.= '</a>';
$row.= '</td>'."\n";
$row.= '</tr>'."\n";
}else{
$row.= '<tr class="subhead">'."\n";
$row.= ' <td class="center italique">'.$item['titre'].'</td>'."\n";
$row.= ' <td>Entreprise</td>'."\n";
$row.= ' <td>Secteur</td>'."\n";
$row.= ' <td>Position</td>'."\n";
$row.= '</tr>'."\n";
}
}elseif($ratio==$item['ratio']){
$row.= '<tr class="subhead">'."\n".
' <td class="center italique">'.$tabRatio[$item['parent']]['titre'].'</td>'."\n".
' <td>Entreprise</td>'."\n".
' <td>Secteur</td>'."\n".
' <td>Position</td>'."\n".
'</tr>'."\n";
$row.= '<tr>'."\n".
' <td><a tooltip="'.wrapComment($ratiosInfos[$item['ratio']]['commentaires']).'">'.$item['titre'].'<br/>'.$item['stitre'].'</a></td>'."\n".
' <td class="right">'.dRatio($bilan,$item['ratio']).'</td>'."\n".
' <td class="right">'.dSecteur($bilan,$item['ratio']).'</td>'."\n".
' <td class="position">'."\n".
' <a href="#" name="'.$item['titre'].'">'."\n".
dPosition($bilan,$item['ratio'],'>')."\n".
' </a>'."\n".
' </td>'."\n".
'</tr>'."\n";
}
}
return $row;
}
?>