valeur foreach ($bilansInfos as $key => $row) { $bilansInfos[$key]['cle'] = $key; $date[$key] = $row['dateCloture']; $duree[$key] = $row['duree']; $devise[$key] = $row['devise']; $unite[$key] = $row['unite']; $cle[$key] = $row['cle']; } //Tri du tableau de référence suivant la date de cloture array_multisort( $date, SORT_DESC, $duree, SORT_DESC, $devise, SORT_DESC, $unite, SORT_DESC, $cle, SORT_DESC, $bilansInfos); //Tri des autres tableaux $tempRatiosEntrep = $ratiosEntrep; $tempRatiosEntrepEvol = $ratiosEntrepEvol; $tempRatiosSecteur = $ratiosSecteur; $i = 0; foreach ($bilansInfos as $row) { $ratiosEntrep[$i] = $tempRatiosEntrep[$row['cle']]; $ratiosEntrepEvol[$i] = $tempRatiosEntrepEvol[$row['cle']]; if(is_array($tempRatiosSecteur[$row['cle']])) $ratiosSecteur[$i] = $tempRatiosSecteur[$row['cle']]; //Génération données graphique actif $dataActif[$i] = array( graphPercent($i,'r51','r22'), graphPercent($i,'r52','r22'), graphPercent($i,'r53','r22'), graphPercent($i,'r60','r22'), graphPercent($i,'r61','r22'), graphPercent($i,'r62','r22'), graphPercent($i,'r63','r22'), ); //Génération données graphique passif $dataPassif[$i] = array( graphPercent($i,'r70','r22'), graphPercent($i,'r71','r22'), graphPercent($i,'r72','r22'), graphPercent($i,'r83','r22'), graphPercent($i,'r84','r22'), graphPercent($i,'r85','r22'), graphPercent($i,'r86','r22'), graphPercent($i,'r87','r22'), ); //Génération données graphique SIG $dataSIG[$i] = array( graphPercent($i,'r101','r101')-graphPercent($i,'r122','r101'), graphPercent($i,'r122','r101')-graphPercent($i,'r130','r101'), graphPercent($i,'r130','r101')-graphPercent($i,'r140','r101'), graphPercent($i,'r140','r101')-graphPercent($i,'r150','r101'), graphPercent($i,'r150','r101')-graphPercent($i,'r170','r101'), graphPercent($i,'r170','r101')-graphPercent($i,'r199','r101'), graphPercent($i,'r199','r101'), ); $i++; } //Fin de tri des tableaux return array( 'bilansInfos' => $bilansInfos, 'ratiosEntrep' => $ratiosEntrep, 'ratiosEntrepEvol' => $ratiosEntrepEvol, 'ratiosSecteur' => $ratiosSecteur, 'ratiosInfos' => $ratiosInfos, 'dataActif' => $dataActif, 'dataPassif' => $dataPassif, 'dataSIG' => $dataSIG ); } /** * 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 string $ratio * Le ratio selectionné * @return array * Retourne un tableau structuré composé de dataGraph, et de dataEvol. */ function synthese_datagraph($bilansInfos, $ratiosEntrep, $ratio) { global $firephp; $dataGraph = array(); $dataEvol = array(); $tabRatioGraph = syntheseRatioGraph(); $tabRatioGraphEvol = syntheseRatio($ratio); $nbrAnnees = count($bilansInfos)-1; $i=0; foreach($bilansInfos as $dateCloture) { //Données pour le graphique if(isset($dateCloture['dateCloture'])) { $dataGraph[$i]['date'] = $dateCloture['dateCloture']; $dataGraph[$i]['duree'] = $dateCloture['duree']; 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); } /** * 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 string $ratio * Le ratio selectionné * @return array * Retourne un tableau structuré composé de dataGraph, et de dataEvol. */ function synthese_datagraphmin($bilansInfos, $ratiosEntrep) { global $firephp; $dataGraph = array(); $dataEvol = array(); $tabRatioGraphEvol = syntheseRatioMin(); $nbrAnnees = count($bilansInfos)-1; $i=0; foreach($bilansInfos as $dateCloture) { //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).'
'.$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, $ratio) { global $siret, $siren, $idEntreprise, $typeBilan, $firephp; $tabRatio = syntheseRatio($ratio); if (($siret*1)==0 || ($siren*1)<100){ $fileName = 'synthese-'.$idEntreprise; }else{ $fileName = 'synthese-'.$siret; } $fileName.= '-'.$typeBilan; $firephp->log($fileName, 'SyntheseTablerow - filename'); $row = ''; foreach($tabRatio as $ratio => $info) { $row.= ''."\n". ' '.$info['titre'].''."\n". ' '.dRatio(2,$ratio).''."\n". ' '.dRatio(1,$ratio).''."\n". ' '.dEvol(1,$info['evol']).''."\n". ' '.dRatio(0,$ratio).''."\n". ' '.dEvol(0,$info['evol']).''."\n"; if(count($tabRatio)!=1){ $class = 'class="sTip"'; $href = '/?page=synthese&siret='.$_REQUEST['siret'].'&idEntreprise='.$_REQUEST['idEntreprise'].'&ratio='.$ratio; $unite = ''; if(isset($info['unite']) && $info['unite']==1){ $unite = $ratiosInfos[$info['evol']]['unite']; } $rel='./pages/synthese_dgraph.php?widht=375&f='.synthese_graphEvol($dataEvol[$ratio], $unite, $ratio, $fileName); }else{ $class = ''; $href='#'; $ref=''; } $row.= ' Visionner le graphique'."\n"; $row.= ''."\n"; } return $row; } /** * 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_tablerowmin($ratiosInfos, $dataEvol) { global $siret, $siren, $idEntreprise, $typeBilan, $firephp; $tabRatio = syntheseRatioMin(); if (($siret*1)==0 || ($siren*1)<100){ $fileName = 'synthese-'.$idEntreprise; }else{ $fileName = 'synthese-'.$siret; } $fileName.= '-'.$typeBilan; $row = ''; foreach($tabRatio as $ratio => $info) { $row.= ''."\n"; $row.= ' '.$info['titre'].''."\n"; $row.= ' '.dRatio(2,$ratio).''."\n"; $row.= ' '.dTotal(2,$ratio, $info['total']).' %'."\n"; $row.= ' '.dRatio(1,$ratio).''."\n"; $row.= ' '.dTotal(1,$ratio, $info['total']).' %'."\n"; $row.= ' '.dRatio(0,$ratio).''."\n"; $row.= ' '.dTotal(0,$ratio, $info['total']).' %'."\n"; $row.= ''."\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, $unite, $ratio, $filename){ require_once 'phpchartdir/phpchartdir.php'; global $firephp; $unite = (empty($_REQUEST['unite']) == false) ? $unite : 'KEUROS'; $labelsX = array(); $labelsY = array(); $dataX = array(); if(count($data)<=1){ $return = 0; }else{ foreach($data as $value) { $dataX[] = $value['value']; $labelsX[] = substr($value['date'],0,4); } $i=-100; while($i>100){ $labelsY[] = $i;} # Create a XYChart object of size 250 x 250 pixels $c = new XYChart(350, 250); $c->setPlotArea(55, 10, 280, 200); $c->yAxis->setTitle($unite); $c->xAxis->setTitle("Années"); $c->xAxis->setWidth(2); $c->yAxis->setWidth(2); $c->addLineLayer($dataX); # Set the labels. $c->yAxis->setLabels($labelsY); $c->yAxis->setLabelStep(10); $c->xAxis->setLabels($labelsX); $path = PATH_SITE.'/cache/imgcache/'; $file = $filename.'-'.$ratio.'.png'; if($c->makeChart($path.$file) === TRUE){ $return = $file; } else{ $return = FALSE; } } return $return; } function synthese_graph_linecompare($data){ global $siret, $siren, $idEntreprise, $typeBilan; if (($siret*1)==0 || ($siren*1)<100){ $filename = 'synthese-'.$idEntreprise; }else{ $filename = 'synthese-'.$siret; } $filename.='-'.$typeBilan; //Graphique style linecompare / CA / FR / BFR require_once 'phpchartdir/phpchartdir.php'; //Tri des données par date et par ordre croissant foreach ($data as $key => $row) { $date[$key] = $row['date']; } array_multisort($date, SORT_ASC, $data); //Définition des valeurs pour le graph $dataBFR = array(); $dataFR = array(); $dataCA = array(); $i=0; //Parcourir les années foreach($data as $item){ $anneeFin = substr($item['date'],0,4); $moisFin = substr($item['date'],4,2); $jourFin = substr($item['date'],6,2); //Calcul de la date de début $dateDebut = date("Ymd", mktime(0, 0, 0, $moisFin-$item['duree'], $jourFin, $anneeFin)); $anneeDebut = substr($dateDebut,0,4); $moisDebut = substr($dateDebut,4,2); $jourDebut = substr($dateDebut,6,2); //Affectation des abscisses $dataBFR['x'][$i] = $dataFR['x'][$i] = $dataCA['x'][$i] = $dataEBE['x'][$i] = chartTime((int)$anneeDebut, (int)$moisDebut, (int)$jourDebut); $dataBFR['x'][$i+1] = $dataFR['x'][$i+1] = $dataCA['x'][$i+1] = $dataEBE['x'][$i+1] = chartTime((int)$anneeFin, (int)$moisFin, (int)$jourFin); //Affectation des ordonnées $dataBFR['y'][$i] = $dataBFR['y'][$i+1] = $item['r236']; $dataFR['y'][$i] = $dataFR['y'][$i+1] = $item['r235']; $dataCA['y'][$i] = $dataCA['y'][$i+1] = $item['r6']; $dataEBE['y'][$i] = $dataEBE['y'][$i+1] = $item['r146']; $i+=2; } $c = new XYChart(570, 350, 0xcccccc, 0x000000, 1); $c->addTitle("Synthèse *", "timesbi.ttf", 15, 0x000000); $c->addText(60, 320, "* Elements financier rapportés à 12 mois" ); $c->setPlotArea(60, 80, 500, 200, 0xffffff, -1, -1, 0xcccccc, 0xcccccc); $c->yAxis->setTitle("KEUROS","timesbi.ttf",10); $c->xAxis->setTitle( "<*block,valign=absmiddle*>Années<*/*>"); $c->xAxis->setWidth(2); $c->yAxis->setWidth(2); // Add a legend box at (55, 32) (top of the chart) with horizontal layout. Use 9 pts // Arial Bold font. Set the background and border color to Transparent. $legendObj = $c->addLegend(55, 30, false, "times.ttf", 9); $legendObj->setBackground(Transparent); // Add a blue (0000ff) step line layer to the chart and set the line width to 2 pixels $layer1 = $c->addStepLineLayer($dataFR['y'], 0x0000ff, "FONDS DE ROULEMENT"); $layer1->setXData($dataFR['x']); $layer1->setLineWidth(2); // Add a red (ff0000) step line layer to the chart and set the line width to 2 pixels $layer0 = $c->addStepLineLayer($dataBFR['y'], 0xff0000, "BESOIN EN FONDS DE ROULEMENT"); $layer0->setXData($dataBFR['x']); $layer0->setLineWidth(2); // Add a green (00ff00) step line layer to the chart and set the line width to 2 pixels $layer2 = $c->addStepLineLayer($dataCA['y'], 0x00ff00, "CHIFFRE D'AFFAIRES"); $layer2->setXData($dataCA['x']); $layer2->setLineWidth(2); // Add a black (000000) step line layer style dash to the chart and set the line width to 2 pixels $layer3 = $c->addStepLineLayer($dataEBE['y'], $c->dashLineColor(0x000000, DashLine), "EXCEDENT BRUT D'EXPLOITATION"); $layer3->setXData($dataEBE['x']); $layer3->setLineWidth(2); # If the FR line gets above the BFR line, color to area between the lines red (ff0000) $c->addInterLineLayer($layer0->getLine(0), $layer1->getLine(0), 0xff0000, Transparent); # If the FR line gets below the lower BFR line, color to area between the lines light green (8099ff99) $c->addInterLineLayer($layer0->getLine(0), $layer1->getLine(0), Transparent, 0x8044ff44); $path = PATH_SITE.'/cache/imgcache/'; $file = $filename.'-linecompare.png'; if($c->makeChart($path.$file) === TRUE){ $return = ''; }else{ $return = 'Impossible de générer le graphique'; } return $return; } /** * 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, $bilan, $ratio = ''){ global $siret, $siren, $idEntreprise, $typeBilan; $tabRatio = array( 0 => array('titre'=>'EQUILIBRE FINANCIER'), 1 => array('titre'=>'MARGE BRUTE D\'AUTOFINANCEMENT', 'stitre'=>'(MBA ou CAF)', 'ratio'=>'r233', 'parent'=>0, 'position'=>'>' ), 2 => array('titre'=>'COUVERTURE du BFR ', 'stitre'=>'(FR/BFR)', 'ratio'=>'r234', 'parent'=>0, 'position'=>'>' ), 3 => array('titre'=>'COUVERTURE des IMMOS NETTES ', 'stitre'=>'(Capitaux permanents / Immobilisations nettes)', 'ratio'=>'r237', 'parent'=>0, 'position'=>'>' ), 4 => array('titre'=>'COUVERTURE du CA ', 'stitre'=>'(Fond de roulement net global sur 12m x 360 / Chiffre d\'affaire)', 'ratio'=>'r238', 'parent'=>0, 'position'=>'>' ), 5 => array('titre'=>'SOLVABILITE ', 'stitre'=>'(Capitaux propres / Ensemble des dettes)', 'ratio'=>'r239', 'parent'=>0, 'position'=>'>' ), 6 => array('titre'=>'INDEPENDANCE FINANCIERE ', 'stitre'=>'(Cap.propres/Capitaux permanents)', 'ratio'=>'r240', 'parent'=>0, 'position'=>'>' ), 7 => array('titre'=>'PROFITABILITE'), 8 => array('titre'=>'RENTABILITE ECONOMIQUE ', 'stitre'=>'(EBE/TOTAL bilan)', 'ratio'=>'r262', 'parent'=>7, 'position'=>'>' ), 9 => array('titre'=>'RENTABILITE FINANCIERE ', 'stitre'=>'(Résult.Net/Cap.propres)', 'ratio'=>'r263', 'parent'=>7, 'position'=>'>' ), 10 => array('titre'=>'RENTABILITE COMMERCIALE ', 'stitre'=>'(Résultat net/CA)', 'ratio'=>'r264', 'parent'=>7, 'position'=>'>' ), 11 => array('titre'=>'CONTRIBUTION DU CAPITAL', 'stitre'=>'(Capacité d\'autofinancement sur 12 mois / Capitaux permanents)', 'ratio'=>'r265', 'parent'=>7, 'position'=>'>' ), 12 => array('titre'=>'CONTRIBUTION DE LA VA', 'stitre'=>'(Capacité d\'autofinancement / Valeur ajoutée)', 'ratio'=>'r266', 'parent'=>7, 'position'=>'>' ), 13 => array('titre'=>'LIQUIDITE'), 14 => array('titre'=>'LIQUIDITE IMMEDIATE', 'stitre'=>'(Disponibilité / Dettes CT)', 'ratio'=>'r250', 'parent'=>13, 'position'=>'>' ), 15 => array('titre'=>'LIQUIDITE GENERALE', 'stitre'=>'(Act.circulant net/Dettes CT)', 'ratio'=>'r251', 'parent'=>13, 'position'=>'>' ), 16 => array('titre'=>'LIQUIDITE REDUITE', 'stitre'=>'(Disponibilité et créances réelles /Dettes CT)', 'ratio'=>'r252', 'parent'=>13, 'position'=>'>' ), 17 => array('titre'=>'ENDETTEMENT'), 18 => array('titre'=>'ENDETTEMENT ', 'stitre'=>'(Dettes a + 1 an / Capitaux propres)', 'ratio'=>'r244', 'parent'=>17, 'position'=>'<' ), 19 => array('titre'=>'CAPACITE DE REMBOURSEMENT', 'stitre'=>'(Dettes.bancaires.(+MT+LT+C.bail)/CAF)', 'ratio'=>'r247', 'parent'=>17, 'position'=>'<' ), 20 => array('titre'=>'FINANCEMENT DES STOCKS', 'stitre'=>'(Dettes aux fournisseurs / Stock)', 'ratio'=>'r248', 'parent'=>17, 'position'=>'<' ), 21 => array('titre'=>'PRODUCTIVITE'), 22 => array('titre'=>'PRODUCTIVITE DE L\'ACTIF', 'stitre'=>'(Chiffre d\'affaire / Actif comptable)', 'ratio'=>'r271', 'parent'=>21, 'position'=>'>' ), 23 => array('titre'=>'DUREE CLIENT', 'stitre'=>'(Rotation clients en VJ TTC)', 'ratio'=>'r278', 'parent'=>21, 'position'=>'<' ), 24 => array('titre'=>'DUREE FOURNISSEUR', 'stitre'=>'(Rotation fournisseurs en JA TTC)', 'ratio'=>'r279', 'parent'=>21, 'position'=>'<' ), 25 => array('titre'=>'POIDS MASSE SALARIALE', 'stitre'=>'(Ch personnel / VA)', 'ratio'=>'r281', 'parent'=>21, 'position'=>'<' ), 26 => array('titre'=>'RENDEMENT', 'stitre'=>'(Production sur 12mois / Effectif)', 'ratio'=>'r261', 'parent'=>21, 'position'=>'>' ), 27 => array('titre'=>'PRODUCTIVITE', 'stitre'=>'(CA / Effectif)', 'ratio'=>'r267', 'parent'=>21, 'position'=>'>' ), ); if (($siret*1)==0 || ($siren*1)<100){ $fileName = 'ratios-'.$idEntreprise; }else{ $fileName = 'ratios-'.$siret; } $fileName.= '-'.$typeBilan; $row = ''; foreach($tabRatio as $item) { if($ratio==''){ if(isset($item['ratio'])){ $row.= ''."\n"; $row.= ' '.$item['titre'].'
'.$item['stitre'].'
'."\n"; $row.= ' '.dRatio($bilan,$item['ratio']).''."\n"; $row.= ' '.dSecteur($bilan,$item['ratio']).''."\n"; $row.= ' '; $row.= ''."\n"; $row.= dPosition($bilan,$item['ratio'],$item['position']); $row.= ''; $row.= ''."\n"; $row.= ''."\n"; }else{ $row.= ''."\n"; $row.= ' '.$item['titre'].''."\n"; $row.= ' Entreprise'."\n"; $row.= ' Secteur'."\n"; $row.= ' Position'."\n"; $row.= ''."\n"; } }elseif($ratio==$item['ratio']){ $row.= ''."\n". ' '.$tabRatio[$item['parent']]['titre'].''."\n". ' Entreprise'."\n". ' Secteur'."\n". ' Position'."\n". ''."\n"; $row.= ''."\n". ' '.$item['titre'].'
'.$item['stitre'].'
'."\n". ' '.dRatio($bilan,$item['ratio']).''."\n". ' '.dSecteur($bilan,$item['ratio']).''."\n". ' '."\n". ' '."\n". dPosition($bilan,$item['ratio'],$item['position'])."\n". ' '."\n". ' '."\n". ''."\n"; } } return $row; } /** * Enregistre le graphique bilan actif sous forme d'image. * @param array $data * Tableau structuré des données * @param array $filename * Le nom de fichier généré * @return string * Retourne un message d'erreur ou le code HTML d'affichage. */ function bilans_graph_actif($data, $filename){ require_once 'phpchartdir/phpchartdir.php'; $w = 570; $h = 210; $x = round($w/2); $y = round($h/2); $radius=90; $c = new PieChart($w, $h); $labels = array('Immo. incorporelles', 'Immo. corporelles', 'Immo. financières', 'Stock et encours', 'Créances Clients', 'Autres créances', 'Trésorerie Active'); $textBoxObj = $c->addTitle("Composition de l'actif", "timesbi.ttf", 15); $c->setPieSize($x, $y, $radius); $c->setLabelLayout(SideLayout); $t = $c->setLabelStyle(); $t->setBackground(SameAsMainColor, Transparent, glassEffect()); $t->setRoundedCorners(5); # Set the border color of the sector the same color as the fill color. Set the line # color of the join line to black (0x0) $c->setLineColor(SameAsMainColor, 0x000000); $c->setStartAngle(135); $c->setLabelFormat("<*block,valign=absmiddle*>{label} <*font=timesbi.ttf,size=0*>({percent|0}%)"); $c->setData($data, $labels); $c->set3D(20); $path = PATH_SITE.'/cache/imgcache/'; $file = $filename.'-graph-actif.png'; if($c->makeChart($path.$file) === TRUE){ $return = ''; }else{ $return = 'Impossible de générer le graphique'; } return $return; } /** * Enregistre le graphique bilan SIG sous forme d'image. * @param array $data * Tableau structuré des données * @param array $filename * Le nom de fichier généré * @return string * Retourne un message d'erreur ou le code HTML d'affichage. */ function bilans_graph_sig($data, $filename){ require_once 'phpchartdir/phpchartdir.php'; $w = 570; $h = 210; $x = round($w/2); $y = round($h/2); $radius=70; $c = new PieChart($w, $h); $labels = array('Achats de marchandises.', 'Autres achats externes', 'Charges de fonctionnement', 'Amortissement et provisions', 'Perte financière', 'Impôts sociétés', 'RÉSULTAT NET', ); $textBoxObj = $c->addTitle("Solde Intermédiaire de Gestion", "timesbi.ttf", 15); $c->setPieSize($x, $y, $radius); $c->setLabelLayout(SideLayout); $t = $c->setLabelStyle(); $t->setBackground(SameAsMainColor, Transparent, glassEffect()); $t->setRoundedCorners(5); $c->setLineColor(SameAsMainColor, 0x000000); $c->setLabelFormat("<*block,valign=absmiddle*>{label} <*font=arial.ttf,size=0*>({percent|0}%)"); $c->setStartAngle(135); $c->setData($data, $labels); $c->set3D(20); $path = PATH_SITE.'/cache/imgcache/'; $file = $filename.'-graph-sig.png'; if($c->makeChart($path.$file) === TRUE){ $return = ''; }else{ $return = 'Impossible de générer le graphique'; } return $return; } /** * Enregistre le graphique bilan passif sous forme d'image. * @param array $data * Tableau structuré des données * @param array $filename * Le nom de fichier généré * @return string * Retourne un message d'erreur ou le code HTML d'affichage. */ function bilans_graph_passif($data, $filename){ require_once 'phpchartdir/phpchartdir.php'; $w = 570; $h = 210; $x=round($w/2); $y=round($h/2); $radius=90; $c = new PieChart($w, $h); $labels = array('Fonds propres', 'Provisions Risques', 'Compte Courant', 'Dettes Financières', 'Dettes Fournisseurs', 'Dettes fiscales', 'Autres Dettes', 'Trésorerie Passive'); $textBoxObj = $c->addTitle("Composition du passif", "timesbi.ttf", 15); $c->setPieSize($x, $y, $radius); $c->setLabelLayout(SideLayout); $t = $c->setLabelStyle(); $t->setBackground(SameAsMainColor, Transparent, glassEffect()); $t->setRoundedCorners(5); $c->setLineColor(SameAsMainColor, 0x000000); $c->setStartAngle(135); $c->setLabelFormat("<*block,valign=absmiddle*>{label} <*font=timesbi.ttf,size=0*>({percent|0}%)"); $c->setData($data, $labels); $c->set3D(20); $path = PATH_SITE.'/cache/imgcache/'; $file = $filename.'-graph-passif.png'; if($c->makeChart($path.$file) === TRUE){ $return = ''; }else{ $return = 'Impossible de générer le graphique'; } return $return; } /** * Enregistre le graphique évolution. * @param array $data * Tableau structuré des données * @param array $filename * Le nom de fichier généré * @return string * Retourne un message d'erreur ou le code HTML d'affichage. */ function ratios_graph($ratio, $data, $filename) { $path = PATH_SITE.'/cache/imgcache/'; if($ratio != ''){ $file = $filename.'-'.$ratio.'.png'; }else{ $file = $filename.'.png'; } if(file_exists($path.$file)){ $return = $file; }else{ require_once 'phpchartdir/phpchartdir.php'; if(count($data)<=1){ $return = 0; }else{ $labelsX = array(); $labelsY = array(); $dataX1 = array(); $dataX2 = array(); foreach($data['data'] as $value){ $dataX1[] = $value['entreprise']; $dataX2[] = $value['secteur']; $labelsX[] = substr($value['date'],0,4); } $i=-100; while($i>100){ $labelsY[] = $i;} $c = new XYChart(350, 250); $c->setPlotArea(55, 10, 280, 200); $c->yAxis->setTitle($data['unite']); $c->xAxis->setTitle("Années"); $c->xAxis->setWidth(2); $c->yAxis->setWidth(2); $legendObj = $c->addLegend(50, 10, false, "times.ttf", 9); $legendObj->setBackground(Transparent); $c->addLineLayer($dataX1, 0x0000ff, "Entreprise"); $c->addLineLayer($dataX2, 0x008C00, "Secteur"); $c->yAxis->setLabels($labelsY); $c->yAxis->setLabelStep(10); $c->xAxis->setLabels($labelsX); if($c->makeChart($path.$file) === TRUE){ $return = $file; } else{ $return = FALSE; } } } return $return; } ?>