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

170 lines
7.5 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/curl.php');
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(FWK_PATH.'mail/sendMail.php');
global $iDb;
$iDb=new WDB('jo');
$iInsee=new MInsee();
$iBodacc=new MBodacc();
//10 000 000
$nbRet=$iDb->select('bodacc_detail b, bodacc d' ,
'b.id, b.siren, b.sirenValide, b.nic, b.nicValide, b.raisonSociale, b.nomCommercial, b.enseigne, b.sigle, b.nationalite, b.FJ, b.Capital, b.CapitalDev, b.adresse, b.adrNum, b.adrIndRep, b.adrTypVoie, b.adrLibVoie, b.adrComp1, b.adrComp2, b.codePostal, b.ville, b.adresseSiege, b.adrSiegeNum, b.adrSiegeIndRep, b.adrSiegeTypVoie, b.adrSiegeLibVoie, b.adrSiegeComp1, b.adrSiegeComp2, b.codePostalSiege, b.villeSiege, b.typeEven, b.commentaires, b.dateEffet, b.publication, b.publicationNom, b.publicationDate, b.dateDebutActivite, b.dateCessationActivite, b.dateCessationPaiement, b.dateJugement, b.VenteMt, b.VenteDev, b.bienAcqui, b.dateUpdate, d.annonce, d.balises',
"b.id>=6683703 /*AND b.id<=7083703*/ AND b.Rubrique='ventes' AND b.siren>10000 AND /*(b.nic=0 OR */b.VenteMt=0 AND b.id=d.id AND balises LIKE '%<avis>%'", false, MYSQL_ASSOC, true);
//"b.id BETWEEN 9424246 AND 10000000 AND b.Rubrique='ventes' AND b.siren>10000 AND (b.nic=0 /*OR b.nicValide=3 OR b.nicValide=4*/ OR b.VenteMt=0) AND b.id=d.id", false, MYSQL_ASSOC, true);
echo "$nbRet annonces à traiter".EOL;
$j=0;
while($ann=$iDb->fetch(MYSQL_ASSOC)) {
$j++;
$tabUpdate=array('dateUpdate'=>$ann['dateUpdate']);
$balises=$ann['balises'];
$id=$ann['id'];
$siren=$ann['siren'];
$nic=$ann['nic'];
$prix=$ann['VenteMt']*1;
$strTmp=$origineFonds='';
if ($prix==0) {
$vente_devise='?';
if (preg_match('/<origineFonds>(.*)<\/origineFonds>/Uis',$balises,$matches)) {
$strTmp=$origineFonds=$matches[1];
}
if (preg_match('/<descriptif>(.*)<\/descriptif>/Uis',$balises,$matches)) {
$strTmp.=$matches[1];
$origineFonds.=$matches[1];
}
echo "$j/$nbRet - $id, $siren $nic : $origineFonds".EOL;
if (preg_match("/(prix|stipul|montant|indémni|indemni|évalu|evalu|éstim|estim|EUR)/i", $strTmp)) {
if (substr($strTmp,-1)=='.') $strTmp=trim(substr($strTmp,0,strlen($strTmp)-1));
if (preg_match("/(?:[\D]*)([0-9\.,\s]*)EUR/Ui", $strTmp, $tabTmp))/* ||
preg_match("/(.*)stipul.(?: de)([\D]*)([0-9\.,\s]*)([\D]*)/Ui", $strTmp, $tabTmp) ||
preg_match("/(.*)montant(?: de)([\D]*)([0-9\.,\s]*)([\D]*)/Ui", $strTmp, $tabTmp) ||
preg_match("/(.*)valu([\D]*)([0-9\.,\s]*)([\D]*)/Ui", $strTmp, $tabTmp) ||
preg_match("/(.*)stim([\D]*)([0-9\.,\s]*)([\D]*)/Ui", $strTmp, $tabTmp) ||
preg_match("/(.*)([\D]*) ([0-9\.,\s]*) (EUR)/Ui", $strTmp, $tabTmp) )*/ {
$vente_montant=strtr($tabTmp[1], array(' '=>'', ','=>'.', chr(160)=>''));
if (substr($vente_montant,-3,1)=='.') {
$vente_montant=str_replace('.','', substr($vente_montant,0,strlen($vente_montant)-3));
} elseif (substr($vente_montant,-4,1)=='.') {
$vente_montant=str_replace('.','', $vente_montant);
}
//echo $vente_montant.EOL;continue;
$vente_devise =trim($tabTmp[4]);
}/* elseif (preg_match("/(.*)ind(.)mni([\D]*)([0-9\.,\s]*)([\D]*)/Ui", $strTmp, $tabTmp)) {
$vente_montant=strtr($tabTmp[4], array(' '=>'', ','=>'.', chr(160)=>''));
//str_replace(' ','', str_replace(',','.',$tabTmp[4]));
if (substr($vente_montant,-3,1)=='.') {
$vente_montant=str_replace('.','', substr($vente_montant,0,strlen($vente_montant)-3));
} elseif (substr($vente_montant,-4,1)=='.') {
$vente_montant=str_replace('.','', $vente_montant);
}
$vente_devise =trim($tabTmp[5]);
}*/
if ( preg_match("/eur/i", $vente_devise) && !preg_match("/(wir|suisse|che)/i",$vente_devise) )
$vente_devise='EURO';
$devise=strtoupper(trim(str_replace('de ', '', str_replace('d\'', '', $vente_devise))));
if ($devise<>'') {
if ($vente_montant*1<>0 && !$iBodacc->isDeviseBodacc($devise)) {
echo ("ERREUR : Annonce $idann, devise de la vente inconnue = '$devise' (montant = $vente_montant) !".EOL.$texte.EOL);
echo 'SIREN ............. '.implode(';',$tabAnnonces[$idann]['data']['siren']).EOL;
echo 'Raison Sociale .... '.implode(';',$tabAnnonces[$idann]['data']['raisonSociale']).EOL;
echo 'RC ................ '.implode(';',$tabAnnonces[$idann]['data']['RC']).EOL;
echo 'Forme Juridique ... '.implode(';',$tabAnnonces[$idann]['data']['FJ']).EOL;
echo chr(7);
/** @todo Gérer les devises dont le nom peut être commun à plusieurs pays :
** DINARS DIRHAM DOLLARS COURONNES FRANC CFA ROUPIE LEU
**/
if ($noQuestion) {
die("Devise '$devise' inconnue !");
} else {
while(true){
echo 'Saisir la devise pour "'.$devise.'" (0 pour ne rien saisir) ?'.EOL;
$saisie = trim(strtoupper(fgets(STDIN)));
if (strlen($saisie)==3) {
echo 'Insertion de la devise en base'.EOL;
if (!$iBodacc->addDeviseBodacc($devise, $saisie) && mysql_errno()<>1062) {
echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations de chargement en base impossible :".EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
die();
}
$vente_devise=$saisie;
break;
} elseif (strlen($saisie)==1 && $saisie=='0') {
$vente_devise='??';
break;
}
}
}
} else $vente_devise=$iBodacc->getDeviseBodacc($devise);
} else $vente_devise='?';
}
if ($vente_montant*1==0 && $origineFonds<>'') {
print_r($tabAnnonces[$idann]);
print_r($tabTmp);
echo $ann['annonce'].EOL;
echo "Montant non détecté, merci de saisir le ";
if ($noQuestion) {
die("Devise '$devise' inconnue !");
} else {
while(true) {
echo 'Montant de la vente en EURO ? (0 pour ne rien saisir) ?'.EOL;
$saisie = trim(strtoupper(fgets(STDIN)))*1;
$vente_montant=$saisie;
$vente_devise='EUR';
break;
}
}
}
if ($vente_devise<>'?') {
$tabUpdate['VenteMt']=$vente_montant;
$tabUpdate['VenteDev']=$vente_devise;
}
}
if ($ann['nic']==0 || $ann['nic']==3 || $ann['nic']==4) {
$tabEt=$iInsee->getEtablissements($siren);
if ($tabEt['nbReponsesTotal']==1) {
// 1 seul établissement connu : on le valide en auto @todo : Vérifier adresser
$tabUpdate['nic']=$tabEt['reponses'][0]['Nic'];
$tabUpdate['nicValide']=3;
$nbNicAuto++;
} elseif ($tabEt['nbReponsesTotal']>1) {
$nicTrouve=$nbNic=0;
foreach ($tabEt['reponses'] as $iEt=>$tabIdEt) {
$cpDem=$ann['codePostal']*1;
$numDem=explode(' ', trim($ann['adresse']));
$numDem=$numDem[0]*1;
if ($numDem==0) continue;
//echo 'On trouve .. '. $tabIdEt['Nic'].' à '.$tabIdEt['Adresse'].', '.$tabIdEt['Adresse2'].', '.$tabIdEt['CP'].' '.$tabIdEt['Ville'];
$cpRec=$tabIdEt['CP']*1;
$numRec=substr($tabIdEt['Adresse'],0,4)*1;
$numRec=$numRec[0]*1;
if ($numRec==0) continue;
if ($numDem==$numRec && $cpDem==$cpRec) {
$nicTrouve=$tabIdEt['Nic'];
$nbNic++;
}
}
if ($nbNic==1) {
$tabUpdate['nic']=$nicTrouve;
$tabUpdate['nicValide']=4;
$nbNicAuto++;
}
}
}
if (count($tabUpdate)>1) {
print_r($tabUpdate);
$iDb->update('bodacc_detail', $tabUpdate, "id=$id AND siren=$siren") or die(mysql_error());
echo "$j/$nbRet - $id, $siren $nicTrouve : $origineFonds, $vente_montant $vente_devise".EOL;
}
}
?>