2012-10-16 07:44:31 +00:00
#!/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]
2013-06-19 08:24:49 +00:00
Sirenage automatique des annonces Bodacc pas encore siren<EFBFBD> es .
2012-10-16 07:44:31 +00:00
Options :
2013-06-19 08:24:49 +00:00
- s Sirenage semi - automatique ( Ligne de prompt pour les entreprises non siren<EFBFBD> es )
2012-10-16 07:44:31 +00:00
- p Sirenage de toutes les annonces sans propositions ( en vu du traitement manuel )
2013-06-19 08:24:49 +00:00
- a Re - sirenage de toutes les annonces Bodacc non siren<EFBFBD> es !
- i : XXX Reprise <EFBFBD> partir du num<EFBFBD> ro d ' annonce XXX
2012-10-16 07:44:31 +00:00
" ;
$semiManuel = $sansPropo = $toutes = $index = false ;
$argv = $_SERVER [ 'argv' ];
2013-06-19 08:24:49 +00:00
if ( $_SERVER [ 'argc' ] == 1 ) $semiManuel = false ; // Fonctionnement normal du script, c<> d : on sirene que en auto
2012-10-16 07:44:31 +00:00
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 );
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Nombre d'entreprises <20> traiter : " . count ( $listeNonSirene ) . EOL ;
2012-10-16 07:44:31 +00:00
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 ();
2013-06-19 08:24:49 +00:00
//echo "RECHERCHE DE : ". $entrep['RAISON_SOCIALE']. $entrep['ENSEIGNE2']. $entrep['SIGLE2']. $entrep['ADRESSE']. $entrep['CP']. $entrep['VILLE'].' ('.$tabEtabs['nbReponsesTotal']. " r<> ponses)... ";
2012-10-16 07:44:31 +00:00
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
2013-06-19 08:24:49 +00:00
$sigle = $etab [ 'FJLib' ]; // Profession libérale
2012-10-16 07:44:31 +00:00
$siren = $etab [ 'Siren' ]; // 408472603
$nic = $etab [ 'Nic' ]; // 00039
$actif = $etab [ 'Actif' ]; // 0
*/
}
$tabUnique = array_unique ( $tabSiren );
2013-06-19 08:24:49 +00:00
//echo "RECHERCHE DE : ". $entrep['RAISON_SOCIALE']. $entrep['ENSEIGNE2']. $entrep['SIGLE2']. $entrep['ADRESSE']. $entrep['CP']. $entrep['VILLE'].' ('.$tabEtabs['nbReponsesTotal']. " r<> ponses)... ";
2012-10-16 07:44:31 +00:00
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 );
2013-06-19 08:24:49 +00:00
if ( $tabTmp [ 0 ][ 0 ] <> 0 ) { // Cette annonce est d<> j<EFBFBD> ratach<63> e au siren, on supprime donc ce lien inutile r<> f<EFBFBD> ren<65> ant le m<> me siren
2012-10-16 07:44:31 +00:00
//$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 ());
2013-06-19 08:24:49 +00:00
// On efface l'information de la table A sirener au cas o<> !
2012-10-16 07:44:31 +00:00
$iDb -> delete ( 'bodacc_sirenage' , 'idAnn=' . $entrep [ 'id' ] . ' AND siren=' . $entrep [ 'sir' ]) or die ( $iDb -> getLastError ());
}
} elseif ( count ( $tabTrouve ) == 0 ) {
2013-06-19 08:24:49 +00:00
echo " Pas de r<> ponse ! \n " ;
2012-10-16 07:44:31 +00:00
$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 ) {
2013-06-19 08:24:49 +00:00
// Tous les SIREN sont identiques, l'entreprise ttouv<75> e est la bonne !
echo " $num . Siren trouv<75> = $siren (tous les Sirens sont identiques) ! \n " ;
2012-10-16 07:44:31 +00:00
$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 ());
2013-06-19 08:24:49 +00:00
// On efface l'information de la table A sirener au cas o<> !
2012-10-16 07:44:31 +00:00
$iDb -> delete ( 'bodacc_sirenage' , 'idAnn=' . $entrep [ 'id' ] . ' AND siren=' . $entrep [ 'sir' ]) or die ( $iDb -> getLastError ());
} else {
2013-06-19 08:24:49 +00:00
/** On ins<EFBFBD> re en base toutes les multipropositions pour le sirenage manuel
2012-10-16 07:44:31 +00:00
$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 ) {
2013-06-19 08:24:49 +00:00
echo " $num . Siren trouv<75> = $sirenNomIdem (raisons sociales identiques) ! \n " ;
2012-10-16 07:44:31 +00:00
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 ) {
2013-06-19 08:24:49 +00:00
echo " $num . Siren trouv<75> = $sirenNomIdem (adresses identiques) ! \n " ;
2012-10-16 07:44:31 +00:00
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 == '' ) {
2013-06-19 08:24:49 +00:00
echo " Veuillez saisir le num<75> ro qui identifie la bonne entreprise (0 si pas de r<> ponse) : " ;
2012-10-16 07:44:31 +00:00
$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 ();
?>