> /var/www/log/getAsso.log * * Recherche * * Compte initial * http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID=&JAN_LIEU_DECL=&JTY_ID=&JTY_WALDEC=&JTY_SIREN=776467102&JPA_D_D=&JPA_D_F=&rechercher.x=0&rechercher.y=0 * */ // --- Define path to application directory defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(__DIR__ . '/../application')); // --- Define application environment defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production')); // --- Composer autoload require_once realpath(__DIR__ . '/../vendor/autoload.php'); // --- Create application, bootstrap, and run $application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini'); require_once APPLICATION_PATH.'/configs/config.php'; require_once 'framework/fwk.php'; require_once 'framework/common/chiffres.php'; require_once 'framework/common/dates.php'; require_once 'framework/mail/sendMail.php'; require_once 'Metier/bodacc/classMBodacc.php'; require_once 'Metier/insee/classMInsee.php'; $tabInfosGlobal=array(); $repPdfAssoCpt='/home/data/datafile/association/bilans/'; function getNextDate($dateCour, $nbJours=7) { $nextDate=date('Ymd', mktime(0, 0, 0, WDate::dateT('Ymd','m', $dateCour), WDate::dateT('Ymd','d', $dateCour)+$nbJours, WDate::dateT('Ymd','Y', $dateCour))); return $nextDate; } global $tabDep; $tabDep = array( 'Dordogne'=>'24', 'Gironde'=>'33', 'Landes'=>'40', 'Lot-et-Garonne'=>'47', 'Pyrénées-Atlantiques'=>'64', 'Bas-Rhin'=>'67', 'Haut-Rhin'=>'68', 'Allier'=>'03', 'Cantal'=>'15', 'Haute-Loire'=>'43', 'Puy-de-Dôme'=>'63', 'Calvados'=>'14', 'Manche'=>'50', 'Orne'=>'61', 'Côte-d\'Or'=>'21', 'Nièvre'=>'58', 'Saône-et-Loire'=>'71', 'Yonne'=>'89', 'Côtes-d\'Armor'=>'22', 'Finistère'=>'29', 'Ille-et-Vilaine'=>'35', 'Morbihan'=>'56', 'Cher'=>'18', 'Eure-et-Loir'=>'28', 'Indre'=>'36', 'Indre-et-Loire'=>'37', 'Loir-et-Cher'=>'41', 'Loiret'=>'45', 'Ardennes'=>'08', 'Aube'=>'10', 'Haute-Marne'=>'52', 'Marne'=>'51', 'Corse-du-sud'=>'2A', 'Haute-Corse'=>'2B', 'Doubs'=>'25', 'Haute-Saône'=>'70', 'Jura'=>'39', 'Territoire-de-Belfort'=>'90', 'Eure'=>'27', 'Seine-Maritime'=>'76', 'Essonne'=>'91', 'Hauts-de-Seine'=>'92', 'Paris'=>'75', 'Seine-et-Marne'=>'77', 'Seine-Saint-Denis'=>'93', 'Val-d\'Oise'=>'95', 'Val-de-Marne'=>'94', 'Yvelines'=>'78', 'Aude'=>'11', 'Gard'=>'30', 'Hérault'=>'34', 'Lozère'=>'48', 'Pyrénées-Orientales'=>'66', 'Corrèze'=>'19', 'Creuse'=>'23', 'Haute-Vienne'=>'87', 'Moselle'=>'57', 'Meurthe-et-Moselle'=>'54', 'Meuse'=>'55', 'Vosges'=>'88', 'Ariège'=>'09', 'Aveyron'=>'12', 'Gers'=>'32', 'Haute-Garonne'=>'31', 'Hautes-Pyrénées'=>'65', 'Lot'=>'46', 'Tarn'=>'81', 'Tarn-et-Garonne'=>'82', 'Nord'=>'59', 'Pas-de-calais'=>'62', 'Guadeloupe'=>'971', 'Guyane'=>'973', 'Martinique'=>'972', 'Réunion'=>'974', 'Saint-Pierre-et-Miquelon'=>'975', 'Mayotte'=>'976', 'Loire-Atlantique'=>'44', 'Maine-et-Loire'=>'49', 'Mayenne'=>'53', 'Sarthe'=>'72', 'Vendée'=>'85', 'Aisne'=>'02', 'Oise'=>'60', 'Somme'=>'80', 'Charente'=>'16', 'Charente-Maritime'=>'17', 'Deux-Sèvres'=>'79', 'Vienne'=>'86', 'Alpes-de-Haute-Provence'=>'04', 'Alpes-Maritimes'=>'06', 'Bouches-du-Rhone'=>'13', 'Hautes-Alpes'=>'05', 'Var'=>'83', 'Vaucluse'=>'84', 'Ain'=>'01', 'Ardèche'=>'07', 'Drôme'=>'26', 'Haute-Savoie'=>'74', 'Isère'=>'38', 'Loire'=>'42', 'Rhône'=>'69', 'Savoie'=>'73', ); function getInfosAnnonceAsso($annonceHtml, $depotComptes=false) { $tabAnn=array(); global $tabDep; global $iInsee; $tabAnn['Assoc_Nom']=htm2txt(@getTextInHtml($annonceHtml, '

