extranet/application/controllers/IdentiteController.php
2013-02-11 08:25:59 +00:00

1254 lines
38 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/SessionEntreprise.php';
require_once 'Scores/IdentiteEntreprise.php';
require_once 'common/dates.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()
{
$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 : ",
'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') {
$dateDerMaj = ' le '.WDate::dateT('Y-m-d', 'd/m/Y', $infos->DateMajID);
}
if ( $dateId == 'DateMajID' && !$user->checkModeEdition()) {
} else {
$datemajTexte.= '<tr>';
$datemajTexte.= '<td>'.$dateLib.'</td>';
$datemajTexte.= '<td>'.WDate::dateT('Y-m-d', 'd/m/Y', $infos->{$dateId}).'</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);
$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()
{
//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()->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()
{
$request = $this->getRequest();
$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);
$this->view->headTitle()->append('Liens inter-entreprises - Id '.$lienRef);
$identite = $ws->getLienRef($lienRef);
$this->view->assign('raisonSociale', $identite->raisonSociale);
//Define SIREN if exist
if ( intval($identite->siren)!=0 ) {
$siren = $identite->siren;
$session = new SessionEntreprise($siren, null, true);
$this->view->assign('siren', $siren);
$this->view->assign('siret', $session->getSiret());
}
Zend_Registry::get('firebug')->info($identite);
if ($identite->PpPm=='PP') {
$this->view->assign('PP', true);
}
//Get links
$infos = $ws->getLiensById($lienRef);
} else {
$siren = substr($this->siret,0,9);
$this->view->headTitle()->append('Liens inter-entreprises - Siren '.$siren);
$session = new SessionEntreprise($this->siret, $this->id);
$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);
if ($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);
}
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) );
}
}
}
Zend_Registry::get('firebug')->info($infos);
$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;
}
$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'));
}
public function lienficheAction()
{
$this->_helper->layout()->disableLayout();
$request = $this->getRequest();
$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);
$this->view->assign('result', $result);
}
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()
{
$siren = substr($this->siret,0,9);
$this->view->headTitle()->append('Evènements - Siren '.$siren);
$session = new SessionEntreprise($this->siret, $this->id);
$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()
{
$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);
$this->view->assign('siret', $siren);
$request = $this->getRequest();
$pctMin = $request->getParam('pctMin', 33);
$this->view->assign('pctMin', $pctMin);
$user = new Scores_Utilisateur();
$this->view->assign('edition', $user->checkModeEdition());
$ws = new WsScores();
$result = $ws->getGroupesArbo($siren, $pctMin);
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));
}
}
}
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()
{
$siren = substr($this->siret,0,9);
$ws = new WsScores();
$result = $ws->getGroupeInfos($siren);
$this->view->assign('result', $result);
$this->view->assign('siren', $siren);
}
}