batch/old/majAnnoncesTmp.php
2013-06-19 08:24:49 +00:00

122 lines
5.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(INCLUDE_PATH.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
$iDb=new WDB();
$iDb2=new WDB();
$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>1381013", false, MYSQL_ASSOC, true);
echo date ('Y/m/d - H:i:s')." - Description : ". mysql_error().EOL;
echo date ('Y/m/d - H:i:s')." - Il y a $nbLots à mettre à jour !". 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('&#146;'=>"'",'&#156;'=>'oe','&#140;'=>'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;
$iDb2->update('boamp_lots', array('montantTxt'=>$strMontant, 'montant'=>$montant), "id=$id", false);
}
//MAX(idLot) AS idLotMax, MAX(num) AS numMax', "", false, MYSQL_ASSOC);
}
}
//print_r($matches);
//die();
}
//$email=$annonce['email'];
}
die();
/* if (preg_match_all("/Informations sur le montant du marché(.*)Le marché est susceptible d'être sous\-traité/Uis", $tabAnn['balises'], $matches)) {
print_r($matches);
foreach($matches[0] as $tmpMatch) {
if (preg_match_all("/Valeur totale finale du march(?:.*)Valeur\s+(.*)EUR/Uis", $tabAnn['balises'], $matches2)) {
print_r($matches2);
}
}
/*
Informations sur le montant du march(?:.*)Valeur totale finale du march(?:.*)Valeur\s+(.*)EUR/')
// Recherche du montant du lot
// $iLot
/*$tabLot['montant']=trim(htm2txt(@getTextInHtml($strLots, '<MONTANT_HT>', 'MONTANT_HT>', '</MONTANT_HT>')));
if ($tabLot['montant']<>'') $tabLot['montant'].=' HT';
else {
$tabLot['montant']=trim(htm2txt(@getTextInHtml($strLots, '<MONTANT type="HT">', 'HT">', '</MONTANT>')));
if ($tabLot['montant']<>'') $tabLot['montant'].=' HT';
else {
$tabLot['montant']=trim(htm2txt(@getTextInHtml($strLots, '<MONTANT_INDEFINI>', 'MONTANT_INDEFINI>', '</MONTANT_INDEFINI>')));
if ($tabLot['montant']<>'') $tabLot['montant'].=' INDEFINI';
else
$tabLot['montant']=trim(htm2txt(@getTextInHtml($strLots, '<MONTANT>', 'MONTANT>', '</MONTANT>')));
}
}
$tabCapital=file('/root/capital.txt');
$itot=count($tabCapital);
foreach ($tabCapital as $i=>$ligne) {
$tabLigne=explode(';', $ligne);
//"7500";"EUR";"2";"483246450"
$capital_montant=str_replace('"', '', $tabLigne[0]);
$capital_devise =str_replace('"', '', $tabLigne[1]);
$id =str_replace('"', '', $tabLigne[2]);
$siren =str_replace('"', '', $tabLigne[3]);
$tmp=$iDb->update('bodacc_detail', array( 'Capital'=>$capital_montant,
'CapitalDev'=>$capital_devise,
'dateUpdate'=>''), "id=$id AND siren=$siren LIMIT 1");
if (!$tmp)
echo "ERR id=$id\tsiren=$siren\tcapital=$capital_devise $capital_montant\n";
// else
// echo "OK id=$id\tsiren=$siren\tcapital=$capital_devise $capital_montant\n";
if ($i%50000==1)
echo date('H:i:s d/m/Y')." - $i lignes / $itot\n";
// die();
}
*/
?>