extranet/library/Finance/OtherFunctions.lib.php
2011-06-13 07:08:16 +00:00

236 lines
15 KiB
PHP

<?php
Class OtherFunction
{
public function maskNameImg($action, $siret, $others = EOF)
{
$name = $action.'-'.$siret;
if($others != EOF) {
foreach($others as $other) {
$name .= '-'.$other;
}
}
$name .= '.png';
return ($name);
}
public function array_key_existValeur($array, $key, $valeur)
{
foreach ($array as $arrayValeur) {
foreach($arrayValeur as $arrayKey => $val) {
if($arrayKey == $key)
if($val == $valeur)
return (true);
}
}
return (false);
}
public function getReference($valeur, $reference, $annee, $synthese)
{
foreach ($synthese->BilansInfos->item as $item) {
if(substr($item->dateCloture, 0, 4) == $annee) {
foreach ($item->RatiosEntrep->item as $RatiosEntrep) {
if ($RatiosEntrep->id == $reference) {
return (round(($valeur/$RatiosEntrep->val)*100,2));
}
}
}
}
}
public function setSyntheseReference()
{
$bilanReference = array('r5' => array('evolution' => 'r6' , 'unite' => 'EUR', 'operateur' => 1000, 'name' => 'CHIFFRE D\'AFFAIRES',
'commentaires' => 'Montant total des ventes hors taxe tant sur le territoire français que hors de France.'),
'r7' => array('evolution' => 'r8' , 'unite' => 'EUR', 'operateur' => 1000, 'name' => 'RESULTAT COURANT AVANT IMPOTS',
'commentaires' => 'Bénéfice ou perte constaté avant affectation des produits ou charges exceptionnelles, déduction des impôts et participation au bénéfice. Il est égal aux :
produits d\'exploitation (notamment les sommes reçues qui relèvent de l\'activité de l\'entreprise, soit les ventes de biens, prestations de services etc..)
+ quotes-parts de résultats sur opérations faites en commun(par exemple, résultat des opérations faites par l\'intermédiaire d\'une société en participation)
+ produits financiers (intérêts courus, gains de change, revenus tirés des comptes en banque)
- charges d\'exploitation
- quotes-parts de charges sur opérations en commun
- charges financières.)'),
'r10' => array('evolution' => 'r11' , 'unite' => 'EUR', 'operateur' => 1000, 'name' => 'RESULTAT NET',
'commentaires' => 'Le résultat net comptable correspond au bénéfice ou perte de la période, mesuré par la différence entre les produits et les charges (au sens comptable) de l\'exercice. Il s\'agit du résultat courant, corrigé du résultat exceptionnel, déduction faite de l\'impôt sur le résultat et de l\'éventuelle participation des salariés. Il mesure les ressources nettes restant à l\'entreprise à l\'issue de l\'exercice.'),
'r18' => array('evolution' => 'r19' , 'unite' => 'EUR', 'operateur' => 1000, 'name' => 'FONDS PROPRES',
'commentaires' => 'La situation nette ou Fonds propres ou bien encore, capitaux propres représentent l\'argent apporté par les actionnaires à la constitution de la société ou ultérieurement, ou laissés à la disposition de la société en tant que bénéfices non distribués sous forme de dividendes. Ils courent le risque total de l\'entreprise : si celle-ci va mal, ils ne seront pas rémunérés (aucun dividende ne sera versé) ; si elle dépose son bilan, les porteurs de capitaux propres ne seront remboursés qu\'après que les créanciers l\'aient été intégralement. Si elle va très bien au contraire, tous les profits leur reviennent.'),
'r22' => array('evolution' => 'r23' , 'unite' => 'EUR', 'operateur' => 1000, 'name' => 'TOTAL BILAN',
'commentaires' => 'Le total du bilan est la somme de tous les actifs ainsi que des passifs, il caractérise la taille de l\'entreprise.
Selon le décret n° 2008-1354 du 18 décembre 2008, les critères désormais retenus pour les besoins de l\'analyse statistique et économique sont les suivants :
La catégorie des micro entreprises est constituée des entreprises qui :
* d\'une part occupent moins de 10 personnes ;
* d\'autre part ont un chiffre d\'affaires annuel ou un total de bilan n\'excédant pas 2 millions d\'euros.
La catégorie des petites et moyennes entreprises (PME) est constituée des entreprises qui :
* d\'une part occupent moins de 250 personnes ;
* d\'autre part ont un chiffre d\'affaires annuel n\'excédant pas 50 millions d\'euros ou un total de bilan n\'excédant pas 43 millions d\'euros.
La catégorie des entreprises de taille intermédiaire (ETI) est constituée des entreprises qui n\'appartiennent pas à la catégorie des petites et moyennes entreprises, et qui :
* d\'une part occupent moins de 5 000 personnes ;
* d\'autre part ont un chiffre d\'affaires annuel n\'excédant pas 1 500 millions d\'euros ou un total de bilan n\'excédant pas 2 000 millions d\'euros.
La catégorie des grandes entreprises (GE) est constituée des entreprises qui ne sont pas classées dans les catégories précédentes.'),
'r231' => array('evolution' => 'r235', 'unite' => 'EUR', 'operateur' => 1000, 'name' => 'FONDS DE ROULEMENT',
'commentaires' => 'Le fonds de roulement représente la différence entre l\'actif à court terme et le passif à court terme (dont l\'échéance est de moins de douze mois). Un fonds de roulement positif indique qu\'une entreprise a suffisamment d\'actifs liquides pour régler ses dettes et engagements à court terme (12 mois). Dans certains cas particuliers, le FDR peut être négatif et l\'entreprise viable : GSA ou autre Hypermarchés par exemple. Cette situation devenant risquée en cas de baisse du CA.'),
'r232' => array('evolution' => 'r236', 'unite' => 'EUR', 'operateur' => 1000, 'name' => 'BESOIN EN FONDS DE ROULEMENT',
'commentaires' => 'Pour les comptables, le BFR correspond aux actifs d\'exploitation (hors immobilisations et actifs financiers) diminués du montant des dettes d\'exploitation (cad aux fonds indéfiniment mobilisés). Ainsi, une entreprise dont le BFR s\'élève à 15 % de son chiffre d\'affaires requiert un besoin permanent de trésorerie représentant 15 % de son activité uniquement pour assurer la pérennité de son cycle d\'exploitation. Plus le niveau de BFR est faible (ou bien plus sa rotation est forte), plus le dégagement de liquidités est important dès lors que les marges sont positives.'),
'r249' => array('evolution' => 'r254', 'unite' => 'EUR', 'operateur' => 1000, 'name' => 'TRESORERIE',
'commentaires' => 'Trésorerie nette (FR-BFR)'),
'r24' => array('evolution' => 'r24' , 'unite' => 'Pers.', 'operateur' => 1, 'name' => 'EFFECTIF',
'commentaires' => 'La définition exacte de l\'effectif peut varier selon les sources :
DADS : effectif salarié instantané au 30 juin ;
SIRENE : effectif salarié au 31 décembre n (ou au 1er janvier n+1) ; cet effectif fait l\'objet d\'une mise à jour « de masse » au premier semestre à partir des données DADS, l\'effectif d\'une entreprise est alors la somme des effectifs de ses établissements au 31 décembre;
SUSE-FICUS : moyenne annuelle de l\'effectif salarié.
Dans un bilan c\'est la moyenne de l\'effectif de l\'exercice.')
);
return ($bilanReference);
}
public function referenceBilan($reference)
{
switch ($reference)
{
case 'actif':
$reference = array('r59' => 'Actif Immobilisé Net','r51' => 'Incorporelles',
'r52' => 'Corporelles', 'r53' => 'Financières',
'r69' => 'Actif Circulant Net', 'r60' => 'Stock et encours',
'r61' => 'Créances Clients', 'r62' => 'Autres Créances',
'r63' => 'Trésorerie Active', 'r22' => 'TOTAL ACTIF'
);
break;
case 'passif':
$reference = array('r79' => 'Ressources Propres', 'r70' => 'Fonds Propres',
'r71' => 'Provisions Risques', 'r72' => 'Comptes Courants',
'r90' => 'Ressources Externes', 'r83' => 'Dettes Financières',
'r84' => 'Dettes Fournisseurs', 'r85' => 'Dettes Fiscales',
'r86' => 'Autres Dettes', 'r87' => 'Trésorerie Passive',
'r22' => 'TOTAL PASSIF'
);
break;
case 'sig':
$reference = array('r101' => 'CHIFFRE D\'AFFAIRES HORS TAXE', 'r102' => '-Achat de marchandises, de matières premières',
'r110' => 'MARGE COMMERCIALE', 'r111' => '+Production vendue',
'r112' => '+Production immobilisée et stockée',
'r120' => 'PRODUCTION DE L\'EXERCICE',
'r121' => 'Variation de stock de marchandises et matières premières',
'r122' => 'MARGE BRUTE',
'r123' => '-Autres charges externes',
'r130' => 'VALEUR AJOUTÉE', 'r132' => 'Charges de personnel',
'r133' => '-Impôts, taxes & versements assimilés', 'r131' => '+Subventions d\'exploitation',
'r140' => 'EXCÉDENT BRUT D\'EXPLOITATION (EBE)', 'r141' => '+Autres produits d\'exploitation',
'r142' => '-Autres charges d\'exploitation', 'r143' => '+Reprise sur dotations & transferts de charges',
'r144' => '+70% Loyer de crédit bail', 'r145' => '-Dotations d\'exploitation & provisions d\'exploitation',
'r150' => 'RÉSULTAT D\'EXPLOITATION', 'r151' => '+Produits financiers',
'r152' => '+30% Loyer de crédit bail', 'r153' => '+Charges financières',
'r170' => 'RÉSULTAT COURANT AVANT IMPOTS', 'r171' => '+Produits exceptionnels',
'r172' => '-Charges exceptionnelles', 'r181' => '-Impôts sur les bénéfices',
'r182' => '-Participation salariale',
'r199' => 'RÉSULTAT NET'
);
break;
}
return ($reference);
}
/*public function formatElementForGraphiqueBilan($bilan)
{
$tb = array();
foreach ($bilan as $id => $item) {
foreach($bilan[$id]['item'] as $element) {
$tb[] = round($element*100/$bilan[$id]['item'][key($bilan['r22']['item'])],2);
}
}
return ($tb);
}*/
public function Tb($element, $reference)
{
if($element != 'NS') {
if ($element != 0 and $reference != 0) {
return (round(($element * 100) / $reference, 2));
} else {
return($element);
}
}
return (false);
}
public function ifIsHead($id)
{
$head = array('r59', 'r69', 'r22','r79', 'r90', 'r101',
'r110', 'r120', 'r122', 'r130', 'r140',
'r150', 'r170', 'r199'
);
if (in_array($id, $head))
return (true);
return (false);
}
public function createlementForGraphique($id)
{
$element = array('r51', 'r52', 'r53', 'r60', 'r61', 'r62', 'r63',
'r70', 'r71', 'r72', 'r83', 'r84', 'r85', 'r86', 'r87',
'');
if (in_array($id, $element))
return (true);
return (false);
}
public function formatElementGraphiquebilan($tb)
{
$valeur = array();
$case = 0;
for ($i =0; $i < count($tb); $i++) {
foreach ($tb as $tableau) {
while($case < count($tableau)) {
$valeur[$i][] = $tableau[$case];
break;
}
}
$case++;
}
return ($valeur);
}
public function parseUnite($unite, $valeur)
{
switch ($unite)
{
case 'EUR':
return (number_format((round($valeur)/1000), 0, '', ' '));
case '%' :
return (round($valeur));
case 'Jours':
return ($valeur);
default:
return ($valeur);
}
}
public function getSwitchFormRatios($ratio, $type, $date = false)
{
$change = false;
if(!$date) {
foreach($ratio->BilansInfos->item as $valeur) {
if ($valeur->typeBilan == $type)
return ($valeur);
}
} else {
foreach($ratio->BilansInfos->item as $valeur) {
if ($valeur->typeBilan == $type and $valeur->dateCloture == $date)
return ($valeur);
else
$change = true;
}
}
if($change) {
foreach($ratio->BilansInfos->item as $valeur) {
if ($valeur->typeBilan == $type)
return ($valeur);
}
}
}
}