Association : ', '', '')); if (substr($tabAnn['Assoc_Nom'],-1)=='.') $tabAnn['Assoc_Nom']=substr($tabAnn['Assoc_Nom'],0,-1); $tabAnn['Siren']=str_replace(' ','', strtr(htm2txt(@getTextInHtml($annonceHtml, '

Siren : ', '', '')),' .-/;,',' '))*1; $tabAnn['sirenValide']=$iInsee->valideSiren($tabAnn['Siren']); $tabAnn['Waldec']=strtoupper(@getTextInHtml($annonceHtml, '

Identification R.N.A. : ', '', '')); $tabAnn['Annonce_Html']=str_replace('

','',str_replace(chr(160), ' ', html_entity_decode(@getTextInHtml($annonceHtml, '


', '
', '

')))); if ($tabAnn['Annonce_Html']=='') // Les fondations n'ont pas le même corps HTML $tabAnn['Annonce_Html']=str_replace('

','',str_replace(chr(160), ' ', html_entity_decode(@getTextInHtml($annonceHtml, '

', '

', '

')))); if ($tabAnn['Annonce_Html']=='') // Les fondations n'ont pas le même corps HTML $tabAnn['Annonce_Html']='#####'.str_replace(chr(160), ' ', html_entity_decode($annonceHtml)); if ($depotComptes) { $tabAnn['pdfLink']=@getTextInHtml($annonceHtml, ''); $tmp=@getTextInHtml($annonceHtml, 'Date de clôture de l\'exercice : ', '', ''); $tabAnn['dateCloture']=WDate::dateT('d/m/Y', 'Y-m-d', $tmp); if ( $tabAnn['dateCloture']=='' ) { preg_match('/_([0-9]{8})/', $tabAnn['pdfLink'], $matches); /*sendMail( 'mricois@scores-decisions.com', 'mricois@scores-decisions.com', 'Associations', $annonceHtml."\n\n\n".print_r($matches,1));*/ } $tabAnn['typeCompte']=@getTextInHtml($annonceHtml, '>', ''); $tabAnn['dateInsert']=date('YmdHis'); } else { $tabAnn['nic']=0; $tabAnn['nicValide']=0; $tabAnn['Activite']=htm2txt(@getTextInHtml($annonceHtml, 'Activité(s) : ', '', '')); $tabAnn['Num_Annonce']=@getTextInHtml($annonceHtml, 'No d\'annonce : ', '', ''); $tmp=@getTextInHtml($annonceHtml, 'Paru le : ', '', ''); $tabAnn['Date_Parution']=substr($tmp,6,4).'-'.substr($tmp,3,2).'-'.substr($tmp,0,2); $tabAnn['Num_Parution']=@getTextInHtml($annonceHtml, 'No de parution : ', '', ''); $depReg=trim(htm2txt(@getTextInHtml($annonceHtml, 'Département (Région) : ','','

'))); $tabDepReg=explode('(', $depReg); $dep=trim($tabDepReg[0]); $numDep=$tabDep[$dep]; if ($numDep=='') echo date ('Y/m/d - H:i:s') ." - Attention, département '$dep' non trouvé !". EOL; $region=trim(substr($tabDepReg[1],0,strlen($tabDepReg[1])-1)); $tabAnn['Departement']=$numDep; $tabAnn['Sous_Prefecture']=htm2txt(@getTextInHtml($annonceHtml, '

Lieu parution : Déclaration à la ', ' à la ', '')); $tabAnn['Type_Annonce']=htm2txt(@getTextInHtml($annonceHtml, 'Type d\'annonce : ', '', '')); /** Recherche du type d'association **/ if (preg_match('/ASL/i', $tabAnn['Type_Annonce']) || preg_match('/syndicale/i', $tabAnn['Type_Annonce'])) $tabAnn['typeAsso']='ASL'; elseif (preg_match('/Fondation/i', $tabAnn['Type_Annonce'])) $tabAnn['typeAsso']='FON'; elseif (preg_match('/dotation/i', $tabAnn['Type_Annonce'])) $tabAnn['typeAsso']='FOD'; else $tabAnn['typeAsso']='ASS'; /** Recherche du type d'insertion **/ if (preg_match('/ANNULATION/i', $tabAnn['Type_Annonce'])) $tabAnn['typeAnnonce']='Suppression'; elseif (preg_match('/RECTIFICATIF/i', $tabAnn['Type_Annonce'])) $tabAnn['typeAnnonce']='Rectificatif'; else $tabAnn['typeAnnonce']='Insertion'; $tabAnn['Assoc_Duree']=trim(htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Durée :', 'Durée :', '.
'))); $tabAnn['Assoc_Dotation']=trim(htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Montant de la dotation initiale :', 'initiale :', '.
'))); $tabAnn['Assoc_ProgAction']=trim(htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'action pluriannuel :', 'pluriannuel :', '.
'))); $tabAnn['Assoc_Fondateurs']=trim(htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], ' de chacun des fondateurs :', 'fondateurs :', '.

'))); //

Autorisation administrative.

//Date de signature de statuts : 21 décembre 1992.
//Date de la modification des statuts : 7 février 1996, autorisation délivrée par le préfet 16 mars 1996.

Autorisation tacite.

//Date de la demande de modification des statuts : 7 février 1996, sollicitée auprès du préfet de Paris.

$tabAnn['Assoc_Web']=@getTextInHtml($tabAnn['Annonce_Html'], 'ite Internet : ', '', ''); if (substr($tabAnn['Assoc_Web'],-1)=='.') $tabAnn['Assoc_Web']=substr($tabAnn['Assoc_Web'],0,-1); $tabAnn['Assoc_Mail']= @getTextInHtml($tabAnn['Annonce_Html'], 'Courriel : ', '', ''); if ($tabAnn['Assoc_Mail']=='') $tabAnn['Assoc_Mail']= @getTextInHtml($tabAnn['Annonce_Html'], 'Mél. : ', '', ''); if (substr($tabAnn['Assoc_Mail'],-1)=='.') $tabAnn['Assoc_Mail']=substr($tabAnn['Assoc_Mail'],0,-1); $tabAnn['Assoc_Objet']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '>Objet : ', '', '')); if(trim($tabAnn['Assoc_Objet'])=='') $tabAnn['Assoc_Objet']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Objet : ', '', '
')); $tabAnn['Assoc_NObjet']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Nouvel objet : ', '', '')); $tabAnn['Assoc_AObjet']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Additif à l’objet : ', '', '')); $tabAnn['Assoc_NAdresse']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Transféré ; nouvelle adresse : ', '', '. ')); $tabAnn['Assoc_Fusion']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Fusion des associations : ', '', '')); $tabAnn['Assoc_Adresse']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Siège social : ', '', '. ')); // Fondations if (trim($tabAnn['Assoc_Adresse'])=='') $tabAnn['Assoc_Adresse']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Siège : ', '', '.
')); if (trim($tabAnn['Assoc_Adresse'])=='') $tabAnn['Assoc_Adresse']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Siège : ', '', '.

