extranet/www/pages/ratios.php
2009-08-10 16:54:43 +00:00

298 lines
11 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
if (!$_SESSION['connected']) die();
$tabInfo = $_SESSION['tabInfo'];
$siret=trim(preg_replace('/[^0-9]/', '', $_REQUEST['siret']));
if (strlen($siret)<>0 && strlen($siret)<>9 && strlen($siret)<>14) die('Paramètres incorrects !');
$idEntreprise=trim(preg_replace('/[^0-9]/', '', $_REQUEST['idEntreprise']))*1; // Si id=0 alors non communiqué
if (($siret*1)==0 && $idEntreprise==0) die('Paramètres incorrects !');
$siren=substr($siret,0,9);
isset($_REQUEST['bilan']) ? $bilan=$_REQUEST['bilan'] : $bilan=0 ;
isset($_REQUEST['ratio']) ? $ratio=$_REQUEST['ratio'] : $ratio='' ;
if (($siret*1)==0 || ($siren*1)<100){ $fileName = $page2.'-'.$idEntreprise;
}else{ $fileName = $page2.'-'.$siret; }
$fileName.= '-'.$bilan;
if($ratio!=''){$fileName.='-'.$ratio;}
require_once 'cache.php';
$cache = new Cache();
$cache->forceStart = TRUE;
//Forcer la création de la page dans le cache lorsque l'utilisateur a le mode saisie
$firephp->log($_SESSION,'SESSION');
if( preg_match('/saisie/i', $_SESSION['tabInfo']['droits']) || $_SESSION['tabInfo']['mode_edition']==1 ){
$cache->disable = TRUE;
}
if ( $cache->startCapture($fileName.'.html') == FALSE){
print $cache->displayCache();
}else{
$ratiosEntrep = array();
$ratiosInfos = array();
$bilansInfos = array();
$rationsEntrepEvol = array();
try {
$O = $client->getRatios($siren, 'ratios');
$bilansInfos = $O['result']['BilansInfos'];
$ratiosInfos = $O['result']['RatiosInfos'];
$ratiosEntrep = $O['result']['RatiosEntrep'];
$ratiosEntrepEvol = $O['result']['RatiosEntrepEvol'];
$ratiosSecteur = $O['result']['RatiosSecteur'];
}catch (SoapFault $fault) {
require_once 'soaperror.php';
processSoapFault($client,$fault,$tabInfo);
die();
}
//Affichage des dates par ordres décroissant
//Tri des données des tableaux en fonction des dates
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'];
}
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']];
$ratiosSecteur[$i] = $tempRatiosSecteur[$row['cle']];
$i++;
}
//Fin de tri des tableaux
require_once 'ratios/ratios.php';
$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'=>'>' ),
);
?>
<script type="text/javascript" src="./js/jquery.qtip.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$('#ratios a[tooltip]').each(function()
{
$(this).qtip( {
content: $(this).attr('tooltip'),
style: { width: 500, name: 'dark' },
position: { corner: { target: 'bottomMiddle', tooltip: 'topMiddle' } }
});
});
$('.jTip').each(function()
{
$(this).qtip(
{
content: {
text: 'Chargement...',
url: $(this).attr('rel'),
title: { text: $(this).attr('name')}
},
position: {
corner: {
target: 'leftMiddle',
tooltip: 'rightMiddle'
}
},
show: { solo: true},
style: {
tip: true,
border: { width: 1, radius: 0 },
name: 'light',
width: 400
}
})
});
});
</script>
<style>
#ratios { clear:both; font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif; font-size:12px; margin:10px 0 0 0; width:100%; text-align:left; border-collapse:collapse; }
#ratios a { color:#000000; cursor:help; }
#ratios th { padding:8px; font-weight:normal; font-size:13px; color:#039; background:#b9c9fe; }
#ratios td { padding:8px; border:1px solid #000; color:#000; }
#ratios td.center { text-align:center; }
#ratios td.italique { font-style:italic ; }
#ratios td.right { text-align:right; }
#ratios td.position { text-align:center; }
#ratios td.position a { cursor:default; }
#ratios tr.subhead td { padding:8px; background:#b9c9fe; border:1px solid #000; font-weight:bold; color:#000; }
#entete { margin:1px; }
#secteur{ margin-top:10px; }
.qtip-title {font-size:11px;}
.qtip-content {font-size:12px;}
#titreEvol {margin:0 130px;}
#imgEvol {margin:0 100px;}
</style>
<div id="center">
<h1 class="titre">RATIOS</h1>
<table width="570" border="0" align="left" bgcolor="#FFFFFF">
<tr>
<td width="30">&nbsp;</td>
<td width="200" class="StyleInfoLib">Num&eacute;ro identifiant Siren</td>
<td width="340" class="StyleInfoData"><?=substr($siren,0,3).' '.substr($siren,3,3).' '.substr($siren,6,3)?></td>
</tr>
<tr>
<td width="30">&nbsp;</td>
<td width="200" class="StyleInfoLib">Raison Sociale</td>
<td width="340" class="StyleInfoData"><?=$tabInfo['entrep']['raisonSociale'];?></td>
</tr>
</table>
<br/><br/>
<?php
if (count($ratiosEntrep)==0 || !isset($ratiosEntrep)){
?>
<table>
<tr><td width="30">&nbsp;</td><td><b>Aucun bilan disponible pour cette entreprise !</b></td></tr>
</table>
<?php
}else{
?>
<br/><br/>
<table width="570" border="0" align="left" bgcolor="#FFFFFF">
<tr>
<td width="30">&nbsp;</td>
<td width="200" class="StyleInfoLib">Secteur d'activité :</td>
<td width="340" class="StyleInfoData">
<?php print $tabInfo['entrep']['nafEn']; ?> - <?php print $tabInfo['entrep']['nafEnLib']; ?>
</td>
</tr>
<tr>
<td width="30">&nbsp;</td>
<td width="200" class="StyleInfoLib">Millesime</td>
<td width="340" class="StyleInfoData">
<form name="selectBilan" method="post" action="index.php?<?=$_SERVER['QUERY_STRING'];?>">
<select name="bilan">
<?php
$countBilans = 0;
if(count($bilansInfos)>0){
foreach($bilansInfos as $bilanItem){
if(isset($bilanItem['dateCloture'])) {
?>
<option value="<?php print $countBilans;?>"<?php if($bilan==$countBilans){ print 'selected="selected"';} ?>><?php print substr($bilanItem['dateCloture'],6,2).'/'.substr($bilanItem['dateCloture'],4,2).'/'.substr($bilanItem['dateCloture'],0,4);?></option>
<?php
}
$countBilans++;
}
}else{ print '-'; }
?>
</select>
&nbsp;<a href="javascript:document.selectBilan.submit();">Ok</a>
</form>
</td>
</tr>
<tr>
<td width="30">&nbsp;</td>
<td width="200" class="StyleInfoLib">Durée du bilan</td>
<td width="340" class="StyleInfoData">
<?php
if(isset($bilansInfos[$bilan]['dateCloture'])) {
print $bilansInfos[$bilan]['duree']; ?> mois
<?php }else{ print '-'; } ?>
</td>
</tr>
<?php
if($ratio!=''){
?>
<tr>
<td colspan="3">&nbsp;</td>
</tr>
<tr>
<td width="30">&nbsp;</td>
<td width="200" class="StyleInfoLib">Retour à la page complète</td>
<td width="340" class="StyleInfoData"><a href="/?page=ratios&siret=<?=$_REQUEST['siret']?>&idEntreprise=<?=$_REQUEST['idEntreprise']?>" title="Retour à la page complète"><img src="./img/synthese/chart_bar.png" alt="Visionner le graphique"></a></td>
</tr>
<?php
}
?>
</table>
<br/><br/>
<table id="ratios">
<tbody>
<?php print ratios_tablerow($ratiosInfos, $tabRatio, $bilan, $ratio);?>
</tbody>
</table> 
<?php
}
?>
<br/>
<?php
//Affichage du graphique associé au ratio sélectionné
if($ratio!=''){
$data = dGraph($ratio, $bilan);
?>
<div id="titreEvol"><b>Evolution</b></div>
<?php
if(count($data['data'])<=1){
print "Les informations sont insuffisantes pour générer la courbe d'évolution";
}else{
$image = ratios_graph('', $data, $fileName);
?>
<img id="imgEvol" src="./imgcache/<?=$image;?>" />
<?php
}
}
?>
</div>
<?php
}//Fin du cache
$cache->stopCapture();
?>