#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini ATTENTION : faire cette opération en connaissance de cause car les liens entres annonces seront perdus !!! $lastJO=$dateDebut=$dateFin=$dateDeb=$fichierTLS=$numBodaccIN=false; $tabBodaccF=array(); // Tableau des Bodacc à recharger $update=false; // Par défaut, si une annonce est déjà en base, on ne la met pas à jour !!! $erase=false; // Par défaut, on n'efface pas les annonces $ftpStep=true; // Par défaut, on se connecte au FTP des JO $forceDateInsertABodacc=false; // Par défaut, la date d'insertion des annonces n'est pas calée sur celle des fichiers Bodacc (en cas de réinitilaisation) $forceContinue=false; // Par défaut, on arrête au fichier courant en cas d'erreur $validateSchema=true; // Par défaut, on Valide le Schéma XML $unTaz=true; // Par défaut, on dézippe l'archive XML, sinon, on prend le .xml local (en cas de XML incorrect) $strMailInfo=''; // Coprs du mail d'information $copieWaldec=false; // Par défaut, on ne recopie pas les SIREN des Associations avec Waldec non sirenées $copieSirenBoamp=false; // Par défaut, on ne recopie pas les SIREN des LOTS BOAMP $noQuestion=false; // Par défaut, le script peut poser des questions interactives ! $modeDebug=false; // Par défaut, ne pas être trop verbeux $nbInsertLots=$nbInsertAvis=0; // Nombre de lots et avis insérés BOAMP + MAPA $nbMtRecup=0; // Nombre de lots avec récupération/retraitement du montant $argv=$_SERVER['argv']; if ($_SERVER['argc']==1) $lastJO=true; // Fonctionnement normal du script, càd : on charge les derniers BODACC non encore intégrés else { for ($i=1; isset($argv[$i]); $i++) { if (substr($argv[$i],0,1)=='-') { switch (substr($argv[$i],1,1)) { case 'A': case 'a': $tabBodaccF[]='A'; break; case 'B': case 'b': $tabBodaccF[]='B'; break; case 'C': case 'c': $tabBodaccF[]='C'; break; /*case 'd': $dateDebut=substr($argv[$i],3,10); $dateDeb=WDate::dateT('d/m/Y', 'Ymd', $dateDebut); break;*/ case 'e': $erase=true; break; case 'w': $copieWaldec=true; break; case 'p': $copieSirenBoamp=true; break; /*case 'f': $dateFin=substr($argv[$i],3,10); $dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin); break;*/ case 'j': $ftpStep=false; break; case 'l': $lastJO=true; break; case 'm': $forceDateInsertABodacc=true; break; case 'n': //die('$forceContinue'); $forceContinue=true; break; case 'r': $update=true; break; case 't': $fichierTLS=trim(substr($argv[$i],3)); break; /*case 'n': $numBodaccIN=trim(substr($argv[$i],3)); break;*/ case 's': $validateSchema=false; break; case 'u': $unTaz=false; break; case 'i': $noQuestion=true; break; case 'v': $modeDebug=true; break; case '-': case '?': die($strInfoScript); break; default: die('Option '. $argv[$i] . ' inconnue !'.EOL); break; } } } } if (count($tabBodaccF)==0) $tabBodaccF=array('A','B','C','ASSO','BOMP A','BOMP B','BOMP C','MAPA','DEFENSE'); $strBodacc=implode(', ', $tabBodaccF); $strDates=''; if ($lastJO==true) $strLast=' derniers'; else $strLast=''; /*else { $dateCour=$dateDeb; $strLast=''; if ($dateDebut==false || $dateFin==false) die($strInfoScript); else $strDates="du $dateDebut au $dateFin"; }*/ $iDb=new WDB(); $iBodacc=new MBodacc(); $iInsee=new MInsee(); /* print_r($iBodacc->getNomPrenomGenre('LE NAOUR Yoann')); print_r($iBodacc->getNomPrenomGenre('HEITZ Marc')); print_r($iBodacc->getNomPrenomGenre('champeau Thierry')); print_r($iBodacc->getNomPrenomGenre('MENET ludovic')); print_r($iBodacc->getNomPrenomGenre('Hemery pierre')); die(); */ /* $tab=array( "Associés : VALLS (Christine, Pascale) ( Nom d'usage : DEMATEIS) ; DEMATEIS (Antoine, Vincent) et DEMATEIS (Pierre, Antoine)", "Cogérants statutaires : DEMATEIS (Daniel, Philippe) et MEURTIN (Serge, Michel)", "Nouveau gérant : SAHBAZ CEYHUN"); print_r($iBodacc->getDirigeants($tab)); die();*/ if ($fichierTLS) echo date('Y/m/d - H:i:s') ." - DEBUT de l'intégration du fichier BODACC $fichierTLS...".EOL; else echo date('Y/m/d - H:i:s') ." - DEBUT de l'intégration des$strLast BODACC $strBodacc $strDates $numBodaccIN".EOL; if ($erase && !$noQuestion) { while (1) { echo date('Y/m/d - H:i:s') ." - Confirmez la demande de suppression des annonces correspondantes ? (O/N) ... "; $saisie = trim(strtoupper(fgets(STDIN))); if ($saisie=='O' || $saisie=='o') break; } $tablesBodacc=array('bodacc','bodacc_autre','bodacc_detail','bodacc_dirigeants','bodacc_siren','chargements'); foreach ($tablesBodacc as $nomTable) { if (!$iDb->query("TRUNCATE $nomTable;")) { echo date('Y/m/d - H:i:s') ." - ERREUR ".mysql_errno()." : Suppression des annonces impossible !".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); die(); } } echo date('Y/m/d - H:i:s') ." - Suppression des annonces effectuée.".EOL; } flush(); $fp2=fopen('./sirenCites.txt', 'w'); fwrite($fp2, "INFO;SIREN;ID_ANNONCE;RUBRIQUE;CODE_BALISE;TEXTE;".EOL); fclose($fp2); function findIdMandataire($strNomAdresse) { $iDb=new WDB(); $strNomAdresse=preg_replace("/(\s+)/", ' ', $strNomAdresse.''); $tabRet=array(); if (preg_match("/(.*)Adresse(.*)([0-9]{5,5})([\D]*)/i", $strNomAdresse, $tabAdrTmp)) { if (preg_match("/(.*)rep(.*)sent(.*)par(.*)/i", $tabAdrTmp[1], $tabAdrTmp2)) { $nom=trim($tabAdrTmp2[1]); $repr=trim($tabAdrTmp2[4]); } elseif (preg_match("/(.*)mission(.*)conduite(.*)par(.*)/i", $tabAdrTmp[1], $tabAdrTmp2)) { $nom=trim($tabAdrTmp2[1]); $repr=trim($tabAdrTmp2[4]); } else { $nom=trim($tabAdrTmp[1]); $repr=''; } $tabRet['Nom']=$nom; $tabRet['repPar']=$repr; $tabRet['Adresse']=trim(str_replace(':','', $tabAdrTmp[2])); $tabRet['CP']=$tabAdrTmp[3]; $tabRet['Ville']=trim(preg_replace("/Les d.clarations(.*)/i", '', $tabAdrTmp[4])); if ($tabRet['Ville']=='') { $rep=$iDb->select('communes', 'LibCom', "`Code Postal`='".$tabRet['CP']."'"); if (count($rep)==1) { $tabCP=$rep[0]; $tabRet['Ville']=$tabCP['LibCom']; } } } return $tabRet; } if ($ftpStep && !$fichierTLS) { // Début de la récupération des infos et des derniers fichier non chargés du serveur FTP des JO $conn_id = ftp_connect(BODACC_FTP_URL); if (!$conn_id) { echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible de se connecter au serveur FTP des JO.".EOL; die(); } $login_result = ftp_login($conn_id, BODACC_FTP_USER, BODACC_FTP_PASS); if (!$login_result) { echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible de s'authentifier sur le serveur FTP des JO.".EOL; die(); } // Récupération du contenu d'un dossier $contents = ftp_nlist($conn_id, "."); foreach($contents as $k => $server_file) { $tailleDist = ftp_size($conn_id, $server_file); $dateDist = ftp_mdtm($conn_id, $server_file); if ($dateDist != -1) { $tabFichiers[$server_file]['dateDispo']=date('Y-m-d H:i:s', $dateDist); // echo date ('Y/m/d - H:i:s') ." - Le fichier distant $server_file a été modifié le ".date("d/m/Y à H:i:s.",$dateDist)."\n"; } else { $tabFichiers[$server_file]['dateDispo']=NULL; // echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible de récupérer l'heure de modification du fichier distant $server_file !\n"; } $tabFichiers[$server_file]['taille']=$tailleDist; if ($tailleDist != -1) { // echo date ('Y/m/d - H:i:s') ." - Taille du fichier distant $server_file est de $tailleDist octets\n"; } $dateLoc=0; if (file_exists(BODACC_LOCAL_DIR . $server_file)) { $dateLoc=filemtime(BODACC_LOCAL_DIR . $server_file); $tabFichiers[$server_file]['dateDownload']=date('Y-m-d H:i:s', $dateLoc); $tailleLoc=filesize(BODACC_LOCAL_DIR . $server_file); // echo date ('Y/m/d - H:i:s') ." - Taille du fichier local $server_file = $tailleLoc octets\n"; } if ($tailleDist<>@$tailleLoc) { if (ftp_get($conn_id, BODACC_LOCAL_DIR . $server_file, $server_file, FTP_BINARY)) { echo date ('Y/m/d - H:i:s')." - Fichier distant $server_file téléchargé avec succès".EOL; $strMailInfo.=date ('Y/m/d - H:i:s')." - Fichier distant $server_file téléchargé avec succès".EOL; } else die (date ('Y/m/d - H:i:s')." - ERREUR : Fichier distant $server_file non téléchargé !".EOL); } if ($dateLoc>0 && $dateDist>$dateLoc) { /**@todo Il faudrait : * - historiser l'ancien fichier local * - le supprilmer du dossier courant * - télécharger le nouveau **/ /*if (ftp_get($conn_id, BODACC_LOCAL_DIR . $server_file, $server_file, FTP_BINARY)) { echo date ('Y/m/d - H:i:s')." - Fichier distant $server_file téléchargé avec succès".EOL; $strMailInfo.=date ('Y/m/d - H:i:s')." - Fichier distant $server_file téléchargé avec succès".EOL; } else*/ die (date ('Y/m/d - H:i:s')." - ERREUR : Fichier distant $server_file (".$tabFichiers[$server_file]['dateDispo'].", $tailleLoc octets) plus récent que celui en local (".$tabFichiers[$server_file]['dateDownload'].", $tailleDist octets) !".EOL); } //else // echo date ('Y/m/d - H:i:s')." - Fichier distant $server_file datant du $dateDist (Local=$dateLoc)...".EOL; } // Fermeture de la connexion ftp_close($conn_id); echo date ('Y/m/d - H:i:s')." - Fin de la récupération des fichiers BODACC en FTP.".EOL; } else { echo date ('Y/m/d - H:i:s')." - Etape de connexion au serveur FTP des JO non exécutée (variables 'dateDispo' et 'taille' non renseignées !)".EOL; } if (!$fichierTLS) { $dh = opendir(BODACC_LOCAL_DIR); while (false !== ($filename = readdir($dh))) { if ($filename<>'.' && $filename<>'..' && ( substr($filename, -4)=='.TLS' || substr($filename, -4)=='.taz' || substr($filename, -4)=='.pdf' ) ) $tabFichier[] = $filename; } sort($tabFichier); } else $tabFichier[] = $fichierTLS; //print_r($tabFichier); //die(); $tabDepLu=array(); $tabPartiesLues=array(); $tabRubriquesLues=array(); //echo date ('Y/m/d - H:i:s') . " - Chargement des mandataires...".EOL; $tabTmp=$iDb->select('tabMandataires', "UPPER(CONCAT_WS(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 $nbMand=>$mand) { $tabMandSD[$mand['NomPre'].'-'.$mand['dep']]=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'], ); } echo date ('Y/m/d - H:i:s') . " - Chargement des $nbMand mandataires.".EOL; //print_r($tabMandSD); //die(); error_reporting(E_ALL ^ E_NOTICE); foreach ($tabFichier as $k => $nomFichier) { // Boucle sur chaque Fichier Bodacc TLS XML ou PDF $tabAnnonces=array(); $typeFichier=substr($nomFichier, -4); if ($typeFichier=='.TLS') { /********************************************************************/ /** DEBUT FORMAT .TLS **/ /********************************************************************/ $handle=@fopen(BODACC_LOCAL_DIR.$nomFichier, "rb"); if (!$handle) die(date ('Y/m/d - H:i:s')." - ERREUR : Fichier local $nomFichier inexistant !".EOL); $bodacc=''; while (!feof($handle)) { $taille = @fread ($handle, 4); $contents = @fread ($handle, $taille-4); $bodacc.=$contents; } $tabBodacc=explode(chr(30), $bodacc); $dateBodaccTxt=substr($tabBodacc[0],2,strlen($tabBodacc[0])-2); $tabFichiers[$nomFichier]['Bodacc_Date_Parution_Texte']=$dateBodaccTxt; $dateBodacc=WDate::dateT('dMY', 'Ymd', $dateBodaccTxt); for($i=0; $i<20; $i++) { $balise=''.substr($tabBodacc[$i],0,2); if ($balise=='06') { $bodaccNumPar=substr($tabBodacc[$i],2,strlen($tabBodacc[$i])-2); $bodaccType=substr($bodaccNumPar,0,1); $tabFichiers[$nomFichier]['Bodacc_Code']=$bodaccType; if (!in_array($bodaccType, $tabBodaccF)) continue(2); // La ligne de commande ne souhaite pas intégrer ce type de Bodacc $tabFichiers[$nomFichier]['Bodacc_Num']=substr($bodaccNumPar,1,strlen($bodaccNumPar)-1); break; } } $bodaccAnneePar=substr($dateBodacc,0,4); $tabFichiers[$nomFichier]['Bodacc_Annee_Parution']=$bodaccAnneePar; /** ** On test si le fichier est déjà en base **/ $ret=$iDb->select('chargements', 'Bodacc_Date_Parution, Bodacc_Code, Bodacc_Annee_Parution, DateDispo, dateDownload, taille, Bodacc_Num, Num_Annonce_Deb, Num_Annonce_Fin, dateInsert', "NomFichier='$nomFichier'"); if (count($ret)>0 && $fichierTLS<>$nomFichier) { $reload=false; $ficDB=$ret[0]; // echo date ('Y/m/d - H:i:s')." - BODACC $bodaccAnneePar-$bodaccNumPar du $dateBodacc déjà chargé ($nomFichier / $dateBodaccTxt).\n"; //if ($tabFichiers[$nomFichier]['taille']>0 && $tabFichiers[$nomFichier]['taille']<>$ficDB['taille']) { // print_r($tabFichiers[$nomFichier]);print_r($ficDB); // die(date ('Y/m/d - H:i:s')." - ERREUR : Fichier $nomFichier, Taille distante ". $tabFichiers[$nomFichier]['taille'] ." diff. de ". $ficDB['taille'] ." : ".$tabFichiers[$nomFichier]['dateDispo'].' !'.EOL); //} // if ($tabFichiers[$nomFichier]['dateDispo']>0 && $ficDB['DateDispo']>0 && $tabFichiers[$nomFichier]['dateDispo']<>$ficDB['DateDispo']) //die(date ('Y/m/d - H:i:s')." - ERREUR : Fichier $nomFichier, Date de dispo diff. : ".$tabFichiers[$nomFichier]['dateDispo'].' !'.EOL); $numBodacc=$tabFichiers[$nomFichier]['Bodacc_Num']; $ret=$iDb->select('bodacc', 'count(*) as nb', "Bodacc_Code='$bodaccType' AND Bodacc_Annee_Parution=$bodaccAnneePar AND Bodacc_Num=$numBodacc"); $nbAnnonces=$ret[0]['nb']; if ($ficDB['Num_Annonce_Fin']<>$nbAnnonces) echo(date ('Y/m/d - H:i:s')." - ATTENTION : Fichier $nomFichier, numéro de la dernière annonce (".$ficDB['Num_Annonce_Fin'].") incohérent avec le nombre d'annonces en base ($nbAnnonces) !".EOL); continue; } elseif (count($ret)>0 && $fichierTLS==$nomFichier) { $ficDB=$ret[0]; echo date ('Y/m/d - H:i:s')." - BODACC $bodaccAnneePar-$bodaccNumPar du $dateBodacc déjà chargé ($nomFichier / $dateBodaccTxt).\n"; $reload=true; } /* AVANT1 if (count($ret)>0) { $ficDB=$ret[0]; // echo date ('Y/m/d - H:i:s')." - BODACC $bodaccAnneePar-$bodaccNumPar du $dateBodacc déjà chargé ($nomFichier / $dateBodaccTxt).\n"; if ($tabFichiers[$nomFichier]['taille']>0 && $tabFichiers[$nomFichier]['taille']<>$ficDB['taille']) { print_r($tabFichiers[$nomFichier]);print_r($ficDB); die(date ('Y/m/d - H:i:s')." - ERREUR : Fichier $nomFichier, Taille distante ". $tabFichiers[$nomFichier]['taille'] ." diff. de ". $ficDB['taille'] ." : ".$tabFichiers[$nomFichier]['dateDispo'].' !'.EOL); } //$tabFichiers[$server_file]['taille'] // if ($tabFichiers[$nomFichier]['dateDispo']>0 && $ficDB['DateDispo']>0 && $tabFichiers[$nomFichier]['dateDispo']<>$ficDB['DateDispo']) //die(date ('Y/m/d - H:i:s')." - ERREUR : Fichier $nomFichier, Date de dispo diff. : ".$tabFichiers[$nomFichier]['dateDispo'].' !'.EOL); $numBodacc=$tabFichiers[$nomFichier]['Bodacc_Num']; $ret=$iDb->select('bodacc', 'count(*) as nb', "Bodacc_Code='$bodaccType' AND Bodacc_Annee_Parution=$bodaccAnneePar AND Bodacc_Num=$numBodacc"); $nbAnnonces=$ret[0]['nb']; if ($ficDB['Num_Annonce_Fin']<>$nbAnnonces) { $tabAnnCalc=array(); for($i=1; $i<=$ficDB['Num_Annonce_Fin']; $i++) { $tabAnnCalc[]=$i; } echo(date ('Y/m/d - H:i:s')." - ATTENTION : Fichier $nomFichier, numéro de la dernière annonce (".$ficDB['Num_Annonce_Fin'].") incohérent avec le nombre d'annonces en base ($nbAnnonces) !".EOL); $ret=$iDb->select('bodacc', 'Num_Annonce', "Bodacc_Code='$bodaccType' AND Bodacc_Annee_Parution=$bodaccAnneePar AND Bodacc_Num=$numBodacc"); $tabAnnEnBase=array(); foreach ($ret as $num=>$ret2) { //$nbAnnonces=$ret[0]['nb']; $tabAnnEnBase[]=$ret2['Num_Annonce']*1; } $strAnn=implode(', ', array_diff($tabAnnCalc, $tabAnnEnBase)); echo(date ('Y/m/d - H:i:s')." - ATTENTION : Il manque les numéros d'annonces suivants : $strAnn !".EOL); //die(); } continue; } // AVANT2 */ if ($tabFichiers[$nomFichier]['taille']==0) $tabFichiers[$nomFichier]['taille']=filesize(BODACC_LOCAL_DIR . $nomFichier); $tailleKo=round($tabFichiers[$nomFichier]['taille']/1024); echo date ('Y/m/d - H:i:s')." - BODACC TLS $bodaccAnneePar-$bodaccNumPar du $dateBodacc en cours de traitement ($nomFichier, $dateBodaccTxt, $tailleKo k)...".EOL; /** Numéro d'annonce calculé car les numéro d'annonces du Bodacc C sont complètement déconnants **/ $bodaccNumAnnCalc=0; foreach ($tabBodacc as $i => $ligne) { // On traite chaque ligne du fichier .TLS $code=''.substr($ligne,0,2); $texte=$iBodacc->convertAccents(substr($ligne,2,strlen($ligne)-2)); if (!$iBodacc->isBaliseBodacc($code)) /** On stop car ce code balise n'est pas documenté par les JO **/ die(date('Y/m/d - H:i:s')." - ERREUR : Balise BODACC '$code.' inconnue ($texte) !!!".EOL); switch ($code) { case '01': /** Indique le début début d'une nouvelle annonce **/ if (isset($idann)) { $tabAnnonces[$idann]['Bodacc_Date_Parution']=$dateBodacc; //$tabAnnoncesTxt[$idann]=$txtAnnonce; } /** ** CLOTURE DE L'ANNONCE en cours **/ /** CodeEVEN par défaut si aucune indication textuelle repérée... On se fie alors au code rubrique donné par le Bodacc **/ if (!isset($tabAnnonces[$idann]['data']['typeProCol'])) { if ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A215') $tabAnnonces[$idann]['data']['typeProCol']=1410;// Suite règlement/liquidat° elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A804') $tabAnnonces[$idann]['data']['typeProCol']=1305;// LJ elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A808') $tabAnnonces[$idann]['data']['typeProCol']=1411;// Arrêt plan cession elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A819') $tabAnnonces[$idann]['data']['typeProCol']=1407;// Modification de plan } /** On recherche la balise '07' suivante qui indique le numéro de l'annonce **/ for($j=5; $j<10; $j++) { $balise=''.substr($tabBodacc[$i+$j],0,2); if ($balise=='07') { $bodaccNumAnnCalc++; $bodaccNumAnn=substr($tabBodacc[$i+$j],2,strlen($tabBodacc[$i+$j])-2)*1; if (!preg_match('/^'.$bodaccNumAnnCalc.'/', str_replace('.','',''.$bodaccNumAnn)) ) { /*&& !preg_match('/^'.($bodaccNumAnnCalc+1).'/', str_replace('.','',''.$bodaccNumAnn)) && !preg_match('/^'.($bodaccNumAnnCalc+2).'/', str_replace('.','',''.$bodaccNumAnn)) && !preg_match('/^'.($bodaccNumAnnCalc+3).'/', str_replace('.','',''.$bodaccNumAnn)) && !preg_match('/^'.($bodaccNumAnnCalc+4).'/', str_replace('.','',''.$bodaccNumAnn)) && !preg_match('/^'.($bodaccNumAnnCalc+5).'/', str_replace('.','',''.$bodaccNumAnn)) && !preg_match('/^'.($bodaccNumAnnCalc+6).'/', str_replace('.','',''.$bodaccNumAnn)) && !preg_match('/^'.($bodaccNumAnnCalc+7).'/', str_replace('.','',''.$bodaccNumAnn)) && !preg_match('/^'.($bodaccNumAnnCalc+8).'/', str_replace('.','',''.$bodaccNumAnn)) ) die(date ('Y/m/d - H:i:s')." - Numéro d'annonce $bodaccNumAnn complètement différent du numéro attendu $bodaccNumAnnCalc !".EOL); */ $endTmp=false; //$endTmp=true; for ($iTmp=1; $iTmp<19; $iTmp++) { if (preg_match('/^'.($bodaccNumAnnCalc+$iTmp).'/', str_replace('.','',''.$bodaccNumAnn))) { echo(date ('Y/m/d - H:i:s')." - Numéro d'annonce $bodaccNumAnn différent du numéro attendu $bodaccNumAnnCalc !".EOL); $bodaccNumAnnCalc=$bodaccNumAnnCalc+$iTmp; // Il y a un loupé de numérotation au bodacc entre 2 annonces $endTmp=true; break; } } if (!$endTmp) die(date ('Y/m/d - H:i:s')." - Numéro d'annonce $bodaccNumAnn complètement différent du numéro attendu $bodaccNumAnnCalc !".EOL); } //echo (date ('Y/m/d - H:i:s')." - Présent $bodaccNumAnn (Attendu $bodaccNumAnnCalc)".EOL);. $bodaccNumAnn=$bodaccNumAnnCalc; if (!isset($tabFichiers[$nomFichier]['Num_Annonce_Deb'])) { $tabFichiers[$nomFichier]['Num_Annonce_Deb']=$bodaccNumAnn; } //$idann=''.$bodaccAnneePar.'-'.$bodaccNumPar.'-'.$bodaccNumAnn; $tmp=explode(' ', $bodaccNumAnn); $bodaccNumAnn=trim($tmp[0]); /** Numéro unique interne à ce programme pour chaque annonce **/ $idann=''.$bodaccAnneePar.'-'.$bodaccNumPar.'-'.$bodaccNumAnn; /** On initialise le tableau $tabAnnonces[$idann] qui contient toutes les infos de l'annonce **/ $tabAnnonces[$idann]['Num_Annonce']=$bodaccNumAnn; $tabAnnonces[$idann]['Bodacc_Code']=$bodaccType; $tabAnnonces[$idann]['Bodacc_Annee_Parution']=$bodaccAnneePar; $tabAnnonces[$idann]['Bodacc_Num']=substr($bodaccNumPar,1,strlen($bodaccNumPar)-1); $tabAnnonces[$idann]['Bodacc_NOJO']=$texte; $tabAnnonces[$idann]['typeAnnonce']='Insertion'; $tabAnnonces[$idann]['corrNum_Annonce']=NULL; $tabAnnonces[$idann]['corrBodacc_Date_Parution']=NULL; $tabAnnonces[$idann]['corrPage']=NULL; $tabAnnonces[$idann]['corrNumParution']=NULL; $tabAnnonces[$idann]['corrTexteRectificatif']=NULL; break; } } /** Réinitialisation de variables **/ $err1624=false; // Indicateur d'erreur relatif aux balises 16 et 24 pour laquelle le début de la raison sociale est donné en balise 16 break; case '02':break;// Contient toujours "BODACC" case '03': // Partie du Bodacc et Département (séparé par un .) $tmp=explode('.', $texte); $bodaccPartie=$tmp[0]; $bodaccDepNum=$tmp[1]; $tabAnnonces[$idann]['Tribunal_Dept']=$bodaccDepNum; $bodaccDep=$iInsee->getDepartement($bodaccDepNum); $depInconnu=false; if (!$iInsee->isDepartement($bodaccDepNum)) { $depInconnu=true; echo date ('Y/m/d - H:i:s')." - ERREUR : Département '$bodaccDepNum' inconnu pour l'annonce $idann !".EOL; // die(); } $tabDepLu[]=$tmp[1]; $texte=$tmp[0] .'.'. $tmp[1].' - '.$bodaccDep; $tabPartiesLues[]=$bodaccType.$tmp[0]; $bodaccPartie=$bodaccType.$tmp[0]; break; case '04': // Tribunal $tribunalAnn=$texte; $tabAnnonces[$idann]['Tribunal_Code']=$tribunalAnn; $texte=$iBodacc->getTribunalNom($texte).' ('.$texte.')'; if (!$iBodacc->isTribunal($tribunalAnn)) { echo date ('Y/m/d - H:i:s')." - ERREUR : Tribunal '$texte' inconnu pour l'annonce $idann !".EOL; // die(); } //if ($depInconnu) /** Si n° de département non communiqué dans l'annonce, on l'initialise par rapport au code Tribunal **/ // $tabAnnonces[$idann]['Tribunal_Dept']=$iBodacc->getTribunalNom($tribunalAnn); break; case '05': // Rubrique du BODACC $texte=sprintf("%02s", $texte); $rubrique=$bodaccPartie.$texte; $tabRubriquesLues[]=$rubrique; $tabAnnonces[$idann]['Rubrique_Bodacc']=$rubrique; $texte=$iBodacc->getLibRubriqueBodacc($rubrique).' ('.$rubrique.')'; if (!$iBodacc->isRubriqueBodacc($rubrique)) { echo date ('Y/m/d - H:i:s')." - ERREUR : Rubrique '$texte' inconnue pour l'annonce $idann !".EOL; die(); } break; case '06':break;// Numéro de parution case '07': // Numéro de l'annonce dans la parution $txtAnnonce=''.$bodaccNumAnn.' - '; $tabAnnonces[$idann]['annonce']=$txtAnnonce; $tabAnnonces[$idann]['data']=array(); // echo "Code=07:$idann : ". $tabAnnonces[$idann]['data']['typeProCol'] ." : $code : $texte".EOL; break; default: if ($code=='00') { // On vérifie si la 1ère ligne du fichier contient bien la date du Bodacc if ($i==0 && $texte==$dateBodaccTxt) continue; // OK elseif ($i==0) { echo date ('Y/m/d - H:i:s'). " - ERREUR : Le fichier $nomFichier ne contient pas $dateBodaccTxt en 1ère ligne !".EOL; die(); } $strTmp=trim(strtr($texte, "{}!", ' ')); $strTmpAcco=trim(strtr($texte, "!", ' ')); if (!isset($tabAnnonces[$idann]['data']['administration'])) $tabAnnonces[$idann]['data']['administration']=''; if (!isset($tabAnnonces[$idann]['data']['nationalite'])) $tabAnnonces[$idann]['data']['nationalite']=array(); if ( !isset($tabAnnonces[$idann]['data']['commentaires']) || !is_array($tabAnnonces[$idann]['data']['commentaires']) ) $tabAnnonces[$idann]['data']['commentaires']=array(); if (strlen($strTmp)>0) { if (preg_match("/^Administration(.*):/i", $strTmp)) { /** On récupère la ligne suivantes **/ $strTmp=trim(strtr($iBodacc->convertAccents(substr($tabBodacc[$i+1],2,strlen($tabBodacc[$i+1])-2)), "{}!", ' ')); $tabAnnonces[$idann]['data']['administration']=$strTmp;//explode('.', ); if ($bodaccType=='B') { if ( !isset($tabAnnonces[$idann]['data']['typeMMD']) || !is_array($tabAnnonces[$idann]['data']['typeMMD']) ) $tabAnnonces[$idann]['data']['typeMMD']=array(); if (preg_match("/(ancien|nouveau|d.mission| nomination|^nomination)/i", $strTmp) && !in_array(2315, $tabAnnonces[$idann]['data']['typeMMD'])) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2315)); } } elseif (preg_match("/^Nationalit(.*):/i", $strTmp)) { $tabAnnonces[$idann]['data']['nationalite']=array_merge($tabAnnonces[$idann]['data']['nationalite'], array(trim(preg_replace("/^Nationalit(.*):/i", '', $strTmp)))); } elseif (preg_match("/^A dater du(.*):/i", $strTmp)) { $strTmp=explode('}', $texte); $datEvenement=str_replace(' ','',trim(strtr($strTmp[1], "{}.!", ' '))); $tabAnnonces[$idann]['data']['dateEffet']=WDate::dateT('dMY', 'Ymd', $datEvenement); }elseif (preg_match("/^Publication(.*)l(.)gale(.*):/i", $strTmp)) { $strPublication=trim(preg_replace("/^Publication(.*)l(.)gale(.*):/i", '', $strTmp)); $tabAnnonces[$idann]['data']['publication']=$strPublication; if(preg_match("/(.*) (du|des) ([0-9]{1,2}|1er) (janvier|février|fevrier|mars|avril|mai|juin|juillet|aout|août|septembre|octobre|novembre|décembre|decembre) ([0-9]{2,4})/i", $strPublication, $tabTmp)) { $tabAnnonces[$idann]['data']['publicationNom']=$tabTmp[1]; $tabAnnonces[$idann]['data']['publicationDate']=WDate::dateT('dMY', 'Ymd', $tabTmp[3].$tabTmp[4].$tabTmp[5]); } } elseif (preg_match("/^Oppositions(.*):/i", $strTmp)) { $tabAnnonces[$idann]['data']['oppositions']=trim(preg_replace("/^Oppositions(.*):/i", '', $strTmp)); } elseif (preg_match("/^Commentaire(.*):/i", $strTmp)) { $tabAnnonces[$idann]['data']['commentaires']=array_merge($tabAnnonces[$idann]['data']['commentaires'], array(trim(preg_replace("/^Commentaire(.*):/i", '', $strTmp)))); } elseif (preg_match("/cessation(.*)paiement/i", $strTmp)) { // JUGE COMMISSAIRE APRES $strTmp=explode('}', $strTmpAcco); $libEvenement=trim(strtr($strTmp[0], "{}:!", ' ')); if (isset($strTmp[1])) { $datEvenement=str_replace(' ','',trim(strtr($strTmp[1], "{}.!", ' '))); $tabAnnonces[$idann]['data']['dateCessationPaiement']=WDate::dateT('dMY', 'Ymd', $datEvenement); } else $tabAnnonces[$idann]['data']['dateCessationPaiement']=NULL;//{ }Date d'insolvabilité notoire : 1er janvier 2007 } $strTmp=trim(strtr($texte, "{}!", ' ')); if (preg_match("/Repr(.)sentant(.*)cr(.)ancier/i", $strTmp) && !isset($tabAnnonces[$idann]['data']['ReprCreanciers'])) { $tabAnnonces[$idann]['data']['ReprCreanciers']=''; for($j=1; $j<10; $j++) { $balise=''.substr($tabBodacc[$i+$j],0,2); if ($balise=='00') { /** On recherche l'adresse dans les lignes suivantes **/ $txt=$iBodacc->convertAccents(substr($tabBodacc[$i+$j],2,strlen($tabBodacc[$i+$j])-2)); $txt=trim(strtr($txt, "{}!", ' ')); $tabAnnonces[$idann]['data']['ReprCreanciers'].=EOL.$txt; if (preg_match("/^[0-9]{5,5}$/", str_replace(' ','',$txt))) { // Code Postal $tabAnnonces[$idann]['data']['ReprCreanciers'].=EOL.trim($iBodacc->convertAccents(preg_replace("/\{\.(.*)/i", '', substr($tabBodacc[$i+$j+1],2,strlen($tabBodacc[$i+$j+1])-2)))); break; } if ($j>6 && strpos($txt, '.')>O) break; } } $tabAnnonces[$idann]['data']['ReprCreanciers']=trim($tabAnnonces[$idann]['data']['ReprCreanciers']); } if (preg_match("/Juge commissaire/i", $strTmp)) { // JUGE COMM SUPPL ??? if ( !isset($tabAnnonces[$idann]['data']['jugeCommissaire']) || !is_array($tabAnnonces[$idann]['data']['jugeCommissaire']) ) $tabAnnonces[$idann]['data']['jugeCommissaire']=array(); $tabAnnonces[$idann]['data']['jugeCommissaire']=array_merge($tabAnnonces[$idann]['data']['jugeCommissaire'], array($strTmp)); } if (preg_match("/d(.)claration(.*)cr(.)ance(.*)d(.)lai/i", $strTmp)) { $tabTmp=explode('}', $strTmpAcco); if (isset($tabTmp[1])) { $tabAnnonces[$idann]['data']['delaiDepotCreances']=trim(strtr($tabTmp[1], "{}:!", ' ')); //echo $tabAnnonces[$idann]['data']['delaiDepotCreances'].'='.Wdate::period2Days($tabAnnonces[$idann]['data']['delaiDepotCreances']).EOL; //die(); } //else //$tabAnnonces[$idann]['data']['delaiDepotCreances']=$tabTmp[0]; } if (preg_match("/Administrateur(.*)judiciaire/i", $strTmp) && !isset($tabAnnonces[$idann]['data']['administrateur'])) { $tabAnnonces[$idann]['data']['administrateur']=''; for($j=1; $j<10; $j++) { $balise=''.substr($tabBodacc[$i+$j],0,2); if ($balise=='00') { $txt=$iBodacc->convertAccents(substr($tabBodacc[$i+$j],2,strlen($tabBodacc[$i+$j])-2)); $txt=trim(strtr($txt, "{}!", ' ')); $tabAnnonces[$idann]['data']['administrateur'].=EOL.$txt; if (preg_match("/^[0-9]{5,5}$/", str_replace(' ','',$txt))) { $tabAnnonces[$idann]['data']['administrateur'].=EOL.trim($iBodacc->convertAccents(preg_replace("/\{\.(.*)/i", '', substr($tabBodacc[$i+$j+1],2,strlen($tabBodacc[$i+$j+1])-2)))); break; } if ($j>6 && strpos($txt, '.')>O) break; } } $tabAnnonces[$idann]['data']['administrateur']=trim($tabAnnonces[$idann]['data']['administrateur']); } if (preg_match("/Mandataire judiciaire/i", $strTmp) && !isset($tabAnnonces[$idann]['data']['Mandataire'])) { $tabAnnonces[$idann]['data']['Mandataire']=trim(str_replace(':', '', preg_replace("/(.*)Mandataire judiciaire (à la liquidation )(des entreprises)/i", '', $strTmp))); for($j=1; $j<10; $j++) { $balise=''.substr($tabBodacc[$i+$j],0,2); if ($balise=='00') { $txt=$iBodacc->convertAccents(substr($tabBodacc[$i+$j],2,strlen($tabBodacc[$i+$j])-2)); $txt=trim(strtr($txt, "{}!", ' ')); $tabAnnonces[$idann]['data']['Mandataire'].=EOL.$txt; if (preg_match("/^[0-9]{5,5}$/", str_replace(' ','',$txt))) { $tabAnnonces[$idann]['data']['Mandataire'].=EOL.trim($iBodacc->convertAccents(preg_replace("/\{\.(.*)/i", '', substr($tabBodacc[$i+$j+1],2,strlen($tabBodacc[$i+$j+1])-2)))); break; } if ($j>6 && strpos($txt, '.')>0) break; } } $tabAnnonces[$idann]['data']['Mandataire']=trim($tabAnnonces[$idann]['data']['Mandataire']); } if ($tabAnnonces[$idann]['data']['typeProCol']==1600 || $tabAnnonces[$idann]['data']['typeProCol']==1601) { //print_r($tabAnnonces[$idann]); $tabAdministration=$iBodacc->getDirigeants($strTmp); if (count($tabAdministration)>1) { echo $strTmp."\n"; print_r($tabAdministration); echo('Cas non géré : plus d\'un gérant en IG dans la même annonce !'.EOL); } elseif (count($tabAdministration)>=1) $dir=$tabAdministration[0]; else $dir=array('fonction'=>805); if (preg_match("/^(.*)\((.*)\)/i", $tabAnnonces[$idann]['data']['raisonSociale'][0], $matches)) { $dir['nom']=trim($matches[1]); $tabTmp=explode(' née ', $dir['nom']); if (count($tabTmp)>1) { $dir['nom']=trim(str_replace(',','',$tabTmp[1])); $dir['nomUsage']=trim(str_replace(',','',$tabTmp[0])); } $dir['prenom']=trim($matches[2]); } $dir['even']=$tabAnnonces[$idann]['data']['typeProCol']; $dir['dateFin']=$tabAnnonces[$idann]['data']['dateFinObservation']; if (preg_match_all("/((?:[0-9]{9,9})|(?:[0-9]{3,3} [0-9]{3,3} [0-9]{3,3})|(?:[0-9]{3,3}\.[0-9]{3,3}\.[0-9]{3,3})|(?:[0-9]{3,3}-[0-9]{3,3}-[0-9]{3,3}))/", $strTmp, $matches)) { foreach ($matches[1] as $siren) { $siren=strtr($siren, array('.'=>'','-'=>'', ' '=>'')); if ( !isset($tabAnnonces[$idann]['siren']) || !is_array($tabAnnonces[$idann]['siren']) ) $tabAnnonces[$idann]['siren']=array(); if ( !isset($tabAnnonces[$idann]['data']['siren']) || !is_array($tabAnnonces[$idann]['data']['siren']) ) { $tabAnnonces[$idann]['data']['siren']=array(); $tabAnnonces[$idann]['data']['sirenValide']=array(); } if ($iInsee->valideSiren($siren)) { if ($tabAnnonces[$idann]['siren'][0]['valide']==0) { $tabAnnonces[$idann]['siren']=array(array('num'=>$siren, 'valide'=>1)); $tabAnnonces[$idann]['data']['siren']=array($siren); $tabAnnonces[$idann]['data']['sirenValide']=array(1); }else { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>1))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(1)); } } else { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>0))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(0)); } if ( !isset($tabAnnonces[$idann]['data']['raisonSociale']) || !is_array($tabAnnonces[$idann]['data']['raisonSociale']) ) $tabAnnonces[$idann]['data']['raisonSociale']=array(); $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], preg_replace('/^(.*)( de | de la | du | des )/i','', preg_replace('/, (.*)$/i','',$strTmp))); } } $tabAnnonces[$idann]['data']['dirIGPF'][0]=$dir; //print_r($tabAnnonces[$idann]); //$saisie = trim(strtoupper(fgets(STDIN))); echo $strTmp; } } } elseif ($code=='14') { // Numéro de RC (Registre du commerce) //RC }93-B 16{. } $strTmp=str_replace('RC', '', str_replace(' ', '', strtr($texte, "{}.!-", ' '))); if (preg_match("/^[0-9A-Z][0-9A-Z][A-Z][0-9]{1,9}$/i", $strTmp)) { if ( !isset($tabAnnonces[$idann]['data']['RC']) || !is_array($tabAnnonces[$idann]['data']['RC']) ) $tabAnnonces[$idann]['data']['RC']=array(); $tabAnnonces[$idann]['data']['RC']=array_merge($tabAnnonces[$idann]['data']['RC'], array($strTmp)); }elseif (preg_match("/[0-9]{7,9}/", $strTmp, $tabTmp)) { //{ Répertoire des métiers : }345 219 786 RM 14{. } $strTmp=$tabTmp[0]; if ( !isset($tabAnnonces[$idann]['siren']) || !is_array($tabAnnonces[$idann]['siren']) ) $tabAnnonces[$idann]['siren']=array(); if ( !isset($tabAnnonces[$idann]['data']['siren']) || !is_array($tabAnnonces[$idann]['data']['siren']) ) { $tabAnnonces[$idann]['data']['siren']=array(); $tabAnnonces[$idann]['data']['sirenValide']=array(); } if ($iInsee->valideSiren($strTmp)) { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$strTmp, 'valide'=>1))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($strTmp)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(1)); } else { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$strTmp, 'valide'=>0))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($strTmp)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(0)); } }elseif (preg_match("/^Enseigne(.*):/i", $strTmp)) { if ( !isset($tabAnnonces[$idann]['data']['enseigne']) || !is_array($tabAnnonces[$idann]['data']['enseigne']) ) $tabAnnonces[$idann]['data']['enseigne']=array(); $tabAnnonces[$idann]['data']['enseigne']=array_merge($tabAnnonces[$idann]['data']['enseigne'], array(trim(preg_replace("/^Enseigne(.*):/i", '', $strTmp)))); } //{ RC }07-B 157{. } } elseif ($code=='15') { $strTmp=str_replace(' ', '', strtr($texte, "{}.!", ' ')); if ( !isset($tabAnnonces[$idann]['siren']) || !is_array($tabAnnonces[$idann]['siren']) ) $tabAnnonces[$idann]['siren']=array(); if ( !isset($tabAnnonces[$idann]['data']['siren']) || !is_array($tabAnnonces[$idann]['data']['siren']) ) { $tabAnnonces[$idann]['data']['siren']=array(); $tabAnnonces[$idann]['data']['sirenValide']=array(); } if (preg_match("/^[0-9]{9,9}(.*)/", $strTmp, $tabTmp2)) { if (strlen($tabTmp2[1])>0) { // 420 910 176{. } GUIN, née (sans Balise) $strTmp=substr($tabTmp2[0],0,9); $err1624=true; // On informe le décodage de la prochaine ligne que la raison sociale a déja été commencée ! if ( !isset($tabAnnonces[$idann]['data']['raisonSociale']) || !is_array($tabAnnonces[$idann]['data']['raisonSociale']) ) $tabAnnonces[$idann]['data']['raisonSociale']=array(); $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array($tabTmp2[1])); //echo "Siren = $strTmp, RS = ".$tabTmp2[1] ."'\n"; } if ($iInsee->valideSiren($strTmp)) { //echo "Siren = $siren, RS = ".$tabTmp2[1] ."'\n"; $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$strTmp, 'valide'=>1))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($strTmp)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(1)); } else { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$strTmp, 'valide'=>0))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($strTmp)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(0)); } } elseif (preg_match("/non(.*)inscrit/i", $strTmp)) { //RCS non encore inscrit $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$strTmp, 'valide'=>0))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array(0)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(0)); } else { $strTmp=str_replace('RC', '', str_replace(' ', '', strtr($texte, "{}.!-", ' '))); if (preg_match("/^[0-9A-Z][0-9A-Z][A-Z][0-9]{1,9}$/i", $strTmp)) { if ( !isset($tabAnnonces[$idann]['data']['RC']) || !is_array($tabAnnonces[$idann]['data']['RC']) ) $tabAnnonces[$idann]['data']['RC']=array(); $tabAnnonces[$idann]['data']['RC']=array_merge($tabAnnonces[$idann]['data']['RC'], array($strTmp)); } } } elseif ($code=='16') { $strTmp=trim(strtr($texte, "{}.!", ' ')); if ( !isset($tabAnnonces[$idann]['data']['raisonSociale']) || !is_array($tabAnnonces[$idann]['data']['raisonSociale']) ) $tabAnnonces[$idann]['data']['raisonSociale']=array(); /** Si la ligne précédente est aussi codifiée en Raison Sociale alors nous somme toujours sur la même entreprise **/ $codePre=substr($tabBodacc[$i-1],0,2); if ($codePre=='16' || $codePre=='24' || $err1624==true) { end($tabAnnonces[$idann]['data']['raisonSociale']); $key=key($tabAnnonces[$idann]['data']['raisonSociale']); $tabAnnonces[$idann]['data']['raisonSociale'][$key].=' '.$strTmp; } else $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array($strTmp)); } elseif ($code=='17') { $strTmp=trim(strtr($texte, "{}.!", ' ')); if ( !isset($tabAnnonces[$idann]['data']['activite']) || !is_array($tabAnnonces[$idann]['data']['activite']) ) $tabAnnonces[$idann]['data']['activite']=array(); $strTmp=trim(preg_replace("/^Activit(.*):/i", '', $strTmp)); $tabAnnonces[$idann]['data']['activite']=array_merge($tabAnnonces[$idann]['data']['activite'], array($strTmp)); if (preg_match_all("/[0-9]{9,9}|[0-9]{3,3} [0-9]{3,3} [0-9]{3,3}|[0-9]{3,3}\.[0-9]{3,3}\.[0-9]{3,3}|[0-9]{3,3}-[0-9]{3,3}-[0-9]{3,3}/", $strTmp,$matches)) { if ( !isset($tabAnnonces[$idann]['data']['participations']) || !is_array($tabAnnonces[$idann]['data']['participations']) ) $tabAnnonces[$idann]['data']['participations']=array(); foreach ($matches[0] as $m => $sirenParticipation) { if ($iInsee->valideSiren(str_replace(' ','', $sirenParticipation)) && !preg_match('/'.$sirenParticipation.'.{1,5}euro/i', $texte)) $tabAnnonces[$idann]['data']['participations']=array_merge( $tabAnnonces[$idann]['data']['participations'] , array(str_replace(' ','', $sirenParticipation))); } } } elseif ($code=='19') { $strTmp=trim(strtr($texte, "{}.!", ' ')); if ( !isset($tabAnnonces[$idann]['data']['nomCommercial']) || !is_array($tabAnnonces[$idann]['data']['nomCommercial']) ) $tabAnnonces[$idann]['data']['nomCommercial']=array(); if ( !isset($tabAnnonces[$idann]['data']['enseigne']) || !is_array($tabAnnonces[$idann]['data']['enseigne']) ) $tabAnnonces[$idann]['data']['enseigne']=array(); if (preg_match("/^Nom commercial(.*):/i", $strTmp)) $tabAnnonces[$idann]['data']['nomCommercial']=array_merge($tabAnnonces[$idann]['data']['nomCommercial'], array(trim(preg_replace("/^Nom commercial(.*):/i", '', $strTmp)))); elseif (preg_match("/^Enseigne(.*):/i", $strTmp)) $tabAnnonces[$idann]['data']['enseigne']=array_merge($tabAnnonces[$idann]['data']['enseigne'], array(trim(preg_replace("/^Enseigne(.*):/i", '', $strTmp)))); else $tabAnnonces[$idann]['data']['nomCommercial']=array_merge($tabAnnonces[$idann]['data']['nomCommercial'], array($strTmp)); } elseif ($code=='20') { // echo "Code=20:$idann : ". $tabAnnonces[$idann]['data']['typeProCol'] ." : $code : $texte\n"; $strTmp=explode('}', $texte); $libEvenement=trim(strtr($strTmp[0], "{}:!", ' ')); $datEvenement=str_replace(' ','',trim(strtr($strTmp[1], "{}.!", ' '))); $comEvenement=trim(strtr($strTmp[1], "{}!", ' ')); if ($bodaccType=='C') { $tabAnnonces[$idann]['data']['dateCloture']=WDate::dateT('dMY', 'Ymd', $datEvenement); if (preg_match("/comptes? annuel/i", $libEvenement)) $tabAnnonces[$idann]['data']['comptesAnnu']=1;// Dépôt des comptes annuels else $tabAnnonces[$idann]['data']['comptesAnnu']=0; if (preg_match("/comptes? consolid/i", $libEvenement)) $tabAnnonces[$idann]['data']['comptesConso']=1;//'Dépôt des comptes consolidés' else $tabAnnonces[$idann]['data']['comptesConso']=0; //if (preg_match("/rapport(.*)exercice/i", $libEvenement)) //$tabAnnonces[$idann]['data']['rapport']=1; //else $tabAnnonces[$idann]['data']['rapport']=0; } elseif (// CREATIONS $tabAnnonces[$idann]['Rubrique_Bodacc']=='A103' || // Personne Physique $tabAnnonces[$idann]['Rubrique_Bodacc']=='A104' || // Société $tabAnnonces[$idann]['Rubrique_Bodacc']=='A105' || // GIE $tabAnnonces[$idann]['Rubrique_Bodacc']=='A106' || // SC $tabAnnonces[$idann]['Rubrique_Bodacc']=='A107' || // Etab. Sec. : Pers. Phys. $tabAnnonces[$idann]['Rubrique_Bodacc']=='A108' || // Etab. Sec. : Société $tabAnnonces[$idann]['Rubrique_Bodacc']=='A109' || // Etab. Sec. : SC $tabAnnonces[$idann]['Rubrique_Bodacc']=='A126' || // Etab. + PP : PP $tabAnnonces[$idann]['Rubrique_Bodacc']=='A131' || // Etab. Sec. : GIE // VENTES & CESSIONS $tabAnnonces[$idann]['Rubrique_Bodacc']=='A101' || // Personne Physique $tabAnnonces[$idann]['Rubrique_Bodacc']=='A102' || // Société $tabAnnonces[$idann]['Rubrique_Bodacc']=='A124' || // Personne P. non inscrite $tabAnnonces[$idann]['Rubrique_Bodacc']=='A125') { // Société non inscrite if (preg_match("/d.but(.*)activit/i", $libEvenement)) $tabAnnonces[$idann]['data']['dateDebutActivite']=WDate::dateT('dMY', 'Ymd', $datEvenement); if (preg_match("/date(.*)effet/i", $libEvenement)) $tabAnnonces[$idann]['data']['dateEffet']=WDate::dateT('dMY', 'Ymd', $datEvenement); } elseif (// RADIATIONS $tabAnnonces[$idann]['Rubrique_Bodacc']=='B1X1' || // Dissolution $tabAnnonces[$idann]['Rubrique_Bodacc']=='B116' || // Personne Physique $tabAnnonces[$idann]['Rubrique_Bodacc']=='B117' || // Société $tabAnnonces[$idann]['Rubrique_Bodacc']=='B127' || // Toutes formes $tabAnnonces[$idann]['Rubrique_Bodacc']=='B133') { // GEIE if (preg_match("/(cessation|radiation)/i", $libEvenement)) $tabAnnonces[$idann]['data']['dateCessationActivite']=WDate::dateT('dMY', 'Ymd', $datEvenement); if (preg_match("/commentaire/i", $libEvenement)) { if ( !isset($tabAnnonces[$idann]['data']['commentaires']) || !is_array($tabAnnonces[$idann]['data']['commentaires']) ) $tabAnnonces[$idann]['data']['commentaires']=array(); $comEvenement=preg_replace("/^Radiation pour cause de/i",'', $comEvenement); $comEvenement=preg_replace("/^Radiation suite à la/i",'', $comEvenement); $comEvenement=preg_replace("/^Radiation par suite de/i",'', $comEvenement); $comEvenement=preg_replace("/^pour cause de/i",'', $comEvenement); $comEvenement=preg_replace("/^suite à la/i",'', $comEvenement); $comEvenement=preg_replace("/^par suite de/i",'', $comEvenement); $comEvenement='Radiation pour cause de '.$comEvenement; $tabAnnonces[$idann]['data']['commentaires']=array_merge($tabAnnonces[$idann]['data']['commentaires'], array($comEvenement)); if (preg_match("/cl.ture (des op.rations )de (la )liquidation amiable/i", $libEvenement)) $tabAnnonces[$idann]['data']['typeRadiation']=6001; elseif (preg_match("/cl.ture (des op.rations )de (la )liquidation (judiciaire )pour insuffisance d'actif/i", $libEvenement)) $tabAnnonces[$idann]['data']['typeRadiation']=6002; elseif (preg_match("/cl.ture pour insuffisance d'actif (des op.rations )de (la )liquidation (judiciaire)/i", $libEvenement)) $tabAnnonces[$idann]['data']['typeRadiation']=6002; elseif (preg_match("/cl.ture (des op.rations )de (la )liquidation judiciaire/i", $libEvenement)) $tabAnnonces[$idann]['data']['typeRadiation']=6003; elseif (preg_match("/cl.ture (des op.rations )de (la )liquidation (judiciaire )simplifi/i", $libEvenement)) $tabAnnonces[$idann]['data']['typeRadiation']=6004; elseif (preg_match("/cl.ture plan de cession/i", $libEvenement)) $tabAnnonces[$idann]['data']['typeRadiation']=6005; elseif (preg_match("/cl.ture (des op.rations )de (la )liquidation/i", $libEvenement)) $tabAnnonces[$idann]['data']['typeRadiation']=6000; elseif (preg_match("/cl.ture (.*) liquidation/i", $libEvenement)) $tabAnnonces[$idann]['data']['typeRadiation']=6000; elseif (preg_match("/(décès|deces|déces|decès)/i", $libEvenement)) $tabAnnonces[$idann]['data']['typeRadiation']=6100; elseif (preg_match("/non(.)exercice/i", $libEvenement)) $tabAnnonces[$idann]['data']['typeRadiation']=6300; elseif (preg_match("/transfert/i", $libEvenement)) $tabAnnonces[$idann]['data']['typeRadiation']=6400; elseif (preg_match("/cessation(.*)activit(e|é)/i", $libEvenement)) $tabAnnonces[$idann]['data']['typeRadiation']=6201; elseif (preg_match("/(mention|radiation) d'office/i", $libEvenement)) $tabAnnonces[$idann]['data']['typeRadiation']=6200; else $tabAnnonces[$idann]['data']['typeRadiation']=6700; // Radiation (autre) if (!isset($tabAnnonces[$idann]['data']['dateCessationActivite'])) $tabAnnonces[$idann]['data']['dateCessationActivite']=$dateBodacc; if (!in_array(2000, $tabAnnonces[$idann]['data']['typeMMD'])) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2000)); // Mention d'office } } elseif (substr($tabAnnonces[$idann]['Rubrique_Bodacc'],0,2)=='A8' || substr($tabAnnonces[$idann]['Rubrique_Bodacc'],0,2)=='A2') { // echo "20A8A2:$idann : ". $tabAnnonces[$idann]['data']['typeProCol'] ." : $code : $texte\n"; if (preg_match("/date/i", $libEvenement)) $tabAnnonces[$idann]['data']['dateJugement']=WDate::dateT('dMY', 'Ymd', $datEvenement); $code='26'; // Forçage du code à 26 car balise 20 parfois utilisé à la place de la 26... } else { // MMD if (preg_match("/d(.)but(.*)activit(.*)/i", $libEvenement)) $tabAnnonces[$idann]['data']['dateDebutActivite']=WDate::dateT('dMY', 'Ymd', $datEvenement); if (preg_match("/date(.*)effet(.*)/i", $libEvenement)) $tabAnnonces[$idann]['data']['dateEffet']=WDate::dateT('dMY', 'Ymd', $datEvenement); if (preg_match("/(cessation|radiation)/i", $libEvenement)) $tabAnnonces[$idann]['data']['dateCessationActivite']=WDate::dateT('dMY', 'Ymd', $datEvenement); } } elseif ($code=='22') { $strTmp=trim(strtr($texte, "{}!", ' ')); if (preg_match("/^Forme(.*):/i", $strTmp)) { if ( !isset($tabAnnonces[$idann]['data']['FJ']) || !is_array($tabAnnonces[$idann]['data']['FJ']) ) $tabAnnonces[$idann]['data']['FJ']=array(); $strTmp=trim(preg_replace("/^Forme(.*):/i", '', $strTmp)); if (substr($strTmp,-1)=='.') $strTmp=substr($strTmp,0,strlen($strTmp)-1); $tabAnnonces[$idann]['data']['FJ']=array_merge($tabAnnonces[$idann]['data']['FJ'], array($strTmp)); } } elseif ($code=='23') { $strTmp=trim(strtr($texte, "{}!).", ' ')); if (preg_match("/^Capital(.*):/i", $strTmp)) { $strTmp=trim(preg_replace("/^Capital(.*):/i", '', $strTmp)); if (substr($strTmp,-1)=='.') $strTmp=substr($strTmp,0,strlen($strTmp)-1); if (preg_match("/^([0-9\.,\?\s]*)([\D]*)/i", $strTmp, $tabTmp)) { $capital_montant=str_replace(' ','', strtr($tabTmp[1], '?,.',' ..')); $devise =strtoupper(trim(str_replace('de ', '', str_replace('d\'', '', $tabTmp[2])))); // if (preg_match("/euro/i", $devise)) $devise='EURO'; if ( preg_match("/eur/i", $devise) && !preg_match("/(wir|suisse|che)/i", $devise) ) $devise='EURO'; if ($devise<>'') { if ($capital_montant<>'' && !$iBodacc->isDeviseBodacc($devise)) { echo ("ERREUR : Annonce $idann, devise inconnue = '$devise' (montant = $capital_montant) !".EOL); echo 'SIREN ............. '.implode(';',$tabAnnonces[$idann]['data']['siren']).EOL; echo 'Raison Sociale .... '.implode(';',$tabAnnonces[$idann]['data']['raisonSociale']).EOL; echo 'RC ................ '.implode(';',$tabAnnonces[$idann]['data']['RC']).EOL; echo 'Forme Juridique ... '.implode(';',$tabAnnonces[$idann]['data']['FJ']).EOL; echo chr(7); /** @todo Gérer les devises dont le nom peut être commun à plusieurs pays : ** DINARS DIRHAM DOLLARS COURONNES FRANC CFA ROUPIE LEU **/ if ($noQuestion) { die("Devise '$devise' inconnue !"); } else { while(true){ echo 'Saisir la devise pour "'.$devise.'" (0 pour ne rien saisir) ?'.EOL; $saisie = trim(strtoupper(fgets(STDIN))); if (strlen($saisie)==3) { echo 'Insertion de la devise en base'.EOL; if (!$iBodacc->addDeviseBodacc($devise, $saisie) && mysql_errno()<>1062) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations de chargement en base impossible :".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); die(); } $capital_devise=$saisie; break; } elseif (strlen($saisie)==1 && $saisie=='0') { $capital_devise='??'; break; } } } } else $capital_devise=$iBodacc->getDeviseBodacc($devise); } else $capital_devise='?'; $tabAnnonces[$idann]['data']['Capital']=array('Montant'=>$capital_montant, 'Devise'=>$capital_devise); } } } elseif ($code=='24') { $strTmp=trim(strtr($texte, "{}.!", ' ')); if ( !isset($tabAnnonces[$idann]['data']['raisonSociale']) || !is_array($tabAnnonces[$idann]['data']['raisonSociale']) ) $tabAnnonces[$idann]['data']['raisonSociale']=array(); /** Si la ligne précédente est aussi codifiée en Raison Sociale alors nous somme toujours sur la même entreprise **/ $codePre=substr($tabBodacc[$i-1],0,2); if ($codePre=='16' || $codePre=='24' || $err1624==true) { end($tabAnnonces[$idann]['data']['raisonSociale']); $key=key($tabAnnonces[$idann]['data']['raisonSociale']); $tabAnnonces[$idann]['data']['raisonSociale'][$key].=' '.$strTmp; } else $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array('/ACHE/'.$strTmp)); } if ($code=='26') { // echo "Code=26:$idann : ". $tabAnnonces[$idann]['data']['typeProCol'] ." : $code : $texte\n"; $strTmp=trim(strtr($texte, "{}!", ' ')); // CREATIONS if ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A103' || // Personne Physique $tabAnnonces[$idann]['Rubrique_Bodacc']=='A104' || // Société $tabAnnonces[$idann]['Rubrique_Bodacc']=='A105' || // GIE $tabAnnonces[$idann]['Rubrique_Bodacc']=='A106' || // SC $tabAnnonces[$idann]['Rubrique_Bodacc']=='A107' || // Etab. Sec. : Pers. Phys. $tabAnnonces[$idann]['Rubrique_Bodacc']=='A108' || // Etab. Sec. : Société $tabAnnonces[$idann]['Rubrique_Bodacc']=='A109' || // Etab. Sec. : SC $tabAnnonces[$idann]['Rubrique_Bodacc']=='A126' || // Etab. + PP : PP $tabAnnonces[$idann]['Rubrique_Bodacc']=='A131') { // Etab. Sec. : GIE if ( !isset($tabAnnonces[$idann]['data']['typeCreation']) || !is_array($tabAnnonces[$idann]['data']['typeCreation']) ) $tabAnnonces[$idann]['data']['typeCreation']=array(); if (preg_match("/se(.*)constitu(.*)mais(.*)exploite(.*)provisoir(.*)tablissement/i", $strTmp)) // Création d'entreprise sans établissement $tabAnnonces[$idann]['data']['typeCreation']=array_merge($tabAnnonces[$idann]['data']['typeCreation'], array(4100)); elseif (preg_match("/se(.*)constitu(.*)mais(.*)exerce(.*)provisoir(.*)aucune activit/i", $strTmp)) // Création d'entreprise sans activité $tabAnnonces[$idann]['data']['typeCreation']=array_merge($tabAnnonces[$idann]['data']['typeCreation'], array(4050)); elseif (preg_match("/Cr.ation(.*)(é|e)tablissement/i", $strTmp)) // Création d'établissement $tabAnnonces[$idann]['data']['typeCreation']=array_merge($tabAnnonces[$idann]['data']['typeCreation'], array(4200)); elseif (preg_match("/se constitu/i", $strTmp)) // Création d'entreprise $tabAnnonces[$idann]['data']['typeCreation']=array_merge($tabAnnonces[$idann]['data']['typeCreation'], array(4000)); if (preg_match("/location.g.rance/i", $strTmp)) // Reprise suite à fin de location-gérance $tabAnnonces[$idann]['data']['typeCreation']=array_merge($tabAnnonces[$idann]['data']['typeCreation'], array(4350)); elseif (preg_match("/reprise d.activit(é|e)/i", $strTmp)) // Reprise d'activité $tabAnnonces[$idann]['data']['typeCreation']=array_merge($tabAnnonces[$idann]['data']['typeCreation'], array(4300)); elseif (preg_match("/r.ouverture du fonds/i", $strTmp)) // Reprise d'activité $tabAnnonces[$idann]['data']['typeCreation']=array_merge($tabAnnonces[$idann]['data']['typeCreation'], array(4300)); elseif (preg_match("/reprise(.*)suite(.*)ésolution(.*)vente/i", $strTmp)) // 'Reprise par suite de la résolution de vente $tabAnnonces[$idann]['data']['typeCreation']=array_merge($tabAnnonces[$idann]['data']['typeCreation'], array(4360)); if (preg_match("/(transformation|Ancienne forme juridique)/i", $strTmp) || preg_match("/immatriculation en(.*)précédemment/i", $strTmp) || preg_match("/modification(.*)forme juridique/i", $strTmp)) // Création suite à changement de FJ $tabAnnonces[$idann]['data']['typeCreation']=array_merge($tabAnnonces[$idann]['data']['typeCreation'], array(4400)); if (preg_match("/fonds(.*)acquis(.*)procédure collective/i", $strTmp) || preg_match("/(achat|acquisition)(.*)fonds(.*)procédure collective/i", $strTmp)) // Fonds acquis dans le cadre d'une PC $tabAnnonces[$idann]['data']['typeCreation']=array_merge($tabAnnonces[$idann]['data']['typeCreation'], array(4500)); elseif (preg_match("/(achat|acquisition)(.*)fonds/i", $strTmp) || preg_match("/fonds(.*)acquis par achat/i", $strTmp)) // Fonds acquis par achat $tabAnnonces[$idann]['data']['typeCreation']=array_merge($tabAnnonces[$idann]['data']['typeCreation'], array(4501)); elseif (preg_match("/tablissement principal acquis par achat/i", $strTmp)) $tabAnnonces[$idann]['data']['typeCreation']=array_merge($tabAnnonces[$idann]['data']['typeCreation'], array(4501)); elseif (preg_match("/apport(.*)fonds/i", $strTmp) || preg_match("/cr.ation par suite(.*)apport/i", $strTmp) || preg_match("/fonds(.*)acquis par apport/i", $strTmp)) // Fonds acquis par apport $tabAnnonces[$idann]['data']['typeCreation']=array_merge($tabAnnonces[$idann]['data']['typeCreation'], array(4502)); elseif (preg_match("/client.le(.*)acquise par achat/i", $strTmp) || preg_match("/(achat|acquisition)(.*)client.le/i", $strTmp)) // Clientèle acquise par achat $tabAnnonces[$idann]['data']['typeCreation']=array_merge($tabAnnonces[$idann]['data']['typeCreation'], array(4503)); if ( !isset($tabAnnonces[$idann]['data']['commentaires']) || !is_array($tabAnnonces[$idann]['data']['commentaires']) ) $tabAnnonces[$idann]['data']['commentaires']=array(); $tabAnnonces[$idann]['data']['commentaires']=array_merge($tabAnnonces[$idann]['data']['commentaires'], array($strTmp)); } elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A101' || // Personne Physique $tabAnnonces[$idann]['Rubrique_Bodacc']=='A102' || // Société $tabAnnonces[$idann]['Rubrique_Bodacc']=='A124' || // Personne P. non inscrite $tabAnnonces[$idann]['Rubrique_Bodacc']=='A125') { // Société non inscrite if (preg_match("/(prix|montant|indémni|indemni|évalu|evalu|éstim|estim)/i", $strTmp) && ( !isset($tabAnnonces[$idann]['data']['Vente']) || !is_array($tabAnnonces[$idann]['data']['Vente']) ) ) { if (substr($strTmp,-1)=='.') $strTmp=trim(substr($strTmp,0,strlen($strTmp)-1)); $vente_montant=0;$vente_devise=''; if (preg_match("/(.*)prix([\D]*)([0-9\.,\s]*)([\D]*)/i", $strTmp, $tabTmp) || preg_match("/(.*)montant([\D]*)([0-9\.,\s]*)([\D]*)/i", $strTmp, $tabTmp) || preg_match("/(.*)(é|e)valu([\D]*)([0-9\.,\s]*)([\D]*)/i", $strTmp, $tabTmp) || preg_match("/(.*)(é|e)stim([\D]*)([0-9\.,\s]*)([\D]*)/i", $strTmp, $tabTmp)) { $vente_montant=trim(str_replace(' ','', str_replace(',','.',$tabTmp[3]))); $vente_devise =trim($tabTmp[4]); } elseif (preg_match("/(.*)ind(.)mni([\D]*)([0-9\.,\s]*)([\D]*)/i", $strTmp, $tabTmp)) { $vente_montant=str_replace(' ','', str_replace(',','.',$tabTmp[4])); $vente_devise =trim($tabTmp[5]); } if ( preg_match("/eur/i", $vente_devise) && !preg_match("/(wir|suisse|che)/i",$vente_devise) ) $vente_devise='EURO'; $devise=strtoupper(trim(str_replace('de ', '', str_replace('d\'', '', $vente_devise)))); if ($devise<>'') { if ($vente_montant*1<>0 && !$iBodacc->isDeviseBodacc($devise)) { echo ("ERREUR : Annonce $idann, devise de la vente inconnue = '$devise' (montant = $vente_montant) !".EOL.$texte.EOL); echo 'SIREN ............. '.implode(';',$tabAnnonces[$idann]['data']['siren']).EOL; echo 'Raison Sociale .... '.implode(';',$tabAnnonces[$idann]['data']['raisonSociale']).EOL; echo 'RC ................ '.implode(';',$tabAnnonces[$idann]['data']['RC']).EOL; echo 'Forme Juridique ... '.implode(';',$tabAnnonces[$idann]['data']['FJ']).EOL; echo chr(7); /** @todo Gérer les devises dont le nom peut être commun à plusieurs pays : ** DINARS DIRHAM DOLLARS COURONNES FRANC CFA ROUPIE LEU **/ if ($noQuestion) { die("Devise '$devise' inconnue !"); } else { while(true){ echo 'Saisir la devise pour "'.$devise.'" (0 pour ne rien saisir) ?'.EOL; $saisie = trim(strtoupper(fgets(STDIN))); if (strlen($saisie)==3) { echo 'Insertion de la devise en base'.EOL; if (!$iBodacc->addDeviseBodacc($devise, $saisie) && mysql_errno()<>1062) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations de chargement en base impossible :".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); die(); } $vente_devise=$saisie; break; } elseif (strlen($saisie)==1 && $saisie=='0') { $vente_devise='??'; break; } } } } else $vente_devise=$iBodacc->getDeviseBodacc($devise); } else $vente_devise='?'; if ( !isset($tabAnnonces[$idann]['data']['typeVente']) || !is_array($tabAnnonces[$idann]['data']['typeVente']) ) $tabAnnonces[$idann]['data']['typeVente']=array(); $bienAcqui=trim(preg_replace("/ acqui(.*)/i", '', $strTmp)); if (preg_match("/(e|é)tablissement principal/i", $bienAcqui)) // Etablissement principal $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5000)); elseif (preg_match("/(e|é)tablissement secondaire/i", $bienAcqui)) // Etablissement secondaire $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5001)); elseif (preg_match("/(e|é)tablissement compl(é|e)mentaire/i", $bienAcqui)) // Etablissement complémentaire $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5002)); elseif (preg_match("/(e|é)tablissements?(.*)et(.*)(e|é)tablissement/i", $bienAcqui)) // Plusieurs établissements $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5004)); elseif (preg_match("/(e|é)tablissements/i", $bienAcqui)) // Plusieurs établissements $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5004)); elseif (preg_match("/(e|é)tablissement/i", $bienAcqui)) // Etablissement $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5003)); if (preg_match("/Partie d(e|u) fonds/i", $bienAcqui)) // Partie de fonds $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5105)); elseif (preg_match("/Fonds.{0,2}principal/i", $bienAcqui)) // Fonds principal $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5100)); elseif (preg_match("/Fonds.{0,2}secondaire/i", $bienAcqui)) // Fonds secondaire $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5101)); elseif (preg_match("/Fonds.{0,2}compl(é|e)mentaire/i", $bienAcqui)) // Fonds complémentaire $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5102)); elseif (preg_match("/Fonds.{0,2}artisanal/i", $bienAcqui)) // Fonds artisanal $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5104)); elseif (preg_match("/Fonds/i", $bienAcqui)) // Fonds $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5103)); if (preg_match("/4(e|ème|eme) cat(é|e)gorie/i", $bienAcqui) || preg_match("/cat(é|e)gorie 4/i", $bienAcqui) || preg_match("/Licence (IV|4)/i", $bienAcqui)) // Licence de débit de boissons de 4e catégorie $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5205)); if (preg_match("/Droit au bail/i", $bienAcqui)) // Droit au bail $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5203)); if (preg_match("/(Branche|Partie) (compl.te )(d.activit)/i", $bienAcqui) || preg_match("/branche.{1,10}activit/i", $bienAcqui)) // Branche ou Partie d'activité $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5200)); if (preg_match("/Portefeuille.{1,19}assurances/i", $bienAcqui)) // Portefeuille d'assurances $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5206)); elseif (preg_match("/Clientèle/i", $bienAcqui)) // Clientèle $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5201)); if (preg_match("/(e|é)l(e|é)ments incorporels/i", $bienAcqui)) // Eléments incorporels $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5204)); elseif (preg_match("/(e|é)l(e|é)ments/i", $bienAcqui)) // Divers éléments $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5202)); if (preg_match("/pr.c.demment exploit. en location.g.rance/i", $bienAcqui)) // Bien précédemment exploité en location-gérance $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5400)); if (preg_match("/Moiti(e|é) indivise/i", $bienAcqui)) // Bien en moitié indivise $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5350)); elseif (preg_match("/ indivise? /i", $bienAcqui)) // Bien en % indivise $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5351)); if (preg_match("/d.pendant de l.(é|e)tablissement principal/i", $bienAcqui) || preg_match("/d.pendant d(u|es) fonds principal/i", $bienAcqui)) // Bien dépendant de l'établissement ou fonds principal $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5300)); elseif (preg_match("/d.pendant de l.(é|e)tablissement secondaire/i", $bienAcqui) || preg_match("/d.pendant d(u|es) fonds principal/i", $bienAcqui)) // Bien dépendant de l'établissement ou fonds secondaire $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5301)); elseif (preg_match("/d.pendant de l.(é|e)tablissement compl.mentaire/i", $bienAcqui) || preg_match("/d.pendant d(u|es) fonds principal/i", $bienAcqui)) // Bien dépendant de l'établissement ou fonds complé. $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5302)); elseif (preg_match("/d.pendant de l.(é|e)tablissement/i", $bienAcqui) || preg_match("/d.pendant d(u|es) fonds/i", $bienAcqui)) // Bien dépendant de l'établissement ou fonds $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5303)); $tabAnnonces[$idann]['data']['Vente']=array('Montant'=>$vente_montant, 'Devise'=>$vente_devise, 'Perimetre'=>trim($tabTmp[0]), 'bienAcqui'=>$bienAcqui); } } elseif (substr($tabAnnonces[$idann]['Rubrique_Bodacc'],0,2)=='A8' || substr($tabAnnonces[$idann]['Rubrique_Bodacc'],0,2)=='A2') { if ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A215' && !isset($tabAnnonces[$idann]['data']['typeProCol'])) { // echo "A215:$idann : ". $tabAnnonces[$idann]['data']['typeProCol'] ." : $code : $texte\n"; if (preg_match("/Jugement.{1,3}cl.tur(a|e).{1,13}extinction.{1,13}passif/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1502; // Jugement clôturant la procédure pour extinction du passif (LB !!!) elseif (preg_match("/Jugement.{1,3}cl.tur(a|e).{1,13}insuffisance.{1,13}actif/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1503; // Jugement clôturant la procédure pour insuffisance actif (LB !!!) elseif (preg_match("/Jugement nommant (.*)qualité de syndic(.*)en remplacement de/i", $texte) || preg_match("/Jugement mettant fin.{1,7}fonction.{1,7}syndic(.*)d.signant(.*)remplacement/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1406; // Changement de SYNDIC /** @todo ** - Récupérer les coordonnées DU SYNDIC **/ } elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A801' && !isset($tabAnnonces[$idann]['data']['typeProCol'])) { if (preg_match("/ouverture(.*)sauvegarde/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1100; // Ouverture sauvegarde elseif (preg_match("/conver(.)i(.*)sauvegarde(.*)redressement/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1201; // Conversion sauvegarde en RJ elseif (preg_match("/r(.)ouverture(.*)liquidation/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1304; // Réouverture LJ elseif (preg_match("/r(.)ouverture/i", $texte) && preg_match("/liquidation/i", $iBodacc->convertAccents(substr($tabBodacc[$i+1],2,strlen($tabBodacc[$i+1])-2)))) $tabAnnonces[$idann]['data']['typeProCol']=1304; // Réouverture RJ elseif (preg_match("/redressement(.*)judiciaire/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1200; // RJ } elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A802' && !isset($tabAnnonces[$idann]['data']['typeProCol'])) { if (preg_match("/liquidation(.*)judiciaire(.*)simplifi/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1302; // Ouv LJS elseif (preg_match("/liquidation(.*)judiciaire(.*)r(.)solution(.*)plan/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1303; // Ouv LJS sur résolution de plan elseif (preg_match("/conver(.)i(.*)liquidation(.*)judiciaire(.*)liquidation(.*)judiciaire(.*)simplifi(.)e/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1309; // LJ en LJS elseif (preg_match("/liquidation(.*)judiciaire/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1301; // Ouverture LJ } elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A804' && !isset($tabAnnonces[$idann]['data']['typeProCol'])) { if (preg_match("/simplifi(.)e/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1306; // LJS elseif (preg_match("/liquidation.{1,9}judiciaire.{0,8}(cour|pendant| en).{1,9}sauvegarde/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1307; // Conversion sauvg en LJ // if (preg_match("/liquidation(.*)judiciaire(.*)simplifi/i", $texte)) // $tabAnnonces[$idann]['data']['typeProCol']=1306; // LJS elseif (preg_match("/liquidation(.*)judiciaire(.*)(conversion|résolution|resolution|redressement|observation|cession)/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1300; // Conversion RJ en LJ elseif (preg_match("/liquidation(.*)judiciaire/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1305; // LJ } elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A806') { $tabAnnonces[$idann]['data']['typeProCol']=1413; /** Arrêt plan continuation @todo Récupérer la durée du plan si présente **/ } elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A807') { $tabAnnonces[$idann]['data']['typeProCol']=1409; /** Modification plan continuation @todo Récupérer la modification exacte **/ } elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A808' && !isset($tabAnnonces[$idann]['data']['typeProCol'])) { /** @todo récupérer "au profit de" ou "en faveur de" **/ if (preg_match("/arr(.)tant(.*)plan(.*)sauvegarde/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1101; // Jug. arrêtant plan sauvegarde elseif (preg_match("/cession(.*)partiel/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1412; // Arrêt plan cession partiel //elseif (preg_match("/cession/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1411; } elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A809') { /** @todo récupérer la modification **/ $tabAnnonces[$idann]['data']['typeProCol']=1408; // Modif plan de cession } elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A810') { /** @todo récupérer la modification **/ $tabAnnonces[$idann]['data']['typeProCol']=1502; // Clôture de la procédure pour extinction du passif } elseif (($tabAnnonces[$idann]['Rubrique_Bodacc']=='A813' || // Faillite personnelle $tabAnnonces[$idann]['Rubrique_Bodacc']=='A814') && // Interdiction de gérer !isset($tabAnnonces[$idann]['data']['dateFinObservation'])) { /** @todo récupérer les noms et prénoms des personnes ! 00 : Animateur de la S.A.R.L. WILCOFRET, RCS Paris B 400 933 008, RC 95-B 6536, 9 rue de Bellefond, 75009 Paris{. } **/ if ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A813') $tabAnnonces[$idann]['data']['typeProCol']=1600; // Faillite personnelle else $tabAnnonces[$idann]['data']['typeProCol']=1601; // Interdiction de gérer if (preg_match("/(.*)pour une dur.e? d(.*)( an| mois)/i", $texte, $matches)) { $perimetre=preg_replace("/^et /i",'',trim(strtr($matches[1], "{}!", ' '))); $dureeL=preg_replace("/^(e|') /",'',trim($matches[2])); $periode=trim($matches[3]); if ($tabAnnonces[$idann]['data']['dateJugement']*1>0) $dateJuge=$tabAnnonces[$idann]['data']['dateJugement']; else $dateJuge=$tabAnnonces[$idann]['Bodacc_Date_Parution']; $dureeC=WDate::period2Days($dateJuge, $dureeL.' '.$periode); echo "Interdiction ".$tabAnnonces[$idann]['data']['typeProCol']." jusqu'au $dureeC (soit pendant $dureeL $periode). Périmètre = '$perimetre'\n"; $tabAnnonces[$idann]['data']['perimetre']=$perimetre; $tabAnnonces[$idann]['data']['dateFinObservation']=$dureeC; $tabAnnonces[$idann]['data']['FinObservationBodacc']="$dureeL $periode"; //print_r($tabAnnonces[$idann]); //die($texte); } } elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A819' && !isset($tabAnnonces[$idann]['data']['typeProCol'])) { if (preg_match("/ r(é|e)tractant /i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1506;// Infirmation Jugement A AMELIORER elseif (preg_match("/pronon(c|ç)ant.{1,7}r(é|e)habilitation/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1602; // Jugement de réhabilitation';//RECUPERER LE NOM du réhabilité { }m. Francis Meyer{. } elseif (preg_match("/(Dépôt|depot|dépot|depôt).{1,9}projet.{1,9}r(é|e)partition/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1208; // Avis de dépôt du projet de répartition elseif (preg_match("/conver.i.{2,9}sauvegarde.{1,19}redressement/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1201; // Conversion sauvegarde en RJ elseif (preg_match("/(adoptant|arr.tant|homologuant|admission)(.){1,9}plan(.){1,9}sauvegarde/i", $texte) || preg_match("/Jugement de plan de sauvegarde/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1101; // Jugement arrêtant plan de sauvegarde elseif (preg_match("/mettant(.){1,9}fin(.){1,9}plan(.){1,9}sauvegarde/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1508; // Jugement d'extinction du plan de sauvegarde elseif (preg_match("/liquidation(.*)judiciaire(.*)simplifi(.)/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1306; // LJ simplifiée elseif (preg_match("/conver.i(.){2,9}sauvegarde(.){1,9}liquidation(.){1,9}judiciaire/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1307; // Conversion sauvegarde en LJ elseif (preg_match("/cl.ture(.*)sauvegarde(.*)(non|absence)(.*)projet(.){1,7}plan/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1504; // Clôture sauvegarde pour absence de projet de plan elseif (preg_match("/proroge(.*)commissaire(.*)x.cution.{1,9}plan/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1404; // Prolongation mission du commissaire à l'exécution du plan elseif (preg_match("/(rempla|nommant)(.*)commissaire(.*)x(é|e)cution.{1,9}plan/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1403; // Remplacement du commissaire à l'exécution du plan elseif (preg_match("/(clôtur|clotur)(.*)apr.s plan de cession/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1501; // Cloture de la procédure après plan de cession / Cession Totale elseif (preg_match("/renouvel(.*)p.riode(.){1,9}observation(.*) (de |d')(.*)( an| mois)/i", $texte, $matches) || preg_match("/prononçant(.*)poursuite(.){1,9}activité(.*) (de |d')(.*)( an| mois)/i", $texte, $matches)) { /** @todo pour une durée de six mois à compter du 7 mars 2007 **/ $tabAnnonces[$idann]['data']['typeProCol']=1202; // Renouvellement de la période d'observation $dureeL=trim($matches[5]); $periode=trim($matches[6]); if ($tabAnnonces[$idann]['data']['dateJugement']*1>0) $dateJuge=$tabAnnonces[$idann]['data']['dateJugement']; else $dateJuge=$tabAnnonces[$idann]['Bodacc_Date_Parution']; $dureeC=Wdate::period2Days($dateJuge, $dureeL.' '.$periode); $tabAnnonces[$idann]['data']['perimetre']=$perimetre; $tabAnnonces[$idann]['data']['dateFinObservation']=$dureeC; $tabAnnonces[$idann]['data']['FinObservationBodacc']="$dureeL $periode"; // echo "A819:$idann:". $tabAnnonces[$idann]['data']['typeProCol'] .":$code:$texte\n"; // echo "1202:Période d'observation jusqu'au $dureeC (soit pendant $dureeL $periode).\n"; } elseif (preg_match("/nommant(.*)administrateur/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1400; // Nommination d'un administrateur judiciaire elseif (preg_match("/nommant(.*)mandataire/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1401; // Nommination d'un mandataire judiciaire elseif (preg_match("/nommant(.*)repr(.)sentant(.*)cr(.)ancier/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1402; // Nommination d'un représentant des créanciers elseif (preg_match("/nommant(.*)juge(.*)commissaire/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1405; // Nommination d'un juge commissaire elseif (preg_match("/(admission|adopt)(.){1,17}plan(.){1,9}redressement(.){1,19}dur.e? (d|à|a)(.*)( an| mois)/i", $texte, $matches)) { $tabAnnonces[$idann]['data']['typeProCol']=1414; // Arrêt du plan de redressement $dureeL=preg_replace("/^(e|') /",'',trim($matches[6])); $periode=trim($matches[7]); if ($tabAnnonces[$idann]['data']['dateJugement']*1>0) $dateJuge=$tabAnnonces[$idann]['data']['dateJugement']; else $dateJuge=$tabAnnonces[$idann]['Bodacc_Date_Parution']; $dureeC=Wdate::period2Days($dateJuge, $dureeL.' '.$periode); $tabAnnonces[$idann]['data']['perimetre']=$perimetre; $tabAnnonces[$idann]['data']['dateFinObservation']=$dureeC; $tabAnnonces[$idann]['data']['FinObservationBodacc']="$dureeL $periode"; // echo "A819:$idann:". $tabAnnonces[$idann]['data']['typeProCol'] .":$code:$texte\n"; // echo "1414:Plan de redressement jusqu'au $dureeC (soit pendant $dureeL $periode).\n"; } elseif (preg_match("/(adoptant|arr.tant|homologuant|admission)(.){1,9}plan(.){1,9}redressement/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1414; // Arrêt du plan de redressement elseif (preg_match("/extinction(.){1,9}plan(.){1,9}redressement/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1509; // Extinction du plan de redressement elseif (preg_match("/(clôture|cloture|clôturant|cloturant)/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1500; // Clôture de la procédure elseif (preg_match("/(arr|ado).tant(.){1,9}plan(.){1,9}cession/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1411; // Arrêt plan cession elseif (preg_match("/(proroge|renouvel)(.*)plan(.){1,9}cession/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1415; // Prolongement du plan cession elseif (preg_match("/con(sta|tas)tant (.*) ex(é|e)cut(ion|é) (.){1,29} plan/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1416; // Jugement constatant bonne execution du plan elseif (preg_match("/rejet(ant)(.){1,9}plan(.){1,9}continuation/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1510; // Jugement rejetant le plan de continuation // elseif (preg_match("/ plan /i", $texte)) echo "PlanSeul:$texte\n"; //echo "A819:$idann:". $tabAnnonces[$idann]['data']['typeProCol'] .":$code:$texte$$\n"; } /** * @todo * - A priori, on ne récupère pas bien toutes les conversions * - RJ, LJ ou PS par extension de la société blablabla * - Jugement d'ouverture de liquidation judiciaire; avec poursuite d'activité autorisée jusqu'au 28 février 2007; * - Jugement d'ouverture d'une procédure de redressement judiciaire par extension de celle prononcée à l'égard de la STE ELEFA S.A., RCS Angers 330 094 830, de la STE DOMAINE DES AJONCS S.A.R.L., RCS Angers 413 683 432 et de la STE CROQUENDINE S.A., RCS Angers 399 683 432, * suite à confusion des patrimoines ou à fictivité de la personne morale . * - Jugement autorisant la poursuite d'activité jusqu'au 24 mars 2007 * - Jugement constatant la fin des difficultés **/ $strTmp=trim(strtr($texte, "{}.!", ' ')); if (preg_match("/^Num.ro(.*):/i", $strTmp)) $tabAnnonces[$idann]['data']['Numero']=trim(preg_replace("/^Num.ro(.*):/i",'',$strTmp)); if (preg_match("/radiation/i", $strTmp)) { $tabTmp=explode('}', $texte); $datEvenement=str_replace(' ','',trim(strtr($tabTmp[1], "{}.!", ' '))); $tabAnnonces[$idann]['data']['dateCessationActivite']=WDate::dateT('dMY', 'Ymd', $datEvenement); } if (preg_match("/Juge commissaire/i", $strTmp)) { //Juge commissaire suppléant if ( !isset($tabAnnonces[$idann]['data']['jugeCommissaire']) || !is_array($tabAnnonces[$idann]['data']['jugeCommissaire']) ) $tabAnnonces[$idann]['data']['jugeCommissaire']=array(); $tabAnnonces[$idann]['data']['jugeCommissaire']=array_merge($tabAnnonces[$idann]['data']['jugeCommissaire'], array($strTmp)); } if (preg_match("/Repr(.)sentant(.*)cr(.)ancier/i", $strTmp) && !isset($tabAnnonces[$idann]['data']['ReprCreanciers'])) { $tabAnnonces[$idann]['data']['ReprCreanciers']=''; for($j=1; $j<10; $j++) { $balise=''.substr($tabBodacc[$i+$j],0,2); if ($balise=='00') { $txt=$iBodacc->convertAccents(substr($tabBodacc[$i+$j],2,strlen($tabBodacc[$i+$j])-2)); $txt=trim(strtr($txt, "{}!", ' ')); $tabAnnonces[$idann]['data']['ReprCreanciers'].=EOL.$txt; if (preg_match("/^[0-9]{5,5}$/", str_replace(' ','',$txt))) { $tabAnnonces[$idann]['data']['ReprCreanciers'].=EOL.trim($iBodacc->convertAccents(preg_replace("/\{\.(.*)/i", '', substr($tabBodacc[$i+$j+1],2,strlen($tabBodacc[$i+$j+1])-2)))); break; } if ($j>6 && strpos($txt, '.')>O) break; } } $tabAnnonces[$idann]['data']['ReprCreanciers']=trim($tabAnnonces[$idann]['data']['ReprCreanciers']); } if (preg_match("/d(.)claration(.*)cr(.)ance(.*)d(.)lai/i", $strTmp)) { $tabTmp=explode('}', $strTmpAcco); if (isset($tabTmp[1])) $tabAnnonces[$idann]['data']['delaiDepotCreances']=trim(strtr($tabTmp[1], "{}:!", ' ')); } if (preg_match("/Administrateur(.*)judiciaire/i", $strTmp) && !isset($tabAnnonces[$idann]['data']['administrateur'])) { $tabAnnonces[$idann]['data']['administrateur']=''; for($j=1; $j<10; $j++) { $balise=''.substr($tabBodacc[$i+$j],0,2); if ($balise=='00') { $txt=$iBodacc->convertAccents(substr($tabBodacc[$i+$j],2,strlen($tabBodacc[$i+$j])-2)); $txt=trim(strtr($txt, "{}!", ' ')); $tabAnnonces[$idann]['data']['administrateur'].=EOL.$txt; if (preg_match("/^[0-9]{5,5}$/", str_replace(' ','',$txt))) { $tabAnnonces[$idann]['data']['administrateur'].=EOL.trim($iBodacc->convertAccents(preg_replace("/\{\.(.*)/i", '', substr($tabBodacc[$i+$j+1],2,strlen($tabBodacc[$i+$j+1])-2)))); break; } if ($j>6 && strpos($txt, '.')>O) break; } } $tabAnnonces[$idann]['data']['administrateur']=trim($tabAnnonces[$idann]['data']['administrateur']); } if (preg_match("/Mandataire judiciaire :/i", $strTmp) && !isset($tabAnnonces[$idann]['data']['Mandataire'])) { $tabAnnonces[$idann]['data']['Mandataire']=trim(str_replace(':', '', preg_replace("/(.*)Mandataire judiciaire/i", '', $strTmp))); for($j=1; $j<10; $j++) { $balise=''.substr($tabBodacc[$i+$j],0,2); if ($balise=='00') { $txt=$iBodacc->convertAccents(substr($tabBodacc[$i+$j],2,strlen($tabBodacc[$i+$j])-2)); $txt=trim(strtr($txt, "{}!", ' ')); $tabAnnonces[$idann]['data']['Mandataire'].=EOL.$txt; if (preg_match("/^[0-9]{5,5}$/", str_replace(' ','',$txt))) { $tabAnnonces[$idann]['data']['Mandataire'].=EOL.trim($iBodacc->convertAccents(preg_replace("/\{\.(.*)/i", '', substr($tabBodacc[$i+$j+1],2,strlen($tabBodacc[$i+$j+1])-2)))); break; } if ($j>6 && strpos($txt, '.')>0) break; } } $tabAnnonces[$idann]['data']['Mandataire']=trim($tabAnnonces[$idann]['data']['Mandataire']); } if (preg_match("/p(.)riode(.*)observation/i", $strTmp)) { $periode=preg_replace("/(.*)p(.)riode(.*)observation/i", '', $strTmp); $periode=str_replace('durée de', '/', str_replace('durée d\'', '/', str_replace('le', '/', str_replace('au', '/', str_replace('à', '/', $periode))))); $tabTmp=explode('/', $periode); if (isset($tabTmp[1])) { $periode=trim($tabTmp[1]); if (strpos($tabTmp[1], ' mois')>0 || strpos($tabTmp[1], ' an') >0 || strpos($tabTmp[1], ' jour')>0 ) { $tabTmp=explode(' ', $periode); $periode=$tabTmp[0].' '.$tabTmp[1]; $tabAnnonces[$idann]['data']['dateFinObservation']=Wdate::period2Days($dateBodacc, $periode); $tabAnnonces[$idann]['data']['FinObservationBodacc']=$periode; } else { $tabTmp=explode(' ', $periode); $periode=$tabTmp[0].$tabTmp[1].$tabTmp[2]; $tabAnnonces[$idann]['data']['dateFinObservation']=WDate::dateT('dMY', 'Ymd', $periode); $tabAnnonces[$idann]['data']['FinObservationBodacc']=$periode; } } } if (preg_match("/fixant(.*)cl.ture(.*)proc.dure/i", $strTmp)) { $trouve=false; if (preg_match("/avec poursuite.{1,7}activité(.*)/i", $strTmp, $matches)) { //echo "Poursuite activité=$strTmp\n"; $poursuiteActivite=$matches[1];// on en fait rien pour l'instant !!! $strTmp2=preg_replace("/activité(.*)/i",'', $strTmp); } else $strTmp2=$strTmp; if (preg_match("/fixant(.*)cl.ture(.*)proc.dure(.*)( an| ans| mois)/i", $strTmp2, $matches)) { //print_r($matches);die(); $dureeL=preg_replace("/^à /",'',trim($matches[3])); $periode=trim($matches[4]); if ($tabAnnonces[$idann]['data']['dateJugement']*1>0) $dateJuge=$tabAnnonces[$idann]['data']['dateJugement']; else $dateJuge=$tabAnnonces[$idann]['Bodacc_Date_Parution']; $dureeC=WDate::period2Days($dateJuge, $dureeL.' '.$periode); //echo "Fin de la LJ : $dureeC (soit pendant $dureeL $periode, jugement le $dateJuge).\n"; $tabAnnonces[$idann]['data']['dateFinObservation']=$dureeC; $tabAnnonces[$idann]['data']['FinObservationBodacc']="$dureeL $periode"; $trouve=true; } if (preg_match("/fixant au(.*)délai(.*)clôture(.*)procédure/i", $strTmp2, $matches)) { $dateClotureTxt=str_replace(' ', '', preg_replace('/le$/','',trim($matches[1]))); $dateCloture=WDate::dateT('dMY', 'Ymd', $dateClotureTxt); //echo "Fin de la LJ : $dateCloture ($dateClotureTxt, jugement le $dateJuge).\n"; $tabAnnonces[$idann]['data']['dateFinObservation']=$dateCloture; $tabAnnonces[$idann]['data']['FinObservationBodacc']=$dateClotureTxt; $trouve=true; } if (!$trouve) { echo date('Y/m/d - H:i:s') ." - Attention : Durée de la procédure de LJ non trouvée pour le siren '". $tabAnnonces[$idann]['siren'][0] ."'!".EOL; } } if (preg_match("/Date(.*)insolvabilité(.*)notoire/i", $strTmp)) { $tabTmp=explode(':', $strTmp); if (isset($tabTmp[1])) { $datEvenement=preg_replace("/[0-9]{4,4}(.*)/i", '',trim($tabTmp[1])); $datEvenement=str_replace(' ', '', $datEvenement); $tabAnnonces[$idann]['data']['dateCessationPaiement']=WDate::dateT('dMY', 'Ymd', $datEvenement); } else $tabAnnonces[$idann]['data']['dateCessationPaiement']=NULL;//{ } : 1er janvier 2007 } // echo "FCode26:$idann : ". $tabAnnonces[$idann]['data']['typeProCol'] ." : $code : $texte\n"; if ( !isset($tabAnnonces[$idann]['data']['commentaires']) || !is_array($tabAnnonces[$idann]['data']['commentaires']) ) $tabAnnonces[$idann]['data']['commentaires']=array(); $tabAnnonces[$idann]['data']['commentaires']=array_merge($tabAnnonces[$idann]['data']['commentaires'], array($strTmp)); } elseif ($bodaccType=='B') { if ( !isset($tabAnnonces[$idann]['data']['typeMMD']) || !is_array($tabAnnonces[$idann]['data']['typeMMD']) ) $tabAnnonces[$idann]['data']['typeMMD']=array(); if (preg_match("/mise(.*)sommeil(.*)soci(é|e)t(é|e)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2206)); // Mise en sommeil de la société elseif (preg_match("/(prise|mise)(.*)activit(é|e)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2316)); // Mise en activité de la société if (preg_match("/cessation .{1,15}activit(e|é).{1,10} dissolution .{1,10}anticip(é|e)e/i", $texte) || preg_match("/dissolution .{1,10}anticip(é|e)e.{1,10} cessation .{1,15}activit(e|é)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2204)); // Cessation avec Dissolution if (preg_match("/Dissolution .{1,20}soci(é|e)t(é|e)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2203)); // Dissolution de la société elseif (preg_match("/Dissolution /i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2202)); // Dissolution if (preg_match("/cessation .{1,15}activit(é|e).{1,15}(provisoire|temporaire)/i", $texte) || preg_match("/arr(e|ê|è|é)t.{1,15}activit(é|e).{1,15}(provisoire|temporaire)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2201)); // Cessation d'activité temporaire elseif (preg_match("/arr(e|ê|è|é)t.{1,15} (provisoire|temporaire) .{1,15}activit/i", $texte) || preg_match("/cessation .{1,15} (provisoire|temporaire) .{1,15}activit/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2201)); // Cessation d'activité temporaire elseif (preg_match("/(cessation|sans)(.*)activit(é|e)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2200)); // Cessation d'activité if (preg_match("/(modification|adjonction|adoption|prise|ancienne|changement|suppres|ajout){1,15}d(é|e)nomination/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2305)); // Modification de la dénomination if (preg_match("/(modification|adjonction|adoption|prise|ancien|changement|suppres|ajout){1,15} nom {1,15}commercia/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2309)); // Modification du nom commercial elseif (preg_match("/(modification|adjonction|adoption|prise|ancien|changement|suppres|ajout){1,15} nom /i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2308)); // Modification du nom if (preg_match("/(modification|adjonction|adoption|prise|ancien|changement|suppres|ajout){1,15}sigle/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2317)); // Modif du sigle if (preg_match("/(modification|adjonction|adoption|prise|ancienne|changement|suppres|ajout){1,15}enseigne/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2302)); // Modif Enseigne if (preg_match("/(modification|adjonction|adoption|prise|ancien|changement|suppres|ajout){1,15}pseudonyme/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2310)); // Modif Pseudo if (preg_match("/(modification|adjonction|ancienne|changement|ajout){1,15}administration/i", $texte) && !in_array(2315, $tabAnnonces[$idann]['data']['typeMMD'])) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2315)); // MODIF ADMINISTRATION elseif (preg_match("/nomination/i", $texte) && !in_array(2315, $tabAnnonces[$idann]['data']['typeMMD'])) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2315)); // MODIF ADMINISTRATION if (preg_match("/modification(.*)capital(.*)augmentation/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2102)); // Augmentation de capital elseif (preg_match("/modification(.*)capital(.*)diminution/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2100)); // diminution de capital elseif (preg_match("/(modification|ancien|changement)(.*)capital/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2101)); // Modification de capital if (preg_match("/(modification|adjonction|ancienne|changement|suppres)(.*)activit(é|e)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2313)); // Modification de l'activité if (preg_match("/(modification|ancienne|changement|r.gularisation|report)(.*)(date|prise)(.*)activit/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2304)); // Modification date début d'activité if (preg_match("/date.{1,20}exercice/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2303)); // Modification date clôture exercice if (preg_match("/(durée|duree){1,30}(soci.t.|personne morale)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2306)); // Modification de la durée de la société if (preg_match("/(modification|ancienne|changement)(.*)forme(.*)juridique/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2307)); // Modification FJ elseif (preg_match("/transformation(.*)en/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2307)); // Modification FJ if (preg_match("/(.*) fusion(.*)/i", $texte, $tabTmp)) { if (!preg_match("/Ancienne.{1,3}activité :/i", $tabTmp[1])) { // TRAITEMENT DES FUSIONS $sirenFusionPre=$codeEvenAbs=$codeEven=''; if (preg_match_all("/[0-9]{9,9}|[0-9]{3,3} [0-9]{3,3} [0-9]{3,3}|[0-9]{3,3}\.[0-9]{3,3}\.[0-9]{3,3}|[0-9]{3,3}-[0-9]{3,3}-[0-9]{3,3}/",$tabTmp[0],$matches)){ foreach ($matches[0] as $m => $sirenFusion) { //echo "Siren trouvé = $sirenFusion "; $raisonSocialeAbs=$adresseAbs=''; if ($iInsee->valideSiren(str_replace(' ','', $sirenFusion))) { //echo "... valide !\n"; if (preg_match('/ ayant participée? à la fusion(.*)'.$sirenFusion.'(.*)/i',$tabTmp[0],$matches2) || //preg_match('/ ayant participée à la fusion(.*)'.$sirenFusion.'(.*)/i',$tabTmp[0],$matches2) || preg_match("/ ayant participé à l'opération(.*)".$sirenFusion.'(.*)/i',$tabTmp[0],$matches2) || preg_match("/ ayant participé à l'opération de fusion(.*)".$sirenFusion.'(.*)/i',$tabTmp[0],$matches2) || preg_match("/Fusion.absorption de(.*)".$sirenFusion."(.*)/i",$tabTmp[0],$matches2) || preg_match("/Fusion.absoption de(.*)".$sirenFusion."(.*)/i",$tabTmp[0],$matches2) || preg_match('/Fusion de(.*)'.$sirenFusion.'(.*)/i',$tabTmp[0],$matches2) || preg_match('/Fusion avec(.*)'.$sirenFusion.'(.*)/i',$tabTmp[0],$matches2) || preg_match("/suite à l'apport partiel d'actif de(.*)".$sirenFusion.'(.*)/i',$tabTmp[0],$matches2) || preg_match('/fusion par voie d.absorption des(.*)'.$sirenFusion.'(.*)/i',$tabTmp[0],$matches2) || preg_match('/transmission du patrimoine de la(.*)'.$sirenFusion.'(.*)/i',$tabTmp[0],$matches2) || preg_match('/des évaluations et des rémunérations qui en sont faites de la(.*)'.$sirenFusion.'(.*)/i',$tabTmp[0],$matches2)) { if ($sirenFusionPre<>'') $raisonSocialeAbs=''.trim(preg_replace('/(.*)'.$sirenFusionPre.'/i','', $matches2[1])); else $raisonSocialeAbs=''.trim($matches2[1]); $raisonSocialeAbs=preg_replace('/ RCS (.*)/i','', $raisonSocialeAbs); $raisonSocialeAbs=trim(strtr($raisonSocialeAbs,',:;',' ')); $raisonSocialeAbs=trim(preg_replace('/^et de la/','', $raisonSocialeAbs)); $raisonSocialeAbs=trim(preg_replace('/^(de la|avec la)/','', $raisonSocialeAbs)); $raisonSocialeAbs=trim(preg_replace('/^de fusion/','', $raisonSocialeAbs)); $raisonSocialeAbs=trim(preg_replace('/^société(s)/','', $raisonSocialeAbs)); $raisonSocialeAbs=trim(preg_replace("/^(la|et|l'|s)/",'', $raisonSocialeAbs)); if (preg_match("/(.*)([0-9]{5,5})(.*)/", $matches2[2], $tabTmpAdr)) { $adresseAbs=trim($tabTmpAdr[1]); // => , boulevard Pierre-Lefaucheux, if (substr($adresseAbs,0,1)==',') $adresseAbs=trim(preg_replace("/(^,|,$)/",'', $adresseAbs)); $adresseAbsCP=$tabTmpAdr[2]; // => 72000 $adresseAbsVille=trim(strtr($tabTmpAdr[3], '{.!}',' ')); } else $adresseAbs=$adresseAbsCP=$adresseAbsVille=''; $codeEvenAbs=2720; // Fusion/Absorption (entitée absorbée) $codeEven=2700; // Fusion/Absorption (entitée absorbante) } elseif (preg_match('/projet (de traité )de fusion/i',$tabTmp[0])) { $codeEvenAbs=2730; // Projet de fusion (entitée absorbée) $codeEven=2710; // Projet de fusion (entitée absorbante) } else { // Phrase de fusion absorption permettant de positionner la RS non trouvée $codeEven=2700; // Projet de fusion (entitée absorbante) $codeEvenAbs=2721; // Fusion/Absorption (entitée absorbée non identifié) } if ( !isset($tabAnnonces[$idann]['data']['fusion']) || !is_array($tabAnnonces[$idann]['data']['fusion']) ) $tabAnnonces[$idann]['data']['fusion']=array(); $tabAnnonces[$idann]['data']['fusion']=array_merge( $tabAnnonces[$idann]['data']['fusion'] , array( array( 'codeEvenAbs' => $codeEvenAbs, 'sirenAbs' => str_replace(' ','', $sirenFusion), 'raisonAbs' => $raisonSocialeAbs, 'adresseAbs' => $adresseAbs, 'adresseAbsCP' => $adresseAbsCP, 'adresseAbsVille'=>$adresseAbsVille))); } elseif (!preg_match('/'.$sirenFusion.'.{1,4}euro/i', $tabTmp[0])) { // on ignore $sirenFusion qui est un montant ! //echo "Dans ce cas, il faudra valider à la mano car mot / fusion/ trouvé avec SIREN invalide !!!\n"; $codeEven=2702; // Fusion/Absorption (entitée absorbante ; entité absorbée mal SIRENEE) } $sirenFusionPre=$sirenFusion; } } else { /** Mot " fusion" trouvé mais sans SIREN !!! **/ if (preg_match('/(fonds|tablissement principal) acquis par fusion\./i', $texte)) $codeEven=2701; // Fusion/Absorption (entitée absorbante) else $codeEven=2703; // Fusion/Absorption (entitée absorbante ; entité absorbée non SIRENEE) //echo "Dans ce cas, il faudra valider à la mano car mot / fusion/ trouvé mais sans RCS valide ou invalide !!!\n"; } $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array($codeEven)); // Code Evenement précis de l'absorbant //$tabAnnonces[$idann]['data'] //echo "$texte\n"; //print_r($matches); //$saisie = fgets(STDIN); } } if (preg_match("/contrat(.*)mariage/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2405)); // Modif régime matrimonial: contrat de mariage elseif (preg_match("/mariage/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2403)); // Modif régime matrimonial: mariage elseif (preg_match("/divorc/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2402)); // Modif régime matrimonial: divorce elseif (preg_match("/(veuf|veuve)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2404)); // Modif régime matrimonial: veuvage elseif (preg_match("/matrimonial/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2401)); // Modif régime matrimonial if (preg_match("/décédé|décès|decede|deces/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2600)); // Décès if (preg_match("/poursuite(.*)activit(é|e|è)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2314)); // Poursuite de l'activité if (preg_match("/d(é|e|è)cision(.*)actionnaire(.*)unique/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2610)); // Décision de l'unique actionnaire if (preg_match("/modification(.*)exploitation/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2311)); // Modification sur l'exploitation if (preg_match("/projet(.*)transf(é|e|è)r(.*)soci.t/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2903)); // Projet de transfert de la société elseif (preg_match("/d(é|e|è)cision(.*)transf(é|e|è)r(.*)si(é|e|è)ge(.*)social(.*)tranger/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2904)); // Transfert du siège à l'étranger elseif (preg_match("/adresse(.*)si(é|e|è)ge/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2301)); // Modification de l'adresse du siège elseif (preg_match("/(modification|nouvelle|ancienne|changement)(.*)adresse/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2300)); // Changement d'adresse elseif (preg_match("/(transfer|transfèr|changement).{1,7}si(é|e|è)ge/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2901)); // Transfert de siège if (preg_match("/transfert(.*)du fonds/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2902)); // Transfert du fond elseif (preg_match("/fonds(.*)transf(é|e|è)r(é|e|è)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2902)); // Transfert du fond elseif (preg_match("/transfert(.*)(é|e)tablissement/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2900)); // Transfert d'établissement if (preg_match("/fermeture(.*)du(.*)fonds/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2205)); // Fermeture du fonds if (preg_match("/(création|creation)(.*)d(.*)fonds/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2950)); // Création de fonds if (preg_match("/vente(.*)du(.*)fonds/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2209)); // Vente du fonds elseif (preg_match("/(fin|arrêt|arret)(.*)exploitation(.*)du(.*)fonds(.*)suite(.*)vente/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2209)); // Vente du fonds elseif (preg_match("/reprise(.*)du(.*)fonds(.*)par(.*)conjoint/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2406)); // Reprise du fonds par le conjoint if (preg_match("/(mention|déclaration|declaration|changement|entrée|mise à jour)(.*)d(.*)associ/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2350)); // Déclaration des associés if (preg_match("/(é|e)tablissement(.*)donn(é|e)(.*)en(.*)location(.*)g.rance/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2891)); // LG relative à un établissement elseif (preg_match("/fonds(.*)donn(é|e)(.*)en(.*)location(.*)g.rance/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2892)); // LG relative à un fond elseif (preg_match("/(reçu|recu|pris)(.*)en(.*)location(.*)g.rance(.*)branche/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2890)); // LG relative à une branche elseif (preg_match("/branche(.*)activit(é|e|è)(.*)donn(é|e)(.*)en(.*)location(.*)g.rance/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2890)); // LG relative à une branche elseif (preg_match("/(fin|résiliation)(.*)location(.*)g.rance/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2885)); // Fin de location gérance elseif (preg_match("/pr(é|e|è)c(é|e|è)demment(.*)exploité(.*)location(.*)g.rance/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2885)); // Fin de location gérance elseif (preg_match("/renouvellement(.*)location(.*)g.rance/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2880)); // Renouvellement de location gérance elseif (preg_match("/(modification|changement)(.*)location(.*)g.rance/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2881)); // Changement de location gérance if (preg_match("/suppression(.*)branche(.*)activit(é|e|è)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2207)); // Suppression branche activité if (preg_match("/changement(.*)de(.*)nationalit/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2650)); // Changement de nationalité if (preg_match("/(déclaration|mention)(.*)conjoint(.*)collaborateur/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2407)); // Mention du conjoint collaborateur elseif (preg_match("/radiation(.*)conjoint(.*)collaborateur/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2408)); // Radiation du conjoint collaborateur if (preg_match("/transmission(.*)universelle(.*)patrimoine/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2620)); // Transmission universelle du patrimoine if (preg_match("/donation/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2630)); // Donation if (preg_match("/suppression.{1,7}tablissement(.*)principal/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2208)); // Suppression établissement principal if (preg_match("/tablissement(.*)secondaire(.*)devient(.*)principal/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2510)); // établissement secondaire devient principal if (preg_match("/extension(.*)tablissement(.*)principal/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2520)); // Extension de l'établissement principal if (preg_match("/r(é|e|è)alisation(.*)apport(.*)partiel(.*)actif/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2660)); // Réalisation de l'apport partiel d'actif if (preg_match("/changement(.*)domicile(.*)personnel/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2640)); // Changement de domicile personnel /* suite au partage de la communauté ayant existé entre les époux CAMBET dit BERDOT-POUYSEGUR, le fonds de bar, brasserie, vente de journaux et de périodiques, gérance de débit de tabac, sis 15 place Gramont, Pau est attribué à cession partielle d'activité cession de la partie du fonds de fournitures industrielles du bâtiment (FIB) à la STE SAVOIE METAL TOITURE{.!} rectification concernant le capital suite à une erreur de transcription. Ancien : 7 500 euros vente ou cession de fonds cessation provisoire avec maintien de l'immatriculation au RCS fin de la mission de Me Gautier (Sophie) en qualité d'administrateur provisoire renouvellement du maintien provisoire de l'immatriculation au RCS pour une durée maximum d'un an nouvel administrateur provisoire */ } } elseif ($code == '30') { $strTmp=trim(strtr($texte, "{}!", ' ')); if ( !isset($tabAnnonces[$idann]['data']['commentaires']) || !is_array($tabAnnonces[$idann]['data']['commentaires']) ) $tabAnnonces[$idann]['data']['commentaires']=array(); $tabAnnonces[$idann]['data']['commentaires']=array_merge($tabAnnonces[$idann]['data']['commentaires'], array($strTmp)); if ($bodaccType=='B') { if ( !isset($tabAnnonces[$idann]['data']['typeMMD']) || !is_array($tabAnnonces[$idann]['data']['typeMMD']) ) $tabAnnonces[$idann]['data']['typeMMD']=array(); if (preg_match("/(ancien|nouveau)(.*)(gérant|gerant|président|president|membre|commissaire|conseil|dir|surveillance|administra)/i", $texte) && !in_array(2315, $tabAnnonces[$idann]['data']['typeMMD'])) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2315)); // MODIF ADMINISTRATION if (preg_match("/Nouvelle(.*)situation/i", $texte)) /** Changement divers de situation (sera supprimé lors de l'insertion en base si autre évènenement trouvé **/ $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2318)); } } elseif ($code == '31') { if ( !isset($tabAnnonces[$idann]['data']['adresseSiegeVoie']) || !is_array($tabAnnonces[$idann]['data']['adresseSiegeVoie']) ) $tabAnnonces[$idann]['data']['adresseSiegeVoie']=array(); if ( !isset($tabAnnonces[$idann]['data']['adresseVoie']) || !is_array($tabAnnonces[$idann]['data']['adresseVoie']) ) $tabAnnonces[$idann]['data']['adresseVoie']=array(); $strTmp=trim(strtr($texte, "{}!", ' ')); if (preg_match("/^Adresse(.*)si(.)ge(.*)social(.*):/i", $strTmp)) $typeAdresse='adresseSiege'; elseif (preg_match("/^Adresse(.*):/i", $strTmp)) $typeAdresse='adresse'; elseif (preg_match("/^Nom commercial(.*):/i", $strTmp)) { // Annomalie du Bodacc if ( !isset($tabAnnonces[$idann]['data']['nomCommercial']) || !is_array($tabAnnonces[$idann]['data']['nomCommercial']) ) $tabAnnonces[$idann]['data']['nomCommercial']=array(); $tabAnnonces[$idann]['data']['nomCommercial']=array_merge($tabAnnonces[$idann]['data']['nomCommercial'], array(trim(preg_replace("/^Nom commercial(.*):/i", '', $strTmp)))); } else die ("ERREUR : Type d'adresse inconnue : '$strTmp' !".EOL); /** @todo A planté avec l'adresse beauregard BDA20060229.TLS **/ $tabAnnonces[$idann]['data'][$typeAdresse.'Voie']=array_merge($tabAnnonces[$idann]['data'][$typeAdresse.'Voie'], (array)trim(preg_replace("/^Adresse(.*):/i", '', $strTmp))); } elseif ($code=='33') { if ( !isset($tabAnnonces[$idann]['data']['adresseSiegeVille']) || !is_array($tabAnnonces[$idann]['data']['adresseSiegeVille']) ) $tabAnnonces[$idann]['data']['adresseSiegeVille']=array(); if ( !isset($tabAnnonces[$idann]['data']['adresseVille']) || !is_array($tabAnnonces[$idann]['data']['adresseVille']) ) $tabAnnonces[$idann]['data']['adresseVille']=array(); $texte=str_replace('{. }', '{.}', $texte); $tabTmp=explode('{.}',strtr($texte, "!", ' ')); $tabAnnonces[$idann]['data'][$typeAdresse.'Ville']=array_merge($tabAnnonces[$idann]['data'][$typeAdresse.'Ville'], (array)trim(trim(strtr($tabTmp[0], '{.!}',' ')))); if (isset($tabTmp[1])) $strTmp=trim($tabTmp[1]); if ($strTmp<>'') { if (substr($tabAnnonces[$idann]['Rubrique_Bodacc'],0,2)=='A8' || substr($tabAnnonces[$idann]['Rubrique_Bodacc'],0,2)=='A2') { if (preg_match("/Mandataire judiciaire :/i", $strTmp)) $tabAnnonces[$idann]['data']['Mandataire']=preg_replace("/^(.*)Mandataire judiciaire :/i", '', $strTmp); if (preg_match("/^Juge commissaire :/i", $strTmp)) //Juge commissaire suppléant $tabAnnonces[$idann]['data']['jugeCommissaire']=preg_replace("/Mandataire judiciaire :(.*)/i", '', $strTmp); // elseif (preg_match("/projet(.*)r(.)partition/i", $strTmp)) // $tabAnnonces[$idann]['data']['ProjetRepartition']=$strTmp; else { if ( !isset($tabAnnonces[$idann]['data']['commentaires']) || !is_array($tabAnnonces[$idann]['data']['commentaires']) ) $tabAnnonces[$idann]['data']['commentaires']=array(); $tabAnnonces[$idann]['data']['commentaires']=array_merge($tabAnnonces[$idann]['data']['commentaires'], array($strTmp)); } } elseif (end($tabAnnonces[$idann]['data'][$typeAdresse.'CP'])==$strTmp) continue; elseif (preg_match("/^Enseigne(.*):/i", $strTmp)) { if ( !isset($tabAnnonces[$idann]['data']['enseigne']) || !is_array($tabAnnonces[$idann]['data']['enseigne']) ) $tabAnnonces[$idann]['data']['enseigne']=array(); $tabAnnonces[$idann]['data']['enseigne']=array_merge($tabAnnonces[$idann]['data']['enseigne'], array(trim(preg_replace("/^Enseigne(.*):/i", '', $strTmp)))); } elseif (preg_match("/^Objet social(.*):/Ui", $strTmp)) { if ( !isset($tabAnnonces[$idann]['data']['activite']) || !is_array($tabAnnonces[$idann]['data']['activite']) ) $tabAnnonces[$idann]['data']['activite']=array(); $tabAnnonces[$idann]['data']['activite']=array_merge($tabAnnonces[$idann]['data']['activite'], array(trim(preg_replace("/^Activite(.*):/Ui", '', $strTmp)))); } else { print_r($tabAnnonces[$idann]); echo $code.':'.$strTmp; die("N'importe quoi dans la zone ville !"); } } } elseif ($code=='36') { if ( !isset($tabAnnonces[$idann]['data']['adresseSiegeCP']) || !is_array($tabAnnonces[$idann]['data']['adresseSiegeCP']) ) $tabAnnonces[$idann]['data']['adresseSiegeCP']=array(); if ( !isset($tabAnnonces[$idann]['data']['adresseCP']) || !is_array($tabAnnonces[$idann]['data']['adresseCP']) ) $tabAnnonces[$idann]['data']['adresseCP']=array(); $strTmp=trim(strtr($texte, "{}!", ' ')); $tabAnnonces[$idann]['data'][$typeAdresse.'CP']=array_merge($tabAnnonces[$idann]['data'][$typeAdresse.'CP'], (array)$strTmp); } elseif ($code=='70') { // ANNONCE RECTIFICATIVE $tabAnnonces[$idann]['typeAnnonce']='Rectificatif'; $tabAnnonces[$idann]['corrNum_Annonce']=preg_replace("(\D)", '', $texte); } elseif ($code=='71') { // Date de Parution de l'annonce à corriger $strTmp=explode('}', $texte); $datEvenement=str_replace(' ','',trim(strtr($strTmp[1], "{}.!", ' '))); $tabAnnonces[$idann]['corrBodacc_Date_Parution']=WDate::dateT('dMY', 'Ymd', $datEvenement); } elseif ($code=='72') { // Page de Parution de l'annonce à corriger //Date de parution : $premPage=preg_replace("/et(.*)/i", '', $texte); $tabAnnonces[$idann]['corrPage']=preg_replace("(\D)", '', $premPage); } elseif ($code=='73') { // Numéro de parution de l'annonce à corriger $strTmp=explode('}', $texte); $tabAnnonces[$idann]['corrNumParution']=str_replace(' ','',trim(strtr($strTmp[1], "{}.!", ' '))); } elseif ($code=='74') { // Texte rectificatif de l'annonce $strTmp=trim(strtr($texte, "{}.!", ' ')); $tabAnnonces[$idann]['corrTexteRectificatif']=$strTmp; } elseif ($code=='75') { // ANNONCE ADDITIVE $tabAnnonces[$idann]['typeAnnonce']='Additif'; $tabAnnonces[$idann]['corrNum_Annonce']=preg_replace("(\D)", '', $texte); } elseif ($code=='76') { // ANNONCE DE SUPPRESSION $tabAnnonces[$idann]['typeAnnonce']='Suppression'; $tabAnnonces[$idann]['corrNum_Annonce']=preg_replace("(\D)", '', $texte); } $txtAnnonce.=strtr($texte, "{}!",' '); $tabAnnonces[$idann]['annonce']=$txtAnnonce; if ($bodaccType=='B') { if ( !isset($tabAnnonces[$idann]['data']['typeMMD']) || !is_array($tabAnnonces[$idann]['data']['typeMMD']) ) $tabAnnonces[$idann]['data']['typeMMD']=array(); if ($tabAnnonces[$idann]['Rubrique_Bodacc']=='B114' || //$tabAnnonces[$idann]['Rubrique_Bodacc']=='B115' || //'B115'=>'37 loc. gérance recue ............. Société' ==> idem B119 $tabAnnonces[$idann]['Rubrique_Bodacc']=='B122' || $tabAnnonces[$idann]['Rubrique_Bodacc']=='B123') { echo date ('Y/m/d - H:i:s')." - ATTENTION : Provisoirement vérifier l'intégration de la rubrique ". $tabAnnonces[$idann]['Rubrique_Bodacc'] ." du Bodacc :".EOL; print_r($tabAnnonces[$idann]); die(); } if ($tabAnnonces[$idann]['Rubrique_Bodacc']=='B120' && !in_array(2500, $tabAnnonces[$idann]['data']['typeMMD'])) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2500)); // Confirmation établissement principal/secondaire (STE) elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='B121' && !in_array(2500, $tabAnnonces[$idann]['data']['typeMMD'])) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2500)); // Confirmation établissement principal/secondaire (PP) elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='B128' && !in_array(2000, $tabAnnonces[$idann]['data']['typeMMD'])) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2000)); // Mention d'office elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='B129' && !in_array(2980, $tabAnnonces[$idann]['data']['typeMMD'])) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2980)); // Transfert entre tribunaux (PP) elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='B130' && !in_array(2980, $tabAnnonces[$idann]['data']['typeMMD'])) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2980)); // Transfert entre tribunaux (STE) } elseif ( (substr($tabAnnonces[$idann]['Rubrique_Bodacc'],0,2)=='A8' || substr($tabAnnonces[$idann]['Rubrique_Bodacc'],0,2)=='A2') && !isset($tabAnnonces[$idann]['data']['typeProCol'])) { /** @todo NE TRAITER CES CAS QUE LORSQU'ON A LU TOUTE L'ANNONCE car sinon ça vérouille tout de suite l'annonce !!! **/ if ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A811') $tabAnnonces[$idann]['data']['typeProCol']=1503; // Clôture de la procédure pour insuffisance d'actif elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A812') $tabAnnonces[$idann]['data']['typeProCol']=1501; // Clôture de la procédure après cession totale elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A815') $tabAnnonces[$idann]['data']['typeProCol']=1204; // Avis de dépôt de l'état des créances elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A816') $tabAnnonces[$idann]['data']['typeProCol']=1206; // Avis de dépôt de l'état des créances nées après jugement d'ouverture elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A817') $tabAnnonces[$idann]['data']['typeProCol']=1205; // Avis de dépôt de l'état des créances complémentaires nées après jugement d'ouverture elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A818') $tabAnnonces[$idann]['data']['typeProCol']=1203; // Avis de dépôt de l'état de collocation / Publication définitive des créances ? elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A820') $tabAnnonces[$idann]['data']['typeProCol']=1207; // Règlements amiables elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A822') $tabAnnonces[$idann]['data']['typeProCol']=1310; // Procédure d'insolvabilité Européenne elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A824') $tabAnnonces[$idann]['data']['typeProCol']=1208; // Avis de dépôt du projet de répartition elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A205') $tabAnnonces[$idann]['data']['typeProCol']=1209;// Règlement judiciaire elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A209') $tabAnnonces[$idann]['data']['typeProCol']=1603;//'Liquidation de bien / faillite personnelle'; elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A210') $tabAnnonces[$idann]['data']['typeProCol']=1603;//'Liquidation des biens'; elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A220') $tabAnnonces[$idann]['data']['typeProCol']=1210;//'Production titres créance'; elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A225') $tabAnnonces[$idann]['data']['typeProCol']=1204;//'Avis de dépôt de l\'état des créances'; elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A228') $tabAnnonces[$idann]['data']['typeProCol']=1503;//'Clôture de la procédure pour insuffisance d\'actif'; elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A236') { echo date ('Y/m/d - H:i:s')." - ATTENTION : Provisoirement vérifier l'intégration de la rubrique A236 (rectificatif) du Bodacc :".EOL; print_r($tabAnnonces[$idann]); die(); } elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A237') { echo date ('Y/m/d - H:i:s')." - ATTENTION : Provisoirement vérifier l'intégration de la rubrique A237 (additif) du Bodacc :".EOL; print_r($tabAnnonces[$idann]); die(); } elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A238') { echo date ('Y/m/d - H:i:s')." - ATTENTION : Provisoirement vérifier l'intégration de la rubrique A238 (rectificatif supplémentaire) du Bodacc :".EOL; print_r($tabAnnonces[$idann]); die(); } elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A821') $tabAnnonces[$idann]['data']['typeProCol']=1507;//'Extraits d\'arrêt de la cours d\'appel'; /** @todo annulation totale ou partielle et nouveau jugement Infirmation totale du jugement de XXX du YYY Infirmation partielle du jugement de XXX du YYY Confirmation partielle Confirmation totalle Appel du ministère public ??? ORT **/ } break; } if (isset($idann)) { //{ echo "\n$code:$texte\n";die();} if (!isset($tabAnnonces[$idann]['balises'])) $tabAnnonces[$idann]['balises']=''; else { /** On recherche si la ligne contient un siren et si ce dernier est dans la liste des SIREN précédemment récupéré (balises 15)**/ if (preg_match_all("/[0-9]{9,9}|[0-9]{3,3} [0-9]{3,3} [0-9]{3,3}|[0-9]{3,3}\.[0-9]{3,3}\.[0-9]{3,3}|[0-9]{3,3}-[0-9]{3,3}-[0-9]{3,3}/", $texte, $matches)) { foreach ($matches as $m => $tabValues) { $siren2=str_replace(' ', '', strtr($tabValues[0],'.-',' ')); if ($iInsee->valideSiren($siren2) && !preg_match('/'.$tabValues[0].'.{1,4}euro/i', $texte) && is_array($tabAnnonces[$idann]['siren'])) { foreach ($tabAnnonces[$idann]['siren'] as $m2=>$tabSiren2) { $tabSiren2['num']=str_replace(' ', '', strtr($tabSiren2['num'],'.-',' ')); if ($siren2==$tabSiren2['num']) break; } if ($siren2<>$tabSiren2['num']) { //ICISIR// /** Le SIREN trouvé n'est pas dans la liste des SIREN précédement trouvés via des balisés 15 dans l'annonce **/ $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren2, 'valide'=>1))); //$tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren2)); //$tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(1)); $rub=$tabAnnonces[$idann]['Rubrique_Bodacc']; $fp2=fopen('./sirenCites.txt', 'a'); fwrite($fp2, "Siren;$siren2;$idann;$rub;$code;\n"); fwrite($fp2, "Annon;$siren2;$idann;$rub;$code;'".$tabAnnonces[$idann]['annonce']."\n"); fwrite($fp2, "Balis;$siren2;$idann;$rub;$code;".str_replace("\n",'',$tabAnnonces[$idann]['balises'])."\n"); fwrite($fp2, "Texte;$siren2;$idann;$rub;$code;". $texte."\n"); fwrite($fp2, "-----;$siren2;$idann;$rub;$code;--------------------------------------------------------\n"); fclose($fp2); } } } } $tabAnnonces[$idann]['balises'].=''.$texte.''.EOL; } } } /** ** CLOTURE DE L'ANNONCE en cours **/ /** CodeEVEN par défaut si aucune indication textuelle repérée... On se fie alors au code rubrique donné par le Bodacc **/ if (!isset($tabAnnonces[$idann]['data']['typeProCol'])) { if ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A215') $tabAnnonces[$idann]['data']['typeProCol']=1410;// Suite règlement/liquidat° elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A804') $tabAnnonces[$idann]['data']['typeProCol']=1305;// LJ elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A808') $tabAnnonces[$idann]['data']['typeProCol']=1411;// Arrêt plan cession elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A819') $tabAnnonces[$idann]['data']['typeProCol']=1407;// Modification de plan elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A900') { // Arrêt Conseil d\'Etat ou Conseil Supérieur des CAC' if (preg_match('/interdiction(.*)temporair(.*)exercice(.*)commissaire(.*)compte/i',$tabAnnonces[$idann]['annonce'])) $tabAnnonces[$idann]['data']['typeProCol']=1900; elseif (preg_match('/radiation(.*)liste(.*)commissaire(.*)compte/i',$tabAnnonces[$idann]['annonce'])) $tabAnnonces[$idann]['data']['typeProCol']=1901; else { echo date ('Y/m/d - H:i:s').' - Evènement de la rubrique A900 non géré !'.EOL; print_r($tabAnnonces[$idann]); die(); } } } //echo "Balises:$idann : ". $tabAnnonces[$idann]['data']['typeProCol'] ." : $code : $texte\n";//die(); //print_r($tabAnnonces); //die(); fclose ($handle); $tabAnnonces[$idann]['Bodacc_Date_Parution']=$dateBodacc; //$tabAnnoncesTxt[$idann]=$txtAnnonce; $tabFichiers[$nomFichier]['Num_Annonce_Fin']=$bodaccNumAnn; $tabFichiers[$nomFichier]['Bodacc_Date_Parution']=$dateBodacc; $tabFic=$tabFichiers[$nomFichier]; $tabFic['NomFichier']=$nomFichier; if (!isset($tabFic['dateDownload'])) { $tabFic['dateDownload']=date('Y-m-d H:i:s', filemtime(BODACC_LOCAL_DIR . $nomFichier)); } if (!$forceDateInsertABodacc) $dateInsert=date('Y-m-d H:i:s'); else $dateInsert=$tabFic['dateDownload']; $tabFic['dateInsert']=$dateInsert; /********************************************************************/ /** FIN FORMAT .TLS **/ /********************************************************************/ } elseif ($typeFichier=='.taz') { //echo(date ('Y/m/d - H:i:s')." - ATTENTION : Bodacc $nomFichier est dans un format partiellement chargé en base ! ".EOL); /********************************************************************/ /** DEBUT FORMAT .taz **/ /********************************************************************/ $debutNom=substr(basename($nomFichier),0,5); $debutNom3=substr(basename($nomFichier),0,3); // Conversion du .taz en .xml//pdftohtml -xml BDXML-A_20070251_0001_p000.pdf $nomFichierXml=strtr($nomFichier,array('.taz'=>'.xml')); if ($unTaz) { if ($debutNom3<>'ASS' && $debutNom3<>'MPA' && $debutNom3<>'MPB' && $debutNom3<>'MPC' && $debutNom3<>'MAP' && $debutNom3<>'DEF' && $debutNom3<>'DAF') { $rExec=exec('cd '.BODACC_LOCAL_DIR.';tar -xvzf '.BODACC_LOCAL_DIR.$nomFichier); if (!file_exists(BODACC_LOCAL_DIR.$nomFichierXml) || filesize(BODACC_LOCAL_DIR.$nomFichierXml)<=filesize(BODACC_LOCAL_DIR.$nomFichier)) { $nomFichierXml=$rExec; if (!file_exists(BODACC_LOCAL_DIR.$nomFichierXml) || filesize(BODACC_LOCAL_DIR.$nomFichierXml)<=filesize(BODACC_LOCAL_DIR.$nomFichier)) { echo(date ('Y/m/d - H:i:s')." - Erreur lors de la décompression du fichier $nomFichier.".EOL); } } } elseif ($debutNom3=='ASS' || $debutNom3=='MPA' || $debutNom3=='MPB' || $debutNom3=='MPC' || $debutNom3=='MAP' || $debutNom3=='DEF' || $debutNom3=='DAF') { @mkdir(BODACC_LOCAL_DIR.'tmp'); if (!copy(BODACC_LOCAL_DIR.$nomFichier, BODACC_LOCAL_DIR.'tmp/'.$nomFichier)) { die("Copie impossible de '".BODACC_LOCAL_DIR.$nomFichier."' vers '".BODACC_LOCAL_DIR.'tmp/'.$nomFichier."' !"); } exec('cd '.BODACC_LOCAL_DIR.'tmp;rm -f *.xml *.htm *.HTM;tar -xvzf '.BODACC_LOCAL_DIR.'tmp/'.$nomFichier.';mv *.extr.xml ./'.strtr($nomFichier,array('.taz'=>'.tmp')).';cp *.xml ../'.strtr($nomFichier,array('.taz'=>'.xml')).';cd ..'); if (!file_exists(BODACC_LOCAL_DIR.$nomFichierXml)) { // if (!file_exists(BODACC_LOCAL_DIR.strtr($nomFichierXml,array('.xml'=>'.extr.xml')))) { echo(date ('Y/m/d - H:i:s')." - Erreur A lors de la décompression du fichier $nomFichier (XML inexistant) !".EOL); if ($noQuestion) die(); /*} else { // Modification survenue après le JO ASSOC n°ASS20110022.taz du 28/05/2011 $dh = opendir(BODACC_LOCAL_DIR.'tmp/*.xml'); $trouve=false; while (false !== ($filename2 = readdir($dh))) { if (substr($filename2, -4)=='.xml' && substr($filename2, -9)<>'.extr.xml') { $nomFichierXml=$filename2; $trouve=true; break; } } if (!$trouve) { echo(date ('Y/m/d - H:i:s')." - Erreur B lors de la décompression du fichier $nomFichier (XML inexistant) !".EOL); if ($noQuestion) die(); } die('A:'.$nomFichierXml); } die('B:'.$nomFichierXml);*/ } if ($debutNom3=='MPA' || $debutNom3=='MPB' || $debutNom3=='MPC' || $debutNom3=='MAP' || $debutNom3=='DEF' || $debutNom3=='DAF') $coef=1.7; else $coef=1; if (filesize(BODACC_LOCAL_DIR.$nomFichierXml)*$coef<=filesize(BODACC_LOCAL_DIR.$nomFichier)) echo(date ('Y/m/d - H:i:s')." - Attention, taille incohérente après décompression du fichier $nomFichier !".EOL); // echo "XML : ".filesize(BODACC_LOCAL_DIR.$nomFichierXml).' octets'.EOL; // echo "ZIP : ".filesize(BODACC_LOCAL_DIR.$nomFichier).' octets'.EOL.EOL; } } if ($debutNom3=='ASS' || $debutNom3=='MPA' || $debutNom3=='MPB' || $debutNom3=='MPC' || $debutNom3=='MAP' || $debutNom3=='DEF' || $debutNom3=='DAF') { // // //< ="MAPA" dateparution="13 MARS 2007" numparution="0772003"> $dom_object = new DomDocument2(); @$dom_object->load(BODACC_LOCAL_DIR.$nomFichierXml); // create DOMXPath object with our DOMObject $xpath = new Domxpath($dom_object); if ($debutNom3=='ASS') $tagRacine='PARUTION_JO_ASSOCIATION'; else $tagRacine='PARUTION_BOAMP'; $node=$dom_object->getElementsByTagName($tagRacine); foreach ($node as $child) { $dateBodaccTxt=preg_replace('/ +/',' ',utf8_decode(trim($child->getAttribute('dateparution')))); $bodaccNumPar=trim($child->getAttribute('numparution')); // 20090001 $bodaccType=@trim($child->getAttribute('nompublication')); } if ($debutNom3=='ASS') { $bodaccType='ASSO'; $dateBodacc=WDate::dateT('d/m/Y', 'Ymd', $dateBodaccTxt); // 03/01/2009 } else { $dateBodacc=WDate::dateT('dMY', 'Ymd', $dateBodaccTxt); //12 mars 2007 ou 13 MARS 2007 //echo "$dateBodaccTxt, $bodaccNumPar, $bodaccType".EOL; } $tabFichiers[$nomFichier]['Bodacc_Date_Parution_Texte']=$dateBodaccTxt; $tabFichiers[$nomFichier]['Bodacc_Code']=$bodaccType; //if ($debutNom3=='DEF' || $debutNom3=='DAF') die()); if (!in_array($bodaccType, $tabBodaccF)) { echo(date ('Y/m/d - H:i:s')." - Attention, ce fichier n'est pas prévu en intégration : '$nomFichier'".EOL); print_r($tabFichiers[$nomFichier]); continue; // La ligne de commande ne souhaite pas intégrer ce type de Bodacc } if ($debutNom3=='MAP' || $debutNom3=='DEF' || $debutNom3=='DAF') $tabFichiers[$nomFichier]['Bodacc_Num']=$bodaccNumPar; else $tabFichiers[$nomFichier]['Bodacc_Num']=substr($bodaccNumPar,-4); $bodaccAnneePar=substr($dateBodacc,0,4); $tabFichiers[$nomFichier]['Bodacc_Annee_Parution']=$bodaccAnneePar; /*if ($debutNom3=='DEF' || $debutNom3=='DAF') { print_r($tabFichiers[$nomFichier]); die(); } /* $debutNom 'DEFAO','DAFAA','DEFST');*/ //die(print_r($tabFichiers)); } else { // BODACC A B ou C en XML $dom_object = new DomDocument2(); $dom_object->load(BODACC_LOCAL_DIR.$nomFichierXml); // create DOMXPath object with our DOMObject $xpath = new Domxpath($dom_object); $parution=$dom_object->getValueFromTag('parution'); $dateBodaccTxt=$dom_object->getValueFromTag('dateParution'); if (substr($dateBodaccTxt,0,4)*1>1900 && substr($dateBodaccTxt,4,1)=='-') $dateBodacc=WDate::dateT('Y-m-d', 'Ymd', $dateBodaccTxt); elseif (substr($dateBodaccTxt,6,4)*1>1900 && substr($dateBodaccTxt,5,1)=='/') $dateBodacc=WDate::dateT('d/m/Y', 'Ymd', $dateBodaccTxt); elseif (substr($dateBodaccTxt,0,4)*1>1900 && substr($dateBodaccTxt,4,1)=='/') { // Date au format 2009/08/13 (DIVA) $dateBodacc=str_replace('/','',$dateBodaccTxt);//WDate::dateT('Y/m/d', 'Ymd', $dateBodaccTxt); //die("$nomFichierXml : $dateBodaccTxt ($dateBodacc)".EOL); } elseif (substr($dateBodaccTxt,6,4)*1>1900 && substr($dateBodaccTxt,5,1)=='-') $dateBodacc=WDate::dateT('d-m-Y', 'Ymd', $dateBodaccTxt); else die(date ('Y/m/d - H:i:s')." - ERREUR : Fichier $nomFichier, Date de Bodacc '$dateBodaccTxt' non pris en charge !".EOL); $tabFichiers[$nomFichier]['Bodacc_Date_Parution_Texte']=$dateBodaccTxt; $nojo1=$dom_object->getValueFromTag('nojo'); //$bodaccType=substr(basename($nomFichier),2,1); $bodaccType=substr($nojo1,2,1); if ($bodaccType<>'A' && $bodaccType<>'B' && $bodaccType<>'C') die(date ('Y/m/d - H:i:s')." - ERREUR : Fichier $nomFichier, Type de Bodacc '$bodaccType' non pris en charge !".EOL); //DIVA200908130154.taz if ($debutNom<>'RCS-A' && $debutNom<>'DIVA2' && $debutNom<>'RCS-B' && $debutNom<>'PCL_B' && $debutNom<>'BILAN') { echo(date ('Y/m/d - H:i:s')." - ATTENTION : Bodacc $nomFichier non chargé en base ! ".EOL); continue; } $bodaccNumPar=$bodaccType.substr($parution,5,3); $tabFichiers[$nomFichier]['Bodacc_Code']=$bodaccType; if (!in_array($bodaccType, $tabBodaccF)) continue; // La ligne de commande ne souhaite pas intégrer ce type de Bodacc $tabFichiers[$nomFichier]['Bodacc_Num']=substr($bodaccNumPar,1,strlen($bodaccNumPar)-1); $bodaccAnneePar=substr($dateBodacc,0,4); $tabFichiers[$nomFichier]['Bodacc_Annee_Parution']=$bodaccAnneePar; } /** On test si le fichier est déjà en base **/ $ret=$iDb->select('chargements', 'Bodacc_Date_Parution, Bodacc_Code, Bodacc_Annee_Parution, DateDispo, dateDownload, taille, Bodacc_Num, Num_Annonce_Deb, Num_Annonce_Fin, dateInsert', "NomFichier='$nomFichier'"); if (count($ret)>0 && $fichierTLS<>$nomFichier) { $reload=false; $ficDB=$ret[0]; $numBodacc=$tabFichiers[$nomFichier]['Bodacc_Num']; if ($debutNom=='ASS20') $ret=$iDb->select('asso', 'count(*) as nb', "YEAR(Date_Parution)=$bodaccAnneePar AND Num_Parution=(YEAR(Date_Parution)*10000)+$numBodacc"); elseif ($debutNom=='MPA20' || $debutNom=='MPB20' || $debutNom=='MPC20' || $debutNom3=='MAP' || $debutNom3=='DEF' || $debutNom3=='DAF') { $ret=$iDb->select('boamp', 'count(*) as nb', "Boamp_Code='$bodaccType' AND Boamp_Annee_Parution=$bodaccAnneePar AND Boamp_Num=$numBodacc"); /*if ($debutNom3=='MAP') { print_r($ret); die("Boamp_Code='$bodaccType' AND Boamp_Annee_Parution=$bodaccAnneePar AND Boamp_Num=$numBodacc"); }*/ } else { $ret=$iDb->select('bodacc','count(*) as nb', "Bodacc_Code='$bodaccType' AND Bodacc_Annee_Parution=$bodaccAnneePar AND Bodacc_Num=$numBodacc"); /* $timeout=30; $referer=''; $n=$bodaccAnneePar.sprintf("%04s",$numBodacc); $url="http://www.bodacc.fr/index.php?action=voir&p=$bodaccType&n=$n&a=1"; echo "URL=$url".EOL; $tdeb=microtime(1); $page=getUrl($url, '', '', $referer, false, 'www.bodacc.fr', '', $timeout); $duree=round(microtime(1)-$tdeb,3); $referer=$url; $header=$page['header']; //print_r($page); //die(); if ($page['code']==200 && preg_match('//',$page['body'], $matches)) { $url='http://www.bodacc.fr/index.php?action=pdf&index='.$matches[1]; $cookie=trim($header['Set-Cookie']); $tdeb=microtime(1); $page=getUrl($url, $cookie, '', $referer, false, 'www.bodacc.fr', '', $timeout); $duree=round(microtime(1)-$tdeb,3); if ($page['code']==200 && trim($page['header']['Content-Type'])=='application/pdf') { $nomPdf='BDXML-'.$bodaccType.'_'.$n.'_0001_p000.pdf'; $fp=@fopen(BODACC_LOCAL_DIR.'pdf/'.$nomPdf, 'wb'); print_r($page).EOL; if (!fwrite($fp, $page['body']) || !$fp) { //$message.=date('Y/m/d - H:i:s') ." - ERREUR : Problème de création du PDF $nomPdf !".EOL; echo date('Y/m/d - H:i:s') ." - ERREUR : Problème de création du PDF $nomPdf !".EOL; } @fclose($fp); } // .' en '.$duree.' secondes'.EOL; $tabPdf=getPdfInfo(BODACC_LOCAL_DIR.'pdf/'.$nomPdf); //randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes); print_r($tabPdf); die('A:'.BODACC_LOCAL_DIR.'pdf/'.$nomPdf.EOL); /* $tabPdf=getPdfInfo($repPdfAssoCpt.'/'.basename($infoAnnBalo['pdfLink'])); if (!$tabPdf) { $page=getUrl('http://www.journal-officiel.gouv.fr/'.$infoAnnBalo['pdfLink'], '', '', '', false); @mkdir($repPdfAssoCpt); } $infoAnnBalo['pdfSize'] = $tabPdf['pdfSize']; $infoAnnBalo['pdfVer'] = $tabPdf['version']; $infoAnnBalo['pdfPage'] = $tabPdf['nbPages'];* } die('B'.EOL);*/ } $nbAnnonces=$ret[0]['nb']; if ($ficDB['Num_Annonce_Fin']<>$nbAnnonces) echo(date ('Y/m/d - H:i:s')." - ATTENTION : Fichier $nomFichier, numéro de la dernière annonce (".$ficDB['Num_Annonce_Fin'].") incohérent avec le nombre d'annonces en base ($nbAnnonces) !".EOL); continue; } elseif (count($ret)>0 && $fichierTLS==$nomFichier) { $ficDB=$ret[0]; echo date ('Y/m/d - H:i:s')." - BODACC $bodaccAnneePar-$bodaccNumPar du $dateBodacc déjà chargé ($nomFichier / $dateBodaccTxt).\n"; $reload=true; } if ($tabFichiers[$nomFichier]['taille']==0) $tabFichiers[$nomFichier]['taille']=filesize(BODACC_LOCAL_DIR . $nomFichier); $tailleKo=round($tabFichiers[$nomFichier]['taille']/1024); if ($debutNom3=='ASS') $strTypeJo="J.O. ASSOCs."; elseif ($debutNom3=='MPA' || $debutNom3=='MPB' || $debutNom3=='MPC' || $debutNom3=='MAP' || $debutNom3=='DEF' || $debutNom3=='DAF') $strTypeJo="J.O. $debutNom"; else $strTypeJo="BODACC $debutNom"; echo date ('Y/m/d - H:i:s')." - $strTypeJo $bodaccAnneePar-$bodaccNumPar du $dateBodacc en cours de traitement ($nomFichier, $dateBodaccTxt, $tailleKo k)...".EOL; $strMailInfo.=date ('Y/m/d - H:i:s')." - $strTypeJo $debutNom $bodaccAnneePar-$bodaccNumPar du $dateBodacc en cours de traitement ($nomFichier, $dateBodaccTxt, $tailleKo k)...".EOL; /** Numéro d'annonce calculé car les numéro d'annonces du Bodacc C sont complètement déconnants **/ $bodaccNumAnnCalc=0; /** ** Traitement des noeuds en fonction du type de Bodacc A ou B **/ if ($debutNom3=='ASS') { // echo date ('Y/m/d - H:i:s')." - JO ASSO non chargé pour l'instant !".EOL; // continue; $result=$dom_object->getElementsByTagName('ANNONCE_REF'); foreach ($result as $annonce) { $bodaccNumAnn=$annonce->getAttribute('numannonce'); /** Numéro unique interne à ce programme pour chaque annonce **/ $idann=''.$bodaccAnneePar.'-'.$bodaccNumPar.'-'.$bodaccNumAnn; $tabAnnonces[$idann]['Bodacc_Date_Parution']=$dateBodacc; $tabAnnonces[$idann]['Num_Annonce']=$bodaccNumAnn; if (!isset($tabFichiers[$nomFichier]['Num_Annonce_Deb'])) $tabFichiers[$nomFichier]['Num_Annonce_Deb']=$bodaccNumAnn; $tabAnnonces[$idann]['Bodacc_Code']=$bodaccType; $tabAnnonces[$idann]['Bodacc_Annee_Parution']=$bodaccAnneePar; $tabAnnonces[$idann]['Bodacc_Num']=$bodaccNumPar; $tabAnnonces[$idann]['data']=array( 'Num_Annonce'=>$bodaccNumAnn, 'Date_Parution'=>$dateBodacc, 'Num_Parution'=>$bodaccNumPar); // Siret $tabAnnonces[$idann]['data']['Assoc_Date_Declaration2']=WDate::dateT('d/m/Y', 'Ymd',str_replace(' ','',$annonce->getAttribute('datedeclaration'))); //Date de la déclaration : 1er décembre 2008. $bodaccDepNum=$annonce->getAttribute('dept'); $tabAnnonces[$idann]['data']['Departement']=$bodaccDepNum; $cp=$annonce->getAttribute('cp'); $node=$annonce->getElementsByTagName('TYPE'); $tabAnnonces[$idann]['codEven']=array(); foreach ($node as $child) if (isset($tabTypeAsso['_'.$child->getAttribute('code')*1])) { $tabAnnonces[$idann]['Type_Annonce']=$tabTypeAsso['_'.$child->getAttribute('code')*1]['lib']; $tabAnnonces[$idann]['typeAnnonce']=$tabTypeAsso['_'.$child->getAttribute('code')*1]['type']; $tabAnnonces[$idann]['typeAsso']=$tabTypeAsso['_'.$child->getAttribute('code')*1]['forme']; $tabAnnonces[$idann]['codEven'][]=$tabTypeAsso['_'.$child->getAttribute('code')*1]['even']; /** @todo Gérer les codes nn79 qui sont des modification génériques à reclasser **/ } else { print_r($tabAnnonces[$idann]); die('Type de mouvement association inconnu : '.$child->getAttribute('code').EOL); } $tabTypeAssoTmp[]=$tabAnnonces[$idann]['Type_Annonce']; $title = $xpath->query ('LIEU_DECLARATION', $annonce); $texte=utf8_decode(trim(str_replace('Déclaration à la ','',$title->item(0)->nodeValue))); $tabAnnonces[$idann]['Sous_Prefecture']=$texte; $tabAnnonces[$idann]['Tribunal_Code']=$iBodacc->getTribunalCode($texte, $bodaccDepNum); $title = $xpath->query ('TITRE', $annonce); $tabAnnonces[$idann]['data']['Assoc_Nom']=utf8_decode(trim($title->item(0)->nodeValue)); if (substr($tabAnnonces[$idann]['data']['Assoc_Nom'],-1)=='.') $tabAnnonces[$idann]['data']['Assoc_Nom']=substr($tabAnnonces[$idann]['data']['Assoc_Nom'],0,strlen($tabAnnonces[$idann]['data']['Assoc_Nom'])-1); $title = $xpath->query ('ANCIEN_TITRE', $annonce); $tabAnnonces[$idann]['data']['Assoc_ANom']=utf8_decode(trim($title->item(0)->nodeValue)); if ($tabAnnonces[$idann]['data']['Assoc_ANom']<>'') $tabAnnonces[$idann]['codEven'][]=8010; $title = $xpath->query ('NOUVEAU_TITRE', $annonce); $tabAnnonces[$idann]['data']['Assoc_NNom']=utf8_decode(trim($title->item(0)->nodeValue)); if ($tabAnnonces[$idann]['data']['Assoc_NNom']<>'') $tabAnnonces[$idann]['codEven'][]=8010; $title = $xpath->query ('OBJET', $annonce); $tabAnnonces[$idann]['data']['Assoc_Objet']=utf8_decode(trim($title->item(0)->nodeValue)); $title = $xpath->query ('NOUVEL_OBJET', $annonce); $tabAnnonces[$idann]['data']['Assoc_NObjet']=utf8_decode(trim($title->item(0)->nodeValue)); if ($tabAnnonces[$idann]['data']['Assoc_NObjet']<>'') $tabAnnonces[$idann]['codEven'][]=8020; $title = $xpath->query ('ADDITIF_OBJET', $annonce); $tabAnnonces[$idann]['data']['Assoc_AObjet']=utf8_decode(trim($title->item(0)->nodeValue)); if ($tabAnnonces[$idann]['data']['Assoc_AObjet']<>'') $tabAnnonces[$idann]['codEven'][]=8021; $title = $xpath->query ('IDASSOC', $annonce); $tabAnnonces[$idann]['data']['Waldec']=trim($title->item(0)->nodeValue); $title = $xpath->query ('SIEGE_SOCIAL', $annonce); $tabAnnonces[$idann]['data']['Assoc_Adresse']=utf8_decode(trim($title->item(0)->nodeValue)); $tabAdresse=$iInsee->structureVoie($tabAnnonces[$idann]['data']['Assoc_Adresse']); $tabAnnonces[$idann]['data']['Assoc_AdrNum']=$tabAdresse['num']; $tabAnnonces[$idann]['data']['Assoc_AdrIndRep']=$tabAdresse['indRep']; $tabAnnonces[$idann]['data']['Assoc_AdrTypVoie']=$tabAdresse['typeVoie']; $tabAnnonces[$idann]['data']['Assoc_AdrLibVoie']=$tabAdresse['libVoie']; $tabAnnonces[$idann]['data']['Assoc_AdrCP']=$tabAdresse['cp']; $tabAnnonces[$idann]['data']['Assoc_AdrVille']=$tabAdresse['ville']; $tabAnnonces[$idann]['data']['Assoc_AdrComp']=trim($tabAdresse['adrComp0'].' '.$tabAdresse['adrComp1']); $node=$annonce->getElementsByTagName('INTERNET'); foreach ($node as $child) { $tabAnnonces[$idann]['data']['Assoc_Web']=trim($child->getAttribute('http')); $tabAnnonces[$idann]['data']['Assoc_Mail']=trim($child->getAttribute('smtp')); } if (preg_match('/@/',$tabAnnonces[$idann]['data']['Assoc_Web']) && $tabAnnonces[$idann]['data']['Assoc_Mail']=='') { $tabAnnonces[$idann]['data']['Assoc_Mail']=$tabAnnonces[$idann]['data']['Assoc_Web']; $tabAnnonces[$idann]['data']['Assoc_Web']=''; } $title = $xpath->query('FICHIERS_JOINTS/FICHIER_HTML', $annonce); $fichierHtml=trim($title->item(0)->nodeValue); if (file_exists(BODACC_LOCAL_DIR.'tmp/'.$fichierHtml)) $tabAnnonces[$idann]['data']['Annonce_Html']=trim(strtr(preg_replace('//Ui','', file_get_contents(BODACC_LOCAL_DIR.'tmp/'.$fichierHtml)),array('


'=>'',''=>'','

'=>''))); $tabAnnonces[$idann]['data']['Annonce_Txt']=strtr(html_entity_decode(strip_tags($tabAnnonces[$idann]['data']['Annonce_Html'])),array('’'=>"'",'œ'=>'oe','Œ'=>'OE',chr(160)=>' ')); /** VERIFICATION des ZONES xml par rapport à l'annonces livréer en HTML **/ // Stucture adresse manquante if ($tabAnnonces[$idann]['data']['Assoc_Adresse']=='') $tabAnnonces[$idann]['data']['Assoc_Adresse']=htm2txt(@getTextInHtml($tabAnnonces[$idann]['data']['Annonce_Html'], 'Siège social : ', '', '. ')); // Nom manquant, on prend le nouveau nom if ($tabAnnonces[$idann]['data']['Assoc_Nom']=='') $tabAnnonces[$idann]['data']['Assoc_Nom']=$tabAnnonces[$idann]['data']['Assoc_NNom']; // Nom toujours manquant, on cherche dans le HTML if ($tabAnnonces[$idann]['data']['Assoc_Nom']=='') { $tabAnnonces[$idann]['data']['Assoc_Nom']=htm2txt(@getTextInHtml($tabAnnonces[$idann]['data']['Annonce_Html'], '

Association : ', '', '')); if (substr($tabAnnonces[$idann]['data']['Assoc_Nom'],-1)=='.') $tabAnnonces[$idann]['data']['Assoc_Nom']=substr($tabAnnonces[$idann]['data']['Assoc_Nom'],0,-1); print_r($tabAnnonces[$idann]); echo 'Nom non communiqué en XML : '.$tabAnnonces[$idann]['data']['Assoc_Nom'].EOL; if ($tabAnnonces[$idann]['data']['Assoc_Nom']=='' && $tabAnnonces[$idann]['data']['Assoc_ANom']=='') die('Nom et ancien nom non communiqués en XML : '.$tabAnnonces[$idann]['data']['Assoc_Nom'].EOL); } // N° Waldec manquant if ($tabAnnonces[$idann]['data']['Waldec']=='') { $tabAnnonces[$idann]['data']['Waldec']=@getTextInHtml($tabAnnonces[$idann]['data']['Annonce_Html'], '

Identification WALDEC : ', '', ''); //print_r($tabAnnonces[$idann]); //echo ('Waldec non communiqué en XML : '.$tabAnnonces[$idann]['data']['Waldec']); } // Objet manquant if ($tabAnnonces[$idann]['data']['Assoc_Objet']=='') $tabAnnonces[$idann]['data']['Assoc_Objet']=$tabAnnonces[$idann]['data']['Assoc_NObjet']; if ($tabAnnonces[$idann]['data']['Assoc_Objet']=='') $tabAnnonces[$idann]['data']['Assoc_Objet']=htm2txt(@getTextInHtml($tabAnnonces[$idann]['data']['Annonce_Html'], '>Objet : ', '', '')); // Fusion d'associations $tabAnnonces[$idann]['data']['Assoc_Fusion']=htm2txt(@getTextInHtml($tabAnnonces[$idann]['data']['Annonce_Html'], 'Fusion des associations : ', '', '')); if ($tabAnnonces[$idann]['data']['Assoc_Fusion']<>'') $tabAnnonces[$idann]['codEven'][]=8030; // Fusion d'associations // Annulation d'annonce if ($tabAnnonces[$idann]['typeAnnonce']=='Suppression') { $tabAnnonces[$idann]['data']['Assoc_Annulation']='Annulation '.htm2txt(@getTextInHtml($tabAnnonces[$idann]['data']['Annonce_Html'], '>Annulation', '', '.')); if ($tabAnnonces[$idann]['data']['Assoc_Annulation']=='Annulation ') $tabAnnonces[$idann]['data']['Assoc_Annulation']=''; elseif (preg_match('/(?:insertion|annonce) no<\/sup> ([\d]{1,6}), parue au Journal officiel ?<\/i> ?no<\/sup> ([\d]{1,3}), du (.*), page ([\d]{1,6})(?:|\-[\d]{1,6})\./Uis', $tabAnnonces[$idann]['data']['Annonce_Html'], $matches)) { // ;(Cette insertion recti no<\/sup> 2298 , parue au Journal officiel no< /sup> 25, du 20 juin 2009, page 3059-3060.) $tabAnnonces[$idann]['corrNum_Annonce']=$matches[1]; $tabAnnonces[$idann]['corrNumParution']=$matches[2]; $tabAnnonces[$idann]['corrDate_Parution']=WDate::dateT('dMY', 'Ymd', strtr($matches[3], array(' '=>'',' '=>''))); $tabAnnonces[$idann]['corrPage']=$matches[4]; } //print_r($tabAnnonces[$idann]); //die('Annulation d\'annonce : '.$tabAnnonces[$idann]['data']['Assoc_Annulation']); } elseif ($tabAnnonces[$idann]['typeAnnonce']=='Rectificatif') { // (Cette insertion rectifie l'annonce no 8, parue au Journal officiel no 4, du 27 janvier 2007, page 347.) if (preg_match('/annonce no<\/sup> ([\d]{1,6}), parue au Journal officiel<\/i> no<\/sup> ([\d]{1,3}), du (.*), page ([\d]{1,6})\./Uis', $tabAnnonces[$idann]['data']['Annonce_Html'], $matches)) { $tabAnnonces[$idann]['corrNum_Annonce']=$matches[1]; $tabAnnonces[$idann]['corrNumParution']=$matches[2]; $tabAnnonces[$idann]['corrDate_Parution']=WDate::dateT('dMY', 'Ymd', str_replace(' ','',$matches[3])); $tabAnnonces[$idann]['corrPage']=$matches[4]; } //print_r($tabAnnonces[$idann]); //die('Rectificatif d\'annonce !'); } elseif ($tabAnnonces[$idann]['typeAnnonce']=='?') { //Annulation de l’insertion no 1300, parue au Journal officiel no 46, du 15 novembre 2008, page 5536. print_r($tabAnnonces[$idann]); die('Type d\'insertion inconnue : '.$tabAnnonces[$idann]['typeAnnonce']); } // Fondations $tabAnnonces[$idann]['data']['Assoc_Duree']=trim(htm2txt(@getTextInHtml($tabAnnonces[$idann]['data']['Annonce_Html'], 'Durée :', 'Durée :', '.
'))); $tabAnnonces[$idann]['data']['Assoc_Dotation']=trim(htm2txt(@getTextInHtml($tabAnnonces[$idann]['data']['Annonce_Html'], 'Montant de la dotation initiale :', 'initiale :', '.
'))); $tabAnnonces[$idann]['data']['Assoc_ProgAction']=trim(htm2txt(@getTextInHtml($tabAnnonces[$idann]['data']['Annonce_Html'], 'action pluriannuel :', 'pluriannuel :', '.
'))); $tabAnnonces[$idann]['data']['Assoc_Fondateurs']=trim(htm2txt(@getTextInHtml($tabAnnonces[$idann]['data']['Annonce_Html'], ' de chacun des fondateurs :', 'fondateurs :', '.

'))); if (preg_match('/Date de la déclaration \: <\/i>(.*)\./Uis', $tabAnnonces[$idann]['data']['Annonce_Html'], $matches)) { $tabAnnonces[$idann]['data']['Assoc_Date_Declaration']=htm2txt($matches[1]); $dateDeclarationLue=WDate::dateT('dMY', 'Ymd', str_replace(' ','', $tabAnnonces[$idann]['data']['Assoc_Date_Declaration'])); if ($tabAnnonces[$idann]['data']['Assoc_Date_Declaration2']<>$dateDeclarationLue) { print_r($tabAnnonces[$idann]); die('Dates de déclarations différentes : xml='.$annonce->getAttribute('datedeclaration').' ('.$tabAnnonces[$idann]['data']['Assoc_Date_Declaration2'].') v/s lu='.$dateDeclarationLue); } } // Détection de déménagement if (preg_match('/Transféré ; nouvelle adresse : <\/i>/', $tabAnnonces[$idann]['data']['Annonce_Html'])) $tabAnnonces[$idann]['codEven'][]=8011; // Déménagement if (preg_match('/Modifications statutaires :(.*)<\/i>/Uis', $tabAnnonces[$idann]['data']['Annonce_Html'], $matches)) { $tabAnnonces[$idann]['codEven'][]=8025; $tabAnnonces[$idann]['data']['Assoc_Commentaire']=htm2txt($matches[1]); } $title = $xpath->query('FICHIERS_JOINTS/FICHIER_GIF', $annonce); if(trim($title->item(0)->nodeValue)<>'') die("Gérer les fichiers GIF dans le JO Asso !!!\n"); $node=$annonce->getElementsByTagName('PAGES'); foreach ($node as $child) $tabAnnonces[$idann]['data']['pageDeb']=$child->getAttribute('debut'); $tabAnnonces[$idann]['themes']=array(); $node = $xpath->query('THEMES/THEME', $annonce); foreach ($node as $child) $tabAnnonces[$idann]['themes'][]=$child->getAttribute('code'); // @todo Prendre le NAF correspondant et remplir le champ "Activite" /** On dédoublonne les codes évènements **/ $tabAnnonces[$idann]['codEven']=array_unique($tabAnnonces[$idann]['codEven']); /** @todo ** A : Réflexion ** - voir les balises IDENTIFIANT et TYPE=code (champ Type_Annonce ?) ** - Attention au remplissage des variables ANCIEN, NOUVEAU qui sont a priori associé à la variable ** remplacée mais qui elle est vide ! ** - Utiliser l'attribut "cp" ** - Prévoir le remplissage de "Assoc_NAdresse" ** ** B : Migration SGBD ** - Supprimer le champ "Assoc_Date_Declaration" ** - Migrer l'ancienne table vers la nouvelle table "associations" en prévoyant la compatibilité ! ** - Stopper les scripts de synchro entre dedibox et SGBD ** ** C : Petit + ** - Prévoir le SIRENAGE du JO ASSOC via le programme classique **/ } //print_r($tabAnnonces); $tabTypeAssoTmp=array_unique($tabTypeAssoTmp); //print_r($tabTypeAssoTmp); //continue; //die(); } elseif ($debutNom3=='MPA' || $debutNom3=='MPB' || $debutNom3=='MPC' || $debutNom3=='MAP' || $debutNom3=='DEF' || $debutNom3=='DAF') { if ($validateSchema) { /** VALIDATION DTD ** if (!@$dom_object->validate()) { echo date ('Y/m/d - H:i:s')." - ERREUR : Fichier $nomFichier, Date de BOAMP '$dateBodaccTxt' DTD non validé !".EOL; if (!$reload) { echo EOL.'$forceContinue='.$forceContinue.EOL; if ($forceContinue) continue; else { echo date ('Y/m/d - H:i:s')." - Conseil : Corrigez le fichier XML ".BODACC_LOCAL_DIR.str_replace('.taz','.xml', $nomFichier)." et relancer avec l'option _u !".EOL; die(); } } } else echo date ('Y/m/d - H:i:s')." - BOAMP $debutNom $bodaccAnneePar-$bodaccNumPar du $dateBodacc : DTD du fichier $nomFichier validé.".EOL; } else echo date ('Y/m/d - H:i:s')." - BOAMP $debutNom $bodaccAnneePar-$bodaccNumPar du $dateBodacc : DTD du fichier $nomFichier ignoré.".EOL; */ if ($debutNom3=='MPC') $schemaBoampAB='/var/www/batch/bodacc/BoampC_002.xsd'; else $schemaBoampAB='/var/www/batch/bodacc/BoampAB_002.xsd'; /** VALIDATION SCHEMA **/ if (!$dom_object->schemaValidate($schemaBoampAB)) { echo date ('Y/m/d - H:i:s')." - ERREUR : Fichier $nomFichier, Date de BOAMP '$dateBodaccTxt' Schéma XML non validé !".EOL; if (!$reload) { echo EOL.'$forceContinue='.$forceContinue.EOL; if ($forceContinue) continue; else { echo date ('Y/m/d - H:i:s')." - Conseil : Corrigez le fichier XML ".BODACC_LOCAL_DIR.str_replace('.taz','.xml', $nomFichier)." et relancer avec l'option _u !".EOL; die(); } } } else echo date ('Y/m/d - H:i:s')." - BOAMP $debutNom $bodaccAnneePar-$bodaccNumPar du $dateBodacc : Schéma du fichier $nomFichier validé.".EOL; } else echo date ('Y/m/d - H:i:s')." - BOAMP $debutNom $bodaccAnneePar-$bodaccNumPar du $dateBodacc : Schéma du fichier $nomFichier ignoré.".EOL; /** Chargement des Annonces **/ $tabClasses=$tabDescripteurs=array(); //echo date ('Y/m/d - H:i:s')." - JO BOAMP et MAPA non chargés pour l'instant !".EOL; //continue; $result=$dom_object->getElementsByTagName('ANNONCE_REF'); foreach ($result as $annonce) { $title = $xpath->query ('GESTION/NUM_ANN', $annonce); $bodaccNumAnn=$title->item(0)->nodeValue; $title = $xpath->query ('GESTION/NOJO', $annonce); $nojo=$title->item(0)->nodeValue; // Titre de la publication $title = $xpath->query ('GESTION/R1', $annonce); $r1=$title->item(0)->nodeValue; // Code Partitionnement $title = $xpath->query ('GESTION/R2', $annonce); $r2=$title->item(0)->nodeValue; // Département $title = $xpath->query ('GESTION/R3', $annonce); $r3=$title->item(0)->nodeValue; // Rubrique $title = $xpath->query ('GESTION/R4', $annonce); $r4=strtoupper(trim($title->item(0)->nodeValue)); $title = $xpath->query ('GESTION/TETIER_R1', $annonce); $tr1=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('GESTION/TETIER_R2', $annonce); $tr2=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('GESTION/TETIER_R3', $annonce); $tr3=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('GESTION/TETIER_R4', $annonce); $tr4=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('GESTION/NOM_HTML', $annonce); $nomFicAnnHtml=$title->item(0)->nodeValue; /** Numéro unique interne à ce programme pour chaque annonce **/ $idann=''.$bodaccAnneePar.'-'.$bodaccNumPar.'-'.$bodaccNumAnn; $tabAnnonces[$idann]['Bodacc_Date_Parution']=$dateBodacc; if ($debutNom3=='MAP') { $tmp=explode('-',$bodaccNumAnn); $bodaccNumAnn=$tmp[1]; $tabAnnonces[$idann]['Num_AnnoncePre']=$tmp[0]; $bodaccNumParDB=$bodaccNumPar; } else $bodaccNumParDB=substr($bodaccNumPar,-4); $tabAnnonces[$idann]['Num_Annonce']=$bodaccNumAnn; if (!isset($tabFichiers[$nomFichier]['Num_Annonce_Deb'])) $tabFichiers[$nomFichier]['Num_Annonce_Deb']=$bodaccNumAnn; $tabAnnonces[$idann]['Bodacc_Code']=$bodaccType; $tabAnnonces[$idann]['Bodacc_Annee_Parution']=$bodaccAnneePar; $tabAnnonces[$idann]['Bodacc_Num']=$bodaccNumParDB; $tabAnnonces[$idann]['Bodacc_Nojo']=$nojo; $tabAnnonces[$idann]['annonce']=$nomFicAnnHtml; $tabAnnonces[$idann]['Boamp_Pub']=$r1; $tabAnnonces[$idann]['Boamp_Pub_Lib']=$tr1; $tabAnnonces[$idann]['Boamp_Part']=$r2; $tabAnnonces[$idann]['Boamp_Part_Lib']=$tr2; $tabAnnonces[$idann]['Boamp_Dept']=$r3; $tabAnnonces[$idann]['Boamp_Dept_Lib']=$tr3; $tabAnnonces[$idann]['Boamp_Rubrique']=$r4; $tabAnnonces[$idann]['Boamp_Rubrique_Lib']=$tr4; /** Type d'annonce : Insertion, Suppression, Rectificatif, Additif ? **/ if(($r4=='10' || $r4=='R10') && preg_match('/Annulation/Ui',$tr4)) $tabAnnonces[$idann]['typeAnnonce']='Suppression'; else $tabAnnonces[$idann]['typeAnnonce']='Insertion'; $result2 = $xpath->query('DONNEES/RECTIF/.', $annonce); foreach ($result2 as $iCor=>$rectif) { $tabAnnonces[$idann]['typeAnnonce']='Rectificatif'; $title = $xpath->query('NO_ANN', $rectif); $tabAnnonces[$idann]['corrNumAnnonce'.$iCor] = $title->item(0)->nodeValue; $title = $xpath->query('PARUT', $rectif); $tabAnnonces[$idann]['corrNumParution'.$iCor] = $title->item(0)->nodeValue; $title = $xpath->query('TYPE', $rectif); $tabAnnonces[$idann]['corrTypeParution'.$iCor] = $title->item(0)->nodeValue; $title = $xpath->query('DATE', $rectif); $tabAnnonces[$idann]['corrDate'.$iCor] = trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('RUB_INIT', $rectif); $tabAnnonces[$idann]['corrRub'.$iCor] = trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('TXT_INIT', $rectif); $tabAnnonces[$idann]['corrTxtIni'.$iCor] = trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('LIRE', $rectif); $tabAnnonces[$idann]['corrTxtCor'.$iCor] = trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('AJOUTER', $rectif); if (trim(utf8_decode($title->item(0)->nodeValue))<>'') { $tabAnnonces[$idann]['corrAdditif'.$iCor] = trim(utf8_decode($title->item(0)->nodeValue)); $tabAnnonces[$idann]['typeAnnonce']='Additif'; } $title = $xpath->query('AUTRES', $rectif); $tabAnnonces[$idann]['corrAutres'.$iCor] = trim(utf8_decode($title->item(0)->nodeValue)); } /** Zones Boamp A, B, MAPA **/ $title = $xpath->query ('GESTION/RAPPEL/DEP', $annonce); $tabAnnonces[$idann]['Rappel_Dep']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('GESTION/RAPPEL/DEP_ORIGIN', $annonce); $tabAnnonces[$idann]['Rappel_DepOri']=trim(utf8_decode($title->item(0)->nodeValue)); // Publication simultanée BOAMP A et B (Toujours vide) $title = $xpath->query ('GESTION/DOUBLON/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['Doublon']=1; else $tabAnnonces[$idann]['Doublon']=0; // Pour les annonces européenne : Objet du marché $title = $xpath->query ('GESTION/K1', $annonce); $tabAnnonces[$idann]['K1']=trim(utf8_decode($title->item(0)->nodeValue)); // Date de validité $title = $xpath->query ('GESTION/K9', $annonce); $tabAnnonces[$idann]['K9']=trim(utf8_decode($title->item(0)->nodeValue)); switch (strlen($tabAnnonces[$idann]['K9'])) { case 8: $dateValidite=WDate::dateT('dmY', 'Ymd', $tabAnnonces[$idann]['K9']); break; case 6: $dateValidite=WDate::dateT('dmy', 'Ymd', $tabAnnonces[$idann]['K9']); break; default: $dateValidite=0; break; } $tabAnnonces[$idann]['dateValiditeAnn']=$dateValidite; $tabAnnonces[$idann]['data']=array( 'Num_Annonce'=>$bodaccNumAnn, 'dateValiditeAnn'=>$dateValidite, ); /** Acheteur(s) ? du marché **/ $result2 = $xpath->query('DONNEES/IDENT/.', $annonce); if ($result2->length<1) { echo date ('Y/m/d - H:i:s')." - Il n'y a pas d'organisme acheteur pour cette annonce $bodacTypee $idann !".EOL; die(); } /** On traite chaque acheteur **/ foreach ($result2 as $acheteur) { $ach=array(); $title = $xpath->query('NOM', $acheteur); $ach['raisonSociale'] = strtoupper(trim(utf8_decode($title->item(0)->nodeValue))); /** Added 2012-05-28 : Siren of organisation **/ $title = $xpath->query('CODE_IDENT_NATIONAL', $acheteur); $siret=preg_replace('/^FR\d\d/','',trim(strtr(utf8_decode($title->item(0)->nodeValue), array('SIREN'=>'', ' '=>'')))); $siren=$nic=0; if ($siret>1000000 && strlen($siret)>9) { $siren=substr($siret,0,9); $nic=substr($siret,9,5); if ($iInsee->valideSiren($siren, $nic)) { $ach['sirenValide'] = 1; $ach['nicValide'] = 1; } } elseif ($siret>1000000) { $siren=substr($siret,0,9); if ($iInsee->valideSiren($siren)) $ach['sirenValide'] = 1; } $ach['siren'] = $siren; $ach['nic'] = $nic; $title = $xpath->query('TITRE', $acheteur); $ach['titreAcheteur'] = trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('PRM', $acheteur); $ach['destinataire'] = trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('ADRESSE', $acheteur); $ach['adresse'] = strtoupper(trim(utf8_decode($title->item(0)->nodeValue))); $title = $xpath->query('CP', $acheteur); $ach['cp'] = strtoupper(trim(utf8_decode($title->item(0)->nodeValue))); $title = $xpath->query('VILLE', $acheteur); $ach['ville'] = strtoupper(trim(utf8_decode($title->item(0)->nodeValue))); $title = $xpath->query('TEL', $acheteur); $ach['tel'] = strtoupper(trim(utf8_decode($title->item(0)->nodeValue))); $title = $xpath->query('FAX', $acheteur); $ach['fax'] = strtoupper(trim(utf8_decode($title->item(0)->nodeValue))); $title = $xpath->query('MEL', $acheteur); $ach['email'] = trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('URL', $acheteur); $ach['web'] = trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('PAYS', $acheteur); $ach['pays'] = trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('POSTE', $acheteur); $ach['poste'] = trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('URL_PROFIL_ACHETEUR', $acheteur); $ach['webMP'] = trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('AUTRES', $acheteur); $ach['diversAcheteur'] = trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('AGIT_POUR_AUTRE_COMPTE_OUI/.', $acheteur); if ($title->length>0) $ach['agitPourTiers']=1; if ($ach['raisonSociale']=='' && $ach['titreAcheteur']=='' && $ach['destinataire']=='' && $ach['adresse']=='' && $ach['cp']=='' && $ach['ville']=='' && $ach['tel']=='' && $ach['fax']=='' && $ach['email']=='' && $ach['web']=='' && $ach['pays']=='' && $ach['webMP']=='' && $ach['diversAcheteur']=='' && $ach['agitPourTiers']*1==0) continue; // Tout est vide dans ces balises else $tabAnnonces[$idann]['data']['acheteurs'][]=$ach; } $objetDest=''; $tabAnnonces[$idann]['data']['lots']=array(); /*echo 'Nb='.count($tabAnnonces[$idann]['data']['acheteurs']).EOL; echo 'RS='.$tabAnnonces[$idann]['data']['acheteurs'][1]['raisonSociale'].EOL; echo 'titre='.$tabAnnonces[$idann]['data']['acheteurs'][1]['titreAcheteur'].EOL; echo 'dest='.$tabAnnonces[$idann]['data']['acheteurs'][1]['destinataire'].EOL; echo 'adr='.$tabAnnonces[$idann]['data']['acheteurs'][1]['adresse'].EOL; echo 'cp='.$tabAnnonces[$idann]['data']['acheteurs'][1]['cp'].EOL; echo 'ville='.$tabAnnonces[$idann]['data']['acheteurs'][1]['ville'].EOL;*/ if (count($tabAnnonces[$idann]['data']['acheteurs'])==2 && $tabAnnonces[$idann]['data']['acheteurs'][1]['raisonSociale']<>'' && $tabAnnonces[$idann]['data']['acheteurs'][1]['titreAcheteur']=='' && $tabAnnonces[$idann]['data']['acheteurs'][1]['destinataire']=='' && $tabAnnonces[$idann]['data']['acheteurs'][1]['adresse']=='' && $tabAnnonces[$idann]['data']['acheteurs'][1]['cp']=='' && $tabAnnonces[$idann]['data']['acheteurs'][1]['ville']=='') { // Lecture de l'objet du marché qui est mal situé $objetDest=$tabAnnonces[$idann]['data']['acheteurs'][1]['raisonSociale']; } elseif ($result2->length>1 && count($tabAnnonces[$idann]['data']['acheteurs'])>1) { echo date ('Y/m/d - H:i:s')." - Il y a plusieurs organismes acheteur pour cette annonce $bodacTypee $idann !".EOL; // On les concidères commes des lots attribués foreach($tabAnnonces[$idann]['data']['acheteurs'] as $iLot=>$ach) { if ($iLot<1) continue; if (preg_match('/INFRUCTUEUX/i',$ach['raisonSociale']) || preg_match('/SANS SUITE/i',$ach['raisonSociale']) || preg_match('/NON ATTRIBU/i',$ach['raisonSociale']) || preg_match('/EN COURS D\'ATTRIBUTION/i',$ach['raisonSociale']) || preg_match('/ATTRIBU.{1,7} ULT.RIEURE/i',$ach['raisonSociale']) ) continue; $tabLot=array( 'typeInfoLot'=> 'Attribution', 'nom' => $ach['raisonSociale'], 'titre' => trim($ach['titreAcheteur'].' '.$ach['destinataire']), 'adresse' => $ach['adresse'], 'cp' => $ach['cp'], 'ville' => $ach['ville'], 'pays' => $ach['pays'], 'tel' => $ach['tel'], 'poste' => $ach['poste'], 'fax' => $ach['fax'], 'email' => $ach['email'], 'web' => $ach['web'].' '.$ach['webMP'], 'infos' => $ach['diversAcheteur']); $tabAnnonces[$idann]['data']['lots'][]=$tabLot; } }/* R.T.A 97 rue pierre sémard 02430 Gauchy SPL, ZI LILLE-SECLIN, 59472 SECLIN. SPL, ZI LILLE SECLIN, 59472 SECLIN. Lot infructueux, SPL, ZI LILLE SECLIN, 59472 SECLIN. */ /** Activité principale de l'organisme **/ $tabAnnonces[$idann]['data']['typeOrganisme']=array(); $tabAnnonces[$idann]['data']['typeActivite']=array(); // Pouvoir Adjudicateur et/ou entité Adjudicatrice $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/POUVOIR_ADJUDICATEUR/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeOrganisme'][]='Pouvoir Adjudicateur'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/ENTITE_ADJUDICATRICE/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeOrganisme'][]='Entité Adjudicatrice'; $tabAnnonces[$idann]['data']['typeOrganisme']=trim(implode(',', $tabAnnonces[$idann]['data']['typeOrganisme'])); // Type d'activité du pouvoir Adjudicateur $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/ACT_SERV_ADM_PUB/.', $annonce); // 1 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Services généraux des administrations publiques'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/DEF/.', $annonce); // 2 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Défense'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/ORDRE_SEC_PUB/.', $annonce); // 3 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Ordre et sécurité publics'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/ENVIRONNEMENT/.', $annonce); // 4 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Environnement'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/AFF_ECO_FIN/.', $annonce); // 5 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Affaires économiques et financières'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/SANTE/.', $annonce); // 6 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Santé'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/LOG_DEV_COL/.', $annonce); // 7 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Logement et développement collectif'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/PROTECTION_SOCIALE/.', $annonce); // 8 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Protection sociale'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/LOIS_CULT_REL/.', $annonce); // 9 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Loisirs/Culture/Religion'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/EDUCATION/.', $annonce); // 10 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Education'; $title = $xpath->query('DONNEES/TYPE_ACTIVITE_ORG/AUTRE', $annonce); // 11 $tabAnnonces[$idann]['data']['typeActiviteAutre']=trim(utf8_decode($title->item(0)->nodeValue)); if ($tabAnnonces[$idann]['data']['typeActiviteAutre']<>'') $tabAnnonces[$idann]['data']['typeActivite'][]='Autre'; // Type d'activité de l'entité Adjudicatrice $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/PROD_TRANS_DISTRIB_GAZ/.', $annonce); // 12 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Production/Transport et distribution de gaz et de chaleur'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/ELECTRICITE/.', $annonce); // 13 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Electricité'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/PROSP_EXTRACT_PETROLE_GAZ/.', $annonce); // 14 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Prospection et extraction de gaz et de pétrole'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/PROSP_EXTRACT_CHARBON_COMB/.', $annonce); // 15 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Prospection et extraction de charbon et d\'autres combustibles solides'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/EAU/.', $annonce); // 16 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Eau'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/SER_POST/.', $annonce); // 17 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Services postaux'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/SER_CHEMIN_FER/.', $annonce); // 18 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Services de chemin de fer'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/SER_CHEMIN_FER_TRAM_BUS/.', $annonce); // 19 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Services de chemin de fer urbains/tramway/autobus'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/ACT_PORT/.', $annonce); // 20 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Activités portuaires'; $title=$xpath->query('DONNEES/TYPE_ACTIVITE_ORG/ACT_AEROPORT/.', $annonce); // 21 if ($title->length>0) $tabAnnonces[$idann]['data']['typeActivite'][]='Activités aéroportuaires'; $tabAnnonces[$idann]['data']['typeActivite']=trim(implode(',', $tabAnnonces[$idann]['data']['typeActivite'])); /** Infos **/ $title = $xpath->query('DONNEES/INFO/AUTRES', $annonce); $tabAnnonces[$idann]['data']['infAutres']=trim(utf8_decode($title->item(0)->nodeValue)); // Marché Travaux, Fournitures ou Services $tabAnnonces[$idann]['data']['typeMarche']=array(); $title=$xpath->query('DONNEES/INFO/TRAVAUX/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeMarche'][]='Travaux'; $title=$xpath->query('DONNEES/INFO/FOURNITURES/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeMarche'][]='Fournitures'; $title=$xpath->query('DONNEES/INFO/SERVICES/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeMarche'][]='Services'; $tabAnnonces[$idann]['data']['typeMarche']=implode(',', $tabAnnonces[$idann]['data']['typeMarche']); // Catégorie du pouvoir/entité adjudicateur de type Etat, Région, Commune... $tabAnnonces[$idann]['data']['typeAdju']=array(); $title=$xpath->query('DONNEES/INFO/ETAT/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeAdju'][]='Etat'; $title=$xpath->query('DONNEES/INFO/REGION/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeAdju'][]='Region'; $title=$xpath->query('DONNEES/INFO/DEPARTEMENT/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeAdju'][]='Departement'; $title=$xpath->query('DONNEES/INFO/COMMUNE/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeAdju'][]='Commune'; $title=$xpath->query('DONNEES/INFO/EPN/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeAdju'][]='EPN'; $title=$xpath->query('DONNEES/INFO/EPT/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeAdju'][]='EPT'; $title=$xpath->query('DONNEES/INFO/AUTRE_ORIGINE/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeAdju'][]='Autre'; $title=$xpath->query('DONNEES/INFO/INSTITUTION_EUROPEENNE/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeAdju'][]='Europe'; $tabAnnonces[$idann]['data']['typeAdju']=trim(implode(',', $tabAnnonces[$idann]['data']['typeAdju'])); if ($tabAnnonces[$idann]['data']['typeAdju']=='') $tabAnnonces[$idann]['data']['typeAdju']='Autre'; /** Publications **/ $result2 = $xpath->query('DONNEES/INFO/PUBLICATIONS/PUBLICATION/.', $annonce); foreach ($result2 as $publication) { $pub=array(); $title = $xpath->query('PARUTION', $publication); $pub['parution'] = strtoupper(trim(utf8_decode($title->item(0)->nodeValue))); $title = $xpath->query('ANNONCE', $publication); $pub['annonce'] = trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('DATE', $publication); $pub['date'] = trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('AUTRES', $publication); $pub['autres'] = trim(utf8_decode($title->item(0)->nodeValue)); $tabAnnonces[$idann]['data']['publications'][]=$pub; } /** Objet du marché **/ $title = $xpath->query ('DONNEES/OBJET/TITRE', $annonce); $tabAnnonces[$idann]['data']['titre']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/OBJET/OBJET_COMPLET', $annonce); $tabAnnonces[$idann]['data']['objet']=trim(utf8_decode($title->item(0)->nodeValue)); if ($tabAnnonces[$idann]['data']['objet']=='') { $tabAnnonces[$idann]['data']['objet']=$objetDest; $objetDest=''; } $title = $xpath->query ('DONNEES/OBJET/CPV_OBJ', $annonce); $tabAnnonces[$idann]['data']['cpv_obj']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/OBJET/CPV_COMPLEMENT', $annonce); $tabAnnonces[$idann]['data']['cpv_comp']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/OBJET/TITRE_MARCHE', $annonce); $tabAnnonces[$idann]['data']['titreMarche']=trim(utf8_decode($title->item(0)->nodeValue)); // Précisions Marché Travaux, Fournitures ou Services $tabAnnonces[$idann]['data']['typeObjetMarche']=array(); $title=$xpath->query('DONNEES/OBJET/EXECUTION/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeObjetMarche'][]='Exécution'; $title=$xpath->query('DONNEES/OBJET/CONCEPT_REALIS/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeObjetMarche'][]='Conception-Réalisation'; $title=$xpath->query('DONNEES/OBJET/ACHAT/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeObjetMarche'][]='Achat'; $title=$xpath->query('DONNEES/OBJET/LOC/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeObjetMarche'][]='Location'; $title=$xpath->query('DONNEES/OBJET/CREDIT_BAIL/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeObjetMarche'][]='Crédit-Bail'; $title=$xpath->query('DONNEES/OBJET/LOC_VENTE/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['typeObjetMarche'][]='Location-Vente'; $tabAnnonces[$idann]['data']['typeObjetMarche']=implode(',', $tabAnnonces[$idann]['data']['typeObjetMarche']); $title = $xpath->query ('DONNEES/OBJET/EXECUTION_OUVRAGE', $annonce); $tabAnnonces[$idann]['data']['ouvrage']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/OBJET/CATEGORIE_SERVICES', $annonce); $tabAnnonces[$idann]['data']['catService']=str_replace('.','',trim(utf8_decode($title->item(0)->nodeValue))); $title = $xpath->query ('DONNEES/OBJET/ART27CMP', $annonce); $tabAnnonces[$idann]['data']['article27']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/OBJET/LIEU_EXEC_LIVR', $annonce); $tabAnnonces[$idann]['data']['lieuExecLiv']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/OBJET/LIEU_EXEC', $annonce); $tabAnnonces[$idann]['data']['lieuExec']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/OBJET/LIEU_LIVR', $annonce); $tabAnnonces[$idann]['data']['lieuLiv']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/OBJET/CODE_NUTS', $annonce); $tabAnnonces[$idann]['data']['nuts']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/OBJET/AVIS_IMPLIQUE_MARCHE_PUBLIC/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['avisImpMP']=1; $title = $xpath->query ('DONNEES/OBJET/AVIS_IMPLIQUE_ACCORD_CADRE/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['accordCadre']=1; $title = $xpath->query ('DONNEES/OBJET/AVIS_IMPLIQUE_SAD/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['marcheSAD']=1; $title = $xpath->query ('DONNEES/OBJET/ACCORD_CADRE_PLUSIEURS_OPERATEURS/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['accordNoper']=1; $title = $xpath->query ('DONNEES/OBJET/ACCORD_CADRE_UN_SEUL_OPERATEUR/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['accord1oper']=1; $title = $xpath->query ('DONNEES/OBJET/NB_PARTICIPANTS', $annonce); $tabAnnonces[$idann]['data']['accordNbPar']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/OBJET/NB_MAX_PARTICIPANTS', $annonce); $tabAnnonces[$idann]['data']['accordNbParMax']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/OBJET/DUREE_ACCORD_CADRE_AN', $annonce); $tabAnnonces[$idann]['data']['accordDureeAn']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/OBJET/DUREE_ACCORD_CADRE_MOIS', $annonce); $tabAnnonces[$idann]['data']['accordDureeMois']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/OBJET/ACCORD_CADRE_SUP_QUATRE_ANS_JUSTIFICATION', $annonce); $tabAnnonces[$idann]['data']['accord4ansInfos']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/OBJET/ACCORD_CADRE_VALEUR', $annonce); $tabAnnonces[$idann]['data']['accordValeur']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/OBJET/FREQUENCE_ET_VALEUR_DES_MARCHES', $annonce); $tabAnnonces[$idann]['data']['accordFreqMarche']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/OBJET/AUTRES', $annonce); $tabAnnonces[$idann]['data']['objetAutre']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/ENVOI_BOMP', $annonce); $tabAnnonces[$idann]['data']['envoiBOMP']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/TITRE', $annonce); $tabAnnonces[$idann]['data']['titreAnnonce']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/AUTRES', $annonce); $tabAnnonces[$idann]['data']['autres']=trim(utf8_decode($title->item(0)->nodeValue)); if ($tabAnnonces[$idann]['data']['autres']=='' && $objetDest<>'') $tabAnnonces[$idann]['data']['autres']=$objetDest; elseif ($tabAnnonces[$idann]['data']['autres']<>'' && $objetDest<>'') $tabAnnonces[$idann]['data']['autres'].=' / '.$objetDest; /** Caractéristiques **/ $title = $xpath->query ('DONNEES/CARACTERISTIQUES/TITRE', $annonce); $tabAnnonces[$idann]['data']['carTitre']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/CARACTERISTIQUES/QUANTITE', $annonce); $tabAnnonces[$idann]['data']['carQuantite']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/CARACTERISTIQUES/AUTRES', $annonce); $tabAnnonces[$idann]['data']['carAutre']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/CARACTERISTIQUES/OPTIONS', $annonce); $tabAnnonces[$idann]['data']['carOption']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/CARACTERISTIQUES/VARIANTE_OUI', $annonce); $tabAnnonces[$idann]['data']['varianteInfo']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('DONNEES/CARACTERISTIQUES/VARIANTE/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['variante']=1; $title = $xpath->query('DONNEES/CARACTERISTIQUES/UNIQUE/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['marcheUnique']=1; $title = $xpath->query('DONNEES/CARACTERISTIQUES/DIV_EN_LOTS/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['lots']=1; $title = $xpath->query('DONNEES/CARACTERISTIQUES/OFFRE_UN/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['lot1']=1; $title = $xpath->query('DONNEES/CARACTERISTIQUES/OFFRE_PLUSIEURS/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['lotN']=1; $title = $xpath->query('DONNEES/CARACTERISTIQUES/OFFRE_TOUS/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['lotTous']=1; $title = $xpath->query('DONNEES/CARACTERISTIQUES/VARIANTE_LOTS/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['lotVariantes']=0; else $tabAnnonces[$idann]['data']['lotVariantes']=1; $title = $xpath->query('DONNEES/CARACTERISTIQUES/AMP_OUI/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['amp']=1; $title = $xpath->query('DONNEES/CARACTERISTIQUES/AMP_NON/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['amp']=0; $title = $xpath->query ('DONNEES/CARACTERISTIQUES/ESTIMATION_VALEUR', $annonce); $tabAnnonces[$idann]['data']['estimValeur']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/CARACTERISTIQUES/ESTIMATION_VALEUR_MINI', $annonce); $tabAnnonces[$idann]['data']['estimValeurMin']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/CARACTERISTIQUES/ESTIMATION_VALEUR_MAXI', $annonce); $tabAnnonces[$idann]['data']['estimValeurMax']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/CARACTERISTIQUES/CALENDRIER_OPTIONS_MOIS', $annonce); $tabAnnonces[$idann]['data']['calOptMois']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/CARACTERISTIQUES/CALENDRIER_OPTIONS_AN', $annonce); $tabAnnonces[$idann]['data']['calOptAn']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/CARACTERISTIQUES/NB_RECONDUCTIONS', $annonce); $tabAnnonces[$idann]['data']['nbRecond']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/CARACTERISTIQUES/NB_RECONDUCTIONS_MIN', $annonce); $tabAnnonces[$idann]['data']['nbRecondMin']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/CARACTERISTIQUES/NB_RECONDUCTIONS_MAX', $annonce); $tabAnnonces[$idann]['data']['nbRecondMax']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/CARACTERISTIQUES/CALENDRIER', $annonce); $tabAnnonces[$idann]['data']['calendrier']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/CARACTERISTIQUES/AVIS_PERIODIQUE_INDICATIF/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['avisPeriodInd']=1; $title = $xpath->query ('DONNEES/CARACTERISTIQUES/SYSTEME_QUALIFICATION/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['sysQualif']=1; /** Durée(s) **/ $title = $xpath->query ('DONNEES/DUREE/TITRE', $annonce); $tabAnnonces[$idann]['data']['dureeTitre']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/DUREE/EN_DUREE', $annonce); $tabAnnonces[$idann]['data']['dureeDelai']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/DUREE/DATE_DEB', $annonce); $tabAnnonces[$idann]['data']['dureeDebut']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/DUREE/DATE_FIN', $annonce); $tabAnnonces[$idann]['data']['dureeFin']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/DUREE/DEB_PRESTATION', $annonce); $tabAnnonces[$idann]['data']['dureeDebPrestation']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/DUREE/DEB_TRAVAUX', $annonce); $tabAnnonces[$idann]['data']['dureeDebTravaux']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/DUREE/AUTRES', $annonce); $tabAnnonces[$idann]['data']['dureeAutre']=trim(utf8_decode($title->item(0)->nodeValue)); /** Délais **/ $title = $xpath->query ('DONNEES/DELAI/RECEPT_CANDIDAT', $annonce); $tabAnnonces[$idann]['data']['delaiRecptCandid']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/DELAI/RECEPT_OFFRES', $annonce); $tabAnnonces[$idann]['data']['delaiRecptOffres']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/DELAI/LIMIT_ENVOI_INVIT', $annonce); $tabAnnonces[$idann]['data']['delaiInvitation']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/DELAI/REMISE_CANDIDAT', $annonce); $tabAnnonces[$idann]['data']['delaiRemisCandid']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/DELAI/VALIDITE_OFFRE', $annonce); $tabAnnonces[$idann]['data']['delaiValidOffre']=trim(utf8_decode($title->item(0)->nodeValue)); // $title = $xpath->query ('DONNEES/DELAI/AUTRES', $annonce); // $tabAnnonces[$idann]['data']['dureeDebTravaux']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/DELAI/AUTRES', $annonce); $tabAnnonces[$idann]['data']['delaiAutre']=trim(utf8_decode($title->item(0)->nodeValue)); /** Type de procédure **/ $node=$annonce->getElementsByTagName('PROCEDURE|PROCEDURES'); foreach ($node as $child) { if (@$child->getAttribute('type')<>'') { // Type de procédure $tabAnnonces[$idann]['data']['procType']=$child->getAttribute('type'); $title = $xpath->query ('TITRE', $child); $tabAnnonces[$idann]['data']['procTitre']=trim(utf8_decode($title->item(0)->nodeValue)); // Urgence & Avis 12 Mois : Oui/Non $title=$xpath->query('JUSTIF_URGENCE/.', $child); if ($title->length>0) $tabAnnonces[$idann]['data']['procUrgence']=1; $title=$xpath->query('AVIS_12MOIS/.', $child); if ($title->length>0) $tabAnnonces[$idann]['data']['procAvis12']=1; // Autres $title = $xpath->query ('DATE_PREINFO', $child); $tabAnnonces[$idann]['data']['procPreInfo']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DATE_ENVOI_JOUE', $child); $tabAnnonces[$idann]['data']['procJoueDate']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DATE_JOUE_AUTRE', $child); $tabAnnonces[$idann]['data']['procJoueAutre']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DATE_AVIS_PROFIL_ACHETEUR', $child); $tabAnnonces[$idann]['data']['procAvis']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('AUTRES', $child); $tabAnnonces[$idann]['data']['procTypeAutre']=trim(utf8_decode($title->item(0)->nodeValue)); break; } } /** Procédure/Lots **/ $tabLotOri=array(); $title=$xpath->query('DONNEES/PROCEDURES/LOTS/.', $annonce); if ($title->length>0) $tabLotOri[]='Attribution'; $title=$xpath->query('DONNEES/LOTS/.', $annonce); if ($title->length>0) $tabLotOri[]='Description'; //$node=$annonce->getElementsByTagName('PROCEDURES/LOTS'); $result2 = $xpath->query('DONNEES/PROCEDURES/LOTS/.|DONNEES/LOTS/.', $annonce); $strLots=''; foreach ($result2 as $child) { if (@$tabAnnonces[$idann]['data']['lotsTitre']=='') $tabAnnonces[$idann]['data']['lotsTitre']=trim(utf8_decode($child->nodeValue)); $dom = new DOMDocument('1.0', 'iso-8859-1'); $elem=$dom->createElement('lots'); $dom->appendChild($dom->importNode($child, true)); $strLots=$dom->saveXML(); } $tabLots=explode('', $strLots); foreach($tabLots as $iLot=>$strLots) { //if ($iLot<1) continue; $strLots=''.$strLots; $tabLot=array('typeInfoLot'=>implode(',',$tabLotOri)); $tabLot['titre']=trim(htm2txt(@getTextInHtml($strLots, '', 'TITRE>', ''))); $tabLot['num']=trim(htm2txt(@getTextInHtml($strLots, '', 'NUM_LOT>', ''))); $tabLot['desc']=trim(htm2txt(@getTextInHtml($strLots, '', 'DESC>', ''))); if ($tabLot['desc']=='') $tabLot['desc']=trim(htm2txt(@getTextInHtml($strLots, '', 'DESC_LOT>', ''))); /**@todo plusieurs lignes NOM possibles !!! **/ $tabLot['nom']=trim(htm2txt(@getTextInHtml($strLots, '', 'NOM>', ''))); $tabLot['adresse']=trim(htm2txt(@getTextInHtml($strLots, '', 'ADRESSE>', ''))); $tabLot['cp']=trim(htm2txt(@getTextInHtml($strLots, '', 'CP>', ''))); $tabLot['ville']=trim(htm2txt(@getTextInHtml($strLots, '', 'VILLE>', ''))); $tabLot['pays']=trim(htm2txt(@getTextInHtml($strLots, '', 'PAYS>', ''))); $tabLot['tel']=trim(htm2txt(@getTextInHtml($strLots, '', 'TEL>', ''))); $tabLot['poste']=trim(htm2txt(@getTextInHtml($strLots, '', 'POSTE>', ''))); $tabLot['fax']=trim(htm2txt(@getTextInHtml($strLots, '', 'FAX>', ''))); $tabLot['email']=trim(htm2txt(@getTextInHtml($strLots, '', 'MEL>', ''))); $tabLot['web']=trim(htm2txt(@getTextInHtml($strLots, '', 'URL>', ''))); $tabLot['montant']=trim(htm2txt(@getTextInHtml($strLots, '', 'MONTANT_HT>', ''))); if ($tabLot['montant']<>'') $tabLot['montant'].=' HT'; else { $tabLot['montant']=trim(htm2txt(@getTextInHtml($strLots, '', 'HT">', ''))); if ($tabLot['montant']<>'') $tabLot['montant'].=' HT'; else { $tabLot['montant']=trim(htm2txt(@getTextInHtml($strLots, '', 'MONTANT_INDEFINI>', ''))); if ($tabLot['montant']<>'') $tabLot['montant'].=' INDEFINI'; else $tabLot['montant']=trim(htm2txt(@getTextInHtml($strLots, '', 'MONTANT>', ''))); } } $tabLot['montantAnMin']=trim(htm2txt(@getTextInHtml($strLots, '', 'MONTANT_MINI_ANNUEL>', ''))); $tabLot['montantAnMax']=trim(htm2txt(@getTextInHtml($strLots, '', 'MONTANT_MAXI_ANNUEL>', ''))); $tabLot['offreMoins']=trim(htm2txt(@getTextInHtml($strLots, '', 'OFFRE_MOINS>', ''))); // $tabLot['offrePlus']=trim(htm2txt(@getTextInHtml($strLots, '', 'OFFRE_PLUS>', ''))); // $tabLot['trancheCond']=trim(htm2txt(@getTextInHtml($strLots, '', 'TRANCHE_CONDITIONNELLE>', ''))); $tabLot['trancheFerme']=trim(htm2txt(@getTextInHtml($strLots, '', 'TRANCHE_FERME>', ''))); $tabLot['dateAttrib']=trim(htm2txt(@getTextInHtml($strLots, '', 'DATE_ATT_MARCHE>', ''))); // dateAttrib if ($tabLot['dateAttrib']=='') $tabLot['dateAttrib']=trim(htm2txt(@getTextInHtml($strLots, '', 'DATE_ATT_MAR>', ''))); // dateAttrib $tabLot['dateAttribLot']=trim(htm2txt(@getTextInHtml($strLots, '', 'DATE_ATT_LOT>', ''))); // $tabLot['nbOffres']=trim(htm2txt(@getTextInHtml($strLots, '', 'NB_OFFRES>', ''))); // $tabLot['nbOffresLot']=trim(htm2txt(@getTextInHtml($strLots, '', 'NB_OFFRES_LOT>', ''))); // $tabLot['nbPart']=trim(htm2txt(@getTextInHtml($strLots, '', 'NB_PARTICIPANTS>', ''))); // $tabLot['nbPartEtr']=trim(htm2txt(@getTextInHtml($strLots, '', 'NB_PARTICIPANTS_ETR>', ''))); // $tabLot['primeEnv']=trim(htm2txt(@getTextInHtml($strLots, '', 'PRIME_ENVIS>', ''))); // $tabLot['primeAtt']=trim(htm2txt(@getTextInHtml($strLots, '', 'PRIME_ATT>', ''))); // $tabLot['primeAttrib']=trim(htm2txt(@getTextInHtml($strLots, '', 'PRIME_ATTRIBUEE>', ''))); // $tabLot['autre']=trim(htm2txt(@getTextInHtml($strLots, '', 'AUTRES>', ''))); $tabLot['autreRens']=trim(htm2txt(@getTextInHtml($strLots, '', 'AUTRES_RENS>', ''))); $tabLot['autreInfo']=trim(htm2txt(@getTextInHtml($strLots, '', 'AUTRES_INFO>', ''))); $tabLot['sousTrait']=trim(htm2txt(@getTextInHtml($strLots, '', 'SOUS_TRAITANCE>', ''))); $tabLot['sousTraitVal']=trim(htm2txt(@getTextInHtml($strLots, '', 'DESCRIPTION_VALEUR_S_TRAITEES>', ''))); $tabLot['intitule']=trim(htm2txt(@getTextInHtml($strLots, '', 'INTITULE>', ''))); $tabLot['nomenclature']=trim(htm2txt(@getTextInHtml($strLots, '', 'NOMENC_LOT>', ''))); $tabLot['nomenclature'].=trim(htm2txt(@getTextInHtml($strLots, '', 'NOMENCLATURE>', ''))); $tabLot['eq'].=trim(htm2txt(@getTextInHtml($strLots, '', 'E_Q>', ''))); $tabLot['objets']=trim(htm2txt(@getTextInHtml($strLots, '', 'OBJETS_COMPL>', ''))); $tabLot['cpv']=trim(htm2txt(@getTextInHtml($strLots, '', 'CPV_OBJET_LOT>', ''))); $tabLot['cpvComp']=trim(htm2txt(@getTextInHtml($strLots, '', 'CPV_COMPL_LOT>', ''))); $tabLot['volume']=trim(htm2txt(@getTextInHtml($strLots, '', 'VOLUME_LOT>', ''))); $tabLot['execution']=trim(htm2txt(@getTextInHtml($strLots, '', 'EXEC_LOT>', ''))); $tabLot['livraison']=trim(htm2txt(@getTextInHtml($strLots, '', 'LIVR_LOT>', ''))); $tabLot['coutEstime']=trim(htm2txt(@getTextInHtml($strLots, '', 'COUT_ESTIME>', ''))); $tabLot['coutEstimeMin']=trim(htm2txt(@getTextInHtml($strLots, '', 'COUT_ESTIME_MINI>', ''))); $tabLot['coutEstimeMax']=trim(htm2txt(@getTextInHtml($strLots, '', 'COUT_ESTIME_MAXI>', ''))); $tabLot['dureeJours']=trim(htm2txt(@getTextInHtml($strLots, '', 'DUREE_JOURS>', ''))); $tabLot['dureeMois']=trim(htm2txt(@getTextInHtml($strLots, '', 'DUREE_MOIS>', ''))); $tabLot['dateDeb']=trim(htm2txt(@getTextInHtml($strLots, '', 'DATE_DEBUT>', ''))); $tabLot['dateFin']=trim(htm2txt(@getTextInHtml($strLots, '', 'DATE_FIN>', ''))); $tabLot['infos']=trim(htm2txt(@getTextInHtml($strLots, '', 'INFOS_COMPLEMENTAIRES>', ''))); if (preg_match('/query ('DONNEES/PROCEDURES/DATE_ATT', $annonce); $tabAnnonces[$idann]['data']['dateAttribution']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/PROCEDURES/AUTRES|DONNEES/PROCEDURE/AUTRES', $annonce); $tabAnnonces[$idann]['data']['autres1']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/PROCEDURES/AUTRES_INF', $annonce); $tabAnnonces[$idann]['data']['autres1'].=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/PROCEDURES/AUTRES_INF', $annonce); $tabAnnonces[$idann]['data']['autresInfos']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/PROCEDURES/NB_OFFRES', $annonce); $tabAnnonces[$idann]['data']['nbOffres']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/PROCEDURES/NB_PARTICIPANTS', $annonce); $tabAnnonces[$idann]['data']['nbPart']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/PROCEDURES/NB_PARTICIPANTS_ETR', $annonce); $tabAnnonces[$idann]['data']['nbPartEtr']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/PROCEDURES/VALEUR_PRIME', $annonce); $tabAnnonces[$idann]['data']['valeurPrime']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/PROCEDURES/DATE_ENVOI', $annonce); $tabAnnonces[$idann]['data']['dateEnvoi']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/PROCEDURES/AMP_OUI/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['amp']=1; $title = $xpath->query ('DONNEES/PROCEDURES/AMP_NON/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['amp']=0; $title = $xpath->query ('DONNEES/PROCEDURES/CONCLUSION_ACCORD_CADRE/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['accordCadre']=1; $title = $xpath->query ('DONNEES/PROCEDURES/MARCHES_SAD/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['marcheSAD']=1; $title = $xpath->query ('DONNEES/PROCEDURES/ENCHERE_ELECTRONIQUE_OUI/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['enchere']=1; $title = $xpath->query ('DONNEES/PROCEDURES/ENCHERE_ELECTRONIQUE_NON/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['enchere']=0; /** Critères d'attributions */ // BOAMP C : Avis d'attribution $title = $xpath->query ('DONNEES/CRITERES_D_ATTRIBUTION/TITRE', $annonce); $tabAnnonces[$idann]['data']['critereTitre']=trim(utf8_decode($title->item(0)->nodeValue)); $tabAnnonces[$idann]['data']['critereRetenu']=array(); $title = $xpath->query ('DONNEES/CRITERES_D_ATTRIBUTION/CRITERES_CCTP/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['critereRetenu'][]='CCTP'; $title = $xpath->query ('DONNEES/CRITERES_D_ATTRIBUTION/PRIX/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['critereRetenu'][]='Prix'; $title = $xpath->query ('DONNEES/CRITERES_D_ATTRIBUTION/CRITERES_PRIX/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['critereRetenu'][]='Prix'; $title = $xpath->query ('DONNEES/CRITERES_D_ATTRIBUTION/LISTE_CRITERES/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['critereRetenu'][]='Liste'; $title = $xpath->query ('DONNEES/CRITERES_D_ATTRIBUTION/CRITERES_LISTE/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['critereRetenu'][]='Liste'; $tabAnnonces[$idann]['data']['critereRetenu']=array_unique($tabAnnonces[$idann]['data']['critereRetenu']); $tabAnnonces[$idann]['data']['critereRetenu']=trim(implode(',', $tabAnnonces[$idann]['data']['critereRetenu'])); $title = $xpath->query ('DONNEES/CRITERES_D_ATTRIBUTION/AUTRES', $annonce); $tabAnnonces[$idann]['data']['critereInfos']=trim(utf8_decode($title->item(0)->nodeValue)); // Critères d'attributions : Marchés (A, B ou MAPA) /** Renseignements **/ $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/REF_PP', $annonce); $tabAnnonces[$idann]['data']['refMarche']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/ETUDES_MO', $annonce); $tabAnnonces[$idann]['data']['etudes']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/INDEMNISATION', $annonce); $tabAnnonces[$idann]['data']['indemnisation']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/RECOMPENSES', $annonce); $tabAnnonces[$idann]['data']['recompenses']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/PRIMES', $annonce); $tabAnnonces[$idann]['data']['primes']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/PAIEMENTS', $annonce); $tabAnnonces[$idann]['data']['paiements']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/RENS_COMPLEMENT', $annonce); $tabAnnonces[$idann]['data']['rensCompl']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/CONDITIONS_ET_MODE_PAIEMENT_OBTENIR_DOCUMENTS', $annonce); $tabAnnonces[$idann]['data']['paiementsInfos']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/DATE_LIMITE_OBTENTION_DOCUMENTS', $annonce); $tabAnnonces[$idann]['data']['dateLimDocs']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/PRIX_DOCUMENTS', $annonce); $tabAnnonces[$idann]['data']['prixDocs']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/PERS_OUVERTURE_OFFRES', $annonce); $tabAnnonces[$idann]['data']['persOuvOffres']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/DATE_OUVERTURE_OFFRES', $annonce); $tabAnnonces[$idann]['data']['dateOuvOffres']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/LIEU_OUVERTURE_OFFRES', $annonce); $tabAnnonces[$idann]['data']['lieuOuvOffres']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/CALENDRIER_PROCHAIN_AVIS', $annonce); $tabAnnonces[$idann]['data']['prochainAvis']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/CRITERES_EVALUATION_DES_PROJETS', $annonce); $tabAnnonces[$idann]['data']['critEvaluation']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/MEMBRE_JURY', $annonce); $tabAnnonces[$idann]['data']['juryMembres']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/HTTP_DOCUMENTS_MARCHE', $annonce); $tabAnnonces[$idann]['data']['docsUrl']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/AUTRES', $annonce); $tabAnnonces[$idann]['data']['rensAutre']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/LAUREAT/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['laureat']=1; $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/MARCHE_PERIODIQUE_OUI/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['marchePeriod']=1; $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/MARCHE_PERIODIQUE_NON/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['marchePeriod']=0; $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/FONDS_COMMUNAUTAIRES_OUI/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['fondsEurope']=1; $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/FONDS_COMMUNAUTAIRES_NON/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['fondsEurope']=0; $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/DECISION_JURY_CONTRAIGANTE_OUI/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['juryDec']=1; $title = $xpath->query ('DONNEES/RENSEIGNEMENTS/DECISION_JURY_CONTRAIGANTE_NON/.', $annonce); if ($title->length>0) $tabAnnonces[$idann]['data']['juryDec']=0; /** Gestion des différents noeuds de correspondants **/ $tabTypeCorresp=array( 'DONNEES/CORRESPONDANTS/ADMIN_TECH', 'DONNEES/CORRESPONDANTS/TECH', 'DONNEES/CORRESPONDANTS/ADMIN', 'DONNEES/DOCUMENTS', 'DONNEES/CORRESPONDANTS/RENS_COMPLT', 'DONNEES/PROCEDURES_RECOURS/INSTANCE_RECOURS', 'DONNEES/PROCEDURES_RECOURS/ORGANE_MEDIATION', 'DONNEES/PROCEDURES_RECOURS/RENS_RECOURS' ); $tabAnnonces[$idann]['data']['correspondants']=array(); foreach ($tabTypeCorresp as $typeCor) { $result2 = $xpath->query($typeCor.'/.', $annonce); foreach ($result2 as $corresp) { $tabCor=array( 'typeCor'=>strtr($typeCor, array( 'DONNEES/'=>'', 'CORRESPONDANTS/'=>'', 'PROCEDURES_RECOURS/'=>'', ))); $title = $xpath->query('OBTENUS/.', $corresp); if ($title->length>0) $tabCor['obtenus']=1; $title = $xpath->query('ENVOYES/.', $corresp); if ($title->length>0) $tabCor['envoyes']=1; $title = $xpath->query('ACHETEUR', $corresp); $tabCor['acheteur']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('NOM', $corresp); $tabCor['nom']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('ADRESSE', $corresp); $tabCor['adresse']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('CP', $corresp); $tabCor['cp']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('VILLE', $corresp); $tabCor['ville']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('PAYS', $corresp); $tabCor['pays']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('TEL', $corresp); $tabCor['tel']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('POSTE', $corresp); $tabCor['poste']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('FAX', $corresp); $tabCor['fax']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('MEL', $corresp); $tabCor['email']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('URL', $corresp); $tabCor['web']=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query('AUTRES', $corresp); $tabCor['autre']=trim(utf8_decode($title->item(0)->nodeValue)); $tabAnnonces[$idann]['data']['correspondants'][]=$tabCor; } } /** Classes **/ $tabAnnonces[$idann]['data']['classes']=array(); $node = $xpath->query('DONNEES/CLASSES/CLASSE', $annonce); foreach ($node as $child) { $tabAnnonces[$idann]['data']['classes'][]=trim(utf8_decode($child->nodeValue)); $tabClasses[]=trim(utf8_decode($child->nodeValue)); } /** Descripteurs **/ $tabAnnonces[$idann]['data']['descripteurs']=array(); $node = $xpath->query('DONNEES/DESCRIPTEURS/DESCRIPTEUR', $annonce); foreach ($node as $child) { $tabAnnonces[$idann]['data']['descripteurs'][]=trim(utf8_decode($child->nodeValue)); $tabDescripteurs[]=trim(utf8_decode($child->nodeValue)); } /** Sauvegarde de l'annonce en XML **/ $dom = new DOMDocument('1.0', 'iso-8859-1'); $elem=$dom->createElement('ANNONCE_REF'); $dom->appendChild($dom->importNode($annonce, true)); $tabAnnonces[$idann]['balises']=$dom->saveXML(); } $tabClasses=array_unique($tabClasses); $tabDescripteurs=array_unique($tabDescripteurs); if ($debutNom3=='DEF' || $debutNom3=='DAF') { //print_r($tabAnnonces); //die(); echo date ('Y/m/d - H:i:s')." - BOAMP $debutNom $bodaccAnneePar-$bodaccNumPar du $dateBodacc : fichier nomn pris en charge '$nomFichier' !".EOL; continue; //IKI// } } elseif ($debutNom=='PCL_B') { if ($validateSchema) { /** VALIDATION SCHEMA **/ if (!$dom_object->schemaValidate('/var/www/batch/bodacc/Bodacc_PCL_Redif_V12.xsd')) { echo date ('Y/m/d - H:i:s')." - ERREUR : Fichier $nomFichier, Date de Bodacc '$dateBodaccTxt' Schéma XML non validé !".EOL; if (!$reload) { echo EOL.'$forceContinue='.$forceContinue.EOL; if ($forceContinue) continue; else { echo date ('Y/m/d - H:i:s')." - Conseil : Corrigez le fichier XML ".BODACC_LOCAL_DIR.str_replace('.taz','.xml', $nomFichier)." et relancer avec l'option _u !".EOL; die(); } } } else echo date ('Y/m/d - H:i:s')." - BODACC $debutNom $bodaccAnneePar-$bodaccNumPar du $dateBodacc : Schéma du fichier $nomFichier validé.".EOL; } else echo date ('Y/m/d - H:i:s')." - BODACC $debutNom $bodaccAnneePar-$bodaccNumPar du $dateBodacc : Schéma du fichier $nomFichier ignoré.".EOL; /** Chargement des Annonces **/ $result = $xpath->query("//PCL_REDIFF/annonces/annonce/."); if (count($result)==0) { echo date ('Y/m/d - H:i:s')." - Il n'y a aucune annonce à traiter dans ce flux XML !".EOL; die(); } /** ** Traitement de chaque annonce du noeud PCL_REDIFF **/ foreach ($result as $annonce) { /* On réinitialise toutes les variables servant a reconstruire le texte de l'annonce */ $typeBodacc=$numeroParutionCorr=$dateCorr=$numeroAnnonceCorr=''; $dateJuge=$nature=$siren=$codeRM=$deptRM=$codeRCS=$nomGreffeImmat=$raisonSociale=$enseigne=$sigle=$fj=$activite=$adr=$cp=$ville=$complementJugement=''; $bodaccNumAnnCalc++; $title = $xpath->query ("numeroAnnonce", $annonce); $bodaccNumAnn=$title->item(0)->nodeValue; if ($bodaccNumAnnCalc==1 && $bodaccNumAnn>300) { echo(date ('Y/m/d - H:i:s')." - Chapitre Procédures collectives débutant par l'annonce n°$bodaccNumAnn...".EOL); $bodaccNumAnnCalc=$bodaccNumAnn*1; /* On initialise le 1er n° d'annonce trouvé dans le bodacc pour contrôle */ if (!isset($tabFichiers[$nomFichier]['Num_Annonce_Deb'])) $tabFichiers[$nomFichier]['Num_Annonce_Deb']=$bodaccNumAnn; } else { if (!preg_match('/^'.$bodaccNumAnnCalc.'/', str_replace('.','',''.$bodaccNumAnn)) ) { $endTmp=false; for ($iTmp=1; $iTmp<19; $iTmp++) { if (preg_match('/^'.($bodaccNumAnnCalc+$iTmp).'/', str_replace('.','',''.$bodaccNumAnn))) { echo(date ('Y/m/d - H:i:s')." - Numéro d'annonce $bodaccNumAnn différent du numéro attendu $bodaccNumAnnCalc !".EOL); $bodaccNumAnnCalc=$bodaccNumAnnCalc+$iTmp; // Il y a un loupé de numérotation au bodacc entre 2 annonces $endTmp=true; break; } } // if (!$endTmp) // die(date ('Y/m/d - H:i:s')." - Numéro d'annonce $bodaccNumAnn complètement différent du numéro attendu $bodaccNumAnnCalc !".EOL); } } $bodaccNumAnn=$bodaccNumAnnCalc; if (!isset($tabFichiers[$nomFichier]['Num_Annonce_Deb'])) { $tabFichiers[$nomFichier]['Num_Annonce_Deb']=$bodaccNumAnn; } $tmp=explode(' ', $bodaccNumAnn); $bodaccNumAnn=trim($tmp[0]); /** Numéro unique interne à ce programme pour chaque annonce **/ $idann=''.$bodaccAnneePar.'-'.$bodaccNumPar.'-'.$bodaccNumAnn; $title = $xpath->query ("nojo", $annonce); $nojo=$title->item(0)->nodeValue; /** On initialise le tableau $tabAnnonces[$idann] qui contient toutes les infos de l'annonce **/ $tabAnnonces[$idann]['Bodacc_Date_Parution']=$dateBodacc; $tabAnnonces[$idann]['Num_Annonce']=$bodaccNumAnn; $tabAnnonces[$idann]['Bodacc_Code']=$bodaccType; $tabAnnonces[$idann]['Bodacc_Annee_Parution']=$bodaccAnneePar; $tabAnnonces[$idann]['Bodacc_Num']=substr($bodaccNumPar,1,strlen($bodaccNumPar)-1); $tabAnnonces[$idann]['Bodacc_NOJO']=$nojo; $tabAnnonces[$idann]['data']=array(); /** On récupère l'annonce XML **/ $dom = new DOMDocument('1.0', 'iso-8859-1'); //$dom->formatOutput=true; $elem=$dom->createElement('annonce'); $dom->appendChild($dom->importNode($annonce, true)); $tabAnnonces[$idann]['balises']=$dom->saveXML(); $title = $xpath->query ('typeAnnonce/*', $annonce); $typeAnnonce=strtolower($title->item(0)->nodeName); if ($typeAnnonce=='creation') $tabAnnonces[$idann]['typeAnnonce']='Insertion'; elseif ($typeAnnonce=='rectificatif' || $typeAnnonce=='annulation') { if ($typeAnnonce=='annulation') $tabAnnonces[$idann]['typeAnnonce']='Suppression'; else $tabAnnonces[$idann]['typeAnnonce']='Rectificatif'; $tabAnnonces[$idann]['corrPage']=NULL; $tabAnnonces[$idann]['corrTexteRectificatif']=NULL; $title = $xpath->query ('parutionAvisPrecedent/numeroAnnonce', $annonce); $numeroAnnonceCorr=$title->item(0)->nodeValue; $tabAnnonces[$idann]['corrNum_Annonce']=$numeroAnnonceCorr; $title = $xpath->query ('parutionAvisPrecedent/nomPublication', $annonce); $typeBodacc=substr($title->item(0)->nodeValue,-1); $title = $xpath->query ('parutionAvisPrecedent/numeroParution', $annonce); $numeroParutionCorr=$title->item(0)->nodeValue; $tabAnnonces[$idann]['corrNumParution']=$typeBodacc.substr($numeroParutionCorr,-3); $title = $xpath->query ('parutionAvisPrecedent/dateParution', $annonce); $dateCorr=str_replace(chr(160),' ',utf8_decode($title->item(0)->nodeValue)); $tabAnnonces[$idann]['corrBodacc_Date_Parution']=WDate::dateT('dMY', 'Ymd', str_replace(' ','',$dateCorr)); } else { echo date ('Y/m/d - H:i:s')." - ERREUR : Type d'annonce '$typeAnnonce' inconnu pour l'annonce $idann !".EOL; die(); } $title = $xpath->query ("numeroDepartement", $annonce); $bodaccDepNum=$title->item(0)->nodeValue; $tabAnnonces[$idann]['Tribunal_Dept']=$bodaccDepNum; $bodaccDep=$iInsee->getDepartement($bodaccDepNum); $depInconnu=false; if (!$iInsee->isDepartement($bodaccDepNum)) { $depInconnu=true; echo date ('Y/m/d - H:i:s')." - ERREUR : Département '$bodaccDepNum' inconnu pour l'annonce $idann !".EOL; } $title = $xpath->query ("tribunal", $annonce); $texte = utf8_decode($title->item(0)->nodeValue); $tabAnnonces[$idann]['Tribunal_Code']=$iBodacc->getTribunalCode($texte, $bodaccDepNum); if (!$tabAnnonces[$idann]['Tribunal_Code'] && ( ( $bodaccDepNum>70 && $bodaccDepNum<77) || $bodaccDepNum==85 ) ) { // A priori il s'agit d'une erreur de codification des DOM par la DJO !!!! $title = $xpath->query ("adresse/france/codePostal", $annonce); for ($i = 0; $i < $title->length; $i++) { $bodaccDepNum=substr($title->item($i)->nodeValue,0,3)*1; if ( ($bodaccDepNum>970 && $bodaccDepNum<976 ) || $bodaccDepNum==85 ) { //echo date ('Y/m/d - H:i:s')." - ERREUR : Tribunal '$texte' (Dépt. $bodaccDepNum) TROUVE pour l'annonce $idann !".EOL; //die(); break; } } //if ($bodaccDepNum==977) $bodaccDepNum=974; // Bug Bodacc } $tabAnnonces[$idann]['Tribunal_Code']=$iBodacc->getTribunalCode($texte, $bodaccDepNum); if (!$iBodacc->isTribunal($tabAnnonces[$idann]['Tribunal_Code'])) { $tabAnnonces[$idann]['Tribunal_Code']=$iBodacc->getTribunalCode($texte, $bodaccDepNumPre); if (!$iBodacc->isTribunal($tabAnnonces[$idann]['Tribunal_Code'])) { echo date ('Y/m/d - H:i:s')." - ERREUR : Tribunal '$texte' (Dépt. $bodaccDepNum) inconnu pour l'annonce $idann !".EOL; if ($noQuestion) { die(); } else { while (1) { echo date('Y/m/d - H:i:s') ." - Saisir le code du Tribunal ('? XXX' pour liste des tribunaux contenant XXX) ?"; $saisie = trim(fgets(STDIN)); if (trim($saisie)=='?') die(); elseif (substr($saisie,0,1)=='?') afficheListeTrib(substr($saisie,2,strlen($saisie)-2)); elseif ($iBodacc->isTribunal(trim($saisie))) break; else echo date ('Y/m/d - H:i:s')." - Code tribunal saisit '$saisie' inconnu !".EOL; } if ($iBodacc->isTribunal(trim($saisie))) $tabAnnonces[$idann]['Tribunal_Code']=trim($saisie); } } } if ($depInconnu) die('Erreur vérifier tribunal/département PCL :'.EOL.print_r($tabAnnonces[$idann])); //if ($depInconnu) /** Si n° de département non communiqué dans l'annonce, on l'initialise par rapport au code Tribunal **/ // $tabAnnonces[$idann]['Tribunal_Dept']=$iBodacc->getTribunalNom($tribunalAnn); $title = $xpath->query ("jugement/famille", $annonce); $famille = trim(utf8_decode($title->item(0)->nodeValue)); if ($famille=='') { $title = $xpath->query ("jugementAnnule/famille", $annonce); $famille = trim(utf8_decode($title->item(0)->nodeValue)); } $title = $xpath->query ("jugement/nature", $annonce); $nature = trim(utf8_decode($title->item(0)->nodeValue)); if ($nature=='') { $title = $xpath->query ("jugementAnnule/nature", $annonce); $nature = trim(utf8_decode($title->item(0)->nodeValue)); } $tabAnnonces[$idann]['Rubrique_Bodacc']='A8'.$famille.'.'.$nature; $tabFam[]=$famille; //$texte=$iBodacc->getLibRubriqueBodacc($rubrique).' ('.$rubrique.')'; /* if (!$iBodacc->isRubriqueBodacc($rubrique)) { echo date ('Y/m/d - H:i:s')." - ERREUR : Rubrique '$texte' inconnue pour l'annonce $idann !".EOL; die(); }*/ /** **/ $title = $xpath->query ("jugement/date", $annonce); $dateJuge=trim(str_replace(chr(160),' ',utf8_decode($title->item(0)->nodeValue))); $tabAnnonces[$idann]['data']['dateJugement']=WDate::dateT('dMY', 'Ymd', str_replace(' ','',$dateJuge)); if ($dateJuge=='') { $title = $xpath->query ("jugementAnnule/date", $annonce); $dateJuge=trim(str_replace(chr(160),' ',utf8_decode($title->item(0)->nodeValue))); $tabAnnonces[$idann]['data']['dateJugement']=WDate::dateT('dMY', 'Ymd', str_replace(' ','',$dateJuge)); } if (($tabAnnonces[$idann]['data']['dateJugement']*1<=19700101 || $tabAnnonces[$idann]['data']['dateJugement']*1>=date('Ymd')*1) && $tabAnnonces[$idann]['typeAnnonce']<>'Suppression') { print_r($tabAnnonces[$idann]); echo $newXML.EOL; echo date ('Y/m/d - H:i:s')." - Date de jugement incohérente pour cette annonce de ".$tabAnnonces[$idann]['typeAnnonce']." : '$dateJuge' convertie en '".$tabAnnonces[$idann]['data']['dateJugement']."'".EOL; if ($noQuestion) { die(); } else { while (1) { echo date('Y/m/d - H:i:s') ." - Continuer (O/n) ou saisir la nouvelle date de jugement au format SSAAMMJJ ?".EOL; $saisie = strtoupper(trim(fgets(STDIN))); if ($saisie=='O' || $saisie=='') break; elseif ($saisie=='O' || $saisie=='') die(); elseif ($saisie*1>=20080101 && $saisie*1<=date('Ymd')*1) { $tabAnnonces[$idann]['data']['dateJugement']=$saisie; break; } } } } /** **/ $title = $xpath->query ("jugement/complementJugement", $annonce); $complementJugement=trim(utf8_decode($title->item(0)->nodeValue)); if ( !isset($tabAnnonces[$idann]['data']['commentaires']) || !is_array($tabAnnonces[$idann]['data']['commentaires']) ) $tabAnnonces[$idann]['data']['commentaires']=array(); $tabAnnonces[$idann]['data']['commentaires']=array_merge($tabAnnonces[$idann]['data']['commentaires'], array($complementJugement)); if ($complementJugement=='') { $title = $xpath->query ("jugementAnnule/complementJugement", $annonce); $complementJugement=trim(utf8_decode($title->item(0)->nodeValue)); if ( !isset($tabAnnonces[$idann]['data']['commentaires']) || !is_array($tabAnnonces[$idann]['data']['commentaires']) ) $tabAnnonces[$idann]['data']['commentaires']=array(); $tabAnnonces[$idann]['data']['commentaires']=array_merge($tabAnnonces[$idann]['data']['commentaires'], array($complementJugement)); } /** Génération de l'entête de l'annonce en fonction du type d'annonce **/ if ($tabAnnonces[$idann]['typeAnnonce']=='Insertion') { /* Entête de nouvelle annonce : N° Date et type de jugement */ if ($dateJuge=='' && $tabAnnonces[$idann]['data']['dateJugement']*1==0) $annonceTxt="$bodaccNumAnn - $nature.".EOL; else $annonceTxt="$bodaccNumAnn - Date : $dateJuge. $nature.".EOL; } elseif ($tabAnnonces[$idann]['typeAnnonce']=='Suppression') { /* Entête d'annonce d'annulation */ $annonceTxt ="$bodaccNumAnn - Annulation. BODACC $typeBodacc. Numéro de parution : $numeroParutionCorr. Date de parution : $dateCorr. Annonce numéro : $numeroAnnonceCorr. Cet avis est nul et non avenu.".EOL; $annonceTxt.="$nature.".EOL; } else { /* Entête d'annonce de suppression */ $annonceTxt ="$bodaccNumAnn - Rectificatif. BODACC $typeBodacc. Numéro de parution : $numeroParutionCorr. Date de parution : $dateCorr. Annonce numéro : $numeroAnnonceCorr. Cet avis est annulé et remplacé par le suivant.".EOL; if ($dateJuge=='' && $tabAnnonces[$idann]['data']['dateJugement']*1==0) $annonceTxt.=" $nature.".EOL; else $annonceTxt.="Date : $dateJuge. $nature.".EOL; } /** @todo Controler si plusieurs personnes PP ou PM dans l'annonce !!! **/ $title = $xpath->query ("personnePhysique/nom", $annonce); $nbPP=$title->length; $title = $xpath->query ("personneMorale/denomination", $annonce); $nbPM=$title->length; $nbTot=$nbPP+$nbPM; /** Reconstruction d'un XML permettant de traiter facilement les annonces de procol avec plusieurs entreprises citées : ** ** ** ...', ** ... ** ** ** ... **/ $strTmp=$tabAnnonces[$idann]['balises']; $newXML=preg_replace('/^(.*)'.EOL.'/Uis', ''.EOL.'', str_replace('', ''.EOL.''.EOL.'', str_replace('', ''.EOL.''.EOL.'', str_replace(''.EOL.'', $newXML))))); $dom_object2 = new DOMDocument2(); $dom_object2->loadXML($newXML); $xpath2 = new Domxpath($dom_object2); $result2 = $xpath2->query('personnePpPm/.'); if (count($result2)<1) { echo date ('Y/m/d - H:i:s')." - Il n'y a pas d'entreprises PP ou PM pour cette annonce !".EOL; die($newXML); } foreach ($result2 as $personne) { // Mise à blanc des champs textes pour la génération de l'annonce $siren=$codeRM=$deptRM=$codeRCS=$nomGreffeImmat=$raisonSociale=$fj=$nomCommercial=$nationalite=$sigle=''; $enseigne=$activite=$adr=$cp=$ville=''; $title = $xpath2->query("numeroImmatriculation/codeRCS", $personne); $codeRCS = strtoupper(trim(utf8_decode($title->item(0)->nodeValue))); if ($codeRCS<>'RCS') { $title = $xpath2->query("nonInscrit", $personne); $codeRCS = trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query("inscriptionRM/codeRM", $annonce); $codeRM = strtoupper(trim(utf8_decode($title->item(0)->nodeValue))); $title = $xpath->query("inscriptionRM/numeroDepartement", $annonce); $deptRM = trim(utf8_decode($title->item(0)->nodeValue)); } $title = $xpath2->query("numeroImmatriculation/nomGreffeImmat", $personne); $nomGreffeImmat=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath2->query("numeroImmatriculation/numeroIdentificationRCS", $personne); //$siren = str_replace(' ','',$title->item(0)->nodeValue)*1; $siren = str_replace(' ','',preg_replace('/[^0-9]/',' ', $title->item(0)->nodeValue))*1; if ($siren==0) { $title = $xpath->query("inscriptionRM/numeroIdentificationRM", $annonce); $siren = str_replace(' ','',preg_replace('/[^0-9]/',' ', $title->item(0)->nodeValue))*1; } if ($siren<>0) { if ($siren<000100000) { print_r($tabAnnonces[$idann]); echo date ('Y/m/d - H:i:s')." - ERREUR : Siren $siren impossible pour l'annonce $idann !".EOL; }elseif($siren<001000000) $siren='000'.$siren; elseif ($siren<010000000) $siren='00'. $siren; elseif ($siren<100000000) $siren='0'. $siren; } if ( !isset($tabAnnonces[$idann]['siren']) || !is_array($tabAnnonces[$idann]['siren']) ) $tabAnnonces[$idann]['siren']=array(); if ( !isset($tabAnnonces[$idann]['data']['siren']) || !is_array($tabAnnonces[$idann]['data']['siren']) ) { $tabAnnonces[$idann]['data']['siren']=array(); $tabAnnonces[$idann]['data']['sirenValide']=array(); } if ($iInsee->valideSiren($siren)) { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>1))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(1)); } else { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>0))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(0)); } /** **/ $title = $xpath2->query ("personneMorale/denomination", $personne); $raisonSociale = trim(utf8_decode($title->item(0)->nodeValue)); if ($raisonSociale=='') { // NOM $title = $xpath2->query ("personnePhysique/nom", $personne); $raisonSociale = utf8_decode($title->item(0)->nodeValue) . ' ('. // Prénoms $title = $xpath2->query ("personnePhysique/prenom", $personne); for ($i = 0; $i < $title->length; $i++) $raisonSociale.= utf8_decode($title->item($i)->nodeValue).' '; $raisonSociale=trim(preg_replace('/\d/','', str_replace('Object id #', '', $raisonSociale))).')'; // Nom d'usage $title = $xpath2->query ("personnePhysique/nomUsage", $personne); if (trim(utf8_decode($title->item(0)->nodeValue))<>'') $raisonSociale.=". Nom d'usage : ".utf8_decode($title->item(0)->nodeValue); // Pseudonyme $title = $xpath2->query ('personnePhysique/pseudonyme', $personne); if (trim(utf8_decode($title->item(0)->nodeValue))<>'') $raisonSociale.=". Pseudonyme : ".utf8_decode($title->item(0)->nodeValue); } if ( !isset($tabAnnonces[$idann]['data']['raisonSociale']) || !is_array($tabAnnonces[$idann]['data']['raisonSociale']) ) $tabAnnonces[$idann]['data']['raisonSociale']=array(); if ($typeActe=='vente') $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array('/ACHE/'.$raisonSociale)); else $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array($raisonSociale)); /** **/ $title = $xpath2->query ("personneMorale/formeJuridique", $personne); $fj=utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['FJ']) || !is_array($tabAnnonces[$idann]['data']['FJ']) ) $tabAnnonces[$idann]['data']['FJ']=array(); $tabAnnonces[$idann]['data']['FJ']=array_merge($tabAnnonces[$idann]['data']['FJ'], array($fj)); /** **/ $title = $xpath2->query ("personneMorale/sigle", $personne); $sigle=utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['sigle']) || !is_array($tabAnnonces[$idann]['data']['sigle']) ) $tabAnnonces[$idann]['data']['sigle']=array(); $tabAnnonces[$idann]['data']['sigle']=array_merge($tabAnnonces[$idann]['data']['sigle'], array($sigle)); /** **/ if ( !isset($tabAnnonces[$idann]['data']['adresseSiegeVoie']) || !is_array($tabAnnonces[$idann]['data']['adresseSiegeVoie']) ) $tabAnnonces[$idann]['data']['adresseSiegeVoie']=array(); $title = $xpath2->query ("adresse/france/numeroVoie", $personne); $adr = utf8_decode($title->item(0)->nodeValue); $title = $xpath2->query ("adresse/france/typeVoie", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath2->query ("adresse/france/nomVoie", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath2->query ("adresse/france/complGeographique", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath2->query ("adresse/france/BP", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath2->query ("adresse/france/localite", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); /** **/ $title = $xpath2->query ("adresse/etranger/adresse", $personne); $etranger = utf8_decode($title->item(0)->nodeValue); $title = $xpath2->query ("adresse/etranger/pays", $personne); $pays = utf8_decode($title->item(0)->nodeValue); if ($etranger<>'' || $pays<>'') $adr.='|'.$etranger.'|'.$pays; $tabAnnonces[$idann]['data']['adresseSiegeVoie']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVoie'], (array)$adr); /** **/ $title = $xpath2->query ("adresse/france/codePostal", $personne); $cp = utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['adresseSiegeCP']) || !is_array($tabAnnonces[$idann]['data']['adresseSiegeCP']) ) $tabAnnonces[$idann]['data']['adresseSiegeCP']=array(); $tabAnnonces[$idann]['data']['adresseSiegeCP']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeCP'], (array)$cp); /** **/ $title = $xpath2->query ("adresse/france/ville", $personne); $ville = utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['adresseSiegeVille']) || !is_array($tabAnnonces[$idann]['data']['adresseSiegeVille']) ) $tabAnnonces[$idann]['data']['adresseSiegeVille']=array(); $tabAnnonces[$idann]['data']['adresseSiegeVille']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVille'], (array)$ville); /** **/ $title = $xpath->query ('enseigne', $annonce); $enseigne=utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['enseigne']) || !is_array($tabAnnonces[$idann]['data']['enseigne']) ) $tabAnnonces[$idann]['data']['enseigne']=array(); $tabAnnonces[$idann]['data']['enseigne']=array_merge($tabAnnonces[$idann]['data']['enseigne'], array($enseigne)); /** **/ $title = $xpath->query ("activite", $annonce); $activite = utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['activite']) || !is_array($tabAnnonces[$idann]['data']['activite']) ) $tabAnnonces[$idann]['data']['activite']=array(); $tabAnnonces[$idann]['data']['activite']=array_merge($tabAnnonces[$idann]['data']['activite'], array($activite)); if (preg_match_all("/[0-9]{9,9}|[0-9]{3,3} [0-9]{3,3} [0-9]{3,3}|[0-9]{3,3}\.[0-9]{3,3}\.[0-9]{3,3}|[0-9]{3,3}-[0-9]{3,3}-[0-9]{3,3}/", $activite,$matches)) { if ( !isset($tabAnnonces[$idann]['data']['participations']) || !is_array($tabAnnonces[$idann]['data']['participations']) ) $tabAnnonces[$idann]['data']['participations']=array(); foreach ($matches[0] as $m => $sirenParticipation) { if ($iInsee->valideSiren(str_replace(' ','', $sirenParticipation)) && !preg_match('/'.$sirenParticipation.'.{1,5}euro/i', $texte)) $tabAnnonces[$idann]['data']['participations']=array_merge( $tabAnnonces[$idann]['data']['participations'] , array(str_replace(' ','', $sirenParticipation))); } } // Génération du texte d'annonce Siren / RCS / Greffe if ($siren<>'' && $siren*1<>0) $annonceTxt.=number_format($siren, 0, '', ' ').' '; if ($codeRM<>'') $annonceTxt.="$codeRM $deptRM "; $annonceTxt.="$codeRCS "; if ($nomGreffeImmat<>'') $annonceTxt.="$nomGreffeImmat."; // Génération du texte d'annonce Raison sociale, Nom/Prénom/ Forme / Activité / Adresse $annonceTxt.=' '.$raisonSociale.'.'; if ($fj<>'') if (substr($fj,-1)=='.') $annonceTxt.=" Forme : $fj"; else $annonceTxt.=" Forme : $fj."; if ($nomCommercial<>'') if (substr($nomCommercial,-1)=='.') $annonceTxt.=" Nom commercial : $nomCommercial"; else $annonceTxt.=" Nom commercial : $nomCommercial."; $annonceTxt.=generePhraseBodaccTxt($nationalite, 'Nationalité'); if ($sigle<>'') if (substr($sigle,-1)=='.') $annonceTxt.=" Sigle : $sigle"; else $annonceTxt.=" Sigle : $sigle."; /* Enseigne */ if ($enseigne<>'') if (substr($enseigne,-1)=='.') $annonceTxt.=" Enseigne : $enseigne"; else $annonceTxt.=" Enseigne : $enseigne."; /* Activité */ if ($activite<>'') $annonceTxt.=" Activité : $activite."; if (trim(strtr($adr,'|',' '))<>'' || $cp<>'' || $ville<>'') $annonceTxt.=' Adresse : '. str_replace('|',' ',$adr) ." $cp $ville."; $annonceTxt.=' '; } /* Complément de jugement */ if ($complementJugement<>'') if (substr($complementJugement,-1)=='.') $annonceTxt.=EOL."Complément de jugement : $complementJugement"; else $annonceTxt.=EOL."Complément de jugement : $complementJugement."; if (preg_match("/Repr(.)sentant(.*)cr(.)ancier/i", $complementJugement) && !isset($tabAnnonces[$idann]['data']['ReprCreanciers'])) { $tabAnnonces[$idann]['data']['ReprCreanciers']='';//trim($tabAnnonces[$idann]['data']['ReprCreanciers']); //$tabMandSD['NOM_-PRE-75'] //die('REPRESANTANT DES CREANCIERS : '.$complementJugement); } if (preg_match("/Juge commissaire/i", $complementJugement)) { // JUGE COMM SUPPL ??? if ( !isset($tabAnnonces[$idann]['data']['jugeCommissaire']) || !is_array($tabAnnonces[$idann]['data']['jugeCommissaire']) ) $tabAnnonces[$idann]['data']['jugeCommissaire']=array(); $tabAnnonces[$idann]['data']['jugeCommissaire']=array_merge($tabAnnonces[$idann]['data']['jugeCommissaire'], array($strTmp)); //die('Juge commissaire : '.$complementJugement); } if (preg_match("/Administrateur.{1,20}judiciaire(.*)(?:\.|;)/Ui", $complementJugement, $matches) && !isset($tabAnnonces[$idann]['data']['administrateur'])) { if (preg_match("/(.*)([0-9]{5,5})(.*)(?:\.|;)/U", $matches[1], $matches)) { print_r($matches); } $tabAnnonces[$idann]['data']['administrateur']=''; $tabAnnonces[$idann]['data']['administrateur']=trim($tabAnnonces[$idann]['data']['administrateur']); //die('Administrateur : '.$complementJugement); //ICITODO// } if (preg_match("/Mandataire judiciaire/i", $complementJugement) && !isset($tabAnnonces[$idann]['data']['Mandataire'])) { /* $tabAnnonces[$idann]['data']['Mandataire']=trim(str_replace(':', '', preg_replace("/(.*)Mandataire judiciaire (à la liquidation )(des entreprises)/i", '', $strTmp))); for($j=1; $j<10; $j++) { $balise=''.substr($tabBodacc[$i+$j],0,2); if ($balise=='00') { $txt=$iBodacc->convertAccents(substr($tabBodacc[$i+$j],2,strlen($tabBodacc[$i+$j])-2)); $txt=trim(strtr($txt, "{}!", ' ')); $tabAnnonces[$idann]['data']['Mandataire'].=EOL.$txt; if (preg_match("/^[0-9]{5,5}$/", str_replace(' ','',$txt))) { $tabAnnonces[$idann]['data']['Mandataire'].=EOL.trim($iBodacc->convertAccents(preg_replace("/\{\.(.*)/i", '', substr($tabBodacc[$i+$j+1],2,strlen($tabBodacc[$i+$j+1])-2)))); break; } if ($j>6 && strpos($txt, '.')>0) break; } }*/ $tabAnnonces[$idann]['data']['Mandataire']=trim($tabAnnonces[$idann]['data']['Mandataire']); //die("Mandataire judiciaire : ".$complementJugement); } if (preg_match("/d(.)claration(.*)cr(.)ance(.*)d(.)lai/i", $complementJugement)) { $tabAnnonces[$idann]['data']['delaiDepotCreances']=trim(strtr($tabTmp[1], "{}:!", ' ')); //die('Délai dépôt créances : '.$complementJugement); } $tabAnnonces[$idann]['annonce']=trim(str_replace(' .','.', preg_replace('/ +/', ' ', $annonceTxt))); if ($tabAnnonces[$idann]['typeAnnonce']=='Rectification' ) { print_r($tabAnnonces[$idann]); echo date ('Y/m/d - H:i:s')." - ATTENTION : Vérifier les annonces de Rectification !".EOL; die(); } $typeProCol=$iBodacc->getCodeNatureEvenement($nature); if ($typeProCol==0) $tabAnnonces[$idann]['data']['typeProCol']=1999; else $tabAnnonces[$idann]['data']['typeProCol']=$typeProCol; /** On affine la catégorie des LJ **/ if ($tabAnnonces[$idann]['data']['typeProCol']==1301 || $tabAnnonces[$idann]['data']['typeProCol']==1305 || $tabAnnonces[$idann]['data']['typeProCol']>=1998 ) { $texte=$complementJugement; if (preg_match("/r(.)ouverture(.*)liquidation/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1304; // Réouverture LJ elseif (preg_match("/liquidation.{1,9}judiciaire(.*)r(.)solution(.*)plan/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1303; // Ouv LJS sur résolution de plan elseif (preg_match("/conver.i.{1,9}liquidation.{1,9}judiciaire.{1,9}liquidation.{1,9}judiciaire.{1,9}simplifi/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1309; // LJ en LJS elseif (preg_match("/li(q|)uidation.{1,9}judiciaire.{1,9}simplifi/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1302; // Ouv LJS elseif (preg_match("/liquidation.{1,9}judiciaire.{0,8}(cour|pendant| en).{1,9}sauvegarde/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1307; // Conversion sauvg en LJ elseif (preg_match("/liquidation.{1,9}judiciaire.{1,19}(conversion|résolution|resolution|redressement|observation|cession)/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1300; // Conversion RJ en LJ elseif (preg_match("/ouverture.{1,9}liquidation.{1,9}judiciaire/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1301; // Ouverture LJ elseif (preg_match("/liquidation.{1,9}judiciaire/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1305; // LJ elseif (preg_match("/redressement.{1,9}judiciaire/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1200; // RJ if ($tabAnnonces[$idann]['data']['typeProCol']==1998) { echo "$siren : $raisonsociale".EOL; echo "Complément de jugement inconnu : $complementJugement".EOL; if ($noQuestion) { die(); } else { while (1) { echo date('Y/m/d - H:i:s') ." - Saisir la codification (par défaut 1999 ou 'l XXX' pour liste des codes XXX) ?"; $saisie = trim(fgets(STDIN)); if (strtolower(substr($saisie,0,1))=='l') afficheListeEven(substr($saisie,2,strlen($saisie)-2)); elseif (($saisie>=1000 && $saisie<2000) || $saisie==0) break; } if ($saisie>0) $tabAnnonces[$idann]['data']['typeProCol']=$saisie; else $tabAnnonces[$idann]['data']['typeProCol']=1999; } } } if ($tabAnnonces[$idann]['data']['typeProCol']==1502 // Jugement clôturant la procédure pour extinction du passif (LB !!!) && preg_match("/Jugement.{1,3}cl.tur(a|e).{1,13}insuffisance.{1,13}actif/i", $complementJugement)) $tabAnnonces[$idann]['data']['typeProCol']=1503; elseif ($tabAnnonces[$idann]['data']['typeProCol']==1503 // Jugement clôturant la procédure pour insuffisance actif (LB !!!) && preg_match("/Jugement.{1,3}cl.tur(a|e).{1,13}extinction.{1,13}passif/i", $complementJugement)) $tabAnnonces[$idann]['data']['typeProCol']=1502; elseif ($tabAnnonces[$idann]['data']['typeProCol']>=1998) { $texte=$complementJugement; if (preg_match("/imp.cuniosit.{1,9}procedure.{1,9}liquidation/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1530; // Jugement constatant l'impecuniosite de la procedure de liquidation elseif (preg_match("/Jugement.{1,3}cl.tur(a|e).{1,13}extinction.{1,13}passif/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1502; // Jugement clôturant la procédure pour extinction du passif (LB !!!) elseif (preg_match("/Jugement.{1,3}cl.tur(a|e).{1,13}insuffisance.{1,13}actif/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1503; // Jugement clôturant la procédure pour insuffisance actif (LB !!!) elseif (preg_match("/Jugement nommant (.*)qualité de syndic(.*)en remplacement de/i", $texte) || preg_match("/Jugement mettant fin.{1,7}fonction.{1,7}syndic(.*)d.signant(.*)remplacement/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1406; // Changement de SYNDIC elseif (preg_match("/ouverture.{1,29}sauvegarde/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1100; // Ouverture sauvegarde elseif (preg_match("/conver.{1,9}i.{1,9}sauvegarde.{1,9}redressement/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1201; // Conversion sauvegarde en RJ elseif (preg_match("/arr(.)tant(.*)plan(.*)sauvegarde/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1101; // Jug. arrêtant plan sauvegarde elseif (preg_match("/cession.{1,9}partiel/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1412; // Arrêt plan cession partiel elseif (preg_match("/pronon(c|ç)ant.{1,7}r(é|e)habilitation/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1602; // Jugement de réhabilitation';//RECUPERER LE NOM du réhabilité { }m. Francis Meyer{. } elseif (preg_match("/(Dépôt|depot|dépot|depôt).{1,9}projet.{1,9}r(é|e)partition/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1208; // Avis de dépôt du projet de répartition elseif (preg_match("/conver.i.{2,9}sauvegarde.{1,19}redressement/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1201; // Conversion sauvegarde en RJ elseif (preg_match("/(adoptant|arr.tant|homologuant|admission)(.){1,9}plan(.){1,9}sauvegarde/i", $texte) || preg_match("/Jugement de plan de sauvegarde/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1101; // Jugement arrêtant plan de sauvegarde elseif (preg_match("/mettant(.){1,9}fin(.){1,9}plan(.){1,9}sauvegarde/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1508; // Jugement d'extinction du plan de sauvegarde elseif (preg_match("/liquidation.{1,9}judiciaire.{1,9}simplifi(.)/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1306; // LJ simplifiée elseif (preg_match("/conver.i(.){2,9}sauvegarde(.){1,9}liquidation(.){1,9}judiciaire/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1307; // Conversion sauvegarde en LJ elseif (preg_match("/cl.ture.{1,9}sauvegarde(.*)(non|absence)(.*)projet(.){1,7}plan/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1504; // Clôture sauvegarde pour absence de projet de plan elseif (preg_match("/proroge.{1,9}commissaire.{1,9}x.cution.{1,9}plan/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1404; // Prolongation mission du commissaire à l'exécution du plan elseif (preg_match("/(rempla|nommant|d.charg).{1,19}commissaire.{1,19}plan/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1403; // Remplacement du commissaire à l'exécution du plan elseif (preg_match("/(clôtur|clotur)(.*)apr.s plan de cession/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1501; // Cloture de la procédure après plan de cession / Cession Totale elseif (preg_match("/prorogeant.{1,9}plan.{1,9}redressement/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1421; // Jugement prorogeant le plan de redressement' elseif (preg_match("/(d.sign|remplac|nomme|nommant).{1,19}administrateur/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1400; // Nommination d'un administrateur judiciaire elseif (preg_match("/(d.sign|remplac|nomme|nommant).{1,19}mandataire/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1401; // Nommination d'un mandataire judiciaire elseif (preg_match("/(d.sign|remplac|nomme|nommant).{1,19}repr.sent.{1,19}cr.ancier/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1402; // Nommination d'un représentant des créanciers elseif (preg_match("/(d.sign|remplac|nomme|nommant).{1,19}juge.{1,19}commissaire/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1405; // Nommination d'un juge commissaire elseif (preg_match("/(d.sign|remplac|nomme|nommant)(.*)commissaire.{1,9}ex(e|é)cution.{1,9}plan/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1403; // Nommination d'un commissaire exec plan elseif (preg_match("/(d.sign|remplac|nomme|nommant)(.*)liquidateur.{1,9}judiciaire/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1420; // Nommination d'un liquidateur judiciaire elseif (preg_match("/mettant.{1,9}fin.{1,9}mission(.*)administrateur.{1,9}judiciaire/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1470; // Fin de mission d''administrateur judiciaire elseif (preg_match("/(adoptant|arr.tant|homologuant|admission).{1,9}plan.{1,9}redressement/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1414; // Arrêt du plan de redressement elseif (preg_match("/extinction.{1,9}plan.{1,9}redressement/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1509; // Extinction du plan de redressement elseif (preg_match("/(clôture|cloture|clôturant|cloturant)/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1500; // Clôture de la procédure elseif (preg_match("/(arr|ado).tant.{1,9}plan.{1,9}cession/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1411; // Arrêt plan cession elseif (preg_match("/(proroge|renouvel)(.*)plan(.){1,9}cession/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1415; // Prolongement du plan cession elseif (preg_match("/con(sta|tas)tant.{1,25}ex(é|e)cut(ion|é) .{1,29} plan/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1416; // Jugement constatant bonne execution du plan elseif (preg_match("/rejet(ant).{1,9}plan.{1,9}continuation/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1510; // Jugement rejetant le plan de continuation elseif (preg_match("/(d.cidant|d.cide|d.cidé|autoris|prorog).{1,13}poursui.{1,13}activité/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1430; // Jugement autorisant la poursuite d'activité elseif (preg_match("/compl.ment.{1,9}jugement/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1410; // Suite de jugement elseif (preg_match("/suspen.{1,9}provisoire.{1,9}poursuite/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1436; // Suspension provisoire des poursuites elseif (preg_match("/modifi.{1,9}plan.{1,9}cession/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1408; // Modif plan de cession elseif (preg_match("/1346\/2000/", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1346; // Procédure d'insolvabilité (Règlement 1346/2000 du Conseil Européen elseif (preg_match("/Ordonnance.{1,9}du/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1520; // Ordonnance elseif (preg_match("/Jugement.{1,9}constatant.{1,9}exécution.{1,9}plan.{1,9}continuation/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1512; // Jugement constatant l'exécution du plan de continuation elseif (preg_match("/(renouvel|prolongeant).{1,25}p.riode(.){1,9}observation/Ui", $texte) || preg_match("/prononçant(.*)poursuite(.){1,9}activité/Ui", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1202; // Renouvellement de la période d'observation elseif (preg_match("/arr.tant.{1,9}plan.{1,9}apurement.{1,9}passif/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1455; /** Jugement arrêtant le plan d'apurement du passif @todo d'une durée de XXX ans **/ elseif (preg_match("/continuation.{1,9}activit.{2,19}apurement.{1,9}passif/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1580; /** @todo Suite de jugement à améliorer **/ elseif (preg_match("/prolongation.{1,9}p(é|e|è)riode.{1,9}observation/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1202; /** Période d'observation **/ elseif (preg_match("/( r(é|e)tractant | infirmant |relèvé des déchéances et interdictions prononcées)/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1506;// Infirmation Jugement A AMELIORER elseif (preg_match("/comblement.{1,9}passif./i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1620;// Comblement du passif elseif (preg_match("/rectifi.{1,9}erreur.{1,5}mat.rielle/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1517; elseif (preg_match("/homologation.{1,9}accord/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1550; if ($tabAnnonces[$idann]['data']['typeProCol']==1998) { echo "$siren : $raisonsociale".EOL; echo "Complément de jugement inconnu : $complementJugement".EOL; if ($noQuestion) { die(); } else { while (1) { echo date('Y/m/d - H:i:s') ." - Saisir la codification (par défaut 1999 ou 'l XXX' pour liste des codes XXX) ?"; $saisie = trim(fgets(STDIN)); if (strtolower(substr($saisie,0,1))=='l') afficheListeEven(substr($saisie,2,strlen($saisie)-2)); elseif (($saisie>=1000 && $saisie<2000) || $saisie==0) break; } if ($saisie>0) $tabAnnonces[$idann]['data']['typeProCol']=$saisie; else $tabAnnonces[$idann]['data']['typeProCol']=1999; } } } if ($tabAnnonces[$idann]['data']['typeProCol']==1999) { echo date ('Y/m/d - H:i:s')." - ERREUR : Nature de jugement '$nature' inconnu pour l'annonce $idann !".EOL; $fpJ=fopen('/var/www/log/newJuges.log','a'); fwrite($fpJ, 'md5("'.$nature.'")=>1999, /*'.$complementJugement.'*/'.EOL); fclose($fpJ); $tabFamilleNature[]=$famille.' / '.$nature; //print_r($tabAnnonces[$idann]); //die($complementJugement); } if ($tabAnnonces[$idann]['data']['dateJugement']*1>0) $dateJuge=$tabAnnonces[$idann]['data']['dateJugement']; else $dateJuge=$tabAnnonces[$idann]['Bodacc_Date_Parution']; if ($tabAnnonces[$idann]['data']['typeProCol']==1600 || $tabAnnonces[$idann]['data']['typeProCol']==1610 || $tabAnnonces[$idann]['data']['typeProCol']==1601 || $tabAnnonces[$idann]['data']['typeProCol']==1611) { /** Recherche de la durée d'interdication **/ if (preg_match("/(.*)pour une (?:dur.e?|p.riode) d(.*)( an| mois)/Ui", $complementJugement, $matches)) { $perimetre=preg_replace("/^et /i",'',trim(strtr($matches[1], "{}!", ' '))); $dureeL=preg_replace("/^(e|') /",'',trim(str_replace(':','',$matches[2]))); $periode=trim(/*str_replace(':','',*/$matches[3]);//); $dureeC=WDate::period2Days($dateJuge, $dureeL.' '.$periode); echo "Interdiction ".$tabAnnonces[$idann]['data']['typeProCol']." jusqu'au $dureeC (soit pendant $dureeL $periode). Périmètre = '$perimetre'\n"; $tabAnnonces[$idann]['data']['perimetre']=$perimetre; $tabAnnonces[$idann]['data']['dateFinObservation']=$dureeC; $tabAnnonces[$idann]['data']['FinObservationBodacc']="$dureeL $periode"; } /** Recherche des dirigeants interdits **/ print_r($tabAnnonces[$idann]); echo $complementJugement.EOL; echo "Périmètre = ".$tabAnnonces[$idann]['data']['perimetre'].EOL; echo "Périodes d'observation : $dureeL $periode".EOL; echo "Date de jugement = ".$tabAnnonces[$idann]['data']['dateJugement'].EOL; echo "Fin d'observation = ".$tabAnnonces[$idann]['data']['dateFinObservation'].EOL; echo "?"; //$saisie = trim(strtoupper(fgets(STDIN))); /* RECHERCHER NOM / PRENOM + Fonction Jugement prononcant la faillite personnelle a l'encontre de Monsieur BOZBIYIK Ahmet pour une duree de 10 ans pris en sa qualite de gerant. // Recherc */ echo ('Récupérer les nom des interdits'.EOL); $tabAdministration=$iBodacc->getDirigeants($strTmp); if (count($tabAdministration)>1) { echo $strTmp."\n"; print_r($tabAdministration); echo('Cas non géré : plus d\'un gérant en IG dans la même annonce !'.EOL); } elseif (count($tabAdministration)>1) $dir=$tabAdministration[0]; else $dir=array('fonction'=>805); if (preg_match("/^(.*)\((.*)\)/i", $tabAnnonces[$idann]['data']['raisonSociale'][0], $matches)) { $dir['nom']=trim($matches[1]); $tabTmp=explode(' née ', $dir['nom']); if (count($tabTmp)>1) { $dir['nom']=trim(str_replace(',','',$tabTmp[1])); $dir['nomUsage']=trim(str_replace(',','',$tabTmp[0])); } $dir['prenom']=trim($matches[2]); } $dir['even']=$tabAnnonces[$idann]['data']['typeProCol']; $dir['dateFin']=$tabAnnonces[$idann]['data']['dateFinObservation']; if (preg_match_all("/((?:[0-9]{9,9})|(?:[0-9]{3,3} [0-9]{3,3} [0-9]{3,3})|(?:[0-9]{3,3}\.[0-9]{3,3}\.[0-9]{3,3})|(?:[0-9]{3,3}-[0-9]{3,3}-[0-9]{3,3}))/U", $strTmp, $matches)) { foreach ($matches[1] as $siren) { $siren=strtr($siren, array('.'=>'','-'=>'', ' '=>'')); if ( !isset($tabAnnonces[$idann]['siren']) || !is_array($tabAnnonces[$idann]['siren']) ) $tabAnnonces[$idann]['siren']=array(); if ( !isset($tabAnnonces[$idann]['data']['siren']) || !is_array($tabAnnonces[$idann]['data']['siren']) ) { $tabAnnonces[$idann]['data']['siren']=array(); $tabAnnonces[$idann]['data']['sirenValide']=array(); } if ($iInsee->valideSiren($siren)) { if ($tabAnnonces[$idann]['siren'][0]['valide']==0) { $tabAnnonces[$idann]['siren']=array(array('num'=>$siren, 'valide'=>1)); $tabAnnonces[$idann]['data']['siren']=array($siren); $tabAnnonces[$idann]['data']['sirenValide']=array(1); }else { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>1))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(1)); } } else { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>0))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(0)); } if ( !isset($tabAnnonces[$idann]['data']['raisonSociale']) || !is_array($tabAnnonces[$idann]['data']['raisonSociale']) ) $tabAnnonces[$idann]['data']['raisonSociale']=array(); $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], preg_replace('/^(.*)( de | de la | du | des )/i','', preg_replace('/, (.*)$/i','',$strTmp))); } } $tabAnnonces[$idann]['data']['dirIGPF'][0]=$dir; echo $strTmp; //Jugement renouvelant pour six mois à compter du 30 juillet 2009 la période d'observation } elseif (preg_match("/renouvel(.*)p.riode(.){1,9}observation(.*) (de |d')(.*)( an| mois)/Ui", $complementJugement, $matches) || preg_match("/prononçant(.*)poursuite(.){1,9}activité(.*) (de |d')(.*)( an| mois)/Ui", $complementJugement, $matches)) { /** @todo pour une durée de six mois à compter du 7 mars 2007 **/ $tabAnnonces[$idann]['data']['typeProCol']=1202; // Renouvellement de la période d'observation $dureeL=trim($matches[5]); $periode=trim($matches[6]); $dureeC=Wdate::period2Days($dateJuge, $dureeL.' '.$periode); $tabAnnonces[$idann]['data']['perimetre']=$perimetre; $tabAnnonces[$idann]['data']['dateFinObservation']=$dureeC; $tabAnnonces[$idann]['data']['FinObservationBodacc']="$dureeL $periode"; print_r($tabAnnonces[$idann]); echo ("Gérer les renouvellements de période d'observation !".EOL); } elseif (preg_match("/(admission|adopt)(.){1,17}plan(.){1,9}redressement(.){1,19}dur.e? (d|à|a)(.*)( an| mois)/Ui", $complementJugement, $matches)) { $tabAnnonces[$idann]['data']['typeProCol']=1414; // Arrêt du plan de redressement $dureeL=preg_replace("/^(e|') /",'',trim($matches[6])); $periode=trim($matches[7]); $dureeC=Wdate::period2Days($dateJuge, $dureeL.' '.$periode); $tabAnnonces[$idann]['data']['perimetre']=$perimetre; $tabAnnonces[$idann]['data']['dateFinObservation']=$dureeC; $tabAnnonces[$idann]['data']['FinObservationBodacc']="$dureeL $periode"; print_r($tabAnnonces[$idann]); print_r($tabAnnonces[$idann]); echo "PLAN DE REDRESSEMENT :".EOL; echo $complementJugement.EOL; echo "Périmètre = ".$tabAnnonces[$idann]['data']['perimetre'].EOL; echo "Périodes d'observation : $dureeL $periode".EOL; echo "Date de jugement = ".$tabAnnonces[$idann]['data']['dateJugement'].EOL; echo "Fin d'observation = ".$tabAnnonces[$idann]['data']['dateFinObservation'].EOL; echo "?"; //$saisie = trim(strtoupper(fgets(STDIN))); } elseif (preg_match("/p.riode.{1,7}observation/i", $complementJugement)) { if (preg_match('/p.riode.{1,7}observation.{0,17}(?: de | a | à )(.*)( mois| an| jour)/Ui', $complementJugement, $matches)) { // Période de la forme 4 mois ou deux ans $periode=$matches[1].' '.trim($matches[2]); $tabAnnonces[$idann]['data']['dateFinObservation']=Wdate::period2Days($dateJuge, $periode); $tabAnnonces[$idann]['data']['FinObservationBodacc']=$periode; } elseif (preg_match('/p.riode.{1,7}observation.{1,10}(?:jusqu|expir).{1,10}((?:1er|\d{1,2}) (?:.*) 20\d{2,2})/Ui', $complementJugement, $matches)) { $periode=$matches[1]; $tabAnnonces[$idann]['data']['dateFinObservation']=WDate::dateT('dMY', 'Ymd', str_replace(' ','',$periode)); $tabAnnonces[$idann]['data']['FinObservationBodacc']=$periode; } echo $complementJugement.EOL; echo "Périodes d'observation : $periode".EOL; echo "Date de jugement = ".$tabAnnonces[$idann]['data']['dateJugement'].EOL; echo "Fin d'observation = ".$tabAnnonces[$idann]['data']['dateFinObservation'].EOL; echo "?"; //$saisie = trim(strtoupper(fgets(STDIN))); } elseif (preg_match("/fixant(.*)cl.ture(.*)proc.dure(.*)( an| ans| mois)/Ui", $complementJugement, $matches)) { $dureeL=preg_replace("/^à /",'',trim($matches[3])); $periode=trim($matches[4]); if ($tabAnnonces[$idann]['data']['dateJugement']*1>0) $dateJuge=$tabAnnonces[$idann]['data']['dateJugement']; else $dateJuge=$tabAnnonces[$idann]['Bodacc_Date_Parution']; $dureeC=WDate::period2Days($dateJuge, $dureeL.' '.$periode); $tabAnnonces[$idann]['data']['dateFinObservation']=$dureeC; $tabAnnonces[$idann]['data']['FinObservationBodacc']="$dureeL $periode"; print_r($tabAnnonces[$idann]); echo "Vérifier la date de fin de la procédure A : $dureeC ($dureeL $periode)".EOL; $saisie = trim(strtoupper(fgets(STDIN))); } elseif (preg_match("/fixant au(.*)délai(.*)clôture(.*)procédure/Ui", $complementJugement, $matches)) { $dateClotureTxt=str_replace(' ', '', preg_replace('/le$/','',trim($matches[1]))); $dateCloture=WDate::dateT('dMY', 'Ymd', $dateClotureTxt); $tabAnnonces[$idann]['data']['dateFinObservation']=$dateCloture; $tabAnnonces[$idann]['data']['FinObservationBodacc']=$dateClotureTxt; print_r($tabAnnonces[$idann]); echo "Vérifier la date de fin de la procédure B : $dateCloture!".EOL; $saisie = trim(strtoupper(fgets(STDIN))); } $bodaccDepNumPre=$bodaccDepNum; } ///// FIN de la boucle de lecture des annonces procoles } elseif ($debutNom=='RCS-A') { /** VALIDATION SCHEMA **/ if ($validateSchema) { if (!$dom_object->schemaValidate('/var/www/batch/bodacc/Bodacc_RCI_Redif_V10.xsd')) { echo date ('Y/m/d - H:i:s')." - ERREUR : Fichier $nomFichier, Date de Bodacc '$dateBodaccTxt' Schéma XML non validé !".EOL; if (!$reload) { if ($forceContinue) continue; else { echo date ('Y/m/d - H:i:s')." - Conseil : Corrigez le fichier XML ".BODACC_LOCAL_DIR.str_replace('.taz','.xml', $nomFichier)." et relancer avec l'option _u !".EOL; die(); } } } else echo date ('Y/m/d - H:i:s')." - BODACC $debutNom $bodaccAnneePar-$bodaccNumPar du $dateBodacc : Schéma du fichier $nomFichier validé.".EOL; } else echo date ('Y/m/d - H:i:s')." - BODACC $debutNom $bodaccAnneePar-$bodaccNumPar du $dateBodacc : Schéma du fichier $nomFichier ignoré.".EOL; /** Chargement des Annonces **/ $result = $xpath->query("//RCS-A_IMMAT/listeAvis/avis/."); if (count($result)==0) { echo date ('Y/m/d - H:i:s')." - Il n'y a aucune annonce à traiter dans ce flux XML !".EOL; die(); } /** ** Traitement de chaque annonce du noeud RCS-A_IMMAT **/ foreach ($result as $annonce) { /* On réinitialise toutes les variables servant a reconstruire le texte de l'annonce */ $typeBodacc=$numeroParutionCorr=$dateCorr=$numeroAnnonceCorr=''; $categorieVente=$dateImmatriculation=$dateEffet=$dateCommencementActivite=$opposition=$journal_titre=$journal_date=$declarationCreance=$descriptif=''; $bodaccNumAnnCalc++; $title = $xpath->query ("numeroAnnonce", $annonce); $bodaccNumAnn=$title->item(0)->nodeValue; if ($bodaccNumAnnCalc==1 && $bodaccNumAnn>300) { echo(date ('Y/m/d - H:i:s')." - Chapitre Immatriculations/Ventes débutant par l'annonce n°$bodaccNumAnn...".EOL); $bodaccNumAnnCalc=$bodaccNumAnn*1; /* On initialise le 1er n° d'annonce trouvé dans le bodacc pour contrôle */ if (!isset($tabFichiers[$nomFichier]['Num_Annonce_Deb'])) $tabFichiers[$nomFichier]['Num_Annonce_Deb']=$bodaccNumAnn; } else { if (!preg_match('/^'.$bodaccNumAnnCalc.'/', str_replace('.','',''.$bodaccNumAnn)) ) { $endTmp=false; for ($iTmp=1; $iTmp<19; $iTmp++) { if (preg_match('/^'.($bodaccNumAnnCalc+$iTmp).'/', str_replace('.','',''.$bodaccNumAnn))) { echo(date ('Y/m/d - H:i:s')." - Numéro d'annonce $bodaccNumAnn différent du numéro attendu $bodaccNumAnnCalc !".EOL); $bodaccNumAnnCalc=$bodaccNumAnnCalc+$iTmp; // Il y a un loupé de numérotation au bodacc entre 2 annonces $endTmp=true; break; } } // if (!$endTmp) // die(date ('Y/m/d - H:i:s')." - Numéro d'annonce $bodaccNumAnn complètement différent du numéro attendu $bodaccNumAnnCalc !".EOL); } } $bodaccNumAnn=$bodaccNumAnnCalc; if (!isset($tabFichiers[$nomFichier]['Num_Annonce_Deb'])) { $tabFichiers[$nomFichier]['Num_Annonce_Deb']=$bodaccNumAnn; } $tmp=explode(' ', $bodaccNumAnn); $bodaccNumAnn=trim($tmp[0]); /** Numéro unique interne à ce programme pour chaque annonce **/ $idann=''.$bodaccAnneePar.'-'.$bodaccNumPar.'-'.$bodaccNumAnn; $title = $xpath->query ("nojo", $annonce); $nojo=$title->item(0)->nodeValue; /** On initialise le tableau $tabAnnonces[$idann] qui contient toutes les infos de l'annonce **/ $tabAnnonces[$idann]['Bodacc_Date_Parution']=$dateBodacc; $tabAnnonces[$idann]['Num_Annonce']=$bodaccNumAnn; $tabAnnonces[$idann]['Bodacc_Code']=$bodaccType; $tabAnnonces[$idann]['Bodacc_Annee_Parution']=$bodaccAnneePar; $tabAnnonces[$idann]['Bodacc_Num']=substr($bodaccNumPar,1,strlen($bodaccNumPar)-1); $tabAnnonces[$idann]['Bodacc_NOJO']=$nojo; $tabAnnonces[$idann]['data']=array(); /** On récupère l'annonce XML **/ $dom = new DOMDocument('1.0', 'iso-8859-1'); $elem=$dom->createElement('avis'); $dom->appendChild($dom->importNode($annonce, true)); $tabAnnonces[$idann]['balises']=$dom->saveXML(); $title = $xpath->query ('typeAnnonce/*', $annonce); $typeAnnonce=strtolower($title->item(0)->nodeName); if ($typeAnnonce=='creation' || $typeAnnonce=='annonce') $tabAnnonces[$idann]['typeAnnonce']='Insertion'; elseif ($typeAnnonce=='rectificatif' || $typeAnnonce=='annulation') { if ($typeAnnonce=='annulation') $tabAnnonces[$idann]['typeAnnonce']='Suppression'; else $tabAnnonces[$idann]['typeAnnonce']='Rectificatif'; } else { echo date ('Y/m/d - H:i:s')." - ERREUR : Type d'annonce '$typeAnnonce' inconnu pour l'annonce $idann !".EOL; die(); } /** Eléments des annonces de correction **/ $tabAnnonces[$idann]['corrPage']=NULL; $tabAnnonces[$idann]['corrTexteRectificatif']=NULL; $title = $xpath->query ('parutionAvisPrecedent/numeroAnnonce', $annonce); $numeroAnnonceCorr=$title->item(0)->nodeValue; $tabAnnonces[$idann]['corrNum_Annonce']=$numeroAnnonceCorr; $title = $xpath->query ('parutionAvisPrecedent/nomPublication', $annonce); $typeBodacc=substr($title->item(0)->nodeValue,-1); $title = $xpath->query ('parutionAvisPrecedent/numeroParution', $annonce); $numeroParutionCorr=$title->item(0)->nodeValue; $tabAnnonces[$idann]['corrNumParution']=$typeBodacc.substr($numeroParutionCorr,-3); $title = $xpath->query ('parutionAvisPrecedent/dateParution', $annonce); $dateCorr=str_replace(chr(160),' ',utf8_decode($title->item(0)->nodeValue)); $tabAnnonces[$idann]['corrBodacc_Date_Parution']=WDate::dateT('dMY', 'Ymd', str_replace(' ','',$dateCorr)); $title = $xpath->query ("numeroDepartement", $annonce); $bodaccDepNum=$title->item(0)->nodeValue; $tabAnnonces[$idann]['Tribunal_Dept']=$bodaccDepNum; $bodaccDep=$iInsee->getDepartement($bodaccDepNum); $depInconnu=false; if (!$iInsee->isDepartement($bodaccDepNum)) { $depInconnu=true; echo date ('Y/m/d - H:i:s')." - ERREUR : Département '$bodaccDepNum' inconnu pour l'annonce $idann !".EOL; } $title = $xpath->query ("tribunal", $annonce); $texte = utf8_decode($title->item(0)->nodeValue); $tabAnnonces[$idann]['Tribunal_Code']=$iBodacc->getTribunalCode($texte, $bodaccDepNum); if (!$tabAnnonces[$idann]['Tribunal_Code'] && $bodaccDepNum>70 && $bodaccDepNum<77 ) { // A priori il s'agit d'une erreur de codification des DOM par la DJO !!!! $title = $xpath->query ("adresse/france/codePostal", $annonce); $bodaccDepNum=substr($title->item(0)->nodeValue,0,3)*1; //if ($bodaccDepNum==977) $bodaccDepNum=974; // Bug Bodacc } $tabAnnonces[$idann]['Tribunal_Code']=$iBodacc->getTribunalCode($texte, $bodaccDepNum); if (!$iBodacc->isTribunal($tabAnnonces[$idann]['Tribunal_Code'])) { $tabAnnonces[$idann]['Tribunal_Code']=$iBodacc->getTribunalCode($texte, $bodaccDepNumPre); if (!$iBodacc->isTribunal($tabAnnonces[$idann]['Tribunal_Code'])) { echo date ('Y/m/d - H:i:s')." - ERREUR : Tribunal '$texte' inconnu pour l'annonce $idann !".EOL; die(); } } if ($depInconnu) die('Erreur vérifier tribunal/département PCL :'.EOL.print_r($tabAnnonces[$idann])); $title = $xpath->query ('acte/*', $annonce); $typeActe=strtolower($title->item(0)->nodeName); /** @todo Affecter le bon code Rubrique Bodacc ? **/ if ($typeActe=='vente') $tabAnnonces[$idann]['Rubrique_Bodacc']='A125'; elseif ($typeActe=='creation') $tabAnnonces[$idann]['Rubrique_Bodacc']='A126'; elseif ($typeActe=='immatriculation') $tabAnnonces[$idann]['Rubrique_Bodacc']='A108'; else { print_r($tabAnnonces[$idann]); die(date ('Y/m/d - H:i:s')." - ERREUR : Type d'acte '$typeActe' inconnu pour l'annonce $idann !".EOL); } /** Début de génération de l'annonce Texte en fonction du type d'annonce **/ if ($tabAnnonces[$idann]['typeAnnonce']=='Insertion') { /* Entête de nouvelle annonce : N° Date et type de jugement */ $annonceTxt="$bodaccNumAnn - "; } elseif ($tabAnnonces[$idann]['typeAnnonce']=='Suppression') { /* Entête d'annonce d'annulation/suppresion */ $annonceTxt ="$bodaccNumAnn - Annulation. BODACC $typeBodacc. Numéro de parution : $numeroParutionCorr. Date de parution : $dateCorr. Annonce numéro : $numeroAnnonceCorr. Cet avis est nul et non avenu.".EOL; } else { /* Entête d'annonce de rectification */ $annonceTxt ="$bodaccNumAnn - Rectificatif. BODACC $typeBodacc. Numéro de parution : $numeroParutionCorr. Date de parution : $dateCorr. Annonce numéro : $numeroAnnonceCorr. Cet avis est annulé et remplacé par le suivant.".EOL; } /** En fonction du type d'acte, on extrait les informations spécifiques **/ $title = $xpath->query("acte/$typeActe/dateImmatriculation", $annonce); $dateImmatriculation=trim(utf8_decode($title->item(0)->nodeValue)); $tabAnnonces[$idann]['data']['dateEffet']=$dateImmatriculation; $title = $xpath->query("acte/$typeActe/dateEffet", $annonce); $dateEffet=trim(utf8_decode($title->item(0)->nodeValue)); if (Wdate::dateT('dMY', 'Ymd', str_replace(' ','',str_replace(chr(160),'',$dateEffet)))*1>19810101) $dateEffet=Wdate::dateT('dMY', 'Y-m-d', str_replace(' ','',str_replace(chr(160),'',$dateEffet))); if ($dateImmatriculation=='') $tabAnnonces[$idann]['data']['dateEffet']=$dateEffet; $title = $xpath->query("acte/$typeActe/dateCommencementActivite", $annonce); $dateCommencementActivite=trim(utf8_decode($title->item(0)->nodeValue)); $tabAnnonces[$idann]['data']['dateDebutActivite']=$dateCommencementActivite; $title = $xpath->query("acte/$typeActe/descriptif", $annonce); $descriptif=trim(utf8_decode($title->item(0)->nodeValue)); $tabAnnonces[$idann]['data']['commentaires']=$descriptif; if ( !isset($tabAnnonces[$idann]['data']['typeVente']) || !is_array($tabAnnonces[$idann]['data']['typeVente']) ) $tabAnnonces[$idann]['data']['typeVente']=array(); if ($typeActe=='vente') { $title = $xpath->query("acte/vente/categorieVente", $annonce); $categorieVente=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query("acte/vente/journal/titre", $annonce); $journal_titre=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query("acte/vente/journal/date", $annonce); $journal_date=trim(utf8_decode($title->item(0)->nodeValue)); $tabAnnonces[$idann]['data']['publication']=$journal_titre.' le '.$journal_date; $tabAnnonces[$idann]['data']['publicationNom']=$journal_titre; $tabAnnonces[$idann]['data']['publicationDate']=$journal_date; $title = $xpath->query("acte/vente/opposition", $annonce); $opposition=trim(utf8_decode($title->item(0)->nodeValue)); $tabAnnonces[$idann]['data']['oppositions']=$opposition; $title = $xpath->query("acte/vente/declarationCreance", $annonce); $declarationCreance=trim(utf8_decode($title->item(0)->nodeValue)); if ($declarationCreance<>'') $tabAnnonces[$idann]['data']['oppositions']=$opposition.'/'.$declarationCreance; } elseif ($typeActe=='creation') { $title = $xpath->query("acte/creation/categorieCreation", $annonce); $categorieCreation=trim(utf8_decode($title->item(0)->nodeValue)); /** @todo Chercher des précisions dans la création **/ } elseif ($typeActe=='immatriculation') { $title = $xpath->query("acte/immatriculation/categorieImmatriculation", $annonce); $categorieImmatriculation=trim(utf8_decode($title->item(0)->nodeValue)); /** @todo Chercher des précisions dans la création **/ } $result = $xpath->query('personnes/personne/.', $annonce); if (count($result)<1) { echo date ('Y/m/d - H:i:s')." - Il n'y a pas d'acheteur pour cette annonce !".EOL; die(); } /** On traite chaque acheteur **/ foreach ($result as $personne) { // Mise à blanc des champs textes pour la génération de l'annonce $siren=$codeRCS=$nomGreffeImmat=$raisonSociale=$fj=$nomCommercial=$sigle=$administration=$nationalite=''; $capital_montant=$capital_devise=$capital_variable=$capital_mt=$adr=$cp=$ville=''; $title = $xpath->query("*/numeroImmatriculation/codeRCS", $personne); $codeRCS = strtoupper(trim(utf8_decode($title->item(0)->nodeValue))); if ($codeRCS<>'RCS') { $title = $xpath->query("*/nonInscrit", $personne); $codeRCS = trim(utf8_decode($title->item(0)->nodeValue)); } $title = $xpath->query("*/numeroImmatriculation/nomGreffeImmat", $personne); $nomGreffeImmat=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query("*/numeroImmatriculation/numeroIdentification", $personne); //$siren = str_replace(' ','',$title->item(0)->nodeValue)*1; $siren = str_replace(' ','',preg_replace('/[^0-9]/',' ', $title->item(0)->nodeValue))*1; if ($siren<>0) { if ($siren<000100000) { print_r($tabAnnonces[$idann]); echo date ('Y/m/d - H:i:s')." - ERREUR : Siren $siren impossible pour l'annonce $idann !".EOL; }elseif($siren<001000000) $siren='000'.$siren; elseif ($siren<010000000) $siren='00'. $siren; elseif ($siren<100000000) $siren='0'. $siren; } if ( !isset($tabAnnonces[$idann]['siren']) || !is_array($tabAnnonces[$idann]['siren']) ) $tabAnnonces[$idann]['siren']=array(); if ( !isset($tabAnnonces[$idann]['data']['siren']) || !is_array($tabAnnonces[$idann]['data']['siren']) ) { $tabAnnonces[$idann]['data']['siren']=array(); $tabAnnonces[$idann]['data']['sirenValide']=array(); } if ($iInsee->valideSiren($siren)) { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>1))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(1)); } else { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>0))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(0)); } /** **/ $title = $xpath->query ("personneMorale/denomination", $personne); $raisonSociale = trim(utf8_decode($title->item(0)->nodeValue)); if ($raisonSociale=='') { // NOM $title = $xpath->query ("personnePhysique/nom", $personne); $raisonSociale = utf8_decode($title->item(0)->nodeValue) . ' ('. // Prénoms $title = $xpath->query ("personnePhysique/prenom", $personne); for ($i = 0; $i < $title->length; $i++) $raisonSociale.= utf8_decode($title->item($i)->nodeValue).' '; $raisonSociale=trim(preg_replace('/\d/','', str_replace('Object id #', '', $raisonSociale))).')'; // Nom d'usage $title = $xpath->query ("personnePhysique/nomUsage", $personne); if (trim(utf8_decode($title->item(0)->nodeValue))<>'') $raisonSociale.=". Nom d'usage : ".utf8_decode($title->item(0)->nodeValue); // Pseudonyme $title = $xpath->query ('personnePhysique/pseudonyme', $personne); if (trim(utf8_decode($title->item(0)->nodeValue))<>'') $raisonSociale.=". Pseudonyme : ".utf8_decode($title->item(0)->nodeValue); } if ( !isset($tabAnnonces[$idann]['data']['raisonSociale']) || !is_array($tabAnnonces[$idann]['data']['raisonSociale']) ) $tabAnnonces[$idann]['data']['raisonSociale']=array(); if ($typeActe=='vente') $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array('/ACHE/'.$raisonSociale)); else $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array($raisonSociale)); /** **/ $title = $xpath->query ("personneMorale/formeJuridique", $personne); $fj=utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['FJ']) || !is_array($tabAnnonces[$idann]['data']['FJ']) ) $tabAnnonces[$idann]['data']['FJ']=array(); $tabAnnonces[$idann]['data']['FJ']=array_merge($tabAnnonces[$idann]['data']['FJ'], array($fj)); /** **/ $title = $xpath->query ("personneMorale/sigle", $personne); $sigle=utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['sigle']) || !is_array($tabAnnonces[$idann]['data']['sigle']) ) $tabAnnonces[$idann]['data']['sigle']=array(); $tabAnnonces[$idann]['data']['sigle']=array_merge($tabAnnonces[$idann]['data']['sigle'], array($sigle)); /** **/ $title = $xpath->query ("personneMorale/administration", $personne); $administration=utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['administration']) || !is_array($tabAnnonces[$idann]['data']['administration']) ) $tabAnnonces[$idann]['data']['administration']=array(); $tabAnnonces[$idann]['data']['administration']=array_merge($tabAnnonces[$idann]['data']['administration'], array($administration)); /** **/ $title = $xpath->query ('personneMorale/nomCommercial', $personne); $nomCommercial=trim(utf8_decode($title->item(0)->nodeValue)); if ($nomCommercial=='') { $title = $xpath->query ('personnePhysique/nomCommercial', $personne); $nomCommercial=trim(utf8_decode($title->item(0)->nodeValue)); } if ( !isset($tabAnnonces[$idann]['data']['nomCommercial']) || !is_array($tabAnnonces[$idann]['data']['nomCommercial']) ) $tabAnnonces[$idann]['data']['nomCommercial']=array(); $tabAnnonces[$idann]['data']['nomCommercial']=array_merge($tabAnnonces[$idann]['data']['nomCommercial'], array($nomCommercial)); /** nationalite **/ $title = $xpath->query ('personnePhysique/nationnalite', $personne); $nationalite=trim(utf8_decode($title->item(0)->nodeValue)); if ( !isset($tabAnnonces[$idann]['data']['nationalite']) || !is_array($tabAnnonces[$idann]['data']['nationalite']) ) $tabAnnonces[$idann]['data']['nationalite']=array(); $tabAnnonces[$idann]['data']['nationalite']=array_merge($tabAnnonces[$idann]['data']['nationalite'], array($nationalite)); /** **/ $title = $xpath->query ('capital/montantCapital', $personne); $capital_montant=utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ('capital/devise', $personne); $capital_devise=utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ('capital/capitalVariable', $personne); $capital_variable=utf8_decode($title->item(0)->nodeValue); if ($capital_montant<>'' && $capital_variable=='') $capital_mt=$capital_montant; elseif ($capital_montant=='' && $capital_variable<>'') $capital_mt=$capital_variable; elseif ($capital_montant=='' && $capital_variable=='') $capital_mt=''; else { print_r($tabAnnonces[$idann]); echo "Annonce $idann : Capital variable et fixe trouvé !".EOL; } $tabAnnonces[$idann]['data']['Capital']=array('Montant'=>$capital_mt, 'Devise'=>$capital_devise); /** **/ if ( !isset($tabAnnonces[$idann]['data']['adresseSiegeVoie']) || !is_array($tabAnnonces[$idann]['data']['adresseSiegeVoie']) ) $tabAnnonces[$idann]['data']['adresseSiegeVoie']=array(); $title = $xpath->query ("adresse/france/numeroVoie", $personne); $adr = utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/france/typeVoie", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/france/nomVoie", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/france/complGeographique", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/france/BP", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/france/localite", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); /** **/ $title = $xpath->query ("adresse/etranger/adresse", $personne); $etranger = utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/etranger/pays", $personne); $pays = utf8_decode($title->item(0)->nodeValue); if ($etranger<>'' || $pays<>'') $adr.='|'.$etranger.'|'.$pays; $tabAnnonces[$idann]['data']['adresseSiegeVoie']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVoie'], (array)$adr); /** **/ $title = $xpath->query ("adresse/france/codePostal", $personne); $cp = utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['adresseSiegeCP']) || !is_array($tabAnnonces[$idann]['data']['adresseSiegeCP']) ) $tabAnnonces[$idann]['data']['adresseSiegeCP']=array(); $tabAnnonces[$idann]['data']['adresseSiegeCP']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeCP'], (array)$cp); /** **/ $title = $xpath->query ("adresse/france/ville", $personne); $ville = utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['adresseSiegeVille']) || !is_array($tabAnnonces[$idann]['data']['adresseSiegeVille']) ) $tabAnnonces[$idann]['data']['adresseSiegeVille']=array(); $tabAnnonces[$idann]['data']['adresseSiegeVille']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVille'], (array)$ville); // Génération du texte d'annonce Siren / RCS / Greffe if ($siren<>'' && $siren*1<>0) $annonceTxt.=number_format($siren, 0, '', ' ').' '; $annonceTxt.="$codeRCS "; if ($nomGreffeImmat<>'') $annonceTxt.="$nomGreffeImmat."; // Génération du texte d'annonce Raison sociale, Nom/Prénom/ Forme / Activité / Adresse $annonceTxt.=' '.$raisonSociale.'.'; if ($fj<>'') if (substr($fj,-1)=='.') $annonceTxt.=" Forme : $fj"; else $annonceTxt.=" Forme : $fj."; if ($nomCommercial<>'') if (substr($nomCommercial,-1)=='.') $annonceTxt.=" Nom commercial : $nomCommercial"; else $annonceTxt.=" Nom commercial : $nomCommercial."; $annonceTxt.=generePhraseBodaccTxt($nationalite, 'Nationalité'); if ($sigle<>'') if (substr($sigle,-1)=='.') $annonceTxt.=" Sigle : $sigle"; else $annonceTxt.=" Sigle : $sigle."; if ($administration<>'') if (substr($administration,-1)=='.') $annonceTxt.=" Administration : $administration"; else $annonceTxt.=" Administration : $administration."; if ($capital_mt<>'' || $capital_devise<>'') { $capital_deviseLib=getLibelleDevise($capital_devise); if ($capital_deviseLib=='') $capital_deviseLib=$capital_devise; if ($capital_variable<>'') $txtVariable='variable '; else $txtVariable=''; if (substr($capital_devise,-1)=='.') $annonceTxt.=" Capital $txtVariable: $capital_mt $capital_deviseLib"; else $annonceTxt.=" Capital $txtVariable: $capital_mt $capital_deviseLib."; $capital_deviseLib=''; } if (trim(strtr($adr,'|',' '))<>'' || $cp<>'' || $ville<>'') $annonceTxt.=' Adresse : '. str_replace('|',' ',$adr) ." $cp $ville."; } /** ** Liste des établissements (vendu?) **/ $result = $xpath->query('etablissement/.', $annonce); // Mise à blanc des champs textes pour la génération de l'annonce $origineFonds=$qualiteEtablissement=$activite=$enseigne=$adr=$cp=$ville=$bienAcqui=''; $vente_montant=0;$vente_devise=''; foreach ($result as $etab) { // Mise à blanc des champs textes pour la génération de l'annonce $origineFonds=$qualiteEtablissement=$activite=$enseigne=$adr=$cp=$ville=''; //au prix stipulé de 260 000 euros //établissement principal acquis par achat au prix stipulé de 260 000 euros $title = $xpath->query('origineFonds', $etab); $strTmp=$origineFonds=trim(utf8_decode($title->item(0)->nodeValue)); @$tabAnnonces[$idann]['data']['perimetre'].=$origineFonds; /** Recherche du montant de la vente **/ $tabTmp=array(); //Acquisition d'un fonds de commerce au prix de 50 000 euros //Achat d'un fonds de commerce au prix stipulé de 634 235 Euros if (preg_match("/(prix|stipul|montant|indémni|indemni|évalu|evalu|éstim|estim|EUR)/i", $strTmp)) { if (substr($strTmp,-1)=='.') $strTmp=trim(substr($strTmp,0,strlen($strTmp)-1)); if (preg_match("/(.*)prix(?: de)([\D]*)([0-9\.,\s]*)([\D]*)/i", $strTmp, $tabTmp) || preg_match("/(.*)stipul.(?: de)([\D]*)([0-9\.,\s]*)([\D]*)/i", $strTmp, $tabTmp) || preg_match("/(.*)montant(?: de)([\D]*)([0-9\.,\s]*)([\D]*)/i", $strTmp, $tabTmp) || preg_match("/(.*)valu([\D]*)([0-9\.,\s]*)([\D]*)/i", $strTmp, $tabTmp) || preg_match("/(.*)stim([\D]*)([0-9\.,\s]*)([\D]*)/i", $strTmp, $tabTmp) || preg_match("/(.*)([\D]*) ([0-9\.,\s]*) (EUR)/i", $strTmp, $tabTmp) ) { //die(print_r($tabTmp)); $vente_montant=strtr($tabTmp[3], array(' '=>'', ','=>'.', chr(160)=>'')); if (substr($vente_montant,-3,1)=='.') { $vente_montant=str_replace('.','', substr($vente_montant,0,strlen($vente_montant)-3)); } elseif (substr($vente_montant,-4,1)=='.') { $vente_montant=str_replace('.','', $vente_montant); } $vente_devise =trim($tabTmp[4]); } elseif (preg_match("/(.*)ind(.)mni([\D]*)([0-9\.,\s]*)([\D]*)/i", $strTmp, $tabTmp)) { $vente_montant=strtr($tabTmp[4], array(' '=>'', ','=>'.', chr(160)=>'')); //str_replace(' ','', str_replace(',','.',$tabTmp[4])); if (substr($vente_montant,-3,1)=='.') { $vente_montant=str_replace('.','', substr($vente_montant,0,strlen($vente_montant)-3)); } elseif (substr($vente_montant,-4,1)=='.') { $vente_montant=str_replace('.','', $vente_montant); } $vente_devise =trim($tabTmp[5]); } if ( preg_match("/eur/i", $vente_devise) && !preg_match("/(wir|suisse|che)/i",$vente_devise) ) $vente_devise='EURO'; $devise=strtoupper(trim(str_replace('de ', '', str_replace('d\'', '', $vente_devise)))); if ($devise<>'') { if ($vente_montant*1<>0 && !$iBodacc->isDeviseBodacc($devise)) { echo ("ERREUR : Annonce $idann, devise de la vente inconnue = '$devise' (montant = $vente_montant) !".EOL.$texte.EOL); echo 'SIREN ............. '.implode(';',$tabAnnonces[$idann]['data']['siren']).EOL; echo 'Raison Sociale .... '.implode(';',$tabAnnonces[$idann]['data']['raisonSociale']).EOL; echo 'RC ................ '.implode(';',$tabAnnonces[$idann]['data']['RC']).EOL; echo 'Forme Juridique ... '.implode(';',$tabAnnonces[$idann]['data']['FJ']).EOL; echo chr(7); /** @todo Gérer les devises dont le nom peut être commun à plusieurs pays : ** DINARS DIRHAM DOLLARS COURONNES FRANC CFA ROUPIE LEU **/ if ($noQuestion) { die("Devise '$devise' inconnue !"); } else { while(true){ echo 'Saisir la devise pour "'.$devise.'" (0 pour ne rien saisir) ?'.EOL; $saisie = trim(strtoupper(fgets(STDIN))); if (strlen($saisie)==3) { echo 'Insertion de la devise en base'.EOL; if (!$iBodacc->addDeviseBodacc($devise, $saisie) && mysql_errno()<>1062) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations de chargement en base impossible :".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); die(); } $vente_devise=$saisie; break; } elseif (strlen($saisie)==1 && $saisie=='0') { $vente_devise='??'; break; } } } } else $vente_devise=$iBodacc->getDeviseBodacc($devise); } else $vente_devise='?'; } $tabAnnonces[$idann]['data']['Vente']['Montant']=$vente_montant; $tabAnnonces[$idann]['data']['Vente']['Devise']=$vente_devise; $tabAnnonces[$idann]['data']['Vente']['Perimetre']=$qualiteEtablissement; $tabAnnonces[$idann]['data']['Vente']['bienAcquis']=$bienAcqui=$origineFonds; //*$tabAnnonces[$idann]['data']['Vente']['bienAcqui']=$qualiteEtablissement;*/ if ($vente_montant*1==0 && $origineFonds<>'' && $typeActe=='vente') { print_r($tabAnnonces[$idann]); print_r($tabTmp); echo "Montant non détecté, merci de saisir le "; if ($noQuestion) { die("Devise '$devise' inconnue !"); } else { while(true) { echo 'Montant de la vente en EURO ? (0 pour ne rien saisir) ?'.EOL; $saisie = trim(strtoupper(fgets(STDIN)))*1; $vente_montant=$saisie; break; } } } /** Précisions sur la vente **/ if (preg_match("/Partie d(e|u) fonds/i", $bienAcqui)) // Partie de fonds $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5105)); elseif (preg_match("/Fonds.{0,2}principal/i", $bienAcqui)) // Fonds principal $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5100)); elseif (preg_match("/Fonds.{0,2}secondaire/i", $bienAcqui)) // Fonds secondaire $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5101)); elseif (preg_match("/Fonds.{0,2}compl(é|e)mentaire/i", $bienAcqui)) // Fonds complémentaire $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5102)); elseif (preg_match("/Fonds.{0,2}artisanal/i", $bienAcqui)) // Fonds artisanal $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5104)); if (preg_match("/4(e|ème|eme) cat(é|e)gorie/i", $bienAcqui) || preg_match("/cat(é|e)gorie 4/i", $bienAcqui) || preg_match("/Licence (IV|4)/i", $bienAcqui)) // Licence de débit de boissons de 4e catégorie $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5205)); if (preg_match("/Droit au bail/i", $bienAcqui)) // Droit au bail $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5203)); if (preg_match("/(Branche|Partie) (compl.te )(d.activit)/i", $bienAcqui) || preg_match("/branche.{1,10}activit/i", $bienAcqui)) // Branche ou Partie d'activité $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5200)); if (preg_match("/Portefeuille.{1,19}assurances/i", $bienAcqui)) // Portefeuille d'assurances $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5206)); elseif (preg_match("/Clientèle/i", $bienAcqui)) // Clientèle $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5201)); if (preg_match("/(e|é)l(e|é)ments incorporels/i", $bienAcqui)) // Eléments incorporels $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5204)); /** qualiteEtablissement => bienAqui **/ $title = $xpath->query('qualiteEtablissement', $etab); $qualiteEtablissement=trim(utf8_decode($title->item(0)->nodeValue)); $tabAnnonces[$idann]['data']['Vente']['bienAcqui']=$qualiteEtablissement; $bienAcqui=$qualiteEtablissement; if (preg_match("/(e|é)tablissement principal/i", $bienAcqui)) // Etablissement principal $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5000)); // $tabAnnonces[$idann]['data']['typeVente']=array(); elseif (preg_match("/(e|é)tablissement secondaire/i", $bienAcqui)) // Etablissement secondaire $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5001)); elseif (preg_match("/(e|é)tablissement compl(é|e)mentaire/i", $bienAcqui)) // Etablissement complémentaire $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5002)); elseif (preg_match("/(e|é)tablissements?(.*)et(.*)(e|é)tablissement/i", $bienAcqui)) // Plusieurs établissements $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5004)); elseif (preg_match("/(e|é)tablissements/i", $bienAcqui)) // Plusieurs établissements $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5004)); elseif (preg_match("/(e|é)tablissement/i", $bienAcqui)) // Etablissement $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5003)); /** **/ $title = $xpath->query ('activite', $etab); $activite = utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['activite']) || !is_array($tabAnnonces[$idann]['data']['activite']) ) $tabAnnonces[$idann]['data']['activite']=array(); $tabAnnonces[$idann]['data']['activite']=array_merge($tabAnnonces[$idann]['data']['activite'], array($activite)); /** **/ $title = $xpath->query ('enseigne', $personne); $enseigne=utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['enseigne']) || !is_array($tabAnnonces[$idann]['data']['enseigne']) ) $tabAnnonces[$idann]['data']['enseigne']=array(); $tabAnnonces[$idann]['data']['enseigne']=array_merge($tabAnnonces[$idann]['data']['enseigne'], array($enseigne)); /** **/ if ( !isset($tabAnnonces[$idann]['data']['adresseVoie']) || !is_array($tabAnnonces[$idann]['data']['adresseVoie']) ) $tabAnnonces[$idann]['data']['adresseVoie']=array(); $title = $xpath->query ("adresse/numeroVoie", $etab); $adr = utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/typeVoie", $etab); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/nomVoie", $etab); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/complGeographique", $etab); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/BP", $etab); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/localite", $etab); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $tabAnnonces[$idann]['data']['adresseVoie']=array_merge($tabAnnonces[$idann]['data']['adresseVoie'], (array)$adr); /** **/ $title = $xpath->query ("adresse/codePostal", $etab); $cp = utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['adresseCP']) || !is_array($tabAnnonces[$idann]['data']['adresseCP']) ) $tabAnnonces[$idann]['data']['adresseCP']=array(); $tabAnnonces[$idann]['data']['adresseCP']=array_merge($tabAnnonces[$idann]['data']['adresseCP'], (array)$cp); /** **/ $title = $xpath->query ("adresse/ville", $etab); $ville = utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['adresseVille']) || !is_array($tabAnnonces[$idann]['data']['adresseVille']) ) $tabAnnonces[$idann]['data']['adresseVille']=array(); $tabAnnonces[$idann]['data']['adresseVille']=array_merge($tabAnnonces[$idann]['data']['adresseVille'], (array)$ville); // Génération du texte d'annonce Origine du fonds, Etablissement, Activite et Adresse if ($origineFonds<>'') if (substr($origineFonds,-1)=='.') $annonceTxt.=" Origine du fonds : $origineFonds"; else $annonceTxt.=" Origine du fonds : $origineFonds."; if ($qualiteEtablissement<>'') if (substr($qualiteEtablissement,-1)=='.') $annonceTxt.=" Etablissement : $qualiteEtablissement"; else $annonceTxt.=" Etablissement : $qualiteEtablissement."; if ($activite<>'') if (substr($activite,-1)=='.') $annonceTxt.=" Activité : $activite"; else $annonceTxt.=" Activité : $activite."; if ($enseigne<>'') if (substr($enseigne,-1)=='.') $annonceTxt.=" Enseigne : $enseigne"; else $annonceTxt.=" Enseigne : $enseigne."; if (trim(strtr($adr,'|',' '))<>'' || $cp<>'' || $ville<>'') $annonceTxt.=' Adresse : '. str_replace('|',' ',$adr) ." $cp $ville."; } /** ** Liste des precedentExploitantPP **/ $result = $xpath->query('precedentExploitantPP/.', $annonce); $raisonSociale=$siren=$codeRCS=$nomGreffeImmat=''; $precedentExploitant=false; foreach ($result as $personne) { $raisonSociale=$siren=$codeRCS=$nomGreffeImmat=''; $title = $xpath->query("numeroImmatriculation/codeRCS", $personne); $codeRCS = strtoupper(trim(utf8_decode($title->item(0)->nodeValue))); if ($codeRCS<>'RCS') { $title = $xpath->query("nonInscrit", $personne); $codeRCS = trim(utf8_decode($title->item(0)->nodeValue)); } $title = $xpath->query("numeroImmatriculation/nomGreffeImmat", $personne); $nomGreffeImmat=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query("numeroImmatriculation/numeroIdentification", $personne); $siren = str_replace(' ','',$title->item(0)->nodeValue)*1; if ($siren<>0) { if ($siren<000100000) echo date ('Y/m/d - H:i:s')." - ERREUR : Siren $siren impossible pour l'annonce $idann !".EOL; elseif ($siren<001000000) $siren='000'.$siren; elseif ($siren<010000000) $siren='00'. $siren; elseif ($siren<100000000) $siren='0'. $siren; $precedentExploitantSiren=$siren; } if ( !isset($tabAnnonces[$idann]['siren']) || !is_array($tabAnnonces[$idann]['siren']) ) $tabAnnonces[$idann]['siren']=array(); if ( !isset($tabAnnonces[$idann]['data']['siren']) || !is_array($tabAnnonces[$idann]['data']['siren']) ) { $tabAnnonces[$idann]['data']['siren']=array(); $tabAnnonces[$idann]['data']['sirenValide']=array(); } if ($iInsee->valideSiren($siren)) { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>1))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(1)); } else { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>0))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(0)); } /** **/ $title = $xpath->query ("nom", $personne); $raisonSociale = utf8_decode($title->item(0)->nodeValue) . ' ('. $title = $xpath->query ("prenom", $personne); for ($i = 0; $i < $title->length; $i++) $raisonSociale.= utf8_decode($title->item($i)->nodeValue).' '; $raisonSociale=trim(preg_replace('/\d/','', str_replace('Object id #', '', $raisonSociale))).')'; $title = $xpath->query ("nomUsage", $personne); if (trim(utf8_decode($title->item(0)->nodeValue))<>'') $raisonSociale.=". Nom d'usage : ".utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['raisonSociale']) || !is_array($tabAnnonces[$idann]['data']['raisonSociale']) ) $tabAnnonces[$idann]['data']['raisonSociale']=array(); $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array('Précédent exploitant '.$raisonSociale)); $precedentExploitantRS=$raisonSociale; $title = $xpath->query ("nature", $personne); $nature = utf8_decode($title->item(0)->nodeValue); if ($nature<>'') die('nature !!!'); // Génération du texte d'annonce Siren / RCS / Greffe if (!$precedentExploitant) $annonceTxt.=' Précédent exploitant : '.$raisonSociale.'. '; else $annonceTxt.=" $raisonSociale. "; if ($siren<>'' && $siren*1<>0) $annonceTxt.=number_format($siren, 0, '', ' ').' '; $annonceTxt.="$codeRCS "; if ($nomGreffeImmat<>'') $annonceTxt.="$nomGreffeImmat."; // On indique que le texte "Précédent exploitant" est déjà affiché $precedentExploitant=true; } /** ** Liste des precedentExploitantPM **/ $result = $xpath->query('precedentExploitantPM/.', $annonce); $raisonSociale=$siren=$codeRCS=$nomGreffeImmat=''; foreach ($result as $personne) { $raisonSociale=$siren=$codeRCS=$nomGreffeImmat=''; $title = $xpath->query("numeroImmatriculation/codeRCS", $personne); $codeRCS = strtoupper(trim(utf8_decode($title->item(0)->nodeValue))); if ($codeRCS<>'RCS') { $title = $xpath->query("nonInscrit", $personne); $codeRCS = trim(utf8_decode($title->item(0)->nodeValue)); } $title = $xpath->query("numeroImmatriculation/nomGreffeImmat", $personne); $nomGreffeImmat=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query("numeroImmatriculation/numeroIdentification", $personne); $siren = str_replace(' ','',$title->item(0)->nodeValue)*1; if ($siren<>0) { if ($siren<000100000) echo date ('Y/m/d - H:i:s')." - ERREUR : Siren $siren impossible pour l'annonce $idann !".EOL; elseif ($siren<001000000) $siren='000'.$siren; elseif ($siren<010000000) $siren='00'. $siren; elseif ($siren<100000000) $siren='0'. $siren; $precedentExploitantSiren=$siren; } if ( !isset($tabAnnonces[$idann]['siren']) || !is_array($tabAnnonces[$idann]['siren']) ) $tabAnnonces[$idann]['siren']=array(); if ( !isset($tabAnnonces[$idann]['data']['siren']) || !is_array($tabAnnonces[$idann]['data']['siren']) ) { $tabAnnonces[$idann]['data']['siren']=array(); $tabAnnonces[$idann]['data']['sirenValide']=array(); } if ($iInsee->valideSiren($siren)) { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>1))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(1)); } else { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>0))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(0)); } /** **/ $title = $xpath->query ("denomination", $personne); $raisonSociale = trim(utf8_decode($title->item(0)->nodeValue)); if ( !isset($tabAnnonces[$idann]['data']['raisonSociale']) || !is_array($tabAnnonces[$idann]['data']['raisonSociale']) ) $tabAnnonces[$idann]['data']['raisonSociale']=array(); $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array('Précédent exploitant '.$raisonSociale)); $precedentExploitantRS=$raisonSociale; // Génération du texte d'annonce Siren / RCS / Greffe if (!$precedentExploitant) $annonceTxt.=' Précédent exploitant : '.$raisonSociale.'. '; else $annonceTxt.=" $raisonSociale. "; if ($siren<>'' && $siren*1<>0) $annonceTxt.=number_format($siren, 0, '', ' ').' '; $annonceTxt.="$codeRCS "; if ($nomGreffeImmat<>'') $annonceTxt.="$nomGreffeImmat."; // On indique que le texte "Précédent exploitant" est déjà affiché $precedentExploitant=true; } /** ** Liste des precedentProprietairePP **/ $result = $xpath->query('precedentProprietairePP/.', $annonce); $raisonSociale=$siren=$codeRCS=$nomGreffeImmat=''; $precedentProprietaire=false; foreach ($result as $personne) { $raisonSociale=$siren=$codeRCS=$nomGreffeImmat=''; $title = $xpath->query("numeroImmatriculation/codeRCS", $personne); $codeRCS = strtoupper(trim(utf8_decode($title->item(0)->nodeValue))); if ($codeRCS<>'RCS') { $title = $xpath->query("nonInscrit", $personne); $codeRCS = trim(utf8_decode($title->item(0)->nodeValue)); } $title = $xpath->query("numeroImmatriculation/nomGreffeImmat", $personne); $nomGreffeImmat=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query("numeroImmatriculation/numeroIdentification", $personne); $siren = str_replace(' ','',$title->item(0)->nodeValue)*1; if ($siren<>0) { if ($siren<000100000) echo date ('Y/m/d - H:i:s')." - ERREUR : Siren $siren impossible pour l'annonce $idann !".EOL; elseif ($siren<001000000) $siren='000'.$siren; elseif ($siren<010000000) $siren='00'. $siren; elseif ($siren<100000000) $siren='0'. $siren; } if ( !isset($tabAnnonces[$idann]['siren']) || !is_array($tabAnnonces[$idann]['siren']) ) $tabAnnonces[$idann]['siren']=array(); if ( !isset($tabAnnonces[$idann]['data']['siren']) || !is_array($tabAnnonces[$idann]['data']['siren']) ) { $tabAnnonces[$idann]['data']['siren']=array(); $tabAnnonces[$idann]['data']['sirenValide']=array(); } if ($iInsee->valideSiren($siren)) { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>1))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(1)); } else { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>0))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(0)); } /** **/ $title = $xpath->query ("nom", $personne); $raisonSociale = utf8_decode($title->item(0)->nodeValue) . ' ('. $title = $xpath->query ("prenom", $personne); for ($i = 0; $i < $title->length; $i++) $raisonSociale.= utf8_decode($title->item($i)->nodeValue).' '; $raisonSociale=trim(preg_replace('/\d/','', str_replace('Object id #', '', $raisonSociale))).')'; $title = $xpath->query ("nomUsage", $personne); if (trim(utf8_decode($title->item(0)->nodeValue))<>'') $raisonSociale.=". Nom d'usage : ".utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['raisonSociale']) || !is_array($tabAnnonces[$idann]['data']['raisonSociale']) ) $tabAnnonces[$idann]['data']['raisonSociale']=array(); if ($siren==$precedentExploitantSiren || $raisonSociale==$precedentExploitantRS) $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array('Précédent propriétaire exploitant '.$raisonSociale)); else $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array('Précédent propriétaire '.$raisonSociale)); $title = $xpath->query ("nature", $personne); $nature = utf8_decode($title->item(0)->nodeValue); if ($nature<>'') die('nature !!!'); // Génération du texte d'annonce Siren / RCS / Greffe if (!$precedentProprietaire) $annonceTxt.=' Précédent propriétaire : '.$raisonSociale.'. '; else $annonceTxt.=" $raisonSociale. "; if ($siren<>'' && $siren*1<>0) $annonceTxt.=number_format($siren, 0, '', ' ').' '; $annonceTxt.="$codeRCS "; if ($nomGreffeImmat<>'') $annonceTxt.="$nomGreffeImmat."; // On indique que le texte "Précédent proprietaire" est déjà affiché $precedentProprietaire=true; } /** ** Liste des precedentProprietairePM **/ $result = $xpath->query('precedentProprietairePM/.', $annonce); $raisonSociale=$siren=$codeRCS=$nomGreffeImmat=''; foreach ($result as $personne) { $raisonSociale=$siren=$codeRCS=$nomGreffeImmat=''; $title = $xpath->query("numeroImmatriculation/codeRCS", $personne); $codeRCS = strtoupper(trim(utf8_decode($title->item(0)->nodeValue))); if ($codeRCS<>'RCS') { $title = $xpath->query("nonInscrit", $personne); $codeRCS = trim(utf8_decode($title->item(0)->nodeValue)); } $title = $xpath->query("numeroImmatriculation/nomGreffeImmat", $personne); $nomGreffeImmat=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query("numeroImmatriculation/numeroIdentification", $personne); $siren = str_replace(' ','',$title->item(0)->nodeValue)*1; if ($siren<>0) { if ($siren<000100000) echo date ('Y/m/d - H:i:s')." - ERREUR : Siren $siren impossible pour l'annonce $idann !".EOL; elseif ($siren<001000000) $siren='000'.$siren; elseif ($siren<010000000) $siren='00'. $siren; elseif ($siren<100000000) $siren='0'. $siren; } if ( !isset($tabAnnonces[$idann]['siren']) || !is_array($tabAnnonces[$idann]['siren']) ) $tabAnnonces[$idann]['siren']=array(); if ( !isset($tabAnnonces[$idann]['data']['siren']) || !is_array($tabAnnonces[$idann]['data']['siren']) ) { $tabAnnonces[$idann]['data']['siren']=array(); $tabAnnonces[$idann]['data']['sirenValide']=array(); } if ($iInsee->valideSiren($siren)) { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>1))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(1)); } else { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>0))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(0)); } /** **/ $title = $xpath->query ("denomination", $personne); $raisonSociale = trim(utf8_decode($title->item(0)->nodeValue)); if ( !isset($tabAnnonces[$idann]['data']['raisonSociale']) || !is_array($tabAnnonces[$idann]['data']['raisonSociale']) ) $tabAnnonces[$idann]['data']['raisonSociale']=array(); if ($siren==$precedentExploitantSiren || $raisonSociale==$precedentExploitantRS) $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array('Précédent propriétaire exploitant '.$raisonSociale)); else $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array('Précédent propriétaire '.$raisonSociale)); // Génération du texte d'annonce Siren / RCS / Greffe if (!$precedentProprietaire) $annonceTxt.=' Précédent propriétaire : '.$raisonSociale.'. '; else $annonceTxt.=" $raisonSociale. "; if ($siren<>'' && $siren*1<>0) $annonceTxt.=number_format($siren, 0, '', ' ').' '; $annonceTxt.="$codeRCS "; if ($nomGreffeImmat<>'') $annonceTxt.="$nomGreffeImmat."; // On indique que le texte "Précédent proprietaire" est déjà affiché $precedentProprietaire=true; } // Libellé Annonce Texte pour la date d'effet $annonceTxt.=str_replace(' 01 ', ' 1er ',generePhraseBodaccTxt(strtolower(WDate::dateT('Y-m-d', 'd M Y', $dateImmatriculation)), 'A dater du')); // Génération du texte d'annonce Siren / RCS / Greffe if ($typeActe=='vente') { if ( ($dateBodacc*1)<20080128) { /** A partir de cette date, les textes "catégories" ne sont plus imprimés ** dans les annonces papier **/ $annonceTxt.=generePhraseBodaccTxt($categorieVente); } $tabActesCategorie[$typeActe][]=$categorieVente; $codeEven=$iBodacc->getCodeNatureEvenement($categorieVente); if ($codeEven==0) { if ($tabAnnonces[$idann]['typeAnnonce']=='Insertion' && $tabAnnonces[$idann]['corrNum_Annonce']>0 && $tabAnnonces[$idann]['corrNumParution']<>'' && $tabAnnonces[$idann]['corrBodacc_Date_Parution']>19530101) { print_r($tabAnnonces[$idann]); echo date ('Y/m/d - H:i:s')." - ERREUR : Annonce d'insertion avec informations de correction pour l'annonce $idann !".EOL; if ($noQuestion) { die("Vérifier avec le Bodacc version Papier et saisir le type d'annonce (I)nsertion / (R)ectificatif / (S)uppression / (P)asser provisoirement l'intégration de ce Bodacc ?".EOL); } else { while(true) { echo 'Vérifier avec le Bodacc version Papier et saisir le type d\'annonce (I)nsertion / (R)ectificatif / (S)uppression / (P)asser provisoirement l\'intégration de ce Bodacc ?'.EOL; $saisie = trim(strtoupper(fgets(STDIN))); if ($saisie=='I') { $tabAnnonces[$idann]['typeAnnonce']='Insertion'; //$tabAnnonces[$idann]['Rubrique_Bodacc']='B111'; //$tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2312)); die('non géré. Mettre la Bonne Rubrique Bodacc et le bin codeEven'); break; } elseif ($saisie=='R') { $tabAnnonces[$idann]['typeAnnonce']='Rectificatif'; //$tabAnnonces[$idann]['Rubrique_Bodacc']='B117'; //$tabAnnonces[$idann]['data']['typeRadiation']=6700; //die('non géré. Mettre la Bonne Rubrique Bodacc et le bin codeEven'); break; } elseif ($saisie=='S') { $tabAnnonces[$idann]['typeAnnonce']='Suppression'; /* Entête d'annonce d'annulation */ $annonceTxtFin=preg_replace('/^'.$bodaccNumAnn.' \- /Uis', '', $annonceTxt); $annonceTxt ="$bodaccNumAnn - Annulation. BODACC $typeBodacc. Numéro de parution : $numeroParutionCorr. Date de parution : $dateCorr. Annonce numéro : $numeroAnnonceCorr. Cet avis est nul et non avenu. $annonceTxtFin".EOL; die("Vérifier l'annonce générée :".EOL.$annonceTxt.EOL); break; } elseif ($saisie=='' || $saisie=='P') { //die('non géré. Vérifier le niveau de continue()'); continue(4); } } } } if ($tabAnnonces[$idann]['typeAnnonce']<>'Suppression') { //parutionAvisPrecedent print_r($tabAnnonces[$idann]); echo date ('Y/m/d - H:i:s')." - ERREUR : Nature de vente '$categorieVente' inconnue pour l'annonce $idann !".EOL; die(); $fpJ=fopen('/var/www/log/newVentes.log','a'); fwrite($fpJ, 'md5("'.$categorieVente.'")=>5999,'); fclose($fpJ); } $codeEven=5999; } // Suppression des évènements redondants 5103 avec 5100 à 5105 $tabEven=array_unique(array_merge($tabAnnonces[$idann]['data']['typeVente'], explode(';',$codeEven))); $tabEven2=array(); if ( in_array('5100', $tabEven) || in_array('5101', $tabEven) || in_array('5102', $tabEven) || in_array('5104', $tabEven) || in_array('5105', $tabEven) ) { foreach ($tabEven as $even) if ($even*1<>5103) $tabEven2[]=$even; } else $tabEven2=$tabEven; $tabEven=$tabEven2; $tabEven2=array(); // Ajout de précisions si évènement par défaut 5900 et 5000 à 5004 if ( ( in_array('5000', $tabEven) || in_array('5001', $tabEven) || in_array('5002', $tabEven) || in_array('5003', $tabEven) || in_array('5004', $tabEven) ) && in_array('5900', $tabEven) ) { foreach ($tabEven as $even) if ($even*1<>5900) // L'évènement 5900 n'est pas à communiquer dans ce cas $tabEven2[]=$even; } else $tabEven2=$tabEven; $tabAnnonces[$idann]['data']['typeVente']=$tabEven2; //=$vente_montant; //$tabAnnonces[$idann]['data']['VenteDev'] if ($descriptif<>'' && $tabAnnonces[$idann]['data']['VenteMt']==0) { $strTmp=$descriptif; /** Recherche du montant de la vente **/ if (preg_match("/(prix|stipul|montant|indémni|indemni|évalu|evalu|éstim|estim)/i", $strTmp)) { if (substr($strTmp,-1)=='.') $strTmp=trim(substr($strTmp,0,strlen($strTmp)-1)); if (preg_match("/(.*)prix(?: de)([\D]*)([0-9\.,\s]*)([\D]*)/Ui", $strTmp, $tabTmp) || preg_match("/(.*)stipul.(?: de)([\D]*)([0-9\.,\s]*)([\D]*)/Ui", $strTmp, $tabTmp) || preg_match("/(.*)montant(?: de)([\D]*)([0-9\.,\s]*)([\D]*)/Ui", $strTmp, $tabTmp) || preg_match("/(.*)valu([\D]*)([0-9\.,\s]*)([\D]*)/Ui", $strTmp, $tabTmp) || preg_match("/(.*)stim([\D]*)([0-9\.,\s]*)([\D]*)/Ui", $strTmp, $tabTmp) || preg_match("/(.*)([\D]*) ([0-9\.,\s]*) (EUR)/Ui", $strTmp, $tabTmp) ) { $vente_montant=strtr($tabTmp[3], array(' '=>'', ','=>'.', chr(160)=>'')); if (substr($vente_montant,-3,1)=='.') { $vente_montant=str_replace('.','', substr($vente_montant,0,strlen($vente_montant)-3)); } elseif (substr($vente_montant,-4,1)=='.') { $vente_montant=str_replace('.','', $vente_montant); } $vente_devise =trim($tabTmp[4]); } elseif (preg_match("/(.*)ind(.)mni([\D]*)([0-9\.,\s]*)([\D]*)/Ui", $strTmp, $tabTmp)) { $vente_montant=strtr($tabTmp[4], array(' '=>'', ','=>'.', chr(160)=>'')); //str_replace(' ','', str_replace(',','.',$tabTmp[4])); if (substr($vente_montant,-3,1)=='.') { $vente_montant=str_replace('.','', substr($vente_montant,0,strlen($vente_montant)-3)); } elseif (substr($vente_montant,-4,1)=='.') { $vente_montant=str_replace('.','', $vente_montant); } $vente_devise =trim($tabTmp[5]); } if ( preg_match("/eur/i", $vente_devise) && !preg_match("/(wir|suisse|che)/i",$vente_devise) ) $vente_devise='EURO'; $devise=strtoupper(trim(str_replace('de ', '', str_replace('d\'', '', $vente_devise)))); if ($devise<>'') { if ($vente_montant*1<>0 && !$iBodacc->isDeviseBodacc($devise)) { echo ("ERREUR : Annonce $idann, devise de la vente inconnue = '$devise' (montant = $vente_montant) !".EOL.$texte.EOL); echo 'SIREN ............. '.implode(';',$tabAnnonces[$idann]['data']['siren']).EOL; echo 'Raison Sociale .... '.implode(';',$tabAnnonces[$idann]['data']['raisonSociale']).EOL; echo 'RC ................ '.implode(';',$tabAnnonces[$idann]['data']['RC']).EOL; echo 'Forme Juridique ... '.implode(';',$tabAnnonces[$idann]['data']['FJ']).EOL; echo chr(7); /** @todo Gérer les devises dont le nom peut être commun à plusieurs pays : ** DINARS DIRHAM DOLLARS COURONNES FRANC CFA ROUPIE LEU **/ if ($noQuestion) { die("Devise '$devise' inconnue !"); } else { while(true){ echo 'Saisir la devise pour "'.$devise.'" (0 pour ne rien saisir) ?'.EOL; $saisie = trim(strtoupper(fgets(STDIN))); if (strlen($saisie)==3) { echo 'Insertion de la devise en base'.EOL; if (!$iBodacc->addDeviseBodacc($devise, $saisie) && mysql_errno()<>1062) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations de chargement en base impossible :".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); die(); } $vente_devise=$saisie; break; } elseif (strlen($saisie)==1 && $saisie=='0') { $vente_devise='??'; break; } } } } else $vente_devise=$iBodacc->getDeviseBodacc($devise); } else $vente_devise='?'; } $tabAnnonces[$idann]['data']['VenteMt']=$vente_montant; $tabAnnonces[$idann]['data']['VenteDev']=$vente_devise; //print_r($tabAnnonces[$idann]); //die('Trouver le nic !'); } } // Annonces de création elseif ($typeActe=='creation') { if ( ($dateBodacc*1)<20080128) { /** A partir de cette date, les textes "catégories" ne sont plus imprimés ** dans les annonces papier **/ $annonceTxt.=generePhraseBodaccTxt($categorieCreation); } $tabActesCategorie[$typeActe][]=$categorieCreation; $codeEven=$iBodacc->getCodeNatureEvenement($categorieCreation); if ($codeEven==0) { if ($tabAnnonces[$idann]['typeAnnonce']<>'Suppression') { print_r($tabAnnonces[$idann]); echo date ('Y/m/d - H:i:s')." - ERREUR : Nature de creation '$categorieCreation' inconnue pour l'annonce $idann !".EOL; die(); $fpJ=fopen('/var/www/log/newCreations.log','a'); fwrite($fpJ, 'md5("'.$categorieCreation.'")=>4999,'); fclose($fpJ); } $codeEven=4999; } $tabAnnonces[$idann]['data']['typeCreation']=explode(';',$codeEven); } // Annonces d'immatriculation elseif ($typeActe=='immatriculation') { if ( ($dateBodacc*1)<20080128) { /** A partir de cette date, les textes "catégories" ne sont plus imprimés ** dans les annonces papier **/ $annonceTxt.=generePhraseBodaccTxt($categorieImmatriculation); } $tabActesCategorie[$typeActe][]=$categorieImmatriculation; $codeEven=$iBodacc->getCodeNatureEvenement($categorieImmatriculation); if ($codeEven==0 && $categorieImmatriculation<>'') { if ($tabAnnonces[$idann]['typeAnnonce']<>'Suppression') { print_r($tabAnnonces[$idann]); echo date ('Y/m/d - H:i:s')." - ERREUR : Nature d\'immatriculation '$categorieImmatriculation' inconnue pour l'annonce $idann !".EOL; die(); $fpJ=fopen('/var/www/log/newImmatriculations.log','a'); fwrite($fpJ, 'md5("'.$categorieImmatriculation.'")=>4999,'); fclose($fpJ); } $codeEven=4999; } elseif ($codeEven==0 && $categorieImmatriculation=='') { // Gestion d'une annomalie du Bodacc $codeEven=4000; } $tabAnnonces[$idann]['data']['typeCreation']=explode(';',$codeEven); } $annonceTxt.=str_replace(' 01 ', ' 1er ',generePhraseBodaccTxt(strtolower(WDate::dateT('Y-m-d', 'd M Y', $dateEffet)), "Date d'effet")); $annonceTxt.=str_replace(' 01 ', ' 1er ',generePhraseBodaccTxt(strtolower(WDate::dateT('Y-m-d', 'd M Y', $dateCommencementActivite)), "Date de commencement d'activité")); if ($journal_titre<>'') $annonceTxt.=str_replace(' 01 ', ' 1er ', " Publication légale : $journal_titre du ".strtolower(WDate::dateT('Y-m-d', 'd M Y', $journal_date)).'.'); $annonceTxt.=generePhraseBodaccTxt($opposition, 'Oppositions'); $annonceTxt.=generePhraseBodaccTxt($declarationCreance, 'Déclarations de créances'); $annonceTxt.=generePhraseBodaccTxt($descriptif, 'Commentaires'); $tabAnnonces[$idann]['annonce']=trim(str_replace(' .','.', preg_replace('/ +/', ' ', $annonceTxt))); if ($typeActe=='vente' && (preg_match("/\sfusion|\sabsorb|\sabsorption/i", $annonceTxt) || preg_match("/236.14/", $opposition)) ) { if (preg_match("/\sprojet\s/i", $annonceTxt)) $tabAnnonces[$idann]['data']['typeVente'][]=2726; // Projet de Fusion/Absorption else $tabAnnonces[$idann]['data']['typeVente'][]=2725; // Fusion/Absorption // Les annonces de fusion/absorption repartent en sirenage foreach ($tabAnnonces[$idann]['data']['raisonSociale'] as $n => $raisonSociale) $tabAnnonces[$idann]['data']['sirenValide'][$n]=0; } $bodaccDepNumPre=$bodaccDepNum; } } ///// FIN de la boucle de lecture des annonces RCS-A elseif ($debutNom=='RCS-B') { /** VALIDATION SCHEMA **/ if ($validateSchema) { if (!$dom_object->schemaValidate('/var/www/batch/bodacc/Bodacc_RCM_Redif_V11.xsd')) { //Bodacc_RCM_Redif_V06.xsd echo date ('Y/m/d - H:i:s')." - ERREUR : Fichier $nomFichier, Date de Bodacc '$dateBodaccTxt' Schéma XML non validé !".EOL; if (!$reload) { if ($forceContinue) continue; else { echo date ('Y/m/d - H:i:s')." - Conseil : Corrigez le fichier XML ".BODACC_LOCAL_DIR.str_replace('.taz','.xml', $nomFichier)." et relancer avec l'option _u !".EOL; die(); } } } else echo date ('Y/m/d - H:i:s')." - BODACC $debutNom $bodaccAnneePar-$bodaccNumPar du $dateBodacc : Schéma du fichier $nomFichier validé.".EOL; } else echo date ('Y/m/d - H:i:s')." - BODACC $debutNom $bodaccAnneePar-$bodaccNumPar du $dateBodacc : Schéma du fichier $nomFichier ignoré.".EOL; /** Chargement des Annonces **/ $result = $xpath->query("//RCS-B_REDIFF/listeAvis/avis/."); if (count($result)==0) { echo date ('Y/m/d - H:i:s')." - Il n'y a aucune annonce à traiter dans ce flux XML !".EOL; die(); } /** ** Traitement de chaque annonce du noeud RCS-B_REDIFF **/ foreach ($result as $annonce) { /* On réinitialise toutes les variables servant a reconstruire le texte de l'annonce */ $typeBodacc=$numeroParutionCorr=$dateCorr=$numeroAnnonceCorr=''; $categorieVente=$dateImmatriculation=$dateEffet=$dateCommencementActivite=$opposition=$journal_titre=$journal_date=$declarationCreance=$descriptif=''; $bodaccNumAnnCalc++; $title = $xpath->query ("numeroAnnonce", $annonce); $bodaccNumAnn=$title->item(0)->nodeValue; if ($bodaccNumAnnCalc==1 && $bodaccNumAnn>300) { echo(date ('Y/m/d - H:i:s')." - Chapitre Immatriculations/Ventes débutant par l'annonce n°$bodaccNumAnn...".EOL); $bodaccNumAnnCalc=$bodaccNumAnn*1; /* On initialise le 1er n° d'annonce trouvé dans le bodacc pour contrôle */ if (!isset($tabFichiers[$nomFichier]['Num_Annonce_Deb'])) $tabFichiers[$nomFichier]['Num_Annonce_Deb']=$bodaccNumAnn; } else { if (!preg_match('/^'.$bodaccNumAnnCalc.'/', str_replace('.','',''.$bodaccNumAnn)) ) { $endTmp=false; for ($iTmp=1; $iTmp<19; $iTmp++) { if (preg_match('/^'.($bodaccNumAnnCalc+$iTmp).'/', str_replace('.','',''.$bodaccNumAnn))) { echo(date ('Y/m/d - H:i:s')." - Numéro d'annonce $bodaccNumAnn différent du numéro attendu $bodaccNumAnnCalc !".EOL); $bodaccNumAnnCalc=$bodaccNumAnnCalc+$iTmp; // Il y a un loupé de numérotation au bodacc entre 2 annonces $endTmp=true; break; } } // if (!$endTmp) // die(date ('Y/m/d - H:i:s')." - Numéro d'annonce $bodaccNumAnn complètement différent du numéro attendu $bodaccNumAnnCalc !".EOL); } } $bodaccNumAnn=$bodaccNumAnnCalc; if (!isset($tabFichiers[$nomFichier]['Num_Annonce_Deb'])) { $tabFichiers[$nomFichier]['Num_Annonce_Deb']=$bodaccNumAnn; } $tmp=explode(' ', $bodaccNumAnn); $bodaccNumAnn=trim($tmp[0]); /** Numéro unique interne à ce programme pour chaque annonce **/ $idann=''.$bodaccAnneePar.'-'.$bodaccNumPar.'-'.$bodaccNumAnn; $title = $xpath->query ("nojo", $annonce); $nojo=$title->item(0)->nodeValue; /** On initialise le tableau $tabAnnonces[$idann] qui contient toutes les infos de l'annonce **/ $tabAnnonces[$idann]['Bodacc_Date_Parution']=$dateBodacc; $tabAnnonces[$idann]['Num_Annonce']=$bodaccNumAnn; $tabAnnonces[$idann]['Bodacc_Code']=$bodaccType; $tabAnnonces[$idann]['Bodacc_Annee_Parution']=$bodaccAnneePar; $tabAnnonces[$idann]['Bodacc_Num']=substr($bodaccNumPar,1,strlen($bodaccNumPar)-1); $tabAnnonces[$idann]['Bodacc_NOJO']=$nojo; $tabAnnonces[$idann]['data']=array(); /** On récupère l'annonce XML **/ $dom = new DOMDocument('1.0', 'iso-8859-1'); $elem=$dom->createElement('avis'); $dom->appendChild($dom->importNode($annonce, true)); $tabAnnonces[$idann]['balises']=$dom->saveXML(); $title = $xpath->query ('typeAnnonce/*', $annonce); $typeAnnonce=strtolower($title->item(0)->nodeName); if ($typeAnnonce=='creation' || $typeAnnonce=='annonce') $tabAnnonces[$idann]['typeAnnonce']='Insertion'; elseif ($typeAnnonce=='rectificatif' || $typeAnnonce=='annulation') { if ($typeAnnonce=='annulation') $tabAnnonces[$idann]['typeAnnonce']='Suppression'; else $tabAnnonces[$idann]['typeAnnonce']='Rectificatif'; $tabAnnonces[$idann]['corrPage']=NULL; $tabAnnonces[$idann]['corrTexteRectificatif']=NULL; $title = $xpath->query ('parutionAvisPrecedent/numeroAnnonce', $annonce); $numeroAnnonceCorr=$title->item(0)->nodeValue; $tabAnnonces[$idann]['corrNum_Annonce']=$numeroAnnonceCorr; $title = $xpath->query ('parutionAvisPrecedent/nomPublication', $annonce); $typeBodacc=substr($title->item(0)->nodeValue,-1); $title = $xpath->query ('parutionAvisPrecedent/numeroParution', $annonce); $numeroParutionCorr=$title->item(0)->nodeValue; $tabAnnonces[$idann]['corrNumParution']=$typeBodacc.substr($numeroParutionCorr,-3); $title = $xpath->query ('parutionAvisPrecedent/dateParution', $annonce); $dateCorr=str_replace(chr(160),' ',utf8_decode($title->item(0)->nodeValue)); $tabAnnonces[$idann]['corrBodacc_Date_Parution']=WDate::dateT('dMY', 'Ymd', str_replace(' ','',$dateCorr)); } else { echo date ('Y/m/d - H:i:s')." - ERREUR : Type d'annonce '$typeAnnonce' inconnu pour l'annonce $idann !".EOL; die(); } $title = $xpath->query ("numeroDepartement", $annonce); $bodaccDepNum=$title->item(0)->nodeValue; $tabAnnonces[$idann]['Tribunal_Dept']=$bodaccDepNum; $bodaccDep=$iInsee->getDepartement($bodaccDepNum); $depInconnu=false; if (!$iInsee->isDepartement($bodaccDepNum)) { $depInconnu=true; echo date ('Y/m/d - H:i:s')." - ERREUR : Département '$bodaccDepNum' inconnu pour l'annonce $idann !".EOL; } $title = $xpath->query ("tribunal", $annonce); $texte = utf8_decode($title->item(0)->nodeValue); $tabAnnonces[$idann]['Tribunal_Code']=$iBodacc->getTribunalCode($texte, $bodaccDepNum); if (!$tabAnnonces[$idann]['Tribunal_Code'] && $bodaccDepNum>70 && $bodaccDepNum<77 ) { // A priori il s'agit d'une erreur de codification des DOM par la DJO !!!! $title = $xpath->query ("adresse/france/codePostal", $annonce); $bodaccDepNum=substr($title->item(0)->nodeValue,0,3)*1; //if ($bodaccDepNum==977) $bodaccDepNum=974; // Bug Bodacc } $tabAnnonces[$idann]['Tribunal_Code']=$iBodacc->getTribunalCode($texte, $bodaccDepNum); if (!$iBodacc->isTribunal($tabAnnonces[$idann]['Tribunal_Code'])) { $tabAnnonces[$idann]['Tribunal_Code']=$iBodacc->getTribunalCode($texte, $bodaccDepNumPre); if (!$iBodacc->isTribunal($tabAnnonces[$idann]['Tribunal_Code'])) { echo date ('Y/m/d - H:i:s')." - ERREUR : Tribunal '$texte' inconnu pour l'annonce $idann !".EOL; die(); } } if ($depInconnu) die('Erreur vérifier tribunal/département PCL :'.EOL.print_r($tabAnnonces[$idann])); /** Début de génération de l'annonce Texte en fonction du type d'annonce **/ $tabAnnonces[$idann]['data']['adresseSiegeVoie']=array(); $tabAnnonces[$idann]['data']['adresseSiegeCP']=array(); $tabAnnonces[$idann]['data']['adresseSiegeVille']=array(); $tabAnnonces[$idann]['data']['adresseVoie']=array(); $tabAnnonces[$idann]['data']['adresseCP']=array(); $tabAnnonces[$idann]['data']['adresseVille']=array(); if ($tabAnnonces[$idann]['typeAnnonce']=='Insertion') { /* Entête de nouvelle annonce : N° Date et type de jugement */ $annonceTxt="$bodaccNumAnn - "; } elseif ($tabAnnonces[$idann]['typeAnnonce']=='Suppression') { /* Entête d'annonce d'annulation */ $annonceTxt ="$bodaccNumAnn - Annulation. BODACC $typeBodacc. Numéro de parution : $numeroParutionCorr. Date de parution : $dateCorr. Annonce numéro : $numeroAnnonceCorr. Cet avis est nul et non avenu.".EOL; } else { /* Entête d'annonce de rectification */ $annonceTxt ="$bodaccNumAnn - Rectificatif. BODACC $typeBodacc. Numéro de parution : $numeroParutionCorr. Date de parution : $dateCorr. Annonce numéro : $numeroAnnonceCorr. Cet avis est annulé et remplacé par le suivant.".EOL; } /** Entreprises concernées par l'annonce **/ $result = $xpath->query('personnes/personne/.', $annonce); if ($result->length==0) { echo date ('Y/m/d - H:i:s')." - Il n'y a pas d'entreprises concernées dans cette annonce !".EOL; die(); } /** On traite chaque entreprise **/ foreach ($result as $personne) { // Mise à blanc des champs textes pour la génération de l'annonce $siren=$codeRCS=$nomGreffeImmat=$raisonSociale=$fj=$nomCommercial=$sigle=$administration=$nationalite=''; $capital_montant=$capital_devise=$capital_variable=$capital_mt=$adr=$cp=$ville=''; $title = $xpath->query("numeroImmatriculation/codeRCS", $personne); $codeRCS = strtoupper(trim(utf8_decode($title->item(0)->nodeValue))); if ($codeRCS<>'RCS') { $title = $xpath->query("nonInscrit", $personne); $codeRCS = trim(utf8_decode($title->item(0)->nodeValue)); } $title = $xpath->query("numeroImmatriculation/nomGreffeImmat", $personne); $nomGreffeImmat=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query("numeroImmatriculation/numeroIdentificationRCS", $personne); //$siren = str_replace(' ','',$title->item(0)->nodeValue)*1; $siren = str_replace(' ','',preg_replace('/[^0-9]/',' ', $title->item(0)->nodeValue))*1; if ($siren<>0) { if ($siren<000100000) { print_r($tabAnnonces[$idann]); echo date ('Y/m/d - H:i:s')." - ERREUR : Siren $siren impossible pour l'annonce $idann !".EOL; }elseif($siren<001000000) $siren='000'.$siren; elseif ($siren<010000000) $siren='00'. $siren; elseif ($siren<100000000) $siren='0'. $siren; } if ( !isset($tabAnnonces[$idann]['siren']) || !is_array($tabAnnonces[$idann]['siren']) ) $tabAnnonces[$idann]['siren']=array(); if ( !isset($tabAnnonces[$idann]['data']['siren']) || !is_array($tabAnnonces[$idann]['data']['siren']) ) { $tabAnnonces[$idann]['data']['siren']=array(); $tabAnnonces[$idann]['data']['sirenValide']=array(); } if ($iInsee->valideSiren($siren)) { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>1))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(1)); } else { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>0))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(0)); } /** **/ $title = $xpath->query ("personneMorale/denomination", $personne); $raisonSociale = str_replace('&', '&',trim(utf8_decode($title->item(0)->nodeValue))); if ($raisonSociale=='') { // NOM $title = $xpath->query ("personnePhysique/nom", $personne); $raisonSociale = utf8_decode($title->item(0)->nodeValue) . ' ('. // Prénoms $title = $xpath->query ("personnePhysique/prenom", $personne); for ($i = 0; $i < $title->length; $i++) $raisonSociale.= utf8_decode($title->item($i)->nodeValue).' '; $raisonSociale=trim(preg_replace('/\d/','', str_replace('Object id #', '', $raisonSociale))).')'; // Nom d'usage $title = $xpath->query ("personnePhysique/nomUsage", $personne); if (trim(utf8_decode($title->item(0)->nodeValue))<>'') $raisonSociale.=". Nom d'usage : ".utf8_decode($title->item(0)->nodeValue); // Pseudonyme $title = $xpath->query ('personnePhysique/pseudonyme', $personne); if (trim(utf8_decode($title->item(0)->nodeValue))<>'') $raisonSociale.=". Pseudonyme : ".utf8_decode($title->item(0)->nodeValue); } if ( !isset($tabAnnonces[$idann]['data']['raisonSociale']) || !is_array($tabAnnonces[$idann]['data']['raisonSociale']) ) $tabAnnonces[$idann]['data']['raisonSociale']=array(); if ($typeActe=='vente') $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array('/ACHE/'.$raisonSociale)); else $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array($raisonSociale)); /** **/ $title = $xpath->query ("personneMorale/formeJuridique", $personne); $fj=utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['FJ']) || !is_array($tabAnnonces[$idann]['data']['FJ']) ) $tabAnnonces[$idann]['data']['FJ']=array(); $tabAnnonces[$idann]['data']['FJ']=array_merge($tabAnnonces[$idann]['data']['FJ'], array($fj)); /** **/ $title = $xpath->query ("personneMorale/sigle", $personne); $sigle=utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['sigle']) || !is_array($tabAnnonces[$idann]['data']['sigle']) ) $tabAnnonces[$idann]['data']['sigle']=array(); $tabAnnonces[$idann]['data']['sigle']=array_merge($tabAnnonces[$idann]['data']['sigle'], array($sigle)); /** **/ $title = $xpath->query ("personneMorale/administration", $personne); $administration=utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['administration']) || !is_array($tabAnnonces[$idann]['data']['administration']) ) $tabAnnonces[$idann]['data']['administration']=array(); $tabAnnonces[$idann]['data']['administration']=array_merge($tabAnnonces[$idann]['data']['administration'], array($administration)); /*if ($administration<>'') { $tabAdministration=$iBodacc->getDirigeants($tabAnnonces[$idann]['data']['administration']); print_r($tabAdministration); print_r($tabAnnonces[$idann]); die(); }*/ /** **/ $title = $xpath->query ('personneMorale/nomCommercial', $personne); $nomCommercial=trim(utf8_decode($title->item(0)->nodeValue)); if ($nomCommercial=='') { $title = $xpath->query ('personnePhysique/nomCommercial', $personne); $nomCommercial=trim(utf8_decode($title->item(0)->nodeValue)); } if ( !isset($tabAnnonces[$idann]['data']['nomCommercial']) || !is_array($tabAnnonces[$idann]['data']['nomCommercial']) ) $tabAnnonces[$idann]['data']['nomCommercial']=array(); $tabAnnonces[$idann]['data']['nomCommercial']=array_merge($tabAnnonces[$idann]['data']['nomCommercial'], array($nomCommercial)); /** nationalite **/ $title = $xpath->query ('personnePhysique/nationnalite', $personne); $nationalite=trim(utf8_decode($title->item(0)->nodeValue)); if ( !isset($tabAnnonces[$idann]['data']['nationalite']) || !is_array($tabAnnonces[$idann]['data']['nationalite']) ) $tabAnnonces[$idann]['data']['nationalite']=array(); $tabAnnonces[$idann]['data']['nationalite']=array_merge($tabAnnonces[$idann]['data']['nationalite'], array($nationalite)); /** **/ $title = $xpath->query ('personneMorale/capital/montantCapital', $personne); $capital_montant=utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ('personneMorale/capital/devise', $personne); $capital_devise=utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ('personneMorale/capital/capitalVariable', $personne); $capital_variable=utf8_decode($title->item(0)->nodeValue); if ($capital_montant<>'' && $capital_variable=='') $capital_mt=$capital_montant; elseif ($capital_montant=='' && $capital_variable<>'') $capital_mt=$capital_variable; elseif ($capital_montant=='' && $capital_variable=='') $capital_mt=''; else { print_r($tabAnnonces[$idann]); echo "Annonce $idann : Capital variable et fixe trouvé !".EOL; } $tabAnnonces[$idann]['data']['Capital']=array('Montant'=>$capital_mt, 'Devise'=>$capital_devise); /** **/ $title = $xpath->query ('activite', $personne); $activite = utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['activite']) || !is_array($tabAnnonces[$idann]['data']['activite']) ) $tabAnnonces[$idann]['data']['activite']=array(); $tabAnnonces[$idann]['data']['activite']=array_merge($tabAnnonces[$idann]['data']['activite'], array($activite)); /** Adresse complète du siège social : ** adresse/france/numeroVoie typeVoie nomVoie complGeographique **/ $title = $xpath->query ("siegeSocial/france/numeroVoie", $personne); $adr = utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("siegeSocial/france/typeVoie", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("siegeSocial/france/nomVoie", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("siegeSocial/france/complGeographique", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("siegeSocial/france/BP", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("siegeSocial/france/localite", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); /** **/ $title = $xpath->query ("siegeSocial/etranger/adresse", $personne); $etranger = utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("siegeSocial/etranger/pays", $personne); $pays = utf8_decode($title->item(0)->nodeValue); if ($etranger<>'' || $pays<>'') $adr.='|'.$etranger.'|'.$pays; $adrSiege=$adr; /** **/ $title = $xpath->query ("siegeSocial/france/codePostal", $personne); $cpSiege = utf8_decode($title->item(0)->nodeValue); /** **/ $title = $xpath->query ("siegeSocial/france/ville", $personne); $villeSiege = utf8_decode($title->item(0)->nodeValue); /** Adresse complète de l'établissement principal : ** adresse/france/numeroVoie typeVoie nomVoie complGeographique **/ $title = $xpath->query ("etablissementPrincipal/france/numeroVoie", $personne); $adr = utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("etablissementPrincipal/france/typeVoie", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("etablissementPrincipal/france/nomVoie", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("etablissementPrincipal/france/complGeographique", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("etablissementPrincipal/france/BP", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("etablissementPrincipal/france/localite", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); /** **/ $title = $xpath->query ("etablissementPrincipal/etranger/adresse", $personne); $etranger = utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("etablissementPrincipal/etranger/pays", $personne); $pays = utf8_decode($title->item(0)->nodeValue); if ($etranger<>'' || $pays<>'') $adr.='|'.$etranger.'|'.$pays; $adrEtabP=$adr; /** **/ $title = $xpath->query ("etablissementPrincipal/france/codePostal", $personne); $cpEtabP = utf8_decode($title->item(0)->nodeValue); /** **/ $title = $xpath->query ("etablissementPrincipal/france/ville", $personne); $villeEtabP = utf8_decode($title->item(0)->nodeValue); /** Adresse de l'établissement : ** adresse/france/numeroVoie typeVoie nomVoie complGeographique **/ $title = $xpath->query ("adresse/france/numeroVoie", $personne); $adr = utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/france/typeVoie", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/france/nomVoie", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/france/complGeographique", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/france/BP", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/france/localite", $personne); $adr.='|'.utf8_decode($title->item(0)->nodeValue); /** **/ $title = $xpath->query ("adresse/etranger/adresse", $personne); $etranger = utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/etranger/pays", $personne); $pays = utf8_decode($title->item(0)->nodeValue); if ($etranger<>'' || $pays<>'') $adr.='|'.$etranger.'|'.$pays; /** **/ $title = $xpath->query ("adresse/france/codePostal", $personne); $cp = utf8_decode($title->item(0)->nodeValue); /** **/ $title = $xpath->query ("adresse/france/ville", $personne); $ville = utf8_decode($title->item(0)->nodeValue); if ( (trim(strtr($adrSiege,'|',' '))<>'' || $cpSiege<>'' || $villeSiege<>'') && (trim(strtr($adrEtabP,'|',' '))<>'' || $cpEtabP<>'' || $villeEtabP<>'') && (trim(strtr($adr,'|',' '))<>'' || $cp<>'' || $ville<>'') ) { print_r($tabAnnonces[$idann]); die('Toutes les adresses Siege, Etablissement et Etablissement Principal sont fournies !'); } elseif ( (trim(strtr($adrSiege,'|',' '))<>'' || $cpSiege<>'' || $villeSiege<>'') && (trim(strtr($adrEtabP,'|',' '))<>'' || $cpEtabP<>'' || $villeEtabP<>'') ) { // Les adresses Sieges et Etab Princip sont fournies $tabAnnonces[$idann]['data']['adresseSiegeVoie']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVoie'], (array)$adrSiege); $tabAnnonces[$idann]['data']['adresseSiegeCP']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeCP'], (array)$cpSiege); $tabAnnonces[$idann]['data']['adresseSiegeVille']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVille'], (array)$villeSiege); // Etab $tabAnnonces[$idann]['data']['adresseVoie']=array_merge($tabAnnonces[$idann]['data']['adresseVoie'], (array)$adrEtabP); $tabAnnonces[$idann]['data']['adresseCP']=array_merge($tabAnnonces[$idann]['data']['adresseCP'], (array)$cpEtabP); $tabAnnonces[$idann]['data']['adresseVille']=array_merge($tabAnnonces[$idann]['data']['adresseVille'], (array)$villeEtabP); } elseif ( trim(strtr($adr,'|',' '))<>'' || $cp<>'' || $ville<>'') { // Etab $tabAnnonces[$idann]['data']['adresseVoie']=array_merge($tabAnnonces[$idann]['data']['adresseVoie'], (array)$adr); $tabAnnonces[$idann]['data']['adresseCP']=array_merge($tabAnnonces[$idann]['data']['adresseCP'], (array)$cp); $tabAnnonces[$idann]['data']['adresseVille']=array_merge($tabAnnonces[$idann]['data']['adresseVille'], (array)$ville); if (trim(strtr($adrSiege,'|',' '))<>'' || $cpSiege<>'' || $villeSiege<>'') { // Les adresses Sieges et Etab Princip sont fournies $tabAnnonces[$idann]['data']['adresseSiegeVoie']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVoie'], (array)$adrSiege); $tabAnnonces[$idann]['data']['adresseSiegeCP']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeCP'], (array)$cpSiege); $tabAnnonces[$idann]['data']['adresseSiegeVille']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVille'], (array)$villeSiege); } else { $tabAnnonces[$idann]['data']['adresseSiegeVoie']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVoie'], (array)$adrEtabP); $tabAnnonces[$idann]['data']['adresseSiegeCP']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeCP'], (array)$cpEtabP); $tabAnnonces[$idann]['data']['adresseSiegeVille']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVille'], (array)$villeEtabPe); } } // Génération du texte d'annonce Siren / RCS / Greffe if ($siren<>'' && $siren*1<>0) $annonceTxt.=number_format($siren, 0, '', ' ').' '; $annonceTxt.="$codeRCS "; if ($nomGreffeImmat<>'') $annonceTxt.="$nomGreffeImmat."; // Génération du texte d'annonce Raison sociale, Nom/Prénom/ Forme / Activité / Adresse $annonceTxt.=' '.$raisonSociale.'.'; $annonceTxt.=generePhraseBodaccTxt($fj, 'Forme'); if ($capital_mt<>'' || $capital_devise<>'') { $capital_deviseLib=getLibelleDevise($capital_devise); if ($capital_deviseLib=='') $capital_deviseLib=$capital_devise; if ($capital_variable<>'') $txtVariable='variable '; else $txtVariable=''; if (substr($capital_devise,-1)=='.') $annonceTxt.=" Capital $txtVariable: $capital_mt $capital_deviseLib"; else $annonceTxt.=" Capital $txtVariable: $capital_mt $capital_deviseLib."; $capital_deviseLib=''; } $annonceTxt.=generePhraseBodaccTxt($nomCommercial, 'Nom commercial'); $annonceTxt.=generePhraseBodaccTxt($nationalite, 'Nationalité'); $annonceTxt.=generePhraseBodaccTxt($sigle, 'Sigle'); $annonceTxt.=generePhraseBodaccTxt($administration, 'Administration'); $annonceTxt.=generePhraseBodaccTxt($activite, 'Activité'); if (trim(strtr($adrSiege,'|',' '))<>'' || $cpSiege<>'' || $villeSiege<>'') $annonceTxt.=' Adresse du siège social : '. str_replace('|','',$adrSiege) ." $cpSiege $villeSiege."; if (trim(strtr($adrEtabP,'|',' '))<>'' || $cpEtabP<>'' || $villeEtabP<>'') $annonceTxt.=' Adresse de l\'établissement principal : '. str_replace('|','',$adrEtabP) ." $cpEtabP $villeEtabP."; if (trim(strtr($adr,'|',' '))<>'' || $cp<>'' || $ville<>'') $annonceTxt.=' Adresse : '. str_replace('|',' ',$adr) ." $cp $ville."; } /** Recherche si annonce de radiation ou mmd **/ $tabAnnonces[$idann]['Rubrique_Bodacc']=$typeActe=''; $titleRad = $xpath->query ('radiationAuRCS/.', $annonce); $titleMmd = $xpath->query ('modificationsGenerales/.', $annonce); if ($titleRad->length>0) { /** L'annonce est une RADIATION **/ $typeActe='radiations'; $title = $xpath->query ('radiationAuRCS/*', $annonce); $typeRad=trim(utf8_decode($title->item(0)->nodeName)); if ($typeRad=='radiationPP') { $tabAnnonces[$idann]['Rubrique_Bodacc']='B116'; // Radiations Pers Physiques /** Date d'effet */ $title = $xpath->query("radiationAuRCS/radiationPP/dateCessationActivitePP", $annonce); $dateEffet=trim(utf8_decode($title->item(0)->nodeValue)); if (Wdate::dateT('dMY', 'Ymd', str_replace(' ','',str_replace(chr(160),'',$dateEffet)))*1>19810101) $dateEffet=Wdate::dateT('dMY', 'Y-m-d', str_replace(' ','',str_replace(chr(160),'',$dateEffet))); $tabAnnonces[$idann]['data']['dateEffet']=$tabAnnonces[$idann]['data']['dateCessationActivite']=$dateEffet; } elseif ($typeRad=='radiationPM') { $tabAnnonces[$idann]['Rubrique_Bodacc']='B117'; // Compatibilité codifications TLS } // Positionnement par défaut au code 6700 car pas de descriptif pour l'instant $tabAnnonces[$idann]['data']['typeRadiation']=6700; // Radiation (autre) /** descriptif **/ $title = $xpath->query("radiationAuRCS/commentaire", $annonce); $descriptif=trim(utf8_decode($title->item(0)->nodeValue)); $tabAnnonces[$idann]['data']['commentaires']=$descriptif; } elseif ($titleMmd->length>0) { /** L'annonce est une MMD **/ $tabAnnonces[$idann]['Rubrique_Bodacc']='B111'; $typeActe='mmd'; /** Date d'effet */ $title = $xpath->query("modificationsGenerales/dateEffet", $annonce); $dateEffet=trim(utf8_decode($title->item(0)->nodeValue)); if (Wdate::dateT('dMY', 'Ymd', str_replace(' ','',str_replace(chr(160),'',$dateEffet)))*1>19810101) $dateEffet=Wdate::dateT('dMY', 'Y-m-d', str_replace(' ','',str_replace(chr(160),'',$dateEffet))); $tabAnnonces[$idann]['data']['dateEffet']=$dateEffet; //if (strlen($dateEffet)>0) die(print_r($tabAnnonces[$idann])); /** dateCommencementActivite **/ $title = $xpath->query("modificationsGenerales/dateCommencementActivite", $annonce); $dateCommencementActivite=trim(utf8_decode($title->item(0)->nodeValue)); $tabAnnonces[$idann]['data']['dateDebutActivite']=$dateCommencementActivite; /** descriptif **/ $title = $xpath->query("modificationsGenerales/descriptif", $annonce); $descriptif=trim(utf8_decode($title->item(0)->nodeValue)); $tabAnnonces[$idann]['data']['commentaires']=$descriptif; //$categorieMMD /** ** Liste des precedentExploitantPP **/ $result = $xpath->query('*/precedentExploitantPP/.', $annonce); $raisonSociale=$siren=$codeRCS=$nomGreffeImmat=''; $precedentExploitant=false; foreach ($result as $personne) { $raisonSociale=$siren=$codeRCS=$nomGreffeImmat=''; $title = $xpath->query("numeroImmatriculation/codeRCS", $personne); $codeRCS = strtoupper(trim(utf8_decode($title->item(0)->nodeValue))); if ($codeRCS<>'RCS') { $title = $xpath->query("nonInscrit", $personne); $codeRCS = trim(utf8_decode($title->item(0)->nodeValue)); } $title = $xpath->query("numeroImmatriculation/nomGreffeImmat", $personne); $nomGreffeImmat=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query("numeroImmatriculation/numeroIdentification", $personne); $siren = str_replace(' ','',$title->item(0)->nodeValue)*1; if ($siren<>0) { if ($siren<000100000) echo date ('Y/m/d - H:i:s')." - ERREUR : Siren $siren impossible pour l'annonce $idann !".EOL; elseif ($siren<001000000) $siren='000'.$siren; elseif ($siren<010000000) $siren='00'. $siren; elseif ($siren<100000000) $siren='0'. $siren; $precedentExploitantSiren=$siren; } if ( !isset($tabAnnonces[$idann]['siren']) || !is_array($tabAnnonces[$idann]['siren']) ) $tabAnnonces[$idann]['siren']=array(); if ( !isset($tabAnnonces[$idann]['data']['siren']) || !is_array($tabAnnonces[$idann]['data']['siren']) ) { $tabAnnonces[$idann]['data']['siren']=array(); $tabAnnonces[$idann]['data']['sirenValide']=array(); } if ($iInsee->valideSiren($siren)) { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>1))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(1)); } else { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>0))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(0)); } /** **/ $title = $xpath->query ("nom", $personne); $raisonSociale = utf8_decode($title->item(0)->nodeValue) . ' ('. $title = $xpath->query ("prenom", $personne); for ($i = 0; $i < $title->length; $i++) $raisonSociale.= utf8_decode($title->item($i)->nodeValue).' '; $raisonSociale=trim(preg_replace('/\d/','', str_replace('Object id #', '', $raisonSociale))).')'; $title = $xpath->query ("nomUsage", $personne); if (trim(utf8_decode($title->item(0)->nodeValue))<>'') $raisonSociale.=". Nom d'usage : ".utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['raisonSociale']) || !is_array($tabAnnonces[$idann]['data']['raisonSociale']) ) $tabAnnonces[$idann]['data']['raisonSociale']=array(); $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array('Précédent exploitant '.$raisonSociale)); $title = $xpath->query ("nature", $personne); $nature = utf8_decode($title->item(0)->nodeValue); if ($nature<>'') die('nature !!!'); // Génération du texte d'annonce Siren / RCS / Greffe if (!$precedentExploitant) $annonceTxt.=' Précédent exploitant : '.$raisonSociale.'. '; else $annonceTxt.=" $raisonSociale. "; if ($siren<>'' && $siren*1<>0) $annonceTxt.=number_format($siren, 0, '', ' ').' '; $annonceTxt.="$codeRCS "; if ($nomGreffeImmat<>'') $annonceTxt.="$nomGreffeImmat."; // On indique que le texte "Précédent exploitant" est déjà affiché $precedentExploitant=true; } /** ** Liste des precedentExploitantPM **/ $result = $xpath->query('*/precedentExploitantPM/.', $annonce); $raisonSociale=$siren=$codeRCS=$nomGreffeImmat=''; foreach ($result as $personne) { $raisonSociale=$siren=$codeRCS=$nomGreffeImmat=''; $title = $xpath->query("numeroImmatriculation/codeRCS", $personne); $codeRCS = strtoupper(trim(utf8_decode($title->item(0)->nodeValue))); if ($codeRCS<>'RCS') { $title = $xpath->query("nonInscrit", $personne); $codeRCS = trim(utf8_decode($title->item(0)->nodeValue)); } $title = $xpath->query("numeroImmatriculation/nomGreffeImmat", $personne); $nomGreffeImmat=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query("numeroImmatriculation/numeroIdentification", $personne); $siren = str_replace(' ','',$title->item(0)->nodeValue)*1; if ($siren<>0) { if ($siren<000100000) echo date ('Y/m/d - H:i:s')." - ERREUR : Siren $siren impossible pour l'annonce $idann !".EOL; elseif ($siren<001000000) $siren='000'.$siren; elseif ($siren<010000000) $siren='00'. $siren; elseif ($siren<100000000) $siren='0'. $siren; $precedentExploitantSiren=$siren; } if ( !isset($tabAnnonces[$idann]['siren']) || !is_array($tabAnnonces[$idann]['siren']) ) $tabAnnonces[$idann]['siren']=array(); if ( !isset($tabAnnonces[$idann]['data']['siren']) || !is_array($tabAnnonces[$idann]['data']['siren']) ) { $tabAnnonces[$idann]['data']['siren']=array(); $tabAnnonces[$idann]['data']['sirenValide']=array(); } if ($iInsee->valideSiren($siren)) { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>1))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(1)); } else { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>0))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(0)); } /** **/ $title = $xpath->query ("denomination", $personne); $raisonSociale = trim(utf8_decode($title->item(0)->nodeValue)); if ( !isset($tabAnnonces[$idann]['data']['raisonSociale']) || !is_array($tabAnnonces[$idann]['data']['raisonSociale']) ) $tabAnnonces[$idann]['data']['raisonSociale']=array(); $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array('Précédent exploitant '.$raisonSociale)); // Génération du texte d'annonce Siren / RCS / Greffe if (!$precedentExploitant) $annonceTxt.=' Précédent exploitant : '.$raisonSociale.'. '; else $annonceTxt.=" $raisonSociale. "; if ($siren<>'' && $siren*1<>0) $annonceTxt.=number_format($siren, 0, '', ' ').' '; $annonceTxt.="$codeRCS "; if ($nomGreffeImmat<>'') $annonceTxt.="$nomGreffeImmat."; // On indique que le texte "Précédent exploitant" est déjà affiché $precedentExploitant=true; } if ( !isset($tabAnnonces[$idann]['data']['typeMMD']) || !is_array($tabAnnonces[$idann]['data']['typeMMD']) ) $tabAnnonces[$idann]['data']['typeMMD']=array(); /** On recherche les codes évènements précis de la mmd **/ $texte=$descriptif; // Perte moitié du capital social if (preg_match("/(actif net inférieur|actif inférieur|perte).{1,9}moiti.{1,7}capital social/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2150)); if (preg_match("/mise en sommeil/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2206)); // Mise en sommeil de la société elseif (preg_match("/(prise|mise)(.*)activit(é|e)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2316)); // Mise en activité de la société // Déclaration de dissolution par l'associé unique. // DISSOLUTION if (preg_match("/D(é|e)claration.{1,10}dissolution.{1,5}par.{1,5}associ.{1,7}unique/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2210)); elseif (preg_match("/cessation .{1,15}activit(e|é).{1,10} dissolution .{1,10}anticip(é|e)e/i", $texte) || preg_match("/dissolution .{1,10}anticip(é|e)e.{1,10} cessation .{1,15}activit(e|é)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2204)); // Cessation avec Dissolution elseif (preg_match("/Dissolution .{1,20}soci(é|e)t(é|e)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2203)); // Dissolution de la société elseif (preg_match("/Dissolution/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2202)); // Dissolution if (preg_match("/cessation .{1,15}activit(é|e).{1,15}(provisoire|temporaire)/i", $texte) || preg_match("/arr(e|ê|è|é)t.{1,15}activit(é|e).{1,15}(provisoire|temporaire)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2201)); // Cessation d'activité temporaire elseif (preg_match("/arr(e|ê|è|é)t.{1,15} (provisoire|temporaire) .{1,15}activit/i", $texte) || preg_match("/cessation .{1,15} (provisoire|temporaire) .{1,15}activit/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2201)); // Cessation d'activité temporaire elseif (preg_match("/(cessation|sans)(.*)activit(é|e)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2200)); // Cessation d'activité if (preg_match("/(modification|adjonction|adoption|prise|ancienne|changeme|suppres|ajout).{1,15}(survenue|).{1,5}d(é|e)nomina(ti|it)on/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2305)); // Modification de la dénomination //Adjonction d'un nom commercial. if (preg_match("/(modification|adjonction|adoption|prise|ancien|changeme|suppres|ajout).{0,15}(survenue|).{0,5}nom.{0,5}commercia/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2309)); // Modification du nom commercial elseif (preg_match("/(modification|adjonction|adoption|prise|ancien|changeme|suppres|ajout).{1,15}(survenue|).{1,5}nom( |\.)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2308)); // Modification du nom elseif (preg_match("/(modification sur le nom|nouvelle raison sociale)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2308)); // Modification du nom if (preg_match("/(modification|adjonction|adoption|prise|ancien|changeme|suppres|ajout).{1,15}(survenue|).{1,5}sigle/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2317)); // Modif du sigle if (preg_match("/(modification|adjonction|adoption|prise|ancienne|changeme|suppres|ajout).{1,15}(survenue|).{1,5}enseigne/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2302)); // Modif Enseigne if (preg_match("/(modification|adjonction|adoption|prise|ancien|changeme|suppres|ajout).{1,15}(survenue|).{1,5}pseudonyme/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2310)); // Modif Pseudo // 0 1 2 3 4 // 12345678901234567890123456789012345678901 if (preg_match("/(mise...jour|nouvel|nouveau|modification|adjonction|ancien|cha.g|ajout|d.part|nomination|d.mis(si|is)on|r.vocation|Entrée|Changement).{0,25}(survenue|).{0,25}(administration|administrateur| repr.sentant|g.ran|commissaire|direct..r|membre|conseil|surveillance|pr.sident|associ|PDG|contr.leur|Suppl.ant|direction|dirigeant)/i", $texte) && !in_array(2315, $tabAnnonces[$idann]['data']['typeMMD'])) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2315)); // MODIF ADMINISTRATION if (preg_match("/modification.{0,15}(survenue|).{0,5}capital.{0,15}augmentation/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2102)); // Augmentation de capital elseif (preg_match("/augmentation.{0,15}(survenue|).{0,5}capital/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2102)); // Augmentation de capital elseif (preg_match("/modification.{0,15}(survenue|).{0,5}capital.{0,15}diminution/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2100)); // diminution de capital elseif (preg_match("/(diminution|r.duction).{0,15}(survenue|).{0,5}capital/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2100)); // diminution de capital elseif (preg_match("/(modification|ancien|changement|nouveau).{0,15}(survenue|).{0,5}capital/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2101)); // Modification de capital // Adjonction activité if (preg_match("/(modification|adjonction|ancienne|changeme|extension|suppres|ajout).{0,15}(survenue|).{0,5}activit(é|e)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2313)); // Modification de l'activité if (preg_match("/(modification|ancienne|changeme|r.gularisation|report).{1,20}(date|prise).{1,15}activit/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2304)); // Modification date début d'activité if (preg_match("/date.{1,20}exercice/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2303)); // Modification date clôture exercice if (preg_match("/(durée|duree).{1,30}(soci.t.|personne morale)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2306)); // Modification de la durée de la société elseif (preg_match("/(prorogation|prolongation|augmentation|allongement|changement|modifi).{1,30}(durée|duree)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2306)); // Modification de la durée de la société if (preg_match("/(modification|transform|ancienne|changeme).{1,20}forme/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2307)); // Modification FJ elseif (preg_match("/transformation.{1,25}en /i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2307)); // Modification FJ if (preg_match("/(.*)fusion(.*)/i", $texte, $tabTmp)) { if (!preg_match("/Ancienne.{1,3}activité :/i", $tabTmp[1])) { // TRAITEMENT DES FUSIONS $sirenFusionPre=$codeEvenAbs=$codeEven=''; if (preg_match_all("/[0-9]{9,9}|[0-9]{3,3} [0-9]{3,3} [0-9]{3,3}|[0-9]{3,3}\.[0-9]{3,3}\.[0-9]{3,3}|[0-9]{3,3}-[0-9]{3,3}-[0-9]{3,3}/",$tabTmp[0],$matches)) { foreach ($matches[0] as $m => $sirenFusion) { $raisonSocialeAbs=$adresseAbs=''; if ($iInsee->valideSiren(str_replace(' ','', $sirenFusion))) { //echo "... valide !\n"; if (preg_match('/ ayant participée? à la fusion(.*)'.$sirenFusion.'(.*)/i',$tabTmp[0],$matches2) || //preg_match('/ ayant participée à la fusion(.*)'.$sirenFusion.'(.*)/i',$tabTmp[0],$matches2) || preg_match("/ ayant participé à l'opération(.*)".$sirenFusion.'(.*)/i',$tabTmp[0],$matches2) || preg_match("/ ayant participé à l'opération de fusion(.*)".$sirenFusion.'(.*)/i',$tabTmp[0],$matches2) || preg_match("/Fusion.absorption de(.*)".$sirenFusion."(.*)/i",$tabTmp[0],$matches2) || preg_match("/Fusion.absoption de(.*)".$sirenFusion."(.*)/i",$tabTmp[0],$matches2) || preg_match('/Fusion de(.*)'.$sirenFusion.'(.*)/i',$tabTmp[0],$matches2) || preg_match('/Fusion avec(.*)'.$sirenFusion.'(.*)/i',$tabTmp[0],$matches2) || preg_match("/suite à l'apport partiel d'actif de(.*)".$sirenFusion.'(.*)/i',$tabTmp[0],$matches2) || preg_match('/fusion par voie d.absorption des(.*)'.$sirenFusion.'(.*)/i',$tabTmp[0],$matches2) || preg_match('/transmission du patrimoine de la(.*)'.$sirenFusion.'(.*)/i',$tabTmp[0],$matches2) || preg_match('/des évaluations et des rémunérations qui en sont faites de la(.*)'.$sirenFusion.'(.*)/i',$tabTmp[0],$matches2)) { if ($sirenFusionPre<>'') $raisonSocialeAbs=''.trim(preg_replace('/(.*)'.$sirenFusionPre.'/i','', $matches2[1])); else $raisonSocialeAbs=''.trim($matches2[1]); $raisonSocialeAbs=preg_replace('/ RCS (.*)/i','', $raisonSocialeAbs); $raisonSocialeAbs=trim(strtr($raisonSocialeAbs,',:;',' ')); $raisonSocialeAbs=trim(preg_replace('/^et de la/','', $raisonSocialeAbs)); $raisonSocialeAbs=trim(preg_replace('/^(de la|avec la)/','', $raisonSocialeAbs)); $raisonSocialeAbs=trim(preg_replace('/^de fusion/','', $raisonSocialeAbs)); $raisonSocialeAbs=trim(preg_replace('/^société(s)/','', $raisonSocialeAbs)); $raisonSocialeAbs=trim(preg_replace("/^(la|et|l'|s)/",'', $raisonSocialeAbs)); if (preg_match("/(.*)([0-9]{5,5})(.*)/", $matches2[2], $tabTmpAdr)) { $adresseAbs=trim($tabTmpAdr[1]); // => , boulevard Pierre-Lefaucheux, if (substr($adresseAbs,0,1)==',') $adresseAbs=trim(preg_replace("/(^,|,$)/",'', $adresseAbs)); $adresseAbsCP=$tabTmpAdr[2]; // => 72000 $adresseAbsVille=trim(strtr($tabTmpAdr[3], '{.!}',' ')); } else $adresseAbs=$adresseAbsCP=$adresseAbsVille=''; $codeEvenAbs=2720; // Fusion/Absorption (entitée absorbée) $codeEven=2700; // Fusion/Absorption (entitée absorbante) } elseif (preg_match('/projet (de traité )de fusion/i',$tabTmp[0])) { $codeEvenAbs=2730; // Projet de fusion (entitée absorbée) $codeEven=2710; // Projet de fusion (entitée absorbante) } else { // Phrase de fusion absorption permettant de positionner la RS non trouvée $codeEven=2700; // Projet de fusion (entitée absorbante) $codeEvenAbs=2721; // Fusion/Absorption (entitée absorbée non identifié) } if ( !isset($tabAnnonces[$idann]['data']['fusion']) || !is_array($tabAnnonces[$idann]['data']['fusion']) ) $tabAnnonces[$idann]['data']['fusion']=array(); $tabAnnonces[$idann]['data']['fusion']=array_merge( $tabAnnonces[$idann]['data']['fusion'] , array( array( 'codeEvenAbs' => $codeEvenAbs, 'sirenAbs' => str_replace(' ','', $sirenFusion), 'raisonAbs' => $raisonSocialeAbs, 'adresseAbs' => $adresseAbs, 'adresseAbsCP' => $adresseAbsCP, 'adresseAbsVille'=>$adresseAbsVille))); } elseif (!preg_match('/'.$sirenFusion.'.{1,4}euro/i', $tabTmp[0])) { // on ignore $sirenFusion qui est un montant ! //echo "Dans ce cas, il faudra valider à la mano car mot / fusion/ trouvé avec SIREN invalide !!!\n"; $codeEven=2702; // Fusion/Absorption (entitée absorbante ; entité absorbée mal SIRENEE) } $sirenFusionPre=$sirenFusion; } } else { /** Mot " fusion" trouvé mais sans SIREN !!! **/ if (preg_match('/(fonds|tablissement principal) acquis par fusion\./i', $texte)) $codeEven=2701; // Fusion/Absorption (entitée absorbante) else $codeEven=2703; // Fusion/Absorption (entitée absorbante ; entité absorbée non SIRENEE) //echo "Dans ce cas, il faudra valider à la mano car mot / fusion/ trouvé mais sans RCS valide ou invalide !!!\n"; } $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array($codeEven)); // Code Evenement précis de l'absorbant } echo "$texte\n?"; //$saisie = fgets(STDIN); //IKI// } elseif (preg_match("/actionnaire.{1,5}unique(.*)Commentaires/i", $texte, $tabTmp)) { $raisonSocialeAbs=trim(preg_replace('/ en fonction.*$/','',$tabTmp[1])); $codeEven=2610; // Décision de l'unique actionnaire $codeEvenAbs=2751; // Information sur une participation if ( !isset($tabAnnonces[$idann]['data']['fusion']) || !is_array($tabAnnonces[$idann]['data']['fusion']) ) $tabAnnonces[$idann]['data']['fusion']=array(); $tabAnnonces[$idann]['data']['fusion']=array_merge( $tabAnnonces[$idann]['data']['fusion'] , array( array( 'codeEvenAbs' => $codeEvenAbs, 'sirenAbs' => 0, 'raisonAbs' => $raisonSocialeAbs, 'adresseAbs' => '', 'adresseAbsCP' => '', 'adresseAbsVille'=>''))); $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array($codeEven)); // Code Evenement précis de l'absorbant echo "$texte\n?"; $saisie = fgets(STDIN); } if (preg_match("/contrat.{1,25}mariage/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2405)); // Modif régime matrimonial: contrat de mariage elseif (preg_match("/mariage/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2403)); // Modif régime matrimonial: mariage elseif (preg_match("/divorc/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2402)); // Modif régime matrimonial: divorce elseif (preg_match("/(veuf|veuve)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2404)); // Modif régime matrimonial: veuvage elseif (preg_match("/matrimonial/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2401)); // Modif régime matrimonial if (preg_match("/décédé|décès|decede|deces/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2600)); // Décès if (preg_match("/poursuit.{1,25}activit(é|e|è)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2314)); // Poursuite de l'activité if (preg_match("/d(é|e|è)cision.{1,25}actionnaire(.*)unique/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2610)); // Décision de l'unique actionnaire if (preg_match("/(modification|changement).{1,25}exploitation/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2311)); // Modification sur l'exploitation if (preg_match("/projet.{1,25}transf(é|e|è)r.{1,25}soci.t/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2903)); // Projet de transfert de la société elseif (preg_match("/d(é|e|è)cision.{1,25}transf(é|e|è)r.{1,25}si(é|e|è)ge.{1,25}social.{1,25}tranger/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2904)); // Transfert du siège à l'étranger elseif (preg_match("/adresse.{1,25}si(é|e|è)ge/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2301)); // Modification de l'adresse du siège elseif (preg_match("/(modification|nouvelle|ancienne|changement).{1,25}adresse/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2300)); // Changement d'adresse elseif (preg_match("/(transf|changement|ancien).{0,5}(et|).{0,3}(si.ge|SSET|principal)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2901)); // Transfert de siège elseif (preg_match("/transf.r.{1,7}entreprise/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2901)); // Transfert de siège elseif (preg_match("/immat.{1,7}suite.{1,7}transf.r/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2901)); // Transfert de siège elseif (preg_match("/(ouverture|ancien).{1,15}tablissement.{1,9}principal/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2901)); // Transfert de siège elseif (preg_match("/si(é|e|è)ge.{1,15}liquidation.{1,15}fix/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2901)); // Transfert de siège) elseif (preg_match("/Suppression ETB1 et ETB2 devient principal/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2901)); // Transfert de siège) if (preg_match("/transfert.{1,25}(du|de) fond/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2902)); // Transfert du fond elseif (preg_match("/fond.{1,20}transf(é|e|è)r(é|e|è)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2902)); // Transfert du fond elseif (preg_match("/transfert.{1,25}(étab|etb1|etb2|etab)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2900)); // Transfert d'établissement if (preg_match("/fermeture.{1,20} du .{1,15}fonds/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2205)); // Fermeture du fonds if (preg_match("/(création|creation).{1,15} d.{1,5}fonds/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2950)); // Création de fonds if (preg_match("/vente .{0,15}du .{0,15}fonds/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2209)); // Vente du fonds elseif (preg_match("/(fin|arrêt|arret)(.*)exploitation(.*)du(.*)fonds(.*)suite(.*)vente/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2209)); // Vente du fonds elseif (preg_match("/repris.{1,25}du.{1,25}fonds.{1,25}par.{1,25}conjoint/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2406)); // Reprise du fonds par le conjoint if (preg_match("/(pr.cision|mention|d.claration|changement|entr.e|mise...jour).{0,18}asso/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2350)); // Déclaration des associés if (preg_match("/(location|fond).{1,7}g(é|e)rance/i", $texte)) { if (preg_match("/(donn.|mise).{1,7}en.{1,7}location.{1,7}g(é|e)rance/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2870)); // LG donnée elseif (preg_match("/(reçu|recu|pris).{1,7}en.{1,7}location.{1,7}g(é|e)rance/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2800)); // LG reçue if (preg_match("/(é|e)tablissement.{1,20}en.{1,7}location.{1,7}g(é|e)rance/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2891)); // LG établissement elseif (preg_match("/fond.{1,20}en.{1,7}location.{1,7}g(é|e)rance/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2892)); // LG fond elseif (preg_match("/location.{1,7}g(é|e)rance.{1,20}branche/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2890)); // LG branche elseif (preg_match("/branche.{1,20}en.{1,7}location.{1,7}g(é|e)rance/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2890)); // LG branche if (preg_match("/(fin|résiliation).{1,20}location.{1,7}g(é|e)rance/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2885)); // Fin LG elseif (preg_match("/pr(é|e|è)c(é|e|è)demment.{1,20}exploité.{1,20}location.{1,7}g(é|e)rance/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2885)); // Fin LG elseif (preg_match("/reprise.{1,5}fond.{1,5}g(é|e)rance.{1,9}propri.taire/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2885)); // Fin LG elseif (preg_match("/renouvellement.{1,20}location.{1,7}g(é|e)rance/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2880)); // Renouvellement LG elseif (preg_match("/(modification|changement).{1,20}location.{1,7}g(é|e)rance/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2881)); // Changement LG if (count($tabAnnonces[$idann]['data']['typeMMD'])==0) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2800)); // LG reçue } if (preg_match("/suppression.{1,15} branche /i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2207)); // Suppression branche activité if (preg_match("/(cession|vente).{1,15}branche /i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2211)); if (preg_match("/changement.{1,15}de.{1,15}nationalit/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2650)); // Changement de nationalité if (preg_match("/(déclaration|mention).{1,20}conjoint.{1,10}collaborateur/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2407)); // Mention du conjoint collaborateur elseif (preg_match("/radiation.{1,20}conjoint.{1,10}collaborateur/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2408)); // Radiation du conjoint collaborateur if (preg_match("/transmission.{1,20}universel.{1,20}patr/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2620)); // Transmission universelle du patrimoine elseif (preg_match("/transmission.{1,20}h.ritage/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2625)); // Transmission par héritage elseif (preg_match("/donation/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2630)); // Donation if (preg_match("/suppression.{1,7}tablissement(.*)principal/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2208)); // Suppression établissement principal if (preg_match("/tablissement(.*)secondaire(.*)devient(.*)principal/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2510)); // établissement secondaire devient principal if (preg_match("/extension(.*)tablissement(.*)principal/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2520)); // Extension de l'établissement principal if (preg_match("/r(é|e|è)alisation(.*)apport(.*)partiel(.*)actif/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2660)); // Réalisation de l'apport partiel d'actif if (preg_match("/changement.{1,15}domicil.{1,15}personnel/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2640)); // Changement de domicile personnel elseif (preg_match("/changement.{1,15}domicil/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2300)); // Changement d'adresse // Transfert de siège if (preg_match("/nouve(au|l).{1,6}(si.ge|tablissement principal)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2901)); // Modifications groupées if (preg_match("/modification.{1,70}d.nomination.{1,8}forme.{1,8}juridique.{1,8}activit.{1,21}administration/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array('2313','2305','2307','2315')); elseif (preg_match("/modification.{1,17}activit.{1,8}d.nomination.{1,8}nom commercial/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array('2313','2305','2309')); elseif (preg_match("/modification.{1,17}d.nomination.{1,10}nom commercial/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array('2305','2309')); /** @todo Voir si on crée un évènement **/ if (preg_match("/odification.{1,7}origine.{1,7}fonds/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2312)); elseif (preg_match("/Annulation.{1,9}(radiation|mention).{1,7}office/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2312)); elseif (preg_match("/retour des statuts à l'état antérieur/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2312)); elseif (preg_match("/Inscript.Compl.m.Transmis.Univers.Patrim/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2312)); elseif (preg_match("/Inscription.compl.mentaire.avec.achat/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2312)); elseif (preg_match("/SANS PUBLICATION AU BODACC/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2312)); } elseif ($tabAnnonces[$idann]['typeAnnonce']=='Suppression') { $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2312)); } else { print_r($tabAnnonces[$idann]); echo $annonceTxt; echo date ('Y/m/d - H:i:s')." - ERREUR : Type d'acte différent de 'mmd' ou 'radiations' pour l'annonce $idann !".EOL; if ($noQuestion) { die("Vérifier avec le Bodacc version Papier et saisir le type d'annonce (M)md / (R)adiation / (P)asser provisoirement l'intégration de ce Bodacc ?".EOL); } else { while(true){ echo 'Vérifier avec le Bodacc version Papier et saisir le type d\'annonce (M)md / (R)adiation / (P)asser provisoirement l\'intégration de ce Bodacc ?'.EOL; $saisie = trim(strtoupper(fgets(STDIN))); if ($saisie=='M') { $tabAnnonces[$idann]['Rubrique_Bodacc']='B111'; $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2312)); break; } elseif ($saisie=='R') { $tabAnnonces[$idann]['Rubrique_Bodacc']='B117'; $tabAnnonces[$idann]['data']['typeRadiation']=6700; break; } elseif ($saisie=='' || $saisie=='P') { continue(3); } } } } // Descriptif MMD $annonceTxt.=generePhraseBodaccTxt($descriptif, 'Commentaires'); // Date de commencement d'activité $annonceTxt.=str_replace(' 01 ', ' 1er ',generePhraseBodaccTxt(strtolower(WDate::dateT('Y-m-d', 'd M Y', $dateCommencementActivite)), "Date de commencement d'activité")); // Date de cessation ou d'effet if ($typeActe=='radiations') $libEffet="Date de cessation d?activité"; else $libEffet="Date d'effet"; $annonceTxt.=str_replace(' 01 ', ' 1er ',generePhraseBodaccTxt(strtolower(WDate::dateT('Y-m-d', 'd M Y', $dateEffet)), $libEffet)); $tabAnnonces[$idann]['annonce']=trim(str_replace(' .','.', preg_replace('/ +/', ' ', $annonceTxt))); if ($typeActe=='mmd' && is_array($tabAnnonces[$idann]['data']['typeMMD'])) $tabAnnonces[$idann]['data']['typeMMD']=array_unique($tabAnnonces[$idann]['data']['typeMMD']); if ($typeActe=='mmd' && count($tabAnnonces[$idann]['data']['typeMMD'])==0) { echo "MMD inconnue pour l'annonce $idann : ".$tabAnnonces[$idann]['annonce'].EOL; $fpJ=fopen('/var/www/log/newMMD.log','a'); fwrite($fpJ, "Annonce $idann : MMD inconnue pour \"".$tabAnnonces[$idann]['annonce']."\""); fclose($fpJ); $codeEven=2312; } elseif ($precedentExploitant) { //$tabAnnonces[$idann]['Rubrique_Bodacc']='B118'; // Location gérance reçue ...... PP $tabAnnonces[$idann]['Rubrique_Bodacc']='B119'; // Location gérance reçue ...... PM /*$tabAnnonces[$idann]['Rubrique_Bodacc']='B122'; // Location gérance donnée ..... PP $tabAnnonces[$idann]['Rubrique_Bodacc']='B123'; // Location gérance donnée ..... PM*/ //print_r($tabAnnonces[$idann]['data']); //echo $tabAnnonces[$idann]['annonce'].EOL; //echo "Traiter les locations gérance".EOL; //$saisie = fgets(STDIN); } /* else { $even=$tabAnnonces[$idann]['data']['typeRadiation']; echo 'RAD: '.$iBodacc->getEvenement($even)." ($even)".EOL; } echo '?'.EOL; $saisie = trim(strtoupper(fgets(STDIN))); */ $bodaccDepNumPre=$bodaccDepNum; } /* print_r($tabTextTmp); foreach ($tabActesCategorie as $typeActe=>$tabTmp){ echo "$typeActe\n"; print_r(array_unique($tabTmp)); }*/ ///// FIN de la boucle de lecture des annonces procoles //die(); //continue; // PROVISOIRE pour ne pas charger !!! /** ** DEBUT BODACC C en XML **/ } elseif ($debutNom=='BILAN') { if ($dateBodacc<20090327 && $dateBodacc<>20090218) { echo date ('Y/m/d - H:i:s')." - BODACC C en XML non chargé tant que les TLS étaient disponible => 27/03/2009 !".EOL; continue; } if ($validateSchema) { /** VALIDATION SCHEMA **/ if (!$dom_object->schemaValidate('/var/www/batch/bodacc/Bodacc_Bilan_Redif_V03.xsd')) { echo date ('Y/m/d - H:i:s')." - ERREUR : Fichier $nomFichier, Date de Bodacc '$dateBodaccTxt' Schéma XML non validé !".EOL; if (!$reload) { echo EOL.'$forceContinue='.$forceContinue.EOL; if ($forceContinue) continue; else { echo date ('Y/m/d - H:i:s')." - Conseil : Corrigez le fichier XML ".BODACC_LOCAL_DIR.str_replace('.taz','.xml', $nomFichier)." et relancer avec l'option _u !".EOL; die(); } } } else echo date ('Y/m/d - H:i:s')." - BODACC $debutNom $bodaccAnneePar-$bodaccNumPar du $dateBodacc : Schéma du fichier $nomFichier validé.".EOL; } else echo date ('Y/m/d - H:i:s')." - BODACC $debutNom $bodaccAnneePar-$bodaccNumPar du $dateBodacc : Schéma du fichier $nomFichier ignoré.".EOL; /** Chargement des Annonces **/ $result = $xpath->query("//Bilan_XML_Rediff/listeAvis/avis/."); if (count($result)==0) { echo date ('Y/m/d - H:i:s')." - Il n'y a aucune annonce à traiter dans ce flux XML !".EOL; die(); } /** ** Traitement de chaque annonce du noeud Bilan_XML_Rediff **/ foreach ($result as $annonce) { /* On réinitialise toutes les variables servant a reconstruire le texte de l'annonce */ $typeBodacc=$numeroParutionCorr=$dateCorr=$numeroAnnonceCorr=''; $dateJuge=$nature=$siren=$codeRM=$deptRM=$codeRCS=$nomGreffeImmat=$raisonSociale=$enseigne=$sigle=$fj=$activite=$adr=$cp=$ville=$complementJugement=''; $bodaccNumAnnCalc++; $title = $xpath->query ("numeroAnnonce", $annonce); $bodaccNumAnn=$title->item(0)->nodeValue; if ($bodaccNumAnnCalc==1 && $bodaccNumAnn>300) { echo(date ('Y/m/d - H:i:s')." - Chapitre Procédures collectives débutant par l'annonce n°$bodaccNumAnn...".EOL); $bodaccNumAnnCalc=$bodaccNumAnn*1; /* On initialise le 1er n° d'annonce trouvé dans le bodacc pour contrôle */ if (!isset($tabFichiers[$nomFichier]['Num_Annonce_Deb'])) $tabFichiers[$nomFichier]['Num_Annonce_Deb']=$bodaccNumAnn; } else { if (!preg_match('/^'.$bodaccNumAnnCalc.'/', str_replace('.','',''.$bodaccNumAnn)) ) { $endTmp=false; for ($iTmp=1; $iTmp<19; $iTmp++) { if (preg_match('/^'.($bodaccNumAnnCalc+$iTmp).'/', str_replace('.','',''.$bodaccNumAnn))) { echo(date ('Y/m/d - H:i:s')." - Numéro d'annonce $bodaccNumAnn différent du numéro attendu $bodaccNumAnnCalc !".EOL); $bodaccNumAnnCalc=$bodaccNumAnnCalc+$iTmp; // Il y a un loupé de numérotation au bodacc entre 2 annonces $endTmp=true; break; } } // if (!$endTmp) // die(date ('Y/m/d - H:i:s')." - Numéro d'annonce $bodaccNumAnn complètement différent du numéro attendu $bodaccNumAnnCalc !".EOL); } } $bodaccNumAnn=$bodaccNumAnnCalc; if (!isset($tabFichiers[$nomFichier]['Num_Annonce_Deb'])) { $tabFichiers[$nomFichier]['Num_Annonce_Deb']=$bodaccNumAnn; } $tmp=explode(' ', $bodaccNumAnn); $bodaccNumAnn=trim($tmp[0]); /** Numéro unique interne à ce programme pour chaque annonce **/ $idann=''.$bodaccAnneePar.'-'.$bodaccNumPar.'-'.$bodaccNumAnn; $title = $xpath->query ("nojo", $annonce); $nojo=$title->item(0)->nodeValue; /** On initialise le tableau $tabAnnonces[$idann] qui contient toutes les infos de l'annonce **/ $tabAnnonces[$idann]['Bodacc_Date_Parution']=$dateBodacc; $tabAnnonces[$idann]['Num_Annonce']=$bodaccNumAnn; $tabAnnonces[$idann]['Bodacc_Code']=$bodaccType; $tabAnnonces[$idann]['Rubrique_Bodacc']='C331'; // Compatibilité codes TLS $tabAnnonces[$idann]['Bodacc_Annee_Parution']=$bodaccAnneePar; $tabAnnonces[$idann]['Bodacc_Num']=substr($bodaccNumPar,1,strlen($bodaccNumPar)-1); $tabAnnonces[$idann]['Bodacc_NOJO']=$nojo; $tabAnnonces[$idann]['data']=array(); /** On récupère l'annonce XML **/ $dom = new DOMDocument('1.0', 'iso-8859-1'); //$dom->formatOutput=true; $elem=$dom->createElement('annonce'); $dom->appendChild($dom->importNode($annonce, true)); $tabAnnonces[$idann]['balises']=$dom->saveXML(); $title = $xpath->query ('typeAnnonce/*', $annonce); $typeAnnonce=strtolower($title->item(0)->nodeName); if ($typeAnnonce=='annonce') $tabAnnonces[$idann]['typeAnnonce']='Insertion'; elseif ($typeAnnonce=='rectificatif' || $typeAnnonce=='annulation') { if ($typeAnnonce=='annulation') $tabAnnonces[$idann]['typeAnnonce']='Suppression'; else $tabAnnonces[$idann]['typeAnnonce']='Rectificatif'; $tabAnnonces[$idann]['corrPage']=NULL; $tabAnnonces[$idann]['corrTexteRectificatif']=NULL; $title = $xpath->query ('parutionAvisPrecedent/numeroAnnonce', $annonce); $numeroAnnonceCorr=$title->item(0)->nodeValue; $tabAnnonces[$idann]['corrNum_Annonce']=$numeroAnnonceCorr; $title = $xpath->query ('parutionAvisPrecedent/nomPublication', $annonce); $typeBodacc=substr($title->item(0)->nodeValue,-1); $title = $xpath->query ('parutionAvisPrecedent/numeroParution', $annonce); $numeroParutionCorr=$title->item(0)->nodeValue; $tabAnnonces[$idann]['corrNumParution']=$typeBodacc.substr($numeroParutionCorr,-3); $title = $xpath->query ('parutionAvisPrecedent/dateParution', $annonce); $tabAnnonces[$idann]['corrBodacc_Date_Parution']=str_replace(chr(160),' ',utf8_decode($title->item(0)->nodeValue)); $dateCorr=str_replace(' 01 ', ' 1er ',strtolower(WDate::dateT('Y-m-d', 'd M Y', $tabAnnonces[$idann]['corrBodacc_Date_Parution']))); //die("Vérifier avec le Bodacc C l'annonce n°$idann car la balise parutionAvisPrecedent/dateParution=$dateCorr".EOL); } else { echo date ('Y/m/d - H:i:s')." - ERREUR : Type d'annonce '$typeAnnonce' inconnu pour l'annonce $idann !".EOL; die(); } $title = $xpath->query ("numeroDepartement", $annonce); $bodaccDepNum=$title->item(0)->nodeValue; $tabAnnonces[$idann]['Tribunal_Dept']=$bodaccDepNum; $bodaccDep=$iInsee->getDepartement($bodaccDepNum); //$depInconnu=false; if (!$iInsee->isDepartement($bodaccDepNum)) { $depInconnu=true; echo date ('Y/m/d - H:i:s')." - ERREUR : Département '$bodaccDepNum' inconnu pour l'annonce $idann !".EOL; } $title = $xpath->query ("tribunal", $annonce); $texte = utf8_decode($title->item(0)->nodeValue); $tabAnnonces[$idann]['Tribunal_Code']=$iBodacc->getTribunalCode($texte, $bodaccDepNum); if (!$tabAnnonces[$idann]['Tribunal_Code'] && ( ( $bodaccDepNum>70 && $bodaccDepNum<77) || $bodaccDepNum==85 ) ) { // A priori il s'agit d'une erreur de codification des DOM par la DJO !!!! $title = $xpath->query ("adresse/france/codePostal", $annonce); for ($i = 0; $i < $title->length; $i++) { $bodaccDepNum=substr($title->item($i)->nodeValue,0,3)*1; if ( ($bodaccDepNum>970 && $bodaccDepNum<976 ) || $bodaccDepNum==85 ) { //echo date ('Y/m/d - H:i:s')." - ERREUR : Tribunal '$texte' (Dépt. $bodaccDepNum) TROUVE pour l'annonce $idann !".EOL; //die(); break; } } //if ($bodaccDepNum==977) $bodaccDepNum=974; // Bug Bodacc } $tabAnnonces[$idann]['Tribunal_Code']=$iBodacc->getTribunalCode($texte, $bodaccDepNum); if (!$iBodacc->isTribunal($tabAnnonces[$idann]['Tribunal_Code'])) { $tabAnnonces[$idann]['Tribunal_Code']=$iBodacc->getTribunalCode($texte, $bodaccDepNumPre); if (!$iBodacc->isTribunal($tabAnnonces[$idann]['Tribunal_Code'])) { echo date ('Y/m/d - H:i:s')." - ERREUR : Tribunal '$texte' (Dépt. $bodaccDepNum) inconnu pour l'annonce $idann !".EOL; die(); } } // $famille = trim(utf8_decode($title->item(0)->nodeValue)); // $nature = trim(utf8_decode($title->item(0)->nodeValue)); // $dateJuge=trim(str_replace(chr(160),' ',utf8_decode($title->item(0)->nodeValue))); // $complementJugement=trim(utf8_decode($title->item(0)->nodeValue)); /** Génération de l'entête de l'annonce en fonction du type d'annonce **/ if ($tabAnnonces[$idann]['typeAnnonce']=='Insertion') { /* Entête de nouvelle annonce : N° Date et type de jugement */ $annonceTxt="$bodaccNumAnn - "; } elseif ($tabAnnonces[$idann]['typeAnnonce']=='Suppression') { /* Entête d'annonce d'annulation */ $annonceTxt ="$bodaccNumAnn - Annulation. BODACC $typeBodacc. Numéro de parution : $numeroParutionCorr. Date de parution : $dateCorr. Annonce numéro : $numeroAnnonceCorr. Cet avis est nul et non avenu.".EOL; } else { /* Entête d'annonce de suppression */ $annonceTxt ="$bodaccNumAnn - Rectificatif. BODACC $typeBodacc. Numéro de parution : $numeroParutionCorr. Date de parution : $dateCorr. Annonce numéro : $numeroAnnonceCorr. Cet avis est annulé et remplacé par le suivant.".EOL; } // foreach ($result2 as $personne) { // Mise à blanc des champs textes pour la génération de l'annonce $siren=$codeRM=$deptRM=$codeRCS=$nomGreffeImmat=$raisonSociale=$fj=$nomCommercial=$nationalite=$sigle=''; $enseigne=$activite=$adr=$cp=$ville=$typeDepot=$dateCloture=''; $title = $xpath->query("numeroImmatriculation/codeRCS", $annonce); $codeRCS = strtoupper(trim(utf8_decode($title->item(0)->nodeValue))); $title = $xpath->query("numeroImmatriculation/nomGreffeImmat", $annonce); $nomGreffeImmat=trim(utf8_decode($title->item(0)->nodeValue)); $title = $xpath->query("numeroImmatriculation/numeroIdentificationRCS", $annonce); $siren = str_replace(' ','',preg_replace('/[^0-9]/',' ', $title->item(0)->nodeValue))*1; if ($siren<>0) { if ($siren<000100000) { print_r($tabAnnonces[$idann]); echo date ('Y/m/d - H:i:s')." - ERREUR : Siren $siren impossible pour l'annonce $idann !".EOL; die(); }elseif($siren<001000000) $siren='000'.$siren; elseif ($siren<010000000) $siren='00'. $siren; elseif ($siren<100000000) $siren='0'. $siren; } if ( !isset($tabAnnonces[$idann]['siren']) || !is_array($tabAnnonces[$idann]['siren']) ) $tabAnnonces[$idann]['siren']=array(); if ( !isset($tabAnnonces[$idann]['data']['siren']) || !is_array($tabAnnonces[$idann]['data']['siren']) ) { $tabAnnonces[$idann]['data']['siren']=array(); $tabAnnonces[$idann]['data']['sirenValide']=array(); } if ($iInsee->valideSiren($siren)) { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>1))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(1)); } else { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>0))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(0)); } /** **/ $title = $xpath->query ("denomination", $annonce); $raisonSociale = trim(utf8_decode($title->item(0)->nodeValue)); /*if ($raisonSociale=='') { // NOM $title = $xpath2->query ("personnePhysique/nom", $personne); $raisonSociale = utf8_decode($title->item(0)->nodeValue) . ' ('. // Prénoms $title = $xpath2->query ("personnePhysique/prenom", $personne); for ($i = 0; $i < $title->length; $i++) $raisonSociale.= utf8_decode($title->item($i)->nodeValue).' '; $raisonSociale=trim(preg_replace('/\d/','', str_replace('Object id #', '', $raisonSociale))).')'; // Nom d'usage $title = $xpath2->query ("personnePhysique/nomUsage", $personne); if (trim(utf8_decode($title->item(0)->nodeValue))<>'') $raisonSociale.=". Nom d'usage : ".utf8_decode($title->item(0)->nodeValue); // Pseudonyme $title = $xpath2->query ('personnePhysique/pseudonyme', $personne); if (trim(utf8_decode($title->item(0)->nodeValue))<>'') $raisonSociale.=". Pseudonyme : ".utf8_decode($title->item(0)->nodeValue); }*/ if ( !isset($tabAnnonces[$idann]['data']['raisonSociale']) || !is_array($tabAnnonces[$idann]['data']['raisonSociale']) ) $tabAnnonces[$idann]['data']['raisonSociale']=array(); $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array($raisonSociale)); /** **/ $title = $xpath->query ("formeJuridique", $annonce); $fj=utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['FJ']) || !is_array($tabAnnonces[$idann]['data']['FJ']) ) $tabAnnonces[$idann]['data']['FJ']=array(); $tabAnnonces[$idann]['data']['FJ']=array_merge($tabAnnonces[$idann]['data']['FJ'], array($fj)); /** **/ $title = $xpath->query ("sigle", $annonce); $sigle=utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['sigle']) || !is_array($tabAnnonces[$idann]['data']['sigle']) ) $tabAnnonces[$idann]['data']['sigle']=array(); $tabAnnonces[$idann]['data']['sigle']=array_merge($tabAnnonces[$idann]['data']['sigle'], array($sigle)); /** **/ if ( !isset($tabAnnonces[$idann]['data']['adresseSiegeVoie']) || !is_array($tabAnnonces[$idann]['data']['adresseSiegeVoie']) ) $tabAnnonces[$idann]['data']['adresseSiegeVoie']=array(); $title = $xpath->query ("adresse/france/numeroVoie", $annonce); $adr = utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/france/typeVoie", $annonce); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/france/nomVoie", $annonce); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/france/complGeographique", $annonce); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/france/BP", $annonce); $adr.='|'.utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/france/localite", $annonce); $adr.='|'.utf8_decode($title->item(0)->nodeValue); /** **/ $title = $xpath->query ("adresse/etranger/adresse", $annonce); $etranger = utf8_decode($title->item(0)->nodeValue); $title = $xpath->query ("adresse/etranger/pays", $annonce); $pays = utf8_decode($title->item(0)->nodeValue); if ($etranger<>'' || $pays<>'') $adr.='|'.$etranger.'|'.$pays; $tabAnnonces[$idann]['data']['adresseSiegeVoie']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVoie'], (array)$adr); /** **/ $title = $xpath->query ("adresse/france/codePostal", $annonce); $cp = utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['adresseSiegeCP']) || !is_array($tabAnnonces[$idann]['data']['adresseSiegeCP']) ) $tabAnnonces[$idann]['data']['adresseSiegeCP']=array(); $tabAnnonces[$idann]['data']['adresseSiegeCP']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeCP'], (array)$cp); /** **/ $title = $xpath->query ("adresse/france/ville", $annonce); $ville = utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['adresseSiegeVille']) || !is_array($tabAnnonces[$idann]['data']['adresseSiegeVille']) ) $tabAnnonces[$idann]['data']['adresseSiegeVille']=array(); $tabAnnonces[$idann]['data']['adresseSiegeVille']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVille'], (array)$ville); /** **/ $title = $xpath->query ('enseigne', $annonce); $enseigne=utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['enseigne']) || !is_array($tabAnnonces[$idann]['data']['enseigne']) ) $tabAnnonces[$idann]['data']['enseigne']=array(); $tabAnnonces[$idann]['data']['enseigne']=array_merge($tabAnnonces[$idann]['data']['enseigne'], array($enseigne)); /** **/ $title = $xpath->query ("activite", $annonce); $activite = utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['activite']) || !is_array($tabAnnonces[$idann]['data']['activite']) ) $tabAnnonces[$idann]['data']['activite']=array(); $tabAnnonces[$idann]['data']['activite']=array_merge($tabAnnonces[$idann]['data']['activite'], array($activite)); if (preg_match_all("/[0-9]{9,9}|[0-9]{3,3} [0-9]{3,3} [0-9]{3,3}|[0-9]{3,3}\.[0-9]{3,3}\.[0-9]{3,3}|[0-9]{3,3}-[0-9]{3,3}-[0-9]{3,3}/", $activite,$matches)) { if ( !isset($tabAnnonces[$idann]['data']['participations']) || !is_array($tabAnnonces[$idann]['data']['participations']) ) $tabAnnonces[$idann]['data']['participations']=array(); foreach ($matches[0] as $m => $sirenParticipation) { if ($iInsee->valideSiren(str_replace(' ','', $sirenParticipation)) && !preg_match('/'.$sirenParticipation.'.{1,5}euro/i', $texte)) $tabAnnonces[$idann]['data']['participations']=array_merge( $tabAnnonces[$idann]['data']['participations'] , array(str_replace(' ','', $sirenParticipation))); } } /** **/ $title = $xpath->query ('depot/dateCloture', $annonce); $dateCloture=utf8_decode($title->item(0)->nodeValue); $tabAnnonces[$idann]['data']['dateCloture']=$dateCloture; /** **/ $tabAnnonces[$idann]['data']['comptesAnnu']=$tabAnnonces[$idann]['data']['comptesConso']=0; $title = $xpath->query ('depot/typeDepot', $annonce); $typeDepot=utf8_decode($title->item(0)->nodeValue); if ($typeDepot=='Comptes annuels et rapports') { //Comptes annuels et rapports $tabAnnonces[$idann]['data']['comptesAnnu']=1; } elseif ($typeDepot=='Comptes consolidés et rapports') { $tabAnnonces[$idann]['data']['comptesConso']=1; } elseif ($typeDepot=='Comptes annuels, consolidés et rapports') { $tabAnnonces[$idann]['data']['comptesAnnu']=1; $tabAnnonces[$idann]['data']['comptesConso']=1; } elseif ($typeAnnonce<>'annulation') { echo date ('Y/m/d - H:i:s')." - ERREUR : Type de dépôt '$typeDepot' inconnu pour l'annonce $idann !".EOL; print_r($tabAnnonces[$idann]); die(); } // Génération du texte d'annonce Siren / RCS / Greffe if ($codeRM<>'') $annonceTxt.="$codeRM $deptRM "; if ($siren<>'' && $siren*1<>0) $annonceTxt.=number_format($siren, 0, '', ' ').'. '; $annonceTxt.="$codeRCS "; if ($nomGreffeImmat<>'') $annonceTxt.=" $nomGreffeImmat. "; // Génération du texte d'annonce Raison sociale, Nom/Prénom/ Forme / Activité / Adresse $annonceTxt.=' '.$raisonSociale.'.'; if ($fj<>'') if (substr($fj,-1)=='.') $annonceTxt.=" Forme : $fj"; else $annonceTxt.=" Forme : $fj."; if ($nomCommercial<>'') if (substr($nomCommercial,-1)=='.') $annonceTxt.=" Nom commercial : $nomCommercial"; else $annonceTxt.=" Nom commercial : $nomCommercial."; $annonceTxt.=generePhraseBodaccTxt($nationalite, 'Nationalité'); if ($sigle<>'') if (substr($sigle,-1)=='.') $annonceTxt.=" Sigle : $sigle"; else $annonceTxt.=" Sigle : $sigle."; /* Enseigne */ if ($enseigne<>'') if (substr($enseigne,-1)=='.') $annonceTxt.=" Enseigne : $enseigne"; else $annonceTxt.=" Enseigne : $enseigne."; /* Activité */ if ($activite<>'') $annonceTxt.=" Activité : $activite."; if (trim(strtr($adr,'|',' '))<>'' || $cp<>'' || $ville<>'') $annonceTxt.=' Adresse du siège social : '. str_replace('|',' ',$adr) ." $cp $ville."; $annonceTxt.=' '; //} if ($typeAnnonce<>'annulation') $annonceTxt.=" $typeDepot de l'exercice clos le : ".str_replace(' 01 ', ' 1er ',strtolower(WDate::dateT('Y-m-d', 'd M Y', $dateCloture))).'.'; $tabAnnonces[$idann]['annonce']=trim(str_replace(' .','.', preg_replace('/ +/', ' ', $annonceTxt))); if ($tabAnnonces[$idann]['typeAnnonce']=='Rectification' ) { print_r($tabAnnonces[$idann]); echo date ('Y/m/d - H:i:s')." - ATTENTION : Vérifier les annonces de Rectification !".EOL; die(); } //$tabTxtAnn[]=$tabAnnonces[$idann]['annonce']; $bodaccDepNumPre=$bodaccDepNum; } ///// FIN de la boucle de lecture des annonces BILANS //print_r($tabTxtAnn); //die(); /** ** DEBUT BODACC A en XML, Annonces diverses **/ } elseif ($debutNom=='DIVA2') { if ($dateBodacc<20090813) { echo date ('Y/m/d - H:i:s')." - BODACC DIVA2 (annonces diverses) en XML non disponibles avant le 13/08/2009 !".EOL; die("$dateBodacc/$dateBodaccTxt".EOL); continue; } if ($validateSchema) { /** VALIDATION SCHEMA **/ if (!$dom_object->schemaValidate('/var/www/batch/bodacc/Bodacc_Divers_Redif_V01.xsd')) { echo date ('Y/m/d - H:i:s')." - ERREUR : Fichier $nomFichier, Date de Bodacc '$dateBodaccTxt' Schéma XML non validé !".EOL; if (!$reload) { echo EOL.'$forceContinue='.$forceContinue.EOL; if ($forceContinue) continue; else { echo date ('Y/m/d - H:i:s')." - Conseil : Corrigez le fichier XML ".BODACC_LOCAL_DIR.str_replace('.taz','.xml', $nomFichier)." et relancer avec l'option _u !".EOL; die(); } } } else echo date ('Y/m/d - H:i:s')." - BODACC $debutNom $bodaccAnneePar-$bodaccNumPar du $dateBodacc : Schéma du fichier $nomFichier validé.".EOL; } else echo date ('Y/m/d - H:i:s')." - BODACC $debutNom $bodaccAnneePar-$bodaccNumPar du $dateBodacc : Schéma du fichier $nomFichier ignoré.".EOL; echo date ('Y/m/d - H:i:s')." - BODACC DIVA2 (annonces diverses) en XML en cours de chargement...".EOL; //continue; /** Chargement des Annonces **/ $result = $xpath->query("//Divers_XML_Rediff/listeAvis/avis/."); if (count($result)==0) { echo date ('Y/m/d - H:i:s')." - Il n'y a aucune annonce à traiter dans ce flux XML !".EOL; die(); } /** ** Traitement de chaque annonce du noeud Bilan_XML_Rediff **/ foreach ($result as $annonce) { /* On réinitialise toutes les variables servant a reconstruire le texte de l'annonce */ $typeBodacc=$numeroParutionCorr=$dateCorr=$numeroAnnonceCorr=''; $dateJuge=$nature=$siren=$codeRM=$deptRM=$codeRCS=$nomGreffeImmat=$raisonSociale=$enseigne=$sigle=$fj=$activite=$adr=$cp=$ville=$complementJugement=''; $bodaccNumAnnCalc++; $title = $xpath->query ("numeroAnnonce", $annonce); $bodaccNumAnn=$title->item(0)->nodeValue; if ($bodaccNumAnnCalc==1 && $bodaccNumAnn>300) { echo(date ('Y/m/d - H:i:s')." - Chapitre Divers débutant par l'annonce n°$bodaccNumAnn...".EOL); $bodaccNumAnnCalc=$bodaccNumAnn*1; /* On initialise le 1er n° d'annonce trouvé dans le bodacc pour contrôle */ if (!isset($tabFichiers[$nomFichier]['Num_Annonce_Deb'])) $tabFichiers[$nomFichier]['Num_Annonce_Deb']=$bodaccNumAnn; } else { if (!preg_match('/^'.$bodaccNumAnnCalc.'/', str_replace('.','',''.$bodaccNumAnn)) ) { $endTmp=false; for ($iTmp=1; $iTmp<19; $iTmp++) { if (preg_match('/^'.($bodaccNumAnnCalc+$iTmp).'/', str_replace('.','',''.$bodaccNumAnn))) { echo(date ('Y/m/d - H:i:s')." - Numéro d'annonce $bodaccNumAnn différent du numéro attendu $bodaccNumAnnCalc !".EOL); $bodaccNumAnnCalc=$bodaccNumAnnCalc+$iTmp; // Il y a un loupé de numérotation au bodacc entre 2 annonces $endTmp=true; break; } } // if (!$endTmp) // die(date ('Y/m/d - H:i:s')." - Numéro d'annonce $bodaccNumAnn complètement différent du numéro attendu $bodaccNumAnnCalc !".EOL); } } $bodaccNumAnn=$bodaccNumAnnCalc; if (!isset($tabFichiers[$nomFichier]['Num_Annonce_Deb'])) { $tabFichiers[$nomFichier]['Num_Annonce_Deb']=$bodaccNumAnn; } $tmp=explode(' ', $bodaccNumAnn); $bodaccNumAnn=trim($tmp[0]); /** Numéro unique interne à ce programme pour chaque annonce **/ $idann=''.$bodaccAnneePar.'-'.$bodaccNumPar.'-'.$bodaccNumAnn; $title = $xpath->query ("nojo", $annonce); $nojo=$title->item(0)->nodeValue; /** On initialise le tableau $tabAnnonces[$idann] qui contient toutes les infos de l'annonce **/ $tabAnnonces[$idann]['Bodacc_Date_Parution']=$dateBodacc; $tabAnnonces[$idann]['Num_Annonce']=$bodaccNumAnn; $tabAnnonces[$idann]['Bodacc_Code']=$bodaccType; $tabAnnonces[$idann]['Rubrique_Bodacc']='A900'; // Compatibilité codes TLS $tabAnnonces[$idann]['Bodacc_Annee_Parution']=$bodaccAnneePar; $tabAnnonces[$idann]['Bodacc_Num']=substr($bodaccNumPar,1,strlen($bodaccNumPar)-1); $tabAnnonces[$idann]['Bodacc_NOJO']=$nojo; $tabAnnonces[$idann]['data']=array(); /** On récupère l'annonce XML **/ $dom = new DOMDocument('1.0', 'iso-8859-1'); //$dom->formatOutput=true; $elem=$dom->createElement('annonce'); $dom->appendChild($dom->importNode($annonce, true)); $tabAnnonces[$idann]['balises']=$dom->saveXML(); $title = $xpath->query ('typeAnnonce/*', $annonce); $typeAnnonce=strtolower($title->item(0)->nodeName); if ($typeAnnonce=='annonce') $tabAnnonces[$idann]['typeAnnonce']='Insertion'; elseif ($typeAnnonce=='rectificatif' || $typeAnnonce=='annulation') { if ($typeAnnonce=='annulation') $tabAnnonces[$idann]['typeAnnonce']='Suppression'; else $tabAnnonces[$idann]['typeAnnonce']='Rectificatif'; $tabAnnonces[$idann]['corrPage']=NULL; $tabAnnonces[$idann]['corrTexteRectificatif']=NULL; $title = $xpath->query ('parutionAvisPrecedent/numeroAnnonce', $annonce); $numeroAnnonceCorr=$title->item(0)->nodeValue; $tabAnnonces[$idann]['corrNum_Annonce']=$numeroAnnonceCorr; $title = $xpath->query ('parutionAvisPrecedent/nomPublication', $annonce); $typeBodacc=substr($title->item(0)->nodeValue,-1); $title = $xpath->query ('parutionAvisPrecedent/numeroParution', $annonce); $numeroParutionCorr=$title->item(0)->nodeValue; $tabAnnonces[$idann]['corrNumParution']=$typeBodacc.substr($numeroParutionCorr,-3); $title = $xpath->query ('parutionAvisPrecedent/dateParution', $annonce); $tabAnnonces[$idann]['corrBodacc_Date_Parution']=str_replace(chr(160),' ',utf8_decode($title->item(0)->nodeValue)); $dateCorr=str_replace(' 01 ', ' 1er ',strtolower(WDate::dateT('Y-m-d', 'd M Y', $tabAnnonces[$idann]['corrBodacc_Date_Parution']))); //die("Vérifier avec le Bodacc C l'annonce n°$idann car la balise parutionAvisPrecedent/dateParution=$dateCorr".EOL); } else { echo date ('Y/m/d - H:i:s')." - ERREUR : Type d'annonce '$typeAnnonce' inconnu pour l'annonce $idann !".EOL; die(); } $title = $xpath->query ("titreAnnonce", $annonce); $titreAnnonce=trim(utf8_decode($title->item(0)->nodeValue)); /** Génération de l'entête de l'annonce en fonction du type d'annonce **/ if ($tabAnnonces[$idann]['typeAnnonce']=='Insertion') { /* Entête de nouvelle annonce : N° Date et type de jugement */ $annonceTxt="$bodaccNumAnn - "; } elseif ($tabAnnonces[$idann]['typeAnnonce']=='Suppression') { /* Entête d'annonce d'annulation */ $annonceTxt ="$bodaccNumAnn - Annulation. BODACC $typeBodacc. Numéro de parution : $numeroParutionCorr. Date de parution : $dateCorr. Annonce numéro : $numeroAnnonceCorr. Cet avis est nul et non avenu.".EOL; } else { /* Entête d'annonce de suppression */ $annonceTxt ="$bodaccNumAnn - Rectificatif. BODACC $typeBodacc. Numéro de parution : $numeroParutionCorr. Date de parution : $dateCorr. Annonce numéro : $numeroAnnonceCorr. Cet avis est annulé et remplacé par le suivant.".EOL; } $title = $xpath->query ("contenuAnnonce", $annonce); $annonceTxt.=$title->item(0)->nodeValue; $tabAnnonces[$idann]['annonce']=utf8_decode(trim(str_replace(' .','.', preg_replace('/ +/', ' ', $annonceTxt)))); // Arrêt Conseil d\'Etat ou Conseil Supérieur des CAC' //interdiction temporaire d'exercice de la profession de commissaire aux comptes if (preg_match('/interdiction(.*)temporair(.*)exerc(ice|er)(.*)commissaire(.*)compte/i',$tabAnnonces[$idann]['annonce'])) $tabAnnonces[$idann]['data']['typeProCol']=1900; elseif (preg_match('/radiation(.*)liste(.*)commissaire(.*)compte/i',$tabAnnonces[$idann]['annonce'])) $tabAnnonces[$idann]['data']['typeProCol']=1901; elseif (preg_match('/radiation(.*)liste(.*)commissaire(.*)compte/i',$tabAnnonces[$idann]['annonce'])) $tabAnnonces[$idann]['data']['typeProCol']=1901; elseif (preg_match('/VENTE(.*)(SAISIE|ENCH.RES)/i', $titreAnnonce)) { $tabAnnonces[$idann]['data']['typeProCol']=1005; } else { print_r($tabAnnonces[$idann]); echo date ('Y/m/d - H:i:s')." - Evènement DIVA non géré pour '$titreAnnonce' !".EOL; if ($noQuestion) { die(); } else { while (1) { echo date('Y/m/d - H:i:s') ." - Saisir la codification (par défaut 1999 ou 'l XXX' pour liste des codes XXX) ?"; $saisie = trim(fgets(STDIN)); if (strtolower(substr($saisie,0,1))=='l') afficheListeEven(substr($saisie,2,strlen($saisie)-2)); elseif (($saisie>=1000 && $saisie<2000) || $saisie==0) break; } if ($saisie>0) $tabAnnonces[$idann]['data']['typeProCol']=$saisie; else $tabAnnonces[$idann]['data']['typeProCol']=1999; } } if (!isset($tabAnnonces[$idann]['Tribunal_Code']) || $tabAnnonces[$idann]['Tribunal_Code']=='') { $tabAnnonces[$idann]['Tribunal_Code']='ETATV'; $tabAnnonces[$idann]['Tribunal_Dept']=75; } if ($tabAnnonces[$idann]['typeAnnonce']<>'Insertion' ) { print_r($tabAnnonces[$idann]); echo date ('Y/m/d - H:i:s')." - ATTENTION : BODACC A Divers - Vérifier les annonces hors insertion !".EOL; die(); } $tabAnnonces[$idann]['data']['commentaires']=array($titreAnnonce); //$tabTxtAnn[]=$tabAnnonces[$idann]['annonce']; $bodaccDepNumPre=$bodaccDepNum; } } /** ** FIN BODACC A Divers en XML **/ // N° de la dernière annonce du fichier $tabFichiers[$nomFichier]['Num_Annonce_Fin']=$bodaccNumAnn; // print_r(array_unique($tabFamilleNature)); // print_r($tabAnnonces); $tabFichiers[$nomFichier]['Bodacc_Date_Parution']=$dateBodacc; $tabFichiers[$nomFichier]['Bodacc_Date_Parution_Texte']=$dateBodaccTxt; $tabFichiers[$nomFichier]['Bodacc_Code']=$bodaccType; //$tabFichiers[$nomFichier]['Bodacc_Num']=substr($bodaccNumPar,1,strlen($bodaccNumPar)-1); $tabFichiers[$nomFichier]['Bodacc_Annee_Parution']=$bodaccAnneePar; $tabFic=$tabFichiers[$nomFichier]; $tabFic['NomFichier']=$nomFichier; if (!isset($tabFic['dateDownload'])) $tabFic['dateDownload']=date('Y-m-d H:i:s', filemtime(BODACC_LOCAL_DIR . $nomFichier)); if (!$forceDateInsertABodacc) $dateInsert=date('Y-m-d H:i:s'); else $dateInsert=$tabFic['dateDownload']; $tabFic['dateInsert']=$dateInsert; // Provisoirement, le continue permet de ne pas charger les fichier ! //print_r($tabFic); /********************************************************************/ /** FIN FORMAT .taz **/ /********************************************************************/ } elseif ($typeFichier=='.pdf') { /********************************************************************/ /** DEBUT FORMAT .pdf **/ /********************************************************************/ //echo(date ('Y/m/d - H:i:s')." - ATTENTION : Bodacc $nomFichier est dans un format non encore chargé en base ! ".EOL); continue; // Conversion du .pdf en .xml exec('cd '.BODACC_LOCAL_DIR.';pdftohtml -xml '.BODACC_LOCAL_DIR.$nomFichier); //continue; //$dateBodacc; // BDXML-A_20070251_0001_p000.xml $bodaccType=substr($nomFichier, 6, 1); $tabFichiers[$nomFichier]['Bodacc_Code']=$bodaccType; if (!in_array($bodaccType, $tabBodaccF)) continue; // La ligne de commande ne souhaite pas intégrer ce type de Bodacc $bodaccAnneePar=substr($nomFichier, 8, 4); $tabFichiers[$nomFichier]['Bodacc_Annee_Parution']=$bodaccAnneePar; $bodaccNum=substr($nomFichier, 13, 3); $tabFichiers[$nomFichier]['Bodacc_Num']=$bodaccNum; $bodaccNumPar=$bodaccType.$bodaccNum; /** On test si le fichier est déjà en base **/ $ret=$iDb->select('chargements', 'Bodacc_Date_Parution, Bodacc_Code, Bodacc_Annee_Parution, DateDispo, dateDownload, taille, Bodacc_Num, Num_Annonce_Deb, Num_Annonce_Fin, dateInsert', "NomFichier='$nomFichier'"); if (count($ret)>0) { $ficDB=$ret[0]; // echo date ('Y/m/d - H:i:s')." - BODACC $bodaccAnneePar-$bodaccNumPar du $dateBodacc déjà chargé ($nomFichier / $dateBodaccTxt).\n"; if ($tabFichiers[$nomFichier]['taille']>0 && $tabFichiers[$nomFichier]['taille']<>$ficDB['taille']) { print_r($tabFichiers[$nomFichier]);print_r($ficDB); die(date ('Y/m/d - H:i:s')." - ERREUR : Fichier $nomFichier, Taille distante ". $tabFichiers[$nomFichier]['taille'] ." diff. de ". $ficDB['taille'] ." : ".$tabFichiers[$nomFichier]['dateDispo'].' !'.EOL); } // if ($tabFichiers[$nomFichier]['dateDispo']>0 && $ficDB['DateDispo']>0 && $tabFichiers[$nomFichier]['dateDispo']<>$ficDB['DateDispo']) //die(date ('Y/m/d - H:i:s')." - ERREUR : Fichier $nomFichier, Date de dispo diff. : ".$tabFichiers[$nomFichier]['dateDispo'].' !'.EOL); $numBodacc=$tabFichiers[$nomFichier]['Bodacc_Num']; $ret=$iDb->select('bodacc', 'count(*) as nb', "Bodacc_Code='$bodaccType' AND Bodacc_Annee_Parution=$bodaccAnneePar AND Bodacc_Num=$numBodacc"); $nbAnnonces=$ret[0]['nb']; if ($ficDB['Num_Annonce_Fin']<>$nbAnnonces) echo(date ('Y/m/d - H:i:s')." - ATTENTION : Fichier $nomFichier, numéro de la dernière annonce (".$ficDB['Num_Annonce_Fin'].") incohérent avec le nombre d'annonces en base ($nbAnnonces) !".EOL); continue; } /** On test si le chargement du PDF doit être intégral ou partiel **/ $ret=$iDb->select('chargements', 'NomFichier, Bodacc_Date_Parution, Bodacc_Code, Bodacc_Annee_Parution, Bodacc_Num, Num_Annonce_Deb, Num_Annonce_Fin', "Bodacc_Code='$bodaccType' AND Bodacc_Annee_Parution=$bodaccAnneePar AND Bodacc_Num=$bodaccNum"); if (count($ret)>0) { /**NomFichier Nom du fichier TLS, PDF ou XML du BODACC Bodacc_Date_Parution Croissant Date de parution au format Date Bodacc_Date_Parution_Texte Date de parution du BODACC au format texte tel que communiqué dans le fichier DateDispo Date de mise à disposition du fichier par le Bodacc dateDownload Date de téléchargement du fichier taille Taille du fichier en octets Bodacc_Code Type du BODACC (A, B ou C) Bodacc_Annee_Parution Année de parution du Bodacc Bodacc_Num Numéro de parution du Bodacc dans l'année Num_Annonce_Deb Numéro de l'annonce de début Num_Annonce_Fin Numéro de l'annonce de fin**/ echo (date ('Y/m/d - H:i:s')." - ERREUR : Le fichier PDF $nomFichier contient des annonces qui ont déjà été chargées !".EOL); print_r($ret); die(); } if ($tabFichiers[$nomFichier]['taille']==0) $tabFichiers[$nomFichier]['taille']=filesize(BODACC_LOCAL_DIR . $nomFichier); $tailleKo=round($tabFichiers[$nomFichier]['taille']/1024); echo date ('Y/m/d - H:i:s')." - BODACC PDF $bodaccAnneePar-$bodaccNumPar du $dateBodacc en cours de traitement ($nomFichier, $dateBodaccTxt, $tailleKo k)...".EOL; $bodaccNumAnnCalc=$bodaccNumAnn=0; $tabLignesPdf=file(BODACC_LOCAL_DIR.str_replace('.pdf','.xml', $nomFichier)); for ($i=0;isset($tabLignesPdf[$i]);$i++) { // On traite chaque ligne du fichier .pdf $i+=$decalage; $ligne_utf8=$tabLignesPdf[$i]; $decalage=0; /** On récupère le numéro de page **/ if(preg_match('//Ui','',$ligne_utf8); $ligne_utf8=preg_replace('/<\/text>/i','',$ligne_utf8); $ligne=utf8_decode($ligne_utf8); $ligne_utf8p2=utf8_decode(preg_replace('/<\/text>/i','',preg_replace('//Ui','',$tabLignesPdf[$i+2]))); //echo 'Ligne = '.$ligne_utf8.EOL; //echo 'REGEX = /'.$pageCourante.'.{0,3}<\/b>(?:.*)BODACC(?:.*)'.($bodaccNum*1).' '.$bodaccType.' (.*) '.$bodaccAnneePar.'/Ui'.EOL; //die($bodaccNum.' '.$bodaccType.' (.*) '.$bodaccAnneePar.' (?:.*) '.$pageCourante.'<\/b>'.EOL); if(preg_match('/'.($bodaccNum*1).' '.$bodaccType.' (.*) '.$bodaccAnneePar.' (?:.*) '.$pageCourante.'<\/b>/Ui',$ligne_utf8,$matches) ||(preg_match('/'.$pageCourante.'.{0,3}<\/b>(?:.*)BODACC n/Ui',$ligne_utf8) && preg_match('/'.($bodaccNum*1).' '.$bodaccType.' (.*) '.$bodaccAnneePar.'/Ui',$ligne_utf8p2,$matches))) { /** On recherche la date du BODACC **/ $dateBodaccTxt=trim(preg_replace('/[^a-z0-9éû ]/i','', utf8_decode($matches[1]))).' '.$bodaccAnneePar; $dateBodacc=WDate::dateT('d M Y', 'Ymd', $dateBodaccTxt); //echo EOL.'$dateBodaccTxt='.$dateBodaccTxt.EOL; // die($dateBodacc); } elseif (preg_match('/^(\d{2,3}) - (\D*)<\/b>$/Ui',$ligne_utf8,$matches)) { /** On recherche le département **/ $bodaccDepNum=$matches[1]*1; $bodaccDepLib=strtr(trim(utf8_decode($matches[2])), array('?'=>"'",'´'=>'','`'=>'')); /** On recherche le tribunal **/ if (!$iInsee->isDepartement($bodaccDepNum)) { echo date ('Y/m/d - H:i:s')." - ERREUR : Département '$bodaccDepNum' inconnu pour l'annonce $idann !".EOL; die(); } $tribunalTxt=strtr( trim(strip_tags(utf8_decode(preg_replace('/<\/text>/i','',preg_replace('//Ui','',$tabLignesPdf[$i+1]))))), array('?'=>"'",'´'=>'','`'=>'')); $tribunalCode=$iBodacc->getTribunalCode($tribunalTxt, $bodaccDepNum); //echo "je cherche $tribunalTxt dans le département $bodaccDepNum".EOL; $decalage=2; if (!$iBodacc->isTribunal($tribunalCode)) { //$tribunalTxt2=str_replace("'",'', $tribunalTxt); $tribunalTxt2=strtr($tribunalTxt, array("D'"=>'', "'"=>'')); $tribunalCode=$iBodacc->getTribunalCode($tribunalTxt2, $bodaccDepNum); if (!$iBodacc->isTribunal($tribunalCode)) { // On cherche la suite du libellé sur la ligne suivante $tribunalTxt.=' '.strtr(trim(strip_tags(utf8_decode(preg_replace('/<\/text>/i','',preg_replace('//Ui','',$tabLignesPdf[$i+2]))))), array('?'=>"'",'´'=>'','`'=>'')); $tribunalCode=$iBodacc->getTribunalCode($tribunalTxt, $bodaccDepNum); if (!$iBodacc->isTribunal($tribunalCode)) { //$tribunalTxt2=str_replace("'",'', $tribunalTxt); $tribunalTxt2=strtr($tribunalTxt, array("D'"=>'', "'"=>'')); $tribunalCode=$iBodacc->getTribunalCode($tribunalTxt2, $bodaccDepNum); if (!$iBodacc->isTribunal($tribunalCode)) { echo date ('Y/m/d - H:i:s')." - ERREUR : Tribunal '$texte' inconnu pour l'annonce $idann !".EOL; echo $ligne_utf8.' '.$tabLignesPdf[$i+1].' '.$tabLignesPdf[$i+2]; die(); } else $tribunalTxt=$tribunalTxt2; } $decalage=3; } else $tribunalTxt=$tribunalTxt2; } $familleTxt= strtr( trim(strip_tags(utf8_decode(preg_replace('/<\/text>/i','',preg_replace('//Ui','',$tabLignesPdf[$i+$decalage]))))), array('?'=>"'",'´'=>'','`'=>'')); $tabFam[]=$familleTxt; /*echo $decalage.':'.$tabLignesPdf[$i+$decalage].EOL; echo "$bodaccDepNum $bodaccDepLib $tribunalTxt $tribunalCode $familleTxt".EOL; die();*/ } elseif(preg_match('/^(\d*) \-(.*)/i',$ligne_utf8,$matches)) { $annonceTxtPre=trim(strip_tags($annonceTxt)); $annonceBrute=trim($annonceTxt); $bodaccNumAnnPre=$bodaccNumAnn; $bodaccDepNumPre=$bodaccDepNum; $tribunalCodePre=$tribunalCode; $familleTxtPre=$familleTxt; /** On recherche le numéro de l'annonce, qui indique un changement d'annonce **/ $bodaccNumAnn=$matches[1]; $annonceTxt=$ligne; /* $bodaccNumAnnCalc++; if (!preg_match('/^'.$bodaccNumAnnCalc.'/', str_replace('.','',''.$bodaccNumAnn)) ) { $endTmp=false; for ($iTmp=1; $iTmp<19; $iTmp++) { if (preg_match('/^'.($bodaccNumAnnCalc+$iTmp).'/', str_replace('.','',''.$bodaccNumAnn))) { echo(date ('Y/m/d - H:i:s')." - Numéro d'annonce $bodaccNumAnn différent du numéro attendu $bodaccNumAnnCalc !".EOL); $bodaccNumAnnCalc=$bodaccNumAnnCalc+$iTmp; // Il y a un loupé de numérotation au bodacc entre 2 annonces $endTmp=true; break; } } if (!$endTmp) die(date ('Y/m/d - H:i:s')." - Numéro d'annonce $bodaccNumAnn complètement différent du numéro attendu $bodaccNumAnnCalc !".EOL); } $bodaccNumAnn=$bodaccNumAnnCalc;*/ if ($bodaccNumAnnPre*1>0) { /* On initialise le 1er n° d'annonce trouvé dans le bodacc pour contrôle */ if (!isset($tabFichiers[$nomFichier]['Num_Annonce_Deb'])) $tabFichiers[$nomFichier]['Num_Annonce_Deb']=$bodaccNumAnnPre; $idann=''.$bodaccAnneePar.'-'.$bodaccNumPar.'-'.$bodaccNumAnnPre; $tabAnnonces[$idann]['Bodacc_Date_Parution']=$dateBodacc; $tabAnnonces[$idann]['Num_Annonce']=$bodaccNumAnnPre; $tabAnnonces[$idann]['Bodacc_Code']=$bodaccType; $tabAnnonces[$idann]['Bodacc_Annee_Parution']=$bodaccAnneePar; $tabAnnonces[$idann]['Bodacc_Num']=$bodaccNum; // $tabAnnonces[$idann]['Bodacc_NOJO']=NULL; $tabAnnonces[$idann]['Bodacc_Page']=$pageCourante; /* $tabAnnonces[$idann]['typeAnnonce']='Insertion'; $tabAnnonces[$idann]['corrNum_Annonce']=NULL; $tabAnnonces[$idann]['corrBodacc_Date_Parution']=NULL; $tabAnnonces[$idann]['corrPage']=NULL; $tabAnnonces[$idann]['corrNumParution']=NULL; $tabAnnonces[$idann]['corrTexteRectificatif']=NULL;*/ $tabAnnonces[$idann]['Tribunal_Dept']=$bodaccDepNumPre; $tabAnnonces[$idann]['Tribunal_Code']=$tribunalCodePre; $tabAnnonces[$idann]['Rubrique_Bodacc']=$familleTxtPre; // $tabAnnonces[$idann]['data']=array(); $tabAnnonces[$idann]['annonce']=trim(preg_replace('/ +/',' ',str_replace("\n",' ', strtr($annonceTxtPre, array(';'=>',',"-\n"=>'','?'=>"'"))))); $tabAnnonces[$idann]['balises']=$annonceBrute; /* if ( !isset($tabAnnonces[$idann]['siren']) || !is_array($tabAnnonces[$idann]['siren']) ) $tabAnnonces[$idann]['siren']=array(); if ( !isset($tabAnnonces[$idann]['data']['siren']) || !is_array($tabAnnonces[$idann]['data']['siren']) ) { $tabAnnonces[$idann]['data']['siren']=array(); $tabAnnonces[$idann]['data']['sirenValide']=array(); } if ($iInsee->valideSiren($siren)) { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>1))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(1)); } else { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$siren, 'valide'=>0))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($siren)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(0)); }*/ /** ACTIVITE **/ if (preg_match('/Acti(?:\-<\/i>|)(?:\n|)(?:|)vité :(?: +|)<\/i>(.*)/Uis', $tabAnnonces[$idann]['balises'], $matches)) { if ( !isset($tabAnnonces[$idann]['data']['activite']) || !is_array($tabAnnonces[$idann]['data']['activite']) ) $tabAnnonces[$idann]['data']['activite']=array(); $strTmp=trim(preg_replace('/ +/',' ', str_replace("\n",' ', strtr(preg_replace('/<\/page>(.*)BODACC.{1,30}(janvier|f.vrier|mars|avril|mai|juin|juillet|ao.t|septembre|octobre|novembre|d.cembre) 20\d{2,2}(.*)\.\n\.\n/Uis', '', trim($matches[1])), array(';'=>',',"-\n"=>'','?'=>"'"))))); $strTmp=preg_replace("/Immatriculation d'une personne (.*)/i",'',$strTmp); $tabAnnonces[$idann]['data']['activite']=array_merge($tabAnnonces[$idann]['data']['activite'], array($strTmp)); if (preg_match_all("/[0-9]{9,9}|[0-9]{3,3} [0-9]{3,3} [0-9]{3,3}|[0-9]{3,3}\.[0-9]{3,3}\.[0-9]{3,3}|[0-9]{3,3}-[0-9]{3,3}-[0-9]{3,3}/", $strTmp,$matches)) { if ( !isset($tabAnnonces[$idann]['data']['participations']) || !is_array($tabAnnonces[$idann]['data']['participations']) ) $tabAnnonces[$idann]['data']['participations']=array(); foreach ($matches[0] as $m => $sirenParticipation) { if ($iInsee->valideSiren(str_replace(' ','', $sirenParticipation)) && !preg_match('/'.$sirenParticipation.'.{1,5}euro/i', $texte)) $tabAnnonces[$idann]['data']['participations']=array_merge( $tabAnnonces[$idann]['data']['participations'] , array(str_replace(' ','', $sirenParticipation))); } } } /** CAPITAL **/ if (preg_match('/Capi(?:\-<\/i>|)(?:\n|)(?:|)tal :(?: +|)<\/i>(.*)/Uis', $tabAnnonces[$idann]['balises'], $matches)) { /*[0] => Capital : 1000.00 o 7 A ? 11 janvier 2008 . . euros. [1] => 1000.00 o 7 A ? 11 janvier 2008 . . euros. ) 1000.00 o 7 A ' 11 janvier 2008 . . euros. */ $strTmp=trim(preg_replace('/ +/',' ', str_replace("\n",' ', strtr(preg_replace ('/<\/page>(.*)(\d{1,3} (?:A|B|C).{1,10}(janvier|f.vrier|mars|avril|mai|juin|juillet|ao.t|septembre|octobre|novembre|d.cembre) 20\d{2,2}|BODACC)(.*)\.\n\.\n/Uis', '', trim($matches[1])), array(';'=>',',"-\n"=>'','?'=>"'"))))); /* if ($idann=='2008-A007-1482') { print_r($matches); die(EOL.$strTmp.EOL); }*/ if (substr($strTmp,-1)=='.') $strTmp=substr($strTmp,0,strlen($strTmp)-1); if (preg_match("/^([0-9\.,\?\s]*)([\D]*)/i", $strTmp, $tabTmp)) { $capital_montant=str_replace(' ','', strtr($tabTmp[1], '?,.',' ..')); $devise =strtoupper(trim(str_replace('de ', '', str_replace('d\'', '', $tabTmp[2])))); // if (preg_match("/euro/i", $devise)) $devise='EURO'; if ( preg_match("/eur/i", $devise) && !preg_match("/(wir|suisse|che)/i", $devise) ) $devise='EURO'; if ($devise<>'') { if ($capital_montant<>'' && !$iBodacc->isDeviseBodacc($devise)) { echo ("ERREUR : Annonce $idann, devise inconnue = '$devise' (montant = $capital_montant) !".EOL); echo 'SIREN ............. '.implode(';',$tabAnnonces[$idann]['data']['siren']).EOL; echo 'Raison Sociale .... '.implode(';',$tabAnnonces[$idann]['data']['raisonSociale']).EOL; echo 'RC ................ '.implode(';',$tabAnnonces[$idann]['data']['RC']).EOL; echo 'Forme Juridique ... '.implode(';',$tabAnnonces[$idann]['data']['FJ']).EOL; echo chr(7); /** @todo Gérer les devises dont le nom peut être commun à plusieurs pays : ** DINARS DIRHAM DOLLARS COURONNES FRANC CFA ROUPIE LEU **/ if ($noQuestion) { die("Devise '$devise' inconnue !"); } else { while(true){ echo 'Saisir la devise pour "'.$devise.'" (0 pour ne rien saisir) ?'.EOL; $saisie = trim(strtoupper(fgets(STDIN))); if (strlen($saisie)==3) { echo 'Insertion de la devise en base'.EOL; if (!$iBodacc->addDeviseBodacc($devise, $saisie) && mysql_errno()<>1062) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations de chargement en base impossible :".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); die(); } $capital_devise=$saisie; break; } elseif (strlen($saisie)==1 && $saisie=='0') { $capital_devise='??'; break; } } } } else $capital_devise=$iBodacc->getDeviseBodacc($devise); } else $capital_devise='?'; $tabAnnonces[$idann]['data']['Capital']=array('Montant'=>$capital_montant, 'Devise'=>$capital_devise); } } /** FORME JURIDIQUE **/ if (preg_match('/Forme :(?: +|)<\/i>(.*)/Uis', $tabAnnonces[$idann]['balises'], $matches)) { if ( !isset($tabAnnonces[$idann]['data']['FJ']) || !is_array($tabAnnonces[$idann]['data']['FJ']) ) $tabAnnonces[$idann]['data']['FJ']=array(); $strTmp=trim(preg_replace('/ +/',' ', str_replace("\n",' ', strtr(preg_replace('/<\/page>(.*)BODACC.{1,30}(janvier|f.vrier|mars|avril|mai|juin|juillet|ao.t|septembre|octobre|novembre|d.cembre) 20\d{2,2}(.*)\.\n\.\n/Uis', '', trim($matches[1])), array(';'=>',',"-\n"=>'','?'=>"'"))))); if (substr($strTmp,-1)=='.') $strTmp=substr($strTmp,0,strlen($strTmp)-1); $tabAnnonces[$idann]['data']['FJ']=array_merge($tabAnnonces[$idann]['data']['FJ'], array($strTmp)); } /** ADRESSE **/ if (preg_match('/Adresse :(?: +|)<\/i>(.*)/Uis', $tabAnnonces[$idann]['balises'], $matches)) { /* if ( !isset($tabAnnonces[$idann]['data']['adresseSiege']) || !is_array($tabAnnonces[$idann]['data']['adresseSiege']) ) $tabAnnonces[$idann]['data']['adresseSiege']=array();*/ if ( !isset($tabAnnonces[$idann]['data']['adresse']) || !is_array($tabAnnonces[$idann]['data']['adresse']) ) $tabAnnonces[$idann]['data']['adresse']=array();//adresseComplete $strTmp=trim(preg_replace('/ +/',' ', str_replace("\n",' ', strtr(preg_replace('/<\/page>(.*)BODACC.{1,30}(janvier|f.vrier|mars|avril|mai|juin|juillet|ao.t|septembre|octobre|novembre|d.cembre) 20\d{2,2}(.*)\.\n\.\n/Uis', '', trim($matches[1])), array(';'=>',',"-\n"=>'','?'=>"'"))))); $tabAnnonces[$idann]['data']['adresse']=array_merge($tabAnnonces[$idann]['data']['adresse'], array($strTmp)); } /** Administration **/ if (preg_match('/Admi(?:\-<\/i>|)(?:\n|)(?:|)nis(?:\-<\/i>|)(?:\n|)(?:|)tra(?:\-<\/i>|)(?:\n|)(?:|)tion :(?: +|)<\/i>(.*)/Uis', $tabAnnonces[$idann]['balises'], $matches)) { $strTmp=trim(preg_replace('/ +/',' ', str_replace("\n",' ', strtr(preg_replace('/<\/page>(.*)BODACC.{1,30}(janvier|f.vrier|mars|avril|mai|juin|juillet|ao.t|septembre|octobre|novembre|d.cembre) 20\d{2,2}(.*)\.\n\.\n/Uis', '', trim($matches[1])), array(';'=>',',"-\n"=>'','?'=>"'"))))); if ( !isset($tabAnnonces[$idann]['data']['administration']) || !is_array($tabAnnonces[$idann]['data']['administration']) ) $tabAnnonces[$idann]['data']['administration']=array(); $tabAnnonces[$idann]['data']['administration']=array_merge($tabAnnonces[$idann]['data']['administration'], array($strTmp)); } /** NOM COMMERCIAL **/ if (preg_match('/Nom com(?:\-<\/i>|)(?:\n|)(?:|)mer(?:\-<\/i>|)(?:\n|)(?:|)cial :(?: +|)<\/i>(.*)/Uis', $tabAnnonces[$idann]['balises'], $matches)) { $strTmp=trim(preg_replace('/ +/',' ', str_replace("\n",' ', strtr(preg_replace('/<\/page>(.*)BODACC.{1,30}(janvier|f.vrier|mars|avril|mai|juin|juillet|ao.t|septembre|octobre|novembre|d.cembre) 20\d{2,2}(.*)\.\n\.\n/Uis', '', trim($matches[1])), array(';'=>',',"-\n"=>'','?'=>"'"))))); if ( !isset($tabAnnonces[$idann]['data']['nomCommercial']) || !is_array($tabAnnonces[$idann]['data']['nomCommercial']) ) $tabAnnonces[$idann]['data']['nomCommercial']=array(); $tabAnnonces[$idann]['data']['nomCommercial']=array_merge($tabAnnonces[$idann]['data']['nomCommercial'], array($strTmp)); } /** RAISON SOCIALE **/ if (preg_match_all('/(.*)<\/b>(.*)/Uis', $tabAnnonces[$idann]['balises'], $matches)) { if ( !isset($tabAnnonces[$idann]['data']['raisonSociale']) || !is_array($tabAnnonces[$idann]['data']['raisonSociale']) ) $tabAnnonces[$idann]['data']['raisonSociale']=array(); foreach ($matches[0] as $strTmp) { $strTmp=trim(preg_replace('/ +/',' ', str_replace("\n",' ', strtr(preg_replace('/<\/page>(.*)BODACC.{1,30}(janvier|f.vrier|mars|avril|mai|juin|juillet|ao.t|septembre|octobre|novembre|d.cembre) 20\d{2,2}(.*)\.\n\.\n/Uis', '', trim($strTmp)), array(';'=>',',"-\n"=>'','?'=>"'"))))); $tabAnnonces[$idann]['data']['raisonSociale']=array_merge($tabAnnonces[$idann]['data']['raisonSociale'], array(strip_tags($strTmp))); } } /** SIREN **/ if (preg_match_all("/non +inscrit|[0-9]{9,9}|[0-9]{3,3} [0-9]{3,3} [0-9]{3,3}|[0-9]{3,3}\.[0-9]{3,3}\.[0-9]{3,3}|[0-9]{3,3}-[0-9]{3,3}-[0-9]{3,3}/", $tabAnnonces[$idann]['balises'],$matches)) { if ( !isset($tabAnnonces[$idann]['siren']) || !is_array($tabAnnonces[$idann]['siren']) ) $tabAnnonces[$idann]['siren']=array(); if ( !isset($tabAnnonces[$idann]['data']['siren']) || !is_array($tabAnnonces[$idann]['data']['siren']) ) { $tabAnnonces[$idann]['data']['siren']=array(); $tabAnnonces[$idann]['data']['sirenValide']=array(); } foreach ($matches[0] as $strTmp) { $strTmp=strtr($strTmp, array('-'=>'',' '=>'', '.'=>'')); if ($iInsee->valideSiren($strTmp)) { //echo "Siren = $siren, RS = ".$tabTmp2[1] ."'\n"; $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$strTmp, 'valide'=>1))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($strTmp)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(1)); } else { $tabAnnonces[$idann]['siren']=array_merge($tabAnnonces[$idann]['siren'], array(array('num'=>$strTmp, 'valide'=>0))); $tabAnnonces[$idann]['data']['siren']=array_merge($tabAnnonces[$idann]['data']['siren'], array($strTmp)); $tabAnnonces[$idann]['data']['sirenValide']=array_merge($tabAnnonces[$idann]['data']['sirenValide'], array(0)); } } } /** ORIGINE DU FONDS **/ if (preg_match('/Ori(?:\-<\/i>|)(?:\n|)(?:|)gine +du +fonds :(?: +|)<\/i>(.*)/Uis', $tabAnnonces[$idann]['balises'], $matches)) { $vente_montant=0;$vente_devise=''; $strTmp=trim(str_replace("\n",' ', $matches[1])); if (preg_match("/(.*)prix([\D]*)([0-9\.,\s]*)([\D]*)/i", $strTmp, $tabTmp) || preg_match("/(.*)montant([\D]*)([0-9\.,\s]*)([\D]*)/i", $strTmp, $tabTmp) || preg_match("/(.*)(é|e)valu([\D]*)([0-9\.,\s]*)([\D]*)/i", $strTmp, $tabTmp) || preg_match("/(.*)(é|e)stim([\D]*)([0-9\.,\s]*)([\D]*)/i", $strTmp, $tabTmp)) { $vente_montant=str_replace(' ','', str_replace(',','.',$tabTmp[3])); $vente_devise =trim($tabTmp[4]); } elseif (preg_match("/(.*)ind(.)mni([\D]*)([0-9\.,\s]*)([\D]*)/i", $strTmp, $tabTmp)) { $vente_montant=str_replace(' ','', str_replace(',','.',$tabTmp[4])); $vente_devise =trim($tabTmp[5]); } if ( preg_match("/eur/i", $vente_devise) && !preg_match("/(wir|suisse|che)/i",$vente_devise) ) $vente_devise='EURO'; $devise=strtoupper(trim(str_replace('de ', '', str_replace('d\'', '', $vente_devise)))); if ($devise<>'') { if ($vente_montant*1<>0 && !$iBodacc->isDeviseBodacc($devise)) { echo ("ERREUR : Annonce $idann, devise de la vente inconnue = '$devise' (montant = $vente_montant) !".EOL.$texte.EOL); echo 'SIREN ............. '.implode(';',$tabAnnonces[$idann]['data']['siren']).EOL; echo 'Raison Sociale .... '.implode(';',$tabAnnonces[$idann]['data']['raisonSociale']).EOL; echo 'RC ................ '.implode(';',$tabAnnonces[$idann]['data']['RC']).EOL; echo 'Forme Juridique ... '.implode(';',$tabAnnonces[$idann]['data']['FJ']).EOL; echo chr(7); /** @todo Gérer les devises dont le nom peut être commun à plusieurs pays : ** DINARS DIRHAM DOLLARS COURONNES FRANC CFA ROUPIE LEU **/ if ($noQuestion) { die("Devise '$devise' inconnue !"); } else { while(true){ echo 'Saisir la devise pour "'.$devise.'" (0 pour ne rien saisir) ?'.EOL; $saisie = trim(strtoupper(fgets(STDIN))); if (strlen($saisie)==3) { echo 'Insertion de la devise en base'.EOL; if (!$iBodacc->addDeviseBodacc($devise, $saisie) && mysql_errno()<>1062) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations de chargement en base impossible :".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); die(); } $vente_devise=$saisie; break; } elseif (strlen($saisie)==1 && $saisie=='0') { $vente_devise='??'; break; } } } } else $vente_devise=$iBodacc->getDeviseBodacc($devise); } else $vente_devise='?'; if ($familleTxt=='Créations d\'établissements') { /* $tabActesCategorie[$typeActe][]=$categorieCreation; $codeEven=$iBodacc->getCodeNatureEvenement($categorieCreation); if ($codeEven==0) { echo date ('Y/m/d - H:i:s')." - ERREUR : Nature de creation '$categorieCreation' inconnue pour l'annonce $idann !".EOL; die(); $fpJ=fopen('/var/www/log/newCreations.log','a'); fwrite($fpJ, 'md5("'.$categorieCreation.'")=>4999,'); fclose($fpJ);*/ $codeEven=4999; //} $tabAnnonces[$idann]['data']['typeCreation']=explode(';',$codeEven); } elseif ($familleTxt=='Immatriculations') { /* $tabActesCategorie[$typeActe][]=$categorieImmatriculation; $codeEven=$iBodacc->getCodeNatureEvenement($categorieImmatriculation); if ($codeEven==0 && $categorieImmatriculation<>'') { echo date ('Y/m/d - H:i:s')." - ERREUR : Nature d\'immatriculation '$categorieImmatriculation' inconnue pour l'annonce $idann !".EOL; die(); $fpJ=fopen('/var/www/log/newImmatriculations.log','a'); fwrite($fpJ, 'md5("'.$categorieImmatriculation.'")=>4999,'); fclose($fpJ); $codeEven=4999; } elseif ($codeEven==0 && $categorieImmatriculation=='') { // Gestion d'une annomalie du Bodacc*/ $codeEven=4000; //} $tabAnnonces[$idann]['data']['typeCreation']=explode(';',$codeEven); } //ICICREA// if ( !isset($tabAnnonces[$idann]['data']['typeVente']) || !is_array($tabAnnonces[$idann]['data']['typeVente']) ) $tabAnnonces[$idann]['data']['typeVente']=array(); $bienAcqui=trim(preg_replace("/ acqui(.*)/i", '', $strTmp)); if (preg_match("/(e|é)tablissement principal/i", $bienAcqui)) // Etablissement principal $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5000)); elseif (preg_match("/(e|é)tablissement secondaire/i", $bienAcqui)) // Etablissement secondaire $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5001)); elseif (preg_match("/(e|é)tablissement compl(é|e)mentaire/i", $bienAcqui)) // Etablissement complémentaire $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5002)); elseif (preg_match("/(e|é)tablissements?(.*)et(.*)(e|é)tablissement/i", $bienAcqui)) // Plusieurs établissements $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5004)); elseif (preg_match("/(e|é)tablissements/i", $bienAcqui)) // Plusieurs établissements $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5004)); elseif (preg_match("/(e|é)tablissement/i", $bienAcqui)) // Etablissement $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5003)); if (preg_match("/Partie d(e|u) fonds/i", $bienAcqui)) // Partie de fonds $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5105)); elseif (preg_match("/Fonds.{0,2}principal/i", $bienAcqui)) // Fonds principal $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5100)); elseif (preg_match("/Fonds.{0,2}secondaire/i", $bienAcqui)) // Fonds secondaire $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5101)); elseif (preg_match("/Fonds.{0,2}compl(é|e)mentaire/i", $bienAcqui)) // Fonds complémentaire $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5102)); elseif (preg_match("/Fonds.{0,2}artisanal/i", $bienAcqui)) // Fonds artisanal $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5104)); elseif (preg_match("/Fonds/i", $bienAcqui)) // Fonds $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5103)); if (preg_match("/4(e|ème|eme) cat(é|e)gorie/i", $bienAcqui) || preg_match("/cat(é|e)gorie 4/i", $bienAcqui) || preg_match("/Licence (IV|4)/i", $bienAcqui)) // Licence de débit de boissons de 4e catégorie $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5205)); if (preg_match("/Droit au bail/i", $bienAcqui)) // Droit au bail $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5203)); if (preg_match("/(Branche|Partie) (compl.te )(d.activit)/i", $bienAcqui) || preg_match("/branche.{1,10}activit/i", $bienAcqui)) // Branche ou Partie d'activité $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5200)); if (preg_match("/Portefeuille.{1,19}assurances/i", $bienAcqui)) // Portefeuille d'assurances $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5206)); elseif (preg_match("/Clientèle/i", $bienAcqui)) // Clientèle $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5201)); if (preg_match("/(e|é)l(e|é)ments incorporels/i", $bienAcqui)) // Eléments incorporels $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5204)); elseif (preg_match("/(e|é)l(e|é)ments/i", $bienAcqui)) // Divers éléments $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5202)); if (preg_match("/pr.c.demment exploit. en location.g.rance/i", $bienAcqui)) // Bien précédemment exploité en location-gérance $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5400)); if (preg_match("/Moiti(e|é) indivise/i", $bienAcqui)) // Bien en moitié indivise $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5350)); elseif (preg_match("/ indivise? /i", $bienAcqui)) // Bien en % indivise $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5351)); if (preg_match("/d.pendant de l.(é|e)tablissement principal/i", $bienAcqui) || preg_match("/d.pendant d(u|es) fonds principal/i", $bienAcqui)) // Bien dépendant de l'établissement ou fonds principal $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5300)); elseif (preg_match("/d.pendant de l.(é|e)tablissement secondaire/i", $bienAcqui) || preg_match("/d.pendant d(u|es) fonds principal/i", $bienAcqui)) // Bien dépendant de l'établissement ou fonds secondaire $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5301)); elseif (preg_match("/d.pendant de l.(é|e)tablissement compl.mentaire/i", $bienAcqui) || preg_match("/d.pendant d(u|es) fonds principal/i", $bienAcqui)) // Bien dépendant de l'établissement ou fonds complé. $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5302)); elseif (preg_match("/d.pendant de l.(é|e)tablissement/i", $bienAcqui) || preg_match("/d.pendant d(u|es) fonds/i", $bienAcqui)) // Bien dépendant de l'établissement ou fonds $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5303)); $tabAnnonces[$idann]['data']['Vente']=array('Montant'=>$vente_montant, 'Devise'=>$vente_devise, 'Perimetre'=>trim($tabTmp[0]), 'bienAcqui'=>$bienAcqui); } /** OPPOSITIONS **/ if (preg_match('/Op(?:\-<\/i>|)(?:\n|)(?:|)po(?:\-<\/i>|)(?:\n|)(?:|)si(?:\-<\/i>|)(?:\n|)(?:|)tions :(?: +|)<\/i>(.*)/Uis', $tabAnnonces[$idann]['balises'], $matches)) { $strTmp=trim($matches[1]); $tabAnnonces[$idann]['data']['oppositions']=trim($strTmp); } /** PUBLICATION LEGALE **/ if (preg_match('/Publi(?:\-<\/i>|)(?:\n|)(?:|)ca(?:\-<\/i>|)(?:\n|)(?:|)tion lé(?:\-<\/i>|)(?:\n|)(?:|)gale :(?: +|)<\/i>(.*)$/Uis', $tabAnnonces[$idann]['balises'], $matches)) { $strPublication=str_replace('?', "'", trim(preg_replace('/ +/',' ', strip_tags($matches[1])))); $tabAnnonces[$idann]['data']['publication']=$strPublication; if(preg_match("/(.*) (du|des) ([0-9]{1,2}|1er) (janvier|février|fevrier|mars|avril|mai|juin|juillet|aout|août|septembre|octobre|novembre|décembre|decembre) ([0-9]{2,4})/i", $strPublication, $tabTmp)) { $tabAnnonces[$idann]['data']['publicationNom']=$tabTmp[1]; $tabAnnonces[$idann]['data']['publicationDate']=WDate::dateT('dMY', 'Ymd', $tabTmp[3].$tabTmp[4].$tabTmp[5]); } } /** DATE DE COMMENCEMENT D'ACTIVITE **/ if (preg_match('/Date +de +com(?:\-<\/i>|)(?:\n|)(?:|)men(?:\-<\/i>|)(?:\n|)(?:|)ce(?:\-<\/i>|)(?:\n|)(?:|)ment +d.acti(?:\-<\/i>|)(?:\n|)(?:|)vité :(?: +|)<\/i>(.*)/Uis', $tabAnnonces[$idann]['balises'], $matches)) { $datEvenement=strtr($matches[1], array("\n"=>'', ' '=>'', '.'=>'')); //die($datEvenement); $tabAnnonces[$idann]['data']['dateDebutActivite']=WDate::dateT('dMY', 'Ymd', $datEvenement); } print_r($tabAnnonces[$idann]); //$saisie = trim(strtoupper(fgets(STDIN))); /*echo "$bodaccNumPar;$bodaccAnneePar;$pageCourante;$bodaccDepLib;$tribunalCode;$familleTxt;$bodaccNumAnnPre;".preg_replace('/ +/',' ',strtr($annonceTxtPre, array(';'=>',',"\n"=>' ','?'=>"'"))).EOL;//$annonceBrute */ } } elseif (preg_match('/^LISTE ALPHABÉTIQUE<\/b>$/i',$ligne)) { /** Dernière annonce repérée **/ $tabFichiers[$nomFichier]['Num_Annonce_Fin']=$bodaccNumAnn; //echo "$bodaccNumPar;$bodaccAnneePar;$pageCourante;$bodaccDepLib;$tribunalCode;$familleTxt;$bodaccNumAnn;".preg_replace('/ +/',' ',strtr($annonceTxt, array(';'=>',',"\n"=>' ','?'=>"'"))).EOL;//$annonceBrute $idann=''.$bodaccAnneePar.'-'.$bodaccNumPar.'-'.$bodaccNumAnn; $tabAnnonces[$idann]['Bodacc_Date_Parution']=$dateBodacc; $tabAnnonces[$idann]['Num_Annonce']=$bodaccNumAnn; $tabAnnonces[$idann]['Bodacc_Code']=$bodaccType; $tabAnnonces[$idann]['Bodacc_Annee_Parution']=$bodaccAnneePar; $tabAnnonces[$idann]['Bodacc_Num']=$bodaccNum; // $tabAnnonces[$idann]['Bodacc_NOJO']=NULL; $tabAnnonces[$idann]['Bodacc_Page']=$pageCourante; /* $tabAnnonces[$idann]['typeAnnonce']='Insertion'; $tabAnnonces[$idann]['corrNum_Annonce']=NULL; $tabAnnonces[$idann]['corrBodacc_Date_Parution']=NULL; $tabAnnonces[$idann]['corrPage']=NULL; $tabAnnonces[$idann]['corrNumParution']=NULL; $tabAnnonces[$idann]['corrTexteRectificatif']=NULL; */ $tabAnnonces[$idann]['Tribunal_Dept']=$bodaccDepNum; $tabAnnonces[$idann]['Tribunal_Code']=$tribunalCode; $tabAnnonces[$idann]['Rubrique_Bodacc']=$familleTxt; //$tabAnnonces[$idann]['data']=array(); $tabAnnonces[$idann]['annonce']=trim(preg_replace('/ +/',' ',strtr(strip_tags($annonceTxt), array(';'=>',',"\n"=>' ','?'=>"'")))); // $tabAnnonces[$idann]['balises']=trim($annonceTxt); break; } elseif (preg_match('/^(.*)<\/b>$/i',$ligne, $matches)) { $matche=trim($matches[1]); if (preg_match('/^Cr.ations d..tablissements$/i',$matche)) { $familleTxt='Créations d\'établissements'; $tabAnnonces[$idann]['Rubrique_Bodacc']='A126'; } elseif (preg_match('/^Immatriculations$/i',$matche)) { $familleTxt='Immatriculations'; $tabAnnonces[$idann]['Rubrique_Bodacc']='A108'; } elseif (preg_match('/^Ventes et cessions$/i',$matche)) { $familleTxt='Ventes et cessions'; $tabAnnonces[$idann]['Rubrique_Bodacc']='A125'; } elseif (preg_match('/^Avis de d.p.t$/i',$matche)) $familleTxt='Avis de dépôt'; elseif (preg_match('/^Jugement d.ouverture$/i',$matche)) $familleTxt='Jugement d?ouverture'; elseif (preg_match('/^Jugement pronon.ant$/i',$matche)) $familleTxt='Jugement prononçant'; elseif (preg_match('/^Jugement de cl.ture$/i',$matche)) $familleTxt='Jugement de clôture'; elseif (preg_match('/^Arr.t de la Cour d.appel$/i',$matche)) $familleTxt='Arrêt de la Cour d\'appel'; elseif (preg_match('/^Extrait de jugement$/i',$matche)) $familleTxt='Extrait de jugement'; elseif ($matche=='Modifications et mutations diverses') $familleTxt='Modifications et mutations diverses'; elseif ($matche=='Radiations') $familleTxt='Radiations'; //else { //if (strtoupper($familleTxt)<>$familleTxt) { //$familleTxt='?'; elseif (strtoupper($familleTxt)<>$familleTxt) $tabFamilles[]=$matche; //} } else $annonceTxt.=$ligne; //echo $ligne.EOL; } $tabFichiers[$nomFichier]['Bodacc_Date_Parution']=$dateBodacc; $tabFichiers[$nomFichier]['Bodacc_Date_Parution_Texte']=$dateBodaccTxt; $tabFic=$tabFichiers[$nomFichier]; $tabFic['NomFichier']=$nomFichier; if (!isset($tabFic['dateDownload'])) $tabFic['dateDownload']=date('Y-m-d H:i:s', filemtime(BODACC_LOCAL_DIR . $nomFichier)); if (!$forceDateInsertABodacc) $dateInsert=date('Y-m-d H:i:s'); else $dateInsert=$tabFic['dateDownload']; $tabFic['dateInsert']=$dateInsert; print_r($tabAnnonces); //print_r($tabAnnonces[$idann]); /********************************************************************/ /** FIN FORMAT .pdf **/ /********************************************************************/ die(); continue; } else { echo(date ('Y/m/d - H:i:s')." - ATTENTION : Format $typeFichier inconnu pour le fichier $nomFichier !".EOL); die(); } /** Contrôles de cohérence SIREN / Raison Sociales en base **/ echo date ('Y/m/d - H:i:s')." - $strTypeJo $bodaccAnneePar-$bodaccNumPar du $dateBodacc : Contrôles des SIREN / Raisons Sociales...".EOL; $iRncs=new MRncs(); $nbSirenAdupliquer=$nbSirenAvalider=$nbSirenVides=$nbSirenTotaux=$nbNicAvalider=$nbNicAuto=0; $nbAnnTab=count($tabAnnonces); foreach ($tabAnnonces as $idann=>$tabAnn) { if ($tabAnn['Bodacc_Code']<>'ASSO' && $tabAnn['Bodacc_Code']<>'BOMP A' && $tabAnn['Bodacc_Code']<>'BOMP B' && $tabAnn['Bodacc_Code']<>'BOMP C' && $tabAnn['Bodacc_Code']<>'MAPA') { $tabData=$tabAnn['data']; foreach ($tabData['raisonSociale'] as $n => $raisonSociale) { $raisonSocialeOri=$raisonSociale; $nbSirenTotaux++; $resirener=false; if ($tabData['sirenValide'][$n]) { $siren=$tabData['siren'][$n]; $tabIdI=$iInsee->getIdentiteLight($siren); if ($tabIdI['Nom']=='') { // echo '['.$tabAnn['Bodacc_Date_Parution'].' '.$tabAnn['Bodacc_Num']."] $n, $siren valide (".$tabData['adresseCP'][$n].'/'.$tabData['adresseSiegeCP'][$n].") $raisonSociale (absent de l'INSEE).".EOL; // Le siren est absent de l'INSEE (mais valide), il faudrait dupliquer l'annonce car il doit y avoir un autre siren ! //$resirener=true; $tabAnnonces[$idann]['data']['dupliquer'][$n]=1; $nbSirenAdupliquer++; } else { $raisonSociale =trim(strtoupper(trimAccent(strtr($raisonSociale, array('/'=>' ','*'=>' ','('=>'', ')'=>'', '.'=>'', '-'=>'', "Nom d'usage"=>'', 'Pseudonyme'=>'', "'"=>'', ':'=>'',' Né '=>' ',' Née '=>' ','/ACHE/'=>' ','Précédent propriétaire'=>' '))))); $raisonSociale=strtr($raisonSociale, array('SOCIETE EN LIQUIDATION'=>'', 'EN LIQUIDATION'=>'', 'SOCIETE A RESPONSABILITE LIMITEE'=>'SARL','DENOMINATION'=>'', 'SUCCESSION'=>'')); $raisonSocialeI=trim(strtoupper(strtr(trimAccent($tabIdI['Nom']), array('/'=>' ','*'=>' ','('=>'', ')'=>'', '.'=>'', '-'=>'', "Nom d'usage"=>'', "'"=>'', ':'=>'')))); $len =strlen($raisonSociale); $tabMots=preg_split('/ +/', $raisonSociale); $mots=count($tabMots); $levI=levenshtein(str_replace(' ','',$raisonSociale),str_replace(' ','',$raisonSocialeI)); $delI=$levI/$len; //$difT=$len-$lenI; $lenI=strlen($raisonSocialeI); $tabMotsI=preg_split('/ +/', $raisonSocialeI); $motsI=count(array_diff($tabMots,$tabMotsI)); $diffI=$motsI/$mots; if ($delI>=0.5 && $diffI>0.5) { $tabIdR=$iRncs->getInfosEntrep($siren); if (@$tabIdR['raisonSociale']=='') { //echo '['.$tabAnn['Bodacc_Date_Parution'].' '.$tabAnn['Bodacc_Num']."] $n, $siren valide (".$tabData['adresseCP'][$n].'/'.$tabData['adresseSiegeCP'][$n].") $raisonSociale (absent du RNCS).".EOL; $resirener=true; } else { $raisonSocialeR=trim(strtoupper(strtr(trimAccent($tabIdR['raisonSociale']), array('/'=>' ','*'=>' ','('=>'', ')'=>'', '.'=>'', '-'=>'', "Nom d'usage"=>'', "'"=>'', ':'=>'')))); $levR=levenshtein(str_replace(' ','',$raisonSociale),str_replace(' ','',$raisonSocialeR)); $delR=$levR/$len; $tabMotsR=preg_split('/ +/', $raisonSocialeR); $motsR=count(array_diff($tabMots,$tabMotsR)); $diffR=$motsR/$mots; if ($delR>0.5 && $diffR>0.5) $resirener=true; } } /*if ($resirener) { print_r($tabIdI); echo '['.$tabAnn['Bodacc_Date_Parution'].' '.$tabAnn['Bodacc_Num']."] $n, $siren valide (".$tabData['adresseCP'][$n].'/'.$tabData['adresseSiegeCP'][$n].") $raisonSociale, INSEE : $raisonSocialeI ($levI,$delI,$diffI)".EOL; echo '['.$tabAnn['Bodacc_Date_Parution'].' '.$tabAnn['Bodacc_Num']."] $n, $siren valide (".$tabData['adresseCP'][$n].'/'.$tabData['adresseSiegeCP'][$n].") $raisonSociale, INPI : $raisonSocialeR ($levR,$delR,$diffR)".EOL; }*/ } // Il faut resirener la fiche annonce ! if ($resirener) { $nbSirenAvalider++; $tabAnnonces[$idann]['data']['sirenValide'][$n]=0; } elseif ($tabAnn['Bodacc_Code']<>'C') { $tabEt=$iInsee->getEtablissements($siren); if ($tabEt['nbReponsesTotal']==1) { // 1 seul établissement connu : on le valide en auto @todo : Vérifier adresser $tabAnnonces[$idann]['data']['nic'][$n]=$tabEt['reponses'][0]['Nic']; $tabAnnonces[$idann]['data']['nicValide'][$n]=3; $nbNicAuto++; } elseif ($tabEt['nbReponsesTotal']==0) { // Aucun établissement connu : à resirener $nbNicAvalider++; $tabAnnonces[$idann]['data']['sirenValide'][$n]=0; } else { $nicTrouve=$nbNic=0; //$tabAdr=$iInsee->structureVoie($tabData['adresseVoie'][$n]); foreach ($tabEt['reponses'] as $iEt=>$tabIdEt) { //echo EOL."On recherche $siren : $raisonSociale à ". // $tabData['adresseVoie'][0].', '.$tabData['adresseCP'][0].' '.$tabData['adresseVille'][0].EOL; $cpDem=$tabData['adresseCP'][0]*1; $numDem=explode(' ', trim($tabData['adresseVoie'][0])); $numDem=$numDem[0]*1; if ($numDem==0) continue; //echo 'On trouve .. '. $tabIdEt['Nic'].' à '.$tabIdEt['Adresse'].', '.$tabIdEt['Adresse2'].', '.$tabIdEt['CP'].' '.$tabIdEt['Ville']; $cpRec=$tabIdEt['CP']*1; $numRec=substr($tabIdEt['Adresse'],0,4)*1; $cpRec=$tabData['adresseCP'][0]*1; $numRec=explode(' ', trim($tabData['adresseVoie'][0])); $numRec=$numRec[0]*1; if ($numRec==0) continue; if ($numDem==$numRec && $cpDem==$cpRec) { $nicTrouve=$tabIdEt['Nic']; $nbNic++; } } if ($nbNic==1) { $tabAnnonces[$idann]['data']['nic'][$n]=$nicTrouve; $tabAnnonces[$idann]['data']['nicValide'][$n]=4; $nbNicAuto++; } else { // Si nous sommes sur une annonce relative à un établissement alors on demande à resiretiser $typeEven=@array_merge($tabData['typeCreation'],$tabData['typeVente'],array($tabData['typeRadiation']),$tabData['typeMMD']); if (is_array($typeEven)) { foreach ($typeEven as $iEven) { if ($iBodacc->isEvenementEtab($iEven)) { $tabAnnonces[$idann]['data']['sirenValide'][$n]=0; $nbNicAvalider++; break; } } } } } } } else { $nbSirenVides++; //echo '['.$tabAnn['Bodacc_Date_Parution'].' '.$tabAnn['Bodacc_Num']."] $n, $siren INVALIDE (".$tabData['adresseCP'][$n].'/'.$tabData['adresseSiegeCP'][$n].") $raisonSociale.".EOL; } } } if ($modeDebug) echo date ('Y/m/d - H:i:s')." - $strTypeJo $bodaccAnneePar-$bodaccNumPar du $dateBodacc - annonce n°$idann/$nbAnnTab : $nbSirenVides siren absents, $nbSirenAvalider à valider, $nbNicAvalider NIC à valider, $nbNicAuto NIC trouvés et $nbSirenAdupliquer annonces à dupliquer sur $nbAnn annonces ($nbSirenTotaux fiches).".EOL; } if ($tabAnn['Bodacc_Code']<>'ASSO' && $tabAnn['Bodacc_Code']<>'BOMP A' && $tabAnn['Bodacc_Code']<>'BOMP B' && $tabAnn['Bodacc_Code']<>'BOMP C' && $tabAnn['Bodacc_Code']<>'MAPA') { $nbAnn=end(explode('-',$idann))*1; echo date ('Y/m/d - H:i:s')." - $strTypeJo $bodaccAnneePar-$bodaccNumPar du $dateBodacc validé : $nbSirenVides siren absents, $nbSirenAvalider à valider, $nbNicAvalider NIC à valider, $nbNicAuto NIC trouvés et $nbSirenAdupliquer annonces à dupliquer sur $nbAnn annonces ($nbSirenTotaux fiches).".EOL; $strMailInfo.=date ('Y/m/d - H:i:s')." - $strTypeJo $bodaccAnneePar-$bodaccNumPar du $dateBodacc validé : $nbSirenVides siren absents, $nbSirenAvalider à valider, $nbNicAvalider NIC à valider, $nbNicAuto NIC trouvés et $nbSirenAdupliquer annonces à dupliquer sur $nbAnn annonces ($nbSirenTotaux fiches).".EOL; } else { if ($tabAnn['Bodacc_Code']=='MAPA') $nbAnn=count($tabAnnonces); else $nbAnn=end(explode('-',$idann))*1; echo date ('Y/m/d - H:i:s')." - $strTypeJo $bodaccAnneePar-$bodaccNumPar du $dateBodacc validé : $nbAnn annonces.".EOL; $strMailInfo.=date ('Y/m/d - H:i:s')." - $strTypeJo $bodaccAnneePar-$bodaccNumPar du $dateBodacc validé : $nbAnn annonces.".EOL; } //if ($tabFic['taille']==0) $tabFic['taille']=filesize(BODACC_LOCAL_DIR . $nomFichier); if (!$reload) { $ret=$iDb->insert('chargements', $tabFic); if (!$ret) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations de chargement en base impossible :".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); print_r($tabFic); die(); } else { echo date ('Y/m/d - H:i:s')." - $strTypeJo $bodaccAnneePar-$bodaccNumPar du $dateBodacc en cours de chargement par catégories...".EOL; $strMailInfo.=date ('Y/m/d - H:i:s')." - $strTypeJo $bodaccAnneePar-$bodaccNumPar du $dateBodacc en cours de chargement par catégories...".EOL; } //print_r($tabFic); } else echo date ('Y/m/d - H:i:s')." - $strTypeJo $bodaccAnneePar-$bodaccNumPar du $dateBodacc en cours de re-chargement par catégories...".EOL; //print_r($tabAnnonces); $idAnn0=true; $idAnnRetDeb=false; // Id de la première annonce BOAMP chargée ! foreach ($tabAnnonces as $idAnn => $tabAnn) { if ($tabAnn['Bodacc_Code']=='ASSO') { /** Insertion des annonces du JO AFE (Associations) **/ $tabInsert=array( 'Assoc_Nom' => $tabAnn['data']['Assoc_Nom'], 'Waldec' => $tabAnn['data']['Waldec'], 'Activite' => '', 'codThemes' => implode(';', $tabAnn['themes']), 'Num_Annonce' => $tabAnn['Num_Annonce'], 'Date_Parution' => $tabAnn['Bodacc_Date_Parution'], 'Num_Parution' => $tabAnn['Bodacc_Num'], 'pageDeb' => $tabAnn['data']['pageDeb'], 'Departement' => $tabAnn['data']['Departement'], 'Sous_Prefecture' => $tabAnn['Sous_Prefecture'], 'codTribunal' => $tabAnn['Tribunal_Code'], 'Type_Annonce' => $tabAnn['Type_Annonce'], 'typeAnnonce' => $tabAnn['typeAnnonce'], 'typeAsso' => $tabAnn['typeAsso'], 'corrNum_Annonce' => $tabAnn['corrNum_Annonce'], 'corrDate_Parution' => $tabAnn['corrDate_Parution'], 'corrPage' => $tabAnn['corrPage'], 'corrNumParution' => $tabAnn['corrNumParution'], 'codEven' => implode(';', $tabAnn['codEven']), 'Annonce_Html' => $tabAnn['data']['Annonce_Html'], 'Assoc_Web' => $tabAnn['data']['Assoc_Web'], 'Assoc_Mail' => $tabAnn['data']['Assoc_Mail'], 'Assoc_Objet' => $tabAnn['data']['Assoc_Objet'], 'Assoc_Adresse' => $tabAnn['data']['Assoc_Adresse'], 'Assoc_AdrNum' => $tabAnn['data']['Assoc_AdrNum'], 'Assoc_AdrIndRep' => $tabAnn['data']['Assoc_AdrIndRep'], 'Assoc_AdrTypVoie' => $tabAnn['data']['Assoc_AdrTypVoie'], 'Assoc_AdrLibVoie' => $tabAnn['data']['Assoc_AdrLibVoie'], 'Assoc_AdrCP' => $tabAnn['data']['Assoc_AdrCP'], 'Assoc_AdrVille' => $tabAnn['data']['Assoc_AdrVille'], 'Assoc_AdrComp' => $tabAnn['data']['Assoc_AdrComp'], 'Assoc_NObjet' => $tabAnn['data']['Assoc_NObjet'], 'Assoc_AObjet' => $tabAnn['data']['Assoc_AObjet'], 'Assoc_NAdresse' => '', 'Assoc_Fusion' => $tabAnn['data']['Assoc_Fusion'], 'Assoc_Annulation' => $tabAnn['data']['Assoc_Annulation'], 'Assoc_ANom' => $tabAnn['data']['Assoc_ANom'], 'Assoc_NNom' => $tabAnn['data']['Assoc_NNom'], 'Assoc_Commentaire' => $tabAnn['data']['Assoc_Commentaire'], 'Assoc_Date_Declaration'=> $tabAnn['data']['Assoc_Date_Declaration'], 'Assoc_Date_Declaration2'=>$tabAnn['data']['Assoc_Date_Declaration2'], 'dateInsert' => $dateInsert, ); $idTxtUnique=trim(strtoupper(preg_replace('/[^a-z0-9]/i', '', $tabInsert['Assoc_Nom'].$tabInsert['Assoc_Adresse']))); if ($idTxtUnique<>'') $tabInsert['idTxtUnique'] = $idTxtUnique; $idAnnRet=$iDb->insert('asso', $tabInsert); if (!$idAnnRet) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion en base de l'annonce texte du Bodacc impossible :".EOL; echo date ('Y/m/d - H:i:s')." - Description : ". mysql_error().EOL; print_r($tabInsert); die(); } $copieWaldec=true; } elseif ($tabAnn['Bodacc_Code']=='BOMP A' || $tabAnn['Bodacc_Code']=='BOMP B' || $tabAnn['Bodacc_Code']=='BOMP C' || $tabAnn['Bodacc_Code']=='MAPA') { /** Insertion des Annonces de Marchés Publics **/ $tabInsert=$tabAnn; $tabInsert['Boamp_Date_Parution'] = $tabAnn['Bodacc_Date_Parution']; $tabInsert['Boamp_Code'] = $tabAnn['Bodacc_Code']; $tabInsert['Boamp_Annee_Parution'] = $tabAnn['Bodacc_Annee_Parution']; $tabInsert['Boamp_Num'] = $tabAnn['Bodacc_Num']; $tabInsert['Boamp_Nojo'] = $tabAnn['Bodacc_Nojo']; if (file_exists(BODACC_LOCAL_DIR.'tmp/'.$tabAnn['annonce'])) $tabInsert['annonce'] = trim(file_get_contents(BODACC_LOCAL_DIR.'tmp/'.$tabAnn['annonce'])); elseif (file_exists(BODACC_LOCAL_DIR.'tmp/'.strtoupper($tabAnn['annonce']))) $tabInsert['annonce'] = trim(file_get_contents(BODACC_LOCAL_DIR.'tmp/'.strtoupper($tabAnn['annonce']))); else { echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible d'ouvrir le fichier Html de l'annonce Boamp '$idAnn' : ".BODACC_LOCAL_DIR.'tmp/'.$tabAnn['annonce'].EOL; $tabInsert['annonce'] = ''; } unset($tabInsert['Bodacc_Date_Parution']); unset($tabInsert['Bodacc_Code']); unset($tabInsert['Bodacc_Annee_Parution']); unset($tabInsert['Bodacc_Num']); unset($tabInsert['Bodacc_Nojo']); unset($tabInsert['data']); $tabInsert['dateInsert'] = $dateInsert; $tabData=$tabAnn['data']; $idAnnRet=$iDb->insert('boamp', $tabInsert); if (!$idAnnRetDeb) $idAnnRetDeb=$idAnnRet; echo mysql_error(); //print_r($tabInsert); //die(); if (!$idAnnRet) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion en base de l'annonce texte $idAnn du Boamp impossible :".EOL; echo date ('Y/m/d - H:i:s')." - Description : ". mysql_error().EOL; //print_r($tabInsert); die(); } if ($idAnn0) { /** Sauvegarde des nouveaux codes descripteurs et classes **/ foreach ($tabDescripteurs as $descripteur) $iDb->insert('boamp_desc', array('descripteur'=>$descripteur)); foreach ($tabClasses as $classe) $iDb->insert('boamp_classes', array('classe'=>$classe)); $idAnn0=false; /** Chargement de tous les descripteurs et classes présent en base avec leur code associé **/ $tabDescripteurs=$tabClasses=array(); $tabTmp=$iDb->select('boamp_desc', 'id, descripteur', '1', false, MYSQL_ASSOC); foreach ($tabTmp as $tabTmp2) $tabDescripteurs[$tabTmp2['descripteur']]=$tabTmp2['id']; $tabTmp=$iDb->select('boamp_classes', 'id, classe', '1', false, MYSQL_ASSOC); foreach ($tabTmp as $tabTmp2) $tabClasses[$tabTmp2['classe']]=$tabTmp2['id']; } $tabInsert=@array_merge($tabInsert, $tabData,$tabData['acheteurs'][0]); /** Formatage des publications **/ if (isset($tabData['publications']) && count($tabData['publications'])>0) foreach ($tabData['publications'] as $iPub=>$tabPub) { $tabInsert['parutionPar'.$iPub] = $tabPub['parution']; $tabInsert['annoncePar'.$iPub] = $tabPub['annonce']; $tabInsert['datePar'.$iPub] = $tabPub['date']; $tabInsert['autresPar'.$iPub] = $tabPub['autres']; } /** Insertion de l'annonce détaillée **/ unset($tabInsert['publications']); unset($tabInsert['lots']); unset($tabInsert['classes']); unset($tabInsert['descripteurs']); unset($tabInsert['acheteurs']); unset($tabInsert['correspondants']); unset($tabInsert['annonce']); unset($tabInsert['balises']); unset($tabInsert['Boamp_Nojo']); unset($tabInsert['Rappel_Dep']); unset($tabInsert['Rappel_DepOri']); unset($tabInsert['Doublon']); unset($tabInsert['K1']); unset($tabInsert['K9']); unset($tabInsert['corrNumAnnonce0']); unset($tabInsert['corrNumParution0']); unset($tabInsert['corrTypeParution0']); unset($tabInsert['corrDate0']); unset($tabInsert['corrRub0']); unset($tabInsert['corrTxtIni0']); unset($tabInsert['corrTxtCor0']); unset($tabInsert['corrAdditif0']); unset($tabInsert['corrAutres0']); unset($tabInsert['corrNumAnnonce1']); unset($tabInsert['corrNumParution1']); unset($tabInsert['corrTypeParution1']); unset($tabInsert['corrDate1']); unset($tabInsert['corrRub1']); unset($tabInsert['corrTxtIni1']); unset($tabInsert['corrTxtCor1']); unset($tabInsert['corrAdditif1']); unset($tabInsert['corrAutres1']); $tabInsert['id'] = $idAnnRet; $idTxtUnique=trim(strtoupper(preg_replace('/[^a-z0-9]/i', '', $tabInsert['raisonSociale'].$tabInsert['adresse']. $tabInsert['cp'].$tabInsert['ville']))); if ($idTxtUnique<>'') $tabInsert['idTxtUnique'] = $idTxtUnique; if (!$iDb->insert('boamp_detail', $tabInsert)) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion en base du detail de l'annonce $idAnn ($idAnnRet) du Boamp impossible :".EOL; echo date ('Y/m/d - H:i:s')." - Description : ". mysql_error().EOL; die(print_r($tabInsert)); } $nbInsertAvis++; /** Insertion des correspondants **/ foreach ($tabData['correspondants'] as $iCor=>$tabCor) { $tabInsert=$tabCor; $tabInsert['id'] = $idAnnRet; $tabInsert['idCor'] = $iCor; $tabInsert['Boamp_Code'] = $tabAnn['Bodacc_Code']; $tabInsert['Boamp_Date_Parution'] = $tabAnn['Bodacc_Date_Parution']; $tabInsert['Boamp_Rubrique'] = $tabAnn['Boamp_Rubrique']; $tabInsert['dateInsert'] = $dateInsert; if (!$iDb->insert('boamp_corresp', $tabInsert)) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion en base des correspondants de l'annonce $idAnn ($idAnnRet) du Boamp impossible :".EOL; echo date ('Y/m/d - H:i:s')." - Description : ". mysql_error().EOL; die(); } } /** Insertion des lots **/ foreach ($tabData['lots'] as $iLot=>$tabLot) { if ($tabLot['typeInfoLot']=='') continue; $tabInsert=$tabLot; $tabInsert['idAnn'] = $idAnnRet; $tabInsert['idLot'] = $iLot; $tabInsert['Boamp_Code'] = $tabAnn['Bodacc_Code']; $tabInsert['Boamp_Date_Parution'] = $tabAnn['Bodacc_Date_Parution']; $tabInsert['Boamp_Rubrique'] = $tabAnn['Boamp_Rubrique']; $tabInsert['montantTxt'] = $tabLot['montant']; $idTxtUnique=trim(strtoupper(preg_replace('/[^a-z0-9]/i', '', $tabLot['nom'].$tabLot['adresse'].$tabLot['cp'].$tabLot['ville']))); if ($idTxtUnique<>'') $tabInsert['idTxtUnique'] = $idTxtUnique; $strMontant=preg_replace('/\.(\d\d)(?:\s|\.)/', ',$1', $tabLot['montant']); /*(H.T.) maxi. tranche ferme TTC option tf mini indéfini*/ $tabInsert['montant'] = str_replace(',','.',strtr(preg_replace('/EUR.*/Ui','',$strMontant),array(' '=>'','.'=>'')))*1; $tabInsert['dateInsert'] = $dateInsert; if (!$iDb->insert('boamp_lots', $tabInsert)) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion en base des lots de l'annonce $idAnn ($idAnnRet) du Boamp impossible :".EOL; echo date ('Y/m/d - H:i:s')." - Description : ". mysql_error().EOL; die(); } $nbInsertLots++; } /** Insertion des classes **/ foreach ($tabData['classes'] as $classe) { $tabInsert=array( 'id'=>$idAnnRet, 'lienTable'=>'boamp_classes', 'lienId'=>$tabClasses[$classe]); if (!$iDb->insert('boamp_detail_liens', $tabInsert)) { if (mysql_errno()==1062) continue; echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion en base des classes de l'annonce $idAnn ($idAnnRet) du Boamp impossible :".EOL; echo date ('Y/m/d - H:i:s')." - Description : ". mysql_error().EOL; die(); } } /** Insertion des descripteurs **/ foreach ($tabData['descripteurs'] as $descripteur) { $tabInsert=array( 'id'=>$idAnnRet, 'lienTable'=>'boamp_desc', 'lienId'=>$tabDescripteurs[$descripteur]); if (!$iDb->insert('boamp_detail_liens', $tabInsert)) { if (mysql_errno()==1062) continue; echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion en base des descripteurs de l'annonce $idAnn ($idAnnRet) du Boamp impossible :".EOL; echo date ('Y/m/d - H:i:s')." - Description : ". mysql_error().EOL; die(); } } $copieSirenBoamp=true; } else { /** Insertion des annonces du BODACC **/ // Rajouté le 12 février 2009 afin de traiter la 1ère annonce vide du Bodacc C en TLS $tabTmp=explode('-', $idAnn); $typTmp=substr($tabTmp[1],0,1); if (strlen($tabTmp[1])>4 && $typTmp<>'A' && $typTmp<>'B' && $typTmp<>'C') continue; // Fin rajout du 12 février 2009 /* Tableau listant tous les siren de l'annonce */ //echo "Avant Unset :\n";print_r($tabAnn['siren']); if (isset($tabAnn['siren'])) { $tabSiren=$tabAnn['siren']; } else $tabSiren=false; unset($tabAnn['siren']); //echo "Après Unset :\n";print_r($tabAnn['siren']); // print_r($tabAnn); if (isset($tabAnn['data'])) { $tabData=$tabAnn['data']; unset($tabAnn['data']); } $tabAnn['annonce']=preg_replace("/ +/", ' ',str_replace(' .', '.', str_replace(' ,', ',', str_replace('( ', '(', str_replace(' )', ')', $tabAnn['annonce']))))); $tabAnn['dateInsert']=$dateInsert; if (!$reload) { $idAnnRet=$iDb->insert('bodacc', $tabAnn); if (!$idAnnRet) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion en base de l'annonce texte du Bodacc impossible :".EOL; echo date ('Y/m/d - H:i:s')." - Description : ". mysql_error().EOL; print_r($tabAnn); die(); } } else { unset($tabAnn['dateInsert']); $tabAnn['dateUpdate']=0; $idAnnRet=$iDb->select('bodacc', 'id', "Bodacc_Code='". $tabAnn['Bodacc_Code']."' AND ". "Bodacc_Annee_Parution='". $tabAnn['Bodacc_Annee_Parution']."' AND ". "Bodacc_Num='". $tabAnn['Bodacc_Num']."' AND ". "Num_Annonce='". $tabAnn['Num_Annonce']."'"); $idAnnRet=$idAnnRet[0][0]; if ($idAnnRet==0) { $idAnnRet=$iDb->insert('bodacc', $tabAnn); } else { $idAnnRet=$iDb->update('bodacc', $tabAnn, "Bodacc_Code='". $tabAnn['Bodacc_Code']."' AND ". "Bodacc_Annee_Parution='". $tabAnn['Bodacc_Annee_Parution']."' AND ". "Bodacc_Num='". $tabAnn['Bodacc_Num']."' AND ". "Num_Annonce='". $tabAnn['Num_Annonce']."'"); if ($idAnnRet) { $idAnnRet=$iDb->select('bodacc', 'id', "Bodacc_Code='". $tabAnn['Bodacc_Code']."' AND ". "Bodacc_Annee_Parution='". $tabAnn['Bodacc_Annee_Parution']."' AND ". "Bodacc_Num='". $tabAnn['Bodacc_Num']."' AND ". "Num_Annonce='". $tabAnn['Num_Annonce']."'"); $idAnnRet=$idAnnRet[0][0]; print_r($tabAnn); } } // Pour l'instant le rechargement ne permet que de traiter la table bodacc et les procol de bodac_detail !!! if ( ( /*substr($tabAnn['Rubrique_Bodacc'],0,2)<>'A8' && // PROCEDURES COLLECTIVES substr($tabAnn['Rubrique_Bodacc'],0,2)<>'A2' && // PROCEDURES COLLECTIVES substr($tabAnn['Rubrique_Bodacc'],0,2)<>'A9' &&*/ $tabAnn['Bodacc_Code']<>'A' && $tabAnn['Bodacc_Code']<>'B' && $tabAnn['Bodacc_Code']<>'C' ) ) { print_r($tabAnn); die("Le rechargement ne permet que de traiter la table 'bodacc' et les annonces Bodacc A, B et C de la table 'bodac_detail' !!!"); continue; } } /** Annonces rectificatives **/ if ($tabAnn['typeAnnonce']=='Rectificatif' || $tabAnn['typeAnnonce']=='Suppression') { if (preg_match('/(A|B|C)/i',$tabAnn['corrNumParution'],$matches)) { $corBodaccCode=$matches[1]; $corBodaccNum=strtr($tabAnn['corrNumParution'],array('A'=>'','B'=>'','C'=>'')); $corBodaccAnnee=substr($tabAnn['corrBodacc_Date_Parution'],0,4); if ($corBodaccAnnee<2000 && $corBodaccCode=='C') $corBodaccAnnee=substr($tabAnn['corrBodacc_Date_Parution'],-4); } $idAnnCor=$iDb->select('bodacc', 'id', "Bodacc_Code='$corBodaccCode' AND ". "Bodacc_Annee_Parution='$corBodaccAnnee' AND ". "Bodacc_Num='$corBodaccNum' AND ". "Num_Annonce='". $tabAnn['corrNum_Annonce']."'"); $idAnnCor=@$idAnnCor[0][0]; if ($idAnnCor>0) { if($iDb->update('bodacc_detail', array('dateSuppr'=>$tabAnn['Bodacc_Date_Parution']), "id=$idAnnCor")) { $strTmp=date ('Y/m/d - H:i:s')." - Traitement de l'annonce de '".$tabAnn['typeAnnonce']."' (annonce $idAnnCor) sur le siren ".$tabData['siren'][0]." en base (annonce $idAnnRet) !"; } else $strTmp=date ('Y/m/d - H:i:s')." - IMPOSSIBLE de traiter l'annonce de '".$tabAnn['typeAnnonce']."' (annonce $idAnnCor) sur le siren ".$tabData['siren'][0]." en base (annonce $idAnnRet) !"; } else { $strTmp=date ('Y/m/d - H:i:s')." - IMPOSSIBLE de trouver l'annonce de '".$tabAnn['typeAnnonce']."' num ".$tabAnn['corrNum_Annonce'].' '.$tabAnn['corrNumParution']." parue le ".$tabAnn['corrBodacc_Date_Parution']." sur le siren ".$tabData['siren'][0]." en base (annonce $idAnnRet) !"; /* die(mysql_errno().' - '.mysql_error()." - Bodacc_Code='". $corBodaccCode."' AND ". "Bodacc_Annee_Parution='". substr($tabAnn['corrBodacc_Date_Parution'],0,4)."' AND ". "Bodacc_Num='". $corBodaccNum."' AND ". "Num_Annonce='". $tabAnn['corrNum_Annonce']."'");*/ } echo $strTmp.EOL; $strMailInfo.=$strTmp."\n"; if (strpos($strTmp, 'IMPOSSIBLE')>0) sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Chargement des annonces J.O.', $strTmp); } if ($tabAnn['Bodacc_Code']=='C') { // DEPOT DES COMPTES ANNUELS if ($tabData['comptesAnnu'] && $tabData['comptesConso']) $tabData['evenement']=3100; // Dépôt des comptes annuels & des comptes consolidés elseif ($tabData['comptesAnnu']) $tabData['evenement']=3200; // Dépôt des comptes annuels else $tabData['evenement']=3300; // Dépôt des comptes consolidés $tabAdresseSiege=$iInsee->structureVoie($tabData['adresseSiegeVoie'][0]); $tabAnnC=array( 'id'=>$idAnnRet, 'siren'=>$tabData['siren'][0], 'sirenValide'=>$tabData['sirenValide'][0], //'nic'=>@$tabData['nic'][$n], //'nicValide'=>@$tabData['nicValide'][$n], 'Bodacc_Num'=>$tabAnn['Bodacc_Num'], 'Bodacc_Date_Parution'=>$tabAnn['Bodacc_Date_Parution'], 'Num_Annonce'=>$tabAnn['Num_Annonce'], 'Tribunal_Code'=>$tabAnn['Tribunal_Code'], 'Rubrique_Bodacc'=>$tabAnn['Rubrique_Bodacc'], 'Rubrique'=>'comptes', 'typeAnnonce'=>$tabAnn['typeAnnonce'], 'corrNum_Annonce'=>$tabAnn['corrNum_Annonce'], 'corrBodacc_Date_Parution'=>$tabAnn['corrBodacc_Date_Parution'], 'corrPage'=>$tabAnn['corrPage'], 'corrNumParution'=>$tabAnn['corrNumParution'], 'corrTexteRectificatif'=>$tabAnn['corrTexteRectificatif'], 'RC'=>$tabData['RC'][0], 'raisonSociale'=>@implode('/',$tabData['raisonSociale']), 'FJ'=>$tabData['FJ'][0], 'adresseSiege'=>$tabData['adresseSiegeVoie'][0], 'adrSiegeNum'=>$tabAdresseSiege['num'], 'adrSiegeIndRep'=>$tabAdresseSiege['indRep'], 'adrSiegeTypVoie'=>$tabAdresseSiege['typeVoie'], 'adrSiegeLibVoie'=>$tabAdresseSiege['libVoie'], 'adrSiegeComp1'=>$tabAdresseSiege['adrComp0'], 'adrSiegeComp2'=>$tabAdresseSiege['adrComp1'], 'codePostalSiege'=>$tabData['adresseSiegeCP'][0], 'villeSiege'=>$tabData['adresseSiegeVille'][0], 'dateEffet'=>$tabData['dateCloture'], 'typeEven'=>$tabData['evenement'], 'dateInsert'=>$dateInsert); if ($tabAnn['Rubrique_Bodacc']!='C331') { echo date ('Y/m/d - H:i:s')." - ATTENTION : Provisoirement vérifier l'intégration des rubriques du Bodacc C pour la rubrique ". $tabAnn['Bodacc_Code'] .':'.EOL; print_r($tabAnnC); die(); } //$ret=$iDb->insert('bodacc_comptes', $tabAnnC); if ($tabData['dupliquer'][0] && !$reload) { $tabAnnDup=$tabAnnC; $tabAnnDup['siren']=$tabAnnDup['sirenValide']=0; $iDb->insert('bodacc_detail', $tabAnnDup); } $ret=$iDb->insert('bodacc_detail', $tabAnnC); if (!$ret) { if ($reload && mysql_errno()==1062) { unset($tabAnnC['dateInsert']); $ret=$iDb->update('bodacc_detail', $tabAnnC, "id=$idAnnRet AND siren=".$tabData['siren'][0]); echo date ('Y/m/d - H:i:s')." - Insertion des informations manquantes sur le siren ".$tabData['siren'][0]." en base (annonce $idAnnRet) !".EOL; } else { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations du BODACC C sur le siren $siren en base impossible (annonce $idAnnRet) !".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); print_r($tabAnnC); die(); } } elseif ($reload) echo date ('Y/m/d - H:i:s')." - Chargement de l'annonce manquante : ". $tabAnn['Num_Annonce']. EOL; } // CREATIONS elseif ($tabAnn['Rubrique_Bodacc']=='A103' || $tabAnn['Rubrique_Bodacc']=='A104' || $tabAnn['Rubrique_Bodacc']=='A105' || $tabAnn['Rubrique_Bodacc']=='A106' || $tabAnn['Rubrique_Bodacc']=='A107' || $tabAnn['Rubrique_Bodacc']=='A108' || $tabAnn['Rubrique_Bodacc']=='A109' || $tabAnn['Rubrique_Bodacc']=='A126' || $tabAnn['Rubrique_Bodacc']=='A131') { // CREATIONS $tabAdresse=$iInsee->structureVoie($tabData['adresseVoie'][0]); $tabAdresseSiege=$iInsee->structureVoie($tabData['adresseSiegeVoie'][0]); $tabAnnC=array( 'id'=>$idAnnRet, 'siren'=>$tabData['siren'][0], 'sirenValide'=>$tabData['sirenValide'][0], 'nic'=>@$tabData['nic'][$n], 'nicValide'=>@$tabData['nicValide'][$n], 'Bodacc_Num'=>$tabAnn['Bodacc_Num'], 'Bodacc_Date_Parution'=>$tabAnn['Bodacc_Date_Parution'], 'Num_Annonce'=>$tabAnn['Num_Annonce'], 'Tribunal_Code'=>$tabAnn['Tribunal_Code'], 'Rubrique_Bodacc'=>$tabAnn['Rubrique_Bodacc'], 'Rubrique'=>'creations', 'typeAnnonce'=>$tabAnn['typeAnnonce'], 'corrNum_Annonce'=>$tabAnn['corrNum_Annonce'], 'corrBodacc_Date_Parution'=>$tabAnn['corrBodacc_Date_Parution'], 'corrPage'=>$tabAnn['corrPage'], 'corrNumParution'=>$tabAnn['corrNumParution'], 'corrTexteRectificatif'=>$tabAnn['corrTexteRectificatif'], 'RC'=>$tabData['RC'][0], 'raisonSociale'=>@implode('/',$tabData['raisonSociale']), 'nomCommercial'=>$tabData['nomCommercial'][0], 'enseigne'=>$tabData['enseigne'][0], 'sigle'=>$tabData['sigle'][0], 'nationalite'=>$tabData['nationalite'][0], 'FJ'=>$tabData['FJ'][0], 'Capital'=>$tabData['Capital']['Montant'], 'CapitalDev'=>$tabData['Capital']['Devise'], 'adresse'=>$tabData['adresseVoie'][0], 'adrNum'=>$tabAdresse['num'], 'adrIndRep'=>$tabAdresse['indRep'], 'adrTypVoie'=>$tabAdresse['typeVoie'], 'adrLibVoie'=>$tabAdresse['libVoie'], 'adrComp1'=>$tabAdresse['adrComp0'], 'adrComp2'=>$tabAdresse['adrComp1'], 'codePostal'=>$tabData['adresseCP'][0], 'ville'=>$tabData['adresseVille'][0], 'adresseSiege'=>$tabData['adresseSiegeVoie'][0], 'adrSiegeNum'=>$tabAdresseSiege['num'], 'adrSiegeIndRep'=>$tabAdresseSiege['indRep'], 'adrSiegeTypVoie'=>$tabAdresseSiege['typeVoie'], 'adrSiegeLibVoie'=>$tabAdresseSiege['libVoie'], 'adrSiegeComp1'=>$tabAdresseSiege['adrComp0'], 'adrSiegeComp2'=>$tabAdresseSiege['adrComp1'], 'codePostalSiege'=>$tabData['adresseSiegeCP'][0], 'villeSiege'=>$tabData['adresseSiegeVille'][0], 'administration'=>@implode('.', $tabData['administration']), 'typeEven'=>@implode(';', $tabData['typeCreation']), 'activite'=>$tabData['activite'][0], 'commentaires'=>@implode('; ', $tabData['commentaires']), 'dateDebutActivite'=>$tabData['dateDebutActivite'], 'dateInsert'=>$dateInsert); //$ret=$iDb->insert('bodacc_creations', $tabAnnC); if ($tabData['dupliquer'][0] && !$reload) { $tabAnnDup=$tabAnnC; $tabAnnDup['siren']=$tabAnnDup['sirenValide']=0; $iDb->insert('bodacc_detail', $tabAnnDup); } $ret=$iDb->insert('bodacc_detail', $tabAnnC); if (!$ret){ if ($reload && mysql_errno()==1062) { unset($tabAnnC['dateInsert']); $ret=$iDb->update('bodacc_detail', $tabAnnC, "id=$idAnnRet AND siren=".$tabData['siren'][0]); echo date ('Y/m/d - H:i:s')." - Insertion des informations manquantes sur le siren ".$tabData['siren'][0]." en base (annonce $idAnnRet) !".EOL; } else { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations du BODACC A (créations) sur le siren $siren en base impossible (annonce $idAnnRet) !".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); print_r($tabAnnC); die(); } } elseif ($reload) echo date ('Y/m/d - H:i:s')." - Chargement de l'annonce manquante : ". $tabAnn['Num_Annonce']. EOL; if (isset($tabData['dateDebutActivite'])) $dateEffet=$tabData['dateDebutActivite']; else $dateEffet=$tabAnn['Bodacc_Date_Parution']; $tabAdministration=$iBodacc->getDirigeants($tabData['administration']); foreach ($tabAdministration as $numDir => $tabDir) { $tabDir['num']=$numDir; $tabDir['siren']=$siren; $tabDir['dateEffet']=$dateEffet; $tabDir['id']=$idAnnRet; $tabDir['Rubrique']='creations'; $tabDir['dateInsert']=$dateInsert; if (!$iDb->insert('bodacc_dirigeants', $tabDir, true) && mysql_errno()<>1062) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations du dirigeant BODACC A (créations) sur le siren $siren en base impossible (annonce $idAnnRet) !".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); print_r($tabDir); die(); }/* else { echo date ('Y/m/d - H:i:s')." - OK ".mysql_errno()." : Insertion des informations du dirigeant BODACC A (créations) sur le siren $siren en base (annonce $idAnnRet) !".EOL; print_r($tabDir); }*/ } //echo EOL. $tabData['adresseVoie'][0] .EOL; //Siege //print_r($iInsee->structureVoie($tabData['adresseVoie'][0])); // $saisie = trim(strtoupper(fgets(STDIN))); } // VENTES & CESSIONS elseif ($tabAnn['Rubrique_Bodacc']=='A101' || // Personne Physique $tabAnn['Rubrique_Bodacc']=='A102' || // Société $tabAnn['Rubrique_Bodacc']=='A124' || // Personne P. non inscrite $tabAnn['Rubrique_Bodacc']=='A125') { // // VENTES & CESSIONS : Société non inscrite $roleEntrep=false; $tabOppo=findIdMandataire($tabData['oppositions']); $tabOppoAdr=$iInsee->structureVoie($tabOppo['Adresse']); foreach ($tabData['raisonSociale'] as $n => $raisonSociale) { /** Si le propriétaire/précédent exploitant n'a pas d'adresse renseignée, on lui donne l'adresse de l'acheteur qui normalement est la même **/ if ($tabData['adresseVoie'][$n]=='' && $tabData['adresseCP'][$n]=='' && $tabData['adresseVille'][$n]=='') { $tabData['adresseVoie'][$n]=$tabData['adresseVoie'][0]; $tabData['adresseCP'][$n]= $tabData['adresseCP'][0]; $tabData['adresseVille'][$n]=$tabData['adresseVille'][0]; } /** Idem pour l'adresse du siège **/ if ($tabData['adresseSiegeVoie'][$n]=='' && $tabData['adresseSiegeCP'][$n]=='' && $tabData['adresseSiegeVille'][$n]=='') { $tabData['adresseSiegeVoie'][$n]=$tabData['adresseSiegeVille'][0]; $tabData['adresseSiegeCP'][$n]=$tabData['adresseSiegeVille'][0]; $tabData['adresseSiegeVille'][$n]=$tabData['adresseSiegeVille'][0]; } if (substr($raisonSociale,0,6)=='/ACHE/') { $raisonSociale=substr($raisonSociale,6, strlen($raisonSociale)); $roleEntrep=5700; // Acheteur } else { if (preg_match("/^Pr(é|e)c(é|e)dents? propri(é|e)taires? exploitant/i", $raisonSociale)) { $raisonSociale=preg_replace("/^Pr(é|e)c(é|e)dents? propri(é|e)taires? exploitants?/i", '', $raisonSociale); $roleEntrep=5501; }elseif (preg_match("/^Pr(é|e)c(é|e)dents? propri(é|e)taire.{1,5}membres.{1,9}indivision/i", $raisonSociale)) { $raisonSociale=preg_replace("/^Pr(é|e)c(é|e)dents? propri(é|e)taire.{1,5}membres.{1,9}indivision/i", '', $raisonSociale); $roleEntrep=5502; }elseif (preg_match("/^Pr(é|e)c(é|e)dents? propri(é|e)taire.{1,5}indivis/i", $raisonSociale)) { $raisonSociale=preg_replace("/^Pr(é|e)c(é|e)dents? propri(é|e)taire.{1,5}indivis/i", '', $raisonSociale); $roleEntrep=5502; }elseif (preg_match("/^Pr(é|e)c(é|e)dents? propri(é|e)taire/i", $raisonSociale)) { $raisonSociale=preg_replace("/^Pr(é|e)c(é|e)dents? propri(é|e)taires?/i", '', $raisonSociale); $roleEntrep=5503; }elseif (preg_match("/^Pr(é|e)c(é|e)dents? exploitant/i", $raisonSociale)) { $raisonSociale=preg_replace("/^Pr(é|e)c(é|e)dents? exploitants?/i", '', $raisonSociale); $roleEntrep=5600; }elseif (preg_match("/^Propri(é|e)taire/i", $raisonSociale)) { $raisonSociale=preg_replace("/^Propri(é|e)taires?/i", '', $raisonSociale); $roleEntrep=5503; }elseif (preg_match("/^Indemnis(é|e)/i", $raisonSociale)) { $raisonSociale=preg_replace("/^Indemnis(é|e)s?/i", '', $raisonSociale); $roleEntrep=5650; }elseif (preg_match("/^Co.{0,1}propri(e|é)taire/i", $raisonSociale)) { $raisonSociale=preg_replace("/^Co.{0,1}propri(e|é)taires?/i", '', $raisonSociale); $roleEntrep=5510; }elseif ($roleEntrep==false) $roleEntrep=5503; $raisonSociale=trim(str_replace(':','',$raisonSociale)); } $tabAdresse=$iInsee->structureVoie($tabData['adresseVoie'][$n]); $tabAdresseSiege=$iInsee->structureVoie($tabData['adresseSiegeVoie'][$n]); if ($roleEntrep==5700) { $capital_montant=$tabData['Capital']['Montant']; $capital_devise=$tabData['Capital']['Devise']; } $tabAnnC=array( 'id'=>$idAnnRet, 'siren'=>$tabData['siren'][$n], 'sirenValide'=>$tabData['sirenValide'][$n], 'nic'=>@$tabData['nic'][$n], 'nicValide'=>@$tabData['nicValide'][$n], 'Bodacc_Num'=>$tabAnn['Bodacc_Num'], 'Bodacc_Date_Parution'=>$tabAnn['Bodacc_Date_Parution'], 'Num_Annonce'=>$tabAnn['Num_Annonce'], 'Tribunal_Code'=>$tabAnn['Tribunal_Code'], 'Rubrique_Bodacc'=>$tabAnn['Rubrique_Bodacc'], 'Rubrique'=>'ventes', 'typeAnnonce'=>$tabAnn['typeAnnonce'], 'corrNum_Annonce'=>$tabAnn['corrNum_Annonce'], 'corrBodacc_Date_Parution'=>$tabAnn['corrBodacc_Date_Parution'], 'corrPage'=>$tabAnn['corrPage'], 'corrNumParution'=>$tabAnn['corrNumParution'], 'corrTexteRectificatif'=>$tabAnn['corrTexteRectificatif'], 'RC'=>$tabData['RC'][$n], 'raisonSociale'=>$raisonSociale, 'nomCommercial'=>$tabData['nomCommercial'][$n], 'enseigne'=>$tabData['enseigne'][$n], 'sigle'=>$tabData['sigle'][$n], 'nationalite'=>$tabData['nationalite'][$n], 'FJ'=>$tabData['FJ'][$n], 'Capital'=>$capital_montant, 'CapitalDev'=>$capital_devise, 'adresse'=>$tabData['adresseVoie'][$n], 'adrNum'=>$tabAdresse['num'], 'adrIndRep'=>$tabAdresse['indRep'], 'adrTypVoie'=>$tabAdresse['typeVoie'], 'adrLibVoie'=>$tabAdresse['libVoie'], 'adrComp1'=>$tabAdresse['adrComp0'], 'adrComp2'=>$tabAdresse['adrComp1'], 'codePostal'=>$tabData['adresseCP'][$n], 'ville'=>$tabData['adresseVille'][$n], 'adresseSiege'=>$tabData['adresseSiegeVoie'][$n], 'adrSiegeNum'=>$tabAdresseSiege['num'], 'adrSiegeIndRep'=>$tabAdresseSiege['indRep'], 'adrSiegeTypVoie'=>$tabAdresseSiege['typeVoie'], 'adrSiegeLibVoie'=>$tabAdresseSiege['libVoie'], 'adrSiegeComp1'=>$tabAdresseSiege['adrComp0'], 'adrSiegeComp2'=>$tabAdresseSiege['adrComp1'], 'codePostalSiege'=>$tabData['adresseSiegeCP'][$n], 'villeSiege'=>$tabData['adresseSiegeVille'][$n], 'administration'=>@implode('.', $tabData['administration']), /* 'typeCreation'=>@implode("\n", $tabData['typeCreation']),*/ 'activite'=>$tabData['activite'][$n], /* 'raisonSocialeVendeur'=>@implode('/',$tabData['raisonSociale']), 'sirenVendeur'=>end($tabData['siren']), 'sirenVendeurValide'=>end($tabData['sirenValide']),*/ 'VenteMt'=>$tabData['Vente']['Montant'], 'VenteDev'=>$tabData['Vente']['Devise'], 'perimetre'=>$tabData['Vente']['Perimetre'], 'bienAcqui'=>$tabData['Vente']['bienAcqui'], 'typeEven'=>$roleEntrep.';'.@implode(';',$tabData['typeVente']), 'publication'=>$tabData['publication'], 'publicationNom' =>$tabData['publicationNom'], 'publicationDate'=>$tabData['publicationDate'], 'oppositions'=>$tabData['oppositions'], 'oppoNom'=>$tabOppo['Nom'], 'oppoRepr'=>$tabOppo['repPar'], 'oppoAdresse'=>$tabOppo['Adresse'], 'oppoAdrNum'=>$tabOppoAdr['num'], 'oppoAdrIndRep'=>$tabOppoAdr['indRep'], 'oppoAdrTypVoie'=>$tabOppoAdr['typeVoie'], 'oppoAdrLibVoie'=>$tabOppoAdr['libVoie'], 'oppoAdrComp'=>$tabOppoAdr['adrComp0'], 'oppoCP'=>$tabOppo['CP'], 'oppoVille'=>$tabOppo['Ville'], 'commentaires'=>@implode('; ', $tabData['commentaires']), 'dateDebutActivite'=>$tabData['dateDebutActivite'], 'dateEffet'=>$tabData['dateEffet'], 'dateInsert'=>$dateInsert); //$ret=$iDb->insert('bodacc_ventes', $tabAnnC); if ($tabData['dupliquer'][$n] && !$reload) { $tabAnnDup=$tabAnnC; $tabAnnDup['siren']=$tabAnnDup['sirenValide']=0; $iDb->insert('bodacc_detail', $tabAnnDup); } $ret=$iDb->insert('bodacc_detail', $tabAnnC); if (!$ret){ if ($reload && mysql_errno()==1062) { unset($tabAnnC['dateInsert']); $ret=$iDb->update('bodacc_detail', $tabAnnC, "id=$idAnnRet AND siren=".$tabData['siren'][$n]); echo date ('Y/m/d - H:i:s')." - Insertion des informations manquantes sur le siren ".$tabData['siren'][$n]." en base (annonce $idAnnRet) !".EOL; } else { while(mysql_errno()==1062) { if ($tabAnnC['siren']>1000) $tabAnnC['siren']=0; $tabAnnC['siren']++; $tabAnnC['sirenValide']=0; $ret=$iDb->insert('bodacc_detail', $tabAnnC); } } if (!$ret) { echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno(). " : Insertion des informations du BODACC A (ventes) sur le siren $siren en base impossible (annonce $idAnnRet) !".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); print_r($tabAnnC); die(); } } if ($roleEntrep==5700) { // L'administration n'est citée que dans le cas de l'acheteur if (isset($tabData['dateDebutActivite'])) $dateEffet=$tabData['dateDebutActivite']; elseif (isset($tabData['dateEffet'])) $dateEffet=$tabData['dateEffet']; elseif (isset($tabData['publicationDate'])) $dateEffet=$tabData['publicationDate']; else $dateEffet=$tabAnn['Bodacc_Date_Parution']; $tabAdministration=$iBodacc->getDirigeants($tabData['administration']); foreach ($tabAdministration as $numDir => $tabDir) { $tabDir['num']=$numDir; $tabDir['siren']=$siren; $tabDir['dateEffet']=$dateEffet; $tabDir['id']=$idAnnRet; $tabDir['Rubrique']='ventes'; $tabDir['dateInsert']=$dateInsert; if (!$iDb->insert('bodacc_dirigeants', $tabDir, true) && mysql_errno()<>1062) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations du dirigeant BODACC A (ventes) sur le siren $siren en base impossible (annonce $idAnnRet) !".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); print_r($tabDir); die(); } /*else { echo date ('Y/m/d - H:i:s')." - OK ".mysql_errno()." : Insertion des informations du dirigeant BODACC A (ventes) sur le siren $siren en base (annonce $idAnnRet) !".EOL; print_r($tabDir); }*/ } } } } // RADIATIONS elseif ($tabAnn['Rubrique_Bodacc']=='B1X1' || // Dissolution $tabAnn['Rubrique_Bodacc']=='B116' || // Personne Physique $tabAnn['Rubrique_Bodacc']=='B117' || // Société $tabAnn['Rubrique_Bodacc']=='B127' || // Toutes formes $tabAnn['Rubrique_Bodacc']=='B133') { // RADIATIONS : GEIE if (isset($tabData['typeRadiation']) && $tabData['typeRadiation']<>0) $typeRad=$tabData['typeRadiation']; else $typeRad=6700; $tabAdresse=$iInsee->structureVoie($tabData['adresseVoie'][0]); $tabAdresseSiege=$iInsee->structureVoie($tabData['adresseSiegeVoie'][0]); $tabAnnC=array( 'id'=>$idAnnRet, 'siren'=>$tabData['siren'][0], 'sirenValide'=>$tabData['sirenValide'][0], 'nic'=>@$tabData['nic'][$n], 'nicValide'=>@$tabData['nicValide'][$n], 'Bodacc_Num'=>$tabAnn['Bodacc_Num'], 'Bodacc_Date_Parution'=>$tabAnn['Bodacc_Date_Parution'], 'Num_Annonce'=>$tabAnn['Num_Annonce'], 'Tribunal_Code'=>$tabAnn['Tribunal_Code'], 'Rubrique_Bodacc'=>$tabAnn['Rubrique_Bodacc'], 'Rubrique'=>'radiations', 'typeAnnonce'=>$tabAnn['typeAnnonce'], 'corrNum_Annonce'=>$tabAnn['corrNum_Annonce'], 'corrBodacc_Date_Parution'=>$tabAnn['corrBodacc_Date_Parution'], 'corrPage'=>$tabAnn['corrPage'], 'corrNumParution'=>$tabAnn['corrNumParution'], 'corrTexteRectificatif'=>$tabAnn['corrTexteRectificatif'], 'RC'=>$tabData['RC'][0], 'raisonSociale'=>@implode('/',$tabData['raisonSociale']), 'nomCommercial'=>$tabData['nomCommercial'][0], 'enseigne'=>$tabData['enseigne'][0], 'sigle'=>$tabData['sigle'][0], 'FJ'=>$tabData['FJ'][0], 'adresse'=>$tabData['adresseVoie'][0], 'adrNum'=>$tabAdresse['num'], 'adrIndRep'=>$tabAdresse['indRep'], 'adrTypVoie'=>$tabAdresse['typeVoie'], 'adrLibVoie'=>$tabAdresse['libVoie'], 'adrComp1'=>$tabAdresse['adrComp0'], 'adrComp2'=>$tabAdresse['adrComp1'], 'codePostal'=>$tabData['adresseCP'][0], 'ville'=>$tabData['adresseVille'][0], 'adresseSiege'=>$tabData['adresseSiegeVoie'][0], 'adrSiegeNum'=>$tabAdresseSiege['num'], 'adrSiegeIndRep'=>$tabAdresseSiege['indRep'], 'adrSiegeTypVoie'=>$tabAdresseSiege['typeVoie'], 'adrSiegeLibVoie'=>$tabAdresseSiege['libVoie'], 'adrSiegeComp1'=>$tabAdresseSiege['adrComp0'], 'adrSiegeComp2'=>$tabAdresseSiege['adrComp1'], 'codePostalSiege'=>$tabData['adresseSiegeCP'][0], 'villeSiege'=>$tabData['adresseSiegeVille'][0], 'activite'=>$tabData['activite'][0], 'commentaires'=>@implode('; ', $tabData['commentaires']), 'typeEven'=>$typeRad, 'dateCessationActivite'=>$tabData['dateCessationActivite'], 'dateInsert'=>$dateInsert); //$ret=$iDb->insert('bodacc_radiations', $tabAnnC); if ($tabData['dupliquer'][0] && !$reload) { $tabAnnDup=$tabAnnC; $tabAnnDup['siren']=$tabAnnDup['sirenValide']=0; $iDb->insert('bodacc_detail', $tabAnnDup); } $ret=$iDb->insert('bodacc_detail', $tabAnnC); if (!$ret) { if ($reload && mysql_errno()==1062) { unset($tabAnnC['dateInsert']); $ret=$iDb->update('bodacc_detail', $tabAnnC, "id=$idAnnRet AND siren=".$tabData['siren'][0]); echo date ('Y/m/d - H:i:s')." - Insertion des informations manquantes sur le siren ".$tabData['siren'][0]." en base (annonce $idAnnRet) !".EOL; } else { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations du BODACC B (radiations) sur le siren $siren en base impossible (annonce $idAnnRet) !".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); print_r($tabAnnC); die(); } } elseif ($reload) echo date ('Y/m/d - H:i:s')." - Chargement de l'annonce manquante : ". $tabAnn['Num_Annonce']. EOL; } elseif (substr($tabAnn['Rubrique_Bodacc'],0,2)=='A8' || // PROCEDURES COLLECTIVES substr($tabAnn['Rubrique_Bodacc'],0,2)=='A2' || // PROCEDURES COLLECTIVES substr($tabAnn['Rubrique_Bodacc'],0,2)=='A9' ) { // SANCTIONS AUTRES //Selarl Malmezat-prat. Adresse 48, Rue Calve, 33000 $tabMand=findIdMandataire($tabData['Mandataire']); $tabMandAdr=$iInsee->structureVoie($tabMand['Adresse']); $tabRepr=findIdMandataire($tabData['ReprCreanciers']); $tabReprAdr=$iInsee->structureVoie($tabRepr['Adresse']); $tabAdmi=findIdMandataire($tabData['administrateur']); $tabAdmiAdr=$iInsee->structureVoie($tabAdmi['Adresse']); /* if ( ($tabData['typeProCol']==1600 || $tabData['typeProCol']==1601) && isset($tabData['dirIGPF']) ) { foreach ($tabData['dirIGPF'] as $numDir => $tabDir) { $tabDir['num']=$numDir; $tabDir['dateEffet']=$tabData['dateJugement']; $tabDir['id']=$idAnnRet; $tabDir['Rubrique']='procol'; $tabDir['dateInsert']=$dateInsert; if (!$iDb->insert('bodacc_dirigeants', $tabDir, true) && mysql_errno()<>1062) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations du dirigeant BODACC A (procol) sur le siren $siren en base impossible (annonce $idAnnRet) !".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); print_r($tabDir); die(); } } }*/ if (!is_array($tabData['raisonSociale']) || trim($tabData['raisonSociale'][0])=='' ) $tabData['raisonSociale'][0]=''; foreach ($tabData['raisonSociale'] as $n => $raisonSociale) { if ($reload && $n>0) { echo date ('Y/m/d - H:i:s')." - Insertion des informations manquantes en base pour l'annonce $idAnnRet impossible car plusieurs SIREN : ".EOL; print_r($tabData['siren']); continue; } /* if ($tabData['adresseVoie'][$n]=='' && $tabData['adresseCP'][$n]=='' && $tabData['adresseVille'][$n]=='') { $tabData['adresseVoie'][$n]=$tabData['adresseVoie'][0]; $tabData['adresseCP'][$n]= $tabData['adresseCP'][0]; $tabData['adresseVille'][$n]=$tabData['adresseVille'][0]; }*/ $tabAdresse=$iInsee->structureVoie($tabData['adresseVoie'][$n]); $tabAdresseSiege=$iInsee->structureVoie($tabData['adresseSiegeVoie'][$n]); // Pour les Procol suivantes, on redemande le sirenage et surtout l'affectation du code Even !!! if ($tabData['typeProCol']*1==1505 || // Appel de jugement $tabData['typeProCol']*1==1506 || // Infirmation Jugement $tabData['typeProCol']*1==1507 || // Extrait d'arrêt de la cour d'appel $tabData['typeProCol']*1==1515 || // Arrêt divers $tabData['typeProCol']*1==1517 || // Rectification d'une erreur matérielle $tabData['typeProCol']*1==1520 || // Ordonnance $tabData['typeProCol']*1==1525 || // Appel du ministère public $tabData['typeProCol']*1==1999) // Autre procol $tabData['sirenValide'][$n]=0; $tabAnnC=array( 'id'=>$idAnnRet, 'siren'=>$tabData['siren'][$n], 'sirenValide'=>$tabData['sirenValide'][$n], //'nic'=>@$tabData['nic'][$n], //'nicValide'=>@$tabData['nicValide'][$n], 'Bodacc_Num'=>$tabAnn['Bodacc_Num'], 'Bodacc_Date_Parution'=>$tabAnn['Bodacc_Date_Parution'], 'Num_Annonce'=>$tabAnn['Num_Annonce'], 'Tribunal_Code'=>$tabAnn['Tribunal_Code'], 'Rubrique_Bodacc'=>$tabAnn['Rubrique_Bodacc'], 'Rubrique'=>'procol', 'typeAnnonce'=>$tabAnn['typeAnnonce'], 'corrNum_Annonce'=>$tabAnn['corrNum_Annonce'], 'corrBodacc_Date_Parution'=>$tabAnn['corrBodacc_Date_Parution'], 'corrPage'=>$tabAnn['corrPage'], 'corrNumParution'=>$tabAnn['corrNumParution'], 'corrTexteRectificatif'=>$tabAnn['corrTexteRectificatif'], 'RC'=>$tabData['RC'][$n], 'raisonSociale'=>$raisonSociale, 'nomCommercial'=>$tabData['nomCommercial'][$n], 'enseigne'=>$tabData['enseigne'][$n], 'sigle'=>$tabData['sigle'][$n], 'FJ'=>$tabData['FJ'][$n], 'adresse'=>$tabData['adresseVoie'][$n], 'adrNum'=>$tabAdresse['num'], 'adrIndRep'=>$tabAdresse['indRep'], 'adrTypVoie'=>$tabAdresse['typeVoie'], 'adrLibVoie'=>$tabAdresse['libVoie'], 'adrComp1'=>$tabAdresse['adrComp0'], 'adrComp2'=>$tabAdresse['adrComp1'], 'codePostal'=>$tabData['adresseCP'][$n], 'ville'=>$tabData['adresseVille'][$n], 'adresseSiege'=>$tabData['adresseSiegeVoie'][$n], 'adrSiegeNum'=>$tabAdresseSiege['num'], 'adrSiegeIndRep'=>$tabAdresseSiege['indRep'], 'adrSiegeTypVoie'=>$tabAdresseSiege['typeVoie'], 'adrSiegeLibVoie'=>$tabAdresseSiege['libVoie'], 'adrSiegeComp1'=>$tabAdresseSiege['adrComp0'], 'adrSiegeComp2'=>$tabAdresseSiege['adrComp1'], /* $tabMand=findIdMandataire($tabData['Mandataire']); $tabMandAdr=$iInsee->structureVoie($tabMand['Adresse']); $tabRepr=findIdMandataire($tabData['ReprCreanciers']); $tabReprAdr=$iInsee->structureVoie($tabRepr['Adresse']); $tabAdmi=findIdMandataire($tabData['administrateur']); $tabAdmiAdr=$iInsee->structureVoie($tabAdmi['Adresse']);*/ 'codePostalSiege'=>$tabData['adresseSiegeCP'][$n], 'villeSiege'=>$tabData['adresseSiegeVille'][$n], 'activite'=>$tabData['activite'][$n], 'publication'=>$tabData['publication'], 'publicationNom' =>$tabData['publicationNom'], 'publicationDate'=>$tabData['publicationDate'], 'typeEven'=>$tabData['typeProCol'], 'commentaires'=>@implode('; ', $tabData['commentaires']), 'dateCessationActivite'=>$tabData['dateCessationActivite'], 'dateCessationPaiement'=>$tabData['dateCessationPaiement'], 'dateJugement'=>$tabData['dateJugement'], 'Numero'=>$tabData['Numero'], 'Mandataire'=>$tabData['Mandataire'], 'mandNom'=>$tabMand['Nom'], 'mandRepr'=>$tabMand['repPar'], 'mandAdresse'=>$tabMand['Adresse'], 'mandAdrNum'=>$tabMandAdr['num'], 'mandAdrIndRep'=>$tabMandAdr['indRep'], 'mandAdrTypVoie'=>$tabMandAdr['typeVoie'], 'mandAdrLibVoie'=>$tabMandAdr['libVoie'], 'mandAdrComp'=>$tabMandAdr['adrComp0'], 'mandCP'=>$tabMand['CP'], 'mandVille'=>$tabMand['Ville'], 'jugeCommissaire'=>@implode(EOL, $tabData['jugeCommissaire']), //'jugeCommissaireSuppleant'=>@implode("\n", $tabData['jugeCommissaireSuppleant']), 'ReprCreanciers'=>$tabData['ReprCreanciers'], 'creaNom'=>$tabRepr['Nom'], 'creaRepr'=>$tabRepr['repPar'], 'creaAdresse'=>$tabRepr['Adresse'], 'creaAdrNum'=>$tabReprAdr['num'], 'creaAdrIndRep'=>$tabReprAdr['indRep'], 'creaAdrTypVoie'=>$tabReprAdr['typeVoie'], 'creaAdrLibVoie'=>$tabReprAdr['libVoie'], 'creaAdrComp'=>$tabReprAdr['adrComp0'], 'creaCP'=>$tabRepr['CP'], 'creaVille'=>$tabRepr['Ville'], 'administrateur'=>$tabData['administrateur'], 'admNom'=>$tabAdmi['Nom'], 'admRepr'=>$tabAdmi['repPar'], 'admAdresse'=>$tabAdmi['Adresse'], 'admAdrNum'=>$tabAdmiAdr['num'], 'admAdrIndRep'=>$tabAdmiAdr['indRep'], 'admAdrTypVoie'=>$tabAdmiAdr['typeVoie'], 'admAdrLibVoie'=>$tabAdmiAdr['libVoie'], 'admAdrComp'=>$tabAdmiAdr['adrComp0'], 'admCP'=>$tabAdmi['CP'], 'admVille'=>$tabAdmi['Ville'], 'perimetre'=>$tabData['perimetre'], 'dateFinDepotCreances'=>Wdate::period2Days($tabAnn['Bodacc_Date_Parution'],$tabData['delaiDepotCreances']), 'delaiDepotCreances'=>$tabData['delaiDepotCreances'], 'dateFinObservation'=>$tabData['dateFinObservation'], 'FinObservationBodacc'=>$tabData['FinObservationBodacc'], 'dateInsert'=>$dateInsert); //$ret=$iDb->insert('bodacc_procol', $tabAnnC); if ($tabData['dupliquer'][$n] && !$reload) { $tabAnnDup=$tabAnnC; $tabAnnDup['siren']=$tabAnnDup['sirenValide']=0; $iDb->insert('bodacc_detail', $tabAnnDup); } $ret=$iDb->insert('bodacc_detail', $tabAnnC, true); if (!$ret) { if ($reload && mysql_errno()==1062) { unset($tabAnnC['dateInsert']); $ret=$iDb->update('bodacc_detail', $tabAnnC, "id=$idAnnRet AND siren=".$tabData['siren'][$n]); echo date ('Y/m/d - H:i:s')." - Insertion des informations manquantes sur le siren ".$tabData['siren'][$n]." en base (annonce $idAnnRet) !".EOL; } else { while(mysql_errno()==1062) { if ($tabAnnC['siren']>1000) $tabAnnC['siren']=0; $tabAnnC['siren']++; $tabAnnC['sirenValide']=0; $ret=$iDb->insert('bodacc_detail', $tabAnnC, true); } } if (!$ret) { echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations du BODACC A (procol) sur le siren $siren en base impossible (annonce $idAnnRet) !".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); print_r($tabAnnC); die(); } } } } elseif ($tabAnn['Bodacc_Code']=='B') { // Autre Bodacc B : MMD $roleEntrep=''; foreach ($tabData['raisonSociale'] as $n => $raisonSociale) { if (count($tabData['raisonSociale'])>1) { // S'il y a plusieurs entreprises, nous sommes à priori dans le cas de la location gérance if (substr($raisonSociale,0,6)=='/ACHE/') { $raisonSociale=substr($raisonSociale,6, strlen($raisonSociale)); $roleEntrep=2800; } elseif ($n==0 && ($tabAnn['Rubrique_Bodacc']=='B114' || $tabAnn['Rubrique_Bodacc']=='B115' || $tabAnn['Rubrique_Bodacc']=='B118' || $tabAnn['Rubrique_Bodacc']=='B119' || $tabAnn['Rubrique_Bodacc']=='B122' || $tabAnn['Rubrique_Bodacc']=='B123')) { $raisonSociale=substr($raisonSociale,6, strlen($raisonSociale)); $roleEntrep=2800; } else { /** Si le propriétaire/précédent exploitant de la location gérance n'a pas d'adresse renseignée, on lui donne l'adresse du nouveau qui normalement est la même **/ if ($tabData['adresseVoie'][$n]=='' && $tabData['adresseCP'][$n]=='' && $tabData['adresseVille'][$n]=='') { $tabData['adresseVoie'][$n]=$tabData['adresseVoie'][0]; $tabData['adresseCP'][$n]= $tabData['adresseCP'][0]; $tabData['adresseVille'][$n]=$tabData['adresseVille'][0]; } /** Idem pour l'adresse du siège **/ if ($tabData['adresseSiegeVoie'][$n]=='' && $tabData['adresseSiegeCP'][$n]=='' && $tabData['adresseSiegeVille'][$n]=='') { $tabData['adresseSiegeVoie'][$n]=$tabData['adresseSiegeVille'][0]; $tabData['adresseSiegeCP'][$n]=$tabData['adresseSiegeVille'][0]; $tabData['adresseSiegeVille'][$n]=$tabData['adresseSiegeVille'][0]; } if (preg_match("/^Pr(é|e)c(é|e)dents? propri(é|e)taires? exploitant/i", $raisonSociale)) { $raisonSociale=preg_replace("/^Pr(é|e)c(é|e)dents? propri(é|e)taires? exploitants?/i", '', $raisonSociale); $roleEntrep=2850; }elseif (preg_match("/^Pr(é|e)c(é|e)dents? propri(é|e)taire/i", $raisonSociale)) { $raisonSociale=preg_replace("/^Pr(é|e)c(é|e)dents? propri(é|e)taires?/i", '', $raisonSociale); $roleEntrep=2851; }elseif (preg_match("/^Pr(é|e)c(é|e)dents? exploitant/i", $raisonSociale)) { $raisonSociale=preg_replace("/^Pr(é|e)c(é|e)dents? exploitants?/i", '', $raisonSociale); $roleEntrep=2860; }elseif (preg_match("/^Propri(é|e)taire/i", $raisonSociale)) { $raisonSociale=preg_replace("/^Propri(é|e)taires?/i", '', $raisonSociale); $roleEntrep=2851; } $raisonSociale=trim(str_replace(':','',$raisonSociale)); } } // Gérer sinon les fusions ? if (in_array(2318, $tabData['typeMMD']) && count($tabData['typeMMD'])>1) $tabData['typeMMD']=array_diff($tabData['typeMMD'], array(2318)); // Présence d'un MMD avec autre Mouvement + Précis, on vire la MMD elseif (in_array(2318, $tabData['typeMMD']) && count($tabData['typeMMD'])==0 && $roleEntrep<>'') $tabData['typeMMD']=array_diff($tabData['typeMMD'], array(2318)); // Présence d'un MMD sans Mouvement + Précis mais en Location Gérance, on vire MMD elseif (count($tabData['typeMMD'])==0 && $roleEntrep=='') $tabData['typeMMD']=array(2312); // Auncun MMD et pas de Location Gérance, on ajout MMD Autre if($roleEntrep<>'') $strEVEN=$roleEntrep;//.';'.@implode(';', $tabData['typeMMD']); else $strEVEN=@implode(';', $tabData['typeMMD']); // $tabMand=findIdMandataire($tabData['Mandataire']); // $tabRepr=findIdMandataire($tabData['ReprCreanciers']); // $tabAdmi=findIdMandataire($tabData['administrateur']); $tabAdresse=$iInsee->structureVoie($tabData['adresseVoie'][$n]); $tabAdresseSiege=$iInsee->structureVoie($tabData['adresseSiegeVoie'][$n]); $tabAnnC=array( 'id'=>$idAnnRet, 'siren'=>$tabData['siren'][$n], 'sirenValide'=>$tabData['sirenValide'][$n], 'nic'=>@$tabData['nic'][$n], 'nicValide'=>@$tabData['nicValide'][$n], 'Bodacc_Num'=>$tabAnn['Bodacc_Num'], 'Bodacc_Date_Parution'=>$tabAnn['Bodacc_Date_Parution'], 'Num_Annonce'=>$tabAnn['Num_Annonce'], 'Tribunal_Code'=>$tabAnn['Tribunal_Code'], 'Rubrique_Bodacc'=>$tabAnn['Rubrique_Bodacc'], 'Rubrique'=>'mmd', 'typeAnnonce'=>$tabAnn['typeAnnonce'], 'corrNum_Annonce'=>$tabAnn['corrNum_Annonce'], 'corrBodacc_Date_Parution'=>$tabAnn['corrBodacc_Date_Parution'], 'corrPage'=>$tabAnn['corrPage'], 'corrNumParution'=>$tabAnn['corrNumParution'], 'corrTexteRectificatif'=>$tabAnn['corrTexteRectificatif'], 'RC'=>$tabData['RC'][$n], 'raisonSociale'=>$raisonSociale, 'nomCommercial'=>$tabData['nomCommercial'][$n], 'enseigne'=>$tabData['enseigne'][$n], 'sigle'=>$tabData['sigle'][$n], 'nationalite'=>$tabData['nationalite'][$n], 'FJ'=>$tabData['FJ'][$n], 'Capital'=>$tabData['Capital']['Montant'], 'CapitalDev'=>$tabData['Capital']['Devise'], 'administration'=>@implode('.', $tabData['administration']), /* 'typeCreation'=>@implode("\n", $tabData['typeCreation']), */ 'activite'=>$tabData['activite'][$n], 'adresse'=>$tabData['adresseVoie'][$n], 'adrNum'=>$tabAdresse['num'], 'adrIndRep'=>$tabAdresse['indRep'], 'adrTypVoie'=>$tabAdresse['typeVoie'], 'adrLibVoie'=>$tabAdresse['libVoie'], 'adrComp1'=>$tabAdresse['adrComp0'], 'adrComp2'=>$tabAdresse['adrComp1'], 'codePostal'=>$tabData['adresseCP'][$n], 'ville'=>$tabData['adresseVille'][$n], 'adresseSiege'=>$tabData['adresseSiegeVoie'][$n], 'adrSiegeNum'=>$tabAdresseSiege['num'], 'adrSiegeIndRep'=>$tabAdresseSiege['indRep'], 'adrSiegeTypVoie'=>$tabAdresseSiege['typeVoie'], 'adrSiegeLibVoie'=>$tabAdresseSiege['libVoie'], 'adrSiegeComp1'=>$tabAdresseSiege['adrComp0'], 'adrSiegeComp2'=>$tabAdresseSiege['adrComp1'], 'codePostalSiege'=>$tabData['adresseSiegeCP'][$n], 'villeSiege'=>$tabData['adresseSiegeVille'][$n], 'dateCessationActivite'=>$tabData['dateCessationActivite'], // 'publication'=>$tabData['publication'], // 'typeProCol'=>$tabData['typeProCol'], 'typeEven'=>$strEVEN, 'fusion'=>@print_r($tabData['fusion'],true), 'commentaires'=>@implode('; ', $tabData['commentaires']), // 'dateCessationPaiement'=>$tabData['dateCessationPaiement'], // 'dateJugement'=>$tabData['dateJugement'], // 'Numero'=>$tabData['Numero'], // 'Mandataire'=>$tabMand['Nom'].';'.$tabMand['repPar'].';'.$tabMand['Adresse'].';'.$tabMand['CP'].';'.$tabMand['Ville'], // 'jugeCommissaire'=>$tabData['jugeCommissaire'], // 'ReprCreanciers'=>$tabRepr['Nom'].';'.$tabRepr['repPar'].';'.$tabRepr['Adresse'].';'.$tabRepr['CP'].';'.$tabRepr['Ville'], // 'administrateur'=>$tabAdmi['Nom'].';'.$tabAdmi['repPar'].';'.$tabAdmi['Adresse'].';'.$tabAdmi['CP'].';'.$tabAdmi['Ville'], // 'dateFinDepotCreances'=>Wdate::period2Days($tabAnn['Bodacc_Date_Parution'],$tabData['delaiDepotCreances']), // 'delaiDepotCreances'=>$tabData['delaiDepotCreances'], // 'dateFinObservation'=>$tabData['dateFinObservation'], // 'FinObservationBodacc'=>$tabData['dateFinObservation'], 'dateDebutActivite'=>$tabData['dateDebutActivite'], 'dateEffet'=>$tabData['dateEffet'], 'dateInsert'=>$dateInsert); //$ret=$iDb->insert('bodacc_mmd', $tabAnnC); if ($tabData['dupliquer'][$n] && !$reload) { $tabAnnDup=$tabAnnC; $tabAnnDup['siren']=$tabAnnDup['sirenValide']=0; $iDb->insert('bodacc_detail', $tabAnnDup); } $ret=$iDb->insert('bodacc_detail', $tabAnnC); if (!$ret) { if ($reload && mysql_errno()==1062) { unset($tabAnnC['dateInsert']); $ret=$iDb->update('bodacc_detail', $tabAnnC, "id=$idAnnRet AND siren=".$tabData['siren'][0]); echo date ('Y/m/d - H:i:s')." - Insertion des informations manquantes sur le siren ".$tabData['siren'][0]." en base (annonce $idAnnRet) !".EOL; } elseif (!reload) { while(mysql_errno()==1062) { if ($tabAnnC['siren']>1000) $tabAnnC['siren']=0; $tabAnnC['siren']++; $tabAnnC['sirenValide']=0; $ret=$iDb->insert('bodacc_detail', $tabAnnC); } } else { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations du BODACC B (MMD) sur le siren $siren en base impossible (annonce $idAnnRet) !".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); print_r($tabAnnC); die(); } } elseif ($reload) echo date ('Y/m/d - H:i:s')." - Chargement de l'annonce manquante : ". $tabAnn['Num_Annonce']. EOL; if (isset($tabData['dateDebutActivite'])) $dateEffet=$tabData['dateDebutActivite']; elseif (isset($tabData['dateEffet'])) $dateEffet=$tabData['dateEffet']; elseif (isset($tabData['dateCessationActivite'])) $dateEffet=$tabData['dateCessationActivite']; else $dateEffet=$tabAnn['Bodacc_Date_Parution']; $tabAdministration=$iBodacc->getDirigeants($tabData['administration']); foreach ($tabAdministration as $numDir => $tabDir) { $tabDir['num']=$numDir; $tabDir['siren']=$siren; $tabDir['dateEffet']=$dateEffet; $tabDir['id']=$idAnnRet; $tabDir['Rubrique']='mmd'; $tabDir['dateInsert']=$dateInsert; if (!$iDb->insert('bodacc_dirigeants', $tabDir, true) && mysql_errno()<>1062) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations du dirigeant BODACC B sur le siren $siren en base impossible (annonce $idAnnRet) !".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); print_r($tabDir); die(); } } if (isset($tabData['fusion'])) { foreach ($tabData['fusion'] as $t=>$tabFusion) { if ($tabFusion['sirenAbs']<>$tabData['sirenValide'][$n]) { $tabAdresse=$iInsee->structureVoie($tabFusion['adresseAbs']); $tabAnnC=array( 'id'=>$idAnnRet, 'siren'=>$tabFusion['sirenAbs'], 'sirenValide'=>1, // A été validé aupparavant par la détection de SIREN VALIDE 'Bodacc_Num'=>$tabAnn['Bodacc_Num'], 'Bodacc_Date_Parution'=>$tabAnn['Bodacc_Date_Parution'], 'Num_Annonce'=>$tabAnn['Num_Annonce'], 'Tribunal_Code'=>$tabAnn['Tribunal_Code'], 'Rubrique_Bodacc'=>$tabAnn['Rubrique_Bodacc'], 'typeAnnonce'=>$tabAnn['typeAnnonce'], 'corrNum_Annonce'=>$tabAnn['corrNum_Annonce'], 'corrBodacc_Date_Parution'=>$tabAnn['corrBodacc_Date_Parution'], 'corrPage'=>$tabAnn['corrPage'], 'corrNumParution'=>$tabAnn['corrNumParution'], 'corrTexteRectificatif'=>$tabAnn['corrTexteRectificatif'], 'RC'=>'', 'FJ'=>'', 'raisonSociale'=>$tabFusion['raisonAbs'], 'adresse'=>$tabFusion['adresseAbs'], 'adrNum'=>$tabAdresse['num'], 'adrIndRep'=>$tabAdresse['indRep'], 'adrTypVoie'=>$tabAdresse['typeVoie'], 'adrLibVoie'=>$tabAdresse['libVoie'], 'adrComp1'=>$tabAdresse['adrComp0'], 'adrComp2'=>$tabAdresse['adrComp1'], 'codePostal'=>$tabFusion['adresseAbsCP'], 'ville'=>$tabFusion['adresseAbsVille'], 'adresseSiege'=>$tabFusion['adresseAbs'], 'adrSiegeNum'=>$tabAdresse['num'], 'adrSiegeIndRep'=>$tabAdresse['indRep'], 'adrSiegeTypVoie'=>$tabAdresse['typeVoie'], 'adrSiegeLibVoie'=>$tabAdresse['libVoie'], 'adrSiegeComp1'=>$tabAdresse['adrComp0'], 'adrSiegeComp2'=>$tabAdresse['adrComp1'], 'codePostalSiege'=>$tabFusion['adresseAbsCP'], 'villeSiege'=>$tabFusion['adresseAbsVille'], 'dateCessationActivite'=>$tabData['dateCessationActivite'], 'typeEven'=>$tabFusion['codeEvenAbs'], 'fusion'=>$tabFusion['adresseAbs'], 'commentaires'=>@implode('; ', $tabData['commentaires']), 'dateDebutActivite'=>$tabData['dateDebutActivite'], 'dateEffet'=>$tabData['dateEffet'], 'dateInsert'=>$dateInsert); //$ret=$iDb->insert('bodacc_mmd', $tabAnnC); $ret=$iDb->insert('bodacc_detail', $tabAnnC); if (!$ret && mysql_errno()<>1062) { echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno(). " : Insertion des informations du BODACC B (MMD, Entités absorbées) sur le siren ".$tabFusion['sirenAbs']." en base impossible (annonce $idAnnRet) !".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); print_r($tabAnnC); print_r($tabData); die(); } } } } } } else { echo date ('Y/m/d - H:i:s')." - ERREUR : Rubrique '".$tabAnn['Bodacc_Code']."' non prévue pour insertion détaillé en base (annonce n°$idAnnRet) !".EOL; echo 'tabAnn'.EOL; print_r($tabAnn); echo 'tabData'.EOL; print_r($tabData); die(); } if (count($tabData['participations'])>0) { //bodacc_autre foreach ($tabData['participations'] as $t=>$sirenParticipation) { $tabAnnC=array( 'id'=>$idAnnRet, 'siren'=>$sirenParticipation, 'sirenValide'=>1, // A été validé aupparavant 'Bodacc_Num'=>$tabAnn['Bodacc_Num'], 'Bodacc_Date_Parution'=>$tabAnn['Bodacc_Date_Parution'], 'Num_Annonce'=>$tabAnn['Num_Annonce'], 'Tribunal_Code'=>$tabAnn['Tribunal_Code'], 'Rubrique_Bodacc'=>$tabAnn['Rubrique_Bodacc'], 'typeAnnonce'=>$tabAnn['typeAnnonce'], 'corrNum_Annonce'=>$tabAnn['corrNum_Annonce'], 'corrBodacc_Date_Parution'=>$tabAnn['corrBodacc_Date_Parution'], 'corrPage'=>$tabAnn['corrPage'], 'corrNumParution'=>$tabAnn['corrNumParution'], 'corrTexteRectificatif'=>$tabAnn['corrTexteRectificatif'], 'RC'=>'', 'FJ'=>'', 'raisonSociale'=>'', 'adresseSiege'=>'', 'codePostalSiege'=>'', 'villeSiege'=>'', 'typeEven'=>2750, 'dateInsert'=>$dateInsert); $ret=$iDb->insert('bodacc_autre', $tabAnnC); //$ret=$iDb->insert('bodacc_detail', $tabAnnC); if (!$ret && mysql_errno()<>1062) { echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno(). " : Insertion des informations 'autres' du BODACC sur le siren ".$sirenParticipation." en base impossible (annonce $idAnnRet) !".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); print_r($tabAnnC); print_r($tabData); die(); } } } if ($tabSiren) foreach($tabSiren as $itmp => $siren) { //echo "tabSiren\n"; //print_r($tabSiren); //echo "siren\n"; //print_r($siren);die(); $tabAnnSir=array('id'=>$idAnnRet, 'siren'=>$siren['num'], 'sirenValide'=>$siren['valide'], 'Bodacc_Num'=>$tabAnn['Bodacc_Num'], 'Bodacc_Date_Parution'=>$tabAnn['Bodacc_Date_Parution'], 'Num_Annonce'=>$tabAnn['Num_Annonce'], 'Rubrique_Bodacc'=>$tabAnn['Rubrique_Bodacc'], 'typeAnnonce'=>$tabAnn['typeAnnonce'], 'corrNum_Annonce'=>$tabAnn['corrNum_Annonce'], 'corrBodacc_Date_Parution'=>$tabAnn['corrBodacc_Date_Parution'], 'corrPage'=>$tabAnn['corrPage'], 'corrNumParution'=>$tabAnn['corrNumParution'], 'corrTexteRectificatif'=>$tabAnn['corrTexteRectificatif'], 'dateInsert'=>$dateInsert); $ret=$iDb->insert('bodacc_siren', $tabAnnSir); if (!$ret && mysql_errno()<>1062){ echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion du siren $siren en base impossible sur l'annonce $idAnnRet !\n"; echo date ('Y/m/d - H:i:s'). mysql_error(); print_r($tabAnnSir); die(); } } } // Fin de la boucle de chargement des annonces en base } $ret=$iDb->update('chargements', array('NbAnnoncesLues'=>count($tabAnnonces)), "NomFichier='$nomFichier'"); if (!$ret) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Mise à jour des informations de chargement en base impossible :".EOL; echo date ('Y/m/d - H:i:s'). mysql_error().EOL; print_r($tabFic); die(); } unset($tabAnnonces); unset($idann); } /*echo 'Familles XML non gérées'.EOL; print_r(array_unique($tabFamilleNature)); echo 'Familles PDF non gérées'.EOL; $tabFamilles=array_unique($tabFamilles); sort($tabFamilles); print_r($tabFamilles); */ //print_r(array_unique($tabFam)); if ($copieWaldec) { echo date ('Y/m/d - H:i:s')." - Mise à jour des SIREN du JO Association avec WALDEC...".EOL; $nbWaldeked=0; // Sens Waldec ==> Siren $tabWaldec=array(); $tmp=$iDb->select('asso', 'Waldec, siren, count(*) AS nbDiff', "Waldec<>'' AND siren>100 AND LENGTH(Waldec)=10 GROUP BY Waldec, siren /*HAVING nbDiff=1*/", false, MYSQL_ASSOC); foreach ($tmp as $nbWaldec1=>$tabTmp) $tabWaldec[$tabTmp['Waldec']]=$tabTmp['siren']; $tmp=$iDb->select('asso_bilans', 'Waldec, siren, count(*) AS nbDiff', "Waldec<>'' AND siren>100 AND LENGTH(Waldec)=10 GROUP BY Waldec, siren /*HAVING nbDiff=1*/", false, MYSQL_ASSOC); foreach ($tmp as $nbWaldec2=>$tabTmp) $tabWaldec[$tabTmp['Waldec']]=$tabTmp['siren']; $tabWaldec=array_unique($tabWaldec); $nbWaldec=$nbWaldec1+$nbWaldec2; echo date ('Y/m/d - H:i:s')." - La table SIREN/WALDEC contient $nbWaldec lignes...".EOL; $tmp=$iDb->select('asso', 'id, Waldec', "siren<100 AND Waldec<>''", false, MYSQL_ASSOC); foreach ($tmp as $nbWaldec=>$tabTmp) { $id=$tabTmp['id']; $waldec=$tabTmp['Waldec']; if (isset($tabWaldec[$waldec])) { $siren=$tabWaldec[$waldec]; $iDb->update('asso', array('siren'=>$tabWaldec[$tabTmp['Waldec']],'sirenValide'=>3), 'id='.$tabTmp['id'].' AND siren<100'); echo mysql_error(); if ($modeDebug) echo date ('Y/m/d - H:i:s')." - $nbWaldec : Mise à jour de id=$id, Waldec=$waldec avec siren $siren...".EOL; $iDb->delete('bodacc_sirenage', "idTable='asso' AND idAnn=$id"); echo mysql_error(); $nbWaldeked++; } } // Sens Waldec ==> Siren $tabWaldec=array(); $tmp=$iDb->select('asso', 'siren, Waldec, count(*) AS nbDiff', "Waldec<>'' AND siren>100 GROUP BY siren, Waldec HAVING nbDiff=1", false, MYSQL_ASSOC); foreach ($tmp as $nbWaldec=>$tabTmp) $tabWaldec['_'.$tabTmp['siren']]=$tabTmp['Waldec']; $tmp=$iDb->select('asso_bilans', 'siren, Waldec, count(*) AS nbDiff', "Waldec<>'' AND siren>100 GROUP BY siren, Waldec HAVING nbDiff=1", false, MYSQL_ASSOC); foreach ($tmp as $nbWaldec=>$tabTmp) $tabWaldec['_'.$tabTmp['siren']]=$tabTmp['Waldec']; $tabWaldec=array_unique($tabWaldec); echo date ('Y/m/d - H:i:s')." - La table WALDEC/SIREN contient $nbWaldec lignes...".EOL; $tmp=$iDb->select('asso', 'id, siren', "Waldec='' AND siren>100", false, MYSQL_ASSOC); foreach ($tmp as $nbWaldec=>$tabTmp) { $id=$tabTmp['id']; $waldec='_'.$tabTmp['siren']; if (isset($tabWaldec[$waldec])) { $siren=$tabTmp['siren']; $iDb->update('asso', array('Waldec'=>$tabWaldec[$waldec]), "id=$id AND siren=$siren"); echo mysql_error(); if ($modeDebug) echo date ('Y/m/d - H:i:s')." - $nbWaldec : Mise à jour de id=$id, Waldec=".$tabWaldec[$waldec]." avec siren $siren ($waldec)...".EOL; $iDb->delete('bodacc_sirenage', "idTable='asso' AND idAnn=$id"); echo mysql_error(); $nbWaldeked++; } } echo date ('Y/m/d - H:i:s')." - Mise à jour de $nbWaldeked SIREN d'Associations avec WALDEC non sirenées.".EOL; $strMailInfo.=date('Y/m/d - H:i:s') ." - Mise à jour de $nbWaldeked SIREN d'Associations avec WALDEC non sirenées.".EOL; unset($tabWaldec); // Identifiants Textes Uniques $nbSirened=$nbSireted=0; // Tableau RS>Siren $tabRsSiren=array(); $tmp=$iDb->select('asso', 'idTxtUnique, siren, nic', 'siren>0 AND nic>0 GROUP BY idTxtUnique', false, MYSQL_ASSOC); foreach ($tmp as $nbId=>$tabTmp) $tabRsSiren[$tabTmp['idTxtUnique']]=$tabTmp['siren'].'-'.$tabTmp['nic']; echo date ('Y/m/d - H:i:s')." - La table Asso idTxt/Siret contient $nbId lignes...".EOL; /** PREMIERE Initialisation des idTxtUnique ** $nbAssoc=$iDb->select('asso', 'id,Assoc_Nom,Assoc_Adresse,dateUpdate', 'idTxtUnique IS NULL', false, MYSQL_ASSOC, true); $iDb2=new WDB(); while($tabUpdate=$iDb->fetch(MYSQL_ASSOC)) { $i++; //print_r($tabUpdate); $idTxtUnique=trim(strtoupper(preg_replace('/[^a-z0-9]/i', '', $tabUpdate['Assoc_Nom'].$tabUpdate['Assoc_Adresse']))); if ($idTxtUnique<>'') $tabUpdate['idTxtUnique']=$idTxtUnique; $idAnnRet=$iDb2->update('asso', $tabUpdate, 'id='.$tabUpdate['id']); echo "$i/$nbAssoc:".$tabUpdate['id']."\t".$tabUpdate['Assoc_Nom'].EOL; } die(); **/ $tmp=$iDb->select('asso', 'id, idTxtUnique', "siren<100 AND idTxtUnique<>'' AND (Assoc_Nom<>'' AND Assoc_Adresse<>'') AND sirenValide=0", false, MYSQL_ASSOC); foreach ($tmp as $iLot=>$tabTmp) { $id=$tabTmp['id']; $idTxtUnique=$tabTmp['idTxtUnique']; if (isset($tabRsSiren[$idTxtUnique])) { $tabSiret=explode('-', $tabRsSiren[$idTxtUnique]); $siren=$tabSiret[0]; $nic=$tabSiret[1]; if ($nic>0) { $nicValide=3; $nbSireted++; } else { $nicValide=0; $nbSirened++; } $iDb->update('asso', array( 'siren'=>$siren, 'sirenValide'=>3, 'nic'=>$nic, 'nicValide'=>$nicValide), 'id='.$id, false, 0, true); echo mysql_error(); if ($modeDebug) echo date ('Y/m/d - H:i:s')." - $iLot : Mise à jour de id=$id avec le siren $siren et le nic $nic...".EOL; $iDb->delete('bodacc_sirenage', "idTable='asso' AND idAnn=$id",false,true); echo mysql_error(); } } $nbSirened+=$nbSireted; echo date ('Y/m/d - H:i:s')." - Mise à jour de $nbSirened SIREN et $nbSireted NIC d'Associations avec idTxtUnique...".EOL; $strMailInfo.=date('Y/m/d - H:i:s') ." - Mise à jour de $nbSirened SIREN et $nbSireted NIC d'Associations avec idTxtUnique...".EOL; unset($tabRsSiren); // Identifiants Textes Uniques avec Waldec $nbWaldeked=0; $iDeb=0; while(1) { // Tableau RS>Waldec $tabWaldec=array(); $nbId=0; $tmp=$iDb->select('asso', 'idTxtUnique, Waldec', "siren<1000 AND Waldec<>'' AND LENGTH(Waldec)=10 GROUP BY idTxtUnique LIMIT $iDeb,150000", false, MYSQL_ASSOC); foreach ($tmp as $nbId=>$tabTmp) $tabWaldec[$tabTmp['idTxtUnique']]=$tabTmp['Waldec']; if ($nbId==0) break; echo date ('Y/m/d - H:i:s')." - La table Asso idTxt/Waldec contient $nbId lignes depuis $iDeb...".EOL; $tmp=$iDb->select('asso', 'id, idTxtUnique', "siren<1000 AND Waldec=''", false, MYSQL_ASSOC); foreach ($tmp as $nbWaldec=>$tabTmp) { $id=$tabTmp['id']; $idTxtUnique=$tabTmp['idTxtUnique']; if (isset($tabWaldec[$idTxtUnique])) { $waldec=$tabWaldec[$idTxtUnique]; $iDb->update('asso', array('Waldec'=>$waldec), "id=$id AND siren<1000", false, 0 , true); $nbWaldeked++; echo mysql_error(); if ($modeDebug) echo date ('Y/m/d - H:i:s')." - $nbWaldec : Mise à jour de id=$id avec Waldec=$waldec ($idTxtUnique)...".EOL; $iDb->delete('bodacc_sirenage', "idTable='asso' AND idAnn=$id"); echo mysql_error(); } //else echo date ('Y/m/d - H:i:s')." - $nbWaldec : Pas de correspondance pour id=$id ($idTxtUnique)...".EOL; } $iDeb+=150000; } echo date ('Y/m/d - H:i:s')." - Mise à jour de $nbWaldeked SIREN d'Associations avec WALDEC non sirenées.".EOL; $strMailInfo.=date('Y/m/d - H:i:s') ." - Mise à jour de $nbWaldeked SIREN d'Associations avec WALDEC non sirenées.".EOL; unset($tabWaldec); } if ($copieSirenBoamp) { // Mise à jour des Administrations (BOAMP A, B ou MAPA) echo date ('Y/m/d - H:i:s')." - Mise à jour des SIREN des Avis BOAMP...".EOL; $nbSirened=$nbSireted=0; // Tableau RS>Siren $tabRsSiren=array(); $tmp=$iDb->select('boamp_detail', 'idTxtUnique, siren, nic', 'siren>0 AND nic>0 GROUP BY idTxtUnique', false, MYSQL_ASSOC); foreach ($tmp as $nbId=>$tabTmp) $tabRsSiren[$tabTmp['idTxtUnique']]=$tabTmp['siren'].'-'.$tabTmp['nic']; echo date ('Y/m/d - H:i:s')." - La table Avis idTxt/Siret contient $nbId lignes...".EOL; $tmp=$iDb->select('boamp_detail', 'id, idTxtUnique', "siren<100 AND idTxtUnique<>'' AND (raisonSociale<>'' OR adresse<>'' OR cp<>'' OR ville<>'') AND sirenValide=0", false, MYSQL_ASSOC); $nbTmp=count($tmp); foreach ($tmp as $iLot=>$tabTmp) { $id=$tabTmp['id']; $idTxtUnique=$tabTmp['idTxtUnique']; if (isset($tabRsSiren[$idTxtUnique])) { $tabSiret=explode('-', $tabRsSiren[$idTxtUnique]); $siren=$tabSiret[0]; $nic=$tabSiret[1]; if ($nic>0) { $nicValide=3; $nbSireted++; } else { $nicValide=0; $nbSirened++; } $iDb->update('boamp_detail', array( 'siren'=>$siren, 'sirenValide'=>3, 'nic'=>$nic, 'nicValide'=>$nicValide), 'id='.$id, false,0,true); if ($modeDebug) echo date('Y/m/d - H:i:s'). " - $iLot/$nbTmp : Mise à jour du marché id=$id avec $siren $nic...".EOL; $iDb->delete('bodacc_sirenage', "idTable='boamp_detail' AND idAnn=$id",false,true); } } $nbSirened+=$nbSireted; echo date ('Y/m/d - H:i:s')." - Mise à jour de $nbSirened SIREN et $nbSireted NIC sur $nbInsertAvis avis BOAMP ajoutés.".EOL; $strMailInfo.=date('Y/m/d - H:i:s') ." - Mise à jour de $nbSirened SIREN et $nbSireted NIC sur $nbInsertAvis avis BOAMP ajoutés.".EOL; // Mise à jour des LOTS (BOAMP C ou MAPA) echo date ('Y/m/d - H:i:s')." - Mise à jour des SIREN des Lots BOAMP...".EOL; $nbSirened=$nbSireted=0; // Tableau RS>Siren $tabRsSiren=array(); $tmp=$iDb->select('boamp_lots', 'idTxtUnique, siren, nic', 'siren>0 AND nic>0 GROUP BY idTxtUnique', false, MYSQL_ASSOC); foreach ($tmp as $nbId=>$tabTmp) $tabRsSiren[$tabTmp['idTxtUnique']]=$tabTmp['siren'].'-'.$tabTmp['nic']; echo date ('Y/m/d - H:i:s')." - La table Lots idTxt/Siret contient $nbId lignes...".EOL; $tmp=$iDb->select('boamp_lots', 'id, idTxtUnique', "siren<100 AND idTxtUnique<>'' AND (Boamp_Code='BOMP C' OR Boamp_Rubrique IN('9','94')) AND sansSuite=0 AND (nom<>'' OR adresse<>'' OR cp<>'' OR ville<>'') AND sirenValide=0", false, MYSQL_ASSOC); $nbTmp=count($tmp); foreach ($tmp as $iLot=>$tabTmp) { $id=$tabTmp['id']; $idTxtUnique=$tabTmp['idTxtUnique']; if (isset($tabRsSiren[$idTxtUnique])) { $tabSiret=explode('-', $tabRsSiren[$idTxtUnique]); $siren=$tabSiret[0]; $nic=$tabSiret[1]; if ($nic>0) { $nicValide=3; $nbSireted++; } else { $nicValide=0; $nbSirened++; } $iDb->update('boamp_lots', array( 'siren'=>$siren, 'sirenValide'=>3, 'nic'=>$nic, 'nicValide'=>$nicValide), 'id='.$id, false, 0, true); if ($modeDebug) echo date('Y/m/d - H:i:s'). " - $iLot/$nbTmp : Mise à jour du lot id=$id avec $siren $nic...".EOL; $iDb->delete('bodacc_sirenage', "idTable='boamp_lots' AND idAnn=$id",false,true); } } $nbSirened+=$nbSireted; echo date ('Y/m/d - H:i:s')." - Mise à jour de $nbSirened SIREN et $nbSireted NIC sur $nbInsertLots lots BOAMP ajoutés.".EOL; $strMailInfo.=date('Y/m/d - H:i:s') ." - Mise à jour de $nbSirened SIREN et $nbSireted NIC sur $nbInsertLots lots BOAMP ajoutés.".EOL; if ($idAnnRetDeb) { echo date ('Y/m/d - H:i:s')." - Mise à jour des Montants des Lots BOAMP...".EOL; $nbLots=$iDb->select('boamp_lots l, boamp a', 'l.id, l.idAnn, l.idLot, l.Boamp_Code, l.num, l.siren, l.nom, l.cp, l.ville, l.montantTxt, l.montant, a.annonce', "l.Boamp_Code IN ('BOMP C', 'MAPA') AND l.typeInfoLot='Attribution' AND l.montant=0 AND l.idAnn=a.id AND l.id>=$idAnnRetDeb", false, MYSQL_ASSOC, true); echo date ('Y/m/d - H:i:s')." - Description : ". mysql_error().EOL; echo date ('Y/m/d - H:i:s')." - Nombre de lots sans montants à mettre à jour : $nbLots". EOL; $nbAnn=-1; while ($tabAnn=$iDb->fetch(MYSQL_ASSOC)) { $nbAnn++; $id=$tabAnn['id']; $idAnn=$tabAnn['idAnn']; $idLot=$tabAnn['idLot']; $siren=$tabAnn['siren']; $nom=$tabAnn['nom']; $cp=$tabAnn['cp']; $ville=$tabAnn['ville']; $tmp=$iDb2->select('boamp_lots', 'MAX(idLot) AS idLotMax, COUNT(idLot) AS nbLotsDB, MAX(num) AS numMax', "idAnn=$idAnn", false, MYSQL_ASSOC); $idLotMax=$tmp[0]['idLotMax']; $nbLotsDB=$tmp[0]['nbLotsDB']; $numMax=$tmp[0]['numMax']; $ann=strtr(html_entity_decode(strip_tags($tabAnn['annonce'])),array('’'=>"'",'œ'=>'oe','Œ'=>'OE',chr(160)=>' ')); unset($tabAnn['annonce']); //print_r($tabAnn); //echo "idLotMax=$idLotMax".EOL."numMax=$numMax".EOL; if (preg_match_all("/Informations sur le montant du marché(.*)Le marché est susceptible d'être sous\-traité/Uis", $ann, $matches)) { $nbLotsTmp=count($matches[1]); // Si nous n'avons pas le même nombre de lots entre l'annonce et les lots on ne fait rien //$nbLotsDB=$idLotMax+1; if ($nbLotsTmp<>$nbLotsDB) { echo "$nbAnn/$nbLots\t$id-$idAnn-$idLot/$idLotMax\t$siren\t$nom\t$cp $ville\tNB LOTS DIFFERENTS : $nbLotsDB en base / $nbLotsTmp dans l'annonce".EOL; //echo $ann.EOL; continue; } //echo $ann.EOL; foreach($matches[1] as $iTmp=>$tmpMatch) { if (preg_match_all("/Valeur totale finale du march(?:.*)Valeur\s+(.*)EUR/Uis", $tmpMatch, $matches2)) { if (count($matches2[0])>1) { echo "$nbAnn/$nbLots\t$id-$idAnn-$idLot/$idLotMax\t$siren\t$nom\t$cp $ville\tNB ATTENTION PLUSIEURS LOTS : $nbLotsDB en base / $nbLotsTmp dans l'annonce".EOL; break; } $strMontant=trim($matches2[1][0]).' EUR'; //$tabInsert['montant']= $montant=str_replace(',','.',strtr($strMontant,array(chr(160)=>'',' '=>'',':'=>'','.'=>'')))*1; if ($iTmp==$idLot && $montant>0) { echo "$nbAnn/$nbLots\t$id-$idAnn-$idLot/$idLotMax\t$siren\t$nom\t$cp $ville\t$iTmp,$nbLotsDB/$nbLotsTmp\t'$strMontant'\t'$montant'".EOL; if ($iDb2->update('boamp_lots', array('montantTxt'=>$strMontant, 'montant'=>$montant), "id=$id", false, 0, true)) $nbMtRecup++; } //MAX(idLot) AS idLotMax, MAX(num) AS numMax', "", false, MYSQL_ASSOC); } } //print_r($matches); //die(); } //$email=$annonce['email']; } echo date ('Y/m/d - H:i:s')." - Mise à jour de $nbMtRecup montants de lots.".EOL; $strMailInfo.=date('Y/m/d - H:i:s') ." - Mise à jour de $nbMtRecup montants de lots.".EOL; } } echo date('Y/m/d - H:i:s') ." - FIN de l'intégration du BODACC.".EOL; $strMailInfo.=date('Y/m/d - H:i:s') ." - FIN de l'intégration du BODACC.".EOL; sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Chargement des annonces J.O.', $strMailInfo); if (strlen($strMailInfo)>60) sendMail('production@scores-decisions.com', 'jal42@scores-decisions.com', 'Chargement des annonces J.O.', $strMailInfo); //print_r($tabAnnonces); //$tabDepLu = array_unique ($tabDepLu); /*sort($tabDepLu); echo "Liste des départements lu :\n"; print_r($tabDepLu); $tabPartiesLues = array_unique ($tabPartiesLues); sort($tabPartiesLues); echo "Liste des Parties lues :\n"; print_r($tabPartiesLues); $tabRubriquesLues= array_unique ($tabRubriquesLues); sort($tabRubriquesLues); echo "Liste des rubriques lues :\n"; print_r($tabRubriquesLues); */ //print_r($tabAnnonces); //print_r($tabAnnoncesTxt); //print_r($tabFichiers); /* Associé de fait Associés de fait Co-indivisaires non exploitants Conjoint collaborateur Fondé de pouvoir Liquidateur de procédure collective Locataire-gérant Nom d'usage Propriétaire du fonds */ /* class DomDocument2 extends DOMDocument { function getValueFromTag($tagName) { $items=$this->getElementsByTagName($tagName); foreach ($items as $item) { return utf8_decode($item->nodeValue); } } }*/ function getLibelleDevise($codeDeviseIso) { $iDb=new WDB(); $tmp=$iDb->select('tabDevises', 'devNom', "devIso='$codeDeviseIso'"); return $tmp[0][0]; } function afficheListeEven($texte) { $iDb=new WDB(); $texte=addslashes($texte); $tmp=$iDb->select('tabEvenements', 'codEven, libEven', "libEven LIKE '%$texte%'"); foreach ($tmp as $tabTmp) echo $tabTmp['codEven'].' : '.$tabTmp['libEven'].EOL; echo EOL; } function afficheListeTrib($texte) { $iDb=new WDB(); $texte=addslashes($texte); $tmp=$iDb->select('tribunaux', 'triCode, triNom', "triNom LIKE '%$texte%'"); foreach ($tmp as $tabTmp) echo $tabTmp['triCode'].' : '.$tabTmp['triNom'].EOL; echo EOL; } function generePhraseBodaccTxt ($str, $libelle='') { // Le libellé doit être de la forme "xxxxx :" $libelle=trim($libelle); $str=trim($str); if ($libelle<>'') if (substr($libelle,-1)==':') $libelle=trim(substr($libelle,0,strlen($libelle)-1)).' : '; else $libelle=trim($libelle).' : '; // Ensuite on affiche " Libellé : blablabla." if ($str<>'') if (substr($str,-1)=='.') return " $libelle $str"; else return " $libelle $str."; else return ''; } /** Conversion d'objet DOM sous la forme d'un document XML **/ function ObjectToFile($xmlObject) { // Création d'un nouvel objet document $dom = new DomDocument('1.0', 'iso-8859-1'); // Création de l'élément racine $root = $dom->createElement($xmlObject->root->name); $dom->appendChild($root); // appel d'une fonction récursive qui construit l'élément XML // à partir de l'objet, en parcourant tout l'arbre de l'objet. setElement($dom, $xmlObject->root, $root); // Mise à jour du fichier source original $dom->save($xmlObject->source); echo $xmlObject->source; } /** Parcours d'arbre en profondeur pour la conversion objet vers XML **/ function setElement($dom_document, $object_element, $dom_element) { // récupération de la valeur CDATA de l'élément if (isset($object_element->textValue)) { $cdata = $dom_document->createTextNode($object_element->textValue); $dom_element->appendChild($cdata); } // récupération des attributs if (isset($object_element->attributes)) { foreach($object_element->attributes as $attName=>$attValue) { $dom_element->setAttribute($attName, $attValue); } } // construction des éléments fils, et parcours de l'arbre if (isset($object_element->children)) { foreach($object_element->children as $childObject) { $child = $dom_document->createElement($childObject->name); setElement($dom_document, $childObject, $child); $dom_element->appendChild($child); } } } ?>