class MRncs { public $tabFctDir=array( 100 =>array('codeSd'=>'1300', 'lib'=>'Président'), 110 =>array('codeSd'=>'1306', 'lib'=>'Président du conseil d\'administration'), 120 =>array('codeSd'=>'1301', 'lib'=>'Président directeur Général'), 140 =>array('codeSd'=>'1650', 'lib'=>'Gouverneur'), 150 =>array('codeSd'=>'1651', 'lib'=>'Sous-gouverneur'), 200 =>array('codeSd'=>'0900', 'lib'=>'Gérant'), 210 =>array('codeSd'=>'0912', 'lib'=>'Gérant non associé'), 300 =>array('codeSd'=>'0400', 'lib'=>'Co-gérant'), 400 =>array('codeSd'=>'0709', 'lib'=>'Directeur général'), 410 =>array('codeSd'=>'0713', 'lib'=>'Directeur général non administrateur'), 420 =>array('codeSd'=>'0708', 'lib'=>'Directeur général unique'), 430 =>array('codeSd'=>'0704', 'lib'=>'Directeur général délégué'), 500 =>array('codeSd'=>'1800', 'lib'=>'Vice-président'), 600 =>array('codeSd'=>'0100', 'lib'=>'Administrateur'), 610 =>array('codeSd'=>'0101', 'lib'=>'Administrateur délégué'), 700 =>array('codeSd'=>'1308', 'lib'=>'Président du directoire'), 900 =>array('codeSd'=>'1307', 'lib'=>'Président du conseil de surveillance'), 1200=>array('codeSd'=>'0209', 'lib'=>'Associé-gérant'), 1300=>array('codeSd'=>'0603', 'lib'=>'Contrôleur de gestion'), 4000=>array('codeSd'=>'A', 'lib'=>'Administrateur judiciaire'), 4100=>array('codeSd'=>'1900', 'lib'=>'Liquidateur'), 4300=>array('codeSd'=>'0108', 'lib'=>'Administrateur provisoire'), 4400=>array('codeSd'=>'1401', 'lib'=>'Représentant en France d\'une société étrangère'), 7000=>array('codeSd'=>'U', 'lib'=>'Curateur'), 7100=>array('codeSd'=>'C', 'lib'=>'Commissaire au plan'), 7200=>array('codeSd'=>'S', 'lib'=>'Syndic'), 7300=>array('codeSd'=>'D', 'lib'=>'Commissaire au concordat'), 7500=>array('codeSd'=>'R', 'lib'=>'Représentant des créanciers'), 7600=>array('codeSd'=>'M', 'lib'=>'Mandataire judiciaire'), 7800=>array('codeSd'=>'M', 'lib'=>'Mandataire judiciaire'), 9100=>array('codeSd'=>'T', 'lib'=>'Conciliateur'), ); public $tabDevises=array(); public $tabPays=array(); public $tabTribunaux=array(); public $tabMandataires=array(); public $tabJugements=array(); private $iDb; /** Partie Extranet IMR Infogreffe **/ public $body=''; public $referer=''; public $codeRetour=''; public $libErreur=''; public $cookie=''; public $infoIMR=array(); public $maxDemJour=10; function __construct() { $this->iDb=new WDB(); $this->tabDevises=$this->getTabDevisesInpi(); $this->tabPays=$this->getTabPaysInpi(); $this->tabTribunaux=$this->getTabTribunaux(); $this->tabMandataires=$this->getTabMandataires(); $this->tabJugements=$this->getTabJugements(); } public function getLibFctDir($codeFonctionDirectionRncs) { $codeFonctionDirectionRncs=$codeFonctionDirectionRncs*1; return $this->tabFctDir[$codeFonctionDirectionRncs]['lib']; } public function getCodFctBodaccFctDir($codeFonctionDirectionRncs) { $codeFonctionDirectionRncs=$codeFonctionDirectionRncs*1; return $this->tabFctDir[$codeFonctionDirectionRncs]['codeSd']; } /** Initialisation du tableau privé des devises Inpi <=> ISO **/ private function getTabDevisesInpi() { $rep=$this->iDb->select('tabDevises', 'devInpi, devIso', 'devInpi>0', false, MYSQL_ASSOC); $tabDevises=array(); foreach($rep as $k=>$dev) $tabDevises[$dev['devInpi']*1]=$dev['devIso']; return $tabDevises; } /** Récupération du code ISO de la devise numérique de l'Inpi ** ** @param integer $devise ** @return string Devise ISO **/ public function getDeviseInpi($numDeviseInpi) { if ($numDeviseInpi*1>0 && isset($this->tabDevises[$numDeviseInpi*1])) return $this->tabDevises[$numDeviseInpi*1]; else return ''; } public function getTabJugements() { $rep=$this->iDb->select('tabJugeRncs', 'codJugement, codEven', '1', false, MYSQL_ASSOC); $tabJug=array(); foreach($rep as $k=>$dev) $tabJug[$dev['codJugement']*1]=$dev['codEven']; return $tabJug; } public function getCodeEvenJugementInpi($codJugementInpi) { if ($codJugementInpi*1>0 && isset($this->tabJugements[$codJugementInpi*1])) return $this->tabJugements[$codJugementInpi*1]; else return $codJugementInpi; } /** Initialisation du tableau privé des pays Inpi <=> ISO **/ private function getTabPaysInpi() { $rep=$this->iDb->select('tabPays', 'codePaysInpi, codPays', 'codePaysInpi>0', false, MYSQL_ASSOC); $tabPays=array(); foreach($rep as $k=>$dev) $tabPays[$dev['codePaysInpi']*1]=$dev['codPays']; return $tabPays; } /** Tableau des mandataires suceptibles d'être tranmis par l'INPI **/ private function getTabMandataires() { $tabTmp=$this->iDb->select('tabMandataires', "UPPER(CONCAT(SUBSTRING(Nom,1,4),'-',SUBSTRING(Prenom,1,3))) AS NomPre, SUBSTRING(cp,1,2) AS dep, COUNT(*) AS Nb, sirenMand, id, sirenGrp, Nom, Prenom, type, coursAppel, tribunal, Statut, adresse, adresseComp, cp, ville, tel, fax, email, web, contact", "TYPE IN ('A', 'M') GROUP BY NomPre, dep, sirenMand ORDER BY NomPre ASC", true, MYSQL_ASSOC); $tabMandSD=array(); foreach ($tabTmp as $mand) { $tabMandSD[]=array( 'id' => $mand['id'], 'siren' => $mand['sirenMand'], 'nom' => $mand['Nom'], 'prenom'=> $mand['Prenom'], 'type' => $mand['type'], 'adr1' => $mand['adresse'], 'adr2' => $mand['adresseComp'], 'cp' => $mand['cp'], 'ville' => $mand['ville'], 'tel' => $mand['tel'], 'fax' => $mand['fax'], 'email' => $mand['email'], ); } return $tabMandSD; } /** Donne l'id du mandataire en fonction de son libellé INPI ** @param string $strNomPrenom Nom et Prénom du mandataire ** @return int $id Identifiant du mandataire **/ public function getIdMandataireInpi($strNomPrenom) { if (trim($strNomPrenom)=='') return false; if (preg_match('/^(.*) (?:Me|Ma.tre) (.*)$/i', $strNomPrenom, $matches)) { $nomPrenomToFind=strtr($matches[1],'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy....."); $nomToFind=strtr($matches[2],'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy....."); } else { $nomPrenomToFind=strtr($strNomPrenom,'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy....."); $nomToFind=''; } $id=false; //echo "Recherche de $nomPrenomToFind ($nomToFind) : "; if ($strNomPrenom=='SCP BELAT DESPRAT') return 48; if ($strNomPrenom=='DU BUIT') return 170; if ($strNomPrenom=='SELARL MALMEZAT PRAT') return 312; if ($strNomPrenom=='SELARL DUQUESNOY & ASSOCIES') return 176; if ($strNomPrenom=='- SELARL DUQUESNOY & ASSOCIES') return 176; if ($strNomPrenom=='SOUCHON ALAIN') return 412; if ($strNomPrenom=='SELARL GRAVE WALLYN RANDOUX Me RANDOUX Guillaume') return 8621; if ($strNomPrenom=='SCP SILVESTRI BAUJET') return 35; if ($strNomPrenom=='ROGEAU') return 385; if ($strNomPrenom=='SCP BIHR-LE CARRER') return 64; if ($strNomPrenom=='- SCP BIHR-LE CARRER') return 64; if ($strNomPrenom=='SCP GUYON DAVAL') return 144; if ($strNomPrenom=='COURTOUX') return 134; if ($strNomPrenom=='SCP B.T.S.G. ME GORRIAS') return 44; if ($strNomPrenom=='MONTRAVERS') return 340; if ($strNomPrenom=='SCP OUIZILLE DE KEATING Me DE KEATING') return 351; if ($strNomPrenom=='DOUTRESSOULLE') return 169; if ($strNomPrenom=='SCP LECLERC MASSELON') return 286; if ($strNomPrenom=='AUSSEL Vincent') return 17; if ($strNomPrenom=='SCP BROUARD DAUDE Me DAUDE Florence') return 95; if ($strNomPrenom=='SELARL T.C.A') return 423; //if ($strNomPrenom=='BEDNAWSKI CORNELIUS,MAXIME') return 0; //if ($strNomPrenom=='LECA Pierre Alexandre') return 0; if ($strNomPrenom=='SELAFA MJA Maître LELOUP THOMAS' || $strNomPrenom=='- SELAFA MJA ME LELOUP THOMAS') return 290; if ($strNomPrenom=='SELAFA MJA Maître LEVY' || $strNomPrenom=='- SELAFA MJA Maître LEVY') return 297; if ($strNomPrenom=='SELAFA MJA Maître FRECHOU' || $strNomPrenom=='- SELAFA MJA Maître FRECHOU') return 194; if ($strNomPrenom=='SELAFA MJA Maître PIERREL' || $strNomPrenom=='- SELAFA MJA Maître PIERREL') return 368; if ($strNomPrenom=='SELAFA MJA Maître PENET- WEILLER' || $strNomPrenom=='- SELAFA MJA ME PENET-WEILLER') return 357; if ($strNomPrenom=='HUILLE PASCALE') return 244; if ($strNomPrenom=='SCP B.T.S.G. ME BECHERET') return 42; if ($strNomPrenom=='SELARL MB ASSOCIES ME CORRE') return 129; if ($strNomPrenom=='PERNAUD PHILIPPE') return 361; if ($strNomPrenom=='MARGOTTIN Eric') return 23; if ($strNomPrenom=='MARGOTTIN Eric') return 23; if ($strNomPrenom=='SCP GUERIN DIESBECQ ME DIESBEC') return 163; if ($strNomPrenom=='SCP DOLLEY-COLLET') return 165; if ($strNomPrenom=='SCP B.T.S.G. ME SENECHAL') return 45; if ($strNomPrenom=='AVEZOU') return 20; if ($strNomPrenom=='SOINNE') return 409; /* if ($strNomPrenom=='SCP LE DORTZ B. ET BODELET G.') return 361; if ($strNomPrenom=='SCP P. DURAN ET E. FLATRES') return 361; if ($strNomPrenom=='CHABAL MAX-HENRI') return 361; if ($strNomPrenom=='ROUSSELOT GEGOUE Marie Adeline') return 361;*/ foreach ($this->tabMandataires as $mand) { $nomToTest=strtr($mand['nom'],'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy....."); $tabTmp=preg_split('/( |-)/', $mand['prenom']); $preToTest=strtr($tabTmp[0],'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy....."); if (preg_match("/$nomToTest/i", $nomPrenomToFind)) { //echo "$nomToTest $preToTest TROUVE".EOL; // Cas des mandataires en SCP if ($nomToFind<>'' && preg_match("/$nomToTest/i", $nomToFind) && preg_match("/$preToTest/i", $nomToFind)) { //if (!$id) $id=$mand['id']; //else return false; // Afin de ne pas renvoyer d'id si plusieurs mandataires trouvés } elseif ($nomToFind<>'' && preg_match("/$nomToTest/i", $nomToFind)) { //if (!$id) $id=$mand['id']; //else return false; // Afin de ne pas renvoyer d'id si plusieurs mandataires trouvés } elseif (!$nomToFind && preg_match("/$preToTest/i", $nomPrenomToFind)) { //if (!$id) $id=$mand['id']; //else return false; // Afin de ne pas renvoyer d'id si plusieurs mandataires trouvés } } elseif (preg_match("/$nomToTest/i", $nomToFind) && preg_match("/$preToTest/i", $nomToFind)) { //if (!$id) $id=$mand['id']; //else return false; // Afin de ne pas renvoyer d'id si plusieurs mandataires trouvés } } return $id; } /** Récupération du code ISO du code pays numérique de l'Inpi ** ** @param integer $pays ** @return string Devise ISO **/ public function getPaysInpi($numPays) { if ($numPays*1>0) return $this->tabPays[$numPays*1]; else return ''; } /** Initialisation du tableau privé des codes tribunaux Greffes/Inpi avec le libellé Bodacc **/ private function getTabTribunaux() { $rep=$this->iDb->select('tribunaux', 'triNumGreffe, triNom, triId, triCode', 'triNumGreffe IS NOT NULL', false, MYSQL_ASSOC); $tabTribunaux=array(); foreach($rep as $k=>$dev) { $tabTribunaux[$dev['triNumGreffe']*1]['Id']=$dev['triId']; $tabTribunaux[$dev['triNumGreffe']*1]['Nom']=$dev['triNom']; $tabTribunaux[$dev['triNumGreffe']*1]['Code']=$dev['triCode']; } return $tabTribunaux; } private 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'; } private function getLibelleNaf($codeNaf) { $ret=$this->iDb->query("SELECT libNaf700 AS LibNaf FROM tabNaf4 WHERE codNaf700='$codeNaf' UNION SELECT libNaf5 AS LibNaf FROM tabNaf5 WHERE codNaf5='$codeNaf'"); $res=$this->iDb->fetch(MYSQL_ASSOC); return $res['LibNaf']; } /** Récupération du libellé du code numérique du tribunal Greffe ou Inpi ** ** @param integer $numTribunal ** @return string Nom du tribunal **/ public function getLibTribunal($numTribunal) { if ($numTribunal*1>0) return $this->tabTribunaux[$numTribunal*1]['Nom']; else return ''; } /** Récupération du code Bodacc du code numérique du tribunal Greffe ou Inpi ** ** @param integer $numTribunal ** @return string Code Bodacc du tribunal **/ public function getCodeBodaccTribunal($numTribunal) { if ($numTribunal*1>0) return $this->tabTribunaux[$numTribunal*1]['Code']; else return ''; } /** Récupération de l'identifiant S&D du code numérique du tribunal Greffe ou Inpi ** ** @param integer $numTribunal ** @return string Numéro interne de tribunal S&D **/ public function getIdTribunal($numTribunal) { if ($numTribunal*1>0) return $this->tabTribunaux[$numTribunal*1]['Id']; else return ''; } /** Retourne les informations de l'établissements demandé ou du siège actif ou dernier siège inactif * * @param integer $siren Siren de l'entreprise * @param integer $nic Nic de l'établissement. Si absent, renvoi les informations du siège actif ou du dernier siège actif * @return array */ public function getIdentiteEtab($siren, $nic=0) { $siren=$siren*1; $nic=$nic*1; if ($nic>0) $strSql=" AND nic=$nic"; else $strSql=" AND siege=1 ORDER BY actif DESC, nic DESC"; $rep=$this->iDb->select('rncs_etab', 'siren, nic, siege, actif, enseigne, nomCommercial, adrNumVoie, adrIndRep, adrLibVoie, adrTypeVoie, adrVoie, cp, commune, adrComp, adresse1, adresse2, adresse3, naf, dateFermeture, flux, DATE(dateUpdate) AS jourUpdate', "siren=$siren $strSql", false, MYSQL_ASSOC); $entrep=$rep[0]; if ($entrep['jourUpdate']<>'0000-00-00') $dateMaj=$entrep['jourUpdate']; else $dateMaj=$entrep['flux']; if (trim($entrep['adresse1'])=='') $adresse1=trim(preg_replace('/ +/',' ', $entrep['adrNumVoie'].' '.strtoupper($entrep['adrIndRep']).' '. strtoupper($entrep['adrLibVoie']))); else $adresse1=trim(strtoupper($entrep['adresse1'])); if (trim($entrep['adresse2'])=='') $adresse2=trim(strtoupper($entrep['adrComp'])); else $adresse2=trim(strtoupper($entrep['adresse2'])); if (trim($entrep['adresse3'])=='') $adresse3=''; else $adresse3=trim(strtoupper($entrep['adresse3'])); $tabIdentite=array( 'siren' => $entrep['siren'], 'nic' => $entrep['nic'], 'siret' => $entrep['siren'].$entrep['nic'], 'actif' => $entrep['actif'], 'siege' => $entrep['siege'], 'enseigne' => strtoupper($entrep['enseigne']), 'nomCommercial' => strtoupper($entrep['nomCommercial']), 'adrNumVoie' => $entrep['adrNumVoie'], 'adrIndRep' => strtoupper($entrep['adrIndRep']), 'adrTypeVoie' => strtoupper($entrep['adrTypeVoie']), 'adrVoie' => strtoupper($entrep['adrVoie']), 'adrComp' => strtoupper($entrep['adrComp']), 'cp' => strtoupper($entrep['cp']), 'commune' => strtoupper($entrep['commune']), 'adresse1' => $adresse1, 'adresse2' => $adresse2, 'adresse3' => $adresse3, 'nafEtab' => $entrep['naf'], 'nafEtabLib' => $this->getLibelleNaf($entrep['naf']), 'dateFerEtab' => $entrep['dateFermeture'], 'dateMajEtab' => $dateMaj, ); return array_merge($tabIdentite, $this->getInfosEntrep($siren)); } public function getInfosEntrep($siren) { $siren=$siren*1; $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, DATE(dateUpdate) AS jourUpdate', "siren=$siren", false, MYSQL_ASSOC); $entrep=$rep[0]; if ($entrep['jourUpdate']<>'0000-00-00') $dateMaj=$entrep['jourUpdate']; else $dateMaj=$entrep['flux']; $tabIdentite=array( 'siren' => $entrep['siren'], 'sirenValide' => $entrep['sirenValide'], 'actif' => $entrep['actif'], 'numGreffe' => $entrep['numGreffe'], 'triCode' => $entrep['triCode'], 'triId' => $entrep['triId'], 'libGreffe' => preg_replace('/^(TC |TGI |TGIcc |TMX |Tribunal Inconnu)/Ui','', $this->getLibTribunal($entrep['numGreffe']*1)), 'numRC' => $entrep['numRC2'], 'raisonSociale' => strtoupper($entrep['raisonSociale']), 'nom' => strtoupper($entrep['nom']), 'prenom' => strtoupper($entrep['prenom']), 'nomUsage' => strtoupper($entrep['nomUsage']), 'sigle' => strtoupper($entrep['sigle']), 'dateNaiss' => $entrep['dateNaiss'], 'lieuNaiss' => strtoupper($entrep['lieuNaiss']), 'sexe' => $entrep['sexe'], 'pays' => $entrep['pays'], 'cj' => $entrep['cj'], 'cjLib' => $this->getLibelleFJ($entrep['cj']), 'nafEnt' => $entrep['naf'], 'nafEntLib' => $this->getLibelleNaf($entrep['naf']), 'capital' => $entrep['capitalMontant']+($entrep['capitalCent']/100), 'capitalDev' => $entrep['capitalDevIso'], 'capitalType' => $entrep['capitalType'], 'dateImma' => $entrep['dateImma'], 'dateRad' => $entrep['dateRad'], 'provisoires' => $entrep['provisoires'], 'dateMajEnt' => $dateMaj, ); return $tabIdentite; } public function getListeDepots($siren) { $siren=$siren*1; $rep=$this->iDb->select('rncs_even e LEFT JOIN tabEvenRncs l ON e.codeEven=l.codeEven', 'e.siren, e.codeInterne, e.dateDepot, e.codeEven, l.libEven, e.flux, DATE(e.dateInsert) AS dateInsert', "e.siren=$siren ORDER BY e.dateDepot DESC", false, MYSQL_ASSOC); $tabDepots=array(); foreach ($rep as $iDepot=>$depot) { $tabDepots[]=array( 'codDepot' => $depot['codeEven'], 'libDepot' => $depot['libEven'], 'datDepot' => $depot['dateDepot'], 'refDepot' => $depot['codeInterne'], 'datRncs' => $depot['flux'], 'datSed' => $depot['dateInsert'], ); } return $tabDepots; } public function getListeJugements($siren) { $siren=$siren*1; $rep=$this->iDb->select('rncs_jugements j, tabJugeRncs l, tabEvenements e', 'siren, j.dateEffet, j.codeJugement, j.flux, l.libJugement, e.codEven, e.libEven, adm1id, adm1codeFct, adm1type, adm1nom, adm1adrNum, adm1adrInd, adm1adrType, adm1adrLibVoie, adm1adrVoie, adm1adr1, adm1adr2, adm1adr3, adm1adrCP, adm1adrVille, adm2id, adm2codeFct, adm2type, adm2nom, adm2adrNum, adm2adrInd, adm2adrType, adm2adrLibVoie, adm2adrVoie, adm2adr1, adm2adr2, adm2adr3, adm2adrCP, adm2adrVille', "j.siren=$siren AND j.codeJugement=l.codJugement AND l.codEven=e.codEven ORDER BY j.dateEffet DESC", false, MYSQL_ASSOC); /*adm1adrNum adm1adrInd adm1adrType adm1adrLibVoie adm1adrVoie adm1adr1 adm1adr2 adm1adr3 adm1adrCP adm1adrVille adm2codeFct adm2type adm2id adm2nom adm2adrNum adm2adrInd adm2adrType adm2adrLibVoie adm2adrVoie adm2adr1 adm2adr2 adm2adr3 adm2adrCP adm2adrVille flux dateSuppr dateInsert Modifier Effacer 490524055 2010-12-20 11 1 1200 4000 A 0 ME TULIER 0000 IMM LE MAZIERE 4EME ETAGE Immeuble le Mazière - 4ème étage rue René Cassin */ $tabDepots=array(); foreach ($rep as $iDepot=>$depot) { $tabDepots[]=array( 'codEven' => $depot['codEven'], 'libEven' => $depot['libEven'], 'dateEffet' => $depot['dateEffet'], 'adm1id' => $depot['adm1id'], 'adm1code' => $depot['adm1codeFct'], 'adm1type' => $depot['adm1type'], 'adm1fonction' => @$this->getLibFctDir($depot['adm1codeFct']), 'adm1nom' => $depot['adm1nom'], 'adm1adrNum' => $depot['adm1adrNum'], 'adm1adrInd' => $depot['adm1adrInd'], 'adm1adrType' => $depot['adm1adrType'], 'adm1adrVoie' => $depot['adm1adrLibVoie'], // @todo : adm1adr1, , adm1adr3, 'adm1adr2' => $depot['adm1adr2'], 'adm1adrCP' => $depot['adm1adrCP'], 'adm1adrVille' => $depot['adm1adrVille'], 'adm2id' => $depot['adm2id'], 'adm2code' => $depot['adm2codeFct'], 'adm2type' => $depot['adm2type'], 'adm2fonction' => @$this->getLibFctDir($depot['adm2codeFct']), 'adm2nom' => $depot['adm2nom'], 'adm2adrNum' => $depot['adm2adrNum'], 'adm2adrInd' => $depot['adm2adrInd'], 'adm2adrType' => $depot['adm2adrType'], 'adm2adrVoie' => $depot['adm2adrLibVoie'], // @todo : adm1adr1, adm1adr2, adm1adr3, 'adm2adr2' => $depot['adm2adr2'], 'adm2adrCP' => $depot['adm2adrCP'], 'adm2adrVille' => $depot['adm2adrVille'], ); } return $tabDepots; } public function getEvenements($siren, $nic=0, $type='', $dateDeb='', $dateFin='') { $tabEven=array( 'p120'=>'Réactivation de l\'entreprise', 'p410'=>'Cessation juridique de l\'entreprise', 'pCAP'=>'Modification du capital social', 'pCAT'=>'Modification du type de capital', 'pCJ' =>'Modification de la forme juridique', 'pIMM'=>'Modification de la date d\'immatriculation', 'pRAD'=>'Modification de la date de radiation', 'pNTR'=>'Modification du greffe d\'enregistrement', 'pNRC'=>'Modification du numéro du RC', 'pNOM'=>'Modification de la dénomination', ); $tabRet=array(); $siren=$siren*1; if ($nic>0) $strNic =" AND nic=$nic "; if ($type<>'') $strType=" AND champs='$type' "; if ($dateDeb<>'') $strDateDeb=" AND flux>='$dateDeb' "; if ($dateFin<>'') $strDateFin=" AND flux<='$dateFin' "; $rep=$this->iDb->select('rncs_modifs', 'siren, nic, `table`, champs, valeur, flux, dateInsert', "siren=$siren $strNic $strType $strDateDeb $strDateFin AND `table`='rncs_entrep' ORDER BY flux DESC", false, MYSQL_ASSOC); foreach ($rep as $iModif=>$modif) { $codEve=array(); switch($modif['champs']) { case 'actif': if ($modif['valeur']*1==0) $codEve[]='410'; // Cessation elseif ($modif['valeur']*1==1) $codEve[]='120'; // Réactivation break; case 'raisonSociale': $codEve[]='NOM'; break; case 'capitalMontant': $codEve[]='CAP'; break; case 'capitalType': $codEve[]='CAT'; break; case 'cj': $codEve[]='CJ'; break; case 'dateImma': $codEve[]='IMM'; break; case 'dateRad': $codEve[]='RAD'; break; case 'numGreffe': $codEve[]='NTR'; break; case 'numRC2': $codEve[]='NRC'; break; } foreach ($codEve as $even) $tabRet[]=array('codeEven' => 'P'.$even, 'nic' => 0, 'siretAssocie'=>0, 'typeSiretAss'=>0, 'siege' => 1, 'libEven' => $tabEven['p'.trim($even)], 'libEvenDet'=> '', 'dateMAJ' => $modif['dateInsert'], 'dateEven' => $modif['flux'], ); } } public function getIntervenants($siren) { $tabJuge=$this->getListeJugements($siren); $tabDepots=$tabDeja=array(); $tabAdm=array( 'A'=>'Administrateur judiciaire', 'C'=>'Commissaire au plan', 'D'=>'Commissaire au concordat', 'H'=>'Huissier', 'J'=>'Juge Commissaire', 'K'=>'Juge Commissaire suppléant', 'L'=>'Liquidateur', 'M'=>'Mandataire judiciaire', 'N'=>'Notaire', 'O'=>'Opposition', 'R'=>'Représentant des créanciers', 'S'=>'Syndic', 'T'=>'Conciliateur', 'U'=>'Curateur', 'V'=>'Avocat', ); foreach ($tabJuge as $iDepot=>$depot) { if ($depot['adm1code']>0 && !in_array($depot['adm1code'], $tabDeja)) { $tabDepots[]=array( 'codEven' => $depot['codEven'], 'libEven' => $depot['libEven'], 'dateEffet' => $depot['dateEffet'], 'admid' => $depot['adm1id'], 'admcode' => $depot['adm1code'], 'admtype' => $depot['adm1type'], 'admfonction' => $depot['adm1fonction'], 'admnom' => $depot['adm1nom'], 'admadrNum' => $depot['adm1adrNum'], 'admadrInd' => $depot['adm1adrInd'], 'admadrType' => $depot['adm1adrType'], 'admadrVoie' => $depot['adm1adrVoie'], // @todo : adm1adr1, adm1adr2, adm1adr3, 'admadr2' => $depot['adm1adr2'], 'admadrCP' => $depot['adm1adrCP'], 'admadrVille' => $depot['adm1adrVille'], ); $tabDeja[]=$depot['adm1code']; } if ($depot['adm2code']>0 && !in_array($depot['adm2code'], $tabDeja)) { $tabDepots[]=array( 'codEven' => $depot['codEven'], 'libEven' => $depot['libEven'], 'dateEffet' => $depot['dateEffet'], 'admid' => $depot['adm2id'], 'admcode' => $depot['adm2code'], 'admtype' => $depot['adm2type'], 'admfonction' => $depot['adm2fonction'], 'admnom' => $depot['adm2nom'], 'admadrNum' => $depot['adm2adrNum'], 'admadrInd' => $depot['adm2adrInd'], 'admadrType' => $depot['adm2adrType'], 'admadrVoie' => $depot['adm2adrVoie'], // @todo : adm1adr1, adm1adr2, adm1adr3, 'admadr2' => $depot['adm2adr2'], 'admadrCP' => $depot['adm2adrCP'], 'admadrVille' => $depot['adm2adrVille'], ); $tabDeja[]=$depot['adm2code']; } } if (count($tabDepots)>0) { $strTypes="IN ('J','K','H','V','N')"; $forceRecherche=false; $strDates="AND ABS(DATEDIFF(dateJugement, '".$depot['dateEffet']."'))<60 "; } else { $strTypes="<>''"; $forceRecherche=true; $strDates=''; } $tabTmp=$this->iDb->select('annonces', 'id, siren, typeEven, dateJugement, dateCessationPaiement, inter1type, inter1id, inter1nom, inter2type, inter2id, inter2nom, inter3type, inter3id, inter3nom, inter4type, inter4id, inter4nom, dateSource, dateInsert, source, tribunal, raisonSociale',"siren=$siren $strDates AND ( inter1type $strTypes OR inter2type $strTypes OR inter3type $strTypes OR inter4type $strTypes ) AND typeEven BETWEEN 1000 AND 2000 ORDER BY dateJugement DESC", false, MYSQL_ASSOC); if (isset($tabTmp[0])) { $depot=$tabTmp[0]; $tabRet['dateCessationPaiement']=$depot['dateCessationPaiement']; for($i=1; $i<4; $i++) { if ( ($forceRecherche && !in_array($tabTmp['inter'.$i.'type'], $tabDeja)) || ( $tabTmp['inter'.$i.'type']=='J' || $tabTmp['inter'.$i.'type']=='K' || $tabTmp['inter'.$i.'type']=='H' || $tabTmp['inter'.$i.'type']=='V' || $tabTmp['inter'.$i.'type']=='N') ) { $tabDepots[]=array( 'codEven' => $depot['typeEven'], 'libEven' => $depot['typeEven'], 'dateEffet' => $depot['dateJugement'], 'admid' => $depot['inter'.$i.'id'], 'admcode' => $depot['inter'.$i.'id'], 'admtype' => $depot['inter'.$i.'type'], 'admfonction' => $tabAdm[$depot['inter'.$i.'type']], 'admnom' => $depot['inter'.$i.'nom'], 'admadrNum' => '', 'admadrInd' => '', 'admadrType' => '', 'admadrVoie' => '', 'admadr2' => '', 'admadrCP' => '', 'admadrVille' => '', ); $tabDeja[]=$tabTmp['inter'.$i.'type']; } } } return $tabDepots; } /** Mettre à jour un dossier IMR dans le prochain Flux * @param $siren Siren de l'entreprise à mettre à jour dans les IMR * @param $origineDemande Origine de la demande ('client', 'interne', 'privileges', 'ancienort') * @param $focerMAJ Forcer la mise à jour même si dossier déjà transmit */ public function majDossierIMR($siren, $origineDemande='', $focerMAJ=false) { $this->infoIMR=array(); if ($siren*1==0) { $this->libErreur='Siren invalide !'; return false; } $query_timeout=5; $query_proxy='221.130.13.39'; $query_proxy='61.35.191.250:8080'; $query_proxy='198.7.242.41:3128'; $query_proxy=''; if (INFOGREFFE_DISPO_WEB) { /** Accueil **/ $url='http://www.infogreffe.fr/ged-extranet/accueil.do'; while (1) { //echo date('YmdHis')." - 1. Deb $url ".$this->codeRetour.EOL; $page=getUrl($url, '', '', $this->referer, false, 'www.infogreffe.fr', false, '', $query_proxy, $query_timeout); $this->codeRetour=$page['code']; //echo date('YmdHis')." - 1. FIN $url ".$this->codeRetour.EOL; if ($this->codeRetour<>'400') break; sleep(1); } $this->body=$page['body']; if ($this->codeRetour<>'200') { print_r($page); $this->libErreur='Erreur Infogreffe 200a !'; return false; } $this->cookie=$page['header']['Set-Cookie']; $this->referer=$url; sleep(1); /** Formulaire de login **/ $url='http://www.infogreffe.fr/ged-extranet/connexion.do'; while (1) { //echo date('YmdHis')." - 2. Deb $url ".$this->codeRetour.EOL; $page=getUrl($url, '', '', $this->referer, false, 'www.infogreffe.fr', false, '', $query_proxy, $query_timeout); //echo date('YmdHis')." - 2. FIN $url ".$this->codeRetour.EOL; $this->codeRetour=$page['code']; if ($this->codeRetour<>'400') break; sleep(1); } $this->body=$page['body']; if ($this->codeRetour<>'200') { print_r($page); $this->libErreur='Erreur Infogreffe 200b !'; return false; } $this->referer=$url; sleep(1); /** Etape de logon **/ $url='http://www.infogreffe.fr/ged-extranet/login.do'; $postData=array('codeClient'=>'0034', 'codeAbonne'=>'0002', 'password'=>'369852', ); while (1) { //echo date('YmdHis')." - 3. Deb $url ".$this->codeRetour.EOL; $page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', $query_proxy, $query_timeout); $this->codeRetour=$page['code']; //echo date('YmdHis')." - 3. FIN $url ".$this->codeRetour.EOL; if ($this->codeRetour<>'400') break; sleep(1); } $this->body=$page['body']; if ($this->codeRetour<>'200') { print_r($page); $this->libErreur='Erreur Infogreffe 200c !'; return false; } if (!preg_match('/Bienvenue SCORES ET DECISIONS/', $this->body)) { $this->libErreur='Erreur Infogreffe Extranet : Connexion incorrecte !'; return false; } $this->referer=$url; sleep(1); /** Page de formulaire de demande de réémission de dossier IMR **/ $url='http://www.infogreffe.fr/ged-extranet/demandeReemissions.do'; while (1) { //echo date('YmdHis')." - 4. Deb $url ".$this->codeRetour.EOL; $page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', $query_proxy, $query_timeout); $this->codeRetour=$page['code']; //echo date('YmdHis')." - 4. FIN $url ".$this->codeRetour.EOL; if ($this->codeRetour<>'400') break; sleep(1); } $this->body=$page['body']; if ($this->codeRetour<>'200') { print_r($page); $this->libErreur='Erreur Infogreffe 200d !'; return false; } $this->referer=$url; sleep(1); /** Saisie du siren à contrôler dans le formulaire AJAX adéquat **/ $url='http://www.infogreffe.fr/ged-extranet/rechercheReemissions.do'; $postData=array('siren'=>$siren); //$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', '', 5); while (1) { //echo date('YmdHis')." - 5. Deb $url ".$this->codeRetour.EOL; $page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', $query_proxy, $query_timeout); $this->codeRetour=$page['code']; //echo date('YmdHis')." - 5. FIN $url ".$this->codeRetour.EOL; if ($this->codeRetour<>'400') break; sleep(1); } $this->body=$page['body']; if ($this->codeRetour<>'200') { print_r($page); $this->libErreur='Erreur Infogreffe 200e !'; return false; } $this->referer=$url; // Le retour AJAX est il positif ? if (preg_match('/