')); $tabAnn['Assoc_Date_Declaration']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '>Date de la déclaration : ', '', '.')); if ($tabAnn['Assoc_Date_Declaration']=='') $tabAnn['Assoc_Date_Declaration']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '>Date de délivrance du récépissé : ', '', '.')); // Fondations if(trim($tabAnn['Assoc_Date_Declaration'])=='') { $tabAnn['Assoc_Date_Declaration']=trim(htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'autorisation administrative :', 'administrative :', ','))); if (trim($tabAnn['Assoc_Date_Declaration'])=='') $tabAnn['Assoc_Date_Declaration']=trim(htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Date de la modification des statuts :', 'statuts :', ','))); if(trim($tabAnn['Sous_Prefecture'])=='') $tabAnn['Sous_Prefecture']=htm2txt(@getTextInHtml($annonceHtml, 'sollicitée auprès du', 'du', '
')); if(trim($tabAnn['Sous_Prefecture'])=='') $tabAnn['Sous_Prefecture']=htm2txt(@getTextInHtml($annonceHtml, 'sollicitée auprès du', 'du', '

')); } $tabAnn['Assoc_Date_Declaration2']=WDate::dateT('d M Y', 'Y-m-d', $tabAnn['Assoc_Date_Declaration']); $tabAnn['Assoc_ANom']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Ancien titre : ', '', '')); $tabAnn['Assoc_Annulation']='Annulation '.htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '>Annulation', '', '.')); /*Annulation de l’insertion no 1014, parue au Journal officiel no 25, du 24 juin 2006, page 3106.*/ if ($tabAnn['Assoc_Annulation']=='Annulation ') $tabAnn['Assoc_Annulation']=''; if ($tabAnn['Assoc_ANom']=='') $tabAnn['Assoc_ANom']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Au lieu de : ', '', '')); if (substr($tabAnn['Assoc_ANom'],-1)=='.') $tabAnn['Assoc_ANom']=substr($tabAnn['Assoc_ANom'],0,-1); $tabAnn['Assoc_NNom']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Nouveau titre :', '', '')); if (substr($tabAnn['Assoc_NNom'],-1)=='.') $tabAnn['Assoc_NNom']=substr($tabAnn['Assoc_NNom'],0,-1); } return $tabAnn; } $tempsMinEntreRequetes=5; $tempsMaxEntreRequetes=30; set_time_limit(0); $lastJO=$dateDebut=$dateFin=$dateF=$dateCour=$verif=false; $strInfoProg='Usage : '.basename($argv[0]). " [OPTION] Recupère les annonces Association sur le site du JO Association. Sans aucun paramètre, récupération du dernier JO Association. Sinon: -d:JJ/MM/AAAA Date de début de publication -f:JJ/MM/AAAA Date de fin de publication -l Dernier JO Association uniquement (*) -c Dépôts des comptes uniquement -s:123456789 Recherche par siren -n:X Intervalle MIN en secondes entre les requêtes sur le site des JO (défaut=$tempsMinEntreRequetes) -i:X \" MAX \" \" \" \" \" \" \" \" \" \" (défaut=$tempsMaxEntreRequetes) -v Vérifier que toutes les annonces du JO sont en base ! "; $depotComptes=false; $siren = null; $argv=$_SERVER['argv']; if ($_SERVER['argc']==1) $lastJO=true; else { for ($i=1; isset($argv[$i]); $i++) { if (substr($argv[$i],0,1)=='-') { switch (substr($argv[$i],1,1)) { case 'd': $dateDebut=substr($argv[$i],3,10); $dateDeb=WDate::dateT('d/m/Y', 'Ymd', $dateDebut); break; case 'f': $dateFin=substr($argv[$i],3,10); $dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin); break; case 'n': $tempsMinEntreRequetes=trim(substr($argv[$i],3))*1; if ($tempsMinEntreRequetes<0) $tempsMinEntreRequetes=0; break; case 'i': $tempsMaxEntreRequetes=trim(substr($argv[$i],3))*1; if ($tempsMaxEntreRequetes<5) $tempsMaxEntreRequetes=2; break; case 'l': $lastJO=true; break; case 'v': $verif=true; break; case 'c': $depotComptes=true; break; case 's': $siren = substr($argv[$i],3,9); break; case '-': die($strInfoProg); break; default: die('Option '. $argv[$i] . " inconnue !\n"); } } } } if ($depotComptes) { $tabReg = array( 'ASSOCIATION%2FCOMPTE', 'FONDATION%2FCOMPTE', 'FONDS+DE+DOTATION%2FCOMPTE', 'AUTRE%2FCOMPTE', ); } else { $tabReg = array( 'ASSOCIATION%2FCREATION', 'ASSOCIATION%2FMODIFICATION', 'ASSOCIATION%2FDISSOLUTION', 'ASL', 'FONDATION', 'DECISION+JUSTICE', 'AUTRE', 'FONDS+DE+DOTATION', ); } $iDb=new WDB(); $iInsee=new MInsee(); $referer='http://www.journal-officiel.gouv.fr/association/'; /** * */ if ($verif) { echo date('Y/m/d - H:i:s') ." - Comptage du nombre d'annonce présentes en base par date de parution...". EOL; $AnnDb=$iDb->select('asso', 'Date_Parution, count(*) as nb', '1 GROUP BY Date_Parution'); foreach ($AnnDb as $i=>$tabDates) { if ($tabDates[0]<>'0000-00-00') { $parDate=$tabDates[0]; $parNb =$tabDates[1]; $dateFmt=str_replace('/', '%2F', WDate::dateT('Y-m-d', 'd/m/Y',$parDate)); $url="http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID=&JAN_LIEU_DECL=&JTY_ID=&JTY_WALDEC=&JPA_D_D=$dateFmt&JPA_D_F=".$dateFmt.'&rechercher.x='.rand(1,68).'&rechercher.y='.rand(1,16).'&rechercher=Rechercher'; $page=getUrl($url, '', '', $referer, false, 'www.journal-officiel.gouv.fr'); $body=$page['body']; $ctx=@getTextInHtml($body, 'select('asso', 'count(*) AS nb', "Date_Parution='$dateDb'", false, MYSQL_ASSOC); $nbAnnDb=$AnnDb[0]['nb']; if ($nbAnnDb==$nbAnnonces) { echo date('Y/m/d - H:i:s') .' - Toutes les annonces du '. $dateDerParution .' sont en base !'. EOL; echo date('Y/m/d - H:i:s') .' - FIN du script'. EOL; die(); } elseif ($nbAnnDb>0 && $nbAnnDb<$nbAnnonces) { $message=date('Y/m/d - H:i:s') .' - ATTENTION : Il n\'y a que '. $nbAnnDb .' annonces en base sur les '. $nbAnnonces .' annonces présentes au JO Association du '. $dateDerParution .' !'. EOL; echo $message; sendMail('supportdev@scores-decisions.com', 'suivi@scores-decisions.com', 'JO Association', $message); echo date('Y/m/d - H:i:s') .' - Tentative de récupération des annonces...'. EOL; } } else { // On recherche si nous n'avons pas déjà toutes ces annonces en base ! $dateDb=substr($dateCour,0,4).'-'.substr($dateCour,4,2).'-'.substr($dateCour,6,2); $dateDerParution=WDate::dateT('Y-m-d', 'd/m/Y',$dateDb); if ($depotComptes) { switch ($region) { case 'ASSOCIATION%2FCOMPTE': $strRegSql=" AND typeAsso='ASS' "; break; case 'FONDATION%2FCOMPTE': $strRegSql=" AND typeAsso='FON' "; break; case 'FONDS+DE+DOTATION%2FCOMPTE': $strRegSql=" AND typeAsso='FOD' "; break; case 'AUTRE%2FCOMPTE': $strRegSql=" AND typeAsso='DIV' "; break; } $AnnDb=$iDb->select('asso_bilans', 'count(*) AS nb', "Assoc_Date_Declaration='$dateDb' $strRegSql", false, MYSQL_ASSOC); $strJO='depôts des comptes associations'; } else { $AnnDb=$iDb->select('asso', 'count(*) AS nb', "Date_Parution='$dateDb'", false, MYSQL_ASSOC); $strJO='associations'; } $nbAnnDb=$AnnDb[0]['nb']; if ($nbAnnDb>=$nbAnnonces) { echo mysql_error().EOL; echo date('Y/m/d - H:i:s') ." - Les $nbAnnonces annonces $strJO $reg5 du $dateDerParution ($dateDb) sont en base ($nbAnnDb) !". EOL; randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes); continue; } elseif ($nbAnnDb>0 && $nbAnnDb<$nbAnnonces) { $message.=date('Y/m/d - H:i:s') ." - ATTENTION : Il n'y a que $nbAnnDb annonce(s) $strJO en base sur les $nbAnnonces annonces présentes au JO du $dateDerParution !". EOL; echo date('Y/m/d - H:i:s') ." - ATTENTION : Il n'y a que $nbAnnDb annonce(s) $strJO en base sur les $nbAnnonces annonces présentes au JO du $dateDerParution !". EOL; echo date('Y/m/d - H:i:s') .' - Tentative de récupération des annonces...'. EOL; } else { $message.=date('Y/m/d - H:i:s') ." - Il y a $nbAnnDb annonce(s) $strJO $reg5 en base sur les $nbAnnonces annonces présentes au JO du $dateDerParution !". EOL; echo date('Y/m/d - H:i:s') ." - Il y a $nbAnnDb annonce(s) $strJO $reg5 en base sur les $nbAnnonces annonces présentes au JO du $dateDerParution !". EOL; } } $tabAnnonces=explode('

', utf8_encode($page['body'])); for ($j=1; $j<26 && isset($tabAnnonces[$j]); $j++) $tabAnn[$j-1]=$tabAnnonces[$j]; randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes); $referer=$url; for ($i=2; $i<=$nbPages; $i++) { if (!$lastJO) { $data=''; $date1=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',$dateCour)); if ($depotComptes) $date2=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',getNextDate($dateCour,0))); else $date2=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',getNextDate($dateCour))); $url='http://www.journal-officiel.gouv.fr/association/index.php?ctx='.$ctx.'&page='.$i.'&JRE_ID='.urlencode($region).'&JPA_D_D='.$date1.'&JPA_D_F='.$date2; } else { $date1='';$date2='';$data='1'; $url='http://www.journal-officiel.gouv.fr/association/index.php?ctx='.$ctx.'&page='.$i; } $page=getUrl($url, '', '', $referer, false, 'www.journal-officiel.gouv.fr'); $tabAnnonces=explode('

', utf8_encode($page['body'])); for ($j=1; $j<26; $j++) { $k=$j+(25*($i-1))-1; if ($k<$nbAnnonces) $tabAnn[$k]=$tabAnnonces[$j]; } flush(); if ($i==2) echo date('Y/m/d - H:i:s') ." - Page $i/$nbPages"; else echo ", $i/$nbPages"; if ($i==$nbPages) echo '.'.EOL; else randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes); } $tabActivites=array(); for ($i=0; $i<$nbAnnonces; $i++) { $infoAnnBalo=getInfosAnnonceAsso($tabAnn[$i], $depotComptes); $tabInfos=array(); preg_match_all("|(.*)|U", $infoAnnBalo['Annonce_Html'], $tabInfos); $tabInfosGlobal=array_unique(array_merge($tabInfosGlobal, $tabInfos[1])); // On recherche si nous n'avons pas déjà cette annonce en base ! if ($depotComptes) { $AnnDb=$iDb->select('asso_bilans', 'count(*) AS nb', "Siren=".$infoAnnBalo['Siren']." AND Waldec='".$infoAnnBalo['Waldec']."' AND dateCloture='".$infoAnnBalo['dateCloture']."'", false, MYSQL_ASSOC); // $AnnDb[0][0]=0; } else { $AnnDb=$iDb->select('asso', 'count(*) AS nb', "Num_Annonce='".$infoAnnBalo['Num_Annonce']."' AND Date_Parution='".$infoAnnBalo['Date_Parution']."' AND Num_Parution='".$infoAnnBalo['Num_Parution']."'", false, MYSQL_ASSOC); $dateAff=$infoAnnBalo['Date_Parution']; } $nbAnnDb=$AnnDb[0]['nb']; $i2=$i+1; $strRegion=', '. $region; if ($depotComptes) { $table='asso_bilans'; // Si le bilan PDF n'est pas déjà sur le disk, on va le chercher ! switch ($region) { case 'ASSOCIATION%2FCOMPTE': $infoAnnBalo['typeAsso']='ASS'; break; case 'FONDATION%2FCOMPTE': $infoAnnBalo['typeAsso']='FON'; break; case 'FONDS+DE+DOTATION%2FCOMPTE': $infoAnnBalo['typeAsso']='FOD'; break; case 'AUTRE%2FCOMPTE': default: $infoAnnBalo['typeAsso']='DIV'; break; } $dateAff=$dateCour.' ('.$infoAnnBalo['dateCloture'].')'; $infoAnnBalo['Assoc_Date_Declaration']=$dateCour; $tabPdf=getPdfInfo($repPdfAssoCpt.'/'.basename($infoAnnBalo['pdfLink'])); if (!$tabPdf) { $page=getUrl('http://www.journal-officiel.gouv.fr/'.$infoAnnBalo['pdfLink'], '', '', '', false); $fp = fopen($repPdfAssoCpt.'/'.basename($infoAnnBalo['pdfLink']), 'w'); if ($fp === false ) { $message.=date('Y/m/d - H:i:s') .' - ERREUR : Problème de création du PDF '. basename($infoAnnBalo['pdfLink']) ." pour la parution du $dateAff $strRegion, Annonce $i2/$nbAnnonces, Association \"". $infoAnnBalo['Assoc_Nom'] .'" !'.EOL; echo date('Y/m/d - H:i:s') .' - ERREUR : Problème de création du PDF '. basename($infoAnnBalo['pdfLink']) ." pour la parution du $dateAff $strRegion, Annonce $i2/$nbAnnonces, Association \"". $infoAnnBalo['Assoc_Nom'] .'" !'.EOL; } else { fwrite($fp, $page['body']); fclose($fp); } $tabPdf=getPdfInfo($repPdfAssoCpt.'/'.basename($infoAnnBalo['pdfLink'])); randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes); } $infoAnnBalo['pdfSize'] = $tabPdf['pdfSize']; $infoAnnBalo['pdfVer'] = $tabPdf['version']; $infoAnnBalo['pdfPage'] = $tabPdf['nbPages']; } else { $table='asso'; $tabTmp=explode('/',$infoAnnBalo['Activite']); $tabActivites=array_merge($tabActivites, $tabTmp); } if ($nbAnnDb==1) { echo date('Y/m/d - H:i:s') ." - Parution du $dateAff $strRegion, Annonce $i2/$nbAnnonces, Association \"". $infoAnnBalo['Assoc_Nom'] .'" déjà en base !'.EOL; // L'annonce est déjà en base ! continue; } else { $message.=date('Y/m/d - H:i:s') ." - Parution du $dateAff $strRegion, Annonce $i2/$nbAnnonces, Association \"". $infoAnnBalo['Assoc_Nom'] .'"... enregistrement'.EOL; echo date('Y/m/d - H:i:s') ." - Parution du $dateAff $strRegion, Annonce $i2/$nbAnnonces, Association \"". $infoAnnBalo['Assoc_Nom'] .'"... enregistrement'.EOL; } if (!$iDb->insert($table, $infoAnnBalo)) echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . EOL; } if ($lastJO) { print_r($tabInfosGlobal); echo date('Y/m/d - H:i:s') .' - FIN du script'. EOL; die(); } unset($tabAnn); } // Fin boucle région if ($depotComptes) $dateCour=getNextDate($dateCour,1); else $dateCour=getNextDate($dateCour); } // Fin boucle Data if ($depotComptes) { // $AnnDb=$iDb->select('annonces', 'MAX(dateSource) AS dateMAJ', "typeEven=3200", false, MYSQL_ASSOC); $dateMaj=$AnnDb[0]['dateMAJ']; // echo date('Y/m/d - H:i:s') ." - Dernière mise à jour des annonces dépots en collecte en date du $dateMaj.".EOL; $AnnDb=$iDb->select('asso_bilans', "Assoc_Nom AS raisonSociale, siren, sirenValide, dateCloture AS dateEffetFinP, Assoc_Date_Declaration AS dateJugement, dateInsert AS dateSource, '3200' AS typeEven, 'DJOFFJ' AS tribunal, 'JS' AS source, Waldec", "dateInsert>'$dateMaj' ORDER BY dateEffetFinP DESC", false, MYSQL_ASSOC); $nbAnnonces=count($AnnDb); $message.=date('Y/m/d - H:i:s') ." - Il y a $nbAnnonces annonces dépots à mettre en collecte en date du $dateMaj.".EOL; echo date('Y/m/d - H:i:s') ." - Il y a $nbAnnonces annonces dépots à mettre en collecte en date du $dateMaj.".EOL; foreach ($AnnDb as $i=>$tabInsert) { $tabTmp=$iInsee->getIdentiteLight($tabInsert['siren']); $tabInsert['adresse'] = $tabTmp['Adresse']; $tabInsert['codePostal']= $tabTmp['CP']; $tabInsert['ville'] = $tabTmp['Ville']; $tabInsert['dateInsert']= date('YmdHis'); if (trim($tabInsert['Waldec'])<>'') $tabInsert['complement']= 'Identifiant Waldec : '.$tabInsert['Waldec']; unset($tabInsert['Waldec']); //print_r($tabInsert); //die(); if (!$iDb->insert('annonces', $tabInsert)) echo '';//date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . EOL; } sendMail('supportdev@scores-decisions.com', 'suivi@scores-decisions.com', '[CHARGEMENT] JO Association Comptes', $message); } echo date('Y/m/d - H:i:s') .' - FIN du script.'. EOL;