extranet/application/controllers/FinanceController.php

754 lines
31 KiB
PHP
Raw Normal View History

2011-02-21 08:45:13 +00:00
<?php
2011-04-21 15:04:27 +00:00
require_once ('common/dates.php');
2011-04-26 13:39:19 +00:00
require_once ('Scores/SessionEntreprise.php');
2011-04-21 15:04:27 +00:00
require_once ('finance/synthese.lib.php');
require_once ('Scores/WsScores.php');
require_once ('ChartDirector/phpchartdir.php');
2011-04-21 15:04:27 +00:00
2011-02-21 08:45:13 +00:00
class FinanceController extends Zend_Controller_Action
2011-04-11 14:19:14 +00:00
{
2011-04-19 15:59:50 +00:00
private $ws;
2011-04-26 13:39:19 +00:00
private $entreprise;
private $dateFunction;
private $imageCachePath;
private $idSC;
2011-04-19 15:59:50 +00:00
public function init()
{
define('FIRST_POSITION', 0);
define('SECOND_POSITION', 1);
define('THREE_POSITION', 2);
$this->entreprise = new stdClass();
$this->dateFunction = new WDate();
$this->ws = new WsScores();
$entreprise = new SessionEntreprise($this->getRequest()->getParam('siret'), $this->getRequest()->getParam('id'));
$this->entreprise->nom = $entreprise->getRaisonSociale();
$this->entreprise->siret = $this->getRequest()->getParam('siret');
2011-05-04 14:18:22 +00:00
$this->entreprise->siren = substr($this->entreprise->siret,0,9);
$this->entreprise->naf = $entreprise->getNaf();
$this->imageCachePath = APPLICATION_PATH. '/../cache/pages/imgcache/';
$this->idSC = $this->getRequest()->getParam('id');
2011-05-04 14:18:22 +00:00
$this->entreprise->siren = substr($this->getRequest()->getParam('siret'), 0, 9);
$this->view->assign('dateFunction', $this->dateFunction);
$this->view->headLink()
->appendStylesheet('/themes/default/styles/finance.css', 'all');
$this->view->headScript()
->appendFile('/themes/default/scripts/finance.js', 'text/javascript');
2011-04-19 15:59:50 +00:00
}
/* --------------------------------------------------------------------------------------------------- */
/* Gestion de la synthése avec les graphiques */
/* ----------------------------------------------------------------------------------------------------*/
2011-04-19 15:59:50 +00:00
/**
2011-05-06 15:26:56 +00:00
* cette fonction gére l'affichage des données pour la synthése avec les différents graphiques.
* Il est possible de rajouter des champs dans le tableau bilanReference en respectant la synthaxe.
*/
2011-04-19 15:59:50 +00:00
public function syntheseAction()
2011-05-04 14:18:22 +00:00
{
2011-04-26 13:39:19 +00:00
$bilanN = array();
$bilanReference = array('r5' => array('evolution' => 'r6' , 'unite' => 'EUR', 'operateur' => 1000, 'name' => 'CHIFFRE D\'AFFAIRES'),
'r7' => array('evolution' => 'r8' , 'unite' => 'EUR', 'operateur' => 1000, 'name' => 'RESULTAT COURANT AVANT IMPOTS'),
'r10' => array('evolution' => 'r11' , 'unite' => 'EUR', 'operateur' => 1000, 'name' => 'RESULTAT NET'),
'r18' => array('evolution' => 'r19' , 'unite' => 'EUR', 'operateur' => 1000, 'name' => 'FONDS PROPRES'),
'r22' => array('evolution' => 'r23' , 'unite' => 'EUR', 'operateur' => 1000, 'name' => 'TOTAL BILAN'),
'r231' => array('evolution' => 'r235', 'unite' => 'EUR', 'operateur' => 1000, 'name' => 'FONDS DE ROULEMENT'),
'r232' => array('evolution' => 'r236', 'unite' => 'EUR', 'operateur' => 1000, 'name' => 'BESOIN EN FONDS DE ROULEMENT'),
'r249' => array('evolution' => 'r254', 'unite' => 'EUR', 'operateur' => 1000, 'name' => 'TRESORERIE'),
'r24' => array('evolution' => 'r24' , 'unite' => 'Pers.', 'operateur' => 1, 'name' => 'EFFECTIF')
);
$request = $this->getRequest();
$synthese = $this->ws->getRatios(substr($request->getParam('siret'), 0, 9), 'synthese');
2011-04-19 15:59:50 +00:00
foreach ($synthese->BilansInfos->item as $item) {
if ($item->typeBilan == self::getTypeSynthese()) {
foreach ($item->RatiosEntrep->item as $RatiosEntrep) {
foreach ($bilanReference as $id => $params) {
if ($RatiosEntrep->id == $id) {
$bilanN[$id]['name'] = $params['name'];
$bilanN[$id]['unite'] = $params['unite'];
if (count($bilanN[$id]['item']) <= 2) {
if (is_numeric($RatiosEntrep->val))
$valeur = number_format(($RatiosEntrep->val/$params['operateur']), 0, '', ' ');
$bilanN[$id]['item'][$item->dateCloture]['ValEntrep'] = $valeur;
}
if (!self::checkIfImageExist(self::getTypeSynthese().'-'.$id))
self::createGraphiqueSynthes($id, $synthese, self::getTypeSynthese());
}
}
}
foreach ($item->RatiosEntrepEvol->item as $RatiosEntrepEvol) {
foreach ($bilanReference as $id => $params) {
if ($RatiosEntrepEvol->id == $params['evolution']) {
if (array_key_exists($item->dateCloture, $bilanN[$id]['item']))
$bilanN[$id]['item'][$item->dateCloture]['ValEntrepEvol'] = $RatiosEntrepEvol->val;
}
}
2011-05-04 14:18:22 +00:00
}
2011-04-21 15:04:27 +00:00
}
}
foreach ($bilanN as $id => $val)
ksort($bilanN[$id]['item']);
if ($this->getRequest()->isPost())
$typeBilan = $this->getRequest()->getParam('typeBilan');
else
$typeBilan = 'N';
$this->view->assign('typeBilan', $typeBilan);
$this->view->assign('raisonSociale', $this->entreprise->nom);
2011-05-04 14:18:22 +00:00
$this->view->assign('siret', $this->entreprise->siret);
$this->view->assign('siren', $this->entreprise->siren);
$this->view->assign('synthese', $bilanN);
$this->view->assign('nameForGraphique', $bilanReference);
self::analyseSyntheseGraphique($synthese, $bilanReference);
}
/**
* Permet de determiner le type de bilan choise
* par default c'est le type N
2011-05-04 14:18:22 +00:00
*
*/
protected function getTypeSynthese()
{
$typeBilan = $this->getRequest()->getParam('typeBilan');
switch($this->getRequest()->getParam('typeBilan')) {
case 'C':
return ($typeBilan);
case 'N':
return ($typeBilan);
default:
return ('N');
}
return ('N');
}
/**
* Création des elements servant au graphique les donnée entreprise sur toutes les années.
2011-05-04 14:18:22 +00:00
*
* @param L'objet $synthese
* @param id courrent $id
* @param l'adresse du label $labelX
* @param le type de bilan C/N $type
*/
protected function createAbscisseSynthese($synthese, $id, &$labelX, $type)
{
$dataX1 = array();
foreach ($synthese->BilansInfos->item as $item) {
if ($item->typeBilan == $type) {
$labelX[] = substr($item->dateCloture, 0, 4);
foreach ($item->RatiosEntrep->item as $RatiosEntrep) {
if ($RatiosEntrep->id == $id) {
if (is_numeric($RatiosEntrep->val))
2011-05-04 14:18:22 +00:00
$dataX1[] = ($RatiosEntrep->val / 1000);
}
}
2011-05-04 14:18:22 +00:00
}
}
$labelX = array_reverse($labelX);
$dataX1 = array_reverse($dataX1);
return ($dataX1);
}
/**
* Création des graphiques pour chaque lignes de la synthése.
2011-05-04 14:18:22 +00:00
*
* @param id courrent $id
* @param l'objet $synthese
* @param le type de bilan C/N $type
*/
protected function createGraphiqueSynthes($id, $synthese, $type)
{
$labelX = array();
$labelY = array();
2011-05-04 14:18:22 +00:00
$file = $id.'.png';
$dataX1 = self::createAbscisseSynthese($synthese,$id, $labelX, $type);
$c = new XYChart(350, 250);
$c->setPlotArea(55, 10, 280, 200);
$c->yAxis->setTitle('Keuros');
$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, 0xff0000, "Entreprise");
$c->yAxis->setLabels($labelY);
$c->yAxis->setLabelStep(10);
$c->xAxis->setLabels($labelX);
$c->makeChart($this->imageCachePath.$type.'-'.$file);
}
/**
* En cours de developement
2011-05-04 14:18:22 +00:00
*
* @param unknown_type $id
* @param unknown_type $dataX
* @param unknown_type $synthese
*/
protected function getVal($id, &$dataX, $synthese)
{
$dataX = array();
foreach ($synthese->BilansInfos->item as $element){
foreach($element->RatiosEntrepEvol->item as $RatiosEntrepEvol){
if ($RatiosEntrepEvol->id == $id) {
$dataX[] = ($RatiosEntrepEvol->val == 'NS')?0:$RatiosEntrepEvol->val;
}
}
}
}
/**
* En cours de developement
2011-05-04 14:18:22 +00:00
*
* @param unknown_type $synthese
* @param unknown_type $bilanReference
*/
protected function analyseSyntheseGraphique($synthese, $bilanReference)
{
$referenceTab = array('r236', 'r235', 'r6', 'r146');
$dataX = array();
foreach($referenceTab as $id){
self::getVal($id, $dataX[$id], $synthese);
}
}
/* --------------------------------------------------------------------------------------------------- */
/* Gestion des bilans ACTIF/PASSIF/CR */
/* ----------------------------------------------------------------------------------------------------*/
2011-05-06 15:26:56 +00:00
/**
* Construit les elements des bilan en particulié les valeurs.
*
* @param objet $bilan
* @param le tableau de reference $tableauDeReference
* @param type de bilan $type
* @param date $date
* @param duree 12Mois/... $duree
* @param consolidé ou Normale (formulaire) $typebilan
*/
protected function constructElementForBilan($bilan, $tableauDeReference, &$type, &$date, &$duree, $typebilan)
2011-05-04 14:18:22 +00:00
{
foreach($bilan->BilansInfos->item as $element) {
if($element->typeBilan == $typebilan)
{
if($duree == EOF)
$duree = $element->duree;
if (@count($date) < 5) {
if(!in_array($element->dateCloture, $date))
$date[] = $element->dateCloture;
}
foreach($element->RatiosEntrep->item as $item) {
foreach($tableauDeReference as $id => $valeur) {
2011-05-04 14:18:22 +00:00
if ($item->id == $id) {
if (count($type[$id]['item']) < 5) {
if ($item->val > 0) {
$type[$id]['item'][$element->dateCloture] = $item->val / 1000;
}
2011-05-04 14:18:22 +00:00
else
$type[$id]['item'][$element->dateCloture] = 0;
}
}
2011-05-04 14:18:22 +00:00
}
}
}
}
foreach ($type as $id => $valeur) {
$type[$id]['item'] = array_reverse($valeur['item']);
}
$date = array_reverse($date);
2011-04-19 15:59:50 +00:00
}
2011-04-11 14:19:14 +00:00
2011-05-06 15:26:56 +00:00
/**
* Fonction qui affiche les bilan (actif, passif, SIG).
* Le principe est d'utiliser le mapping de données.
*
*/
public function bilanAction()
2011-04-19 15:59:50 +00:00
{
$actif = array();
$passif = array();
$SIG = array();
$date = array();
$duree = EOF;
$listeBilan = array('actif', 'passif', 'sig');
$referenceActif = array('r52' => 'Corporelles', 'r51' => 'Incorporelles',
'r59' => 'Actif Immobilisé Net', 'r53' => 'Financières',
'r69' => 'Actif Circulant Net', 'r60' => 'Stock et encours',
'r61' => 'Créances Clients', 'r62' => 'Autres Créances',
'r00' => '', 'r63' => 'Trésorerie Active',
'r22' => 'TOTAL ACTIF'
);
$referencePassif = 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'
);
$referenceSIG = array('r101' => 'CHIFFRE D\'AFFAIRES HORS TAXE', 'r102' => '-Achat de marchandises, de matières premières',
2011-05-04 14:18:22 +00:00
'r110' => 'MARGE COMMERCIALE', 'r111' => '+Production vendue',
'r112' => '+Production immobilisée et stockée',
2011-05-04 14:18:22 +00:00
'r120' => 'PRODUCTION DE L\'EXERCICE',
'r121' => 'Variation de stock de marchandises et matières premières',
2011-05-04 14:18:22 +00:00
'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',
2011-05-04 14:18:22 +00:00
'r182' => '-Participation salariale',
'r199' => 'RÉSULTAT NET'
);
$bilan = array();
$typeBilan = /*$this->getrequest()->getParam('typebilan')*/ 'C';
$bilan = $this->ws->getRatios($this->entreprise->siren, 'ratios');
self::constructElementForBilan($bilan, $referenceActif, $actif, $date, $duree, $typeBilan);
self::constructElementForBilan($bilan, $referencePassif, $passif, $date, $duree, $typeBilan);
self::constructElementForBilan($bilan, $referenceSIG, $SIG, $date, $duree, $typeBilan);
$this->view->assign('siren', $this->entreprise->siren);
$this->view->assign('raisonSociale', $this->entreprise->nom);
$this->view->assign('listeBilan', $listeBilan);
$this->view->assign('date', $date);
$this->view->assign('duree', $duree);
$this->view->assign('actif', $actif);
$this->view->assign('passif', $passif);
$this->view->assign('sig', $SIG);
}
/* --------------------------------------------------------------------------------------------------- */
/* Gestion des ratios avec les graphiques */
/* ----------------------------------------------------------------------------------------------------*/
/**
* Permet de formater correctement les données.
*
* @param type d'unite $unite
* @param la valeur a transcrire $valeur
*/
protected 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);
}
}
/**
* Permet de determiner si ont crée l'image ou s'il elle existe daja dans une periode de 8 heures MAX.
2011-05-04 14:18:22 +00:00
*
* @param nom de l'image $name
*/
protected function checkIfImageExist($name)
{
$path = APPLICATION_PATH.'/../cache/pages/imgcache/';
if (file_exists($path.$name.'.png')) {
$date = date('Ymdh', filemtime($path.$name.'.png'));
if($date + 8 > date('Ymdh'))
return (false);
else
return (true);
}
return (false);
}
/**
* Cette fonction permet de comparer les donnée entre elles pour determiner l'evolution
* positive ou négative, ( j'ai respecté les consigne apppliqué préalablement sur l'ancien Extranet.
*
* @param Objet $valeurEnt
* @param Objet $valeurSec
* @param string (le signe de comparaison) $compare
*/
protected function compareValeur($valeurEnt, $valeurSec, $compare)
{
$ecart = 1/100;
2011-04-19 15:59:50 +00:00
if( $valeurSec=='NS' || $valeurEnt == 'NS' || $valeurSec==NULL || $valeurEnt==NULL) {
return ('-');
} else if ($compare == '>') {
if (($valeurEnt + $ecart) > $valeurSec) {
$return = '<img src="/themes/default/images/finance/ratios_bon.png" />';
} elseif( ($valeurSec - ($valeurSec * $ecart)) < $valeurEnt && ($valeurSec + ($valeurSec * $ecart)) > $valeurEnt) {
$return = '-';
} else {
$return = '<img src="/themes/default/images/finance/ratios_mauvais.png" />';
}
} else if ($compare == '<') {
if (($valeurEnt + $ecart) > $valeurSec) {
$return = '<img src="/themes/default/images/finance/ratios_bon.png" />';
} elseif( ($valeurSec - ($valeurSec * $ecart)) < $valeurEnt && ($valeurSec + ($valeurSec * $ecart)) > $valeurEnt) {
$return = '-';
} else {
$return = '<img src="/themes/default/images/finance/ratios_mauvais.png" />';
}
}
return ($return);
2011-04-19 15:59:50 +00:00
}
/**
* Permet d'afficher les elements par block avec un titre.
*
* @param Le tableau de reference des ID a afficher $tableau
* @param Le nom du block en traitement $name
* @param Les elements de Ratios $element
* @param L'adresse de la variable $html
* @param l'object ratio $ratios
* @param la date du block $date
*/
protected function printElementRatio($tableau, $name, $element, &$html, $ratios, $date)
{
foreach($tableau[$name] as $row => $val) {
if ($row == $element->id) {
foreach ($ratios->RatiosInfos->item as $item) {
if ($item->id == $element->id) {
foreach ($ratios->RatiosSecteur->item as $Secteur) {
if (substr($date, 0, 4) == $Secteur->annee) {
foreach ($Secteur->liste->item as $liste) {
if ($item->id == $liste->id) {
if (!self::checkIfImageExist($liste->id))
self::createGraphique($ratios, $liste->id, $item->unite, $liste->id);
$html .= '<tr>';
$html .= '<td>'.$item->libelle.'</td>';
$html .= '<td class="right">'.self::parseUnite($item->unite, $element->val).' '.$item->unite.'</td>';
$html .= '<td class="right">'.self::parseUnite($item->unite, $liste->val).' '.$item->unite.'</td>';
$html .= '<td align="center">';
$html .= '<a name="'.$item->libelle.'" class="rTip" rel="'.$this->view->url(array('controller' => 'finance',
'action' => 'printgraph',
'idGraph' => $liste->id.'.png')).'" href="">'.self::compareValeur($element->val, $liste->val, $val).'</a>';
$html .= '</td>';
$html .= '</tr>';
}
}
}
}
}
}
}
}
}
/**
* Apelle la view avec la balise image, j'ai désactivé le layout pour un affichage spécial.
*/
public function printgraphAction()
{
$this->_helper->layout()->disableLayout();
$filename = $this->getRequest()->getParam('idGraph');
$this->view->assign('filename', $filename);
}
/**
* Permet de mettres les clefs du tableau sous forme indexé pour ChartDirector
* @param array $tableau
*/
protected function initTableau($tableau)
{
$i = 0;
foreach($tableau as $date => $valeur){
$tableau[$i] = $valeur;
unset($tableau[$date]);
$i++;
}
return ($tableau);
}
/**
* Permet de calculer avec les unité fournies ( exemple 1 000 000 = 1 000 000 / 1000 (EUR) )
*
* @param la valeur $valeur
* @param l'unité $unite
*/
protected function setUnite($valeur, $unite)
{
switch ($unite) {
case 'EUR':
return ($valeur = $valeur / 1000);
2011-04-29 10:30:26 +00:00
default:
return ($valeur);
}
}
/**
* Cette fonction permet de créer les abscisses pour les données, en l'ocurence elle gére Entreprise et Secteur
*
* @param le type de courbe $type
* @param l'unité de l'information $unite
* @param l'object ratio $ratio
* @param le tableau a formater $dataX
* @param id de l'element courant $id
* @param l'adresse du tableau de label $labelX
*/
protected function createAbscisse($type, $unite, $ratio, $dataX, $id, &$labelX = null)
{
$i = 0;
if ($type == 'RatiosEntrep') {
foreach ($ratio->BilansInfos->item as $element) {
if ($i >= 5)
break;
if (is_array($labelX))
$labelX[] = substr($element->dateCloture, 0, 4);
foreach ($element->RatiosEntrep->item as $ratioEntre) {
if ($ratioEntre->id == $id) {
$dataX[substr($element->dateCloture, 0, 4)] = self::setUnite($ratioEntre->val, $unite);$i++;
}
}
}
}
if ($type == 'RatiosSecteur') {
foreach ($ratio->RatiosSecteur->item as $element) {
if($i >= 5)
break;
foreach($element->liste->item as $item) {
if ($item->id == $id) {
$dataX[$element->annee] = self::setUnite($item->val, $unite);$i++;
}
}
}
}
if (is_array($labelX))
sort($labelX);
ksort($dataX);
$dataX = self::initTableau($dataX);
return ($dataX);
}
/**
* Cette fonction crée le graphique et le stock dans cache/imgcache.
*
* @param l'objet ratio $ratio
* @param id de l'element courant $id
* @param l'unité courante $unite
* @param l'id qui servira de nom pour l'image $filename
*/
protected function createGraphique($ratio, $id, $unite, $filename)
2011-04-19 15:59:50 +00:00
{
$labelX = array();
$labelY = array();
$dataX1 = array();
$dataX2 = array();
$file = $filename.'.png';
$dataX1 = self::createAbscisse('RatiosEntrep', $unite, $ratio, $dataX1, $id, $labelX);
$dataX2 = self::createAbscisse('RatiosSecteur', $unite, $ratio, $dataX2, $id);
$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);
$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($labelY);
$c->yAxis->setLabelStep(10);
$c->xAxis->setLabels($labelX);
$c->makeChart($this->imageCachePath.$file);
$return = '/fichier/imgcache/'.$file;
return ($return);
2011-04-19 15:59:50 +00:00
}
/**
* Gestion de l'affichage des ratios.
*/
public function ratiosAction()
{
/**
* Ont ajoute de nouveaux ratios a cette endroit
* @var unknown_type
*/
$tableau = array('EquilibreFinancier' => array('r233' => '>', 'r234' => '>', 'r237' => '>', 'r238' => '>', 'r239' => '>', 'r240' => '>'),
'Profitabilite' => array('r262' => '>', 'r263' => '>', 'r264' => '>', 'r265' => '>', 'r266' => '>'),
'Liquidite' => array('r250' => '>', 'r251' => '>', 'r252' => '>'),
'Endetement' => array('r241' => '<', 'r247' => '<', 'r248' => '<'),
'Productivite' => array('r271' => '>', 'r278' => '<', 'r279' => '<', 'r281' => '<', 'r261' => '>', 'r267' => '>')
);
$tab = array();
$siret = $this->getRequest()->getParam('siret');
$id = $this->getRequest()->getParam('id');
$i = 0;
$listeDate = array();
$request = $this->getRequest();
$date = $this->getRequest()->getParam('Date');
$type = $this->getRequest()->getParam('typeBilan');
$html = '';
$ratios = $this->ws->getRatios($this->entreprise->siren, 'ratios');
foreach($ratios->BilansInfos->item as $elements) {
$tab[$elements->dateCloture][$elements->typeBilan] = $elements;
$i++;
}
foreach ($tab as $champDate => $valeur)
$listeDate[] = $champDate;
if (isset($date)) {
if (!empty($date)) {
foreach ($tableau as $name => $valeur) {
$html .= '<tr class="subhead">
<td align="center">'.$name.'</td>
<td>Entreprise</td>
<td>Secteur</td>
<td>Position</td>
</tr>';
foreach ($tab[$date][$type]->RatiosEntrep->item as $element)
self::printElementRatio($tableau, $name, $element, $html, $ratios, $date);
}
}
}
$i = 0;
/** Gestion de la vue **/
$this->view->assign('i', $i);
$this->view->assign('html', $html);
$this->view->assign('raisonSociale', $this->entreprise->nom);
$this->view->assign('siret', $siret);
$this->view->assign('id', $id);
$this->view->assign('ratios', $tab);
$this->view->assign('naf', $this->entreprise->naf);
}
/* --------------------------------------------------------------------------------------------------- */
/* Gestion des liasses fiscales */
/* ----------------------------------------------------------------------------------------------------*/
2011-05-06 15:26:56 +00:00
/**
* Selectionne les Unité pour l'affichage des valeurs dans les liasses
*
* @param unknown_type $tab
* @param unknown_type $unite
*/
2011-04-26 13:39:19 +00:00
private function selectInUnit($tab, $unite)
{
foreach($tab as $champ => $val) {
if($val == $unite)
return ($champ);
}
return (false);
}
2011-05-06 15:26:56 +00:00
/**
* Fonction qui affhiche les liasses.
* Enter description here ...
*/
2011-04-19 15:59:50 +00:00
public function liasseAction()
{
2011-04-26 13:39:19 +00:00
$ancres = array('C' => array('actif', 'passif', 'compteDeResultat'),
'N' => array('actif', 'passif', 'compteDeResultat', 'immobilisations',
'amortissements', 'provisions', 'creancesDettes',
'affectation'),
2011-04-26 14:26:10 +00:00
'A' => array('actif', 'passif', 'compteDeResultat'),
'B' => array('actif', 'passif', 'compteDeResultat')
2011-04-26 13:39:19 +00:00
);
/** La liste des type de bilan existant **/
$liste = array ('N' => array(), 'S' => array(),
'C' => array(), 'B' => array(),
'A' => array());
2011-04-26 13:39:19 +00:00
/** Le nom des type pour le select */
$type = array ('A' => 'Assurance', 'B' => 'Banque',
'C' => 'Consolidé', 'N' => '');
/** Liste des unités que l'ont proposent **/
$unit = array ('€' => 1, 'K€' => 1000,
'M€' => 1000000);
$liasse = array ();
$date = $this->getRequest()->getParam('date');
$siret = $this->getRequest()->getParam('siret');
$id = $this->getRequest()->getParam('id');
$listBilan = $this->ws->getListeBilans($this->entreprise->siren);
2011-04-26 13:39:19 +00:00
$unite = $this->getRequest()->getParam('unit');
foreach ($listBilan->result->item as $item)
$liste[$item->typeBilan][] = $item->dateExercice;
/** ont transforme les bilan de type S en N **/
2011-04-26 13:39:19 +00:00
$NandS = array_merge($liste['N'], $liste['S']);
$liste['N'] = $NandS;unset($liste['S']);
if (!empty($date)) {
$dateAndType = explode(':', $date);
$liasses = $this->ws->getBilan($this->entreprise->siren, $dateAndType[0], $dateAndType[1], true);
2011-04-26 13:39:19 +00:00
$this->view->assign('dateCloture', $liasses->DATE_CLOTURE);
$this->view->assign('dateCloturePre', $liasses->DATE_CLOTURE_PRE);
$this->view->assign('dureesMois', $liasses->DUREE_MOIS);
$this->view->assign('dureesMoisPre', $liasses->DUREE_MOIS_PRE);
foreach ($liasses->POSTES->item as $element) {
$liasse[$element->id] =
2011-04-26 13:39:19 +00:00
number_format(($element->val > 0)?$element->val / $unite:$element->val, 0, '', ' ') .' '.self::selectInUnit($unit, $unite);
}
$t = explode(':', $date);
$this->view->assign('champType', $t[1]);
$this->view->assign('liasse', $liasse);
}
2011-04-26 13:39:19 +00:00
/** Partie vue **/
$this->view->assign('ancres', $ancres);
$this->view->assign('typeFeuille', $typeFeuille);
$this->view->assign('liste', $liste);
$this->view->assign('nomSociete', $this->entreprise->nom);
$this->view->assign('siret', $siret);
$this->view->assign('id', $id);
$this->view->assign('type', $type);
$this->view->assign('unit', $unit);
2011-04-19 15:59:50 +00:00
}
/* --------------------------------------------------------------------------------------------------- */
/* Gestion des bourses */
/* ----------------------------------------------------------------------------------------------------*/
2011-04-19 15:59:50 +00:00
public function bourseAction()
{
$this->view->assign('bourse', $bourse);
2011-04-19 15:59:50 +00:00
}
/* --------------------------------------------------------------------------------------------------- */
/* Gestion des etablissements bancaires */
/* ----------------------------------------------------------------------------------------------------*/
2011-04-19 15:59:50 +00:00
public function banqueAction()
{
}
2011-04-11 14:19:14 +00:00
}