#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini [SIREN] Mise à disposition d'un dossier dans le flux IMR du lendemain via l'Extranet Infogreffe (license RNCS IMR). Options : -d Mode debug (Verbosité au maximum) -s:SSAAMMJJ Reprendre la mise à jour depuis le flux Insee du SSAAMMJJ -h Reprendre l'historique "; $iDb=new WDB(); $iArtisanat=new MArtisanat(); $argv=$_SERVER['argv']; $tabSiren=array(); $jourFlux=$histo=false; for ($i=1,$j=0; isset($argv[$i]); $i++) { if (substr($argv[$i],0,1)=='-') { switch (substr($argv[$i],1,1)) { case 'd': $modeDebug=true; break; case 's': $jourFlux=substr($argv[$i],3,8); break; case 'h': $histo=true; break; /* case 'j': $loadInpiLocal=false; break; case 'q': $loadActesDuJour=false; break; case 'b': $loadBilans=false; break; case 'i': $iReprise=substr($argv[$i],3); break;*/ case '-': case '?': die($strInfoScript); break; default: die('Option '. $argv[$i] . ' inconnue !'.EOL); break; } } else $tabSiren[]=$argv[$i]; } /** Si pas de Siren en param, recherche des Artisans à compléter en automatique **/ if (count($tabSiren)==0 || $jourFlux || $histo) { if (!$jourFlux && !$histo) { $ret=$iDb->select('insee.insee_even', 'MAX(idFlux) AS dateFlux', '1', false, MYSQL_ASSOC); $lastFlux=str_replace('-','',$ret[0]['dateFlux'])*1; } else $lastFlux=$jourFlux; if (!$histo) { echo date ('Y/m/d - H:i:s') . " - Le dernier flux INSEE date du $lastFlux.".EOL; $nb=$iDb->select('insee.insee_even', 'insSIREN AS siren', "idFlux>=$lastFlux AND (insCJ IN (1100,1300) OR insAPRM<>'') AND insCODPOS LIKE '75%' GROUP BY siren", false, MYSQL_ASSOC, true); } else { //$nb=$iDb->select('etablissements_old', 'siren', "source=2 AND actif IN(0,1) AND siege IN(0,1) AND adr_dep='75' AND cj IN (1100,1300) GROUP BY siren", false, MYSQL_ASSOC, true); $nb=$iDb->select('insee.identite', 'siren', "APRM<>'' AND ADR_DEP=75 GROUP BY siren", false, MYSQL_ASSOC, true); } echo date ('Y/m/d - H:i:s') . " - Il y a $nb dossiers d'Artisans ou Artisans/Commerçants à mettre à jour...".EOL; $nbDem=0; while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) { $nbDem++; // On limite à 1000 le nombre de demandes possibles car Infogreffe limite pour l'instant à 10 les demandes de MAJ if ($nbDem>1000) break; $tabSiren[]=$tabTmp['siren']; //$tabEntrep[$tabTmp['siren']]=$tabTmp; } } $nb=count($tabSiren); //$nbDemandesDuJour=rand(15, 65); //echo date ('Y/m/d - H:i:s') . " - Mise à jour de $nbDemandesDuJour dossiers...".EOL; $nbDemandesEncours=0; //die(); foreach($tabSiren as $i=>$siren) { $strErr=''; $ret=@$iArtisanat->getIdentite($siren); print_r($ret); //die(); if ($iArtisanat->libErreur<>'') echo $iArtisanat->libErreur.EOL; elseif (!$iArtisanat->enCache) { echo date ('Y/m/d - H:i:s') . " - Dossier n°$i/$nb : $siren récupéré...".EOL; randsleep(35,90); } elseif ($iArtisanat->enCache) { echo date ('Y/m/d - H:i:s') . " - Dossier n°$i/$nb : $siren en cache.".EOL; } //print_r($iRncs->infoIMR).EOL; /*if (@$iRncs->infoIMR['validation-erreur']<>'') $strErr.=' ('.$iRncs->infoIMR['validation-erreur'].')'; if ($iRncs->infoIMR['message-erreur']=="Vous avez déjà atteint le nombre maximal de demandes de réémissions autorisées aujourd'hui. Veuillez renouveler votre demande demain.") { echo date ('Y/m/d - H:i:s') . " - $i/$nb - $siren : ".$iRncs->infoIMR['message-erreur'].$strErr.EOL; break; } elseif($iRncs->infoIMR['message-erreur']=="Aucune entreprise trouvée pour ce numéro SIREN") { echo date ('Y/m/d - H:i:s') . " - $i/$nb - $siren : ".$iRncs->infoIMR['message-erreur'].$strErr.EOL; } elseif ($iRncs->infoIMR['validation']) { $nbDemandesEncours++; echo date ('Y/m/d - H:i:s') . " - $i/$nb - $siren : ".$iRncs->infoIMR['validation-ok'].$strErr." ($nbDemandesEncours/$nbDemandesDuJour)".EOL; if ($nbDemandesEncours>$nbDemandesDuJour) break; } elseif (!$ret) { echo date ('Y/m/d - H:i:s') . " - $i/$nb - $siren : ".$iRncs->libErreur.$strErr.EOL; } /** @todo * - Enregistrer la demande complète avec : * - le retour On line (tous les champs) * - la date de la demande ainsi que la source (client, privilèges, ancienort, etc...) * - la date de la réponse IMR */ } die(); sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Chargement des informations Greffes', $message); die(); ?>