extranet/application/controllers/IdentiteController.php

1559 lines
47 KiB
PHP

<?php
class IdentiteController extends Zend_Controller_Action
{
protected $siret = null;
protected $id = 0;
public function init()
{
$request = $this->getRequest();
$theme = Zend_Registry::get('theme');
//Get standard parameters
$this->siret = $request->getParam('siret');
$this->id = $request->getParam('id', 0);
require_once 'Scores/WsScores.php';
require_once 'Scores/IdentiteEntreprise.php';
}
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()
{
$user = new Scores_Utilisateur();
$autrePage = $this->getRequest()->getParam('apage');
//Récupération des informations
if (empty($autrePage)) {
//Modification du titre
if( empty($this->siret) ){
$titre = 'Identifiant '.$this->id;
} else {
$titre = 'Siret '.$this->siret;
}
$this->view->headTitle()->prepend('Fiche Identité - '.$titre);
$ws = new WsScores();
$infos = $ws->getIdentite($this->siret, $this->id);
if ($infos === false) {
$this->forward('soap', 'error');
}
} else {
$infos = $this->getRequest()->getParam('infos');
}
if (is_string($infos)) {
$this->view->assign('message', $infos);
} else {
//Mise en session
$session = new Scores_Session_Entreprise($this->siret, $this->id, true);
$session->setInfoEntrep($infos);
//Date de dernière mise à jour
$tabDate = array(
'DateMajINSEE' => "Insee : ",
'DateMajRCS' => "RCS : ",
'DateMajBILAN' => "Bilans : ",
'DateMajANN' => "Annonces : ",
'DateMajID' => 'Scores :'
);
$datemajTexte = $dateDerMaj = '';
$datemajTexte.= '<table>';
foreach ( $tabDate as $dateId => $dateLib ) {
if ( isset($infos->{$dateId})
&& !empty($infos->{$dateId})
&& $infos->{$dateId}!='0000-00-00') {
if ( $dateId == 'DateMajID') {
$date = new Zend_Date($infos->DateMajID, 'yyyy-MM-dd');
$dateDerMaj = $date->toString('dd/MM/yyyy');
}
if ( $dateId == 'DateMajID' && !$user->checkModeEdition()) {
} else {
$date = new Zend_Date($infos->{$dateId}, 'yyyy-MM-dd');
$datemajTexte.= '<tr>';
$datemajTexte.= '<td>'.$dateLib.'</td>';
$datemajTexte.= '<td>'.$date->toString('dd/MM/yyyy').'</td>';
$datemajTexte.= '</tr>';
}
}
}
$datemajTexte.= '</table>';
$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);
$this->view->assign('accessWorldCheck', $user->checkPerm('WORLDCHECK'));
$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
*/
public function fichepcAction()
{
//Vérification des permissions
$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()->prepend('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 Scores_Session_Entreprise($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()->prepend('Liste des établissements - Siren '.$siren);
$session = new Scores_Session_Entreprise($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 Scores_Session_Entreprise($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;
if ( count($etabs)>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.' ';
}
}
$adresse .= $etab->CP.' '.$etab->Ville;
$texte.='<b>'.$etab->CP.' '.$etab->Ville.'</b><br/>';
$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);
$marks[$j] = array(
'address' => $adresse,
'title' => $titre,
'text' => $texte,
'type' => $type,
'icon' => $icone
);
$j++;
}
}
$this->view->assign('marks', json_encode($marks));
}
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()
{
$nbMonthForRecentLien = 3;
$request = $this->getRequest();
$autrePage = $this->getRequest()->getParam('apage');
$lienRef = $request->getParam('lienref', null);
$user = new Scores_Utilisateur();
$this->view->assign('edition', $user->checkModeEdition());
$ws = new WsScores();
if ($lienRef) {
$this->view->assign('lienref', $lienRef);
if (empty($autrePage)) {
$this->view->headTitle()->prepend('Liens inter-entreprises - Id '.$lienRef);
}
$identite = $ws->getLienRef($lienRef);
$this->view->assign('raisonSociale', $identite->raisonSociale);
$this->view->assign('identification', $identite->identification);
$this->view->assign('actif', $identite->actif);
//Define SIREN if exist
if ( intval($identite->siren)!=0 ) {
$siren = $identite->siren;
$session = new Scores_Session_Entreprise($siren, null, true);
$this->view->assign('siren', $siren);
$this->view->assign('siret', $session->getSiret());
$this->view->assign('isin', $session->getIsin());
}
Zend_Registry::get('firebug')->info($identite);
if ($identite->PpPm=='PP') {
$this->view->assign('PP', true);
$this->view->assign('nom', $identite->nom);
$this->view->assign('prenom', $identite->prenom);
$this->view->assign('civilite', $identite->civilite);
$this->view->assign('naissanceDate', $identite->naissanceDate);
}
//Get links
$infos = $ws->getLiensById($lienRef);
} else {
$siren = substr($this->siret,0,9);
if (empty($autrePage)) {
$this->view->headTitle()->prepend('Liens inter-entreprises - Siren '.$siren);
}
$session = new Scores_Session_Entreprise($this->siret, $this->id);
$this->view->assign('isin', $session->getIsin());
$this->view->assign('siren', $siren);
$this->view->assign('siret', $this->siret);
$this->view->assign('raisonSociale', $session->getRaisonSociale());
//Check access to display group link
if ( $user->checkPerm('GROUPE') ) {
$this->view->assign('liengroupe', $this->view->url(array(
'controller' => 'identite',
'action' => 'groupesarbo',
'siret' => $siren
), null, true) );
}
$infos = $ws->getLiens($siren);
Zend_Registry::get('firebug')->info($infos);
if (is_string($infos) || $infos === false) $this->_forward('soap', 'error');
}
if (isset($session)) {
//Special legal form, go to other display
if ( ($session->getFormeJuridique()>=1000 && $session->getFormeJuridique()<=1999)
|| ($session->getFormeJuridique()>=10 && $session->getFormeJuridique()<=19) ) {
$this->view->assign('PP', true);
//@todo : using this function is strange - How to get the id before ?
$result = $ws->searchLienRef($siren, 'siren');
if (count($result->item)>0) {
foreach ($result->item as $item) {
$id = $item->id;
break;
}
}
$result = $ws->getLienRef($id);
$this->view->assign('nom', $result->nom);
$this->view->assign('prenom', $result->prenom);
$this->view->assign('civilite', $result->civilite);
$this->view->assign('naissanceDate', $result->naissance_Date);
}
if ( in_array($session->getFormeJuridique(), array(5488,5498,5720)) ) {
$this->view->assign('FJ1', true);
}
//Check access to display links to pdf items
if ( $user->checkPerm('ACTES') ) {
if ( $session->getFormeJuridique()>=3100 && $session->getFormeJuridique()<=3199
|| $session->getFormeJuridique()>=4000 && $session->getFormeJuridique()<=4999
|| $session->getFormeJuridique()>=5000 && $session->getFormeJuridique()<=5999
|| $session->getFormeJuridique()>=6000 && $session->getFormeJuridique()<=6999 ) {
$this->view->assign('lienStatuts', $this->view->url(array(
'controller' => 'pieces',
'action' => 'actes',
'siret' => $siren ), null, true) );
$this->view->assign('lienBilans', $this->view->url(array(
'controller' => 'pieces',
'action' => 'bilans',
'siret' => $siren ), null, true) );
}
}
}
$actionnaires = $infos->actionnaires->item;
$participations = $infos->participations->item;
$directions = $infos->directions->item;
$actionnaires = $participations = $directions = array();
if ( $infos->actionnaires->item ) {
$actionnaires = $infos->actionnaires->item;
}
if ( $infos->participations->item ) {
$participations = $infos->participations->item;
}
if ( $infos->directions->item ) {
$directions = $infos->directions->item;
}
$date = new Zend_Date();
$date->sub($nbMonthForRecentLien, Zend_Date::MONTH);
$this->view->assign('DateForRecentLien', $date);
$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('directions', $directions);
$this->view->assign('AutrePage', $this->getRequest()->getParam('apage'));
}
/**
* Fiche identite d'un lien
*/
public function lienficheAction()
{
$this->_helper->layout()->disableLayout();
$request = $this->getRequest();
//@todo :
$pays = array(
'FRA' => "France",
'AND' => "Andorre",
'ARE' => "Emirats Arabes Unis",
'AFG' => "Afghanistan",
'ATG' => "Antigua",
'AIA' => "Anguilla",
'ALB' => "Albanie",
'ARM' => "Arménie",
'ANT' => "Antilles Néerlandaises",
'AGO' => "Angola",
'ATA' => "Antarctique",
'ARG' => "Argentine",
'ASM' => "Samoa Américaines",
'AUT' => "Autriche",
'AUS' => "Australie",
'ABW' => "Aruba",
'AZE' => "Azerbaïdjan",
'BIH' => "Bosnie-Herzégovine",
'BRB' => "Barbade",
'BGD' => "Bangladesh",
'BEL' => "Belgique",
'BFA' => "Burkina Faso",
'BGR' => "Bulgarie",
'BHR' => "Bahreïn",
'BDI' => "Burundi",
'BEN' => "Bénin",
'BMU' => "Bermudes",
'BRN' => "Brunei",
'BOL' => "Bolivie",
'BRA' => "Brésil",
'BHS' => "Bahamas",
'BTN' => "Bhoutan",
'BVT' => "Iles Bouvet",
'BWA' => "Botswana",
'BLR' => "Biélorussie",
'BLZ' => "Bélize",
'CAN' => "Canada",
'CCK' => "Iles Cocos",
'CAF' => "République Centrafricaine",
'COG' => "Congo",
'CHE' => "Suisse",
'CIV' => "Côte d\'Ivoire",
'COK' => "Iles Cook",
'CHL' => "Chili",
'CMR' => "Cameroun",
'CHN' => "Chine",
'COL' => "Colombie",
'CRI' => "Costa Rica",
'CSK' => "Tchécoslovaquie",
'CUB' => "Cuba",
'CPV' => "Cap-Vert",
'CXR' => "Ile Christmas",
'CYP' => "Chypre",
'CZE' => "Rébublique Tchèque",
'DDR' => "République Démocratique Allemande",
'DEU' => "Allemagne",
'DJI' => "Djibouti",
'DNK' => "Danemark",
'DMA' => "Dominique",
'DOM' => "République Dominicaine",
'DZA' => "Algérie",
'ECU' => "Equateur",
'EST' => "Estonie",
'EGY' => "Egypte",
'ESH' => "Sahara Occidental",
'ERI' => "Eritrea",
'ESP' => "Espagne",
'ETH' => "Ethiopie",
'FIN' => "Finlande",
'FJI' => "Iles Fidji",
'FLK' => "Iles Malouines",
'FSM' => "Etats Fédérés de Micronésie",
'FRO' => "Iles Féroé",
'GAB' => "Gabon",
'GBR' => "Royaume-Uni",
'GRD' => "Grenade",
'GEO' => "Géorgie",
'GUF' => "Guinée française",
'GHA' => "Ghana",
'GIB' => "Gibraltar",
'GRL' => "Groënland",
'GMB' => "Gambie",
'GIN' => "Guinée",
'GLP' => "Guadeloupe",
'GNQ' => "Guinée Equatoriale",
'GRC' => "Grèce",
'SGS' => "Géorgie du sud & Iles Sandwich",
'GTM' => "Guatemala",
'GUM' => "Guam",
'GNB' => "Guinée-Bissau",
'GUY' => "Guyane",
'HKG' => "Hong Kong",
'HMD' => "Iles Heard et Mc Donald",
'HND' => "Honduras",
'HRV' => "Croatie",
'HTI' => "Haïti",
'HUN' => "Hongrie",
'IDN' => "Indonésie",
'IRL' => "Irlande",
'ISR' => "Israël",
'IND' => "Inde",
'IOT' => "Iles Vierges Britanniques",
'IRQ' => "Irak",
'IRN' => "Iran",
'ISL' => "Islande",
'ITA' => "Italie",
'JAM' => "Jamaïque",
'JOR' => "Jordanie",
'JPN' => "Japon",
'KEN' => "Kenya",
'KGZ' => "Kirghizistan",
'KHM' => "Cambodge",
'KIR' => "Kiribati",
'COM' => "Comores",
'KNA' => "Saint-Kitts",
'PRK' => "Corée",
'KOR' => "République de Corée",
'KWT' => "Koweït",
'CYM' => "Iles Caïman",
'KAZ' => "Kazakhstan",
'LAO' => "Laos",
'LBN' => "Liban",
'LCA' => "Sainte-Lucie",
'LIE' => "Liechtenstein",
'LKA' => "Sri Lanka",
'LBR' => "Libéria",
'LSO' => "Lesotho",
'LTU' => "Lithuanie",
'LUX' => "Luxembourg",
'LVA' => "Lettonie",
'LBY' => "Libye",
'MAR' => "Maroc",
'MCO' => "Monaco",
'MDA' => "Moldavie",
'MDG' => "Madagascar",
'MHL' => "Iles Marshall",
'MKD' => "Macédoine",
'MLI' => "Mali",
'MMR' => "Myanmar",
'MNG' => "Mongolie",
'MAC' => "Macao",
'MNP' => "Iles Mariannes",
'MTQ' => "Martinique",
'MRT' => "Mauritanie",
'MSR' => "Montserrat",
'MLT' => "Malte",
'MUS' => "Ile Maurice",
'MDV' => "Maldives",
'MWI' => "Malawi",
'MEX' => "Mexique",
'MYS' => "Malaisie",
'MOZ' => "Mozambique",
'NAM' => "Namibie",
'NCL' => "Nouvelle Calédonie",
'NER' => "Niger",
'NFK' => "Iles Norfolk",
'NGA' => "Nigeria",
'NIC' => "Nicaragua",
'NLD' => "Pays-Bas",
'NOR' => "Norvège",
'NPL' => "Népal",
'NRU' => "Nauru",
'NTZ' => "Zone Neutre",
'NIU' => "Niue",
'NZL' => "Nouvelle Zélande",
'OMN' => "Oman",
'PAN' => "Panama",
'PER' => "Pérou",
'PYF' => "Polynésie Francaise",
'PNG' => "Papouasie Nouvelle-Guinée",
'PHL' => "Philippines",
'PAK' => "Pakistan",
'POL' => "Pologne",
'SPM' => "Saint Pierre et Miquelon",
'PCN' => "Pitcairn",
'PRI' => "Porto Rico",
'PRT' => "Portugal",
'PLW' => "Palau",
'PRY' => "Paraguay",
'QAT' => "Qatar",
'REU' => "Ile de la Réunion",
'ROM' => "Roumanie",
'RUS' => "Russie",
'RWA' => "Rwanda",
'SAU' => "Arabie Saoudite",
'SLB' => "Iles Salomon",
'SYC' => "Seychelles",
'SDN' => "Soudan",
'SWE' => "Suède",
'SGP' => "Singapour",
'SHN' => "Sainte-Hélène",
'SVN' => "Slovénie",
'SJM' => "Spitsberg et lle Jan Mayen",
'SVK' => "Slovaquie",
'SLE' => "Sierra Leone",
'SMR' => "Saint-Marin",
'SEN' => "Sénégal",
'SOM' => "Somalie",
'SUR' => "Surinam",
'STP' => "São Tomé et Principe",
'SUN' => "URSS",
'SLV' => "Salvador",
'SYR' => "Syrie",
'SWZ' => "Swaziland",
'TCA' => "Iles Turques et Caïques",
'TCD' => "Tchad",
'ATF' => "Terres Australes Francaises",
'TGO' => "Togo",
'THA' => "Thaïlande",
'TJK' => "Tadjikistan",
'TKL' => "Iles Tokélaou",
'TKM' => "Turkménistan",
'TUN' => "Tunisie",
'TON' => "Tonga",
'TMP' => "Timor Oriental",
'TUR' => "Turquie",
'TTO' => "Trinité-et-Tobago",
'TUV' => "Tuvalu",
'TWN' => "Taïwan, République de Chine",
'TZA' => "Tanzanie",
'UKR' => "Ukraine",
'UGA' => "Ouganda",
'UMI' => "Iles mineures éloignées des E.U",
'USA' => "Etats Unis",
'URY' => "Uruguay",
'UZB' => "Ouzbékistan",
'VAT' => "Vatican",
'VCT' => "Saint Vincent et les Grenadines",
'VEN' => "Vénézuéla",
'VGB' => "Iles Vierges Britaniques",
'VIR' => "Iles Vierges U.S",
'VNM' => "Vietnam",
'VUT' => "Vanuatu",
'WLF' => "Wallis et Futuna",
'WSM' => "Samoa Américaines",
'XBA' => "Rép. Turque de Chypre",
'YMD' => "Yémen (République Démocratique)",
'YEM' => "Yemen",
'MYT' => "Mayotte",
'YUG' => "Yougoslavie",
'ZAF' => "Afrique du sud",
'ZMB' => "Zambie",
'ZAR' => "Zaïre",
'ZWE' => "Zimbabwe");
$this->view->assign('countries', $pays);
$user = new Scores_Utilisateur();
$this->view->assign('edition', $user->checkModeEdition());
$id = $request->getParam('idFiche');
$this->view->assign('idFiche', $id);
$ws = new WsScores();
$result = $ws->getLienRef($id);
Zend_Registry::get('firebug')->info($result);
$this->view->assign('result', $result);
$this->view->assign('idFiche', $id);
}
/**
* Documents liées à une fiche lien
*/
public function liendocAction()
{
$request = $this->getRequest();
$type = $request->getParam('type');
$id = $request->getParam('id');
if ( $type == 'Lien' ) {
$this->_helper->layout()->disableLayout();
}
$ws = new WsScores();
$docs = $ws->getLienDoc($id, $type);
$this->view->assign('docs', $docs->item);
}
/**
* Affichage des modifications Insee
*/
public function evenementsAction()
{
$request = $this->getRequest();
$siren = substr($this->siret,0,9);
$nic = $request->getParam('nic', null);
$this->view->headTitle()->prepend('Evènements - Siren '.$siren);
//Pagination
$page = $request->getParam('page', 1);
if ( $page <= 0 ) $page = 1;
$nbAffichage = 50;
$position = ($page - 1 ) * $nbAffichage;
$session = new Scores_Session_Entreprise($this->siret, $this->id);
/*
Par défaut, si on est sur un siège actif ou non, afficher tous les évènements de l'entreprise.
Si on est sur un NIC établissement actif ou radié, afficher juste les évènements de l'établissement.
*/
if ( $nic === null ) {
$this->view->assign('Entreprise', 1);
if ( strlen($this->siret) == 9 ) {
$this->view->assign('Nic', substr($session->getSiretSiege(),10,5));
} else {
$this->view->assign('Nic', substr($this->siret,10,5));
}
$nic = 0;
} else {
$this->view->assign('Entreprise', 0);
$this->view->assign('Nic', $nic);
}
$ws = new WsScores();
$infos = $ws->getListeEvenements($siren, $nic, $position, $nbReponses);
$evens = $infos->result->item;
$this->view->assign('evens', $evens);
$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('exportObjet', $evens);
//Calcul pagination
$nbReponses = count($evens);
$nbReponsesTotal = $infos->nbReponses;
if ($nbReponses < $nbReponsesTotal) {
$pageTotal = ceil( $nbReponsesTotal / $nbAffichage );
$pageCurrent = $page;
$pagePrev = $page - 1;
if ($pagePrev < 1) {
$pagePrev = 1;
}
$pageNext = $page + 1;
if( $pageNext > $pageTotal ) {
$pageNext = $pageTotal;
}
} else {
$pageTotal = $pageCurrent = 1;
}
$this->view->assign('PageTotal', $pageTotal);
$this->view->assign('PagePrev', $pagePrev);
$this->view->assign('PageNext', $pageNext);
$this->view->assign('PageCurrent', $pageCurrent);
$this->view->assign('nbReponses', empty($nbReponses) ? 0 : $nbReponses);
$this->view->assign('nbReponsesTotal', empty($nbReponsesTotal) ? 0 : $nbReponsesTotal);
}
/**
* Affichage des news
*/
public function newsAction()
{
$googleNews = true;
$nbNews = 15;
$user = new Scores_Utilisateur();
if ($user->checkPref('news'))
{
$session = new Scores_Session_Entreprise($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
$avis = new Scores_Insee_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();
}
}
/**
* Téléchargement des cartes IRIS
*/
public function irisAction()
{
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$request = $this->getRequest();
$codeCommune = $request->getParam('code');
// ==> Start
$iris = new Scores_Insee_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();
}
}
/**
* Informations géographiques
*/
public function geoAction()
{
$infos = $this->getRequest()->getParam('infos');
// Text
$google = new Scores_Google_Maps();
$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);
// Img
$user = new Scores_Utilisateur();
$this->view->assign('facade', $user->checkPref('mappy'));
require_once 'Scores/Mappy.php';
$mappy = new Mappy();
if ($mappy->villeCouverte($infos->Ville))
{
$this->view->assign('source', 'mappy');
$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('lienJs', $mappy->getJs());
}
else
{
$this->view->assign('source', 'google');
}
}
/**
* Display streetview image
*/
public function streetviewAction()
{
$request = $this->getRequest();
if ( $request->isXmlHttpRequest() ) {
$this->_helper->layout()->disableLayout();
$siret = $request->getParam('siret');
$lat = $request->getParam('lat', '');
$lon = $request->getParam('lon', '');
$address = $request->getParam('address');
} else {
$infos = $request->getParam('infos');
$siret = $infos->Siret;
$lat = $infos->GeoLat;
$lon = $infos->GeoLon;
$adresse = '';
if (intval($infos->AdresseNum)>0) {
$adresse.= intval($infos->AdresseNum).' ';
}
//Corriger la voie
$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;
}
}
$num = $request->getParam('heading', 0);
$this->view->assign('siret', $siret);
$this->view->assign('lat', $lat);
$this->view->assign('lon', $lon);
$mode = 'address';
$this->view->assign('streetviewMode', $mode);
if ( $mode == 'address' && $adresse !== null ) {
$streetview = new Scores_Google_Streetview($siret);
$streetview->setLocationTxt($adresse);
$url = $streetview->serveUrl();
$this->view->assign('url', $url);
}
if ( $mode == 'GPS' && intval($siret)>100 && $lat != '' && $lon != '' ) {
$streetview = new Scores_Google_Streetview($siret);
$deg = $streetview->getNumDeg();
$nbImg = count($deg);
$pagePrec = $num-1;
if ($pagePrec<=0) {
$pagePrec = $nbImg-1;
}
$pageSuiv = $num+1;
if($pageSuiv>=$nbImg) {
$pageSuiv = 0;
}
$this->view->assign('pagePrec', $pagePrec);
$this->view->assign('pageSuiv', $pageSuiv);
$streetview->setLocationGeo( $lat, $lon );
$heading = $deg[$num];
$streetview->setHeading($heading);
$img = $streetview->serveImg();
if ( $img!==false ) {
$url = '/fichier/streetview/'.$img;
$this->view->assign('url', $url);
}
}
}
/**
* Impression capture image arborescence du groupe
*/
public function groupesarboimgAction()
{
$request = $this->getRequest();
$siren = substr($this->siret,0,9);
$this->view->assign('siret', $siren);
$pctMin = $request->getParam('pctMin', 33);
$this->view->assign('pctMin', $pctMin);
$isin = $request->getParam('isin', 1);
$this->view->assign('isin', $isin);
if ($isin==0){
$stopAtIsin = false;
} else {
$stopAtIsin = true;
}
$user = new Scores_Utilisateur();
$this->view->assign('edition', $user->checkModeEdition());
$ws = new WsScores();
$result = $ws->getGroupesArbo($siren, $pctMin, 10, $stopAtIsin);
if ( $result!==false ) {
$infos = json_decode($result, true);
Zend_Registry::get('firebug')->info($infos);
if (count($infos)>0) {
$name = $infos['name'];
if ( $infos['siren']!='000000000' ) {
$name.= ' ('.$infos['siren'].')';
}
$structure = array();
$structure[] = array(
'data' => $name,
'state' => 'open',
'children' => $this->groupesArboChildren($infos['children'], $siren),
);
$this->view->assign('data', json_encode($structure));
}
}
}
/**
* Arborescence du groupe
*/
public function groupesarboAction()
{
$this->_helper->layout()->disableLayout();
$siren = substr($this->siret,0,9);
$this->view->assign('siret', $siren);
$request = $this->getRequest();
$pctMin = $request->getParam('pctMin', 33);
$this->view->assign('pctMin', $pctMin);
$isin = $request->getParam('isin', 1);
$this->view->assign('isin', $isin);
if ($isin==0){
$stopAtIsin = false;
} else {
$stopAtIsin = true;
}
$user = new Scores_Utilisateur();
$this->view->assign('edition', $user->checkModeEdition());
$ws = new WsScores();
$result = $ws->getGroupesArbo($siren, $pctMin, 10, $stopAtIsin);
if ( $result!==false ) {
$infos = json_decode($result, true);
Zend_Registry::get('firebug')->info($infos);
if (count($infos)>0) {
$sirenTxt = substr($infos['siren'],0,3).' '.substr($infos['siren'],3,3).' '.substr($infos['siren'],6,3);
$name = $infos['name'];
if ( $infos['siren']!='000000000' ) {
$name.= ' ('.$sirenTxt.')';
}
$structure = array();
$structure[] = array(
'data' => $name,
'state' => 'open',
'children' => $this->groupesArboChildren($infos['children'], $siren),
);
$this->view->assign('data', json_encode($structure));
}
}
}
/**
* Récursivité pour l'arborescence du groupe
* @param unknown $items
* @param string $detectSiren
* @return multitype:multitype:string multitype: multitype:multitype:string multitype: NULL
*/
public function groupesArboChildren($items, $detectSiren = '')
{
$output = array();
if ( count($items)>0 ) {
foreach ( $items as $item ) {
$sirenTxt = substr($item['siren'],0,3).' '.substr($item['siren'],3,3).' '.substr($item['siren'],6,3);
$name = $item['name'];
if ( intval($item['siren'])!=0 ) {
$name.= ' (<a href="'.$this->view->url(array(
'controller'=>'identite',
'action'=>'fiche',
'siret' => $item['siren']), null, true).'">'.$sirenTxt.'</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;
}
/**
* Groupe
*/
public function groupeAction()
{
$this->view->headTitle()->prepend("Groupe");
$this->view->headTitle()->prepend("Siret ".$this->siret);
$siren = substr($this->siret,0,9);
$ws = new WsScores();
$result = $ws->getGroupeInfos($siren);
$this->view->assign('result', $result);
$this->view->assign('siren', $siren);
}
/**
* Contact Data
*/
public function contactsAction()
{
$this->view->headTitle()->prepend("Contacts");
$this->view->headTitle()->prepend("Siret ".$this->siret);
$session = new Scores_Session_Entreprise($this->siret, $this->id);
$user = new Scores_Utilisateur();
$this->view->assign('edition', $user->checkModeEdition());
$request = $this->getRequest();
$this->view->assign('siret', $this->siret);
$siren = substr($this->siret, 0, 9);
$all = $request->getParam('get');
if ($all == 'all') {
$companyId = substr($this->siret,0,9);
$this->view->assign('all', true);
} else {
$companyId = $this->siret;
}
$filter = $request->getParam('filter');
$this->view->assign('filter', $filter);
$ws = new WsScores();
$result = $ws->getContactEt($companyId, $filter);
Zend_Registry::get('firebug')->info($result);
if ($result->nbReponses>0) {
$this->view->assign('contacts', $result->result->item);
}
$this->view->assign('raisonSociale', $session->getRaisonSociale());
$this->view->assign('siren', $siren);
}
/**
* Corporama
* Intégration en ajax du lien corporama
* Solutions de prospection et de veille entreprise
*/
public function corporamaAction()
{
$request = $this->getRequest();
$this->view->assign('siret', $this->siret);
$siren = substr($this->siret, 0, 9);
$session = new Scores_Session_Entreprise($this->siret, $this->id);
$corporamaUrl = "http://corporama.com/search?siren=".$siren."&company=".urlencode($session->getRaisonSociale())."&partner=sd268";
$this->view->assign('corporamaUrl', $corporamaUrl);
if ( $request->isXmlHttpRequest() || $request->getParam('include') ) {
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$page = file_get_contents($corporamaUrl, false);
if ($page === false) {
echo "Erreur";
}
$this->view->assign('page', $page);
}
$ws = new WsScores();
$ws->setLog('corporama', $this->siret);
}
}