extranet/application/controllers/IdentiteController.php
2012-10-24 07:57:39 +00:00

929 lines
28 KiB
PHP

<?php
class IdentiteController extends Zend_Controller_Action
{
protected $siret = null;
protected $id = 0;
public function init()
{
$request = $this->getRequest();
$this->siret = $request->getParam('siret');
$this->id = $request->getParam('id', 0);
require_once 'Scores/WsScores.php';
require_once 'Scores/SessionEntreprise.php';
require_once 'Scores/IdentiteEntreprise.php';
require_once 'common/dates.php';
$this->view->headLink()->appendStylesheet('/themes/default/styles/identite.css', 'all');
}
public function preDispatch()
{
switch($this->getRequest()->getActionName())
{
case 'fiche':
case 'fichepc':
if (intval($this->siret)==0 && $this->id==0){
$this->_forward('params', 'error');
}
break;
}
}
/**
* Renvoi vers la fiche
*/
public function indexAction()
{
$this->_forward('index', 'index');
}
/**
* Affichage de la fiche identité
*/
public function ficheAction()
{
$this->view->headScript()->appendFile('/themes/default/scripts/identite.js', 'text/javascript');
$session = new Zend_Session_Namespace('Historique');
//Modification du titre
if(empty($this->siret)){
$titre = 'Identifiant '.$this->id;
} else {
$titre = 'Siret '.$this->siret;
}
$this->view->headTitle()->append('Identité - '.$titre);
$user = new Scores_Utilisateur();
$autrePage = $this->getRequest()->getParam('apage');
//Récupération des informations
if (empty($autrePage)) {
$ws = new WsScores();
$infos = $ws->getIdentite($this->siret, $this->id);
if ($infos === false) $this->_forward('soap', 'error');
} else {
$infos = $this->getRequest()->getParam('infos');
}
//Mise en session
$session = new SessionEntreprise($this->siret, $this->id, true);
$session->setInfoEntrep($infos);
//Date de dernière mise à jour
$tabDate = array(
'DateMajINSEE' => "Insee&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : ",
'DateMajRCS' => "RCS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : ",
'DateMajBILAN' => "Bilans&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : ",
'DateMajANN' => "Annonces : ",
);
$datemajTexte = '';
foreach ( $tabDate as $dateId => $dateLib ) {
if (isset($infos->{$dateId}) && !empty($infos->{$dateId}) && $infos->{$dateId}!='0000-00-00') {
$datemajTexte.= $dateLib;
$datemajTexte.= WDate::dateT('Y-m-d', 'd/m/Y', $infos->{$dateId});
$datemajTexte.= '<br/>';
}
}
$dateDerMaj = '';
if (isset($infos->DateMajID) && !empty($infos->DateMajID) && $infos->DateMajID!='0000-00-00' && $infos->DateMajID!='0--' ){
if ( $user->checkModeEdition() ){
$datemajTexte.= "Scores & Décisions : ";
$datemajTexte.= WDate::dateT('Y-m-d', 'd/m/Y', $infos->DateMajID);
$datemajTexte.= '<br/>';
}
$dateDerMaj = ' le '.WDate::dateT('Y-m-d', 'd/m/Y', $infos->DateMajID);
}
$identite = new IdentiteEntreprise($infos);
//Définition des blocks
$blocks = array(
'Siret',
'SiretSiege',
'TvaNumero',
'Isin',
'Capitalisation',
'NumRC',
'AutreId',
'Actif',
'SituationJuridique',
'AutreSiren',
'RaisonSociale',
'NomCommercial',
'EnseigneSigle',
'FormeJuridique',
'DateImmat',
'DateCreaEn',
'DateCreaEt',
'Adresse',
'Zones',
'Tel',
'Fax',
'Web',
'Mail',
'ActiviteEn',
'ActiviteEt',
'Naf4',
'Nace',
'NatureActivite',
'SurfaceMagasin',
'OrigineFond',
'TypeExploitation',
'Saisonnalite',
'NbEtabActif',
'Capital',
'ChiffreAffaire',
'Dirigeants',
'Effectif',
'EffectifEtab'
);
$dBlock = $identite->formatBlock($blocks);
require_once 'Scores/Logo.php';
$logo = new Logo($infos->Siren, $infos->Isin);
$logoImg = array(
'label' => 'Logo',
'texte' => $logo->affiche(),
);
$this->view->assign('exportObjet', $infos);
$this->view->assign('dBlock', $dBlock);
$this->view->assign('logo', $logoImg);
$this->view->assign('dateDerMaj', $dateDerMaj);
$this->view->assign('datemajTexte', $datemajTexte);
$this->view->assign('raisonSociale', $session->getRaisonSociale());
$this->view->assign('infos', $infos);
$this->view->assign('siret', $infos->Siret);
$survDroits = array('survannonce', 'survinsee', 'survbilan', 'survscore', 'survactes', 'survdirigeants', 'survpriv');
$countSurvDroits = 0;
foreach ( $survDroits as $item ) {
if ($user->checkPerm($item)) $countSurvDroits++;
}
$this->view->assign('surveillance', $countSurvDroits);
$this->view->assign('AutrePage', $this->getRequest()->getParam('apage'));
}
/**
* Affichage de la fiche procédure collective
* Enter description here ...
*/
public function fichepcAction()
{
$this->view->headScript()->appendFile('/themes/default/scripts/identite.js', 'text/javascript');
//Vérification des permission
$user = new Scores_Utilisateur();
if(!$user->checkPerm('idprocol')){
$this->_forward('perms', 'error');
}
$siren = substr($this->siret,0,9);
//Modification du titre
if(empty($this->siret)){
$titre = 'Identifiant '.$this->id;
} else {
$titre = 'Siret '.$this->siret;
}
$this->view->headTitle()->append('Fiche procédure collective - '.$titre);
//Récupération des informations
$ws = new WsScores();
$infos = $ws->getIdentiteProcol($this->siret, $this->id);
if ($infos === false) $this->_forward('soap', 'error');
//Mise en session
$session = new SessionEntreprise($this->siret, $this->id);
$session->setInfoEntrep($infos->Identite);
//Element Fiche identite
$identite = new IdentiteEntreprise($infos->Identite);
//Définition des blocks
$blocks = array(
'Siret',
'SiretSiege',
'TvaNumero',
'Isin',
'Capitalisation',
'NumRC',
'AutreId',
'Actif',
'SituationJuridique',
'AutreSiren',
'RaisonSociale',
'EnseigneSigle',
'FormeJuridique',
'DateImmat',
'DateCreaEn',
'DateCreaEt',
'Adresse',
'Zones',
'Tel',
'Fax',
'Web',
'Mail',
'ActiviteEt',
'ActiviteEn',
'Naf4',
'Nace',
'NatureActivite',
'OrigineFond',
'TypeExploitation',
'Saisonnalite',
'NbEtabActif',
'Capital',
'ChiffreAffaire',
'Dirigeants',
'Effectif',
'EffectifEtab'
);
$dBlock = array();
foreach ($blocks as $item) {
$display = array(
'label' => method_exists($identite, 'get'.$item.'Label') ? $identite->{'get'.$item.'Label'}() : '',
'texte' => method_exists($identite, 'get'.$item.'Texte') ? $identite->{'get'.$item.'Texte'}() : '',
'titre' => method_exists($identite, 'get'.$item.'Titre') ? $identite->{'get'.$item.'Titre'}() : '',
);
$dBlock[$item] = $display;
}
require_once 'Scores/Logo.php';
$logo = new Logo($infos->Siren, $infos->Isin);
$logoImg = array(
'label' => 'Logo',
'texte' => $logo->affiche(),
);
$Identite = new stdClass();
$Identite->siret = $this->siret;
$Identite->dBlock = $dBlock;
$Identite->logo = $logo;
$Identite->AutrePage = 'fichepc';
$this->view->assign('Identite', $Identite);
//Element Fiche procédure collective
require_once 'Scores/IdentiteProcol.php';
$procol = new IdentiteProcol($infos);
$blocks = array(
'CessionOffreDate',
'CessionInvenDate',
'CessionDesc',
);
$dBlock = array();
foreach ($blocks as $item) {
$display = array(
'label' => method_exists($procol, 'get'.$item.'Label') ? $procol->{'get'.$item.'Label'}() : '',
'texte' => method_exists($procol, 'get'.$item.'Texte') ? $procol->{'get'.$item.'Texte'}() : '',
'titre' => method_exists($procol, 'get'.$item.'Titre') ? $procol->{'get'.$item.'Titre'}() : '',
);
$dBlock[$item] = $display;
}
$this->view->assign('dBlock', $dBlock);
$this->view->assign('infosProcol', $procol);
$this->view->assign('exportObjet', $infos);
$this->view->assign('infos', $infos);
$this->view->assign('siret', $this->siret);
$this->view->assign('raisonSociale', $session->getRaisonSociale());
$this->view->assign('fj', $session->getFormeJuridique());
}
/**
* Affichage de la liste des établissements
*/
public function etablissementsAction()
{
$siren = substr($this->siret,0,9);
$actif = $this->getRequest()->getParam('actif', -1);
$this->view->headTitle()->append('Liste des établissements - Siren '.$siren);
$session = new SessionEntreprise($this->siret, $this->id);
$user = new Scores_Utilisateur();
$ws = new WsScores();
$infos = $ws->getListeEtablissements($siren, $actif);
if ($infos === false) $this->_forward('soap', 'error');
$etabs = $infos->result->item;
$this->view->assign('actif', $actif);
$nbEtabActif = 0;
$nbEtabRadie = 0;
if (count($etabs)>0) {
foreach ($etabs as $i => $etab) {
if ($etab->Actif==1){
$nbEtabActif++;
} else {
$nbEtabRadie++;
}
}
}
$this->view->assign('nbEtabActif', $nbEtabActif);
$this->view->assign('nbEtabRadie', $nbEtabRadie);
$this->view->assign('siren', $siren);
$this->view->assign('siret', $this->siret);
$this->view->assign('id', $this->id);
$this->view->assign('raisonSociale', $session->getRaisonSociale());
$this->view->assign('etabs', $etabs);
$this->view->assign('exportObjet', $etabs);
// Permet de verifier si la personne a la preference d'affichage des cartes.
$this->view->assign('hasPrefCarte', $user->checkPref('cartes'));
$this->view->assign('listeEtablissement', $infos);
}
/**
* Affichage des établissements sur une carte (Google Maps)
*/
public function carteAction()
{
$siren = substr($this->siret,0,9);
$actif = $this->getRequest()->getParam('actif', -1);
$session = new SessionEntreprise($this->siret, $this->id);
$user = new Scores_Utilisateur();
$ws = new WsScores();
$infos = $ws->getListeEtablissements($siren, $actif);
if ($infos === false) $this->_forward('soap', 'error');
$etabs = $infos->result->item;
$marqueurs = array();
$j = 0;
foreach ($etabs as $i => $etab) {
if ($etab->Siege == 1) {
$type = 'Siège ';
} else {
$type = 'Etablissement ';
}
if ($etab->Actif == 1) {
$type .= 'actif';
} else {
$type .= 'inactif';
}
$type .= ' - '.$etab->NafEtabLib;
$titre = "$siren ".$etab->Nic." : $type<br/>";
if ($etab->Enseigne <> '') {
$titre .= 'Enseigne : '.$etab->Enseigne.'<br/>';
}
$texte = '';
$texte .= 'Etablissement : '.$etab->Nic.'<br/>';
$texte .= $etab->Adresse.'<br/>';
$adresse = $etab->Adresse.' ';
if ($etab->Adresse2 <> '') {
$texte .= $etab->Adresse2.'<br/>';
if (strlen(trim($adresse)) < 7) {
$adresse = $etab->Adresse2.' ';
}
}
$texte.='<b>'.$etab->CP.' '.$etab->Ville.'</b><br/>';
require_once 'Scores/classMMap.php';
$mmap = new MMap($adresse, $etab->CP, $etab->Ville);
if ($mmap->latitudeDec == '') {
continue;
}
$photo = 'http://cbk0.google.com/cbk?output=thumbnail&w=150&h=69&ll='.
$mmap->latitudeDec.','.
$mmap->longitudeDec;
$adresse .= $etab->CP.' '.$etab->Ville;
$google_map = 'http://maps.google.fr/maps?q='.urlencode($adresse);
$texte .= '<a href='.$google_map.' target=_blank>';
if ($mmap->precision >= 7 && @fopen($photo, 'r') != false) {
$texte .= '<img src='.$photo.' width=\"155\" height=\"74\" />';
} else {
$texte .= 'Afficher l\'adresse sur Google Map &copy;';
}
$texte .= '</a>';
$texte .= '<br/>';
$texte .= '<i>'.$etab->NafEtab.' : '.$etab->NafEtabLib.'</i>';
$icone = 'http://'.$_SERVER['SERVER_NAME'].'/themes/default/images/maps/'.$this->iconeDuMarqueur($etab->NafEtab, $etab->Siege, $etab->Actif);
$marqueurs[$j] = array($mmap->latitudeDec, $mmap->longitudeDec, $titre, $texte, $type, $icone);
++$j;
// if ($j >= 30) { // Limitation du nombre d'etablissements sur la carte
// break;
// }
}
if (count($marqueurs) > 1) {
$min_x = $max_x = $marqueurs[0][0];
$min_y = $max_y = $marqueurs[0][1];
for ($i = 1; $i < count($marqueurs); ++$i) {
$min_x = min($min_x, $marqueurs[$i][0]);
$max_x = max($max_x, $marqueurs[$i][0]);
$min_y = min($min_y, $marqueurs[$i][1]);
$max_y = max($max_y, $marqueurs[$i][1]);
}
}
$this->view->assign('marqueurs', $marqueurs);
$this->view->assign('min_x', $min_x);
$this->view->assign('max_x', $max_x);
$this->view->assign('min_y', $min_y);
$this->view->assign('max_y', $max_y);
}
protected function iconeDuMarqueur($naf, $siege, $actif)
{
if ($siege == 1) {
return 'siege'.$actif.'.png';
}
switch (substr($naf, 0, 2)) {
// A Agriculture, sylviculture et pêche
case '01': // Culture et production animale, chasse et services annexes
case '02': // Sylviculture et exploitation forestière
case '03': // Pêche et aquaculture
return 'tractor'.$actif.'.png';
// B Industries extractives
case '05': // Extraction de houille et de lignite
case '06': // Extraction d'hydrocarbures
case '07': // Extraction de minerais métalliques
case '08': // Aures industries extractives
case '09': // Services de soutien aux industries extractives
// C Industrie manufacturière
case '10': // Industries alimentaires
case '11': // Fabrication de boissons
case '12': // Fabrication de produits à base de tabac
case '13': // Fabrication de textiles
case '14': // Industrie de l'habillement
case '15': // Industrie du cuir et de la chaussure
case '16': // Travail du bois et fabrication d'articles en bois...
case '17': // Industrie du papier et du carton
case '18': // Imprimerie et reproduction d'enregistrements
case '19': // Cokéfaction et raffinage
case '20': // Industrie chimique
case '21': // Industrie pharmaceutique
case '22': // Fabrication de produits en caoutchouc et en plastique
case '23': // Fabrication d'autres produits minéraux non métalliques
case '24': // Métallurgie
case '25': // Fabrication de produits métalliques...
case '26': // Fabrication de produits informatiques...
case '27': // Fabrication d'équipements électriques
case '28': // Fabrication de machines et équipements n.c.a.
case '29': // Industrie automobile
case '30': // Fabrication d'autres matériels de transport
case '31': // Fabrication de meubles
case '32': // Autres industries manufacturières
case '33': // Réparation et installation de machines et d'équipements
// D Production et distribution d'électricité, de gaz, de vapeur...
case '35': // Production et distribution d'électricité, de gaz...
// E Production et distribution d'eau ; assainissement...
case '36': // Captage, traitement et distribution d'eau
case '37': // Collecte et traitement des eaux usées
case '38': // Collecte, traitement et élimination des déchets...
case '39': // Dépollution et autres services de gestion des déchets
// F Construction
case '41': // Construction de bâtiments
case '42': // Génie civil
case '43': // Travaux de construction spécialisés
return 'usine'.$actif.'.png';
// G Commerce ; réparation d'automobiles et de motocycles
case '45': // Commerce et réparation d'automobiles et de motocycles
case '46': // Commerce de gros, à l'exception des automobiles...
case '47': // Commerce de détail, à l'exception des automobiles...
return 'shop'.$actif.'.png';
// H Transports et entreposage
case '49': // Transports terrestres et transport par conduites
case '50': // Transports par eau
case '51': // Transports aériens
case '53': // Activités de poste et de courrier
return 'etab'.$actif.'.png';
case '52': // Entreposage et services auxiliaires des transports
return 'entrepot'.$actif.'.png';
// I Hébergement et restauration
case '55': // Hébergement
case '56': // Restauration
// J Information et communication
case '58': // Édition
case '59': // Production de films cinématographiques, de vidéo...
case '60': // Programmation et diffusion
case '61': // Télécommunications
case '62': // Programmation, conseil et autres activités informatiques
case '63': // Services d'information
// K Activités financières et d'assurance
case '64': // Activités des services financiers, hors assurance...
case '65': // Assurance
case '66': // Activités auxiliaires de services financiers et d'assurance
// L Activités immobilières
case '68': // Activités immobilières
// M Activités spécialisées, scientifiques et techniques
case '69': // Activités juridiques et comptables
case '70': // Activités des sièges sociaux ; conseil de gestion
case '71': // Activités d'architecture et d'ingénierie...
case '72': // Recherche-développement scientifique
case '73': // Publicité et études de marché
case '74': // Autres activités spécialisées, scientifiques et techniques
case '75': // Activités vétérinaires
// N Activités de services administratifs et de soutien
case '77': // Activités de location et location-bail
case '78': // Activités liées à l'emploi
case '79': // Activités des agences de voyage, voyagistes...
case '80': // Enquêtes et sécurité
case '81': // Services relatifs aux bâtiments et aménagement paysager
case '82': // Activités administratives et autres activités de soutien...
return 'etab'.$actif.'.png';
// O Administration publique
case '84': // Administration publique et défense ; sécurité sociale...
// P Enseignement
case '85': // Enseignement
return 'admin'.$actif.'.png';
// Q Santé humaine et action sociale
case '86': // Activités pour la santé humaine
case '87': // Hébergement médico-social et social
case '88': // Action sociale sans hébergement
// R Arts, spectacles et activités récréatives
case '90': // Activités créatives, artistiques et de spectacle
case '91': // Bibliothèques, archives, musées...
case '92': // Organisation de jeux de hasard et d'argent
case '93': // Activités sportives, récréatives et de loisirs
// S Autres activités de services
case '94': // Activités des organisations associatives
case '95': // Réparation d'ordinateurs et de biens personnels...
case '96': // Autres services personnels
// T Activités des ménages en tant qu'employeurs...
case '97': // Activités des ménages en tant qu'employeurs de personnel...
case '98': // Activités indifférenciées des ménages...
// U Activités extra-territoriales
case '99': // Activités des organisations et organismes extraterritoriaux
return 'etab'.$actif.'.png';
}
}
/**
* Affichage des liens inter-entreprise
*/
public function liensAction()
{
$siren = substr($this->siret,0,9);
$this->view->headTitle()->append('Liens inter-entreprises - Siren '.$siren);
$user = new Scores_Utilisateur();
$this->view->assign('edition', $user->checkModeEdition());
$this->view->headScript()->appendFile('/themes/default/scripts/identite.js', 'text/javascript');
$session = new SessionEntreprise($this->siret, $this->id);
$this->view->assign('siren', $siren);
$this->view->assign('siret', $this->siret);
$this->view->assign('raisonSociale', $session->getRaisonSociale());
if ( ($session->getFormeJuridique()>=1000 && $session->getFormeJuridique()<=1999)
|| ($session->getFormeJuridique()>=10 && $session->getFormeJuridique()<=19) ) {
$this->renderScript('identite/liens-personne-physique.phtml');
}
$user = new Scores_Utilisateur();
if ( $user->checkPerm('GROUPE') ) {
$this->view->assign('liengroupe', $this->view->url(array(
'controller' =>'identite',
'action' => 'groupesarbo',
'siret' => $siren
), null, true) );
}
require_once 'Scores/WsScores.php';
$ws = new WsScores();
$infos = $ws->getLiens($siren);
$actionnaires = $infos->actionnaires->item;
$participations = $infos->participations->item;
//Informations de MAJ
if(count($actionnaires)>0){
$nb = count($actionnaires)-1;
$source = $actionnaires[$nb]->Source;
$dateMaj = $actionnaires[$nb]->DateMaj;
} else if (count($participations)>0){
$nb = count($participations)-1;
$source = $participations[$nb]->Source;
$dateMaj = $participations[$nb]->DateMaj;
} else {
$source = '';
$dateLien = '';
$dateMaj = '';
}
$this->view->assign('exportObjet', $infos);
$this->view->assign('source', $source);
$this->view->assign('dateLien', $dateLien);
$this->view->assign('dateMaj', $dateMaj);
$this->view->assign('actionnaires', $actionnaires);
$this->view->assign('participations', $participations);
$this->view->assign('AutrePage', $this->getRequest()->getParam('apage'));
}
public function lienficheAction()
{
$this->_helper->layout()->disableLayout();
$request = $this->getRequest();
$id = $request->getParam('idFiche');
$ws = new WsScores();
$result = $ws->getLienRef($id);
$this->view->assign('result', $result);
}
/**
* Affichage des modifications Insee
*/
public function evenementsAction()
{
$siren = substr($this->siret,0,9);
$this->view->headTitle()->append('Evènements - Siren '.$siren);
$session = new SessionEntreprise($this->siret, $this->id);
require_once 'Scores/WsScores.php';
$ws = new WsScores();
$infos = $ws->getListeEvenements($siren);
$evens = $infos->result->item;
$this->view->assign('siren', $siren);
$this->view->assign('siret', $this->siret);
$this->view->assign('id', $this->id);
$this->view->assign('raisonSociale', $session->getRaisonSociale());
$this->view->assign('evens', $evens);
$this->view->assign('exportObjet', $evens);
}
/**
* Affichage des news
*/
public function newsAction()
{
$googleNews = true;
$nbNews = 15;
$user = new Scores_Utilisateur();
if ($user->checkPref('news'))
{
$session = new SessionEntreprise($this->siret, $this->id);
$items = array();
if ($googleNews!==false){
$url = 'http://news.google.fr/news?hl=fr&gl=fr&q='.
urlencode($session->getRaisonSociale()).'&output=rss';
$items = array();
try {
$canal = new Zend_Feed_Rss($url);
} catch (Exception $e) {
//Do nothing
}
if (count($canal)>0)
{
$i=0;
foreach ($canal as $element)
{
$items[] = $element;
$i++;
if ($i==$nbNews) break;
}
}
}
$this->view->assign('items', $items);
} else {
$this->view->assign('disable', true);
}
}
/**
* Téléchargement d'un avis de situation
*/
public function avisAction()
{
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
// ==> Start
require_once 'Scores/AvisSituation.php';
$avis = new AvisSituation($this->siret);
if (!$avis->erreur()){
$avis->erreurcpt('raz');
$body = $avis->get('pdf', 1);
if($body !== false) {
header("Pragma: public");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: must-revalidate");
header("Content-type: application/pdf");
header("Content-Length: ".strlen($body));
header('Content-disposition: inline; filename="avis-'.$this->siret.'.pdf"');
header("Accept-Ranges: ".strlen($body));
echo $body;
$ws = new WsScores();
$ws->setLog('avis_situation', $this->siret, 0, '');
} else {
$avis->erreurcpt('plus');
echo $avis->erreurmsg();
}
} else {
if ($avis->nberreur()==5){
$avis->mailerreur();
}
$avis->erreurcpt('plus');
echo $avis->erreurmsg();
}
}
public function irisAction()
{
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$request = $this->getRequest();
$codeCommune = $request->getParam('code');
// ==> Start
require_once 'Scores/Iris.php';
$iris = new Iris($codeCommune);
$body = $iris->get('pdf');
if($body !== false) {
header("Pragma: public");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: must-revalidate");
header("Content-type: application/pdf");
header("Content-Length: ".strlen($body));
header('Content-disposition: inline; filename="carte_iris_'.$codeCommune.'.pdf"');
header("Accept-Ranges: ".strlen($body));
echo $body;
} else {
echo $iris->erreur();
}
}
public function geoAction()
{
$this->view->headScript()->appendFile('/themes/default/scripts/geolocalisation.js', 'text/javascript');
$this->view->headLink()->appendStylesheet('/themes/default/styles/geolocalisation.css', 'all');
$infos = $this->getRequest()->getParam('infos');
$user = new Scores_Utilisateur();
$this->view->assign('facade', $user->checkPref('mappy'));
require_once 'Scores/Google.php';
$google = new Google();
$decLat = $google->dec2dms($infos->GeoLat);
$decLon = $google->dec2dms($infos->GeoLon);
$mapsHref = $google->getGoogleMapLink(urlencode(
$infos->AdresseNum.', '.$infos->AdresseVoie.' '.
htmlspecialchars_decode($infos->AdresseRue, ENT_QUOTES).
', '.$infos->CP.' '.$infos->Ville));
$this->view->assign('mapsHref', $mapsHref);
$this->view->assign('decLat', $decLat);
$this->view->assign('decLon', $decLon);
$this->view->assign('infos', $infos);
}
public function facadeAction()
{
require_once 'Scores/Mappy.php';
$infos = $this->getRequest()->getParam('infos');
$mappy = new Mappy();
if ($mappy->villeCouverte($infos->Ville))
{
$adresse = '';
$adresse.= $infos->AdresseNum;
//Corriger la voie pour Mappy
$adresse.= ' '.strtr($infos->AdresseVoie, array(
'R' => 'RUE',
'AV' => 'AVENUE',
'RLE' => 'RUELLE',
));
$adresse.= ' '.$infos->AdresseRue;
$adresse.= ' '.$infos->Ville;
//Définir le pays
if ($infos->Pays == '') {
$adresse.= ' FRANCE';
} else {
$adresse.= ' '.$infos->Pays;
}
$this->view->assign('adresse', $adresse);
$this->view->assign('source', 'mappy');
$this->view->assign('lienJs', $mappy->getJs());
}
else
{
require_once 'Scores/Google.php';
$google = new Google();
$googleKey = $google->getGoogleKey($_SERVER['SERVER_NAME']);
$this->view->assign('googleKey', $googleKey);
$this->view->assign('source', 'google');
$this->view->assign('infos', $infos);
}
}
public function groupesarboAction()
{
$this->_helper->layout()->disableLayout();
$siren = substr($this->siret,0,9);
require_once 'Scores/WsScores.php';
$ws = new WsScores();
$result = $ws->getGroupesArbo($siren);
if ( $result!==false ) {
$infos = json_decode($result, true);
Zend_Registry::get('firebug')->info($infos);
if (count($infos)>0) {
$structure = array();
$name = $infos['name'].' ('.$infos['siren'].')';
$structure[] = array(
'data' => $name,
'state' => 'open',
'children' => $this->groupesArboChildren($infos['children'], $siren),
);
Zend_Registry::get('firebug')->info($structure);
$this->view->assign('data', json_encode($structure));
}
}
}
public function groupesArboChildren($items, $detectSiren = '')
{
$output = array();
if ( count($items)>0 ) {
foreach ( $items as $item ) {
$name = $item['name'];
if ( intval($item['siren'])!=0 ) {
$name.= ' (<a href="'.
$this->view->url(array(
'controller'=>'identite',
'action'=>'fiche',
'siret' => $item['siren'],
), null, true)
.'">'.$item['siren'].'</a>)';
} else {
$name.= ' ('.$item['pays'].')';
}
$name.= ' - '.$item['pmin'].'%';
$structure = array(
'data' => $name,
'state' => 'open',
);
if ($item['siren']==$detectSiren) {
$structure['class'] = 'jstree-search';
}
if (count($item['children'])>0){
$structure['children'] = $this->groupesArboChildren($item['children'], $detectSiren);
} else {
$structure['children'] = array();
}
$output[] = $structure;
}
}
return $output;
}
public function groupeAction()
{
$this->view->headScript()->appendFile('/themes/default/scripts/identite.js', 'text/javascript');
$siren = substr($this->siret,0,9);
require_once 'Scores/WsScores.php';
$ws = new WsScores();
$result = $ws->getGroupeInfos($siren);
$this->view->assign('result', $result);
$this->view->assign('siren', $siren);
}
}