'Administrateur', 'ASS'=>'Associé', 'COG'=>'Co-gérant', 'CON'=>'Contrôleur de gestion', 'DID'=>'Directeur Général Délégué', 'DIR'=>'Directeur', 'GER'=>'Gérant', 'PCS'=>'Président du Conseil de Surveillance', 'PDG'=>'Président Directeur Général', 'PP'=>'Personne Physique', 'PRD'=>'Président du directoire', 'PRE'=>'Président du Conseil d\'Administration', 'VIC'=>'Vice président du CA ou Surv.', ); private static $tabDep=array( '01'=>'Ain', '1'=>'Ain', '02'=>'Aisne', '2'=>'Aisne', '03'=>'Allier', '3'=>'Allier', '04'=>'Alpes-de-Haute-Provence', '4'=>'Alpes-de-Haute-Provence', '05'=>'Hautes-Alpes', '5'=>'Hautes-Alpes', '06'=>'Alpes-Maritimes', '6'=>'Alpes-Maritimes', '07'=>'Ardèche', '7'=>'Ardèche', '08'=>'Ardennes', '8'=>'Ardennes', '09'=>'Ariège', '9'=>'Ariège', '10'=>'Aube', '11'=>'Aude', '12'=>'Aveyron', '13'=>'Bouches-du-Rhône', '14'=>'Calvados', '15'=>'Cantal', '16'=>'Charente', '17'=>'Charente-Maritime', '18'=>'Cher', '19'=>'Corrèze', '20'=>'Corse', '2A'=>'Corse-du-Sud', '20A'=>'Corse-du-Sud', '2B'=>'Haute-Corse', '20B'=>'Haute-Corse', '21'=>'Côte-d\'Or', '22'=>'Côtes-d\'Armor', '23'=>'Creuse', '24'=>'Dordogne', '25'=>'Doubs', '26'=>'Drôme', '27'=>'Eure', '28'=>'Eure-et-Loir', '29'=>'Finistère', '30'=>'Gard', '31'=>'Haute-Garonne', '32'=>'Gers', '33'=>'Gironde', '34'=>'Hérault', '35'=>'Ille-et-Vilaine', '36'=>'Indre', '37'=>'Indre-et-Loire', '38'=>'Isère', '39'=>'Jura', '40'=>'Landes', '41'=>'Loir-et-Cher', '42'=>'Loire', '43'=>'Haute-Loire', '44'=>'Loire-Atlantique', '45'=>'Loiret', '46'=>'Lot', '47'=>'Lot-et-Garonne', '48'=>'Lozère', '49'=>'Maine-et-Loire', '50'=>'Manche', '51'=>'Marne', '52'=>'Haute-Marne', '53'=>'Mayenne', '54'=>'Meurthe-et-Moselle', '55'=>'Meuse', '56'=>'Morbihan', '57'=>'Moselle', '58'=>'Nièvre', '59'=>'Nord', '60'=>'Oise', '61'=>'Orne', '62'=>'Pas-de-Calais', '63'=>'Puy-de-Dôme', '64'=>'Pyrénées-Atlantiques', '65'=>'Hautes-Pyrénées', '66'=>'Pyrénées-Orientales', '67'=>'Bas-Rhin', '68'=>'Haut-Rhin', '69'=>'Rhône', '70'=>'Haute-Saône', '71'=>'Saône-et-Loire', '72'=>'Sarthe', '73'=>'Savoie', '74'=>'Haute-Savoie', '75'=>'Paris', '76'=>'Seine-Maritime', '77'=>'Seine-et-Marne', '78'=>'Yvelines', '79'=>'Deux-Sèvres', '80'=>'Somme', '81'=>'Tarn', '82'=>'Tarn-et-Garonne', '83'=>'Var', '84'=>'Vaucluse', '85'=>'Vendée', '86'=>'Vienne', '87'=>'Haute-Vienne', '88'=>'Vosges', '89'=>'Yonne', '90'=>'Territoire de Belfort', '91'=>'Essonne', '92'=>'Hauts-de-Seine', '93'=>'Seine-Saint-Denis', '94'=>'Val-de-Marne', '95'=>'Val-d\'Oise', '971'=>'Guadeloupe', '972'=>'Martinique', '973'=>'Guyane', '974'=>'Réunion', '975'=>'Saint-Pierre-et-Miquelon', '976'=>'Mayotte', '986'=>'Wallis-et-Futuna', '987'=>'Polynésie-Française', '988'=>'Nouvelle-Calédonie', ); /**Nature d'établissements*/ private static $tabNature = array( '20'=>'Petit magasin (moins de 300m²)', '21'=>'Magasin (de 300m² à 400m²)', '22'=>'Grande surface (de 400 à 2500m²)', '23'=>'Très grande surface (plus de 2500m²)', '91'=>'Base d\'activité sur chantiers', '92'=>'Base d\'activité sur marchés', '93'=>'Base d\'activité en clientèle', '99'=>'Autre'); /**Régions du code officiel géographique*/ private static $tabRegion = array( '1'=>'Guadeloupe', '2'=>'Martinique', '3'=>'Guyane', '4'=>'Réunion', '11'=>'Ile-de-France', '21'=>'Champagne-Ardenne', '22'=>'Picardie', '23'=>'Haute-Normandie', '24'=>'Centre', '25'=>'Basse-Normandie', '26'=>'Bourgogne', '31'=>'Nord-Pas-de-Calais', '41'=>'Lorraine', '42'=>'Alsace', '43'=>'Franche-Comté', '52'=>'Pays de la Loire', '53'=>'Bretagne', '54'=>'Poitou-Charentes', '72'=>'Aquitaine', '73'=>'Midi-Pyrénées', '74'=>'Limousin', '82'=>'Rhône-Alpes', '83'=>'Auvergne', '91'=>'Languedoc-Roussillon', '93'=>'Provence Alpes Côte d Azur', '94'=>'Corse', '98'=>'Territoire d outre-mer (TOM)', '99'=>'Etranger'); /**Tranches de Chiffre d'Affaires INSEE **/ private static $tabTCA = array( '0'=>'N/C', '1'=>'de 500 000 à 1 M€', '2'=>'de 1 à 2 M€', '3'=>'de 2 à 5 M€', '4'=>'de 5 à 10 M€', '5'=>'de 10 à 20 M€', '6'=>'de 20 à 50 M€', '7'=>'de 50 à 100 M€', '8'=>'de 100 à 200 M€', '9'=>'plus de 200 M€' ); /**Tranche d'habitants de commune détaillée*/ private static $tabTCD=array( '1'=>'Commune de moins de 50 habitants', '2'=>'Commune de 50 à 99 habitants', '3'=>'Commune de 100 à 149 habitants', '4'=>'Commune de 150 à 199 habitants', '5'=>'Commune de 200 à 249 habitants', '6'=>'Commune de 250 à 299 habitants', '7'=>'Commune de 300 à 399 habitants', '8'=>'Commune de 400 à 499 habitants', '11'=>'Commune de 500 à 699 habitants', '12'=>'Commune de 700 à 999 habitants', '13'=>'Commune de 1000 à 1499 habitants', '14'=>'Commune de 1500 à 1999 habitants', '15'=>'Commune de 2000 à 2499 habitants', '16'=>'Commune de 2500 à 2999 habitants', '17'=>'Commune de 3000 à 3999 habitants', '18'=>'Commune de 4000 à 4999 habitants', '21'=>'De 5 000 à 6 999 habitants', '22'=>'De 7 000 à 9 999 habitants', '31'=>'De 10 000 à 14 999 habitants', '32'=>'De 15 000 à 19 999 habitants', '41'=>'De 20 000 à 24 999 habitants', '42'=>'De 25 000 à 29 999 habitants', '43'=>'De 30 000 à 39 999 habitants', '44'=>'De 40 000 à 49 999 habitants', '51'=>'De 50 000 à 69 999 habitants', '52'=>'De 70 000 à 99 999 habitants', '61'=>'De 100 000 à 149 999 habitants', '62'=>'De 150 000 à 199 999 habitants', '71'=>'De 200 000 à 299 999 habitants', '72'=>'De 300 000 à 499 999 habitants', '73'=>'De 500 000 à 1 499 999 habitants', '80'=>'Plus de 1 500 000 habitants'); /**Tranches d'effectifs INSEE*/ private static $tabEffectif=array( 0=>'N/C', 1=>'de 1 à 2 salarié(s)', 2=>'de 3 à 5 salariés', 3=>'de 6 à 9 salariés', 11=>'de 10 à 19 salariés', 12=>'de 20 à 49 salariés', 21=>'de 50 à 99 salariés', 22=>'de 100 à 199 salariés', 31=>'de 200 à 249 salariés', 32=>'de 250 à 499 salariés', 41=>'de 500 à 999 salariés', 42=>'de 1 000 à 1 999 salariés', 51=>'de 2 000 à 4 999 salariés', 52=>'de 5 000 à 9 999 salariés', 53=>'plus de 10 000 salariés'); /**Libellé des singularités INSEE*/ private static $tabSingularite=array('1'=>'Propiétaire Exploitant direct', '2'=>'Locataire Gérant', '10'=>'Loueur de fonds', '30'=>'Unité singulière de première espèce: avocats assocés, stations services sous mandat..', '31'=>'Associé d\'exploitation en commun; ce groupe comprend notamment: associé de société de fait, associé d\'indivision', '33'=>'Employeur non exploitant: prestataire de personnel, gérant mandataire', '34'=>'Membre d\'une société civile professionnelle', '40'=>'Siège d\'une unité SIREN de droit privé sans activité', '41'=>'Siège d\'un organisme public sans activité', '42'=>'Siège d\'un établissement public local non doté de l\'autonomie comptable: une partie des centres communaux d\'action sociale, une partie des caisses des écoles', '43'=>'Sièges de domiciliation', '52'=>'Sans domicile fixe', '60'=>'Activité occasionnelle ou accessoire: Expert auprès des tribunaux, médecin, infirmier, pharmacien remplçant, avocat stagiaire, sportif amateur', '70'=>'Activité en location (autre que le fond de commerce): Exploitant de terrain de camping, location de garage ou parking, locations de meublés, location de terres agricoles', '80'=>'Gestion immobilière de biens propres: syndicats de copropriétaires', '90'=>'Unité singulière de seconde espèce: établissement d\'une entreprise installée à Monaco, siège à l\'etranger de sociétés, associé gérant de sociétés'); /**Libellé des origines de création INSEE*/ private static $tabOrigine=array('0'=>'non renseigné', '1'=>'Création pure', '2'=>'Réinstallation après transfert', '3'=>'Achat', '4'=>'Donation', '5'=>'Reprise au conjoint ou apport reçu', '6'=>'Reprise à un locataire gérant', '7'=>'Prise en location-gérance', '8'=>'Autre modalité d\'acquisition auprés d\'une autre unité SIREN'); private $tabCodeVoie=array(); private $tabCodesNaf=array(); private $body=''; private $codeRetour=0; private $header=array(); private $iDb; private $iDbInsee; private $iDbSD; private $iBodacc; public function __construct() { // $this->iDb=new WDB(); //$this->iDb->setCharSet('UTF-8'); // $this->iDbInsee=new WDB('insee'); //$this->iDbInsee->setCharSet('UTF-8'); // $this->iDbSD=new WDB('sdv1'); //$this->iDbSD->setCharSet('UTF-8'); $this->tabCodeVoie=$this->getTabCodeVoie(); // $this->iBodacc=new MBodacc(); } /** Test de la validité du siren demandé * @param int SIREN à tester * @param int NIC (facultatif) * @param mixed Message textuel d'erreur à afficher en cas d'erreur ou false * @return mixed true, false ou Message d'erreur passé en paramètre */ function valideSiren($siren, $nic='', $erreur=false) { $lenSIREN=strlen($siren); if (!valideData($siren, 9, 9,'N')) //Siren non précisé ou incorrect. return $erreur; else { if (!isset($nic) || trim($nic)=='') { $somme=0; for ($i=0; $i<=8; $i+=2) // Traitement IMPAIR $somme+=(integer)substr($siren,$i,1); for ($i=1; $i<=7; $i+=2) { // Traitement PAIR $var_tmp=(string)(2*((integer)substr($siren,$i,1))); $som_tmp=0; for($j=0;$jvalideSiren($siren)) return -1; elseif (!valideData($numEtab,1,4,'N')) // Nic de format incorrect. return -1; else { for ($cle=0; $cle<10; $cle++) { if ($this->valideSiren($siren, ''.$nic.''.$cle)) return $cle; } } return -1; } /** Vérifie si le n° de département est un département français valide ** @param int Numéro de département Français ** @return bool **/ public function isDepartement($dept) { return array_key_exists($dept, self::$tabDep); } /** Retourne le libellé du département si département français valide ** @param int Numéro de département Français ** @return string Libellé département **/ public function getDepartement($dept) { return self::$tabDep[$dept]; } public function getEffectifMoyen($trancheEffectif) { $trancheEffectif=$trancheEffectif*1; if ($trancheEffectif==0) return 0; elseif ($trancheEffectif==53) return 10000; else { $libEffectif=self::$tabEffectif[$trancheEffectif]; $tabTmp=explode('à', $libEffectif); $eff_min=trim(str_replace(' ','', $tabTmp[0])); $tabTmp=explode('salari', $tabTmp[1]); $eff_max=trim(str_replace(' ','', $tabTmp[0])); return floor(($eff_min+$eff_max)/2); } } /** Retourne le code forme juridique d'une entreprise. ** @param int Numéro de SIREN (9 chiffres) ou SIRET (14 chiffres) ** @return string Forme Juridique sur 4 caractères ou falseen cas d'erreur ou si inexistant **/ function getFJInsee($siren_siret) { $len=strlen($siren_siret); if ($len==9) $siren=$siren_siret; elseif ($len==14) $siren=$siren_siret; else return false; $rep=$this->iDb->select('identite', 'CJ', "SIREN='$siren'"); return $rep[0][0]; } /** * Enter description here... * * @param unknown_type $raisonSociale * @param unknown_type $adresse * @param unknown_type $codePostal * @param unknown_type $ville * @param unknown_type $siege * @param unknown_type $nbRep * @param unknown_type $pertinence * @param bool $uniquementAvecSiren * @return unknown */ public function rechercheEtab($raisonSociale, $adresse='', $codePostal='', $ville='', $siege='', $actif='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $uniquementAvecSiren='') { debugLog('I',"rechercheEtab de $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); // $raisonSociale=trim(strtoupper(trimAccent($raisonSociale))); //)("/^(scp |s c p |me )/i", '', // $adresse=trim(/*strtr(*/strtoupper(trimAccent($adresse))/*, array('RUE '=>''))*/); //$raisonSociale=$raisonSociale)); //)("/^(scp |s c p |me )/i", '', //$raisonSociale=strtr(strtolower($raisonSociale), 'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ', // 'aaaaaaaceeeeiiiionooooouuuuyy'); $raisonSociale=trim(strtoupper(trimAccent($raisonSociale))); $tabAdr=$this->structureVoie(strtoupper($adresse)); /* [num] => 6 [typeVoie] => R [libVoie] => RONDELET */ $numAdresse=$tabAdr['num']*1; $adresse=trimAccent($tabAdr['libVoie']); $ville=trim(strtoupper(trimAccent($ville))); //)("/^(scp |s c p |me )/i", '', $tabFiltres=$tabFiltresCP=array(); if (trim($codePostal)<>'' && ($codePostal*1)>0) { $cp=$codePostal*1; $dep=false; if ($cp>0 && $cp<96) { $dep=$cp; $cp=false; } elseif ($cp>970 && $cp<977) { $dep=$cp; $cp=false; } elseif ($cp>999 && $cp<10000) { $dep='0'.substr($cp,0,1); $cp='0'.$cp; } elseif ($cp>=10000 && $cp<96000) $dep=substr($cp,0,2); elseif ($cp>=99000) { $dep=substr($cp,0,3); $cp=false; } elseif ($cp>=98000) { $dep=substr($cp,0,3); $cp=false; } elseif ($cp>=97100 && $cp<97700) $dep=substr($cp,0,3); else $cp=false; if (isset($cp) && $cp) $tabFiltresCP=array('adr_cp'=>$cp); elseif (isset($dep) && $dep) $tabFiltresCP=array('adr_dep'=>$dep); } if ($siege==true) $tabFiltresSiege=array('siege'=>1); else $tabFiltresSiege=array(); if ($actif==true) $tabFiltresActif=array('actif'=>1); else $tabFiltresActif=array(); if ($numAdresse>0) $tabFiltresNumAdr=array('adr_num'=>$numAdresse); else { $tabFiltresNumAdr=array(); $numAdresse=''; } if ($uniquementAvecSiren==true) $tabFiltresAvecSiren=array('sirenValide'=>1); // elseif ($uniquementAvecSiren==false) $tabFiltresAvecSiren=array('sirenValide'=>0); else $tabFiltresAvecSiren=array(); debugLog('I',"Je recherche avec tous les filtres $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); $ret=search('etab', "@nom $raisonSociale @adresse $adresse @ville $ville", array_merge($tabFiltresCP, $tabFiltresSiege, $tabFiltresActif, $tabFiltresNumAdr, $tabFiltresAvecSiren), $deb, $nbRep, $maxRep, $pertinence); $liste=$ret['results']; $nbTot=$ret['nbTot']; $duree=$ret['duration']; //$liste=search('etab', $raisonSociale.' '.$adresse.' '.$ville, array_merge($tabFiltresCP, $tabFiltresSiege, $tabFiltresActif, $tabFiltresNumAdr), $deb, $nbRep, $maxRep, $pertinence); if ($liste===false) die(); if (count($liste)==0) { // echo "Je recherche dans le Département entier\n"; debugLog('I',"Je recherche dans le Département entier $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); if (isset($dep) && $dep) $tabFiltresCP=array('adr_dep'=>$dep); $ret=search('etab', $raisonSociale.' '.$adresse.' '.$ville, array_merge($tabFiltresCP, $tabFiltresSiege, $tabFiltresActif, $tabFiltresNumAdr, $tabFiltresAvecSiren), $deb, $nbRep, $maxRep, $pertinence); $liste=$ret['results']; $nbTot=$ret['nbTot']; $duree=$ret['duration']; } if (count($liste)==0) { debugLog('I',"Je recherche en soundex dans le CP $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); // echo "Je recherche en soundex dans le CP\n"; if (isset($cp) && $cp) $tabFiltresCP=array('adr_cp'=>$cp); $ret=search('etab_shx', $raisonSociale.' '.$adresse.' '.$ville, array_merge($tabFiltresCP, $tabFiltresSiege, $tabFiltresActif, $tabFiltresNumAdr, $tabFiltresAvecSiren), $deb, $nbRep, $maxRep, $pertinence); $liste=$ret['results']; $nbTot=$ret['nbTot']; $duree=$ret['duration']; } if (count($liste)==0) { // echo "Je recherche en soundex dans le département entier\n"; debugLog('I',"Je recherche en soundex dans le département entier $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); if (isset($dep) && $dep) $tabFiltresCP=array('adr_dep'=>$dep); $ret=search('etab_shx', $raisonSociale.' '.$adresse.' '.$ville, array_merge($tabFiltresCP, $tabFiltresSiege, $tabFiltresActif, $tabFiltresNumAdr, $tabFiltresAvecSiren), $deb, $nbRep, $maxRep, $pertinence); $liste=$ret['results']; $nbTot=$ret['nbTot']; $duree=$ret['duration']; } $tabRet=array(); $tabMotsRsIn=explode(' ', $raisonSociale); $tabMotsAdrIn=explode(' ', $adresse); $tabMotsVilleIn=explode(' ', $ville); $k=0; $rsOK=$adrOK=$vilOK=true; //$nbTot=count($liste); foreach ($liste as $n=>$etab) { //print_r($etab); //die(); /* if ($raisonSociale<>'') { $tabMotsRSout=explode(' ', $etab['Nom'].' '.$etab['Nom2'].' '.$etab['Sigle'].' '.$etab['Enseigne']); $rsOK=false; foreach ($tabMotsRSout as $motOut) { foreach ($tabMotsRsIn as $motIn) { if (strlen($motOut)>=3 && strlen($motIn)>=3) { $levMin=levenshtein($motOut, $motIn); if ($levMin<5) { $rsOK=true; break(2); } } } } } if ($adresse<>'') { $tabMotsAdrOut=explode(' ', $adresse); $adrOK=false; foreach ($tabMotsAdrOut as $motOut) { foreach ($tabMotsAdrIn as $motIn) { if (strlen($motOut)>=3 && strlen($motIn)>=3) { $levMin=levenshtein($motOut, $motIn); if ($levMin<5) { $adrOK=true; break(2); } } } } } if ($adresse<>'' && $numAdresse>0) { $adrOK=false; $tabTmp=explode(' ', $etab['Adresse']); $numAdresseIn=$tabTmp[0]*1; if ($numAdresseIn==$numAdresse) $adrOK=true; // die($adresse.' '.$codePostal.' '.$ville); } if ($ville<>'') { $tabMotsVilleOut=explode(' ', $ville); $vilOK=false; foreach ($tabMotsVilleOut as $motOut) { foreach ($tabMotsVilleIn as $motIn) { if (strlen($motOut)>=3 && strlen($motIn)>=3) { $levMin=levenshtein($motOut, $motIn); if ($levMin<5) { $vilOK=true; break(2); } } } } } if ($rsOK && $adrOK && $vilOK) {*/ $tabRet[]=array( 'id'=>$etab['id'], 'Pertinence'=>$etab['Pertinence'], 'Siret'=>$etab['Siret'], 'Siege'=>$etab['Siege'], 'Nom'=>$etab['Nom'], 'Nom2'=>$etab['Nom2'], 'Sigle'=>$etab['Sigle'], 'Enseigne'=>$etab['Enseigne'], 'Adresse'=>$etab['Adresse'], 'CP'=>$etab['CP'], 'Ville'=>$etab['Ville'], 'Tel'=>$etab['Tel'], 'Fax'=>$etab['Fax'], 'FJ'=>$etab['FJ'], 'FJLib'=>$this->getLibelleFJ($etab['FJ']), 'Siren'=>$etab['Siren'], 'Nic'=>$etab['Nic'], 'Actif'=>$etab['Actif'], 'NafEtab'=>$etab['NafEtab'], // Etablissement 'NafEtabLib'=>$this->getLibelleNaf($etab['NafEtab']), // Etablissement 'NafEnt'=>$etab['NafEnt'], // Entreprise 'NafEntLib'=>$this->getLibelleNaf($etab['NafEnt']), ); $k++; // if ($k==$nbRep) break; } return array( 'criteres'=>array('rs'=>$raisonSociale, 'adresse'=>trim($numAdresse.' '.$adresse), 'cp'=>$codePostal, 'ville'=>$ville,), 'nbReponses'=>count($tabRet), 'nbReponsesTotal'=>$nbTot, 'duree'=>$duree, 'reponses'=>$tabRet); } public function rechercheDir($nom, $prenom='', $fonction='', $dateNaiss='', $villeNaiss='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false) { debugLog('I',"rechercheDir de $nom, $prenom, $fonction, $dateNaiss, $villeNaiss (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); $nom=trim(strtoupper(trimAccent($nom))); $prenom=trim(strtoupper(trimAccent($prenom))); //$dirDateNaiss JJ/MM/AAAA $tabFiltresMois=$tabFiltresAnnee=array(); if ($dateNaiss<>'' && $dateNaiss<>'//' && $dateNaiss<>'0/0/0') { $tabDateNaiss=explode('/', $dateNaiss); $mois =$tabDateNaiss[1]*1; if ($mois>0 && $mois<12) $tabFiltresMois=array('naiss_mois'=>$mois); $annee=$tabDateNaiss[2]*1; if ($annee<100) $annee=('19'.$annee)*1; if ($annee>=1900 && $annee<=date('Y')*1) $tabFiltresAnnee=array('naiss_annee'=>$annee); } $dateNaiss=preg_replace('/^00/','0', "0$mois/$annee"); $dateNaiss=preg_replace('/^0\//','', $dateNaiss); /* $dateNaiss=preg_replace('/\/0$/','', $dateNaiss); */ //$ret=search('dirigeants', $nom.' '.$prenom, array(), $deb, $nbRep, $maxRep, $pertinence); $ret=search('dirigeants_rncs', "@nom $nom @prenom $prenom @naissance_lieu $villeNaiss", array_merge($tabFiltresMois, $tabFiltresAnnee), $deb, $nbRep, $maxRep, $pertinence); //=search('etab', $raisonSociale.' '.$adresse.' '.$ville, array_merge($tabFiltresCP, $tabFiltresSiege, $tabFiltresActif, $tabFiltresNumAdr), $deb, $nbRep, $maxRep, $pertinence); //print_r($ret);die(); $liste=$ret['results']; $nbTot=$ret['nbTot']; $duree=$ret['duration']; if (count($liste)==0) { debugLog('I',"rechercheDir en soundex de $nom, $prenom, $fonction, $dateNaiss, $villeNaiss (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); //$ret=search('dirigeants_shx', $nom.' '.$prenom, array(), $deb, $nbRep, $maxRep, $pertinence); $ret=search('dirigeants_rncs_shx', "@nom $nom @prenom $prenom @naissance_lieu $villeNaiss", array_merge($tabFiltresMois, $tabFiltresAnnee), $deb, $nbRep, $maxRep, $pertinence); $liste=$ret['results']; $nbTot=$ret['nbTot']; $duree=$ret['duration']; } $tabRet=array(); $tabMotsNomIn=explode(' ', $nom); $tabMotsPrenomIn=explode(' ', $prenom); $k=0; // $nomOK=$prenomOK=true; // $nbTot=count($liste); foreach ($liste as $n=>$etab) { /* if ($nom<>'') { $tabMotsNomOut=explode(' ', $etab['nomD'].' '.$etab['nomUsage'].' '.$etab['rs']); $nomOK=false; foreach ($tabMotsNomOut as $motOut) { foreach ($tabMotsNomIn as $motIn) { if (strlen($motOut)>=3 && strlen($motIn)>=3) { $levMin=levenshtein($motOut, $motIn); if ($levMin<5) { $nomOK=true; break(2); } } } } } if ($prenom<>'') { $tabMotsPrenomOut=explode(' ', $etab['prenom']); $prenomOK=false; foreach ($tabMotsPrenomOut as $motOut) { foreach ($tabMotsPrenomIn as $motIn) { if (strlen($motOut)>=3 && strlen($motIn)>=3) { $levMin=levenshtein($motOut, $motIn); if ($levMin<5) { $prenomOK=true; break(2); } } } } } if ($nomOK && $prenomOK) {*/ $tabRet[]=array( 'id'=>$etab['id'], 'Pertinence'=>$etab['Pertinence'], 'Siret'=>$etab['Siret'], 'Siege'=>$etab['Siege'], 'Nom'=>$etab['Nom'], 'Nom2'=>$etab['Nom2'], 'Sigle'=>$etab['Sigle'], 'Enseigne'=>$etab['Enseigne'], 'Adresse'=>$etab['Adresse'], 'CP'=>$etab['CP'], 'Ville'=>$etab['Ville'], 'Tel'=>$etab['Tel'], 'Fax'=>$etab['Fax'], 'FJ'=>$etab['FJ'], 'FJLib'=>$this->getLibelleFJ($etab['FJ']), 'Siren'=>$etab['Siren'], 'Nic'=>$etab['Nic'], 'Actif'=>$etab['Actif'], 'NafEtab'=>$etab['NafEtab'], // Etablissement 'NafEtabLib'=>$this->getLibelleNaf($etab['NafEtab']), // Etablissement 'NafEnt'=>$etab['NafEnt'], // Entreprise 'NafEntLib'=>$this->getLibelleNaf($etab['NafEnt']), // Dirigeant 'DirRs'=>$etab['rs'], 'DirNom'=>$etab['nomD'], 'DirPrenom'=>$etab['prenom'], 'DirNomUsage'=>$etab['nomUsage'], 'DirDateEffet'=>$etab['dateEffet'], 'DirFonction'=>$etab['fonction'], 'DirDepart'=>$etab['depart'], ); $k++; //if ($k==$nbRep) break; //} } return array( 'criteres'=>array('nom'=>$nom, 'prenom'=>$prenom, 'dateNaissance'=>$dateNaiss, 'lieuNaissance'=>$villeNaiss), 'nbReponses'=>count($tabRet), 'nbReponsesTotal'=>$nbTot, 'duree'=>$duree, 'reponses'=>$tabRet); } private function getTabCodeVoie() { $row = 1; $handle = fopen(realpath(dirname(__FILE__) . '/voies.csv'), 'r'); if (!$handle) die('Impossible d\'ouvrir le fichier de configuration des voies INSEE'); $tabTmp=array(); while (($data = fgetcsv($handle, 1000, ';')) !== FALSE) if (substr($data[0],0,1)<>'#') // Ligne en commentaires CSV $tabTmp[$data[0]]=$data[1]; fclose($handle); return $tabTmp; } /** Vérifie si le code voie est une abréviation autorisée (selon la Norme AFNOR XP Z 10-011) ** @param string Code voie ** @return bool **/ public function isCodeVoie($codeVoie) { return array_key_exists($codeVoie, $this->tabCodeVoie); } /** Retourne le libellé du code voie selon les abréviations autorisées pour les types de voie (Norme AFNOR XP Z 10-011) ** @param string Code voie ** @return string Libellé de la voie **/ public function getCodeVoie($codeVoie) { return $this->tabCodeVoie[$codeVoie]; } /** Initialise la table des codes NAF 4 et 5 positions **/ private function setTabCodesNaf() { if (count($this->tabCodesNaf)==0) { $tabNafs=array(); $tabTmp=$this->iDb->select( 'tabNaf4', 'codNaf700 AS naf, libNaf700 AS LibNaf', 1, true, MYSQL_ASSOC); foreach ($tabTmp as $i=>$tabNaf) $tabNafs[$tabNaf['naf']]=$tabNaf['LibNaf']; $tabTmp=$this->iDb->select( 'tabNaf5', 'codNaf5 AS naf, libNaf5 AS LibNaf', 1, true, MYSQL_ASSOC); foreach ($tabTmp as $i=>$tabNaf) $tabNafs[$tabNaf['naf']]=$tabNaf['LibNaf']; $this->tabCodesNaf=$tabNafs; } } public function getLibelleNaf($code_naf) { $this->setTabCodesNaf(); return $this->tabCodesNaf[$code_naf]; } public function getLibelleFJ($code_forme_juridique) { $tmp=$this->iDb->select( 'tabFJur', 'libelle AS LibFJ', "code=$code_forme_juridique"); return @$tmp[0][0]; } /** Découpe une ligne d'adresse textuelle en un tableau contenant les différentes composantes de l'adresse **
Array (
	 **      [adrComp0] => Maison des associations
	 **      [num]      => 33
	 **      [typeVoie] => R
	 **      [libVoie]  => Louis Blanc
	 **      [cp]		=> ... 
	 **      [ville]	=> ... Si contenu dans l'adresse
	 ** )
** ** @param string $strLigneDAdresse La ligne d'adresse textuelle (ex : Maison des associations, 33 rue Louis Blanc ** @return array tableau contenant l'adresse structurée ici **/ public function structureVoie($strLigneDAdresse) { $tabRet=$tabAdr=array(); $strLigneDAdresse=trim($strLigneDAdresse); if ($strLigneDAdresse=='') return $tabRet; $tabLignes=explode(',', preg_replace('/,$/', '', $strLigneDAdresse)); foreach ($tabLignes as $strLigneDAdresse) { $strLigneDAdresse=trimAccent($strLigneDAdresse); $strLigneDAdresse=preg_replace('/[^0-9a-zA-Z]/', ' ', $strLigneDAdresse); $strLigneDAdresse=trim(preg_replace('/ +/', ' ', $strLigneDAdresse)); //echo "1. Adresse nettoyées = $strLigneDAdresse".EOL; $adrAvecCP=preg_match("/(.*)([0-9]{5,5}|[0-9][0-9] [0-9]{3,3})([\D]*)/", $strLigneDAdresse, $tabAdrTmp); if ($adrAvecCP) { //echo "Adresse avec Code Postal\n"; //print_r($tabAdrTmp); $strLigneDAdresse=trim($tabAdrTmp[1]); $tabRet['cp']=$tabAdrTmp[2]; $tabRet['ville']=trim(strtoupper($tabAdrTmp[3])); }// else echo "Adresse sans Code Postal\n"; $adrAvecNum=preg_match("/^([0-9]{1,4})(.*)/", $strLigneDAdresse, $tabAdrTmp); if ($adrAvecNum) { //echo "Adresse avec Numéro de voie\n"; //print_r($tabAdrTmp); $tabRet['num']=$tabAdrTmp[1]; if (preg_match("/^( B | BIS | T | TER | Q | a | c | d | e | f | g | h | i | j | k | l | m | n | o | p | r | s )(.*)/i", $tabAdrTmp[2], $tabAdrTmp2)) { //echo "Adresse avec Bis, Ter, Q...\n"; //print_r($tabAdrTmp2); $tabRet['indRep']=trim($tabAdrTmp2[1]); $typeVoie=trim($tabAdrTmp2[2]);} else $typeVoie=trim($tabAdrTmp[2]); } else $typeVoie=trim($strLigneDAdresse); // On récupère le type de voie si possible et le libellé de la voie $voieTrouvee=false; foreach ($this->tabCodeVoie as $code=>$voie) { if (preg_match("/^($voie |$voie".'s '."|$code )(.*)/i", $typeVoie, $tabAdrTmp)) { //echo "Adresse avec type de voie\n"; //print_r($tabAdrTmp); $tabRet['typeVoie']=$code; $tabRet['libVoie']=trim(strtoupper($tabAdrTmp[2])); $voieTrouvee=true; break; } } if (!$voieTrouvee) $tabAdr[]=$typeVoie; } foreach ($tabAdr as $k=>$ligne) $tabRet['adrComp'.$k]=trim(strtoupper($ligne)); if (!isset($tabRet['libVoie'])) { $tabRet['libVoie']=strtoupper($ligne); unset($tabRet['adrComp'.$k]); } /** Si indRep=r et pas de voie ==> correction **/ if ($tabRet['indRep']=='r' && $tabRet['typeVoie']=='') { $tabRet['indRep']=''; $tabRet['typeVoie']='R'; } return $tabRet; } public function getEtablissements($siren, $nic='', $deb=0, $nbRep=20, $maxRep=200) { $this->setTabCodesNaf(); $deb=$deb*1; $nbRep=$nbRep*1; $limit="LIMIT $deb, $nbRep"; if ($nic=='') { $tabTmp=$this->iDb->select('etablissements', 'count(*)', "siren=$siren"); $nbTot=$tabTmp[0][0]; $listeEtab=$this->iDb->select('etablissements e', "'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ". "e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ". "e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep,". "CONCAT(e.siren, e.nic) as siret, e.actif", "e.siren=$siren ORDER BY e.siege DESC, e.actif DESC $limit", true, MYSQL_ASSOC); } else { $listeEtab=$this->iDb->select('etablissements e', "'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ". "e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ". "e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep,". "CONCAT(e.siren, e.nic) as siret, e.actif", "siren=$siren AND (nic=$nic OR siege=1) ORDER BY e.siege , e.actif DESC $limit", true, MYSQL_ASSOC); $nbTot=count($listeEtab); } foreach ($listeEtab as $etab) { $tabRet[]=array( 'Localisation'=>$etab['Loc'], 'id'=>$etab['id'], 'Pertinence'=>100, 'Siret'=>$etab['siret'], 'Siege'=>$etab['siege'], 'Nom'=>$etab['raisonSociale'], 'Sigle'=>$etab['sigle'], 'Enseigne'=>$etab['enseigne'], 'Adresse'=>trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '. $etab['adr_typeVoie'] .' '. $etab['adr_libVoie']))), 'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])), 'CP'=>$etab['adr_cp'], 'Ville'=>$etab['adr_ville'], 'Tel'=>$etab['tel'], 'Fax'=>$etab['fax'], 'FJ'=>$etab['cj'], 'FJLib'=>$this->getLibelleFJ($etab['cj']), 'Siren'=>$etab['siren'], 'Nic'=>$etab['nic'], 'Actif'=>$etab['actif'], 'NafEtab'=>$etab['ape_etab'], // Etablissement 'NafEnt'=>$etab['ape_entrep'], // Entreprise 'NafEtabLib'=>$this->getLibelleNaf($etab['ape_etab']), 'NafEntLib' =>$this->getLibelleNaf($etab['ape_entrep']), ); } return array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic), 'nbReponses'=>count($tabRet), 'nbReponsesTotal'=>$nbTot, 'reponses'=>$tabRet); } public function getEtablissementsParId($typeId, $id, $deb=0, $nbRep=20, $maxRep=200) { $this->setTabCodesNaf(); $deb=$deb*1; $nbRep=$nbRep*1; $limit="LIMIT $deb, $nbRep"; if ($typeId=='TEL') { debugLog('I',"Recherche par TEL de $id avec un maximum de $nbRep réponses",__LINE__,__FILE__, __FUNCTION__, __CLASS__); $tabTmp=$this->iDb->select('etablissements', 'count(*)', "TEL=$id OR FAX=$id"); $nbTot=$tabTmp[0][0]; $listeEtab=$this->iDb->select('etablissements e', "'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ". "e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ". "e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep,". "CONCAT(e.siren, e.nic) as siret, e.actif", "TEL=$id OR FAX=$id ORDER BY e.siege DESC, e.actif DESC $limit", false, MYSQL_ASSOC); } elseif ($typeId=='AUTRE') { $tabTmp=$this->iDb->select('etablissements', 'count(*)', "autre_id='$id'"); $nbTot=$tabTmp[0][0]; $listeEtab=$this->iDb->select('etablissements e', "'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ". "e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ". "e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep,". "CONCAT(e.siren, e.nic) as siret, e.actif", "autre_id='$id' ORDER BY siege DESC $limit", false, MYSQL_ASSOC); } foreach ($listeEtab as $etab) { $tabRet[]=array( 'Localisation'=>$etab['Loc'], 'id'=>$etab['id'], 'Pertinence'=>100, 'Siret'=>$etab['siret'], 'Siege'=>$etab['siege'], 'Nom'=>$etab['raisonSociale'], 'Sigle'=>$etab['sigle'], 'Enseigne'=>$etab['enseigne'], 'Adresse'=>trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '. $etab['adr_typeVoie'] .' '. $etab['adr_libVoie']))), 'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])), 'CP'=>$etab['adr_cp'], 'Ville'=>$etab['adr_ville'], 'Tel'=>$etab['tel'], 'Fax'=>$etab['fax'], 'FJ'=>$etab['cj'], 'FJLib'=>$this->getLibelleFJ($etab['cj']), 'Siren'=>$etab['siren'], 'Nic'=>$etab['nic'], 'Actif'=>$etab['actif'], 'NafEtab'=>$etab['ape_etab'], // Etablissement 'NafEnt'=>$etab['ape_entrep'], // Entreprise 'NafEtabLib'=>$this->getLibelleNaf($etab['ape_etab']), 'NafEntLib' =>$this->getLibelleNaf($etab['ape_entrep']), ); } return array( 'criteres'=>array('autreId'=>$id), 'nbReponses'=>count($tabRet), 'nbReponsesTotal'=>$nbTot, 'reponses'=>$tabRet); } /** Retourne juste si un siren existe ** ** @param integer $siren ** @return bool **/ function sirenExiste($siren) { $siren=$siren*1; $listeEtab=$this->iDb->select('etablissements', 'id', "siren=$siren LIMIT 0,1", false, MYSQL_ASSOC); if (@count($etabs)>0) return true; return false; } /** Retourne la liste des devise ** ** @param string $codeDevise Code ISO devise ** @return Devise ou liste des devises (si pas de code ISO en entrée) **/ function getDevises($codeIso='') { if (trim($codeIso)<>'') $strWhere="devIso='$codeIso'"; else $strWhere='1'; $liste=$this->iDb->select('tabDevises', 'devIso, devNom', $strWhere, false, MYSQL_ASSOC); $tabRet=array(); foreach ($liste as $ligne) $tabRet[$ligne['devIso']]=$ligne['devNom']; return $tabRet; } /** Retourne la liste des mandataires/administrateurs d'un ou plusieurs cours d'appel ** ** @param array $arrIdCA Id S&D de la cour d'appel ** @param bool $condense Par défaut retourne un tableau concatenant Nom, prenom, adresse complète ** @return Liste des Mandataires/Administrateurs de la cours d'appel **/ function getMandataires($arrIdCA=array(), $condense=true) { if (count($arrIdCA)>0) $strIdCA='AND coursAppel in ('.implode(',', $arrIdCA).')'; else $strIdCA=''; if (!$condense) $fields='id,sirenGrp,sirenMand,Nom,Prenom,type,tribunal,Statut,adresse,adresseComp,cp,ville,tel,fax,email,web,contact'; else $fields="id, CONCAT(Nom,' ',Prenom,' ',adresse,' ',adresseComp,' ',cp,' ',ville) as Mand"; $liste=$this->iDb->select('tabMandataires', $fields, "1 $strIdCA ORDER BY sirenGrp", true, MYSQL_ASSOC); $tabRet=array(); if (!$condense) foreach ($liste as $ligne) $tabRet[]=$ligne; else foreach ($liste as $ligne) $tabRet[$ligne['id']]=preg_replace('/ +/',' ',$ligne['Mand']); return $tabRet; } /** Retourne l'identite Textuelle d'un mandataires/administrateurs ** ** @param integer $idMand Id S&d du mandataire ** @return string Mandataire **/ function getMandatairesParId($idMand) { $liste=$this->iDb->select('tabMandataires', "CONCAT(Nom,' ',Prenom,' ',adresse,' ',adresseComp,' ',cp,' ',ville) as Mand", "id=$idMand", false); return $liste[0][0]; } function getNaf4($siren, $nic=0, $id=0) { $tabRet=array(); $siren=$siren*1; if ($siren==0) return false; $nic=$nic*1; $id=$id*1; /*if ($id>0 && $siren==0) $where=" id=$id "; else*/if ($nic<>0) $where=" siren=$siren AND nic=$nic "; else $where=" siren=$siren AND siege=1 "; $insee=$this->iDbInsee->select('bascule', 'siren, nic, apen5, apen4, apet5, apet4', $where, false, MYSQL_ASSOC); $tabRet=$insee[0]; $tabRet['apen4_lib']=$this->getLibelleNaf($tabRet['apen4']); $tabRet['apet4_lib']=$this->getLibelleNaf($tabRet['apet4']); return $tabRet; } function getIdentiteEntreprise($siren, $nic=0, $id=0, $forceVerif=false) { $siren=$siren*1; $nic=$nic*1; $id=$id*1; if ($id>0 && $siren==0) $where=" id=$id "; elseif ($nic<>0) $where=" siren=$siren AND nic=$nic "; else $where=" siren=$siren AND siege=1 "; $listeEtab=$this->iDb->select('etablissements e', "e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, e.autre_id, ". "e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ". "e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, ". "CONCAT(e.siren, e.nic) as siret, e.actif", "$where ORDER BY siege DESC, actif DESC $limit", false, MYSQL_ASSOC); $etab=@$listeEtab[0]; if ($siren<>0) { $info=$this->iDb->select('infos_entrep', 'raisonSociale, isin, nscrl, tel, fax, web, mail, latitude, longitude, precis, dateCreation, dateFermeture, naf, naf_lib, ca, effectif, nbEtab, activite', "siren=$siren", false, MYSQL_ASSOC); $tab=$info[0]; $insee=$this->iDbInsee->select('identite', 'CONCAT(SIREN,NIC)', "SIREN=$siren AND SIEGE=1 ORDER BY ACTIF%10 DESC, NIC DESC",false); $siretSiege=$insee[0][0]; } if ($nic>0) $strNic="AND NIC=$nic"; else $strNic='AND SIEGE=1'; if ($siren<>0) { $insee=$this->iDbInsee->select('identite', 'ACTIF%10 AS ACTIF, NOM, NOM2, SIGLE, ENSEIGNE, ADR_NUMVOIE, ADR_BTQ, ADR_TYPVOIE, ADR_LIBVOIE, ADR_LIBCOM, ADR_CP, ADR_COMP, ADR_DISTSP, PAYS, DCREN, SIEGE, AUXILT, SAISONAT, CJ, CIVILITE, NBETAB, APE_ENT, APE_ETAB, PROCOL, PROCOL_TYPE, PROCOL_DATE, CAPITAL, EFF_ENT, NUMRC, TEL, FAX, DIR_FCT, DIR_IDEN, DIR_DATEN, DIR_LIEUN, CAPITAL_DATE, CAPITAL_DEV, DCRET, TEFF_ENT, ADR_DEP, ADR_COM, TCA, TCAEXP, EFF_ET, TEFF_ET, CODEVOIE, DATE_MAJ', "SIREN=$siren $strNic ORDER BY SIEGE DESC, ACTIF DESC",false,MYSQL_ASSOC); $tabInsee=$insee[0]; $tabTmp=$this->iDb->select('etablissements', 'count(*)', "siren=$siren AND actif<>0"); $nbEtab=$tabTmp[0][0]; } else { $tabInsee=array( 'CIVILITE'=>0, 'NBETAB'=>1, 'TEL'=>$etab['tel'], /** @todo Prendre sur les pages jaunes **/ 'FAX'=>$etab['fax'], /** @todo idem **/ 'Web'=>'', /** @todo Prendre sur les pages jaunes et/ou google **/ 'Mail'=>'', /** @todo idem **/ 'CJ'=>$etab['cj'], 'CJ_lib'=>$this->getLibelleFJ($etab['cj']), 'ACTIF'=>$etab['actif'], // e.source, e.source_id, 'APE_ETAB'=>$etab['ape_etab']?$etab['ape_etab']:$etab['ape_entrep'], 'APE_ENT'=>$etab['ape_entrep']?$etab['ape_entrep']:$etab['ape_etab'], 'CAPITAL'=>'', 'CAPITAL_DEV'=>'', 'ADR_DEP'=>$tabInsee['adr_dep'], //'codeCommune'=>$tabInsee['ADR_COM'], /*'TrancheCA'=>$tabInsee['TCA'], 'TrancheCALib'=>self::$tabTCA[$tabInsee['TCA']], 'dir1Titre'=>self::$tabFct[$tabInsee['DIR_FCT']], 'dir1NomPrenom'=>$tabInsee['DIR_IDEN'], 'Rivoli'=>substr($tabInsee['CODEVOIE'],0,4).' '.substr($tabInsee['CODEVOIE'],-1),*/ ); // tel fax cj ape_etab ape_entrep $nbEtab='N/C'; } if (count($info)==0) { $idComp=$this->getIdentitePart($siren, $etab['raisonSociale'], $etab['enseigne'], $etab['sigle']); if ($idComp['web']<>'http://') $web=$idComp['web']; else $web=''; $tabUpdate=array( 'raisonSociale'=>$idComp['raisonSociale'], 'isin'=>$idComp['bourseIsin'], 'nscrl'=>$idComp['nscrl'], 'tel'=>$idComp['tel'], 'fax'=>$idComp['fax'], 'web'=>$web, 'mail'=>$idComp['mail'], 'dateCreation'=>$idComp['dateCreation'], 'dateFermeture'=>$idComp['dateFermeture'], 'naf'=>$idComp['naf'], 'naf_lib'=>$this->getLibelleNaf($idComp['naf']), 'ca'=>str_replace('€','€', $idComp['ca']), 'nbEtab'=>$idComp['nbEtab'], 'effectif'=>$idComp['effectif'], ); $tabInsert=array_merge($tabUpdate,array('siren'=>$siren)); if (!$this->iDb->insert('infos_entrep', $tabInsert)) $this->iDb->update('infos_entrep', $tabUpdate, "siren=$siren"); $tab=$tabUpdate; } if ($tab['precis']==0) { $mMap=new MMap($etab['adr_num'].' '.$this->getCodeVoie($etab['adr_typeVoie']).' '.$etab['adr_libVoie'], $etab['adr_cp'], $etab['adr_ville']); $tabUpdate=array( 'latitude'=>$mMap->latitudeDec, 'longitude'=>$mMap->longitudeDec, 'precis'=>$mMap->precision, ); $this->iDb->update('infos_entrep', $tabUpdate, "siren=$siren"); $tab=array_merge($tab,$tabUpdate); } if ($siren*1>0) { $iTva=new MTva($siren); $vatNumber=$iTva->vatNumber; $vatDefined=$iTva->vatDefined; } else { $vatNumber='FR00000000000'; $vatDefined=false; } if (strlen($etab['raisonSociale'])>40) $nom=trim($etab['raisonSociale'].$tabInsee['NOM2']); else $nom=$etab['raisonSociale']; $tel=$fax=''; if (trim($tab['tel'])<>'') $tel=trim($tab['tel']); elseif ($tabInsee['TEL']<>'') $tel=implode('.', str_split($tabInsee['TEL'],2)); if (trim($tab['fax'])<>'') $fax=trim($tab['fax']); elseif ($tabInsee['FAX']<>'') $fax=implode('.', str_split($tabInsee['FAX'],2)); $tabRet=array( 'id'=>$etab['id'], 'Siret'=>$etab['siret'], 'SiretSiege'=>$siretSiege, 'Siege'=>$etab['siege'], 'Nom'=>$nom, 'Sigle'=>$etab['sigle'], 'Enseigne'=>$etab['enseigne'], 'Adresse'=>trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '. $etab['adr_typeVoie'] .' '. $etab['adr_libVoie']))), 'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])), 'AdresseNum'=>$etab['adr_num'], 'AdresseBtq'=>$etab['adr_btq'], 'AdresseVoie'=>$etab['adr_typeVoie'], 'AdresseRue'=>$etab['adr_libVoie'], 'CP'=>$etab['adr_cp'], 'Ville'=>$etab['adr_ville'], 'Pays'=>$tabInsee['PAYS'], 'Civilite'=>$tabInsee['CIVILITE'], // Prendre sur score3 'NbEtab'=>$nbEtab,//$tab['nbEtab']*1, // Prendre sur score3 'Tel'=>$tel, 'Fax'=>$fax, 'Web'=>$tab['web'], // CofaceRating 'Mail'=>$tab['mail'], // CofaceRating 'GeoLat'=>$tab['latitude'], 'GeoLon'=>$tab['longitude'], 'GeoPrecis'=>$tab['precis'], 'TvaNumero'=>$vatNumber, 'TvaAttribue'=>$vatDefined, 'FJ'=>$tabInsee['CJ'], 'FJ_lib'=>$this->getLibelleFJ($tabInsee['CJ']), 'Siren'=>$etab['siren'], 'Nic'=>$etab['nic'], 'Actif'=>$tabInsee['ACTIF'], 'NafEtab'=>$tabInsee['APE_ETAB'], 'NafEnt'=>$tabInsee['APE_ENT'], 'NafEntLib' =>$this->getLibelleNaf($tabInsee['APE_ENT']), 'NafEtabLib'=>$this->getLibelleNaf($tabInsee['APE_ETAB']), 'AutreId'=>$etab['autre_id'], 'Source'=>$etab['source'], 'SourceId'=>$etab['source_id'], 'Isin'=>$tab['isin'], 'Capital'=>$tabInsee['CAPITAL'], 'CapitalDev'=>$tabInsee['CAPITAL_DEV'], // 'Singularite'=>'', 'DateCreaEt'=>$tabInsee['DCRET'], 'DateCreaEn'=>$tabInsee['DCREN'], // 'DateClotEn'=>$tabInsee[''], // 'DateClotEt'=>$tabInsee[''], 'SitJur_lib'=>$tabInsee['PROCOL_TYPE'], 'SitJur_date'=>$tabInsee['PROCOL_DATE'], 'EffEnTr'=>$tabInsee['TEFF_ENT'], 'EffEnTrLib'=>self::$tabEffectif[$tabInsee['TEFF_ENT']], 'Effectif'=>$tabInsee['EFF_ENT'], 'Dept'=>$tabInsee['ADR_DEP'], 'codeCommune'=>$tabInsee['ADR_COM'], 'TrancheCA'=>$tabInsee['TCA'], 'TrancheCALib'=>self::$tabTCA[$tabInsee['TCA']], 'dir1Titre'=>self::$tabFct[$tabInsee['DIR_FCT']], 'dir1NomPrenom'=>$tabInsee['DIR_IDEN'], 'Rivoli'=>substr($tabInsee['CODEVOIE'],0,4).' '.substr($tabInsee['CODEVOIE'],-1), ); if ($siren<>0) { if (count($this->getAnnoncesLegales($siren, 0, 'P', $forceVerif))>0) $tabRet['SituationJuridique']='P'; /*elseif (count($this->getAnnoncesLegales($siren, 0, 'R'))>0) $tabRet['SituationJuridique']='R'; elseif (count($this->getAnnoncesLegales($siren, 0, 'A'))>0) $tabRet['SituationJuridique']='A';*/ } if (($tabInsee['CJ']>0 && $tabInsee['CJ']<20 || $tabInsee['CJ']>999 && $tabInsee['CJ']<2000) && $tabInsee['DIR_FCT']=='') $tabRet['dir1Titre']=self::$tabFct['PP']; if ($tabInsee['CIVILITE']>0 && $tabRet['dir1NomPrenom']=='') { if ($tabInsee['CIVILITE']==1) $tabRet['dir1NomPrenom']='M. '; elseif ($tabInsee['CIVILITE']==2) $tabRet['dir1NomPrenom']='Mme '; $tabRet['dir1NomPrenom'].=$tabInsee['NOM']; } if ($tabInsee['ACTIF']==0 && $siren<>0) { $tmp=$this->iDbInsee->select( 'insee_even', 'insDATEVE', "insSIREN=$siren AND insNIC=".$etab['nic']." AND ( insEVE LIKE '%F' OR insEVE LIKE '4%' OR insDESTINAT<>'') ORDER BY insDATEVE DESC LIMIT 0,1", true); $tabRet['DateClotEn']=@$tmp[0][0]; } if ($tabRet['TrancheCALib']=='') $tabRet['TrancheCALib']='N/C'; if ($tabRet['EffEnTrLib']=='') $tabRet['EffEnTrLib']='N/C'; $tabRet['CapitalLib']=''; if ($siren<>0) { /** Recherche du n° RC, de la Forme Juridique et du Capital au Bodacc **/ $bodacc=$this->iDb->select( 'bodacc_detail', 'RC, Capital, CapitalDev, FJ', "siren=$siren AND capital<>0 ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC); $annCap=@$bodacc[0]; if ($tabRet['Capital']==0 || $tabRet['CapitalDev']=='') { $tabRet['Capital']=$annCap['Capital']; $tabRet['CapitalDev']=$annCap['CapitalDev']; } if ($tabRet['Capital']==0 || $tabRet['CapitalDev']=='') { $iDbHisto=new WDB('historiques'); $bodaccHisto=$iDbHisto->select( 'entrep e, texte x',//.codEven Code évènement du mouvement Bodacc libEven ', 'e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt', "e.SIREN=$siren AND e.ANBASE=x.annonceNum AND e.DATE<20050101 AND x.annonceTxt LIKE '%capital%' /*AND (e.CODEVE BETWEEN 10 AND 19 OR e.CODEVE BETWEEN 30 AND 41 OR e.CODEVE BETWEEN 51 AND 79 ) */ GROUP BY e.ANBASE ORDER BY e.DATE DESC", true, MYSQL_ASSOC); if (count($bodaccHisto)>0) { foreach ($bodaccHisto as $ann) { if ( ($ann['CODEVE']>=10 && $ann['CODEVE']<20) || ($ann['CODEVE']>=30 && $ann['CODEVE']<42) || ($ann['CODEVE']>=51 && $ann['CODEVE']<80) ) { if (preg_match('/Capital(?:.|)\:(.*)(eur.|f)/Uis', $ann['annonceTxt'], $matches)) $tabRet['Capital']=trim($matches[1]); if (substr(strtoupper($matches[1]),0,1)=='E') $tabRet['CapitalDev']='EUR'; else $tabRet['CapitalDev']='FRF'; break; } } } } if ($tabRet['CapitalDev']<>'' && $tabRet['CapitalDev']<>'EUR') { $dev=$tabRet['CapitalDev']; $devise=$this->iDbSD->select( 'devise_liste l, devise_cours c', 'c.devise, c.valeur, c.date, l.devNom, l.devNomPays, l.devPaysIso', "c.devise='$dev' and l.devIso='$dev' ORDER BY c.date DESC LIMIT 0,1", true, MYSQL_ASSOC); $dev=@$devise[0]; //die(print_r($dev)); $devise=$tabRet['Capital']*$dev['valeur']*1; $tabRet['CapitalLib']=''.$dev['devNom'].' soit '.number_format(round($devise),null,null,' ').' EUR'; } if ($tabRet['AutreId']=='') { if ($annCap['RC']=='') { $bodacc=$this->iDb->select( 'bodacc_detail', 'RC, FJ', "siren=$siren AND RC<>'' ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC); $annCap['RC']=@$bodacc[0]['RC']; } $tabRet['AutreId']=$annCap['RC']; } if ($tabRet['FJ_lib']=='') { if ($annCap['FJ']=='') { $bodacc=$this->iDb->select( 'bodacc_detail', 'FJ', "siren=$siren AND FJ<>'' ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC); $annCap['FJ']=@$bodacc[0]['FJ']; } $tabRet['FJ_lib']=$annCap['FJ']; } /** Recherche de l'activité réelle **/ $bodacc=$this->iDb->select( 'bodacc_detail', 'Activite, FJ', "siren=$siren AND Activite<>'' AND Activite NOT LIKE 'non precis%' ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC); $annCap=@$bodacc[0]; if ($tabInsee['CJ']<>7210) $tabRet['Activite']=trim(/*preg_replace("/Adjonction.{1,7}activit(?:e|é)(?:.|)\:", '', */$annCap['Activite']);//); if ($tabRet['FJ_lib']=='') $tabRet['FJ_lib']=$annCap['FJ']; if ($tabRet['Activite']=='' && trim($tab['activite'])<>'') $tabRet['Activite']=trim($tab['activite']); elseif ($tabRet['Activite']=='' && ($tabInsee['CJ']>90 && $tabInsee['CJ']<94 || $tabInsee['CJ']>9000 && $tabInsee['CJ']<9400) ) { $siretMin=(''.$siren.'00000')*1; $siretMax=(''.$siren.'99999')*1; $bodacc=$this->iDb->select( 'asso', 'Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_NObjet', "Siret BETWEEN $siretMin AND $siretMax AND (Assoc_Objet<>'' OR Assoc_NObjet<>'') ORDER BY Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC); $annCap=@$bodacc[0]; $tabRet['Activite']=trim($annCap['Assoc_NObjet']); if ($tabRet['Activite']=='') $tabRet['Activite']=trim($annCap['Assoc_Objet']); if ($tabRet['Web']=='') $tabRet['Web']=trim($annCap['Assoc_Web']); if ($tabRet['Mail']=='') $tabRet['Mail']=trim($annCap['Assoc_Mail']); } elseif ($tabRet['Activite']=='' && $tabInsee['CJ']<>7210) { $iDbHisto=new WDB('historiques'); //10 à 19// Création d'entreprise //30 à 41 //51 à 79=>'1503', // Cloture insuf.Actif $bodaccHisto=$iDbHisto->select( 'entrep e, texte x',//.codEven Code évènement du mouvement Bodacc libEven ', 'e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt', "e.SIREN=$siren AND e.ANBASE=x.annonceNum AND e.DATE<=20041231 AND x.annonceTxt LIKE '%ctivit%' GROUP BY e.ANBASE ORDER BY e.DATE DESC", true, MYSQL_ASSOC); if (count($bodaccHisto)>0) { foreach ($bodaccHisto as $idx=>$ann) { //if ($siren==403119431) $tabRet['Activite'].="$idx(".$ann['CODEVE'].'):'.$ann['annonceTxt'].' / '; if ( ($ann['CODEVE']<20) || ($ann['CODEVE']>=30 && $ann['CODEVE']<42) || ($ann['CODEVE']>=51 && $ann['CODEVE']<80) ) { //Activite: r if (preg_match('/Activit(?:e|é)(?:.|)\:(.*)(?:Adresse.*|Commentaires?|Administration|Etablissement principal|Date d\'effet|Date.de.d.but d.activit.)(?:.|)\:/Uis', $ann['annonceTxt'], $matches)) $tabRet['Activite']=$matches[1]; break; } /* $bodaccHisto=$iDbHisto->select( 'entrep e, texte x, tribunaux t',//.codEven Code évènement du mouvement Bodacc libEven ', 'e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt, t.triNom, t.triSiret', "e.SIREN=$siren AND e.ANBASE=x.annonceNum AND e.CODTRI=t.triCode $strIdAnn AND e.DATE BETWEEN 19920101 AND 20041231 GROUP BY e.ANBASE ORDER BY e.DATE DESC", true, MYSQL_ASSOC);*/ } } } $bodacc=$this->iDb->select('bodacc_dirigeants d, bodacc_detail b, bodacc_fonctions f', 'd.num, d.dateEffet, d.Rubrique, d.fonction, d.rs, d.nom, d.prenom, d.nomUsage, d.depart, d.dateInsert, f.libelle', "b.SIREN=$siren AND b.id=d.id AND b.typeEven NOT BETWEEN 5000 AND 5700 AND b.typeEven NOT BETWEEN 2700 AND 2900 AND d.fonction=f.codeFct AND d.depart<>1 AND f.triCode IN ('ASS','COG','DID','DIR','GER','PCS','PDG','PRD','PRE','PRT','VIC') GROUP BY d.fonction, d.rs, d.nom, d.prenom ORDER BY d.dateEffet DESC", true, MYSQL_ASSOC); //$annCap=@$bodacc[0]; if (count($bodacc)>0) { $k=1; foreach ($bodacc as $ann) { $tabRet['dir'.$k.'Titre']=$ann['libelle']; $tabRet['dir'.$k.'NomPrenom']=$ann['rs'].' '.$ann['nom'].' '.$ann['prenom']; $tabRet['dir'.$k.'DateFct']=$ann['dateEffet']; if ($k==2) break; $k++; } } /** Recherche du site Web ou Email dans le JO ASSO **/ if ( ($tabRet['Web']=='' || $tabRet['Mail']=='') && ($tabInsee['CJ']>90 && $tabInsee['CJ']<94 || $tabInsee['CJ']>9000 && $tabInsee['CJ']<9400) ) { $siretMin=(''.$siren.'00000')*1; $siretMax=(''.$siren.'99999')*1; $bodacc=$this->iDb->select( 'asso', 'Assoc_Web, Assoc_Mail', "Siret BETWEEN $siretMin AND $siretMax AND (Assoc_Web<>'' OR Assoc_Mail<>'') ORDER BY Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC); $annCap=@$bodacc[0]; if ($tabRet['Web']=='') $tabRet['Web']=trim($annCap['Assoc_Web']); if ($tabRet['Mail']=='') $tabRet['Mail']=trim($annCap['Assoc_Mail']); } } else { if ($etab['source']==3) { $id=$etab['source_id']; $bodacc=$this->iDb->select( 'asso', 'Activite, Sous_Prefecture, Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_Fusion, Assoc_Date_Declaration2', "id=$id", true, MYSQL_ASSOC); $annCap=@$bodacc[0]; $tabRet['Activite'] = $annCap['Assoc_Objet']; $tabRet['Web'] = $annCap['Assoc_Web']; $tabRet['Mail'] = $annCap['Assoc_Mail']; $tabRet['VilleDecl'] = $annCap['Sous_Prefecture']; if ($tabRet['Actif']==0) { $tabRet['DateClotEn'] = $annCap['Assoc_Date_Declaration2']; $tabRet['DateClotEt'] = $annCap['Assoc_Date_Declaration2']; } else { $tabRet['DateCreaEt'] = $annCap['Assoc_Date_Declaration2']; $tabRet['DateCreaEn'] = $annCap['Assoc_Date_Declaration2']; } } } return $tabRet; } function getDirigeants($siren, $histo=true) { $siren=$siren*1; $tabRet=array(); if ($histo) { $bodacc=$this->iDb->select( 'bodacc_dirigeants d, bodacc_detail b, bodacc_fonctions f', 'd.num, d.dateEffet, d.Rubrique, d.fonction, d.rs, d.nom, d.prenom, d.nomUsage, d.depart, d.dateInsert, f.libelle', "b.SIREN=$siren AND b.id=d.id AND b.typeEven NOT BETWEEN 5000 AND 5700 AND b.typeEven NOT BETWEEN 2700 AND 2900 AND d.fonction=f.codeFct GROUP BY d.fonction, d.rs, d.nom, d.prenom ORDER BY d.dateEffet DESC, d.fonction DESC", true, MYSQL_ASSOC); if (count($bodacc)>0) { foreach ($bodacc as $k=>$ann) { $tabRet[]=array( 'Titre'=>$ann['libelle'], 'Societe'=>$ann['rs'], 'Nom'=>trim(strtr($ann['nom'], array( "Modification d'"=>'', "Modification de"=>'', "Nomination d'un"=>'', ))), 'Prenom'=>$ann['prenom'], 'Ancien'=>$ann['depart'], 'DateFct'=>$ann['dateEffet'], ); } } $iDbHisto=new WDB('historiques'); $iBodacc=new MBodacc(); $bodaccHisto=$iDbHisto->select( 'entrep e, texte x', 'e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt', "e.SIREN=$siren AND e.ANBASE=x.annonceNum AND e.DATE BETWEEN 19920101 AND 20050101 AND x.annonceTxt LIKE '%Administration%' GROUP BY e.ANBASE ORDER BY e.DATE DESC", true, MYSQL_ASSOC); if (count($bodaccHisto)>0) { foreach ($bodaccHisto as $ann) { if ( ($ann['CODEVE']<20) || ($ann['CODEVE']>=30 && $ann['CODEVE']<42) || ($ann['CODEVE']>=51 && $ann['CODEVE']<80) ) { if (preg_match('/Administration(?:.|)\:(.*)(?:Adresse.*|Commentaires?|Activit(?:e|é)|Etablissement principal|Date d\'effet|Date.de.d.but d.activit.)(?:.|)\:/Uis', $ann['annonceTxt'], $matches)) { $tabAdministration=$iBodacc->getDirigeants($matches[1]); foreach ($tabAdministration as $tabDir) { /* $tabDir['num']=$numDir; $tabDir['dateEffet']=$dateEffet; $tabDir['id']=$idAnnRet; $tabDir['Rubrique']='mmd'; $tabDir['dateInsert']=$dateInsert; //'fonction'=>$numFonction, 'rs'=>trim(str_replace(',','',$raisonSociale)), 'nom'=>$nom, 'prenom'=>$prenom, 'nomUsage'=>$usage, 'depart'=>$oldFonction); */ $nom=trim(strtr(preg_replace('/ +/',' ', $tabDir['nom']), array( "Modification d'"=>'', "Modification"=>'', "Modification de"=>'', "Nomination d'un"=>'', "Nomination en qualité d'"=>'', "Nomination en qualité de"=>'', "dont le est"=>'', "nouvel"=>'', "partant"=>'', "ancien d'honneur"=>'', "nouveaux"=>'', "nouveau"=>'', "ancien"=>'', "Nouveau"=>'', "Cette société se constitue Date de début d'"=>'', ))); if ($nom<>'') $tabRet[]=array( 'Titre'=>$iBodacc->getFctDir($tabDir['fonction']),//.' ('.$tabDir['fonction'].')', 'Societe'=>$tabDir['rs'], 'Nom'=>$nom, 'Prenom'=>$tabDir['prenom'], 'Ancien'=>$tabDir['depart'], 'DateFct'=>Wdate::dateT('Ymd','Y-m-d', $ann['DATE']), ); } //break; } } } } } if (!$histo || ($histo && count($tabRet)==0) ) { $dirs=$this->iDb->select( 'rncs_dirigeants/* d, bodacc_fonctions f*/', 'siren, raisonSociale, civilite, nom, prenom, naissance_nom, naissance_date, naissance_lieu, fonction_code, fonction_lib /*f.libelle*/', "siren=$siren /*AND d.fonction_code=f.codeFct*/ AND actif=1", true, MYSQL_ASSOC); foreach ($dirs as $k=>$dir) { if ($dir['naissance_date']<>'0000-00-00') $dateNaiss=Wdate::dateT('Y-m-d','d/m/Y', $dir['naissance_date']); else $dateNaiss=''; $tabRet[]=array( 'Titre' =>$dir['fonction_lib'], 'Societe' =>'',//utf8_encode($dir['Societe']), 'Nom' =>trim($dir['civilite'].' '.$dir['nom']), 'Prenom' =>$dir['prenom'], 'NaissDate' =>$dateNaiss, 'NaissVille' =>$dir['naissance_lieu'], 'NaissDepPays' =>'', // 25 'Ancien' =>0, 'DateFct' =>'', ); } } if (count($tabRet)==0) { $rncs=new MEuridile(); $tab=$rncs->getInfosDisponbiles($siren); if ($tab['erreur']=='') { $tabTmp=$rncs->getIdentite($siren); $etab=$this->getIdentiteEntreprise($siren); if ($tabTmp['sexe']<>'') { $civilite=''; if ($tabTmp['sexe']=='Masculin') { $genre='Monsieur '; $civilite='M'; } elseif ($tabTmp['sexe']=='Féminin') { $genre='Madame '; $civilite='MME'; } else $genre=$tabTmp['sexe'];//, 'MLLE' $tabRet[]=array( 'Titre' =>'Personne physique', 'Societe' =>'',//utf8_encode($dir['Societe']), 'Nom' =>$genre . $tabTmp['nom'], 'Prenom' =>'', 'NaissDate' =>$tabTmp['naiss_date'],// 07/09/1961 'NaissVille' =>$tabTmp['naiss_ville'], // LE RUSSEY 'NaissDepPays' =>'', // 25 'Ancien' =>0, 'DateFct' =>$tabTmp['date_imma'], ); $this->iDb->insert('rncs_dirigeants', array('siren' => $siren, 'raisonSociale' => $etab['Nom'], 'civilite' => $civilite, 'nom' => $tabTmp['nom'], 'prenom' => '', 'naissance_nom' => '', 'naissance_date'=> Wdate::dateT('d/m/Y', 'Y-m-d', $tabTmp['naiss_date']),// 07/09/1961 'naissance_lieu'=> $tabTmp['naiss_ville'], 'fonction_code' => 1050, 'fonction_lib' => 'Personne physique', 'actif' => 1, 'dateInsert' => date('YmdHis'), ), true); } else { foreach ($tabTmp['dirigeants'] as $nb=>$dir) {/* [] => Associ?-g?rant*/ //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); $tabRet[]=array( 'Titre' =>$dir['fonction'],//utf8 'Societe' =>'',//utf8_encode($dir['Societe']), 'Nom' =>trim(strtr($dir['nom'], array("Modification d'"=>'', "Modification de"=>'', '.'=>''))), 'Prenom' =>$dir['prenom'], 'NaissDate' =>$dir['naiss_date'],// 07/09/1961 'NaissVille' =>$dir['naiss_ville'], // LE RUSSEY 'NaissDepPays' =>'',//$dir['naiss_depPays'], // 25 'Ancien' =>0, 'DateFct' =>'', ); $this->iDb->insert('rncs_dirigeants', array('siren' => $siren, 'raisonSociale' => $etab['Nom'], 'civilite' => '', 'nom' => $dir['nom'], 'prenom' => $dir['prenom'], 'naissance_nom' => $dir['naiss_nom'], 'naissance_date'=> Wdate::dateT('d/m/Y', 'Y-m-d', $dir['naiss_date']),// 07/09/1961 'naissance_lieu'=> $dir['naiss_ville'], 'fonction_code' => 0, 'fonction_lib' => $dir['fonction'], 'actif' => 1, 'dateInsert' => date('YmdHis'), ), true); } } } } return $tabRet; } function getAnnoncesLegales($siren, $idAnnonce=0, $rubrique='', $forceVerif=false) {// rubrique = P R A (Procol Rad ou Absorbée / A venir Vendue) $siren=$siren*1; $strIdAnn=''; $tabRet=array(); $procol=false; // Par défaut, on ne trouve pas de procédure collective ! if ($idAnnonce>0) $strIdAnn=" AND d.id=$idAnnonce "; if ($rubrique=='P') $strIdAnn=" AND d.Rubrique='procol' AND d.typeEven NOT LIKE '%1550%' "; //elseif ($rubrique=='R') $strIdAnn=" AND d.Rubrique='radiations' "; //elseif ($rubrique=='V') $strIdAnn=" AND d.Rubrique='ventes' "; //elseif ($rubrique=='A') $strIdAnn=" AND d.typeEven='%2720%' "; if ($rubrique<>'' && $rubrique<>'P')// && $rubrique<>'R' && $rubrique<>'A') return false; if ($idAnnonce==0 || $idAnnonce>=1) { /** On recherche dans les annonces récentes **/ $groupBy=' '; $strCle='1 '; if ($siren<>0) $strCle ="d.siren=$siren "; else $groupBy=' GROUP BY d.id '; $bodacc=$this->iDb->select( 'bodacc_detail d, bodacc b, tribunaux t',//.codEven Code évènement du mouvement Bodacc libEven ', 'b.id, b.Bodacc_Code, b.Bodacc_Annee_Parution, b.Bodacc_Num, b.Num_Annonce, b.Bodacc_Date_Parution, b.Tribunal_Dept, b.Tribunal_Code, d.Rubrique, b.typeAnnonce, b.corrNum_Annonce, b.corrBodacc_Date_Parution, b.corrPage, b.corrNumParution, b.corrTexteRectificatif, b.annonce, b.dateInsert, t.triCode, t.triNom, t.triSiret, d.typeEven, d.dateEffet, d.dateDebutActivite, d.dateCessationActivite, d.dateJugement', "$strCle AND d.id=b.id AND b.Tribunal_Code=t.triCode $strIdAnn $groupBy ORDER BY b.Bodacc_Date_Parution DESC", true, MYSQL_ASSOC); $k=0; if (count($bodacc)>0) { foreach ($bodacc as $k=>$ann) { $tabEven=explode(';', $ann['typeEven']); $tabRetEven=array(); if ($ann['typeAnnonce']<>'Insertion')//BODACC n°002 A du 04/01/2006. $tabRetEven[]=array('CodeEven'=>'0000', 'LibEven'=> $ann['typeAnnonce'].' de l\'annonce './*n°'. $ann['corrNum_Annonce'].' BODACC n°'. $ann['corrNumParution'].*/' du '. WDate::dateT('Y-m-d','d/m/Y',$ann['corrBodacc_Date_Parution'])/*.' (page '. $ann['corrPage'].')'*/); else { if (trim($ann['typeEven'])<>'') { foreach ($tabEven as $even) $tabRetEven[]=array('CodeEven'=>$even,'LibEven'=>$this->iBodacc->getEvenement($even)); } else { switch ($ann['Rubrique']) { case 'mmd': $codeEven='2313'; $libEven='Modification(s) diverse(s)'; break; case 'comptes': $codeEven='3999'; $libEven='Dépôt des comptes'; break; case 'creations': $codeEven='4999'; $libEven='Création d\'entreprise'; break; case 'procol': $codeEven='1999'; $libEven='Procédure collective'; break; case 'radiations': $codeEven='6700'; $libEven='Radiation'; break; case 'ventes': $codeEven='5999'; $libEven='Vente/Cession'; break; default: $codeEven='0000'; $libEven=$ann['Rubrique']; break; } $tabRetEven[]=array('CodeEven'=>$codeEven,'LibEven'=>$libEven); } } if ($ann['Rubrique']=='procol') $procol=true; $tabRet[$k]=array( 'id'=>$ann['id'], 'BodaccCode'=>'BOD'.$ann['Bodacc_Code'], 'BodaccNum'=>$ann['Bodacc_Num'], 'NumAnnonce'=>$ann['Num_Annonce'], 'DateParution'=>$ann['Bodacc_Date_Parution'], 'Departement'=>$ann['Tribunal_Dept'], 'Tribunal'=>$ann['triNom'], 'TribunalSiret'=>$ann['triSiret'], 'Rubrique'=>$ann['Rubrique'], 'typeAnnonce'=>$ann['typeAnnonce'], 'texteRectificatif'=>$ann['corrTexteRectificatif'], // 'texteAnnonce'=>$ann['annonce'], 'dateEffet'=>$ann['dateEffet'], 'dateJugement'=>$ann['dateJugement'], /// d.dateDebutActivite, d.dateCessationActivite, d.dateJugement', 'dateInsertionSD'=>$ann['dateInsert'], 'evenements'=>$tabRetEven, ); if ($idAnnonce<>0) $tabRet[$k]['texteAnnonce']=$ann['annonce']; } } } if ($idAnnonce==0 || $idAnnonce<0) { /** On recherche dans les annonces passées **/ $iDbHisto=new WDB('historiques'); $tabTmp=array( 10=>'4000', // Création d'entreprise 11=>'4000', 13=>'4000', 14=>'4000', 15=>'4000', 16=>'4000', 17=>'4200', // Création d'établissement 18=>'4200', 19=>'4200', 20=>'5999', // ou 5700 en fonction du code xxx 21=>'5999', 22=>'5999', 24=>'5999', 25=>'5999', 30=>'2500', // Confirmation Ets 31=>'2318', 32=>'2318', 33=>'2318', 34=>'2318', 35=>'2318', 36=>'2318', 37=>'2800', // Loc. Gérance recue 38=>'2860', // Loc. Gérance donnée 39=>'2318', 40=>'6700', // Radiation 41=>'2202', // Dissolution 42=>'2885', // Fin location gérance 51=>'1209', // Règlement Judiciaire 52=>'1200', // Redressement Judiciaire 53=>'1207', // Règlemement amiable //53=> Conciliation ???????????????????????????????????????? 56=>'1310', // Procédure d'Insolvabilité Européenne 57=>'1100', // Jugement de sauvegarde 58=>'1101', // Plan de sauvegarde 59=>'1506', // Rectif ou Annulation RJ 60=>'1305', // Redr.& liq.Judiciaire 61=>'1603', // Liquidation de Biens 62=>'1305', 63=>'1600', // Faillite personnelle 64=>'1601', // Interdiction de gérer 65=>'1305', 66=>'1306', // Liquidation Judiciaire Simplifiée 69=>'1506',//Rectif ou Annul.LJ 70=>'1550', // Suites de jugements 71=>'1550', // Suite reglement/L 72=>'1550', // Suite redressement/L 73=>'1550', // Susp.Provis.pours. ????????????????????????????????????????? 74=>'1505', // Appel de jugement 75=>'1407', // Modif. de Plan 76=>'1502', // Extinction Passif 77=>'1210', // Production 78=>'1204', // Dépôt des créances 79=>'1503', // Cloture insuf.Actif 92=>'1450', //Cessation paiement ?? ); if ($idAnnonce<0) { $idAnnonce=abs($idAnnonce); $strIdAnn=" AND e.ANBASE=$idAnnonce "; } if ($rubrique=='P') $strIdAnn=" AND e.CODEVE BETWEEN 50 AND 79 "; //elseif ($rubrique=='R') $strIdAnn=" AND e.CODEVE BETWEEN 40 AND 42 "; //elseif ($rubrique=='A') return $tabRet; $bodaccHisto=$iDbHisto->select( 'entrep e, texte x, tribunaux t',//.codEven Code évènement du mouvement Bodacc libEven ', 'e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt, t.triNom, t.triSiret', "e.SIREN=$siren AND e.ANBASE=x.annonceNum AND e.CODTRI=t.triCode $strIdAnn AND e.DATE BETWEEN 19920101 AND 20041231 GROUP BY e.ANBASE ORDER BY e.DATE DESC", true, MYSQL_ASSOC); if (count($bodaccHisto)>0) { foreach ($bodaccHisto as $ann) { $k++; //if ($ann['DATE']<19920101) break; //if ($ann['DATE']>20051231) continue; if ($ann['JAL']==1) $Bodacc_Code='BODA'; elseif ($ann['JAL']==200) $Bodacc_Code='BODB'; if ($ann['CODEVE']>49 && $ann['CODEVE']<80) $procol=true; if ($ann['CODEVE']<20) $rub='creations'; // 4xxx elseif ($ann['CODEVE']<=25) $rub='ventes'; // 5xxx elseif ($ann['CODEVE']<40) $rub='mmd'; // 2xxx elseif ($ann['CODEVE']<42) $rub='radiations'; // 6xxx elseif ($ann['CODEVE']<50) $rub='mmd'; // 2xxx elseif ($ann['CODEVE']<80) $rub='procol'; // 1xxx $tabRet[$k]=array( 'id'=>-$ann['ANBASE'], 'BodaccCode'=>$Bodacc_Code, 'BodaccNum'=>$ann['NOBOD'], 'NumAnnonce'=>$ann['NOANN'], 'DateParution'=>substr($ann['DATE'],0,4).'-'.substr($ann['DATE'],4,2).'-'.substr($ann['DATE'],6,2), 'Departement'=>$ann['DEPT'], 'Tribunal'=>$ann['triNom'], 'TribunalSiret'=>$ann['triSiret'], 'Rubrique'=>$rub, 'typeAnnonce'=>'Insertion',/** @todo à GERER $ann['SSCODE'],**/ //'texteRectificatif'=>$ann['corrTexteRectificatif'], // 'texteAnnonce'=>$ann['annonceTxt'], 'dateEffet'=>$ann['DATE'], 'dateJugement'=>$ann['DATE'], 'dateInsertionSD'=>'', 'evenements'=>array(array('CodeEven'=>$tabTmp[$ann['CODEVE']],'LibEven'=>$this->iBodacc->getEvenement($tabTmp[$ann['CODEVE']]))), ); if ($idAnnonce<>0) $tabRet[$k]['texteAnnonce']=$ann['NOANN'].' - '.$ann['annonceTxt']; } } } // On ne cherche pas de PROCOL + récente si on est en visualisation d'annonce Bodacc Classique if ($idAnnonce>=1 || $idAnnonce<0) return $tabRet; // Si je n'ai pas d'annonce Bodacc de procol on vérifie dans la table de collecte // Si annonce Bodacc de Procol et pas de Vérif Forcée chez un partenaire alors on affiche la collecte if (!$procol || ($procol && !$forceVerif)) { $tabTmp=$this->getProColPart($siren, $forceVerif); $tabRet=array_merge($tabTmp, $tabRet); } return $tabRet; } function getAnnoncesBalo($siren, $idAnnonce=0) { $siren=$siren*1; $strIdAnn=''; $tabRet=array(); if ($idAnnonce>0) { //$idBalo=//.$tabBalo['Num_Affaire'].','.$tabBalo['Num_Parution']; $tmp=explode('.', $idAnnonce); //if (strlen($tmp[0])==9 && is_numeric($tmp[0])) $rcs=$tmp[0]; if (is_numeric($tmp[0])) $num=$tmp[0]; if (is_numeric($tmp[1])) $par=$tmp[1]; //$idBaloPdf=basename($tabBalo['Url_Annonce_Pdf']); $strIdAnn=" AND Num_Affaire='$num' AND Num_Parution='$par' "; //$idAnnonce } $mBalo=new MBalo(); $bodacc=$this->iDb->select('balo', "Societe_Rcs, Categorie, Num_Affaire, Date_Parution, Num_Parution, Url_Annonce_Html, Url_Annonce_Pdf, Annonce_Html, dateInsert", "Societe_Rcs='$siren' AND Date_Parution>='2004-01-01' $strIdAnn ORDER BY Date_Parution DESC, Num_Affaire", true, MYSQL_ASSOC); // $RP=mysql_select('balo', " ", "Societe_Rcs='$rcs' "); $k=0; if (count($bodacc)>0) { foreach ($bodacc as $k=>$ann) { $tabRetEven=array(); $tabRetEven[]=array('CodeEven'=>$mBalo->getLibEven($ann['Categorie']), 'LibEven'=> $ann['Categorie']); $tabRet[$k]=array( 'id'=>$ann['Num_Affaire'].'.'.$ann['Num_Parution'], 'BodaccCode'=>'BALO', 'BodaccNum'=>$ann['Num_Parution'], 'NumAnnonce'=>$ann['Num_Affaire'], 'DateParution'=>$ann['Date_Parution'], //'Departement'=>'',$ann['Tribunal_Dept'], //'Tribunal'=>$ann['triNom'], //'TribunalSiret'=>$ann['triSiret'], //'Rubrique'=>$ann['Rubrique'], 'typeAnnonce'=>'Insertion', 'dateInsertionSD'=>$ann['dateInsert'], 'evenements'=>$tabRetEven, 'Lien_Annonce_Pdf'=>basename($ann['Url_Annonce_Pdf']), ); if ($idAnnonce<>0) $tabRet[$k]['texteAnnonce']=strtr( preg_replace('//Uis', '', preg_replace('/( class=".*")/ie', ' ', $ann['Annonce_Html'])), array(' '=>' ', ''=>'', ''=>'')); } } return $tabRet; } function getAnnoncesAsso($siren, $idAnnonce=0) { $siretMin=$siren.'00000'; $siretMax=$siren.'99999'; $strIdAnn=''; $tabRet=array(); if ($idAnnonce>0){ $strIdAnn=" AND id=$idAnnonce "; //$mAsso=new MAsso(); if ($siren==0) { $bodacc=$this->iDb->select('asso', "Waldec", "Siret BETWEEN $siretMin AND $siretMax $strIdAnn AND Waldec<>''"); if (@$bodacc[0][0]<>'') $strIdAnn=" AND Waldec='".$bodacc[0][0]."' "; } } $bodacc=$this->iDb->select('asso', "id, Assoc_Nom, Siret, Waldec, Activite, Num_Annonce, Date_Parution, Num_Parution, Departement, Sous_Prefecture, Type_Annonce, Annonce_Html, Assoc_Objet, Assoc_Adresse, Assoc_NObjet, Assoc_AObjet, Assoc_NAdresse, Assoc_Fusion, Assoc_Annulation, Assoc_ANom, Assoc_NNom, Assoc_Date_Declaration, Assoc_Date_Declaration2, dateInsert", "Siret BETWEEN $siretMin AND $siretMax $strIdAnn ORDER BY Date_Parution DESC", true, MYSQL_ASSOC); // $RP=mysql_select('balo', " ", "Societe_Rcs='$rcs' "); $k=0; if (count($bodacc)>0) { foreach ($bodacc as $k=>$ann) { $tabRetEven=array(); $tabRetEven[]=array('CodeEven'=>0000,//$mAsso->getLibEven($ann['Categorie']), 'LibEven'=> $ann['Type_Annonce']); // Rubrique if (preg_match('/cr(é|e)ation/i', $ann['Type_Annonce'])) $rub='creations'; elseif (preg_match('/Dissolution/i', $ann['Type_Annonce'])) $rub='radiations'; else $rub='mmd'; // typeAnnonce if (preg_match('/Annulation/i', $ann['Type_Annonce'])) $type='Suppression'; elseif (preg_match('/Rectif/i', $ann['Type_Annonce'])) $type='Rectificatif'; else $type='Insertion'; if (str_replace('-','',$ann['Date_Parution'])*1>=20070401) $dateInsert=$ann['Date_Parution']; else $dateInsert=''; $tabRet[$k]=array( 'id'=>$ann['id'], 'BodaccCode'=>'ASSO', 'BodaccNum'=>$ann['Num_Parution'], 'NumAnnonce'=>$ann['Num_Annonce'], 'DateParution'=>$ann['Date_Parution'], 'Departement'=>$ann['Departement'], 'Tribunal'=>$ann['Sous_Prefecture'], //'TribunalSiret'=>$ann['triSiret'], 'Rubrique'=>$rub, 'typeAnnonce'=>$type, 'dateInsertionSD'=>$dateInsert, 'evenements'=>$tabRetEven, //'Lien_Annonce_Pdf'=>basename($ann['Url_Annonce_Pdf']), ); if ($idAnnonce<>0) /*if ( preg_match( "~(\x00[\x80-\xff]|[\x00-\x07][\x00-\xff]~", $ann['Annonce_Html'] ) ) $tabRet[$k]['texteAnnonce']='utf8 : '.$ann['Annonce_Html']; else */ $tabRet[$k]['texteAnnonce']=strip_tags(strtr(htmlentities($ann['Annonce_Html']),array('>'=>'>','&'=>'&','<'=>'<'))); } } return $tabRet; } function getIdentitePart($siren, $rs, $enseigne, $sigle) { $referer=''; $url='http://www.cofacerating.fr/portail/entreprise_identite/identite.asp?ip=pagespro&lg=fr&nsiren='.$siren; $page=getUrl($url, '', '', $referer, false, 'www.cofacerating.fr', '', 5); $this->body=$page['body']; $this->codeRetour=$page['code']; $this->header=$page['header']; $tabRet=array(); $tabRet['nscrl']=@getTextInHtml($this->body, '&nscrl=', '=','&'); $strTmp=trim(str_replace(chr(160), ' ', html_entity_decode(utf8_encode(@getTextInHtml($this->body, ' Raison sociale
', '',''))))); $tmp=explode('
', $strTmp); $tabRet['raisonSociale']=trim($tmp[0]); unset($tmp[0]); $tabRet['adresse']=trim(strip_tags(implode(',', $tmp))); $tabRet['tel']=trim(@getTextInHtml($this->body, 'Téléphone
', '', '
')); $tabRet['fax']=trim(@getTextInHtml($this->body, 'Télécopie
', '
', '')); $tabRet['web']=trim(@getTextInHtml($this->body, '>Adresse internet
', '')); $tabRet['mail']=trim(@getTextInHtml($this->body, '')); $bourse=trim(@getTextInHtml($this->body, 'Ville Bourse
', 'class="tabval">', '')); $tmp=explode('
', $bourse); $tabRet['bourseIsin']=trim($tmp[0]); $tabRet['bourseMarche']=trim($tmp[1]); $tabRet['bourseVille']=trim($tmp[2]); /* $infosDispo=trim(@getTextInHtml($this->body, 'Liste Produits
', '

', 'Un secteur ou une région en France

')); $tabTmp=explode('(.*)<\/a>/i', $lien, $matches); if ($matches[2]<>'') $this->tabInfos[$matches[2]]=$matches[1]; if (substr($matches[2], 0, 12)=='rapport éco.') $this->infoEco='http://www.cofacerating.fr/portail/entreprise_identite/'.$matches[1]; elseif (substr($matches[2], 0, 6)=='bilan ') $this->tabBilans[]=substr($matches[2], 6,strlen($matches[2])-6); }*/ $tabRet['activite']=trim(str_replace(chr(160), ' ', html_entity_decode(utf8_encode(@getTextInHtml($this->body, 'Libellé code activité ', '', ''))))); $tabRet['naf']=trim(@getTextInHtml($this->body, '0) { foreach ($collecte as $ann) { $dept=substr($ann['triCP'],0,2)*1; if ($dept==97) $dept=substr($ann['triCP'],0,3)*1; $adresse=''; if ($ann['adr_num']*1<>0) $adresse.=($ann['adr_num']*1).' '.strtolower($ann['adr_btq']); $adresse.=strtolower($ann['adr_typeVoie']).' '.ucfirst(strtolower($ann['adr_libVoie'])); if (trim($ann['adr_comp'])<>'') $adresse.=', '.$ann['adr_comp'].', '; $adresse=preg_replace('/ +/',' ', $adresse); $texteAnnonce= 'Date : '.strtolower(WDate::dateT('Y-m-d','d M Y',$ann['dateJugement'])) .'. '. $this->iBodacc->getEvenement($ann['typeEven']).'. '. $ann['siren'] . ' RCS '. ucfirst(strtolower(strtr($ann['triNom'], array('TGIcc '=>'','TGI '=>'','TC '=>'','TI '=>'',)))).'. '. trim($ann['raisonSociale']). '. Adresse : '. $adresse.' '.$ann['adr_cp'].' '.$ann['adr_ville'].'. '; // Nom // Activité, Adresse if ($ann['dateCessationPaiement']*1<>0) $texteAnnonce.='Cessation des paiements le '.strtolower(WDate::dateT('Y-m-d','d M Y',$ann['dateCessationPaiement'])).'. '; if (trim($ann['inter1type'])<>'' && ($ann['inter1id']>0 || trim($ann['inter1nom'])<>'') ) { $texteAnnonce.=$tabInter[$ann['inter1type']].' : '.$ann['inter1nom']; if ($ann['inter1id']<>0) { $tabTmp=$this->iDb->select( 'tabMandataires', 'sirenGrp, sirenMand, tel, fax, email', 'id='.$ann['inter1id'], true, MYSQL_ASSOC); $mand=$tabTmp[0]; if ($mand['sirenGrp']<>0) $texteAnnonce.=', Siren SCP '.$mand['sirenGrp']; if ($mand['sirenMand']<>0) $texteAnnonce.=', Siren '.$mand['sirenMand']; if ($mand['tel']<>'') $texteAnnonce.=', Telephone '.$mand['tel']; if ($mand['fax']<>'') $texteAnnonce.=', Telecopie '.$mand['fax']; if ($mand['email']<>'') $texteAnnonce.=', E-mail : '.$mand['email']; } $texteAnnonce.='. '; } if (trim($ann['inter2type'])<>'' && ($ann['inter2id']>0 || trim($ann['inter2nom'])<>'') ) { $texteAnnonce.=$tabInter[$ann['inter2type']].' : '.$ann['inter2nom']; if ($ann['inter2id']<>0) { $tabTmp=$this->iDb->select( 'tabMandataires', 'sirenGrp, sirenMand, tel, fax, email', 'id='.$ann['inter2id'], true, MYSQL_ASSOC); $mand=$tabTmp[0]; if ($mand['sirenGrp']<>0) $texteAnnonce.=', Siren SCP '.$mand['sirenGrp']; if ($mand['sirenMand']<>0) $texteAnnonce.=', Siren '.$mand['sirenMand']; if ($mand['tel']<>'') $texteAnnonce.=', Telephone '.$mand['tel']; if ($mand['fax']<>'') $texteAnnonce.=', Telecopie '.$mand['fax']; if ($mand['email']<>'') $texteAnnonce.=', E-mail : '.$mand['email']; } $texteAnnonce.='. '; } if (trim($ann['inter3type'])<>'' && ($ann['inter3id']>0 || trim($ann['inter3nom'])<>'') ) { $texteAnnonce.=$tabInter[$ann['inter3type']].' : '.$ann['inter3nom']; if ($ann['inter3id']<>0) { $tabTmp=$this->iDb->select( 'tabMandataires', 'sirenGrp, sirenMand, tel, fax, email', 'id='.$ann['inter3id'], true, MYSQL_ASSOC); $mand=$tabTmp[0]; if ($mand['sirenGrp']<>0) $texteAnnonce.=', Siren SCP '.$mand['sirenGrp']; if ($mand['sirenMand']<>0) $texteAnnonce.=', Siren '.$mand['sirenMand']; if ($mand['tel']<>'') $texteAnnonce.=', Telephone '.$mand['tel']; if ($mand['fax']<>'') $texteAnnonce.=', Telecopie '.$mand['fax']; if ($mand['email']<>'') $texteAnnonce.=', E-mail : '.$mand['email']; } $texteAnnonce.='. '; } if (trim($ann['complement'])<>'') $texteAnnonce.=' Observations : '.trim($ann['complement']).'.'; /** Si la procédure à moins de 4 mois on l'affiche **/ if ((str_replace('-','',$ann['dateJugement'])*1)>=$debutForclusion) $tabRet[]=array('id'=>'0.'.$ann['id'], 'BodaccCode'=>0, 'BodaccNum'=>0, 'NumAnnonce'=>0, 'DateParution'=>$ann['dateInsert'], 'Departement'=>$dept, 'Tribunal'=>$ann['triNom'], 'TribunalSiret'=>$ann['triSiret'], 'Rubrique'=>'procol', 'typeAnnonce'=>'insertion', 'dateEffet'=>$ann['dateCessationPaiement'], 'dateJugement'=>$ann['dateJugement'], 'dateInsertionSD'=>$ann['dateInsert'], 'evenements'=>array(array('CodeEven'=>$ann['typeEven'],'LibEven'=>$this->iBodacc->getEvenement($ann['typeEven']))), 'texteAnnonce'=>$texteAnnonce, ); } } elseif ($forceVerif) { /** INTEROGATION DIRECTE DES PARTENAIRES RNCS ** ** Si la demande à déjà été faite ce jour auprès du partenaire, on ne la refait pas !!! **/ $deja=$this->iDb->select( 'rncs_procol', 'count(siren)', "siren=$siren AND dateDemande=CURDATE()"); if ($deja[0][0]!=0) return $tabRet; $refererP='http://www.score3.fr/'; $urlP='http://www.score3.fr/entreprise.shtml?siren='.$siren; $page=getUrl($urlP, '', '', $refererP, false, 'www.score3.fr', '', 20); $pou=$page['body']; $strTmp=trim(@getTextInHtml($pou, 'Procédures collectives', '', '')); if (preg_match('/Aucune proc.dure collective n.est enregistr/i',$strTmp)) { $ligne=date('YmdHis').";$siren;".$page['code'].';NO;'; $fp=fopen( realpath(dirname(__FILE__)) . '/../../../log/pouey.log', 'a'); fwrite($fp,$ligne.EOL); fclose($fp); return $tabRet; } $tabTmp=explode('', $strTmp); foreach ($tabTmp AS $strTmp) { $tabTmp2=explode('', $strTmp); $dateJ =strip_tags($tabTmp2[0]); $libEven=strip_tags($tabTmp2[1]); if ($libEven=='Plan De Sauvegarde') $typeEven='1101'; elseif ($libEven=='Procedure De Sauvegarde') $typeEven='1100'; elseif ($libEven=='Liquidation Judiciaire') $typeEven='1305'; elseif ($libEven=='Liquid.juduciaire Simplifiee') $typeEven='1306'; elseif ($libEven=='Liquid.judiciaire Simplifiee') $typeEven='1306'; elseif ($libEven=='Plan De Cession') $typeEven='1411'; elseif ($libEven=='Redressement Judiciaire') $typeEven='1200'; elseif ($libEven=='Plan De Redressement') $typeEven='1414'; else $typeEven='1999'; /* */ $refererP='http://www.societe.com/cgi-bin/recherche?rncs='.$siren; $urlP='http://www.societe.com/cgi-bin/recherche?rncs='.$siren.'&vu=4'; $page=getUrl($urlP, '', '', $refererP, false, 'www.societe.com', '', 10); $soc=$page['body']; $tribunal='INCONU'; if (preg_match('/RCS (.*) B (\d\d\d) (\d\d\d) (\d\d\d)<\/strong>/Ui', $soc, $matches)) { $sirenT=$matches[2].$matches[3].$matches[4]; if ($sirenT<>$siren) return array(); $tribunal=strtoupper(trim(substr($matches[1],0,5))).'C'; // Creteil if (!$this->iBodacc->isTribunal($tribunal)) { $libTri=strtoupper($matches[1]); // Creteil $tribunal=$this->iBodacc->getTribunalCode("TC $libTri"); if (!$this->iBodacc->isTribunal($tribunal)) { $tribunal='INCONU'; } } if (preg_match('/(.*) <\/td>(?:.*)(.*)<\/td>/Uis', $soc, $matches)) { if ($matches[1]=='Liquidateur') $inter1type='L'; else $inter1type=''; $inter1nom=str_replace('
',', ',$matches[2]); } } $tabInsert=array( 'siren'=>$siren, 'typeEven'=>$typeEven, 'dateJugement'=>WDate::dateT('d/m/Y','Y-m-d',$dateJ), 'dateCessationPaiement'=>0, 'inter1type'=>$inter1type, 'inter1id'=>'', 'inter1nom'=>$inter1nom, 'inter2type'=>'', 'inter2id'=>'', 'inter2nom'=>'', 'inter3type'=>'', 'inter3id'=>'', 'inter3nom'=>'', 'tribunal'=>$tribunal, 'pagePou'=>$pou, 'pageSoc'=>$soc, ); $this->iDb->insert('annonces', $tabInsert); $ligne=date('YmdHis').";$siren;".$page['code'].";YES;$dateJ;$typeEven;$libEven"; $fp=fopen(realpath(dirname(__FILE__)) . '/../../../log/pouey.log', 'a'); fwrite($fp,$ligne.EOL); fclose($fp); } if (trim($tabRet[0]['dateJugement'])=='' && $typeEven=='1999') return array(); /** Insertion de la notification de demande pour la journée **/ $this->iDb->insert('rncs_procol', array('siren'=>$siren, 'dateDemande'=>date('Ymd'))); /** Récupération du jugement enregistré en base S&D **/ $collecte=$this->iDb->select( 'annonces a, tribunaux t, etablissements e', 'a.id, a.siren, a.typeEven, a.dateJugement, a.dateCessationPaiement, a.inter1type, a.inter1id, a.inter1nom, a.inter2type, a.inter2id, a.inter2nom, a.inter3type, a.inter3id, a.inter3nom, a.tribunal, a.complement, a.dateInsert, t.triNom, t.triSiret, t.triCP, e.raisonSociale, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, e.adr_comp, e.adr_cp, e.adr_ville', "a.siren=$siren AND a.tribunal=t.triCode AND a.siren=e.siren GROUP BY e.siren ORDER BY e.siege DESC, e.actif DESC, a.dateJugement DESC", true, MYSQL_ASSOC); if (count($collecte)>0) { foreach ($collecte as $ann) { $dept=substr($ann['triCP'],0,2)*1; if ($dept==97) $dept=substr($ann['triCP'],0,3)*1; $adresse=''; if ($ann['adr_num']*1<>0) $adresse.=($ann['adr_num']*1).' '.strtolower($ann['adr_btq']); $adresse.=strtolower($ann['adr_typeVoie']).' '.ucfirst(strtolower($ann['adr_libVoie'])); if (trim($ann['adr_comp'])<>'') $adresse.=', '.$ann['adr_comp'].', '; $adresse=preg_replace('/ +/',' ', $adresse); $texteAnnonce= 'Date : '.strtolower(WDate::dateT('Y-m-d','d M Y',$ann['dateJugement'])) .'. '. $this->iBodacc->getEvenement($ann['typeEven']).'. '. $ann['siren'] . ' RCS '. ucfirst(strtolower(strtr($ann['triNom'], array('TGIcc '=>'','TGI '=>'','TC '=>'','TI '=>'',)))).'. '. trim($ann['raisonSociale']). '. Adresse : '. $adresse.' '.$ann['adr_cp'].' '.$ann['adr_ville'].'. '; // Nom // Activité, Adresse if ($ann['dateCessationPaiement']*1<>0) $texteAnnonce.='Cessation des paiements le '.strtolower(WDate::dateT('Y-m-d','d M Y',$ann['dateCessationPaiement'])).'. '; if (trim($ann['inter1type'])<>'' && ($ann['inter1id']>0 || trim($ann['inter1nom'])<>'') ) { $texteAnnonce.=$tabInter[$ann['inter1type']].' : '.$ann['inter1nom']; if ($ann['inter1id']<>0) { $tabTmp=$this->iDb->select( 'tabMandataires', 'sirenGrp, sirenMand, tel, fax, email', 'id='.$ann['inter1id'], true, MYSQL_ASSOC); $mand=$tabTmp[0]; if ($mand['sirenGrp']<>0) $texteAnnonce.=', Siren SCP '.$mand['sirenGrp']; if ($mand['sirenMand']<>0) $texteAnnonce.=', Siren '.$mand['sirenMand']; if ($mand['tel']<>'') $texteAnnonce.=', Telephone '.$mand['tel']; if ($mand['fax']<>'') $texteAnnonce.=', Telecopie '.$mand['fax']; if ($mand['email']<>'') $texteAnnonce.=', E-mail : '.$mand['email']; } $texteAnnonce.='. '; } if (trim($ann['inter2type'])<>'' && ($ann['inter2id']>0 || trim($ann['inter2nom'])<>'') ) { $texteAnnonce.=$tabInter[$ann['inter2type']].' : '.$ann['inter2nom']; if ($ann['inter2id']<>0) { $tabTmp=$this->iDb->select( 'tabMandataires', 'sirenGrp, sirenMand, tel, fax, email', 'id='.$ann['inter2id'], true, MYSQL_ASSOC); $mand=$tabTmp[0]; if ($mand['sirenGrp']<>0) $texteAnnonce.=', Siren SCP '.$mand['sirenGrp']; if ($mand['sirenMand']<>0) $texteAnnonce.=', Siren '.$mand['sirenMand']; if ($mand['tel']<>'') $texteAnnonce.=', Telephone '.$mand['tel']; if ($mand['fax']<>'') $texteAnnonce.=', Telecopie '.$mand['fax']; if ($mand['email']<>'') $texteAnnonce.=', E-mail : '.$mand['email']; } $texteAnnonce.='. '; } if (trim($ann['inter3type'])<>'' && ($ann['inter3id']>0 || trim($ann['inter3nom'])<>'') ) { $texteAnnonce.=$tabInter[$ann['inter3type']].' : '.$ann['inter3nom']; if ($ann['inter3id']<>0) { $tabTmp=$this->iDb->select( 'tabMandataires', 'sirenGrp, sirenMand, tel, fax, email', 'id='.$ann['inter3id'], true, MYSQL_ASSOC); $mand=$tabTmp[0]; if ($mand['sirenGrp']<>0) $texteAnnonce.=', Siren SCP '.$mand['sirenGrp']; if ($mand['sirenMand']<>0) $texteAnnonce.=', Siren '.$mand['sirenMand']; if ($mand['tel']<>'') $texteAnnonce.=', Telephone '.$mand['tel']; if ($mand['fax']<>'') $texteAnnonce.=', Telecopie '.$mand['fax']; if ($mand['email']<>'') $texteAnnonce.=', E-mail : '.$mand['email']; } $texteAnnonce.='. '; } if (trim($ann['complement'])<>'') $texteAnnonce.=' Observations : '.trim($ann['complement']).'.'; /** Si la procédure à moins de 4 mois on l'affiche **/ if ((str_replace('-','',$ann['dateJugement'])*1)>=$debutForclusion) $tabRet[]=array('id'=>'0.'.$ann['id'], 'BodaccCode'=>0, 'BodaccNum'=>0, 'NumAnnonce'=>0, 'DateParution'=>$ann['dateInsert'], 'Departement'=>$dept, 'Tribunal'=>$ann['triNom'], 'TribunalSiret'=>$ann['triSiret'], 'Rubrique'=>'procol', 'typeAnnonce'=>'insertion', 'dateEffet'=>$ann['dateCessationPaiement'], 'dateJugement'=>$ann['dateJugement'], 'dateInsertionSD'=>$ann['dateInsert'], 'evenements'=>array(array('CodeEven'=>$ann['typeEven'],'LibEven'=>$this->iBodacc->getEvenement($ann['typeEven']))), 'texteAnnonce'=>$texteAnnonce, ); } } } return $tabRet; } function listeConventions($naf4, $dep=0) { $dep=$dep*1; if ($dep>0) { if ($dep<10) $dep='Dep0'.$dep; else $dep='Dep'.$dep; $strDep="AND (n.territoire='' OR n.territoire LIKE '%$dep%')"; } $listeCC=$this->iDb->select('conv_naf n, conventions c', 'n.`id CC`, n.`nom CC`, n.`editeur CC`, n.`nb page CC`, n.`isbn CC`, n.`date edition CC`, c.infoCC, joCCmaj', "n.naf='$naf4' AND substring(n.`id CC`,1,4)=c.numBrochure $strDep GROUP BY n.`id CC`", false, MYSQL_ASSOC); return $listeCC; } /* $tabRet['nbEtab']=trim(strip_tags(str_replace('afficher la liste...', '', @getTextInHtml($pou, 'Etablissements', '', '')))); /*$urlPEtab='http://www.score3.fr/etablissements.shtml?page=1&siren='.$siren; $refererPEtab=$urlP; } $tabRet['effectif']=trim(@getTextInHtml($pou, 'Effectifs', '', '')); $strTmp=trim(str_replace('/','',@getTextInHtml($pou, 'Date d\'immatriculation', '', ''))); if (strlen($strTmp)==4) $strTmp='0101'.$strTmp; elseif (strlen($strTmp)==6) $strTmp='01'.$strTmp; $tabRet['dateCreation']=WDate::dateT('dmY','Y-m-d',$strTmp); $strTmp=trim(str_replace('/','',@getTextInHtml($pou, 'Date de fin d\'exploitation', '', ''))); if (strlen($strTmp)==4) $strTmp='0101'.$strTmp; elseif (strlen($strTmp)==6) $strTmp='01'.$strTmp; $tabRet['dateFermeture']=WDate::dateT('dmY','Y-m-d',$strTmp); if($tabRet['tel']=='' || $tabRet['tel']=='0') $tabRet['tel']=trim(@getTextInHtml($pou, 'Téléphone', '', '')); if($tabRet['fax']=='' || $tabRet['fax']=='0') $tabRet['fax']=trim(@getTextInHtml($pou, 'Fax', '', '')); $strTmp=trim(@getTextInHtml($pou, 'Activité principale', '', '')); $tabRet['naf_lib']=trim(strtr(substr($strTmp,0,strlen($strTmp)-6),'()',' ')); if ($tabRet['naf']=='') $tabRet['naf']=trim(strtr(substr($strTmp,-6),'()',' ')); $strTmp=trim(@getTextInHtml($pou, 'Chiffre d\'affaires', '', '')); $tabRet['ca']=$strTmp; $tabRet['score_pouey']=trim(@getTextInHtml($pou, '')); $tabRet['score_conan']=trim(@getTextInHtml($pou, '')); $tabRet['score_afdcc']=trim(@getTextInHtml($pou, '')); $tabRet['vigilance'] =trim(@getTextInHtml($pou, '')); return $tabRet; } */ private function findSiteWeb($rs) { $referer='http://www.google.fr/'; $url='http://www.google.fr/search?hl=fr&q='.urlencode($rs).'&btnG=Rechercher&meta=cr%3DcountryFR'; $page=getUrl($url, '', '', $referer, false, 'www.google.fr','', 5); $fp=fopen('./findSiteWeb.log', 'a+'); if ($page['code']==200) { $levMin=100; $pctMin=0; $urlLev=$urlPct=''; $body=$page['body']; preg_match_all('/
$url) { $lev=@levenshtein ($urlapprox,$url); if ($lev>0 && $lev<$levMin) { $levMin=$lev; $urlLev=$url; } $sim=similar_text($urlapprox,$url,$pct); if ($pct>$pctMin && strpos($url, 'zonebourse')===false) { $pctMin=$pct; $urlPct=$url; } fwrite($fp, date('Y-m-d H:i:s') .' - '. $page['code'] . "- $rs - $i - $lev - $pct - $urlLev - $urlPct - $url\n"); //2008-05-20 20:01:08 - 200- ARKEMA FRANCE - 53 - 20 - 10 - http://www.arkema.fr/ - http://www.zonebourse.com/ARKEMA-17031/ - /intl/fr/about.html } fclose($fp); if ($pctMin>70 && $levMin<13 & $urlLev==$urlPct) return $urlLev; return false; } fclose($fp); return false; } } ?>