314 lines
11 KiB
PHP
314 lines
11 KiB
PHP
<?php
|
||
if (!$_SESSION['connected']) die();
|
||
|
||
require_once 'cache/cache.php';
|
||
require_once 'ratios/ratios.php';
|
||
|
||
$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);
|
||
|
||
$firephp->log($_REQUEST, 'REQUEST');
|
||
|
||
isset($_REQUEST['type']) ? $typeBilan=$_REQUEST['type'] : $typeBilan='' ;
|
||
isset($_REQUEST['mil']) ? $mil=$_REQUEST['mil'] : $mil='' ;
|
||
isset($_REQUEST['ratio']) ? $ratio=$_REQUEST['ratio'] : $ratio='' ;
|
||
isset($_REQUEST['type']) ? $typeBilan=$_REQUEST['type'] : $typeBilan='' ;
|
||
|
||
if (($siret*1)==0 || ($siren*1)<100){ $fileName = $page.'-'.$idEntreprise;
|
||
}else{ $fileName = $page.'-'.$siret; }
|
||
cache_filename($fileName);
|
||
if( cache_exist() && !( preg_match('/saisie/i', $_SESSION['tabInfo']['droits']) || $_SESSION['tabInfo']['mode_edition']==1 ) )
|
||
{
|
||
$bilansInfos = cache_get('bilansInfos');
|
||
$ratiosEntrep = cache_get('ratiosEntrep');
|
||
$ratiosEntrepEvol = cache_get('ratiosEntrepEvol');
|
||
$ratiosInfos = cache_get('ratiosInfos');
|
||
$ratiosSecteur = cache_get('ratiosSecteur');
|
||
}else{
|
||
try
|
||
{
|
||
$O = $client->getRatios($siren, 'bilan');
|
||
$bilansInfos = $O['result']['BilansInfos'];
|
||
$ratiosInfos = $O['result']['RatiosInfos'];
|
||
$ratiosEntrep = $O['result']['RatiosEntrep'];
|
||
$ratiosEntrepEvol = $O['result']['RatiosEntrepEvol'];
|
||
$ratiosSecteur = $O['result']['RatiosSecteur'];
|
||
$format = ratiosRatios($bilansInfos, $ratiosEntrep, $ratiosEntrepEvol, $ratiosInfos, $ratiosSecteur);
|
||
while ( list($key, $val) = each( $format ) )
|
||
{
|
||
${$key} = $val;
|
||
}
|
||
cache_delete();
|
||
cache_add('bilansInfos', $bilansInfos);
|
||
cache_add('ratiosEntrep', $ratiosEntrep);
|
||
cache_add('ratiosEntrepEvol', $ratiosEntrepEvol);
|
||
cache_add('ratiosInfos', $ratiosInfos);
|
||
cache_add('ratiosSecteur', $ratiosSecteur);
|
||
}catch (SoapFault $fault) {
|
||
require_once 'soaperror.php';
|
||
processSoapFault($client,$fault,$_SESSION['tabInfo']);
|
||
die();
|
||
}
|
||
}
|
||
|
||
$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'=>'>' ),
|
||
);
|
||
|
||
//Tableau des différents type de bilans
|
||
$typBil = array('C'=>'Consolidé', 'N'=>'', 'S'=>'Réel Simplifié', 'B'=> 'Banque', 'A'=>'Assurance');
|
||
|
||
$firephp->log($bilansInfos, 'bilansInfos');
|
||
|
||
$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'; }
|
||
}
|
||
$typeBilan = 'N';
|
||
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($ratiosInfos, $index, 1);
|
||
array_splice($ratiosEntrep, $index, 1);
|
||
array_splice($ratiosEntrepEvol, $index, 1);
|
||
$index--;
|
||
}
|
||
$index++;
|
||
}
|
||
}
|
||
|
||
//On détermine le bilan sélectionné
|
||
if($mil=='')
|
||
{
|
||
$bilan = 0;
|
||
$mil = $bilansInfos[$bilan]['typeBilan'].substr($bilansInfos[$bilan]['dateCloture'],6,2).substr($bilansInfos[$bilan]['dateCloture'],4,2).substr($bilansInfos[$bilan]['dateCloture'],0,4);
|
||
}
|
||
else
|
||
{
|
||
if(count($bilansInfos)>0)
|
||
{
|
||
$countBilans = 0;
|
||
foreach($bilansInfos as $bilanItem)
|
||
{
|
||
$millesime = $bilanItem['typeBilan'].substr($bilanItem['dateCloture'],6,2).substr($bilanItem['dateCloture'],4,2).substr($bilanItem['dateCloture'],0,4);
|
||
if($mil==$millesime)
|
||
{
|
||
$bilan = $countBilans;
|
||
break;
|
||
}
|
||
$countBilans++;
|
||
}
|
||
}
|
||
}
|
||
|
||
?>
|
||
<div id="center">
|
||
<h1 class="titre">RATIOS</h1>
|
||
|
||
<table>
|
||
<tr>
|
||
<td width="30"> </td>
|
||
<td width="200" class="StyleInfoLib">Numé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"> </td>
|
||
<td width="200" class="StyleInfoLib">Raison Sociale</td>
|
||
<td width="340" class="StyleInfoData"><?=$_SESSION['tabInfo']['entrep']['raisonSociale'];?></td>
|
||
</tr>
|
||
</table>
|
||
|
||
<?php
|
||
$firephp->log($_SESSION, 'SESSION');
|
||
if (count($ratiosEntrep)==0 || !isset($ratiosEntrep))
|
||
{
|
||
?>
|
||
<table>
|
||
<tr><td width="30"> </td><td><b>Aucun bilan disponible pour cette entreprise !</b></td></tr>
|
||
</table>
|
||
<?php
|
||
}
|
||
else
|
||
{
|
||
?>
|
||
<table>
|
||
<tr>
|
||
<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']; ?>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width="30"> </td>
|
||
<td width="200" class="StyleInfoLib">Type de bilans</td>
|
||
<td width="340" class="StyleInfoData">
|
||
Normaux
|
||
<?php
|
||
/*
|
||
if( $numBilanN>0 || $numBilanC>0 )
|
||
{
|
||
?>
|
||
<?php if($numBilanN>0 && $numBilanC>0){ ?><input type="radio" name="typeBilan" value="N" <?=($typeBilan=='N')? 'checked' : '';?>/><label>Normaux</label><?php }?>
|
||
<?php if($numBilanN>0 && $numBilanC>0){ ?><input type="radio" name="typeBilan" value="C" <?=($typeBilan=='C')? 'checked' : '';?>/><label>Consolidés</label><?php }?>
|
||
<?php if($numBilanN>0 && $numBilanC==0){ ?>Normaux<?php }?>
|
||
<?php if($numBilanN==0 && $numBilanC>0){ ?>Consolidés<?php }?>
|
||
<?php
|
||
}
|
||
*/
|
||
?>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width="30"> </td>
|
||
<td width="200" class="StyleInfoLib">Millésime</td>
|
||
<td width="340" class="StyleInfoData">
|
||
<form name="selectBilan" method="post" action="index.php?<?=$_SERVER['QUERY_STRING'];?>">
|
||
<select name="mil">
|
||
<?php
|
||
if(count($bilansInfos)>0)
|
||
{
|
||
foreach($bilansInfos as $bilanItem)
|
||
{
|
||
$millesime = '';
|
||
if(isset($bilanItem['dateCloture']))
|
||
{
|
||
$annee = substr($bilanItem['dateCloture'],6,2).substr($bilanItem['dateCloture'],4,2).substr($bilanItem['dateCloture'],0,4);
|
||
$millesime = $bilanItem['typeBilan'].$annee;
|
||
?>
|
||
<option value="index.php?page=<?=$page?>&siret=<?=$siret?>&idEntreprise=<?=$idEntreprise?>&mil=<?=$millesime?>"<?php if($mil==$millesime){ print 'selected="selected"';} ?>>
|
||
<?=substr($bilanItem['dateCloture'],6,2).'/'.substr($bilanItem['dateCloture'],4,2).'/'.substr($bilanItem['dateCloture'],0,4);?>
|
||
<?php
|
||
if( isset($typBil[$bilanItem['typeBilan']]) &&
|
||
( isset($typBil[$bilanItem['typeBilan']])!='N' || isset($typBil[$bilanItem['typeBilan']])!='') )
|
||
{
|
||
?>
|
||
<?=$typBil[$bilanItem['typeBilan']]?>
|
||
<?php
|
||
}
|
||
?>
|
||
</option>
|
||
<?php
|
||
}
|
||
}
|
||
}else{ print '-'; }
|
||
?>
|
||
</select>
|
||
</form>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width="30"> </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"> </td>
|
||
</tr>
|
||
<tr>
|
||
<td width="30"> </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>
|
||
<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>
|