170 lines
7.5 KiB
PHP
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;
|
|
}
|
|
}
|
|
?>
|