122 lines
5.0 KiB
PHP
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('’'=>"'",'œ'=>'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;
|
|
$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();
|
|
}
|
|
*/
|
|
?>
|