235 lines
7.0 KiB
PHP
235 lines
7.0 KiB
PHP
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
|
<?php
|
|
|
|
include_once(FWK_PATH.'common/chiffres.php');
|
|
include_once(FWK_PATH.'common/dates.php');
|
|
include_once(FWK_PATH.'common/ftp.php');
|
|
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
|
include_once(INCLUDE_PATH.'partenaires/classMMarques.php');
|
|
include_once(FWK_PATH.'mail/sendMail.php');
|
|
|
|
$strInfoScript='Usage : '.basename($argv[0]). " [OPTIONS] marques1 marques2 ...
|
|
Téléchargement et mise à jour de Marques
|
|
|
|
Options:
|
|
-v Mode verbose ou debug
|
|
-f Forcer la mise à jour depuis Qualibat
|
|
-m Retourne le dernier numéro Qualibat en base
|
|
-i Les paramètres sont des numéros de marques
|
|
-r Les paramètres sont des Raisons Sociales
|
|
-p Récupère les PDF non encore en base
|
|
-b Mise à jour des marques issues des PDF
|
|
|
|
(*): Valeur par défaut !
|
|
";
|
|
$iMarque=new MMarques();
|
|
|
|
$modeDebug=$force=$max=$annee=$majNum=$majNom=$majObj=$getPdf=$getMBopi=false;
|
|
|
|
$tabMarques=array();
|
|
|
|
$argv=$_SERVER['argv'];
|
|
if ($_SERVER['argc']>1)
|
|
{
|
|
for ($i=1; isset($argv[$i]); $i++) {
|
|
if (substr($argv[$i],0,1)=='-') {
|
|
switch (substr($argv[$i],1,1)) {
|
|
case 'v': $modeDebug=true;
|
|
define('TMIN',1);
|
|
define('TMAX',2);
|
|
break;
|
|
case 'f': $force=true; break;
|
|
case 'm': $max=true;
|
|
$annee=substr($argv[$i],3); break;
|
|
case 'i': $majNum=true; break;
|
|
case 'r': $majNom=true; break;
|
|
case 'r': $majObj=true; break;
|
|
case 'p': $getPdf=true; break;
|
|
case 'b': $getMBopi=true; break;
|
|
case '-':
|
|
case '?': die($strInfoScript); break;
|
|
default: die('Option '. $argv[$i] . " inconnue !\n");
|
|
break;
|
|
}
|
|
} else {
|
|
$tabMarques[]=$argv[$i];
|
|
}
|
|
}
|
|
}
|
|
/*
|
|
if (!defined('TMIN')) define('TMIN',31);
|
|
if (!defined('TMAX')) define('TMAX',160);
|
|
if (!defined('TMIN')) define('TMIN',21);
|
|
if (!defined('TMAX')) define('TMAX',60);
|
|
*/
|
|
if (!defined('TMIN')) define('TMIN',10);
|
|
if (!defined('TMAX')) define('TMAX',20);
|
|
|
|
$iDb=new WDB('bopi');
|
|
|
|
if ($getPdf) {
|
|
$ret=$iDb->select( 'infos_bopi',
|
|
'MAX(nomPdf) as nomPdf',
|
|
'1', false, MYSQL_ASSOC);
|
|
$ret=$ret[0];
|
|
$pdf=$ret['nomPdf'];
|
|
echo date('Y/m/d - H:i:s')." - Dernier BOPI Marques téléchargé : $pdf...".EOL;
|
|
$anneeMois=strtr($pdf, array('bopi_marques_'=>'', 'v1'=>'', 'v2'=>'', '.pdf'=>''));
|
|
$tabAnneeMois=explode('-', $anneeMois);
|
|
$lastAnnee=$tabAnneeMois[0];
|
|
$numFin =$tabAnneeMois[1];
|
|
for ($annee=$lastAnnee; $annee<=date('Y'); $annee++) {
|
|
if ($annee==date('Y')) {
|
|
$numDeb=$lastMois;
|
|
$numFin=date('W');
|
|
//echo 'A'.EOL;
|
|
} elseif ($numFin==52 && $annee+1==date('Y')) {
|
|
$annee++;
|
|
$numDeb=1;
|
|
$numFin=date('W');
|
|
//echo 'B'.EOL;
|
|
} else {
|
|
$numDeb=1;
|
|
$numFin=52;
|
|
//echo 'C'.EOL;
|
|
}
|
|
//die($annee.EOL.$lastAnnee.EOL.date('Y').EOL.$numDeb.EOL.$numFin.EOL);
|
|
for ($num=$numDeb; $num<=$numFin; $num++) {
|
|
$taille=$iMarque->getEditionPdf('marques', $annee, $num);
|
|
$taille=round($taille/(1024*1024),2);
|
|
echo date('Y/m/d - H:i:s')." - BOPI $annee-$num : $taille Mo.".EOL;
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($getMBopi) {
|
|
|
|
$ret=$iDb->select( 'infos_bopi_marques',
|
|
'DISTINCT numeroMarque',
|
|
'dateRecup IS NULL OR nbResults IS NULL OR nbResults<1', false, MYSQL_ASSOC);
|
|
foreach ($ret as $i=>$tabTmp)
|
|
$tabMarques[]=$tabTmp['numeroMarque'];
|
|
shuffle($tabMarques);
|
|
$majNum=true;
|
|
}
|
|
$nb=count($tabMarques);
|
|
$nbAcces=$nbCache=0;
|
|
|
|
foreach ($tabMarques as $i=>$marque) {
|
|
if ($majNum) {
|
|
echo date('Y/m/d - H:i:s')." - Marque $i/$nb : n°$marque... ";
|
|
$ret=$iMarque->getMarques(0, $marque);
|
|
if (is_array($ret) && count($ret)>0) {
|
|
print_r($ret);
|
|
$nbCache++;
|
|
} else {
|
|
$res=$iMarque->getListeMarques($marque, '', '', true);
|
|
if ($getMBopi) {
|
|
$iDb->update( 'infos_bopi_marques',
|
|
array('dateRecup'=>date('Ymd'),
|
|
'nbResults'=>$res),
|
|
"numeroMarque=$marque", false);
|
|
$nbAcces++;
|
|
randsleep(TMIN,TMAX);
|
|
if (!$modeDebug && date('Hi')*1>1930) {
|
|
$nbTot=$nbAcces+$nbCache;
|
|
$pct=@round($nbCache/$nbTot*100,2);
|
|
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Pompe Marques - Traitement quotidien", "$nbTot requêtes traitées dont $nbCache en cache ($pct %)");
|
|
die();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
elseif ($majNom)
|
|
$iMarque->getListeMarques('', $marque, '', true);
|
|
elseif ($majObj)
|
|
$iMarque->getListeMarques('', '', $marque, true);
|
|
}
|
|
die();
|
|
|
|
|
|
|
|
$referer=$cookie='';
|
|
|
|
$tDeb=microtime(true);
|
|
$page=getUrl($url, $cookie, $post, $referer, false, '', '', 60);
|
|
$duree=round(microtime(true)-$tDeb,3);
|
|
$body=$page['body'];
|
|
|
|
die();
|
|
|
|
if ($max) {
|
|
$idQualibat=$iQualibat->getMaxQualibat();
|
|
echo date('Y/m/d - H:i:s')." - Dernier id Qualibat : '$idQualibat'.".EOL;
|
|
die();
|
|
}
|
|
|
|
echo date('Y/m/d - H:i:s') ." - DEBUT du programme de récupération des entreprises Qualibat.".EOL;
|
|
|
|
if (count($tabQualibat)==0) {
|
|
$partiel=false;
|
|
|
|
$idQualibat=$iQualibat->getMaxQualibat();
|
|
if ($modeDebug) echo date('Y/m/d - H:i:s')." - Dernier id Qualibat : '$idQualibat'.".EOL;
|
|
for ($id=1; $id<=$idQualibat; $id++) {
|
|
$numQualibatTmp=$id;
|
|
$tabQualibat[]=$numQualibatTmp;
|
|
}
|
|
|
|
// Il faudrait rechercher le dernier numéro Orias attribué non encore en base
|
|
$iQualibat->force=$force;
|
|
while(true) {
|
|
$numQualibatTmp++;
|
|
echo date('Y/m/d - H:i:s')." - Recherche du dernier numéro Qualibat attribué : ";
|
|
if ($iQualibat->getInfosQualibat(0,$numQualibatTmp)) {
|
|
if (!$iQualibat->enCache) {
|
|
randsleep($tMin/10,$tMax/10);
|
|
$nbAcces++;
|
|
} else
|
|
$nbCache++;
|
|
echo "$numQualibatTmp ";
|
|
} else {
|
|
echo --$numQualibatTmp.' !'.EOL;
|
|
break;
|
|
}
|
|
}
|
|
shuffle($tabQualibat);
|
|
echo date('Y/m/d - H:i:s')." - Mise à jour de la base Qualibat...".EOL;
|
|
} else {
|
|
$partiel=true;
|
|
echo date('Y/m/d - H:i:s')." - Chargement de numéros Qualibat...".EOL;
|
|
}
|
|
$nb=count($tabQualibat);
|
|
$nbAcces=$nbCache=0;
|
|
|
|
foreach ($tabQualibat as $i=>$idQualibat) {
|
|
echo date('Y/m/d - H:i:s')." - $i/$nb: $idQualibat ... ";
|
|
$iQualibat->force=$force;
|
|
print_r($iQualibat->getInfosQualibat(0,$idQualibat));
|
|
echo date('Y/m/d - H:i:s')." - $i/$nb: $idQualibat ... récupéré ";
|
|
if (!$partiel && date('Hi')*1>=1930) {
|
|
//if (date('Hi')*1>=2235) {
|
|
$nbTot=$nbAcces+$nbCache;
|
|
$pct=@round($nbCache/$nbTot*100,2);
|
|
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Pompe Qualibat - Traitement quotidien", "$nbTot requêtes traitées dont $nbCache en cache ($pct %)");
|
|
die();
|
|
}
|
|
if (!$iQualibat->enCache) {
|
|
echo "via WWW. Attente...".EOL;
|
|
if (!$partiel) randsleep($tMin,$tMax);
|
|
$nbAcces++;
|
|
} else {
|
|
echo "en cache !".EOL;
|
|
$nbCache++;
|
|
}
|
|
}
|
|
|
|
$nbTot=$nbAcces+$nbCache;
|
|
$pct=round($nbCache/$nbTot*100,2);
|
|
if (!$partiel) {
|
|
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Pompe Qualibat - Tout est fini !", "FIN des $nbTot requêtes traitées dont $nbCache en cache ($pct %)");
|
|
}
|
|
|
|
echo date('Y/m/d - H:i:s')." - FIN des $nbTot requêtes dont $nbCache en cache ($pct %)".EOL;
|
|
|
|
die(); |