extranet/includes/ratios/functions.php
2009-10-12 13:31:05 +00:00

323 lines
8.5 KiB
PHP

<?php
/**
* Retourne le résultat du webservice.
* @param string $nRatio
* Le n° de ratio.
* @param string $type
* Le type de ratio demandé.
* @return array
* Retourne le tableau structuré.
*/
function getRatios($siren, $type){}
/**
* Retourne le tableau pour l'affichage des graphiques d'évolution.
* @param string $nRatio
* Le n° de ratio.
* @return array
* Retourne le tableau structuré.
*/
function dGraph($nRatio){
global $bilansInfos;
global $ratiosSecteur;
global $ratiosEntrep;
global $ratiosInfos;
$evol = array();
$nbrAnnees=count($bilansInfos)-1;
$i=0;
foreach($bilansInfos as $dateCloture){
if(isset($bilansInfos[$nbrAnnees-$i]['dateCloture'])){
$div = 1;
$ratioE = $ratiosEntrep[$nbrAnnees-$i][$nRatio];
$ratioS = $ratiosSecteur[$nbrAnnees-$i][$nRatio];
if ( ($ratiosInfos[$nRatio]['unite']=='EUR') && ((abs($ratioE)/1000)>0) ){
$unite = 'KEURO';
$div = 1000;
}else{
$unite = $ratiosInfos[$nRatio]['unite'];
}
//Données pour les graphiques évolutions
$data[] = array(
'date'=>$bilansInfos[$nbrAnnees-$i]['dateCloture'],
'entreprise'=>(($ratioE!='NS') ? $ratioE/$div : 0 ),
'secteur'=>(($ratioS!='NS') ? $ratioS/$div : 0 ),
);
}
$i++;
}
$evol = array('data' => $data, 'unite' => $unite);
return $evol;
}
/**
* Affiche la position de l'entité en comparant son ratio avec le ratio secteur.
* @param int $nAnnee
* Le n° de l'année à comparé.
* @param string $nRatio
* Le n° de ratio.
* @param string $compare
* < ou > pour définir si le ratio doit être supérieur ou inférieur au ratio secteur
*/
function dPosition($nAnnee,$nRatio,$compare){
global $ratiosSecteur;
global $ratiosEntrep;
$ratioS = $ratiosSecteur[$nAnnee][$nRatio];
$ratioE = $ratiosEntrep[$nAnnee][$nRatio];
$ecart = 1/100;
if( $ratioS=='NS' || $ratioE=='NS' || $ratioS==NULL || $ratioE==NULL){
$return = '-';
}elseif($compare=='>'){
if( $ratioE+$ecart > $ratioS ){
$return = '<img src="./img/ratios_bon.png" />';
}elseif( ($ratioS-($ratioS*$ecart))<$ratioE && ($ratioS+($ratioS*$ecart))>$ratioE){
$return = '-';
}else{
$return = '<img src="./img/ratios_mauvais.png" />';
}
}elseif($compare=='<'){
if($ratioE < $ratioS){
$return = '<img src="./img/ratios_bon.png" />';
}elseif( ($ratioS-($ratioS*$ecart))<$ratioE && ($ratioS+($ratioS*$ecart))>$ratioE){
$return = '-';
}else{
$return = '<img src="./img/ratios_mauvais.png" />';
}
}
return $return;
}
/**
* Affiche le ratio secteur.
* @param int $nAnnee
* Le n° de l'année.
* @param string $nRatio
* Le n° de ratio.
*/
function dSecteur($nAnnee,$nRatio){
global $ratiosSecteur;
global $ratiosInfos;
$ratio = $ratiosSecteur[$nAnnee][$nRatio];
$return = '';
$formatRatio = TRUE;
if ($ratio=='NS') {
$return.= 'NS';
$formatRatio = FALSE;
}elseif(substr($ratio,0,1)=='<' ){
$return.= '< ';
$ratio = substr($ratio,1)*1;
}elseif(substr($ratio,0,1)=='>'){
$return.= '> ';
$ratio = substr($ratio,1)*1;
}elseif($ratio==NULL){
$return.= '-';
$formatRatio = FALSE;
}
if($formatRatio == TRUE) {
if ( ($ratiosInfos[$nRatio]['unite']=='EUR') && ((abs($ratio)/1000)>0) ){
$return.= number_format($ratio/1000, 0, '', ' ').' K&euro;';
}elseif (($ratiosInfos[$nRatio]['unite']=='EUR') && ((abs($ratio)/1000)<0)) {
$return.= number_format($ratio, 0, '', ' ').' &euro;';
}elseif (($ratiosInfos[$nRatio]['unite']=='Jours')) {
$return.= number_format($ratio, 0, '', ' ').' '.$ratiosInfos[$nRatio]['unite'];
}elseif (($ratiosInfos[$nRatio]['unite']=='AN')) {
$return.= round($ratio, 2).' '.$ratiosInfos[$nRatio]['unite'];
}elseif (($ratiosInfos[$nRatio]['unite']=='%')) {
$return.= round($ratio).' '.$ratiosInfos[$nRatio]['unite'];
}else{
$return.= $ratio.' '.$ratiosInfos[$nRatio]['unite'];
}
}
return $return;
}
/**
* Affiche le ratio de l'entité.
* @param int $nAnnee
* Le n° de l'année.
* @param string $nRatio
* Le n° de ratio.
*/
function dRatio($nAnnee,$nRatio){
global $ratiosEntrep;
global $ratiosInfos;
$ratio = $ratiosEntrep[$nAnnee][$nRatio];
$return = '';
$formatRatio = TRUE;
if ($ratio=='NS' || $ratio==0) {
$return.= 'NS';
$formatRatio = FALSE;
}elseif(substr($ratio,0,1)=='<' ){
$return.= '< ';
$ratio = substr($ratio,1)*1;
}elseif(substr($ratio,0,1)=='>'){
$return.= '> ';
$ratio = substr($ratio,1)*1;
}elseif($ratio==NULL){
$return.= '-';
$formatRatio = FALSE;
}
if($formatRatio == TRUE) {
if ( ($ratiosInfos[$nRatio]['unite']=='EUR') && ((abs($ratio)/1000)>0) ){
$return.= number_format($ratio/1000, 0, '', ' ').' K&euro;';
}elseif (($ratiosInfos[$nRatio]['unite']=='EUR') && ((abs($ratio)/1000)<0)) {
$return.= number_format($ratio, 0, '', ' ').' &euro;';
}elseif (($ratiosInfos[$nRatio]['unite']=='Jours')) {
$return.= number_format($ratio, 0, '', ' ').' '.$ratiosInfos[$nRatio]['unite'];
}elseif (($ratiosInfos[$nRatio]['unite']=='AN')) {
$return.= round($ratio, 2).' '.$ratiosInfos[$nRatio]['unite'];
}elseif (($ratiosInfos[$nRatio]['unite']=='%')) {
$return.= round($ratio).' '.$ratiosInfos[$nRatio]['unite'];
}else{
$return.= $ratio.' '.$ratiosInfos[$nRatio]['unite'];
}
}
return $return;
}
/**
* Affiche l'évolution d'un ratio.
* @param int $nAnnee
* Le n° de l'année.
* @param string $nRatio
* Le n° de ratio.
*/
function dEvol($nAnnee,$nRatio){
global $ratiosEntrepEvol;
$ratio = $ratiosEntrepEvol[$nAnnee][$nRatio];
if ($ratio=='NS') {
return 'NS';
}elseif($ratio==NULL){
return '-';
}else{
return $ratio.' %';
}
}
/**
* Retourne le pourcentage d'un ratio par rapport au total pour les graphiques .
* @param sting $nRatio
* Le n° de ratio.
* @param string $totalRatio
* Le n° du ratio total
* @return int
*/
function graphPercent($nAnnee,$nRatio,$totalRatio){
global $ratiosEntrep;
$ratio = isset($ratiosEntrep[$nAnnee][$nRatio]) ? $ratiosEntrep[$nAnnee][$nRatio] : 0;
$totalRatio = $ratiosEntrep[$nAnnee][$totalRatio];
if ( ($ratio!='NS' || $ratio!=NULL) && ($totalRatio!=0 || $totalRatio!='NS')){
return $ratio*100/$totalRatio;
}else{
return 0;
}
}
/**
* Affiche le pourcentage d'un ratio par rapport au total.
* @param sting $nRatio
* Le n° de ratio.
* @param string $totalRatio
* Le n° du ratio total
* @return int
*/
function dPercent($nAnnee,$nRatio,$totalRatio){
global $ratiosEntrep;
$ratio = $ratiosEntrep[$nAnnee][$nRatio];
$totalRatio = $ratiosEntrep[$nAnnee][$totalRatio];
if ($ratio=='NS') {
$return = 'NS';
}elseif($ratio==NULL){
$return = '-';
}else {
if ($totalRatio!=0 || $totalRatio!='NS'){
$percent = $ratio*100/$totalRatio;
}else{
$percent = 0;
}
$return = round($percent, 2);
}
return $return;
}
/**
* Formatte le commentaire pour l'afficher dans l'infobulle.
* Place un retour à la ligne si le texte parait plus long que le bloc d'affichage
* Transforme les entités HTML
* Transforme le \n par des <br/>
* @param string $text
* Commentaire .
* @return string
*/
function wrapComment($text){
$fontSize = 2;
$blockSize = 500;
$newtext = wordwrap($text, $blockSize/$fontSize , "\n");
$newtext = htmlentities($newtext);
$newtext = nl2br($newtext);
return $newtext;
}
/**
* Compte le nombre de bilans par type et renvoi un type de bilan par defaut
* @param array $bilansInfos
* @param string $typeBilan
* @return array
*/
function countBilans($bilansInfos, $typeBilan='')
{
$numBilanC = 0;
$numBilanN = 0;
if(count($bilansInfos)>0)
{
foreach($bilansInfos as $key => $item)
{
if($item['typeBilan']=='C') { $numBilanC++; }
if($item['typeBilan']=='N') { $numBilanN++; }
}
}
if($typeBilan=='')
{
if($numBilanN>0){ $typeBilan = 'N'; }
if($numBilanN==0 && $numBilanC>0){ $typeBilan = 'C'; }
}
$numBilan = array( 'N'=>$numBilanN , 'C'=>$numBilanC );
return array($typeBilan, $numBilan);
}
/**
* Filtre les bilans suivants leur type
* @param string $typeBilan
* @return void
*/
function filtreTypeBilans($typeBilan='')
{
global $bilansInfos, $ratiosEntrep, $ratiosEntrepEvol, $dataActif, $dataPassif, $dataSIG;
if(count($bilansInfos)>0)
{
//En fonction du type de bilan sélectionné
//on filtre les bilans avant de les envoyer sur l'affichage
$index = 0;
foreach($bilansInfos as $key => $item)
{
if($item['typeBilan']!=$typeBilan)
{
array_splice($bilansInfos, $index, 1);
array_splice($ratiosEntrep, $index, 1);
array_splice($ratiosEntrepEvol, $index, 1);
if(isset($dataActif)) array_splice($dataActif, $index, 1);
if(isset($dataPassif)) array_splice($dataPassif, $index, 1);
if(isset($dataSIG)) array_splice($dataSIG, $index, 1);
$index--;
}
$index++;
}
}
}
?>