#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini 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>', ''))); if ($tabLot['montant']<>'') $tabLot['montant'].=' HT'; else { $tabLot['montant']=trim(htm2txt(@getTextInHtml($strLots, '', 'HT">', ''))); if ($tabLot['montant']<>'') $tabLot['montant'].=' HT'; else { $tabLot['montant']=trim(htm2txt(@getTextInHtml($strLots, '', 'MONTANT_INDEFINI>', ''))); if ($tabLot['montant']<>'') $tabLot['montant'].=' INDEFINI'; else $tabLot['montant']=trim(htm2txt(@getTextInHtml($strLots, '', '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(); } */ ?>