790 lines
34 KiB
PHP
Raw Normal View History

<?
class MRncs {
public $tabFctDir=array( 100 =>array('codeSd'=>'1300', 'lib'=>'Pr<50>sident'),
110 =>array('codeSd'=>'1306', 'lib'=>'Pr<50>sident du conseil d\'administration'),
120 =>array('codeSd'=>'1301', 'lib'=>'Pr<50>sident directeur G<>n<EFBFBD>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<63>'),
300 =>array('codeSd'=>'0400', 'lib'=>'Co-g<>rant'),
400 =>array('codeSd'=>'0709', 'lib'=>'Directeur g<>n<EFBFBD>ral'),
410 =>array('codeSd'=>'0713', 'lib'=>'Directeur g<>n<EFBFBD>ral non administrateur'),
420 =>array('codeSd'=>'0708', 'lib'=>'Directeur g<>n<EFBFBD>ral unique'),
430 =>array('codeSd'=>'0704', 'lib'=>'Directeur g<>n<EFBFBD>ral d<>l<EFBFBD>gu<67>'),
500 =>array('codeSd'=>'1800', 'lib'=>'Vice-pr<70>sident'),
600 =>array('codeSd'=>'0100', 'lib'=>'Administrateur'),
610 =>array('codeSd'=>'0101', 'lib'=>'Administrateur d<>l<EFBFBD>gu<67>'),
700 =>array('codeSd'=>'1308', 'lib'=>'Pr<50>sident du directoire'),
900 =>array('codeSd'=>'1307', 'lib'=>'Pr<50>sident du conseil de surveillance'),
1200=>array('codeSd'=>'0209', 'lib'=>'Associ<63>-g<>rant'),
1300=>array('codeSd'=>'0603', 'lib'=>'Contr<74>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<70>sentant en France d\'une soci<63>t<EFBFBD> <20>trang<6E>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<70>sentant des cr<63>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<69> 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<EFBFBD>cup<EFBFBD>ration du code ISO de la devise num<EFBFBD>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<69> 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'<27>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<EFBFBD> INPI
** @param string $strNomPrenom Nom et Pr<EFBFBD>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],'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-\' ', "aaaaaaaceeeeiiiionooooouuuuyy.....");
$nomToFind=strtr($matches[2],'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-\' ', "aaaaaaaceeeeiiiionooooouuuuyy.....");
} else {
$nomPrenomToFind=strtr($strNomPrenom,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-\' ', "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<4D>tre LELOUP THOMAS' ||
$strNomPrenom=='- SELAFA MJA ME LELOUP THOMAS') return 290;
if ($strNomPrenom=='SELAFA MJA Ma<4D>tre LEVY' ||
$strNomPrenom=='- SELAFA MJA Ma<4D>tre LEVY') return 297;
if ($strNomPrenom=='SELAFA MJA Ma<4D>tre FRECHOU' ||
$strNomPrenom=='- SELAFA MJA Ma<4D>tre FRECHOU') return 194;
if ($strNomPrenom=='SELAFA MJA Ma<4D>tre PIERREL' ||
$strNomPrenom=='- SELAFA MJA Ma<4D>tre PIERREL') return 368;
if ($strNomPrenom=='SELAFA MJA Ma<4D>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'],'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-\' ', "aaaaaaaceeeeiiiionooooouuuuyy.....");
$tabTmp=preg_split('/( |-)/', $mand['prenom']);
$preToTest=strtr($tabTmp[0],'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-\' ', "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<75>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<75>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<75>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<75>s
}
}
return $id;
}
/** R<EFBFBD>cup<EFBFBD>ration du code ISO du code pays num<EFBFBD>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<69> des codes tribunaux Greffes/Inpi avec le libell<6C> 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<EFBFBD>cup<EFBFBD>ration du libell<EFBFBD> du code num<EFBFBD>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<EFBFBD>cup<EFBFBD>ration du code Bodacc du code num<EFBFBD>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<EFBFBD>cup<EFBFBD>ration de l'identifiant S&D du code num<EFBFBD>rique du tribunal Greffe ou Inpi
**
** @param integer $numTribunal
** @return string Num<EFBFBD>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'<EFBFBD>tablissements demand<EFBFBD> ou du si<EFBFBD>ge actif ou dernier si<EFBFBD>ge inactif
*
* @param integer $siren Siren de l'entreprise
* @param integer $nic Nic de l'<EFBFBD>tablissement. Si absent, renvoi les informations du si<EFBFBD>ge actif ou du dernier si<EFBFBD>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', "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'],
);
}
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,
adm1codeFct, adm1nom, adm1adrNum, adm1adrInd, adm1adrVoie, adm1adr1, adm1adr2, adm1adr3, adm1adrCP, adm1adrVille,
adm2codeFct, adm2nom, adm2adrNum, adm2adrInd, 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);
$tabDepots=array();
foreach ($rep as $iDepot=>$depot) {
$tabDepots[]=array( 'codEven' => $depot['codEven'],
'libEven' => $depot['libEven'],
'dateEffet' => $depot['dateEffet'],
'adm1code' => $depot['adm1codeFct'],
'adm1fonction' => @$this->getLibFctDir($depot['adm1codeFct']),
'adm1nom' => $depot['adm1nom'],
'adm1adrNum' => $depot['adm1adrNum'],
'adm1adrInd' => $depot['adm1adrInd'],
'adm1adrVoie' => $depot['adm1adrVoie'], // @todo : adm1adr1, adm1adr2, adm1adr3,
'adm1adrCP' => $depot['adm1adrCP'],
'adm1adrVille' => $depot['adm1adrVille'],
'adm2code' => $depot['adm2codeFct'],
'adm2fonction' => @$this->getLibFctDir($depot['adm2codeFct']),
'adm2nom' => $depot['adm2nom'],
'adm2adrNum' => $depot['adm2adrNum'],
'adm2adrInd' => $depot['adm2adrInd'],
'adm2adrVoie' => $depot['adm2adrVoie'], // @todo : adm1adr1, adm1adr2, adm1adr3,
'adm2adrCP' => $depot['adm2adrCP'],
'adm2adrVille' => $depot['adm2adrVille'],
);
}
return $tabDepots;
}
public function getEvenements($siren) {
$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<75>ro du RC',
);
$tabRet=array();
$siren=$siren*1;
$rep=$this->iDb->select('rncs_modifs',
'siren, nic, `table`, champs, valeur, flux, dateInsert',
"siren=$siren 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 '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();
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'],
'admcode' => $depot['adm1code'],
'admfonction' => $depot['adm1fonction'],
'admnom' => $depot['adm1nom'],
'admadrNum' => $depot['adm1adrNum'],
'admadrInd' => $depot['adm1adrInd'],
'admadrVoie' => $depot['adm1adrVoie'], // @todo : adm1adr1, adm1adr2, adm1adr3,
'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'],
'admcode' => $depot['adm2code'],
'admfonction' => $depot['adm2fonction'],
'admnom' => $depot['adm2nom'],
'admadrNum' => $depot['adm2adrNum'],
'admadrInd' => $depot['adm2adrInd'],
'admadrVoie' => $depot['adm2adrVoie'], // @todo : adm1adr1, adm1adr2, adm1adr3,
'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])) {
$tabAdm=array( 'A'=>'Administrateur judiciaire',
'C'=>'Commissaire au plan',
'D'=>'Commissaire au concordat',
'H'=>'Huissier',
'J'=>'Juge Commissaire',
'K'=>'Juge Commissaire suppl<70>ant',
'L'=>'Liquidateur',
'M'=>'Mandataire judiciaire',
'N'=>'Notaire',
'O'=>'Opposition',
'R'=>'Repr<70>sentant des cr<63>anciers',
'S'=>'Syndic',
'T'=>'Conciliateur',
'U'=>'Curateur',
'V'=>'Avocat',
);
$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'],
'admcode' => $depot['inter'.$i.'id'],
'admfonction' => $tabAdm[$depot['inter'.$i.'type']],
'admnom' => $depot['inter'.$i.'nom'],
'admadrNum' => '',
'admadrInd' => '',
'admadrVoie' => '',
'admadrCP' => '',
'admadrVille' => '',
);
$tabDeja[]=$tabTmp['inter'.$i.'type'];
}
}
}
return $tabDepots;
}
/** Mettre <20> jour un dossier IMR dans le prochain Flux **/
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<><72>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 <20> contr<74>ler dans le formulaire AJAX ad<61>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('/<div class="message-erreur">(.*)<\/div>/Uis', $this->body, $matches))
$this->infoIMR['message-erreur']=trim(preg_replace('/ +/',' ',strip_tags($matches[1])));
if (preg_match('/<div class="titreEntreprise">(?:.*)<b>(.*)<\/b>(?:.*)<\/div>/Uis', $this->body, $matches))
$this->infoIMR['titreEntreprise']=trim(preg_replace('/ +/',' ',strip_tags($matches[1])));
if (preg_match('/<div id="adresse">(.*)<\/div>/Uis', $this->body, $matches))
$this->infoIMR['adresse']=trim(preg_replace('/ +/',' ',strip_tags($matches[1])));
if (preg_match('/<div class="struct-erreur">(?:.*)<b>(.*)<\/b>(?:.*)<\/div>/Uis', $this->body, $matches))
$this->infoIMR['struct-erreur']=trim(preg_replace('/ +/',' ',strtr(strip_tags($matches[1]),"\r\n\t".chr(160),' ')));
if (preg_match('/Cliquez sur le bouton VALIDER pour confirmer votre demande de/', $this->body, $matches))
$this->infoIMR['validation']=true;
else {
$this->infoIMR['validation']=false;
if (preg_match('/Aucune entreprise trouv.e pour ce num.ro SIREN/', $this->body)) {
$tabInsert=$this->infoIMR;
$tabInsert['siren']=$siren;
$tabInsert['dateDemande']=date('Ymd');
if ($origineDemande<>'')
$tabInsert['origineDemande']=$origineDemande;
$this->iDb->insert('rncs_demandes', $tabInsert, false);
}
}
if (preg_match('/atteint le nombre maximal de(.*)Veuillez renouveler votre demande demain/',
$this->infoIMR['message-erreur']))
return false;
if ($this->infoIMR['validation'] && $this->infoIMR['message-erreur']=='') {
/** Doit on forcer la maj si l'entreprise a <20>t<EFBFBD> transmise r<>cemment ? **/
if ($this->infoIMR['struct-erreur']<>'' && !$focerMAJ)
return true;
sleep(1);
/** Validation du siren <20> r<><72>mettre en IMR **/
$url='http://www.infogreffe.fr/ged-extranet/validerDemandeReemission.do';
$postData=array('numIdentification'=>$siren);
//$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', '', 5);
while (1) {
//echo date('YmdHis')." - 6. 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')." - 6. FIN $url ".$this->codeRetour.EOL;
if ($this->codeRetour<>'400') break;
sleep(1);
}
$this->body=$page['body'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'200') {
$this->libErreur='Erreur Infogreffe 200f !';
return false;
}
$this->referer=$url;
// Lecture du retour
if (preg_match('/<div class="message-erreur">(.*)<\/div>/Uis', $this->body, $matches))
$this->infoIMR['validation-erreur']=trim(preg_replace('/ +/',' ',strip_tags($matches[1])));
if (preg_match('/<b class="texte-bleu">(.*)<\/b>/Uis', $this->body, $matches))
$this->infoIMR['validation-ok']=trim(preg_replace('/ +/',' ',strip_tags($matches[1])));
$tabInsert=$this->infoIMR;
$tabInsert['siren']=$siren;
$tabInsert['dateDemande']=date('Ymd');
if ($origineDemande<>'')
$tabInsert['origineDemande']=$origineDemande;
$this->iDb->insert('rncs_demandes', $tabInsert, false);
// Une erreur ?
if ($this->infoIMR['validation-erreur']<>'')
return false;
return true;
}
} else
$this->libErreur='Infogreffe indisponible !';
return false;
}
}
?>