batch/1.1/old/cliSirenage.php

192 lines
9.5 KiB
PHP
Raw Normal View History

#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(INCLUDE_PATH.'insee/classMInsee.php');
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Sirenage automatique des annonces Bodacc pas encore sirenées.
Options :
-s Sirenage semi-automatique (Ligne de prompt pour les entreprises non sirenées)
-p Sirenage de toutes les annonces sans propositions (en vu du traitement manuel)
-a Re-sirenage de toutes les annonces Bodacc non sirenées !
-i:XXX Reprise à partir du numéro d'annonce XXX
";
$semiManuel=$sansPropo=$toutes=$index=false;
$argv=$_SERVER['argv'];
if ($_SERVER['argc']==1) $semiManuel=false; // Fonctionnement normal du script, càd : on sirene que en auto
else {
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 's':
$semiManuel=true;
break;
case 'p':
$sansPropo=true;
break;
case 'a':
$toutes=true;
break;
case 'i':
$index=trim(substr($argv[$i],3));
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . " inconnue !\n");
break;
}
}
}
}
echo date('Y/m/d - H:i:s') ." - DEBUT du programme de SIRENAGE des fichiers CLIENTS...".EOL;
$iDb=new WDB('tmp');
$iInsee=new MInsee();
$listeNonSirene=$iDb->select('mederic', 'ID_CLIENT, REF, RAISON_SOCIALE, ENSEIGNE2, SIGLE2, ADRESSE, CP, VILLE', 'SIREN=0', true);
echo date('Y/m/d - H:i:s') ." - Nombre d'entreprises à traiter : ".count($listeNonSirene). EOL;
foreach ($listeNonSirene as $k=>$entrep) {
$siege='';$actif='';$deb=0;$nbRep=20;$maxRep=20;$pertinence=false;
$avecSiren=true;
$tabEtabs=@$iInsee->rechercheEtab($entrep['RAISON_SOCIALE'], $entrep['ADRESSE'], $entrep['CP'], $entrep['VILLE'], $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren);
if (@$tabEtabs[nbReponses]==0 && $entrep['ENSEIGNE2']<>'') {
$tabEtabs=@$iInsee->rechercheEtab($entrep['ENSEIGNE2'], $entrep['ADRESSE'], $entrep['CP'], $entrep['VILLE'], $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren);
} elseif (@$tabEtabs[nbReponses]==0 && $entrep['SIGLE2']<>'') {
$tabEtabs=@$iInsee->rechercheEtab($entrep['SIGLE2'], $entrep['ADRESSE'], $entrep['CP'], $entrep['VILLE'], $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren);
}
//print_r($tabEtabs);
//die();
$tabSiren=array();
//echo "RECHERCHE DE : ". $entrep['RAISON_SOCIALE']. $entrep['ENSEIGNE2']. $entrep['SIGLE2']. $entrep['ADRESSE']. $entrep['CP']. $entrep['VILLE'].' ('.$tabEtabs['nbReponsesTotal']. " réponses)... ";
foreach ($tabEtabs['reponses'] as $i=>$etab) {
$tabSiren[]=$etab['Siren'];
/* $siret = $etab['Siret']; // 40847260300039
$siege = $etab['Siege']; // 0
$nom = $etab['Nom']; // SETTIER JEAN MARC
$nom2 = $etab['Nom2']; //
$sigle = $etab['Sigle']; //
$sigle = $etab['Enseigne'];//
$sigle = $etab['Adresse']; // 0059 R DE PATAY
$sigle = $etab['CP']; // 45000
$sigle = $etab['Ville']; // ORLEANS
$sigle = $etab['Tel']; // 00000000
$sigle = $etab['Fax']; // 00000000
$sigle = $etab['FJ']; // 1500
$sigle = $etab['FJLib']; // Profession libérale
$siren = $etab['Siren']; // 408472603
$nic = $etab['Nic']; // 00039
$actif = $etab['Actif']; // 0
*/
}
$tabUnique=array_unique($tabSiren);
//echo "RECHERCHE DE : ". $entrep['RAISON_SOCIALE']. $entrep['ENSEIGNE2']. $entrep['SIGLE2']. $entrep['ADRESSE']. $entrep['CP']. $entrep['VILLE'].' ('.$tabEtabs['nbReponsesTotal']. " réponses)... ";
if (count($tabUnique)==1) {
echo '1;'.$entrep['REF'].';'.$tabUnique[0].';'.$etab['Nom'].';'.$entrep['RAISON_SOCIALE'].';'.$entrep['ENSEIGNE2'].';'.$entrep['SIGLE2'].';'.$entrep['ADRESSE'].';'.$entrep['CP'].';'.$entrep['VILLE'].EOL;
} else {
echo count($tabUnique).';'.$entrep['REF'].';000000000;;'.$etab['Nom'].';'.$entrep['RAISON_SOCIALE'].';'.$entrep['ENSEIGNE2'].';'.$entrep['SIGLE2'].';'.$entrep['ADRESSE'].';'.$entrep['CP'].';'.$entrep['VILLE'].EOL;
}
// die();//
/* if (count($tabTrouve)==1) {
$entrepT=$tabTrouve[0];
$siren=substr($entrepT['Siret'],0,9);
$nic=substr($entrepT['Siret'],9,5);
echo "$siren $nic\n";
//print_r($entrepT);die();
/*if ($table['db']<>'jo')
$iDb->update($table['table'], array($table['champSiren']=>$siren), "id='".$entrep['id']."'", true) or die($iDb->getLastError());
else
if (trim($siren)<>'') {
$tabTmp=$iDb->select('bodacc_detail','count(*)', 'id='. $entrep['id'] ." AND siren=$siren", true);
if ($tabTmp[0][0]<>0) { // Cette annonce est déjà ratachée au siren, on supprime donc ce lien inutile référençant le même siren
//$iDb->delete('bodacc_detail', 'id='. $entrep['id'] .' AND siren='.$entrep['sir'], true);
} else
$iDb->update('bodacc_detail', array('siren'=>$siren, $table['champNic']=>$nic, $table['champSirenValide']=>3, $table['champNicValide']=>3), 'id='.$entrep['id'].' AND siren='.$entrep['sir'], true) or die($iDb->getLastError());
// On efface l'information de la table A sirener au cas où !
$iDb->delete('bodacc_sirenage', 'idAnn='.$entrep['id'].' AND siren='.$entrep['sir']) or die($iDb->getLastError());
}
} elseif (count($tabTrouve)==0) {
echo " Pas de réponse !\n";
$tabInsert=array( 'idAnn'=>$entrep['id'],
'siren'=>$entrep['sir']);
if (!$iDb->insert('bodacc_sirenage', $tabInsert))
$iDb->update('bodacc_sirenage', array('siretProposes'=>''), 'idAnn='.$entrep['id'].' AND siren='.$entrep['sir']) or die($iDb->getLastError());
} else { // Plusieurs siren possibles
echo "\n";
$siren1=substr($tabTrouve[0]['Siret'],0,9);
$nic1=substr($tabTrouve[0]['Siret'],9,5);
$sirenDiff=$sirenNomIdem=$sirenAdrIdem=false;
$tabSiren=array(0=>0);
$tabSiret=array();
foreach ($tabTrouve as $j=>$entrepT) {
if($j==0) echo "PROBABLES : \n";
$siren=substr($entrepT['Siret'],0,9);
$nic=substr($entrepT['Siret'],9,5);
$tabSiren[]=$siren;
$nomT=strtr($entrep['RS'], '/(),-',' ');
$adresseT=trim(strtoupper(preg_replace("/[0-9]{1,4}(.*)( R | AV | RUE | AVENUE | BD | BOULEVARD )/i",'',strtr($entrepT['Adresse'], '/(),-',' '))));
if (levenshtein($raisonSociale,$nomT)>2) $sirenNomIdem=$siren;
if ($siren<>$siren1) $sirenDiff=true;
if (levenshtein($adresse,$adresseT)<2) $sirenAdrIdem=$siren;
$num=$j+1;
echo "$num. $siren $nic, ". $entrepT['Nom'].', '.$entrepT['Nom2'].', '.$entrepT['Enseigne'].', '.$entrepT['Adresse'].', '.$entrepT['CP'].', '.$entrepT['Ville']."\n";
$tabSiret[]=$entrepT['Siret'].'-'.$entrepT['Pertinence'];
}
if ($sirenDiff==false) {
// Tous les SIREN sont identiques, l'entreprise ttouvée est la bonne !
echo "$num. Siren trouvé = $siren (tous les Sirens sont identiques) !\n";
$iDb->update('bodacc_detail', array('siren'=>$siren, $table['champSirenValide']=>4, $table['champNicValide']=>0), 'id='.$entrep['id'].' AND siren='.$entrep['sir'], true) or die($iDb->getLastError());
// On efface l'information de la table A sirener au cas où !
$iDb->delete('bodacc_sirenage', 'idAnn='.$entrep['id'].' AND siren='.$entrep['sir']) or die($iDb->getLastError());
} else {
/** On insère en base toutes les multipropositions pour le sirenage manuel
$tabInsert=array( 'idAnn'=>$entrep['id'],
'siren'=>$entrep['sir'],
'siretProposes'=>implode(';',$tabSiret));
if ($iDb->insert('bodacc_sirenage', $tabInsert))
$iDb->update('bodacc_sirenage', array('siretProposes'=>implode(';',$tabSiret)), 'idAnn='.$entrep['id'].' AND siren='.$entrep['sir']) or die($iDb->getLastError());
}
//, 'id='.$entrep['id'].' AND '. $table['champSiren'] .'='.$entrep['sir'], true) or die(mysql_error());
/*elseif ($sirenNomIdem!=false) {
echo "$num. Siren trouvé = $sirenNomIdem (raisons sociales identiques) !\n";
if ($table['db']<>'jo')
$iDb->update($table['table'], array($table['champSiren']=>$sirenNomIdem), "id='".$entrep['id']."'", true) or die(mysql_error());
else
$iDb->update($table['table'], array($table['champSiren']=>$sirenNomIdem, $table['champSirenValide']=>5), 'id='.$entrep['id'], true) or die(mysql_error());
} elseif ($sirenAdrIdem!=false) {
echo "$num. Siren trouvé = $sirenNomIdem (adresses identiques) !\n";
if ($table['db']<>'jo')
$iDb->update($table['table'], array($table['champSiren']=>$sirenAdrIdem), "id='".$entrep['id']."'", true) or die(mysql_error());
else
$iDb->update($table['table'], array($table['champSiren']=>$sirenAdrIdem, $table['champSirenValide']=>6), 'id='.$entrep['id'], true) or die(mysql_error());
} else
{ //if ($semiManuel==true);
$saisie='';
while($semiManuel==true && $saisie=='') {
echo "Veuillez saisir le numéro qui identifie la bonne entreprise (0 si pas de réponse) : ";
$saisie = trim(fgets(STDIN));
if ($saisie==0) break;
elseif ($saisie>0 && $saisie<=$j+1) {
$sir=$tabSiren[$saisie];
if ($table['db']<>'jo')
$iDb->update($table['table'], array($table['champSiren']=>$sir), "id='".$entrep['id']."'", true) or die(mysql_error());
else
$iDb->update($table['table'], array($table['champSiren']=>$sir, $table['champSirenValide']=>2),
'id='.$entrep['id'], true) or die(mysql_error());
break;
}
else $saisie='';
}
}*/
}
echo date('Y/m/d - H:i:s') ." - FIN du programme de SIRENAGE.".EOL;
die();
?>