diff --git a/src/Metier/Partenaires/MCoface.php b/src/Metier/Partenaires/MCoface.php deleted file mode 100644 index 9789ae3..0000000 --- a/src/Metier/Partenaires/MCoface.php +++ /dev/null @@ -1,388 +0,0 @@ -body=$page['body']; - $this->codeRetour=$page['code']; - $this->header=$page['header']; - $this->nscrl=@getTextInHtml($this->body, '&nscrl=', '=','&'); - $this->rSocAdrCPVille=trim(str_replace(chr(160), ' ', html_entity_decode(utf8_encode(@getTextInHtml($this->body, '
(.*)<\/span> - Participation<\/span> : (.*) % (.*)<\/span> - Participation<\/span> :(.*)% CA (.*)<\/span>(.*)
(.*)<\/p>/isU', $strTmp, $matches)) {
- foreach ($matches[1] as $i=>$nom) {
- $this->tabAct[$i]['nom']=trim($nom);
- $this->tabAct[$i]['pct']=trim($matches[2][$i]);
- $this->tabAct[$i]['rcs']=trim(str_replace('RCS : ','',strip_tags($matches[3][$i])));
- }
- }
-
- /** Filiales **/
- $strTmp=trim(@getTextInHtml($this->body, 'FILIALES
', '', ''));
- if(preg_match_all('/
(.*)<\/p>/isU', $strTmp, $matches)) {
- foreach ($matches[1] as $i=>$nom) {
- $this->tabFil[$i]['nom']=trim($nom);
- $this->tabFil[$i]['pct']=trim($matches[2][$i]);
- $this->tabFil[$i]['rcs']=trim(str_replace('RCS :','',strip_tags($matches[3][$i])));
- }
- }
-
- /** CA et Résultat **/
- $strTmp=trim(@getTextInHtml($this->body, 'PRINCIPAUX ELEMENTS FINANCIERS
', '
', '
/isU', $strTmp, $matches)) {
- $this->derExerciceAnnee=trim($matches[1]);
- $this->derExerciceCA=trim(str_replace(':',' ', $matches[2]));
- }
- if(preg_match('/Résultat(.*)<\/span>(.*)$/isU', $strTmp, $matches)) {
- $this->derExerciceResultat=trim(str_replace(':',' ', $matches[2]));
- }
-
- $infoBilan=print_r($page, true);
- $fp=fopen('./infobilan.html', 'w');
- fwrite($fp, $infoBilan);
- fclose($fp);
- }
-
- if ($this->nbEtab=='' || $this->nbEtab=='0') {
- $this->nbEtab=trim(strip_tags(str_replace('afficher la liste...', '', @getTextInHtml($pou, ' '))));
- $urlPEtab='http://www.score3.fr/etablissements.shtml?page=1&siren='.$siren;
- $refererPEtab=$urlP;
- $page=getUrl($urlPEtab, '', '', $refererPEtab, false, 'www.score3.fr');
- $pou2=$page['body'];
- if(preg_match_all('/Etablissements ', '', ' (\d*)<\/td> ', '(.*)<\/td><\/tr><\/table>/isU', $pou2, $matches)) {
- foreach ($matches[1] as $i=>$nic) {
- $strEtab=$matches[2][$i];
- $this->tabEtab[$i]['siren']=$siren;
- $this->tabEtab[$i]['nic']=$nic;
- $this->tabEtab[$i]['siret']=$siren.$nic;
-
- $this->tabEtab[$i]['enseigne']=trim(str_replace(chr(160),' ',utf8_decode(strip_tags(@getTextInHtml($strEtab, '', '">', '')))));
- $this->tabEtab[$i]['adresse']=trim(str_replace(chr(160),' ',utf8_decode(strip_tags(@getTextInHtml($strEtab, '', '">', '
')))));
- $strTmp=trim(str_replace(chr(160),' ',utf8_decode(strip_tags(@getTextInHtml($strEtab, '', '
', '')))));
- $tabTmp=explode(' ', $strTmp);
- $this->tabEtab[$i]['cp']=$tabTmp[0];
- unset($tabTmp[0]);
- $this->tabEtab[$i]['ville']=implode(' ',$tabTmp);
- $strTmp=trim(strip_tags(@getTextInHtml($strEtab, '', '">', ')')));
- $tabTmp=explode('(', $strTmp);
- $this->tabEtab[$i]['naf_code']=$tabTmp[1];
- $this->tabEtab[$i]['naf_lib']=trim(str_replace(chr(160),' ',utf8_decode($tabTmp[0])));
- if (preg_match('/
T.l\.(.*)$/i',$strEtab,$matches2))
- $this->tabEtab[$i]['tel']=trim(str_replace(chr(160),' ',utf8_decode($matches2[1])));
- else $this->tabEtab[$i]['tel']='';
- }
- }
- $this->nbEtab=count($this->tabEtab);
- $fp=fopen('./pouet_etab.html', 'w');
- fwrite($fp, $pou2);
- fclose($fp);
- }
-
- if ($this->effectif=='' || $this->effectif=='0' || $this->effectif=='NC')
- $this->effectif=trim(@getTextInHtml($pou, ' '));
-
- if ($this->dateImmatriculation=='' || $this->dateImmatriculation=='0')
- $this->dateImmatriculation=trim(@getTextInHtml($pou, 'Effectifs ', '', ' '));
- if ($this->dateFermeture=='' || $this->dateFermeture=='0')
- $this->dateFermeture=trim(@getTextInHtml($pou, 'Date d\'immatriculation ', '', ' '));
-
- if ($this->tel=='' || $this->tel=='0')
- $this->tel=trim(@getTextInHtml($pou, 'Date de fin d\'exploitation ', '', ' '));
-
- if ($this->fax=='' || $this->fax=='0')
- $this->fax=trim(@getTextInHtml($pou, 'Téléphone ', '', ' '));
-
- $strTmp=trim(@getTextInHtml($pou, 'Procédures collectives', 'Fax ', '', ' (.*)<\/td> (.*)<\/td><\/tr>/isU', $strTmp, $matches)) {
- foreach ($matches[1] as $i=>$jug) {
- $this->tabJug[$i]['date']=$matches[1][$i];
- $this->tabJug[$i]['juge']=$matches[2][$i];
- }
- }
-
- $this->score_pouey=trim(@getTextInHtml($pou, ''));
- $this->score_conan=trim(@getTextInHtml($pou, ''));
- $this->score_afdcc=trim(@getTextInHtml($pou, ''));
- $this->vigilance =trim(@getTextInHtml($pou, ''));
-
- if(preg_match('/Date de l\'exercice<\/td> (.*) sur (\d*) mois<\/td><\/tr>/isU', $pou, $matches)) {
- $this->derExerciceDClot=trim($matches[1]);
- $this->derExerciceDuree=trim($matches[2]);
- }
-
- /* Siret SIEGE
- 2 Fonction, Nom Prénoù ET Date NAissance du PP
- 5 Liste des actes
- */
- if ($this->codeRetour==200)
- return true;
-
- return false;
- }
-
-}
-
-?>
\ No newline at end of file
diff --git a/src/Metier/Partenaires/MFedaso.php b/src/Metier/Partenaires/MFedaso.php
deleted file mode 100644
index 20dd2f1..0000000
--- a/src/Metier/Partenaires/MFedaso.php
+++ /dev/null
@@ -1,244 +0,0 @@
- 'Traitement OK',
- 100 => 'Document illisible',
- 101 => 'Document partiellement lisible',
- 102 => 'Document inattendu',
- 103 => 'Page blanche',
- 104 => 'Fichier absent',
- 105 => 'page partiellement scannée',
- 106 => 'Document complémentaire concernant une autre société',
- 107 => 'Page(s) manquante(s)',//NEW
- 108 => 'Document(s) non Francophone',
- 200 => 'Aucune information dirigeants',
- 210 => 'Aucune information actionnaire',
- 211 => 'Aucune information capitalistique',
- 220 => 'Aucune information RIB',
- 221 => 'Code guichet inconnu',
- 250 => 'Raison Sociale absente',//NEW
- 251 => 'Raison Sociale en double : entête retenue',//NEW
- 252 => 'Raison Sociale en double : entête non retenue',//NEW
- 300 => 'Code pays absent du réferentiel',
- 301 => 'Code devise absent du référentiel',
- 201 => 'Code fonction inexistant',
- );
-
- public function getRefCodeRetour($sep=',', $eol=PHP_EOL) {
- $str='codRetour'.$sep.'libRetour'.$eol;
- foreach ($this->tabCodeRetour as $key=>$value)
- $str.=$key.$sep.$value.$eol;
- return $str;
- }
-
- public function getRefCodeVoie($sep=',', $eol=PHP_EOL) {
- $tabCodeVoie = array(
- 'ABE' => "Abbaye",
- 'AGL' => "Agglomération",
- 'AIRE' => "Aire",
- 'ALL' => "Allée",
- 'ALL' => "Allee",
- 'ACH' => "Ancien chemin",
- 'ART' => "Ancienne route",
- 'ANSE' => "Anse",
- 'ARC' => "Arcade",
- 'AUT' => "Autoroute",
- 'AV' => "Avenue",
- 'BRE' => "Barrière",
- 'BCH' => "Bas chemin",
- 'BSTD' => "Bastide",
- 'BAST' => "Baston",
- 'BEGI' => "Beguinage",
- 'BER' => "Berge",
- 'BOIS' => "Bois",
- 'BCLE' => "Boucle",
- 'BD' => "Boulevard",
- 'BRG' => "Bourg",
- 'BUT' => "Butte",
- 'CALE' => "Cale",
- 'CAMP' => "Camp",
- 'CGNE' => "Campagne",
- 'CPG' => "Camping",
- 'CARR' => "Carré",
- 'CAU' => "Carreau",
- 'CAR' => "Carrefour",
- 'CARE' => "Carrière",
- 'CST' => "Castel",
- 'CAV' => "Cavée",
- 'CTRE' => "Central",
- 'CTRE' => "Centre",
- 'CHL' => "Chalet",
- 'CHP' => "Chapelle",
- 'CHI' => "Charmille",
- 'CHT' => "Château",
- 'CHS' => "Chaussée",
- 'CHE' => "Chemin",
- 'CHV' => "Chemin vicinaux",
- 'CHV' => "Chemin vicinal",
- 'CHEM' => "Cheminement",
- 'CITE' => "Cîte",
- 'CLOI' => "Cloître",
- 'CLOS' => "Clos",
- 'COL' => "Col",
- 'COLI' => "Colline",
- 'CTR' => "Contour",
- 'COR' => "Corniche",
- 'COTE' => "Côte",
- 'COTT' => "Cottage",
- 'COUR' => "Cour",
- 'CRS' => "Cours",
- 'DARS' => "Darse",
- 'DEG' => "Degré",
- 'DSG' => "Descente",
- 'DSC' => "Descente",
- 'DIG' => "Digue",
- 'DOM' => "Domaine",
- 'ECA' => "Ecart",
- 'ECL' => "Ecluse",
- 'EGL' => "Eglise",
- 'EN' => "Enceinte",
- 'ENV' => "Enclave",
- 'ENC' => "Enclos",
- 'ESC' => "Escalier",
- 'ESPA' => "Espace",
- 'ESP' => "Esplanade",
- 'ETING' => "Etang",
- 'FG' => "Faubourg",
- 'FRM' => "Ferme",
- 'FON' => "Fontaine",
- 'FORT' => "Fort",
- 'FORM' => "Forum",
- 'FOS' => "Fosse",
- 'FOYR' => "Foyer",
- 'GAL' => "Galerie",
- 'GARE' => "Gare",
- 'GARN' => "Garenne",
- 'GBD' => "Grand boulevard",
- 'GDEN' => "Grande ensemble",
- 'GR' => "Grande rue",
- 'GRI' => "Grille",
- 'GRIM' => "Grimpette",
- 'GPE' => "Groupe",
- 'GPT' => "Groupement",
- 'HLE' => "Halle",
- 'HAM' => "Hameau",
- 'HCH' => "Haut chemin",
- 'HIP' => "Hippodrome",
- 'HLM' => "HLM",
- 'ILE' => "Ile",
- 'IMM' => "Immeuble",
- 'IMP' => "Impasse",
- 'JARD' => "Jardin",
- 'JTE' => "Jetée",
- 'LEVE' => "Levée",
- 'LD' => "Lieu dit",
- 'LD' => "Lieudit",
- 'LOT' => "Lotissement",
- 'MAIL' => "Mail",
- 'MF' => "Maison forestière",
- 'MAN' => "Manoir",
- 'MAR' => "Marche",
- 'MAS' => "Mas",
- 'MET' => "Métro",
- 'MTE' => "Montée",
- 'MLN' => "Moulin",
- 'MUS' => "Musée",
- 'NTE' => "Nouvelle route",
- 'PAL' => "Palais",
- 'PARC' => "Parc",
- 'PKG' => "Parking",
- 'PRV' => "Parvis",
- 'PAS' => "Passage",
- 'PN' => "Passage à niveau",
- 'PASS' => "Passe",
- 'PLE' => "Passerelle",
- 'PAT' => "Patio",
- 'PAV' => "Pavillon",
- 'PERI' => "Périphérique",
- 'PSTY' => "Péristyle",
- 'PTA' => "Petites allée",
- 'PCH' => "Petit chemin",
- 'PAE' => "Petite avenue",
- 'PIM' => "Petite impasse",
- 'PRT' => "Petite route",
- 'PTR' => "Petite rue",
- 'PL' => "Place",
- 'PLCI' => "Placis",
- 'PLAG' => "Plage",
- 'PLN' => "Plaine",
- 'PLAN' => "Plan",
- 'PLT' => "Plateau",
- 'PNT' => "Pointe",
- 'PONT' => "Pont",
- 'PCH' => "Porche",
- 'PORT' => "Port",
- 'PTE' => "Porte",
- 'PORQ' => "Portique",
- 'POT' => "Poterne",
- 'POUR' => "Pourtour",
- 'PRE' => "Pré",
- 'PRQ' => "Presqu'île",
- 'PROM' => "Promenade",
- 'QU' => "Quai",
- 'QUAI' => "Quai",
- 'QUA' => "Quartier",
- 'RAC' => "Raccourci",
- 'RAID' => "Raidillon",
- 'RPE' => "Rampe",
- 'REM' => "Rempart",
- 'RES' => "Résidence",
- 'ROC' => "Roc",
- 'ROC' => "Rocade",
- 'RPT' => "Rond point",
- 'ROQT' => "Roquet",
- 'RTD' => "Rotonde",
- 'RTE' => "Route",
- 'R' => "Rue",
- 'RUE' => "Rue",
- 'RLE' => "Ruelle",
- 'SEN' => "Sente",
- 'SEN' => "Sentier",
- 'SQ' => "Square",
- 'STDE' => "Stade",
- 'STA' => "Station",
- 'TPL' => "Terre plein",
- 'TRN' => "Terrain",
- 'TSSE' => "Terrasse",
- 'TRT' => "Tertre",
- 'TOUR' => "Tour",
- 'TRA' => "Traverse",
- 'VAL' => "Vallon",
- 'VAL' => "Vallée",
- 'VEN' => "Venelle",
- 'VIA' => "Via",
- 'VTE' => "Vieille route",
- 'VCHE' => "Vieux chemin",
- 'VLA' => "Villa",
- 'VGE' => "Village",
- 'VLGE' => "Village",
- 'VOI' => "Voie",
- 'VOIE' => "Voie",
- 'ZONE' => "Zone",
- 'ZAC' => "Zone d'aménagement concerté",
- 'Z A C' => "Zone d'aménagement concerté",
- 'ZAD' => "Zone d'aménagement différé",
- 'Z A D' => "Zone d'aménagement différé",
- 'ZA' => "Zone artisanale",
- 'Z A' => "Zone artisanale",
- 'ZI' => "Zone industrielle",
- 'Z I' => "Zone industrielle",
- 'ZUP' => "Zone à urbaniser en priorité",
- 'Z U P' => "Zone à urbaniser en priorité",
- );
-
- $str='codVoie'.$sep.'libVoie'.$eol;
- foreach ($tabCodeVoie as $k => $v) {
- $str.=$k.$sep.$v.$eol;
- }
-
- return $str;
- }
-
- }
-
- ?>
\ No newline at end of file
diff --git a/src/Metier/Partenaires/MLiens.php b/src/Metier/Partenaires/MLiens.php
deleted file mode 100644
index a36471d..0000000
--- a/src/Metier/Partenaires/MLiens.php
+++ /dev/null
@@ -1,1027 +0,0 @@
-'é', 'ç'=>'ç','è'=>'è','à '=>'à');
-
- 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 $tabSources=array( 0=>'Presse', // Old liens
- 1000=>'Presse', // 4 ?
- 1500=>'Actes', // Fedaso
- 1600=>'Actes', // S&D : 69642, Associé-Gérant
- 1700=>'SED',
- 1800=>'Collecte', // Infolégales
- 1900=>'Collecte');
-
-
- public function __construct($siren) {
- $this->siren=$siren;
- $this->iDb=new Metier_Util_Db();
- $this->iInsee=new Metier_Insee_MInsee();
- }
-
- /** Retourne les actionnaires du siren
- ** @param int Siren de l'entreprise
- ** @return array Tableau d'actionnaires
- **/
- public function getActionnaires($siren=false, $actifsUniquement=true)
- {
- if (!$siren) $siren=$this->siren;
- $tabIdentite=$this->iInsee->getIdentiteLight($siren);
-
- //echo $siren;
- //print_r($tabIdentite);
- $nic=$tabIdentite['Nic'];
- $tab=$this->iDb->select('jo.liens',
- 'Siren1, ActionPart, Pmin, Pmax, MajMin, PpPm, Siren2, RaisonSociale, Pays, actif, source, dateLien*1 AS dateLien, DATE(dateInsert)*1 AS dateInsert, DATE(dateUpdate)*1 AS dateUpdate',
- "Siren1='$siren' AND ActionPart=1 ORDER BY source DESC, actif DESC, Pmin DESC", true, MYSQL_ASSOC);
- //$tabActiDB=mysql_select('dbo_liens_fi', 'SirenEntite, NomAdresse, PourcentageDetenu, Ville, Lien, MAJLien, MAJImport', "Siren='$siren' AND CodeLien='AC' ORDER BY PourcentageDetenu DESC");
- $sourcePre=$unique=false;
- $pctTot=0;
- $tabRet=array();
- foreach ($tab as $i=>$lien) {
- if ($lien['source']>=1700) $source=1700;
- else $source=$lien['source']*1;
- if ($i>0 && $sourcePre<>$source) break;
- /*if ($actifsUniquement && $lien['actif']==0) continue;
- else
- $tabRet[]=array('Pmin' => number_format($lien['Pmin']*1,2,',',''),
- 'MajMin' => $lien['MajMin'],
- 'RaisonSociale' => strtr($lien['RaisonSociale'],$this->tabChars),
- 'Pays' => $lien['libPays'],
- 'Siren' => $lien['Siren2'],
- 'Actif' => $lien['actif']);*/
- if ($actifsUniquement && $lien['actif']==0) continue;
- else {
- $codPays=strtoupper($lien['Pays']);
- $libPays='';
- if ($codPays<>'' && $codPays<>'FRA') {
- $tmp=$this->iDb->select('jo.tabPays', 'libPays', "codPays3='$codPays'", true, MYSQL_ASSOC);
- $libPays=$tmp[0]['libPays'];
- }
- if ($lien['MajMin']=='F') $majMin='A';
- else $majMin=$lien['MajMin'];
- switch ($tabIdentite['FJ']*1) {
- case 5488: // Entreprise Unipersonnelle à Responsabilité Limitée
- case 5498: // SARL unipersonnelle
- case 5720: // Société par actions simplifiée à associé unique
- $lien['Pmin']=100;
- $unique=true;
- break;
- default:
- break;
- }
- $dateMaj=$lien['dateLien'];
- $pctLien=$lien['Pmin']*1;
- $pctTot+=$pctLien;
- // On évite d'afficher des totaux de détention > à 100%
- if($pctTot>100) $pctLien=0;
-
- if ($lien['dateInsert']>$dateMaj) $dateMaj=$lien['dateInsert'];
- if ($lien['dateUpdate']>$dateMaj) $dateMaj=$lien['dateUpdate'];
- if ($lien['source']==1800) $libRS=strtoupper(strtr($lien['RaisonSociale'],$this->tabChars));
- else $libRS=strtr($lien['RaisonSociale'],$this->tabChars);
- $tabRet[]=array( 'Pmin' => number_format($pctLien,2,',',''),
- 'PminNum' => $pctLien,
- 'MajMin' => $majMin,
- 'RaisonSociale' => $libRS,
- 'Pays' => $libPays,
- 'CodePays' => $codPays,
- 'Siren' => $lien['Siren2'],
- 'Actif' => $lien['actif'],
- 'Source' => $this->tabSources[$source],
- 'DateLien' => Metier_Util_Date::dateT('Ymd','Y-m-d', $lien['dateLien']),
- 'DateMaj' => Metier_Util_Date::dateT('Ymd','Y-m-d', $dateMaj));
- if ($unique) break;
- }
- $sourcePre=$source;
- }
-
- if (count($tabRet)==0) {
- switch ($tabIdentite['FJ']*1) {
- case 7112: // Autorité administrative indépendante
- case 7160: // Service déconcentré à compétence nation. D'un ministère (hors Défense)
- case 7171: // Service déconcentré de l'État à compétence (inter) régionale
- case 7172: // Service déconcentré de l'État à compétence (inter) départementale
- case 7179: // (Autre) Service déconcentré de l'État à compétence territoriale
- case 7381: // Organisme consulaire
- /** Ces établissements sont dans le fichier des tribunaux **/
- $tmp=$this->iDb->select('jo.tribunaux', 'triSiret, triNom, dateUpdate', "triId=(SELECT triIdSup FROM tribunaux WHERE triSiret LIKE '$siren%' LIMIT 1)", true, MYSQL_ASSOC);
- $tabCC=$tmp[0];
- //$sirenCC=substr(,0,9);
- //if ($siren*1<>$sirenCC*1)
- if ($tabCC['triSiret']*1<>0) //$siren*1<>$sirenCC*1)
- $tabRet[]=array('Pmin' => 0,
- 'PminNum' => 0,
- 'MajMin' => '+',
- 'RaisonSociale' => $tabCC['triNom'],
- 'Pays' => '',
- 'CodePays' => 'FRA',
- 'Siren' => $tabCC['triSiret'],
- 'Actif' => 1,
- 'Source' => $this->tabSources[1900],
- 'DateLien' => Metier_Util_Date::dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
- 'DateMaj' => Metier_Util_Date::dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
- );
- case 7111: // Autorité constitutionnelle
- case 7113: // Ministère
- case 7120: // Service central d'un ministère
- case 7150: // Service du ministère de la Défense
-
- case 7190: // Ecole nationale non dotée de la personnalité morale
- // case 7210: // COMMUNE (traité après)
- // case 7220: // DEPARTEMENT (traité après)
- case 7225: // Territoire d'Outre-mer
- case 7229: // (Autre) Collectivité territoriale
- // case 7312: // Commune associée
- // case 7313: // Section de commune
- // case 7314: // Ensemble urbain
- case 7230: // Région
- case 7321: // Association syndicale autorisée
- case 7322: // Association foncière urbaine
- case 7323: // Association foncière de remembrement
- case 7331: // Établissement public local d'enseignement
- // case 7341: // Secteur de commune
- // case 7342: // District urbain
- // case 7343: // Communauté urbaine
- // case 7345: // Syndicat intercommunal à vocation multiple (SIVOM)
- // case 7346: // Communauté de communes
- // case 7347: // Communauté de villes
- // case 7348: // Communauté d'agglomération
- case 7349: // Autre établissement public local de coopération non spécialisé ou entente
- case 7351: // Institution interdépartemental ou entente
- case 7352: // Institution interrégionale ou entente
- // case 7353: // Syndicat intercommunal à vocation unique (SIVU)
- // case 7354: // Syndicat mixte communal
- // case 7355: // Autre syndicat mixte
- case 7356: // Commission syndicale pour la gestion des biens indivis des communes
- // case 7361: // Centre communal d'action sociale
- // case 7362: // Caisse des écoles
- // case 7363: // Caisse de crédit municipal
- case 7364: // Établissement d'hospitalisation
- case 7365: // Syndicat inter hospitalier
- case 7366: // Établissement public local social et médico-social
- case 7371: // Office public d'habitation à loyer modéré (OPHLM)
- case 7372: // Service départemental d'incendie
- case 7373: // Établissement public local culturel
- case 7378: // Régie d'une collectivité locale à caractère administratif
- case 7379: // (Autre) Établissement public administratif local
- case 7382: // Établissement public national ayant fonction d'administration centrale
- case 7383: // Établissement public national à caractère scientifique culturel et professionnel
- case 7384: // Autre établissement public national d'enseignement
- case 7385: // Autre établissement public national administratif à compétence territoriale limitée
- case 7389: // Établissement public national à caractère administratif
- case 7410: // Groupement d'intérêt public (GIP)
- case 7430: // Établissement public des cultes d'Alsace-Lorraine
- case 7450: // Cercle et foyer dans les armées
- case 7490: // Autre personne morale de droit administratif
- if (count($tabRet)==0)
- $tabRet[]=array('Pmin' => 0,
- 'PminNum' => 0,
- 'MajMin' => '+',
- 'RaisonSociale' => 'ETAT FRANCAIS',
- 'Pays' => '',
- 'CodePays' => 'FRA',
- 'Siren' => 0,
- 'Actif' => 1,
- 'Source' => $this->tabSources[1900],
- 'DateLien' => date('Y-m-').'01',
- 'DateMaj' => date('Y-m-').'01',
- );
- break;
- case 7210: // Communes
- // Siren Commune du Lamentin : 219 722 139
- // ~~~ ~~~~
- $dept=substr($siren,2,2);
- $comm=substr($siren,5,3);
- $codeInsee=$dept.$comm;
- if ($dept<>'20') // Corse
- $strCodeInsee="codeInsee='$codeInsee'";
- else
- $strCodeInsee="codeInsee IN ('2A$comm','2B$comm','20$comm') ";
-
- $tmp=$this->iDb->select('insee.insee_tabVillesEpci', 'typEPCI, codEPCI, libEPCI, libCommune', $strCodeInsee, true, MYSQL_ASSOC);
- $tabCC=$tmp[0];
- switch($tabCC['typEPCI']) {
- case 'CA': $typeCC="Communauté d'agglomérations"; break; // CJ=7348
- case 'CC': $typeCC="Communauté de communes"; break; // CJ=7346
- case 'CU': $typeCC="Communauté urbaine"; break; // CJ=73
- case 'SAN': $typeCC="Syndicat d'agglomérations nouvelles"; break; // CJ=73
- default: $typeCC='';
- }
- $tabRet[]=array('Pmin' => 0,
- 'PminNum' => 0,
- 'MajMin' => '+',
- 'RaisonSociale' => strtoupper($typeCC.' '.preg_replace('/^(CA|CC|CU|SAN) /Uis', '',$tabCC['libEPCI'])),
- 'Pays' => '',
- 'CodePays' => 'FRA',
- 'Siren' => $tabCC['codEPCI'],
- 'Actif' => 1,
- 'Source' => $this->tabSources[1900],
- 'DateLien' => date('Y-m-').'01',
- 'DateMaj' => date('Y-m-').'01',
- );
- break;
- case 7220: // Département
- // Siren du 29 22 290001 1 => Région 233 500 016
- // Siren du 28 22 280001 3 => Région 234 500 023
- // Siren du 75 22 750001 => Région 237 500 079
- // Siren du 972 22 972001 6 => Région 239 720 014
- $dept=substr($siren,2,2);
- if ($dept*1>95)
- $dept=substr($siren,2,3);
- $tmp=$this->iDb->select('insee.departements d, insee.insee_tabRegions r',
- 'd.codeRegionInsee, r.REGION, r.CHEFLIEU, r.NC',
- "numdep='$dept' AND d.codeRegionInsee=r.REGION", true, MYSQL_ASSOC);
- $tabCC=$tmp[0];
- $dept3=substr($tabCC['CHEFLIEU'],0,2).'0';
- if ($dept3*1>960)
- $dept3=substr($tabCC['CHEFLIEU'],0,3);
- for ($iSir=0; $iSir<100; $iSir++) {
- if ($iSir<10) $iSir2='0'.$iSir;
- else $iSir2=$iSir;
- // 23 350 00 16 => Bon
- // 23 350 00 00 => Mauvais
- $sirenCom='23'.$dept3.'00'.$iSir2;
- if ($this->iInsee->valideSiren($sirenCom)) {
- if ($this->iInsee->sirenExiste($sirenCom)) {
- break;
- }
- }
- }
- $tabRet[]=array('Pmin' => 0,
- 'PminNum' => 0,
- 'MajMin' => '+',
- 'RaisonSociale' => 'REGION '.strtoupper($tabCC['NC']),
- 'Pays' => '',
- 'CodePays' => 'FRA',
- 'Siren' => $sirenCom,
- 'Actif' => 1,
- 'Source' => $this->tabSources[1900],
- 'DateLien' => date('Y-m-').'01',
- 'DateMaj' => date('Y-m-').'01',
- );
- break;
- }
- }
-
- if (count($tabRet)==0) {
- $fj=$tabIdentite['FJ']*1;
- if ($fj==5498) $strFonctions=",'Gérant'";
- else $strFonctions='';
- $adresse=end(explode(' ', $tabIdentite['AdresseVoie']));
- $codePostal=$tabIdentite['CP'];
- $tab=$this->iDb->select('jo.rncs_dirigeants', 'typeDir, raisonSociale, dirSiren, dirRS, civilite, nom, prenom, actif, naissance_nom, naissance_date, naissance_lieu, nat, adresse, fonction_code, fonction_lib, source, cinf, dateInsert, dateUpdate',
- "siren='$siren' AND fonction_lib IN ('Associé-gérant' $strFonctions)", true, MYSQL_ASSOC);
- $majMin='+';
- if (count($tab)>1) $majMin='-';
- foreach ($tab as $i=>$lien) {
- if ($actifsUniquement && $lien['actif']==0) continue;
- else {
- $ville=$siege=$actif='';
- $deb=$siren2=0;
- $nbRep=$maxRep=200;
- $pertinence=$avecSiren=true;
-
- $etabs=$this->iInsee->rechercheEtab($lien['nom'].' '.$lien['prenom'], $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren);
- $tabSiren=array();
- foreach ($etabs['reponses'] as $etab) {
- $tabTmp=preg_split('/( +|\/|\*)/', $etab['Nom']);
- $rsEtab=$tabTmp[0];
- $tabTmp=preg_split('/( +|\/|\*)/', $lien['nom']);
- $rsLien=$tabTmp[0];
- if ($etab['FJ']==1800 && $rsEtab==$rsLien)
- $tabSiren[]=$etab['Siren'];
- }
- $tabSiren2=array_unique($tabSiren);
- if (count($tabSiren2==1)) $siren2=end($tabSiren2);
- else $siren2=$lien['dirSiren'];
- if ($lien['civilite']=='MME') $genre='Madame';
- elseif ($lien['civilite']=='M') $genre='Monsieur';
- else $genre='';
- $dateMaj=$lien['dateInsert'];
- if ($lien['dateUpdate']>$dateMaj) $dateMaj=$lien['dateUpdate'];
- $tabRet[]=array( 'Pmin' => 0,
- 'PminNum' => 0,
- 'MajMin' => $majMin,
- 'RaisonSociale' => trim(preg_replace('/ +/', ' ', $lien['dirRS'].' '.$genre.' '.$lien['nom'].' '.$lien['prenom'])),
- 'Pays' => '',
- 'CodePays' => 'FRA',
- 'Siren' => $siren2,
- 'Actif' => $lien['actif'],
- 'Source' => $this->tabSources[1600],
- 'DateLien' => Metier_Util_Date::dateT('Y-m-d','Y-m-d', $dateMaj),
- 'DateMaj' => Metier_Util_Date::dateT('Y-m-d','Y-m-d', $dateMaj),
- );
- if ($unique) break;
- /**/
- if ($siren2*1>0) {
- /** Insertion du lien en base **/
- $nom=$pays=$dateMAJ='';
- $ppPm='P';
- $pct=0;
- $entrep2=$this->iInsee->getIdentiteLight($siren);
- $nom2=$entrep2['Nom'];
- $pays2='FRA';
- if (substr($entrep2['FJ'],0,1)*1<>1) $ppPm='M';
- $entrep=$this->iInsee->getIdentiteLight($siren2);
- $nom=strtr($entrep['Nom'],'/*',' ');
- $pays='FRA';
- $tabUpdate=array( 'Pmin'=> $pct,
- 'Pmax'=> $pct,
- 'MajMin'=> $majMin,
- 'PpPm'=> $ppPm,
- 'dateLien'=> $dateMAJ,
- );
- /* Insertion de l'actionnaire */
- $tabInsert1=array_merge($tabUpdate, array( 'ActionPart'=>1),
- array( 'Siren1'=> $siren,
- 'Siren2'=> $siren2,
- 'RaisonSociale'=> $nom,
- 'Pays'=> $pays,
- 'actif'=> 1,
- 'source'=> 1600,
- 'dateInsert'=> date('YmdHis')));
- $res=$this->iDb->select('jo.liens', 'count(*)', "Siren1=$siren AND (Siren2=$siren2 OR (RaisonSociale='".addslashes($nom)."' AND Pays='$pays'))");
- if ($res[0][0]>0) {
- if (!$this->iDb->update('jo.liens', array_merge($tabUpdate,array('ActionPart'=>1)), "siren=$siren AND (Siren2=$siren2 OR (RaisonSociale='".addslashes($nom)."' AND Pays='$pays'))", true))
- $errMaj=1016166;
- } else {
- if (!$this->iDb->insert('jo.liens', $tabInsert1, true))
- $errMaj=1016167;
- }
-
- /* Insertion de la participation pour l'actionnaire précédent */
- $tabInsert2=array_merge($tabUpdate, array( 'ActionPart'=>2),
- array( 'Siren1'=> $siren2,
- 'Siren2'=> $siren,
- 'RaisonSociale'=> $nom2,
- 'Pays'=> $pays2,
- 'actif'=> 1,
- 'source'=> 1600,
- 'dateInsert'=> date('YmdHis')));
- $res=$this->iDb->select('jo.liens', 'count(*)', "Siren1=$siren2 AND (Siren2=$siren OR (RaisonSociale='$nom2' AND Pays='$pays2'))");
- if ($res[0][0]>0) {
- if (!$this->iDb->update('jo.liens', array_merge($tabUpdate,array('ActionPart'=>2)), "siren=$siren2 AND (Siren2=$siren OR (RaisonSociale='".addslashes($nom2)."' AND Pays='$pays2'))", true))
- $errMaj=1016168;
- } else {
- if (!$this->iDb->insert('jo.liens', $tabInsert2, true))
- $errMaj=1016169;
- }
-
- /** Insertion du dirigeant pour l'actionnaire en base **/
- $dirs=$this->iDb->select('jo.rncs_dirigeants','siren', "siren=$siren2", true, MYSQL_ASSOC);
- if (count($dirs)==0) {
- $this->iDb->insert('jo.rncs_dirigeants', array( 'siren' => $siren2,
- 'raisonSociale' => $nom,
- 'civilite' => $lien['civilite'],
- 'typeDir' => $lien['typeDir'],
- 'dirRS' => $siren2,
- 'nom' => $lien['nom'],
- 'prenom' => $lien['prenom'],
- 'naissance_nom' => $lien['naissance_nom'],
- 'naissance_date'=> $lien['naissance_date'],
- 'naissance_lieu'=> $lien['naissance_lieu'],
- 'nat' => $lien['nat'],
- 'fonction_code' => 0,
- 'fonction_lib' => 'Personne Physique',
- 'actif' => 1,
- 'dateInsert' => date('YmdHis'),
- 'source' => 'lag', // Lien Associé Gérant
- 'cinf' => $lien['cinf'],
- ), true);
- }
- }
- }
-
- }
- }
-
- /** Si l'entreprise n'a aucun actionnaire mais est majoritairement contrôlée par l'état alors on déclare l'état actionnaire **/
- if (count($tabRet)==0) {
- $tabNotice=$this->iInsee->getInfosNotice($siren, $nic);
- if ($tabNotice['insRECME']*1>0) {
- $tabRet[]=array('Pmin' => 0,
- 'PminNum' => 0,
- 'MajMin' => '+',
- 'RaisonSociale' => 'ETAT FRANCAIS',
- 'Pays' => '',
- 'CodePays' => 'FRA',
- 'Siren' => 0,
- 'Actif' => 1,
- 'Source' => $this->tabSources[1900],
- 'DateLien' => date('Y-m-').'01',
- 'DateMaj' => date('Y-m-').'01',
- );
- }
- }
-
- /** Si l'entreprise n'a aucun actionnaire, on regarde au niveau des cessions de parts **/
- /*if (count($tabRet)==0) {
- $tab=$this->iDb->select('rncs_even_info', 'siren, dateDepot, codeEven, depot_num, depot_date, acte_num, acte_date, acte_type, acte_lib, acte_pages, acte_nature, acte_decision, collecte, flux, dateInsert',
- "siren='$siren' AND codeEven IN(2,5,6,7,8,9,10,13,31,32,63)", true, MYSQL_ASSOC);
- foreach ($tab as $i=>$lien) {
- $tabRet[]=array('Pmin' => 0,
- 'PminNum' => 0,
- 'MajMin' => '+',
- 'RaisonSociale' => 'ETAT FRANCAIS',
- 'Pays' => '',
- 'Siren' => 0,
- 'Actif' => 1,
- 'Source' => $this->tabSources[1900],
- 'DateLien' => date('Y-m-').'01',
- 'DateMaj' => date('Y-m-').'01',
- );
- }
- }*/
-
- return $tabRet;
- }
-
- /** Retourne les participations du siren
- ** @param int Siren de l'entreprise
- ** @return array Tableau de participations
- **/
- public function getParticipations($siren=false, $actifsUniquement=true) {
- if (!$siren) $siren=$this->siren;
- $tab=$this->iDb->select(
- 'jo.liens l LEFT JOIN jo.tabPays ON codPays3=Pays',
- 'Siren1, ActionPart, Pmin, Pmax, MajMin, PpPm, Siren2, RaisonSociale, Pays, libPays, actif, source, dateLien*1 AS dateLien, DATE(l.dateInsert)*1 AS dateInsert, DATE(l.dateUpdate)*1 AS dateUpdate',
- "Siren1='$siren' AND ActionPart=2 ORDER BY source DESC, actif DESC, Pmin DESC", true, MYSQL_ASSOC); // OR Siren2='$siren
- $tabRet=array();
- $sourcePre=false;
- foreach ($tab as $i=>$lien) {
- if ($lien['source']>=1700) $source=1700;
- //if ($lien['source']>=1700 && $lien['source']<=1720) $source=1700;
- else $source=$lien['source']*1;
-
- $dateMaj=$lien['dateLien'];
- if ($lien['dateInsert']>$dateMaj) $dateMaj=$lien['dateInsert'];
- if ($lien['dateUpdate']>$dateMaj) $dateMaj=$lien['dateUpdate'];
- if ($i>0 && $sourcePre<>$source) break;
- if ($actifsUniquement && $lien['actif']==0) continue;
- else {
- if ($lien['MajMin']=='F') $majMin='A';
- else $majMin=$lien['MajMin'];
- if ($lien['source']==1800) $libRS=strtoupper(strtr($lien['RaisonSociale'],$this->tabChars));
- else $libRS=strtr($lien['RaisonSociale'],$this->tabChars);
- $tabRet[]=array('Pmin' => number_format($lien['Pmin']*1,2,',',''),
- 'PminNum' => $lien['Pmin']*1,
- 'MajMin' => $majMin,
- 'RaisonSociale' => $libRS,
- 'Pays' => $lien['libPays'],
- 'CodePays' => $lien['Pays'],
- 'Siren' => $lien['Siren2'],
- 'Actif' => $lien['actif'],
- 'Source' => $this->tabSources[$source],
- 'DateLien' => Metier_Util_Date::dateT('Ymd','Y-m-d', $lien['dateLien']),
- 'DateMaj' => Metier_Util_Date::dateT('Ymd','Y-m-d', $dateMaj),
- );
- }
- $sourcePre=$source;
- }
-
- // if (count($tabRet)==0) {
- $tabTmp=$this->iInsee->getIdentiteLight($siren);
- switch ($tabTmp['FJ']*1) {
- case 7112: // Autorité administrative indépendante
- case 7160: // Service déconcentré à compétence nation. D'un ministère (hors Défense)
- case 7171: // Service déconcentré de l'État à compétence (inter) régionale
- case 7172: // Service déconcentré de l'État à compétence (inter) départementale
- case 7179: // (Autre) Service déconcentré de l'État à compétence territoriale
- case 7381: // Organisme consulaire
- /** Ces établissements sont dans le fichier des tribunaux **/
- $tmp=$this->iDb->select('jo.tribunaux t1', 't1.triSiret, t1.triNom', "t1.triIdSup=(SELECT t2.triId FROM tribunaux t2 WHERE t2.triSiret LIKE '$siren%' AND t2.triId<>t1.triId LIMIT 1)", true, MYSQL_ASSOC);
- foreach ($tmp as $tabCC) {
-// $sirenCC=substr($tabCC['triSiret'],0,9);
- if ($tabCC['triSiret']*1<>0) //$siren*1<>$sirenCC*1)
- $tabRet[]=array('Pmin' => 0,
- 'PminNum' => 0,
- 'MajMin' => '+',
- 'RaisonSociale' => $tabCC['triNom'],
- 'Pays' => '',
- 'CodePays' => 'FRA',
- 'Siren' => $tabCC['triSiret'],
- 'Actif' => 1,
- 'Source' => $this->tabSources[1900],
- 'DateLien' => Metier_Util_Date::dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
- 'DateMaj' => Metier_Util_Date::dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
- );
- }
- break;
- case 7346: // Communaute de communes
- case 7348: // Communaute d'agglomeration
- //case 'CC': $typeCC="Communauté de communes"; break; // CJ=73
- //case 'CU': $typeCC="Communauté urbaine"; break; // CJ=73
- //case 'SAN': $typeCC="Syndicat d'agglomérations nouvelles"; break; // CJ=73
- $tmp=$this->iDb->select('insee.insee_tabVillesEpci', 'typEPCI, libEPCI, codeInsee, libCommune', "codEPCI='$siren'", true, MYSQL_ASSOC);
- foreach ($tmp as $tabCom) {
- $dept=substr($tabCom['codeInsee'],0,2);
- if ($dept=='2A' || $dept=='2B' || $dept=='20')
- $dept='200';
- elseif ($dept*1>95)
- $dept=substr($tabCom['codeInsee'],0,3);
- else
- $dept=$dept.'0';
- $comm=substr($tabCom['codeInsee'],2,3);
- for ($iSir=0; $iSir<10; $iSir++) {
- $sirenCom='21'.$dept.$comm.$iSir;
- if ($this->iInsee->valideSiren($sirenCom)) break;
- }
- $tabRet[]=array('Pmin' => 0,
- 'PminNum' => 0,
- 'MajMin' => '+',
- 'RaisonSociale' => 'COMMUNE DE '.strtoupper($tabCom['libCommune']),
- 'Pays' => '',
- 'CodePays' => 'FRA',
- 'Siren' => $sirenCom,
- 'Actif' => 1,
- 'Source' => $this->tabSources[1900],
- 'DateLien' => date('Y-m-').'01',
- 'DateMaj' => date('Y-m-').'01',
- );
- }
- break;
- case 7230: // Région
- // Siren du 29 22 290001 1 => Région 233 500 016
- // Siren du 28 22 280001 3 => Région 234 500 023
- // Siren du 75 22 750001 => Région 237 500 079
- // Siren du 972 22 972001 6 => Région 239 720 014
- $dept=substr($siren,2,2);
- $deptD=$dept.'000';
- $deptF=$dept.'999';
- if ($dept*1>95) {
- $dept=substr($siren,2,3);
- $deptD=$dept.'00';
- $deptF=$dept.'99';
- }
- $tmp=$this->iDb->select('insee.departements d, insee.insee_tabRegions r',
- 'd.numDep, d.libdep, d.codeRegionInsee, r.REGION, r.CHEFLIEU, r.NC',
- "r.CHEFLIEU BETWEEN '$deptD' AND '$deptF' AND d.codeRegionInsee=r.REGION", true, MYSQL_ASSOC);
- foreach ($tmp as $tabCom) {
- $dept=$tabCom['numDep'];
- if ($dept>960) $dept3=$dept;
- else $dept3=$dept.'0';
- for ($iSir=0; $iSir<10; $iSir++) {
- $sirenCom='22'.$dept3.'001'.$iSir;
- if ($this->iInsee->valideSiren($sirenCom)) break;
- }
- $tabRet[]=array('Pmin' => 0,
- 'PminNum' => 0,
- 'MajMin' => '+',
- 'RaisonSociale' => 'DEPARTEMENT '.strtoupper($tabCom['libdep']),
- 'Pays' => '',
- 'CodePays' => 'FRA',
- 'Siren' => $sirenCom,
- 'Actif' => 1,
- 'Source' => $this->tabSources[1900],
- 'DateLien' => date('Y-m-').'01',
- 'DateMaj' => date('Y-m-').'01',
- );
- }
- break;
- }
- // }
-
- return $tabRet;
- }
-
- public function getEvenements($siren=false) {
- if (!$siren) $siren=$this->siren;
- $tab=$this->iDb->select('jo.rncs_even_info', 'siren, dateDepot, codeEven, depot_num, depot_date, acte_num, acte_date, acte_type, acte_lib, acte_pages, acte_nature, acte_decision, collecte, flux, dateInsert',
- "siren='$siren' AND codeEven IN(2,5,6,7,8,9,10,13,31,32,63)", true, MYSQL_ASSOC);
- $tabRet=array();
- foreach ($tab as $i=>$lien) {
- $tabRet[]=array(/*'Pmin' => 0,
- 'PminNum' => 0,
- 'MajMin' => '+',*/
- 'DateLien' => $lien['acte_date'],
- 'TypeEvenement' => $lien['acte_nature'],
- 'InfoEvenement' => $lien['acte_decision'],
-// 'Pays' => '',
-// 'Siren' => 0,
-// 'Actif' => 1,
- 'Source' => $this->tabSources[1500],
- 'DateMaj' => $lien['flux'],
- );
- }
- return $tabRet;
- }
-
- public function getLiens($siren=false) {
- $tabA=$this->getActionnaires($siren);
- $tabP=$this->getParticipations($siren);
- $tabE=$this->getEvenements($siren);
- return array( 'actionnaires'=>$tabA,
- 'participations'=>$tabP,
- 'evenements'=>$tabE);
- }
-
- public function getMaisonMereFr($siren, $debug=false, $tabSirenVisites=array()) {
- $this->tabSirenVisites=$tabSirenVisites;
- $this->tabSirenVisites[]=$siren;
- $tabA=$this->getActionnaires($siren, true);
- $majTrouve=false;
- foreach ($tabA as $i=>$lien) {
- $sirenMere=$lien['Siren'];
- // Afin de ne pas boucler à l'infini si le siren est déjà dans la sructure !
- //echo "je cherche $sirenMere dans ";
- //print_r($tabSirenVisites);
- if (in_array($sirenMere, $this->tabSirenVisites)) {
- //echo "TROUVE !!!".PHP_EOL;
- continue;
- }// else
- //echo "inconnu".PHP_EOL;
-
- if ($debug && $sirenMere>1000) $tabIdentiteA=$this->iInsee->getIdentiteLight($sirenMere);
- else $tabIdentiteA['Nom']='';
- if ($siren*1==$sirenMere*1) {
- if ($debug) echo "D. $siren détenu à ".$lien['Pmin']." (".$lien['MajMin'].") par ".$tabIdentiteA['Nom']." ($sirenMere)".PHP_EOL;
- return $siren;
- }
- elseif($sirenMere>100 && $lien['PminNum']>50) {
- if ($debug) echo "A. $siren détenu à ".$lien['Pmin']." (".$lien['MajMin'].") par ".$tabIdentiteA['Nom']." ($sirenMere)".PHP_EOL;
- $majTrouve=true;
- return $this->getMaisonMereFr($sirenMere, $debug, $this->tabSirenVisites);
- }
- elseif($sirenMere>100 && $lien['MajMin']=='+' && !$majTrouve) {
- if ($debug) echo "B. $siren détenu à ".$lien['Pmin']." (".$lien['MajMin'].") par ".$tabIdentiteA['Nom']." ($sirenMere)".PHP_EOL;
- $majTrouve=true;
- return $this->getMaisonMereFr($sirenMere, $debug, $this->tabSirenVisites);
- }
- elseif ($sirenMere<100) {
- if ($debug) echo "C. $siren détenu à ".$lien['Pmin']." (".$lien['MajMin'].") par ".$tabIdentiteA['Nom']." ($sirenMere)".PHP_EOL;
- return $siren;
- }
- else {
- if ($debug) echo "E. $siren détenu à ".$lien['Pmin']." (".$lien['MajMin'].") par ".$tabIdentiteA['Nom']." ($sirenMere)".PHP_EOL;
- //die("Cas pas prévue $siren, $sirenMere, ".$lien['Pmin'].', '.$lien['MajMin'].PHP_EOL);
- return $siren;
- }
- }
- if ($i==0) return $siren;
- }
-
- public function getAllParticipations($siren, $pctMin=33, $nbNiveaux=15, $niveauCour=1, $tabSiren=array(), $sirenIni=0, $sirenMere=0, $appel=0, $actifsUniquement=true, $format='txt', $tabRet=array()) {
- $appel++;
- $tabP=$this->getParticipations($siren, $actifsUniquement);
-
- foreach ($tabP as $i=>$lien) {
- $sirenFille=$lien['Siren']*1;
- if ($sirenFille>1000) {
- $tabIdentiteP=$this->iInsee->getIdentiteLight($sirenFille);
- $nomP=$tabIdentiteP['Nom'];
- } else {
- $nomP=$lien['RaisonSociale'];
- }
- $codPays=$lien['Pays'];
- $libPays='';
- if ($codPays<>'' && $codPays<>'France')
- $libPays=" ($codPays)";
-
- for($j=0;$j<$appel; $j++) echo "|\t";
-
- if ($lien['PminNum']>0)
- $pct=$lien['PminNum'].'%';
- elseif ($lien['MajMin']=='+')
- $pct='major';
- elseif ($lien['MajMin']=='-')
- $pct='minor';
- else
- $pct=$lien['MajMin'];
-
- echo "+ $sirenFille ($pct) : ".$nomP.$libPays;
-
- if ($siren*1==$sirenFille*1) {
- echo "[D]".PHP_EOL;
- $tabSiren[]=$siren;
- }
- elseif($sirenFille>100 && ($lien['PminNum']>=$pctMin || $lien['MajMin']=='+') && $appel<=$nbNiveaux) {
- $tabSiren[]=$siren;
- if (in_array($sirenFille,$tabSiren))
- echo "[Adeja]".PHP_EOL;
- else {
- echo "[A]".PHP_EOL;
- $niveauCour++;
- $tabSiren=$this->getAllParticipations($sirenFille, $pctMin, $nbNiveaux, $niveauCour, $tabSiren, $sirenIni, $sirenMere, $appel, $actifsUniquement, $format, $tabRet);
- }
- }
- elseif($sirenFille>100 && ($lien['PminNum']<$pctMin || $lien['MajMin']=='-')) {
- echo "[B]".PHP_EOL;
- $tabSiren[]=$siren;
- }
- elseif ($sirenFille<100) {
- echo "[C]".PHP_EOL;
- $tabSiren[]=$siren;
- }
- else {
-
- /**1) {
- echo "[D]".PHP_EOL;
- $tabSiren[]=$siren;
- }
- elseif($sirenFille>100 && ($lien['PminNum']>=$pctMin || $lien['MajMin']=='+') && $niveauCour<=$nbNiveaux) { */
-
- echo "[E]".PHP_EOL;// $siren, $sirenFille, ".$lien['PminNum'].">=$pctMin, ".$lien['MajMin'].", $niveauCour<=$nbNiveaux".PHP_EOL;
- $tabSiren[]=$siren;
- }
- $tabPart=array( 'siren' => $sirenFille,
- 'nom' => $nomP,
- 'pct' => $pct,
- 'pays' => $libPays,
- 'filles'=> $tabFilles);
- $tabParts[]=$tabPart;
- }
- $tabRet=$tabParts;
- return array_unique($tabSiren);
- }
-
- /**
- * Retourne l'arborescence pour les groupes
- * @param string $siren
- * @param int $pctMin
- * @param int $nbNiveaux
- */
- public function getArborescence($siren, $pctMin=33, $nbNiveaux=10)
- {
- //Récupération de la maison mère
- $sirenMere = $this->getMaisonMereFr($siren);
-
- //Informations de la maison mère
- $tabId = $this->iInsee->getIdentiteLight($sirenMere);
-
- $tabSirenDeja = array();
- $tabSirenDeja[] = $tabId['Siren'];
-
- //Retour
- $tabRet = array(
- 'name' => $tabId['Nom'],
- 'siren' => $tabId['Siren'],
- 'children' => $this->getArborescenceRecursive($sirenMere, $pctMin, 1, $nbNiveaux, $tabSirenDeja),
- );
- return $tabRet;
- }
-
- /**
- * Retourne un sous élement de l'arborescende pour les groupes
- * @param string $siren
- * @param int $pctMin
- * @param int $niveau
- * @param int $nbNiveaux
- * @param array $tabSirenDeja
- */
- public function getArborescenceRecursive( $siren, $pctMin=33, $niveau=0, $nbNiveaux=10, $tabSirenDeja=array() )
- {
- if ( $niveau > $nbNiveaux ) return array();
- $niveau++;
-
- $tabRet = array();
- $participations = $this->getParticipations($siren);
- if ( count($participations)>0 ) {
- foreach ( $participations as $item ) {
- if ( $item['Pmin'] > $pctMin ) {
-
- //file_put_contents('test.log', $item['Siren']."\n", FILE_APPEND);
-
- $data = array(
- 'name' => $item['RaisonSociale'],
- 'siren' => $item['Siren'],
- 'pmin' => $item['Pmin'],
- 'pays' => $item['Pays'],
- 'children' => array(),
- );
- //Pour éviter d'avoir des boucles infinis
- if ( !in_array($item['Siren'], $tabSirenDeja) && intval($item['Siren'])>1000 ){
- $tabSirenDeja[] = $item['Siren'];
- $data['children'] = $this->getArborescenceRecursive($item['Siren'], $pctMin, $niveau, $nbNiveaux, $tabSirenDeja);
- }
- $tabRet[] = $data;
- }
- }
-
- //file_put_contents('test.log', "\n", FILE_APPEND);
-
- }
- return $tabRet;
- }
-
- /** Recherche d'entreprise par leur actionnaire
- **
- ** @param string $nom Raison sociale / Nom de l'actionnaire (obligatoire)
- ** @param string $cpVille CP, Ville
- ** @param integer $siren Siren de l'actionnaire
- ** @param string $pays Pays de l'actionnaire
- ** @param string $detention Niveau de détention de l'actionnaire
- ** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
- ** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
- ** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
- ** @param bool $pertinence Recherche orthographique stricte sur les noms et prénoms (si true)
- ** @return Liste des entreprises trouvées
- **/
- public function rechercheActionnaire($nom, $cpVille='', $siren=0, $pays='', $pctMin=0, $pctMax=100, $deb=0, $nbRep=20, $maxRep=200, $pertinence=false)
- {
- Metier_Util_Log::write('I',"rechercheActionnaire de $nom, $cpVille, $pays, $siren entre $pctMin et $pctMax% (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
- $formR = array(
- 'type' => 'act',
- 'siren' => $siren,
- 'actNomRS' => join(' ', array($nom, $cpVille)),
- 'pays' => $pays,
- 'pctMin' => $pctMin,
- 'pctMax' => $pctMax,
- );
-
- $version = defined('SPHINX_ACT_VERSION') ? SPHINX_ACT_VERSION : 1;
- require_once 'Metier/sphinx/rechercheFonc.php';
- $result = rechercheAct($formR, $deb, $nbRep, $maxRep);
- /*
- switch($version)
- {
- case 1:
- require_once 'Metier/sphinx/rechercheFonc.php';
- $result = rechercheAct($formR, $deb, $nbRep, $maxRep);
- break;
- case 2:
- require_once 'Metier/sphinx2/rechercheFonc.php';
- $recherche = new rechercheFonc();
- $result = $recherche->rechercheAct($formR, $deb, $nbRep, $maxRep);
- break;
- }
- */
- return $result;
- }
-
- /** Retourne les informations relatives au groupe du siren donné
- ** @param string $siren Siren de l'entreprise
- **/
- public function getInfoGroupe($siren) {
- if ($siren<1000) return false;
- $tmp=$this->iDb->select('jo.etablissements_act',
- 'raisonSociale, enseigne, sigle, identite_pre, adr_num, adr_btq, adr_typeVoie, adr_libVoie, adr_comp, adr_cp, adr_ville, adr_dep, adr_com, tel, fax, siren, sirenGrp',
- "siren=(SELECT distinct sirenGrp FROM jo.etablissements_act WHERE siren=$siren AND siege=1) LIMIT 0,1", false, MYSQL_ASSOC);
- $tabEnt=$tmp[0];
- $sirenGrp=$tabEnt['siren'];
-
- if ($sirenGrp<1000) return false;
- /** Table des Nafs5 => Secteurs **/
- $tmp=$this->iDb->select('jo.tabNaf5', 'codNaf2, codNaf1', '1 GROUP BY codNAf2', false, MYSQL_ASSOC);
- $tabNAf2=array();
- foreach ($tmp as $tmp2) {
- $tabNAf2[$tmp2['codNaf2']]=$tmp2['codNaf1'];
- }
-
- $tabNaf2Lib=array( 'A'=>'Agriculture, sylviculture et pêche',
- 'B'=>'Industries extractives',
- 'C'=>'Industrie manufacturière',
- 'D'=>'Production et distribution d\'électricité, de gaz, de vapeur et d\'air conditionné',
- 'E'=>'Production et distribution d\'eau ; assainissement, gestion des déchets et dépollution',
- 'F'=>'Construction',
- 'G'=>'Commerce ; réparation d\'automobiles et de motocycles',
- 'H'=>'Transports et entreposage',
- 'I'=>'Hébergement et restauration',
- 'J'=>'Information et communication',
- 'K'=>'Activités financières et d\'assurance',
- 'L'=>'Activités immobilières',
- 'M'=>'Activités spécialisées, scientifiques et techniques',
- 'N'=>'Activités de services administratifs et de soutien',
- 'O'=>'Administration publique',
- 'P'=>'Enseignement',
- 'Q'=>'Santé humaine et action sociale',
- 'R'=>'Arts, spectacles et activités récréatives',
- 'S'=>'Autres activités de services',
- 'T'=>'Activités des ménages en tant qu\'employeurs ; activités indifférenciées des ménages en tant que producteurs de biens et services pour usage propre',
- 'U'=>'Activités extra-territoriales',
- );
-
- $tabId=$this->iInsee->getIdentiteEntreprise($sirenGrp);
-/*
- [SiretSiege] => 54205118000066
- [dir1Titre] => Président du conseil d'administration
- [dir1NomPrenom] => JACQUIN DE MARGERIE Christophe
- [Activite] => la recherche et l' exploitation des gisements miniers et notamment d'hydrocarbures sous toutes leurs formes, l'industrie, le raffinage, la transformation et le commerce de ces matières ainsi que leurs dérivés et sous-produits, ainsi que toutes activités relevant de l' énergie et de la chimie
- [dir1Code] => 1306
- [dir1Nom] => JACQUIN DE MARGERIE
- [dir1Prenom] => Christophe
- [dir1DateFct] =>
- [dir1DateNaiss] => 1951-08-06
- [dir1LieuNaiss] => MAREUIL-SUR-LAY-DISSAIS
- [dir2Code] => 0709
- [dir2Titre] => Directeur général
- [dir2NomPrenom] => JACQUIN DE MARGERIE Christophe
- [dir2Nom] => JACQUIN DE MARGERIE
- [dir2Prenom] => Christophe
- [dir2DateFct] =>
- [dir2DateNaiss] => 1951-08-06
- [dir2LieuNaiss] => MAREUIL-SUR-LAY-DISSAIS
- [dateImmat] => 1954-08-20
- [dateRad] => 0000-00-00
- [Bourse] => Array
- [placeCotation] => Euronext Paris (France)
- [capitalisation] => 87020810003.675
- [derCoursDate] => 2011-10-17
- [derCoursCloture] => 37.055
-*/
- $tabRet=array( 'grpNom' => $tabEnt['raisonSociale'],
- 'grpEnseigne' => $tabEnt['enseigne'],
- 'grpSigle' => $tabEnt['sigle'],
- //'grpEnseigne' => $tabEnt['identite_pre'],
- 'grpAdrNum' => $tabEnt['adr_num'],
- 'grpAdrBtq' => $tabEnt['adr_btq'],
- 'grpAdrTypeVoie'=> $tabEnt['adr_typeVoie'],
- 'grpadrLibVoie' => $tabEnt['adr_libVoie'],
- 'grpAdrComp' => $tabEnt['adr_comp'],
- 'grpAdrCP' => $tabEnt['adr_cp'],
- 'grpAdrVille' => $tabEnt['adr_ville'],
- 'grpAdrDep' => $tabEnt['adr_dep'],
- 'grpAdrCom' => $tabEnt['adr_com'],
- 'grpTel' => $tabEnt['tel'],
- 'grpFax' => $tabEnt['fax'],
- 'grpSiren' => $tabEnt['siren'],
- //'grpSirenGrp' => $tabEnt['sirenGrp'],
- 'grpTva' => $tabId['TvaNumero'],
- 'grpIsin' => $tabId['Isin'],
- 'grpNumRC' => $tabId['numRC'],
- 'grpTribunal' => $tabId['TribunalLib'],
- 'grpWeb' => $tabId['Web'],
- //'grpTVA' => $tabId['TvaNumero'],
- );
- $tmp=$this->iDb->select('jo.etablissements_act e',
- 'e.siren, e.eff_entrep, e.dateCrea_ent AS dateCrea, e.dateImmat*1 AS dateImmat, e.bilFK, e.bilFL, e.bilYP, e.ape_entrep, e.avisCs, e.procolHisto',
- "e.sirenGrp=$sirenGrp AND e.siege=1", false, MYSQL_ASSOC);
- $grpNbEnt=$grpEffectif=$grpCAExp=$grpCA=$nbProcol=0;
- $grpDateCrea=$grpDateImmat=date('Ymd');
- $tabSirenGrp=array();
- foreach ($tmp as $tabEnt) {
- $tabSirenGrp[]=$tabEnt['siren'];
- $grpNbEnt++;
- if ($tabEnt['bilYP']>$tabEnt['eff_entrep']) $grpEffectif+=$tabEnt['bilYP'];
- else $grpEffectif+=$tabEnt['eff_entrep'];
- if ($tabEnt['procolHisto']*1==1) $nbProcol++;
- if ($grpDateCrea>$tabEnt['dateCrea'] && $tabEnt['dateCrea']>=19000101) $grpDateCrea=$tabEnt['dateCrea'];
- if ($grpDateImmat>$tabEnt['dateImmat'] && $tabEnt['dateImmat']>=19000101) $grpDateImmat=$tabEnt['dateImmat'];
- $grpCAExp+=$tabEnt['bilFK'];
- $grpCA+=$tabEnt['bilFL'];
- /* @$tabApe5[''.$tabEnt['ape_entrep']]['nb']++;
- @$tabApe5[''.$tabEnt['ape_entrep']]['ca']+=$tabEnt['bilFL'];
- @$tabApe5[''.$tabEnt['ape_entrep']]['eff']+=$tabEnt['eff_entrep'];*/
- @$tabSecteur[$tabNAf2[''.substr($tabEnt['ape_entrep'],0,2)]]['nb']++;
- @$tabSecteur[$tabNAf2[''.substr($tabEnt['ape_entrep'],0,2)]]['ca']+=$tabEnt['bilFL'];
- @$tabSecteur[$tabNAf2[''.substr($tabEnt['ape_entrep'],0,2)]]['eff']+=$tabEnt['eff_entrep'];
-
- @$tabAvis[$tabEnt['avisCs']]++;
- }
- foreach ($tabSecteur as $secteur=>$tmp) {
- $tabSecteur2[$secteur]['activite']=$tabNaf2Lib[$secteur];
- $tabSecteur2[$secteur]['nb']=$tmp['nb'];
- $tabSecteur2[$secteur]['nb_tx']=round($tmp['nb']*100/$grpNbEnt,2);
- $tabSecteur2[$secteur]['ca']=$tmp['ca'];
- $tabSecteur2[$secteur]['ca_tx']=round($tmp['ca']*100/$grpCA,2);
- $tabSecteur2[$secteur]['eff']=$tmp['eff'];
- $tabSecteur2[$secteur]['eff_tx']=round($tmp['eff']*100/$grpEffectif,2);
- }
- $tabRet['grpNbEntrep']=$grpNbEnt;
- $tabRet['grpEffectif']=$grpEffectif;
- if ($grpDateCrea<$grpDateImmat)
- $tabRet['grpAnneCreation']=substr($grpDateCrea,0,4);
- else
- $tabRet['grpAnneCreation']=substr($grpDateImmat,0,4);
- $tabRet['grpCAExport']=$grpCAExp;
- $tabRet['grpCA']=$grpCA;
- if ($grpCA>=500000000) $tabRet['grpGrandGroupeFr']=1; else $tabRet['grpGrandGroupeFr']=0;
- // $tabRet['ape5']=$tabApe5;
- $tabRet['secteur']=$tabSecteur2;
- $tabRet['avisCs']=$tabAvis; // Vérifier les procol
-
- $strSiren=implode(',', $tabSirenGrp);
- /*$tmp=$this->iDb->select('insee.insee_notices',
- 'insSIREN, insNIC, dateNotice',
- "insSIREN IN($strSiren) AND insRECME>0 GROUP BY insSIREN, insNIC, dateNotice ORDER BY dateNotice DESC", false, MYSQL_ASSOC);
- if (count($tmp)>0) $tabRet['grpRecme']=1;
- else $tabRet['grpRecme']=0;*/
- $tabRet['grpNbProcolHisto']=$nbProcol;
-
- return $tabRet;
- }
-
-}
\ No newline at end of file
diff --git a/src/Metier/Util/PdoLib.php b/src/Metier/Util/PdoLib.php
deleted file mode 100644
index 2c84fe5..0000000
--- a/src/Metier/Util/PdoLib.php
+++ /dev/null
@@ -1,74 +0,0 @@
- 'IP',
- * 'port' => '3306',
- * 'dbname' => 'db',
- * 'charset' => 'utf8',
- * 'user' => 'user',
- * 'password' => 'password',
- * @return boolean|PDO
- */
- public function __construct(array $config = array())
- {
- $user = null;
- $password = null;
- $options = array();
-
- // Get Application config from registry
- if (count($config) == 0) {
- $c = Zend_Registry::get('config');
- $params = $c->profil->db->metier->params;
- $dsn = "mysql:host=".$params->host.
- ";port=".(isset($params->port) ? $params->port : '3306').
- ";dbname=".$params->dbname.
- ";charset=utf8";
- $user = $params->username;
- $password = $params->password;
- }
- // Get config from params
- else {
- $dsn = "mysql:host=".$config['host'].
- ";port=".(isset($config['port']) ? $config['port'] : '3306').
- ";dbname=".$config['dbname'].
- ";charset=".(isset($config['charset']) ? $config['charset'] : 'utf8');
- if (array_key_exists('username', $config)) {
- $user = $config['username'];
- }
- if (array_key_exists('password', $config)) {
- $password = $config['password'];
- }
- if (array_key_exists('options', $config)) {
- $options = $config['options'];
- }
- }
-
- // Try to load PDO
- try {
- $this->conn = new PDO($dsn, $user, $password, $options);
- $this->conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
- } catch (PDOException $e) {
- echo $e->getMessage();
- $this->conn = false;
- }
- }
-
- /**
- * Get connection
- * @return PDO
- */
- public function getConnection()
- {
- return $this->conn;
- }
-}
diff --git a/src/Metier/sphinx/criteresFonc.php b/src/Metier/sphinx/criteresFonc.php
deleted file mode 100644
index 9814fe9..0000000
--- a/src/Metier/sphinx/criteresFonc.php
+++ /dev/null
@@ -1,204 +0,0 @@
- 'IT ', 'next' => '12' ),
- array( 'crit' => 'I ', 'next' => '00' ),
- array( 'crit' => 'I SEP ', 'next' => '12' ),
- array( 'crit' => ' T ', 'next' => '00' ),
- array( 'crit' => ' TSEP ', 'next' => '13 61 61o61p' ),
- array( 'crit' => ' D VNR', 'next' => '24 45o24o24p' ),
- array( 'crit' => ' D NR', 'next' => '21o21p' ),
- array( 'crit' => ' DL NR', 'next' => '21 21o21p' ),
- array( 'crit' => ' DLVNR', 'next' => '36 45 24 45o24o24p' ),
- array( 'crit' => ' P VNR', 'next' => '74 78o74o74p' ),
- array( 'crit' => ' PD VNR', 'next' => '74 78o74o74p' ),
- array( 'crit' => ' PDL NR', 'next' => '78 83o74 74o74p' ),
- array( 'crit' => ' PDLV R', 'next' => '78 81 82 77 71' ),
- array( 'crit' => ' PDLVN ', 'next' => '82 75 28 71' ),
- array( 'crit' => ' PDLVNR', 'next' => '78 74 82 78o74o82o82p' ),
- array( 'crit' => ' S ', 'next' => '30o30p' ),
- array( 'crit' => ' S R', 'next' => '72o71 71o71p' ),
- array( 'crit' => ' S N ', 'next' => '31' ),
- array( 'crit' => ' S NR', 'next' => '77 43 71' ),
- array( 'crit' => ' S V ', 'next' => '35o35p30' ),
- array( 'crit' => ' S VN ', 'next' => '75 77o75o77p75p' ),
- array( 'crit' => ' S V R', 'next' => '75 83' ),
- array( 'crit' => ' S VNR', 'next' => '43 44 75 83 61 71' ),
- array( 'crit' => ' S D ', 'next' => '40p40o61p61' ),
- array( 'crit' => ' S D R', 'next' => '45o77 77o77p' ),
- array( 'crit' => ' S D N ', 'next' => '71' ),
- array( 'crit' => ' S D NR', 'next' => '77 43 71 31' ),
- array( 'crit' => ' S D V ', 'next' => '77o40 40o' ),
- array( 'crit' => ' S D V R', 'next' => '75 72 71' ),
- array( 'crit' => ' S D VN ', 'next' => '43 41 77 71' ),
- array( 'crit' => ' S D VNR', 'next' => '44 43 49 73 75 72 71' ),
- array( 'crit' => ' S DL ', 'next' => '78 78p61p61p' ),
- array( 'crit' => ' S DL R', 'next' => '82 78 77 71' ),
- array( 'crit' => ' S DL N ', 'next' => '41 71' ),
- array( 'crit' => ' S DL NR', 'next' => '78 82 81 78p77 43 71 31' ),
- array( 'crit' => ' S DLV ', 'next' => '78 78p71' ),
- array( 'crit' => ' S DLV R', 'next' => '78 83 82 75 72 40 71' ),
- array( 'crit' => ' S DLVN ', 'next' => '78 82 78p43 71' ),
- array( 'crit' => ' S DLVNR', 'next' => '78 49 77 43 78p75 41 72 71 22' ),
- array( 'crit' => ' S P ', 'next' => '60o60p31 31o31p' ),
- array( 'crit' => ' S P R', 'next' => '45 77 41' ),
- array( 'crit' => ' S P N ', 'next' => '71 71o45 45p' ),
- array( 'crit' => ' S P NR', 'next' => '77 72 33 32' ),
- array( 'crit' => ' S P V ', 'next' => '63o45 45o45p' ),
- array( 'crit' => ' S P VN ', 'next' => '45 43 61 64' ),
- array( 'crit' => ' S P V R', 'next' => '75 83 45 35' ),
- array( 'crit' => ' S P VNR', 'next' => '77 45 44 43 73 75 72 71 41 42 40' ),
- array( 'crit' => ' S PD ', 'next' => '45 71p71o' ),
- array( 'crit' => ' S PD R', 'next' => '77 45 71' ),
- array( 'crit' => ' S PD N ', 'next' => '71 71o45 45o' ),
- array( 'crit' => ' S PD NR', 'next' => '77 76 45 41 43 40' ),
- array( 'crit' => ' S PD V ', 'next' => '45 45o71 42 42p' ),
- array( 'crit' => ' S PD V R', 'next' => '77 83 43 71 41' ),
- array( 'crit' => ' S PD VN ', 'next' => '83 75 71 44 83o75o71o44o43 41 40 40o40p' ),
- array( 'crit' => ' S PD VNR', 'next' => '77 74 45 44 43 75 71 61 63 60 40' ),
- array( 'crit' => ' S PDL ', 'next' => '71 71o71p45 45o' ),
- array( 'crit' => ' S PDL R', 'next' => '78 82 75 45 44' ),
- array( 'crit' => ' S PDL N ', 'next' => '73 48 41' ),
- array( 'crit' => ' S PDL NR', 'next' => '78 82 81 49 77 65 44 43 75 60 31' ),
- array( 'crit' => ' S PDLV ', 'next' => '78 45 45o71 42 42p40' ),
- array( 'crit' => ' S PDLV R', 'next' => '78 83 82 75 45 49 46 42 71 40' ),
- array( 'crit' => ' S PDLVN ', 'next' => '78 83 77 45 71 42 41 40' ),
- array( 'crit' => ' S PDLVNR', 'next' => '78 83 27 74 45 44 43 42 40' ),
- array( 'crit' => ' SE ', 'next' => '31o31p' ),
- array( 'crit' => ' SE R', 'next' => '72o71 71o71p' ),
- array( 'crit' => ' SE N ', 'next' => '31' ),
- array( 'crit' => ' SE NR', 'next' => '77 43 71' ),
- array( 'crit' => ' SE V ', 'next' => '35o35p30' ),
- array( 'crit' => ' SE V R', 'next' => '75 83' ),
- array( 'crit' => ' SE VN ', 'next' => '75 77' ),
- array( 'crit' => ' SE VNR', 'next' => '43 44 75 83 61 71' ),
- array( 'crit' => ' SE D ', 'next' => '40o30' ),
- array( 'crit' => ' SE D R', 'next' => '45o77' ),
- array( 'crit' => ' SE D N ', 'next' => '71' ),
- array( 'crit' => ' SE D NR', 'next' => '77 43 71 31' ),
- array( 'crit' => ' SE D V ', 'next' => '77o40' ),
- array( 'crit' => ' SE D V R', 'next' => '75 72 71' ),
- array( 'crit' => ' SE D VN ', 'next' => '43 41 77' ),
- array( 'crit' => ' SE D VNR', 'next' => '44 43 49 73 75 72 71' ),
- array( 'crit' => ' SE DL ', 'next' => '40' ),
- array( 'crit' => ' SE DL R', 'next' => '82 78 77' ),
- array( 'crit' => ' SE DL N ', 'next' => '45 43 82o45o43o43p' ),
- array( 'crit' => ' SE DL NR', 'next' => '78 82 81 46 77 43 71 31' ),
- array( 'crit' => ' SE DLV ', 'next' => '78 78o71 71o71p' ),
- array( 'crit' => ' SE DLV R', 'next' => '78 83 82 75 72 40' ),
- array( 'crit' => ' SE DLVN ', 'next' => '78 82 46 43 71' ),
- array( 'crit' => ' SE DLVNR', 'next' => '78 49 77 43 46 75 41 72 71 22' ),
- array( 'crit' => ' SEP ', 'next' => '61p31 31p30' ),
- array( 'crit' => ' SEP R', 'next' => '45 77 41' ),
- array( 'crit' => ' SEP N ', 'next' => '71 71o45 45p' ),
- array( 'crit' => ' SEP NR', 'next' => '77 72 33 32' ),
- array( 'crit' => ' SEP V ', 'next' => '63o45' ),
- array( 'crit' => ' SEP V R', 'next' => '75 83 45 35' ),
- array( 'crit' => ' SEP VN ', 'next' => '45 43 61 64' ),
- array( 'crit' => ' SEP VNR', 'next' => '77 45 44 43 73 75 72 71 41 42 40' ),
- array( 'crit' => ' SEPD ', 'next' => '45 71p' ),
- array( 'crit' => ' SEPD R', 'next' => '77 45' ),
- array( 'crit' => ' SEPD N ', 'next' => '71 71o45 40' ),
- array( 'crit' => ' SEPD NR', 'next' => '77 76 45 41 43 40' ),
- array( 'crit' => ' SEPD V ', 'next' => '45 71p71o40' ),
- array( 'crit' => ' SEPD V R', 'next' => '77 83 43 71 41 40' ),
- array( 'crit' => ' SEPD VN ', 'next' => '83 75 71 44 83o75o71o44o43 41 40 40o40p' ),
- array( 'crit' => ' SEPD VNR', 'next' => '77 74 45 44 43 75 71 61 63 60 40' ),
- array( 'crit' => ' SEPDL ', 'next' => '45 71p40' ),
- array( 'crit' => ' SEPDL R', 'next' => '78 82 75 45 44 40' ),
- array( 'crit' => ' SEPDL N ', 'next' => '73 48 41 40' ),
- array( 'crit' => ' SEPDL NR', 'next' => '78 82 81 49 77 65 44 43 75 60 31' ),
- array( 'crit' => ' SEPDLV ', 'next' => '78 45 45o71 42 42p' ),
- array( 'crit' => ' SEPDLV R', 'next' => '78 83 82 75 45 49 46 42 71 40' ),
- array( 'crit' => ' SEPDLVN ', 'next' => '78 83 77 45 71 42 41 40' ),
- array( 'crit' => ' SEPDLVNR', 'next' => '78 83 27 74 45 44 43 42 40' ),
- );
-
- foreach ($sequence as $ligne) {
- if (strstr($ligne['crit'], $criteres) != false) {
- return str_split($ligne['next'], 3);
- }
- }
- return array();
-}
-
-// --------------------------------------------------------------------------- //
-// Nouvelle combinaison
-// --------------------------------------------------------------------------- //
-function nouvelleCombinaison(&$sequence, &$sequencePos, $pass, &$index, &$mode)
-{
- for (;;) {
- if (isset($sequence[$sequencePos]) === false) {
- return '';
- }
-
- $combinaison = trim($sequence[$sequencePos]);
- ++$sequencePos;
-
- if (strlen($combinaison) == 2) {
- return $combinaison;
- }
-
- // Passage en phonetique ou en orthographique
- if (strlen($combinaison) == 3) {
- if ($pass == 2 || $pass == 3) {
- continue;
- }
- $car = strtolower(substr($combinaison, 2, 1));
-
- //Search Engine Version 2, we remove the orthographique
- if (SPHINX_ENT_VERSION == 2 && $car == 'o') {
- return strtolower(substr($combinaison, 0, 2));
- }
-
- switch($car) {
- case 'p':
- $index = 'ent_phx';
- $mode = SPH_MATCH_EXTENDED2;
- break;
- case 'o':
- $index = 'ent_mns';
- $mode = SPH_MATCH_ISPELL;
- break;
- default:
- debugln("attention: mode inconnu: '$car'");
- }
- } else if ($pass == 1) {
- $index = 'ent_mns';
- //Search Engine Version 2, we remove the orthographique
- if (SPHINX_ENT_VERSION == 2) {
- $index = 'ent';
- }
- }
-
- return $combinaison;
- }
-}
-
-// --------------------------------------------------------------------------- //
-// Nouveaux criteres
-// --------------------------------------------------------------------------- //
-function nouveauxCriteres($comb2crit, $combinaison)
-{
- if ( array_key_exists($combinaison, $comb2crit) ) {
- $ligne = $comb2crit[$combinaison];
- return $ligne;
- }
-
- return '';
-}
- ?>
\ No newline at end of file