'Modification de l\'établissement', 'iOA'=>'Activation économique de l\'établissement par adjonction de moyens de production', 'i0C'=>'Création de l\'établissement', 'iOD'=>'Désactivation économique de l\'établissement par suppression de moyens de production', 'i0F'=>'Fermeture de l\'établissement', 'iOR'=>'Modification simple ou modification de moyen de production de l\'établissement', 'iCC'=>'Création de l\' entreprise par création du premier établissement', 'iRC'=>'Réactivation de l\'entreprise par création de l\'établissement', 'iRR'=>'Réactivation de l\'entreprise par réactivation de l\'établissement', 'iFF'=>'Fermeture de l\'établissement entraînant la fermeture de l\'entreprise', 'iTC'=>'Création de l\'établissement dans le cadre d\'un transfert', 'iTR'=>'Réactivation de l\'établissement dans le cadre d\'un transfert', 'iTO'=>'Modification simple ou de moyens de production sur l\'établissement dans le cadre d\'un transfert', 'iTA'=>'Activation économique de l\'établissement par adjonction de moyens de production dans le cadre d\'un transfert', 'iTD'=>'Désactivation économique de l\'établissement par suppression de moyens de production dans le cadre d\'un transfert', 'iTF'=>'Fermeture de l\'établissement dans le cadre d\'un transfert', 'iER'=>'Modification ERR de l\'établissement', // Evènements Crées par différentiel de la Mensuelle Insee par S&D 'iM0C'=>'Création de l\'établissement', 'iM0F'=>'Fermeture de l\'établissement', 'iM0R'=>'Réactivation de l\'établissement', 'iM00'=>'Modification de l\'établissement', 'iMAS'=>'Modification de la nature d\'activité et de la saisonalité', 'iMAC'=>'Modification de la nature d\'activité de l\'établissement', 'iMSA'=>'Modification de la saisonalité de l\'établissement', // Evènements Crées par diff3+4 'iMPF'=>'Etablissement présumé fermé (PSA, NPAI, etc...)', // Nouveaux évènements Sirene3 de la quotidienne Insee 'i110'=>'Création de l\'entreprise', 'i120'=>'Réactivation de l\'entreprise', 'i125'=>'Réactivation de l\'entreprise suite à une mise à jour du répertoire SIRENE', 'i130'=>'Création de l\'établissement', 'i145'=>'Reprise d\'activité de l\'établissement suite à une mise à jour du répertoire SIRENE', 'i400'=>'Suppression du doublon', 'i410'=>'Cessation juridique de l\'entreprise', 'i420'=>'Absence d\'activité de l\'entreprise (cessation économique de l\'entreprise)', 'i425'=>'Absence d\'activité d\'une entreprise suite à une mise à jour au répertoire SIRENE', 'i430'=>'Fermeture de l\'établissement', 'i435'=>'Fermeture de l\'établissement suite à une mise à jour au répertoire SIRENE', 'i510'=>'Création de l\'établissement d\'arrivée et cessation de l\'établissement de départ dans le cadre d\'un transfert', 'i520'=>'Création de l\'établissement d\'arrivée et modification de l\'établissement de départ dans le cadre d\'un transfert', 'i530'=>'Modification de l\'établissement d\'arrivée et cessation de l\'établissement de départ dans le cadre d\'un transfert', 'i540'=>'Modification de l\'établissement d\'arrivée et modification de l\'établissement de départ dans le cadre d\'un transfert', 'i610'=>'Modification d\'activité au niveau du SIREN associé à une activation économique par adjonction de moyens de production', 'i620'=>'Modification d\'activité au niveau du SIREN associé à une désactivation économique par suppression de moyens de production', 'i621'=>'Modification d\'activité du SIREN associé à une désactivation économique par suppression de moyens de production suite à une correction d\'erreur', 'i631'=>'Modification d\'activité du SIREN associé', 'i640'=>'Modification d\'activité au niveau de l\'établissement associée à une activation économique par adjonction de moyens de production', 'i650'=>'Modification d\'activité au niveau de l\'établissement associée à une désactivation économique par suppression de moyens de production', 'i661'=>'Modification d\'activité de l\'établissement', 'i710'=>'Modification de l\'identification du SIREN', 'i711'=>'Modification de l\'identification du SIREN suite à correction d\'erreur', 'i720'=>'Modification de l\'adresse ou de l\'identification de l\'établissement', 'i780'=>'Modification de l\'établissement', 'i781'=>'Modification de l\'établissement suite à correction d\'erreur', 'i795'=>'Personne radiée à sa demande de de la base SIRENE diffusion', ); global $tabDestinat; $tabDestinat=array( 'i3'=>'Etablissement vendu', 'i7'=>'Maintien d\'activité, l\'établissement devient siège', 'i8'=>'Maintien d\'activité, l\'établissement devient principal', 'iA'=>'Maintien d\'activité, l\'établissement devient secondaire', 'iB'=>'Etablissement fermé', 'iC'=>'Etablissement supprimé', 'iD'=>'Mise en location-gérance de la totalité du fonds', 'iE'=>'Mise en location-gérance d\'une partie du fonds', 'iF'=>'Cessation d\'activité (pour les liasses agricoles)', 'iG'=>'Mise en location-gérance de la totalité des terres et des bâtiments agricoles (pour les liasses agricoles)', 'iH'=>'Mise en location-gérance d\'une partie des terres et des bâtiments agricoles (pour les liasses agricoles)', 'iI'=>'Transmission au conjoint (pour les liasses agricoles)', 'iJ'=>'Cession (pour les liasses agricoles)', 'iVP'=>'Suppression partielle d\'activité par vente', 'iDP'=>'Suppression partielle d\'activité par disparition', 'iRP'=>'Suppression partielle d\'activité par reprise par le propriétaire', ); global $tabTypEtab; $tabTypEtab=array( 'i00'=>'Rappel des données de l’établissement du siège en cas de modification exclusive de l\'entreprise', 'i08'=>'Siège avant transfert non fermé', 'i09'=>'Siège après transfert non créé', 'i10'=>'Siège avant transfert fermé', 'i11'=>'Siège après transfert créé', 'i12'=>'Siège créé (hors transfert)', 'i13'=>'Siège fermé (hors transfert)', 'i14'=>'Siège modifié (hors transfert) : modification de l\'activité principale avec activation économique', 'i15'=>'Siège modifié (hors transfert) : modification de l\'activité principale avec désactivation économique', 'i16'=>'Siège modifié (hors transfert) : modification de l\'activité principale de l\'établissement', 'i17'=>'Siège modifié (hors transfert) : modification de l\'identification de l\'établissement', 'i19'=>'Siège modifié (hors transfert) : autre modification de l\'établissement', 'i20'=>'Établissement avant transfert fermé', 'i21'=>'Établissement après transfert créé', 'i22'=>'Établissement créé (hors transfert)', 'i23'=>'Établissement fermé (hors transfert)', 'i24'=>'Établissement modifié (hors transfert) : modification de l\'activité principale avec activation économique', 'i25'=>'Établissement modifié (hors transfert) : modification de l\'activité principale avec désactivation économique', 'i26'=>'Établissement modifié (hors transfert) : autre modification de l\'activité principale de l\'établissement', 'i27'=>'Établissement modifié (hors transfert) : modification de l\'identification de l\'établissement', 'i29'=>'Établissement modifié (hors transfert) : modification d’une autre variable de l\'établissement', 'i30'=>'Établissement avant transfert non fermé', 'i31'=>'Établissement après transfert non créé', 'i32'=>'Établissement supprimé', ); include_once(FWK_PATH.'sphinx/recherche.php'); include_once(INCLUDE_PATH.'bodacc/classMBodacc.php'); include_once(INCLUDE_PATH.'bodacc/classMBalo.php'); include_once(INCLUDE_PATH.'partenaires/classMTva.php'); include_once(INCLUDE_PATH.'partenaires/classMMap.php'); include_once(INCLUDE_PATH.'partenaires/classMAmabis.php'); class MInsee { private static $tabFct=array( 'ADM'=>'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 static $tabEven=array( 'i110'=>'Création d\'une entreprise', 'i120'=>'Réactivation d\'une entreprise', 'i125'=>'Réactivation d\'une entreprise suite à une mise à jour du répertoire', 'i130'=>'Création d\'un établissement', 'i145'=>'Reprise d\'activité dans un établissement suite à une mise à jour du répertoire', 'i400'=>'Suppression d\'un double', 'i410'=>'Cessation juridique de l\'entreprise', 'i420'=>'Absence d\'activité de l\'entreprise (cessation économique de l\'entreprise)', 'i425'=>'Absence d\'activité d\'une entreprise suite à une mise à jour au répertoire', 'i430'=>'Fermeture d\'un établissement', 'i435'=>'Fermeture d\'un établissement suite à une mise à jour au répertoire', 'i510'=>'Création de l\'établissement d\'arrivée et cessation de l\'établissement de départ dans le cadre d\'un transfert', 'i520'=>'Création de l\'établissement d\'arrivée et modification de l\'établissement de départ dans le cadre d\'un transfert', 'i530'=>'Modification de l\'établissement d\'arrivée et cessation de l\'établissement de départ dans le cadre d\'un transfert', 'i540'=>'Modification de l\'établissement d\'arrivée et modification de l\'établissement de départ dans le cadre d\'un transfert', 'i610'=>'Modification d\'activité au niveau du SIREN associé à une activation économique par adjonction de moyens de production', 'i620'=>'Modification d\'activité au niveau du SIREN associé à une désactivation économique par suppression de moyens de production', 'i621'=>'Modification d\'activité du SIREN associé à une désactivation économique par suppression de moyens de production suite à une correction d\'erreur', 'i631'=>'Autre modification d\'activité du SIREN associé', 'i640'=>'Modification d\'activité au niveau de l\'établissement associée à une activation économique par adjonction de moyens de production', 'i650'=>'Modification d\'activité au niveau de l\'établissement associée à une désactivation économique par suppression de moyens de production', 'i661'=>'Autre modification d\'activité au niveau de l\'établissement', 'i710'=>'Modification de l\'identification du SIREN', 'i711'=>'Modification de l\'identification du SIREN suite à correction d\'erreur', 'i720'=>'Modification de l\'adresse ou de l\'identification de l\'établissement', 'i780'=>'Autre modification entraînant la mise à jour d\'au moins une variable du répertoire', 'i781'=>'Autre modification entraînant la mise à jour d\'au moins une variable du répertoire suite à correction d\'erreur', ); 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) { /** Si le siren est de taille < à 9, on ajoute des 0 significatifs **/ switch (strlen($siren)) { case 1: $siren='00000000'.$siren; break; case 2: $siren='0000000'.$siren; break; case 3: $siren='000000'.$siren; break; case 4: $siren='00000'.$siren; break; case 5: $siren='0000'.$siren; break; case 6: $siren='000'.$siren; break; case 7: $siren='00'.$siren; break; case 8: $siren='0'.$siren; break; } if (!valideData($siren, 9, 9,'N')) //Siren non précisé ou incorrect. return $erreur; elseif ($siren*1==0) // Siren vide 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='', $ape_etab='') { 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<100) { $dep=$cp; $cp=false; } // Remettre à 96 quand cela fonctionnera 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,2); $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 @ape_etab $ape_etab", 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); elseif (preg_match('/DEFENSE/i', $ville)) { $tabFiltresCP=array('adr_dep'=>92); $ville=''; } $ret=search('etab', "@nom $raisonSociale @adresse $adresse @ville $ville @ape_etab $ape_etab", 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', "@nom $raisonSociale @adresse $adresse @ville $ville @ape_etab $ape_etab", 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', "@nom $raisonSociale @adresse $adresse @ville $ville @ape_etab $ape_etab", 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) { $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++; } return array( 'criteres'=>array('rs'=>$raisonSociale, 'adresse'=>trim($numAdresse.' '.$adresse), 'cp'=>$codePostal, 'ville'=>$ville, 'naf'=>$ape_etab,), '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('/var/www/includes/insee/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 getEvenements($siren) { global $tabEvenInsee; global $tabDestinat; global $tabTypEtab; $tabRet=array(); $insee=$this->iDbInsee->select('insee_even', 'id, insSIREN, siretValide, insNIC, insLIBCOM, insSIEGE, insAUXILT, insORIGINE, insTEFET, insAPET700, insAPRM, insMODET, insMARCHET, insSAISONAT, insACTIVNAT, insENSEIGNE, insL1_NOMEN, insL2_COMP, insL4_VOIE, insL3_CADR, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE, insL5_DISP, insL6_POST, insCODPOS, insL7_ETRG, insRPET, insDEPCOM, insCODEVOIE, insDREACTET, insEXPLET, insDAPET, insLIEUACT, insACTISURF, insDEFET, insTEL, insCJ, insCIVILITE, insTEFEN, insAPEN700, insMODEN, insMARCHEN, insNOMEN, insTYPCREH, insEVE, insDATEVE, insTRAN, insNICTRAN, insMNICSIEGE, insMNOMEN, insMCJ, insMAPEN, insFiller1, insFiller2, insMMARCHEN, insMORDIN, insEFENCENT, insSIGLE, insNBETEXPL, insNICSIEGE, insDEPCOMEN, insFiller3, insMENSEIGNE, insMAPET, insMNATURE, insMADRESSE, insMEFET, insMSINGT, insMTELT, insMMARCHET, insMAUXILT, insSINGT, insEFETCENT, insSIRETPS, insDESTINAT, insDATEMAJ, idFlux, dirNom, dirNomUsage, dirPrenom, insDCRET, insDCREN, insPRODPART, insSIRETASS, insDREACTEN, insEXPLEN, insFiller4, insDEFEN, insMONOREG, insREGIMP, insMONOACT, insMSIGLE, insMEXPLEN, insRPEN, insMEXPLET, insTYPETAB, insDAPEN', "insSIREN=$siren ORDER BY insDATEMAJ DESC LIMIT 0,4500",false, MYSQL_ASSOC); foreach ($insee as $i=>$even) { $libDet=''; if ($even['insMNOMEN']==1) $libDet.='Modification de la raison sociale : '.$even['insNOMEN'].', '; if ($even['insMENSEIGNE']==1) $libDet.='Modification de l\'enseigne : '.$even['insENSEIGNE'].', '; if ($even['insMSIGLE']==1) $libDet.='Modification du sigle : '.$even['insSIGLE'].', '; if ($even['insMAPEN']==1) $libDet.='Modification de l\'activité de l\'entreprise : '.$even['insAPEN700'].', '; if ($even['insMAPET']==1) $libDet.='Modification de l\'activité de l\'établissement : '.$even['insAPET700'].', '; if ($even['insMNICSIEGE']==1) $libDet.='Modification du nic du siège : '.$even['insNICSIEGE'].', '; if ($even['insMADRESSE']==1) $libDet.='Modification de l\'adresse : '.$even['insL2_COMP'].' '.$even['insL3_CADR'].' '.$even['insL4_VOIE'].' '.$even['insL5_DISP'].' '.$even['insL6_POST'].' '.$even['insL7_ETRG'].', '; if ($even['insMEFET']==1) $libDet.='Modification de l\'effectif : '.$even['insEFENCENT'].' (Tranche '.$even['insTEFET'].'), '; if ($even['insEXPLET']=='O') $strTmp='Exploitant'; elseif ($even['insEXPLET']=='N')$strTmp='Non exploitant participant au système productif'; elseif ($even['insEXPLET']=='X')$strTmp='Non exploitant ne participant pas au système productif'; if ($even['insMEXPLET']==1) $libDet.='Modification du caractère exploitant de l\'établissement : '.$strTmp.', '; if ($even['insEXPLEN']=='O') $strTmp='Exploitant'; elseif ($even['insEXPLEN']=='N')$strTmp='Non exploitant participant au système productif'; elseif ($even['insEXPLEN']=='X')$strTmp='Non exploitant ne participant pas au système productif'; if ($even['insMEXPLEN']==1) $libDet.='Modification du caractère exploitant de l\'entreprise : '.$strTmp.', '; if ($even['insMCJ']==1) $libDet.='Modification de la forme juridique : '.$even['insCJ'].', '; if ($even['insAUXILT']==1) $strTmp='Auxiliaire'; else $strTmp='Non auxiliaire'; if ($even['insMAUXILT']==1) $libDet.='Modification du caractère auxiliaire de l\'établissement : '.$strTmp.', '; if (trim($even['insDESTINAT'])<>'' && $even['insDESTINAT']<>'NR' && $even['insDESTINAT']*1<>9) $libDet.=$tabDestinat['i'.trim($even['insDESTINAT'])].', '; $libDet.=$tabTypEtab['i'.trim($even['insTYPETAB'])].', '; $siretAss=$even['insSIRETPS']; if ($siretAss*1==0) $siretAss=$even['insSIRETASS']; $tabRet[]=array('codeEven' => 'I'.$even['insEVE'], 'nic' => $even['insNIC'], 'siretAssocie'=>''.$siretAss*1, 'siege' => $even['insSIEGE'], 'libEven' => $tabEvenInsee['i'.trim($even['insEVE'])], 'libEvenDet'=> substr($libDet,0,-3), 'dateMAJ' => $even['insDATEMAJ'], 'dateEven' => $even['insDATEVE'], ); /* id, siretValide, insLIBCOM, insAUXILT, insORIGINE, insTEFET, insAPET700, insAPRM, insMODET, insMARCHET, insSAISONAT, insACTIVNAT, insENSEIGNE, insL1_NOMEN, insL2_COMP, insL4_VOIE, insL3_CADR, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE, insL5_DISP, insL6_POST, insCODPOS, insL7_ETRG, insRPET, insDEPCOM, insCODEVOIE, insDREACTET, insEXPLET, insDAPET, insLIEUACT, insACTISURF, insDEFET, insTEL, insCJ, insCIVILITE, insTEFEN, insAPEN700, insMODEN, insMARCHEN, insNOMEN, insTYPCREH, insEVE, insDATEVE, insTRAN, insNICTRAN, insMNICSIEGE, insMNOMEN, insMCJ, insMAPEN, insFiller1, insFiller2, insMMARCHEN, insMORDIN, insEFENCENT, insSIGLE, insNBETEXPL, insNICSIEGE, insDEPCOMEN, insFiller3, insMENSEIGNE, insMAPET, insMNATURE, insMADRESSE, insMEFET, insMSINGT, insMTELT, insMMARCHET, insMAUXILT, insSINGT, insEFETCENT, insSIRETPS, insDESTINAT, , idFlux, dirNom, dirNomUsage, dirPrenom, insDCRET, insDCREN, insPRODPART, insSIRETASS, insDREACTEN, insEXPLEN, insFiller4, insDEFEN, insMONOREG, insREGIMP, insMONOACT, insMSIGLE, insMEXPLEN, insRPEN, insMEXPLET, insTYPETAB, insDAPEN */ } return $tabRet; } public function getLibelleFJ($code_forme_juridique) { $fj=$code_forme_juridique*1; if ($fj>0 && $fj<10000) { $tmp=$this->iDb->select( 'tabFJur', 'libelle AS LibFJ', "code=$fj"); return @$tmp[0][0]; } else return 'En instance de chiffrement'; } /** 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']=$ligne; unset($tabRet['adrComp'.$k]); } return $tabRet; } public function getEtablissements($siren, $nic='', $deb=0, $nbRep=20, $maxRep=200, $dep=0) { $this->setTabCodesNaf(); $deb=$deb*1; $dep=$dep*1; $nbRep=$nbRep*1; $limit="LIMIT $deb, $nbRep"; if ($dep>0 && $dep<99999) { if ($dep<96) $strDep='AND adr_cp BETWEEN '.$dep.'000 AND '.$dep.'999'; elseif ($dep>9999) $strDep="AND adr_cp BETWEEN $dep AND $dep"; else $strDep='AND adr_cp BETWEEN '.$dep.'00 AND '.$dep.'99'; $tabTmp=$this->iDb->select('etablissements', 'count(*)', "siren=$siren $strDep"); $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", "siren=$siren $strDep ORDER BY e.siege , e.actif DESC $limit", true, MYSQL_ASSOC); } elseif ($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) { $tel=sprintf('%010d', strtr($etab['tel'],array('-'=>'', '/'=>'','.'=>'',','=>''))); if ($tel<>'0000000000') $tel=implode('.', str_split($tel,2)); else $tel=''; $fax=sprintf('%010d', strtr($etab['fax'],array('-'=>'', '/'=>'','.'=>'',','=>''))); if ($fax<>'0000000000') $fax=implode('.', str_split($fax,2)); else $fax=''; $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'=>$tel, 'Fax'=>$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']), ); } if ($dep==0) $dep=''; // Evite l'affichage d'un 0 inutile sur l'Extranet return array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep), 'nbReponses'=>count($tabRet), 'nbReponsesTotal'=>$nbTot, 'reponses'=>$tabRet); } public function getEtablissementsParId($typeId, $id, $deb=0, $nbRep=20, $maxRep=200, $dep=0) { $this->setTabCodesNaf(); $deb=$deb*1; $dep=$dep*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); /*if (count($listeEtab)==0) { $iAmabis=new MAmabis(); $repAmabis=$iAmabis->searchByTelFax($id); }*/ } elseif ($typeId=='AUTRE') { /** Formatage des numéros de RC **/ $tabId=array($id); if (preg_match('/(\d*)(\D)(\d*)/', $id,$matches)) { if (strlen($matches[1])<=2) { // Années du type 54 ou 07 if ($matches[1]>date('y')) $deb='19'.$matches[1]; else $deb='20'.$matches[1]; } else // Années du type 1900 ou 2000 $deb=substr($matches[1],2,2); $numero =$matches[3]*1; for ($i=strlen($numero); $i<=7; $i++) { $tabId[]=$matches[1].$matches[2].sprintf('%0'.$i.'s',$numero); $tabId[]=$deb.$matches[2].sprintf('%0'.$i.'s',$numero); } } $strId=implode("','", $tabId); /** Gestion du numéro de département ou CP **/ $strDep=''; if ($dep>0 && $dep<99999) { if ($dep<96) $strDep='AND adr_cp BETWEEN '.$dep.'000 AND '.$dep.'999'; elseif ($dep>9999) $strDep="AND adr_cp BETWEEN $dep AND $dep"; else $strDep='AND adr_cp BETWEEN '.$dep.'00 AND '.$dep.'99'; } $tabTmp=$this->iDb->select('etablissements', 'count(*)', "autre_id IN ('$strId') $strDep"); $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 IN ('$strId') $strDep 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']), ); } if ($dep==0) $dep=''; // Evite l'affichage d'un 0 inutile sur l'Extranet return array( 'criteres'=>array('autreId'=>$id, 'dep'=>$dep), '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 l'identité issue de la table établissements ** ** @param integer $siren ** @return bool **/ function getIdentiteLight($siren, $nic=0, $id=0) { $siren=$siren*1; $nic=$nic*1; $id=$id*1; $limit=''; //LIMIT O,1' ; if ($id>0 && $siren<100) $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.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, nic DESC $limit", false, MYSQL_ASSOC); $etab=@$listeEtab[0]; $tabRet=array( 'id'=>$etab['id'], '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'])), 'AdresseNum'=>$etab['adr_num'], 'AdresseBtq'=>$etab['adr_btq'], 'AdresseVoie'=>$etab['adr_typeVoie'], 'AdresseRue'=>$etab['adr_libVoie'], 'CP'=>$etab['adr_cp'], 'Ville'=>$etab['adr_ville'], 'Tel'=>$etab['tel'], 'Fax'=>$etab['fax'], 'FJ'=>$etab['cj'], 'FJ_lib'=>$this->getLibelleFJ($etab['cj']), 'Siren'=>$etab['siren'], 'Nic'=>$etab['nic'], 'Actif'=>$etab['actif'], 'NafEtab'=>$etab['ape_etab'], 'NafEnt'=>$etab['ape_entrep'], 'NafEntLib' =>$this->getLibelleNaf($etab['ape_entrep']), 'NafEtabLib'=>$this->getLibelleNaf($etab['ape_etab']), 'AutreId'=>$etab['autre_id'], 'Source'=>$etab['source'], 'SourceId'=>$etab['source_id'], ); return $tabRet; } /** 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/oppositions d'une 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 ** @param array $type Type d'opposition. Ex array('A','M') pour Admin/Mandataires. Autres: a'V'ocat,'H'uissier,'N'otaire ** @return Liste des Mandataires/Administrateurs de la cours d'appel **/ function getMandataires($arrIdCA=array(), $condense=true, $type=array()) { if (count($arrIdCA)>0) $strIdCA='AND ( coursAppel in ('.implode(',', $arrIdCA).') OR coursAppel2 in ('.implode(',', $arrIdCA).') )'; else $strIdCA=''; if (count($type)>0) $strType="AND type in ('".implode("','", $type)."') "; else $strType=''; 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 $strType 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 la liste des mandataires/administrateurs/oppositions correspondant à un nom ** ** @param string $nom Nom du mandataire ** @param bool $condense Par défaut retourne un tableau concatenant Nom, prenom, adresse complète ** @param array $type Type d'opposition. Ex array('A','M') pour Admin/Mandataires. Autres: a'V'ocat,'H'uissier,'N'otaire ** @return Liste des Mandataires/Administrateurs de la cours d'appel **/ function searchMandataires($nom, $condense=true, $type=array()) { $strIdCA="AND (Nom LIKE '%$nom%' OR Prenom LIKE '%$nom%') "; if (count($type)>0) $strType="AND type in ('".implode("','", $type)."') "; else $strType=''; 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 $strType 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; } /** Récupère les informations du mandataire ** ** @param integer $idMand Identifiant SD du mandataire ** @return array **/ function getMandataire($idMand) { $fields='id,sirenGrp,sirenMand,Nom,Prenom,type,coursAppel,coursAppel2,tribunal,Statut,stagiaire,adresse,adresseComp,cp,ville,tel,fax,email,web,contact'; $liste=$this->iDb->select('tabMandataires', $fields, "id=$idMand", true, MYSQL_ASSOC); return @$liste[0]; } function getHuissiers($arrIdCA=array(), $condense=true) { if (count($arrIdCA)>0) $strIdCA="AND tribunal 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 AND type='H' $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']); //@wsLog('HUISSIERS',$strIdCA,count($liste)); 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, $accesDist=true) { //$accesDist=false; /* $fp=fopen('/var/www/log/infoVat.log', 'a'); fwrite($fp, "MInsee->getIdentiteEntreprise pour $siren $nic id=$id, Vérif=$forceVerif, Accès=$accesDist\n"); fclose($fp); */ $siren=$siren*1; $nic=$nic*1; $id=$id*1; $limit=''; //LIMIT O,1' ; if ($id>0 && $siren<100) $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, ". "e.capital, e.capitalDev, e.capitalSrc, CONCAT(e.siren, e.nic) as siret, e.actif", "$where ORDER BY siege DESC, actif DESC, nic DESC $limit", false, MYSQL_ASSOC); $etab=@$listeEtab[0]; /** Si le siren est valide, on part chez Infogreffe **/ if (count($listeEtab)==0 && $this->valideSiren($siren)) { $iGeffes=new MGreffes(); $etabG=$iGeffes->getIdentite($siren); if ($etabG) { $adr=$this->structureVoie($etabG['Adresse']); /*, e.source, e.source_id, e.triCode,". */ $etab=array( 'id' => $etabG['id'], 'siret' => $etabG['Siret'], 'siege' => $etabG['Siege'], 'raisonSociale' => $etabG['Nom'], 'sigle' => $etabG['Sigle'], 'enseigne' => $etabG['Enseigne'], 'Adresse' => $etabG['Adresse'], 'adr_comp' => $etabG['Adresse2'], 'adr_num' => $adr['num'], 'adr_btq' => $adr['adr_btq'], 'adr_typeVoie' => $adr['typeVoie'], 'adr_libVoie' => $adr['libVoie'], 'adr_dep' => substr($etabG['CP'],0,2), 'adr_cp' => $etabG['CP'], 'adr_ville' => $etabG['Ville'], 'tel' => $etabG['Tel'], 'fax' => $etabG['Fax'], 'cj' => $etabG['FJ'], // 'FJLib' => prepareString($etab['FJLib']), 'siren' => $etabG['Siren'], 'nic' => $etabG['Nic'], 'actif' => $etabG['Actif'], 'ape_etab' => $etabG['NafEtab'], //'NafEtabLib'=> prepareString($etab['NafEtabLib']), 'ape_entrep' => $etabG['NafEnt'], //'NafEntLib' => prepareString($etab['NafEntLib']), 'autre_id' => $etabG['NumRC'], //'source' => $etab['source'], //'sourceId'=>$etab['source_id'], //'triCode'=>$etab['source_id'], ); } } unset($listeEtab); if ($siren>100) { $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'; $moisNonDiff=0; if ($siren>100) { $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, APRM, ACTIVNAT, ORIGINE, MODET, EXPLET, LIEUACT, ACTISURF, DEFET, MODEN, PRODPART, EXPLEN, MONOREG, REGIMP, MONOACT', "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]; $inseeND=$this->iDbInsee->select('insee_nondiff', 'siren, mois, dateInsert',"siren=$siren",false,MYSQL_ASSOC); $moisNonDiff=@$tabTmp[0]['mois']; } 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'], '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'=>$etab['adr_dep'], ); $nbEtab='N/C'; } //$accesDist=false; if (count($info)==0 && $accesDist) { $ligne=date('YmdHis').";$siren;getIdentitePart AVANT"; $fp=fopen('/var/www/log/accesDistant.log', 'a'); fwrite($fp,$ligne.EOL); fclose($fp); $idComp=$this->getIdentitePart($siren, $etab['raisonSociale'], $etab['enseigne'], $etab['sigle']); $ligne=date('YmdHis').";$siren;getIdentitePart APRES"; $fp=fopen('/var/www/log/accesDistant.log', 'a'); fwrite($fp,$ligne.EOL); fclose($fp); 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 && $accesDist) { $ligne=date('YmdHis').";$siren;MMap AVANT"; $fp=fopen('/var/www/log/accesDistant.log', 'a'); fwrite($fp,$ligne.EOL); fclose($fp); $mMap=new MMap($etab['adr_num'].' '.$this->getCodeVoie($etab['adr_typeVoie']).' '.$etab['adr_libVoie'], $etab['adr_cp'], $etab['adr_ville']); $ligne=date('YmdHis').";$siren;MMap APRES"; $fp=fopen('/var/www/log/accesDistant.log', 'a'); fwrite($fp,$ligne.EOL); fclose($fp); $tabUpdate=array( 'latitude'=>$mMap->latitudeDec, 'longitude'=>$mMap->longitudeDec, 'precis'=>$mMap->precision, ); $this->iDb->update('infos_entrep', $tabUpdate, "siren=$siren"); $tab=array_merge($tab,$tabUpdate); } /** Accès provisoire à AMABIS **/ if ($accesDist) { $ligne=date('YmdHis').";$siren;MAmabis AVANT"; $fp=fopen('/var/www/log/accesDistant.log', 'a'); fwrite($fp,$ligne.EOL); fclose($fp); $iAmabis=new MAmabis(); $repAmabis=$iAmabis->getZonage($etab['adr_num'],$etab['adr_btq'],$etab['adr_typeVoie'],$etab['adr_libVoie'], $etab['adr_cp'], $etab['adr_ville'], trim($tabInsee['ADR_DEP'].$tabInsee['ADR_COM'].$tabInsee['CODEVOIE']), false, 'TEST', false); $ligne=date('YmdHis').";$siren;MAmabis APRES"; $fp=fopen('/var/www/log/accesDistant.log', 'a'); fwrite($fp,$ligne.EOL); fclose($fp); } else $repAmabis=array(); //$accesDist=true; if ($siren*1>100) { $ligne=date('YmdHis').";$siren;MTva AVANT"; $fp=fopen('/var/www/log/accesDistant.log', 'a'); fwrite($fp,$ligne.EOL); fclose($fp); $iTva=new MTva($siren, $accesDist); $vatNumber=$iTva->vatNumber; $vatDefined=$iTva->vatDefined; $ligne=date('YmdHis').";$siren;MTva APRES"; $fp=fopen('/var/www/log/accesDistant.log', 'a'); fwrite($fp,$ligne.EOL); fclose($fp); } else { $vatNumber='FR00000000000'; $vatDefined=false; } //$accesDist=false; //if (strlen($etab['raisonSociale'])>40) $nom =trim($etab['raisonSociale']); $nom2=trim($tabInsee['NOM2']); $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)); if ($etab['triCode']=='Déclar') $triCode=''; else $triCode=$etab['triCode']; $tabRet=array( 'id'=>$etab['id'], 'Siret'=>$etab['siret'], 'SiretSiege'=>$siretSiege, 'Siege'=>$etab['siege'], 'Tribunal'=>$triCode, 'Nom'=>$nom, 'Nom2'=>$nom2, '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'=>$etab['capital'], 'CapitalDev'=>$etab['capitalDev'], 'CapitalSrc'=>$etab['capitalSrc'], // '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), 'NatureActivite'=>$tabInsee['ACTIVNAT'], // Nature de l'activité 'OrigineCreation'=>$tabInsee['ORIGINE'], // Origine de la création 'Auxiliaire'=>$tabInsee['AUXILT'], // 1=Auxiliaire / 0=Non auxiliaire 'Saisonnalite'=>$tabInsee['SAISONAT'], // P=Activité permanente / S=Activité saisonnière 'ACTISURF'=>$tabInsee['ACTISURF'], 'EXPLEN'=>$tabInsee['EXPLEN'], 'EXPLET'=>$tabInsee['EXPLET'], 'LIEUACT'=>$tabInsee['LIEUACT'], 'MODEN'=>$tabInsee['MODEN'], 'MONOACT'=>$tabInsee['MONOACT'], 'MONOREG'=>$tabInsee['MONOREG'], 'REGIMP'=>$tabInsee['MONOREG'], 'PRODPART'=>$tabInsee['PRODPART'], 'GeoInfos'=>$repAmabis, 'NonDiffusible'=>$moisNonDiff, //EXPLET, EXPLEN, LIEUACT, ACTISURF, MODEN, MODET, PRODPART, // APRM, MONOREG, REGIMP, MONOACT ); if ($siren>100) { if (count($this->getAnnoncesLegales($siren, 0, 'P', false))>0) $tabRet['SituationJuridique']='P'; elseif (count($this->getAnnoncesLegales($siren, 0, 'A'))>0) $tabRet['SituationJuridique']='A'; elseif (count($this->getAnnoncesLegales($siren, 0, 'D'))>0) $tabRet['SituationJuridique']='D'; /*elseif (count($this->getAnnoncesLegales($siren, 0, 'R'))>0) $tabRet['SituationJuridique']='R'; */ } 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>100) { if ($etab['nic']*1>0) $strNic='AND insNIC='.$etab['nic']; else $strNic=''; $tmp=$this->iDbInsee->select( 'insee_even', 'insDATEVE', "insSIREN=$siren $strNic AND ( insEVE LIKE '%F' OR insEVE LIKE '4%' OR insDESTINAT<>'') ORDER BY insDATEVE DESC LIMIT 0,1", true); unset($tmp); $tabRet['DateClotEn']=@$tmp[0][0]; } if ($tabRet['TrancheCALib']=='') $tabRet['TrancheCALib']='N/C'; if ($tabRet['EffEnTrLib']=='') $tabRet['EffEnTrLib']='N/C'; $tabRet['CapitalLib']=''; $strEvenVtLg=" AND Rubrique<>'ventes' AND typeEven NOT LIKE '%2700%' AND typeEven NOT LIKE '%2701%' AND typeEven NOT LIKE '%2702%' AND typeEven NOT LIKE '%2703%' AND typeEven NOT LIKE '%2710%' AND typeEven NOT LIKE '%2720%' AND typeEven NOT LIKE '%2721%' AND typeEven NOT LIKE '%2725%' AND typeEven NOT LIKE '%2730%' AND typeEven NOT LIKE '%2740%' AND typeEven NOT LIKE '%2750%' AND typeEven NOT LIKE '%2800%' AND typeEven NOT LIKE '%2840%' AND typeEven NOT LIKE '%2850%' AND typeEven NOT LIKE '%2851%' AND typeEven NOT LIKE '%2860%' AND typeEven NOT LIKE '%2870%' AND typeEven NOT LIKE '%2875%' AND typeEven NOT LIKE '%2880%' AND typeEven NOT LIKE '%2881%' AND typeEven NOT LIKE '%2885%' AND typeEven NOT LIKE '%2890%' AND typeEven NOT LIKE '%2891%' AND typeEven NOT LIKE '%2892%' "; if ($siren>100) { if ($tabRet['CapitalSrc']<>5) { /** Recherche du n° RC, de la Forme Juridique et du Capital au Bodacc **/ $bodacc=$this->iDb->select( 'bodacc_detail', 'Capital, CapitalDev', "siren=$siren AND capital<>0 $strEvenVtLg 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']*1) { $tabRet['Capital']=$annCap['Capital']*1; $tabRet['CapitalDev']=$annCap['CapitalDev']; $tabRet['CapitalSrc']=10; } 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.E1GSIR=$siren AND e.ANBASE=x.annonceNum AND e.DATE BETWEEN 19960101 AND 20041231 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) { $tabCodeTri=$ann['CODTRI']; 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|livre)/Uis', $ann['annonceTxt'], $matches)) $tabRet['Capital']=trim(strtr($matches[1],array(' '=>'', ',00 '=>'', '.00 '=>'')))*1; if (substr(strtoupper($matches[2]),0,3)=='EUR') $tabRet['CapitalDev']='EUR'; elseif (substr(strtoupper($matches[2]),0,3)=='LIV') $tabRet['CapitalDev']='GBP'; 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'; } /** Recherche du code Tribunal du siège **/ if ($tabRet['CapitalSrc']<>5) { $bodacc=$this->iDb->select( 'bodacc_detail', 'RC, FJ, Tribunal_Code', "siren=$siren AND RC<>'' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC); // $tabCodeTri1=$ann['CODTRI']; if ($tabRet['AutreId']=='') $tabRet['AutreId']=@$bodacc[0]['RC']; if ($tabRet['Tribunal']=='') $tabRet['Tribunal']=@$bodacc[0]['Tribunal_Code']; } if ($tabRet['FJ_lib']=='') { $bodacc=$this->iDb->select( 'bodacc_detail', 'FJ', "siren=$siren AND FJ<>'' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC); $tabRet['FJ_lib']=@$bodacc[0]['FJ']; } /** Recherche de l'activité réelle **/ $bodacc=$this->iDb->select( 'bodacc_detail', 'Activite', "siren=$siren AND Activite<>'' AND Activite NOT LIKE 'non precis%' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC); $annCap=@$bodacc[0]; if ($tabInsee['CJ']<7000 || $tabInsee['CJ']>7999) $tabRet['Activite']=trim(/*preg_replace("/Adjonction.{1,7}activit(?:e|é)(?:.|)\:", '', */$annCap['Activite']);//); 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); $bodacc=$this->iDb->select( 'asso', 'Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_NObjet', "siren=$siren 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']<7000 || $tabInsee['CJ']>7999)) { $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.E1GSIR=$siren AND e.ANBASE=x.annonceNum AND e.DATE BETWEEN 19960101 AND 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 ($tabCodeTri<>'' && $tabCodeTri<>@$ann['CODTRI']) $tabCodeTri=@$ann['CODTRI']; //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.|Capital|Nom commercial)(?:.|)\:/Uis', $ann['annonceTxt'], $matches)) if (strpos(substr($matches[1],-20),'cess') === false && strpos(substr($matches[1],-20),'date') === false) { $tabRet['Activite']=$matches[2]; break; } } } } } $bodacc=$this->iDb->select('rncs_dirigeants', "nom, prenom, fonction_lib as libelle, naissance_date, naissance_lieu, '' as rs, '' as dateEffet", "siren=$siren AND fonction_lib NOT LIKE '%Administrateur%' ORDER BY actif DESC, fonction_lib DESC", true, MYSQL_ASSOC); if (count($bodacc)>0) { $k=1; foreach ($bodacc as $ann) { if ($tabInsee['CJ']>=7000 && $tabInsee['CJ']<=7999 && $ann['libelle']<>'Maire' && //$ann['libelle']<>'Premier Adjoint' && $ann['libelle']<>'Président' && $ann['libelle']<>'Directeur général') continue; $tabRet['dir'.$k.'Titre']=$ann['libelle']; $tabRet['dir'.$k.'NomPrenom']=$ann['rs'].' '.$ann['nom'].' '.$ann['prenom']; $tabRet['dir'.$k.'DateFct']=$ann['dateEffet']; $tabRet['dir'.$k.'DateNaiss']=$ann['dateNaiss']; $tabRet['dir'.$k.'LieuNaiss']=$ann['lieuNaiss']; if ($k==2) break; $k++; } } else { $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); $bodacc=$this->iDb->select( 'asso', 'Assoc_Web, Assoc_Mail', "siren=$siren 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']; } } } if (@count($etabG)>0) { // On initialise les dernères variables en prov. d'Infogreffes $tabRet['DateClotEn'] = $etabG['DateRadiation']; $tabRet['DateClotEt'] = $etabG['DateRadiation']; $tabRet['DateCreaEt'] = $etabG['DateCreation']; $tabRet['DateCreaEn'] = $etabG['DateCreation']; $tabRet['FJ'] = $etabG['FJ']; if ($etabG['FJ']==1900) { $tabRet['dir1Titre']='PP'; $tabNom=explode(' ', $etabG['Nom']); $tabNom[0]=strtoupper($tabNom[0]); for($i=1; isset($tabNom[$i]); $i++) if ($tabNom[$i]=='EPOUSE') $tabNom[$i]='epouse'; elseif ($tabNom[$i-1]<>'epouse') $tabNom[$i]=ucwords(strtolower($tabNom[$i])); $tabRet['dir1NomPrenom']=implode(' ', $tabNom); } $tabRet['FJ_lib'] = $etabG['FJLib']; // prepareString($etab['FJLib']), $tabRet['AutreId'] = $etabG['NumRC']; /* 'Source'=>$etab['source'], 'SourceId'=>$etab['source_id'],*/ $tabRet['NafEtab'] = $etabG['NafEtab']; $tabRet['NafEnt'] = $etabG['NafEnt']; $tabRet['NafEntLib'] = $etabG['NafEntLib']; $tabRet['NafEtabLib'] = $etabG['NafEtabLib']; $tabRet['SiretSiege'] = $etabG['Siret']; /* 'Dept'=>$tabInsee['ADR_DEP'], 'codeCommune'=>$tabInsee['ADR_COM'], */ } if ($tabRet['Siege']==1 && $tabRet['Actif']) { if ($tabRet['Tribunal']=='') $tabRet['Tribunal']=$tabCodeTri; $tabRet['TribunalLib']=$this->iBodacc->getTribunalNom($tabRet['Tribunal']); } else $tabRet['Tribunal']=''; //if ($siren==447841354) $tabRet['Activite']=''; $rep=$this->iDb->select('rncs_entrep', 'siren, sirenValide, actif, numGreffe, triCode, triId, numRC, numRC2, raisonSociale, nom, prenom, nomUsage, sigle, dateNaiss, lieuNaiss, sexe, nationalite, pays, naf, cj, capitalMontant, capitalDevise, capitalDevIso, dateImma, dateRad, capitalType, capitalCent, provisoires, flux', "siren=$siren", false, MYSQL_ASSOC); $entrep=$rep[0]; if (isset($entrep[0]['numGreffe'])) { $tabRet['numGreffe'] = $entrep['numGreffe']; $tabRet['numRC'] = $entrep['numRC2']; $tabRet['nomLong'] = strtoupper($entrep['raisonSociale']); $tabRet['sigleLong'] = strtoupper($entrep['sigle']); $tabRet['dateImmat'] = $entrep['dateImma']; $tabRet['dateRad'] = $entrep['dateRad']; $tabRet['Capital'] = $entrep['capitalMontant']+($entrep['capitalCent']/100); $tabRet['CapitalDev'] = $entrep['capitalDevIso']; $tabRet['CapitalType'] = $entrep['capitalType']; $fjInpi=$entrep['cj']*1; if ($tabRet['FJ']*1<>$fjInpi) { $tabRet['FJ2'] = $entrep['cj']; $tabRet['FJ2_Lib'] = $this->getLibelleFJ($entrep['cj']); } if ($fjInpi>=1000 && $fjInpi<2000) { $tabRet['dir1Titre']='PP'; $tabRet['dir1NomPrenom']=strtoupper($entrep['nom']).' '.ucwords(strtolower($entrep['prenom'])); $tabRet['dir1DateNaiss']=$entrep['dateNaiss']; $tabRet['dir1LieuNaiss']=$entrep['lieuNaiss']; } $tabRet['DateMajRCS'] = $entrep['flux']; } $rep=$this->iDb->select('bilans', 'siren, dateExercice, dureeExercice, monnaie, typeBilan, unite, postes', "siren=$siren AND typeBilan='N' ORDER BY dateExercice DESC", false, MYSQL_ASSOC); $entrep=$rep[0]; if (isset($entrep[0]['dateExercice'])) { $tabRet['bilanDate'] = $entrep['dateExercice']; $tabRet['bilanMois'] = $entrep['dureeExercice']; $tabRet['bilanDevise'] = $entrep['monnaie']; switch (strtoupper(trim($entrep['unite']))) { case 'M': $coef=1000000; break; case 'K': $coef=1000; break; default: $coef=1; break; } $tabTmp=explode(';', $entrep['postes']); $tabRet['bilanDA'] = $tabTmp['DA']*coef; $tabRet['bilanFL'] = $tabTmp['FL']*coef; $tabRet['bilanHN'] = $tabTmp['HN']*coef; $tabRet['bilanYP'] = $tabTmp['YP']; } 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.E1GSIR=$siren AND e.ANBASE=x.annonceNum AND e.DATE BETWEEN 19960101 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, cinf /*f.libelle*/', "siren=$siren /*AND d.fonction_code=f.codeFct*/ AND actif%10=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']), 'Civilite' =>$dir['civilite'], 'Nom' =>trim($dir['nom']), 'Prenom' =>$dir['prenom'], 'NaissDate' =>$dateNaiss, 'NaissVille' =>$dir['naissance_lieu'], 'NaissDepPays' =>'', // 25 'Ancien' =>0, 'DateFct' =>'', 'Cinf' =>$dir['cinf'], ); } } if (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, cinf, /*f.libelle*/ date(dateUpdate)*1 as dateUpdate', "siren=$siren /*AND d.fonction_code=f.codeFct*/ AND actif%10=0 ORDER BY dateUpdate DESC", true, MYSQL_ASSOC); $dateUpdatePre=$dirs[0]['dateUpdate']; 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=''; if ($dir['dateUpdate']<>$dateUpdatePre) break; $tabRet[]=array( 'Titre' =>$dir['fonction_lib'], 'Societe' =>'',//utf8_encode($dir['Societe']), 'Civilite' =>$dir['civilite'], 'Nom' =>trim($dir['nom']), 'Prenom' =>$dir['prenom'], 'NaissDate' =>$dateNaiss, 'NaissVille' =>$dir['naissance_lieu'], 'NaissDepPays' =>'', // 25 'Ancien' =>1, 'DateFct' =>'', 'Cinf' =>$dir['cinf'], ); $dateUpdatePre=$dir['dateUpdate']; } } if (count($tabRet)==0) { // ACCES DIRECT A EURIDILE if ($siren<001000000) $siren='000'.$siren; elseif ($siren<010000000) $siren='00'.$siren; elseif ($siren<100000000) $siren='0'.$siren; include_once(INCLUDE_PATH.'partenaires/classMRncsFlux.php'); $rncs=new MRncsFlux(); $tabIdentite=$rncs->getIdentite($siren); $etab=$this->getIdentiteEntreprise($siren); foreach ($tabIdentite['Dirigeants'] as $nb=>$dir) { if ($dir['ReprNom']<>'') { $dirType='PM'; $dirRS=$dir['Nom']; $dirNom=$dir['ReprNom']; $dirPrenom=trim($dir['ReprPrenom'].' '.$dir['ReprPrenom2']); } else { $dirType='PP'; $dirNom=$dir['Nom']; $dirPrenom=trim($dir['Prenom'].' '.$dir['Prenom2']); } $tabRet[]=array( 'Titre' =>$dir['FoncLib'],//utf8 'Societe' =>$dirRS, 'Civilite' =>$dir['Sexe'], 'Nom' =>$dirNom, 'Prenom' =>$dirPrenom, 'NaissDate' =>$dir['NaissDate'],// 07/09/1961 'NaissVille' =>$dir['NaissLieu'], // LE RUSSEY 'NaissDepPays' =>$dir['NaissDept'], 'Ancien' =>0, 'DateFct' =>'', );/*dirSiren*/ $this->iDb->insert('rncs_dirigeants', array('siren' => $siren, 'raisonSociale' => $etab['Nom'], 'civilite' => $dir['Sexe'],//enum('M', 'MME', 'MLLE') 'typeDir' => $dirType, 'dirRS' => $dirRS, 'nom' => $dirNom, 'prenom' => $dirPrenom, 'naissance_nom' => $dir['NomJF'], 'naissance_date'=> Wdate::dateT('d/m/Y', 'Y-m-d', $dir['NaissDate']),// 07/09/1961 'naissance_lieu'=> $dir['NaissLieu'], 'nat' => $dir['NaissNati'], 'fonction_code' => $dir['FoncSD'], //OK 'fonction_lib' => $dir['FoncLib'], //OK 'actif' => 1, //OK 'dateInsert' => date('YmdHis'), //OK 'source' => 'rcs', //OK ), true); } /* 'Fonc' => $dir[1][$i], 'FoncLib' => $this->tabFctDir[$dir[1][$i]], 'Sexe' => $dir[2][$i], 'Nom' => $dir[3][$i], 'Prenom' => $dir[4][$i], 'Prenom2' => $dir[5][$i], 'NomJF' => $dir[6][$i], 'NaissDept' => $dir[7][$i], 'NaissLieu' => $dir[8][$i], 'NaissNati' => $dir[9][$i], 'NaissDate' => $dir[11][$i], 'ReprNom' => $dir[12][$i], 'ReprPrenom' => $dir[13][$i], 'ReprPrenom2' => $dir[14][$i], */ } if (count($tabRet)==0) { if ($tabIdentite['FJ']*1>1000 && $tabIdentite['FJ']*1<2000) { $tabTmp=explode(' ', $tabIdentite['Nom']); $nom=$prenom=''; foreach ($tabTmp as $mot) if (strtoupper($mot)==$mot) $nom.=' '.$mot; else $prenom.=' '.$mot; if ($etab['Civilite']*1==1) { $genre='Monsieur '; $civilite='M'; } elseif ($etab['Civilite']*1==2) { $genre='Madame '; $civilite='MME'; } else { $genre=''; $civilite=''; } $tabTmp=$this->iDbInsee->select('identite', 'SIREN, CJ, CIVILITE, DIR_DATEN, DIR_LIEUN', "SIREN=$siren AND (DIR_DATEN>0 OR DIR_LIEUN<>'') ORDER BY DIR_DATEN DESC, DIR_LIEUN DESC", false, MYSQL_ASSOC); $tabTmp=@$tabTmp[0]; $tabRet[]=array( 'Titre' =>'Personne physique', 'Societe' =>'',//utf8_encode($dir['Societe']), 'Civilite' =>$civilite, 'Nom' =>trim($nom), 'Prenom' =>trim($prenom), 'NaissDate' =>Wdate::dateT('Ymd', 'd/m/Y', $tabTmp['DIR_DATEN']),// 07/09/1961 'NaissVille' =>$tabTmp['DIR_LIEUN'], // LE RUSSEY//, 'NaissDepPays' =>'', // 25 'Ancien' =>0, 'DateFct' =>$tabIdentite['DateCrea'],//$tabIdentite['DateImma'], ); $this->iDb->insert('rncs_dirigeants', array('siren' => $siren, 'raisonSociale' => $etab['Nom'], 'civilite' => $civilite, 'nom' => trim($nom), 'prenom' => trim($prenom), 'naissance_nom' => '', 'naissance_date'=> $tabTmp['DIR_DATEN'], 'naissance_lieu'=> $tabTmp['DIR_LIEUN'], 'fonction_code' => 1050, 'fonction_lib' => 'Personne physique', 'actif' => 1, 'dateInsert' => date('YmdHis'), 'source' => 'inp', ), true); } /*elseif ($tabIdentite['FJ']*1>1999) { return false; }*/ } /* ///ICI/// if (count($tabRet)==0) { // ACCES DIRECT A EURIDILE if ($siren<001000000) $siren='000'.$siren; elseif ($siren<010000000) $siren='00'.$siren; elseif ($siren<100000000) $siren='0'.$siren; $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'), 'source' => 'eur', ), true); } else { foreach ($tabTmp['dirigeants'] as $nb=>$dir) {/* [] => Associ?-g?rant*slash //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'), 'source' => 'eur', ), 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 "; elseif ($idAnnonce==0 && $siren<100) return $tabRet; if ($rubrique=='P') // Procédure collective $strIdAnn=" AND d.Rubrique='procol' AND d.typeEven NOT LIKE '%1550%' "; elseif ($rubrique=='D') // Dissolution de la société $strIdAnn=" AND (d.typeEven LIKE '%2202%' OR d.typeEven LIKE '%2203%' OR d.typeEven LIKE '%2204%' OR d.typeEven LIKE '%2211%' OR d.typeEven LIKE '%2212%') "; elseif ($rubrique=='A') // Absorption $strIdAnn=" AND (d.typeEven LIKE '%2720%' OR d.typeEven LIKE '%2721%') "; elseif ($rubrique=='C') // Dépôt des comptes $strIdAnn=" AND (d.Rubrique='comptes' OR d.typeEven LIKE '%3100%' OR d.typeEven LIKE '%3200%' OR d.typeEven LIKE '%3300%' OR d.typeEven LIKE '%3999%') "; //elseif ($rubrique=='R') $strIdAnn=" AND d.Rubrique='radiations' "; //elseif ($rubrique=='V') $strIdAnn=" AND d.Rubrique='ventes' "; if ($rubrique<>'' && $rubrique<>'P' && $rubrique<>'D' && $rubrique<>'A' && $rubrique<>'C')// && $rubrique<>'R' 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 AND e.DATE>=".((date('Y')*1)-12).''.date('md'); //elseif ($rubrique=='R') $strIdAnn=" AND e.CODEVE BETWEEN 40 AND 42 "; elseif ($rubrique=='D' || $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.E1GSIR=$siren AND e.ANBASE=x.annonceNum AND e.CODTRI=t.triCode $strIdAnn AND e.DATE BETWEEN 19960101 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, $rubrique, $forceVerif, $idAnnonce); $tabRet=array_merge($tabTmp, $tabRet); // } return $tabRet; } function getAnnoncesBalo($siren, $idAnnonce=0) { $siren=$siren*1; if ($siren<001000000) $siren='000'.$siren; elseif ($siren<010000000) $siren='00'.$siren; elseif ($siren<100000000) $siren='0'.$siren; $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<>''"); $bodacc=$this->iDb->select('asso', "Waldec", "siren=$siren $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); $bodacc=$this->iDb->select('asso', "id, Assoc_Nom, siren, nic, 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", "siren=$siren $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) $strIdAnn.= " AND a.id=".preg_replace('/^0\./','', $idAnnonce); /** Recherche des jugements enregistrés en base S&D **/ $collecte=$this->iDb->select( 'annonces a, tribunaux t, etablissements e', 'a.id, a.siren, a.typeEven, a.strEven, a.dateJugement, a.dateCessationPaiement, a.dateEffetFinP, a.inter1type, a.inter1id, a.inter1nom, a.inter2type, a.inter2id, a.inter2nom, a.inter3type, a.inter3id, a.inter3nom, a.tribunal, a.montant, a.actionsNb, a.complement, a.nouvActivite, a.nouvDir, a.nouvAdr, a.nouvFJ, a.source, a.parutionIdJal, a.parutionNum, a.dateSource, a.annonce, a.dateInsert, t.triNom, t.triSiret, t.triCP, a.raisonSociale, a.adresse, a.codePostal, a.ville', //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 $strIdAnn GROUP BY e.siren, a.dateJugement, typeEven 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.=ucfirst(strtolower($ann['adresse'])).', '; $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'].'. '; trim($ann['raisonSociale']). '. Adresse : '. $adresse.' '.$ann['codePostal'].' '.$ann['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['nouvActivite'])<>'') $texteAnnonce.=' Activité : '.trim($ann['nouvActivite']).'. '; if (trim($ann['nouvDir'])<>'') $texteAnnonce.=' Administration : '.trim($ann['nouvDir']).'. '; if (trim($ann['nouvAdr'])<>'') $texteAnnonce.=' Nouvelle adresse : '.trim($ann['nouvAdr']).'. '; if ($ann['nouvFJ']*1>0) $texteAnnonce.=' Transformation de la société en '.$this->getLibelleFJ($ann['nouvFJ']).'. '; if ($ann['dateEffetFinP']*1<>'') $texteAnnonce.=' Date d\'effet : '.strtolower(WDate::dateT('Y-m-d','d M Y',$ann['dateEffetFinP'])).'. '; if (trim($ann['complement'])<>'') $texteAnnonce.=' Observations : '.trim($ann['complement']).'.'; /** Si la procédure à moins de 4 mois on l'affiche **/ $tabEven=explode(';', $ann['strEven']); //ICI// $tabRetEven=array(); $tabRetEven[]=array('CodeEven'=>$ann['typeEven'],'LibEven'=>$this->iBodacc->getEvenement($ann['typeEven'])); if ($ann['typeEven']==2102 || $ann['typeEven']==2100) $capital=true; else $capital=false; if (trim($ann['strEven'])<>'') { foreach ($tabEven as $even) { $tabRetEven[]=array('CodeEven'=>$even,'LibEven'=>$this->iBodacc->getEvenement($even)); if ($even==2102 || $even==2100) $capital=true; } } if ($ann['montant']>0) { if ($capital) { $texteAnnonce.=' Nouveau capital : '.trim($ann['montant']). ' euros'; if ($ann['actionsNb']>0) $texteAnnonce.=' divisé en '.$ann['actionsNb'].' actions de '. round($ann['montant']/$ann['actionsNb']). ' euros'; } elseif (!preg_match('/ pour un montant de /Uis', $ann['complement'])) $texteAnnonce.=' Montant : '.trim($ann['montant']). ' euros'; $texteAnnonce.='. '; } if (trim($ann['annonce'])<>'') $texteAnnonce=trim($ann['annonce']); $texteAnnonce=preg_replace('/ +/', ' ', strtr($texteAnnonce, array('*'=>' ', '/'=>' ', '..'=>'.'))); if (str_replace('-','',$ann['dateSource'])*1<>0) $dateParution=$ann['dateSource']; else $dateParution=$ann['dateInsert']; /** 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'=>$ann['source'].'-'.$ann['parutionIdJal'], 'BodaccNum'=>$ann['parutionNum'], 'NumAnnonce'=>0, 'DateParution'=>$dateParution, 'Departement'=>$dept, 'Tribunal'=>$ann['triNom'], 'TribunalSiret'=>$ann['triSiret'], 'Rubrique'=>'procol', 'typeAnnonce'=>'insertion', 'dateEffet'=>$ann['dateCessationPaiement'], 'dateJugement'=>$ann['dateJugement'], 'dateInsertionSD'=>$ann['dateInsert'], 'evenements'=>$tabRetEven, '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', '', '')); /*Procédures collectives 23/10/2008Liquidation Judiciaire */ if (preg_match('/Aucune proc.dure collective n.est enregistr/i',$strTmp)) { $ligne=date('YmdHis').";$siren;".$page['code'].';NO;'; $fp=fopen('/var/www/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'; elseif ($libEven=='Conciliation') $typeEven='1150'; elseif ($libEven=='Infirmat Liquid Judiciaire') $typeEven='1506'; elseif ($libEven=="Poursuite D'Activite") $typeEven='1999'; 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]); } } $raisonSociale=trim(@getTextInHtml($pou, '', '"46%">', '')); $adresse=trim(@getTextInHtml($pou, 'Adresse', '', '')); $tabAdresse=explode('
', $adresse); $adresse=$tabAdresse[0]; $cp=substr(end($tabAdresse),0,5); $ville=substr(end($tabAdresse),6); $tabInsert=array( 'siren'=>$siren, 'typeEven'=>$typeEven, 'raisonSociale'=>$raisonSociale, 'adresse'=>$adresse, 'codePostal'=>$cp, 'ville'=>$ville, '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, 'dateInsert'=>date('YmdHis'), ); $this->iDb->insert('annonces', $tabInsert); $ligne=date('YmdHis').";$siren;".$page['code'].";YES;$dateJ;$typeEven;$libEven"; $fp=fopen('/var/www/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.strEven, 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.montant, a.actionsNb, a.complement, a.nouvActivite, a.nouvDir, a.nouvAdr, a.nouvFJ, a.source, a.parutionIdJal, a.parutionNum, a.dateSource, 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['nouvActivite'])<>'') $texteAnnonce.=' Activité : '.trim($ann['nouvActivite']).'. '; if (trim($ann['nouvDir'])<>'') $texteAnnonce.=' Administration : '.trim($ann['nouvDir']).'. '; if (trim($ann['nouvAdr'])<>'') $texteAnnonce.=' Nouvelle adresse : '.trim($ann['nouvAdr']).'. '; if ($ann['nouvFJ']*1>0) $texteAnnonce.=' Transformation de la société en '.$this->getLibelleFJ($ann['nouvFJ']).'. '; if (trim($ann['complement'])<>'') $texteAnnonce.=' Observations : '.trim($ann['complement']).'.'; /** Si la procédure à moins de 4 mois on l'affiche **/ $tabEven=explode(';', $ann['strEven']); //ICI// $tabRetEven=array(); $tabRetEven[]=array('CodeEven'=>$ann['typeEven'],'LibEven'=>$this->iBodacc->getEvenement($ann['typeEven'])); if ($ann['typeEven']==2102 || $ann['typeEven']==2100) $capital=true; else $capital=false; if (trim($ann['strEven'])<>'') { foreach ($tabEven as $even) { $tabRetEven[]=array('CodeEven'=>$even,'LibEven'=>$this->iBodacc->getEvenement($even)); if ($even==2102 || $even==2100) $capital=true; } } if ($ann['montant']>0) { if ($capital) { $texteAnnonce.=' Nouveau capital : '.trim($ann['montant']). ' euros'; if ($ann['actionsNb']>0) $texteAnnonce.=' divisé en '.$ann['actionsNb'].' actions de '. round($ann['montant']/$ann['actionsNb']). ' euros'; } else $texteAnnonce.=' Montant : '.trim($ann['montant']). ' euros'; $texteAnnonce.='. '; } if (str_replace('-','',$ann['dateSource'])*1<>0) $dateParution=$ann['dateSource']; else $dateParution=$ann['dateInsert']; /** 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'=>$ann['source'].'-'.$ann['parutionIdJal'], 'BodaccNum'=>$ann['parutionNum'], 'NumAnnonce'=>0, 'DateParution'=>$dateParution, 'Departement'=>$dept, 'Tribunal'=>$ann['triNom'], 'TribunalSiret'=>$ann['triSiret'], 'Rubrique'=>'procol', 'typeAnnonce'=>'insertion', 'dateEffet'=>$ann['dateCessationPaiement'], 'dateJugement'=>$ann['dateJugement'], 'dateInsertionSD'=>$ann['dateInsert'], 'evenements'=>$tabRetEven, '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) { /** @TODO Provisoirement tant qu'on ne vérifie pas le .fr ou .com auprès d'un registrar **/ return false; $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 (Min=$levMin) - $pct (Min=$pctMin) - $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 ($levMin<15 && $pctMin>44 && $urlLev==$urlPct) { fwrite($fp, date('Y-m-d H:i:s') .' - '. $page['code'] . " - $rs - $i - $lev (Min=$levMin) - $pct (Min=$pctMin) - $urlLev - $urlPct - $url !!! RETURNED !!!\n"); return $urlLev; } return false; } fclose($fp); return false; } function getImportExport($siren, $type='', $annee='') { if ($type=='') $strimportExport=" AND importExport IN ('I','E') "; elseif ($type=='I') $strimportExport=" AND importExport='I' "; elseif ($type=='E') $strimportExport=" AND importExport='E' "; if ($annee*1>0) $strAnnees=" AND annee=$annee "; else { $tabAnnees=array(); $strAnnees=' AND annee IN ('; for ($an=date('Y')-6; $aniDb->select('importExport', 'importExport, annee, /*siren, raisonSociale, naf, categorie, adresse,*/ rangNational, deptSiege', "1 $strImportExport $strAnnees AND siren=$siren ORDER BY annee DESC, importExport ASC",true, MYSQL_ASSOC); return $tabImportExport; } } ?>