142 lines
5.2 KiB
PHP
142 lines
5.2 KiB
PHP
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
|
<?php
|
|
|
|
function getNomPrenom($strRaisonSociale) {
|
|
$tabRet=array();
|
|
$tabRet['Nom']=$tabRet['NomUsage']=$tabRet['Prenom']='';
|
|
if (preg_match("/(.*)\*(.*)\/(.*)/",$strRaisonSociale,$matches))
|
|
{
|
|
$tabRet['Nom']=$matches[1];
|
|
$tmp=explode('/', $matches[2]);
|
|
if (isset($tmp[1]) && trim($tmp[1])<>'') {
|
|
$tabRet['NomUsage']=$tmp[0];
|
|
$tabRet['Prenom']=$tmp[1];
|
|
} else
|
|
$tabRet['Prenom']=$matches[2];
|
|
}
|
|
return $tabRet;
|
|
}
|
|
|
|
include_once(FWK_PATH.'common/chiffres.php');
|
|
include_once(FWK_PATH.'common/dates.php');
|
|
include_once(FWK_PATH.'common/ftp.php');
|
|
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
|
include_once(FWK_PATH.'mail/sendMail.php');
|
|
|
|
define('INSEE_FTP_URL', 'ftp.odissee.insee.fr');
|
|
define('INSEE_FTP_USER', '5358116');
|
|
define('INSEE_FTP_PASS', 'SC8$_21v');
|
|
//define('INSEE_FTP_REMOTE_DIR', 'odissee/MAP/*');
|
|
define('INSEE_FTP_REMOTE_DIR', 'odissee/5358116/*');
|
|
define('INSEE_LOCAL_DIR', '/home/data/insee/even/');
|
|
|
|
$strInfoScript='Usage : '.basename($argv[0]). " <option>
|
|
Chargement du/des flux quotidiens en provenance de Insee.
|
|
|
|
Options :
|
|
-v Mode debug (Verbosité au maximum)
|
|
-j Ne pas récupérer les derniers fichiers sur le FTP de l'Insee
|
|
-u Forcer la mise à jour la table identite de l'insee
|
|
-s=20080430 Réappliquer les évènements depuis cette date
|
|
-e=xxxxxxxx Réappliquer l'évènement xxxxxxxx
|
|
-c=552144503 Siren de l'entreprise sur laquelle réappliquer tous les évènements
|
|
|
|
";
|
|
$iDb=new WDB('insee');
|
|
$iDbR=new WDB('insee');
|
|
$iDbW=new WDB('insee');
|
|
$iInsee=new MInsee();
|
|
|
|
$nbSiretInvalides=$nbErreurs=$nbInsert=$nbUpdate=0;
|
|
$modeDebug=$dateReprise=false;
|
|
$messageDebug='';
|
|
|
|
$ftpStep=true;
|
|
$updateInsee=false;
|
|
$iReprise=$sirenReprise=0;
|
|
$tabFichier=array();
|
|
$tabModifsEntrep=array(); // Tableau des modifications au niveau entreprises qui n'ont pas d'évènements par établissement
|
|
|
|
$nomFichierCharges=array();
|
|
$nbLignes=$nbLignesCharges=$nbSiretInvalidesCharges=0;
|
|
|
|
//Initialistation des variables
|
|
$argv=$_SERVER['argv'];
|
|
//if ($_SERVER['argc']==1) die("Non géré pour l'instant : chargera les derniers fichiers EVEN non chargés !".EOL);
|
|
|
|
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
|
if (substr($argv[$i],0,1)=='-') {
|
|
switch (substr($argv[$i],1,1)) {
|
|
case 'v': $modeDebug=true; break;
|
|
case 'j': $ftpStep=false; break;
|
|
case 'u': $updateInsee=true; break;
|
|
case 's': $dateReprise=substr($argv[$i],3,8); $ftpStep=false; break;
|
|
case 'e': $iReprise=substr($argv[$i],3); $ftpStep=false; break;
|
|
case 'c': $sirenReprise=substr($argv[$i],3); $ftpStep=false; break;
|
|
case '-':
|
|
case '?': die($strInfoScript); break;
|
|
default: die('Option '. $argv[$i] . " inconnue !\n");
|
|
}
|
|
} else $tabFichier[]=$argv[$i];
|
|
}
|
|
|
|
echo date ('Y/m/d - H:i:s') . " - Début du traitement de correction des dates INSEE".EOL;
|
|
//echo date ('Y/m/d - H:i:s') . " - Chargement d'un seul évènement de flux quotidien...".EOL;
|
|
$nbLignes=$iDbR->select('insee_even_dateCre', 'insSIREN, insNIC, insDCRET, insDCREN, insDATEVE', "insSIREN >=800000000 ORDER BY insSIREN ASC, insNIC ASC , insDATEVE DESC", false, MYSQL_ASSOC, true);
|
|
echo date ('Y/m/d - H:i:s') . " - $nbLignes lignes à vérifier...".EOL;
|
|
$sirenPre=$nicPre=$k=$nbDcren=$nbDcret=$nbSiret=0;
|
|
$dateNull=false;
|
|
while($ligne=$iDbR->fetch(MYSQL_ASSOC)) {
|
|
$k++;
|
|
$siren=$ligne['insSIREN'];
|
|
$nic =$ligne['insNIC'];
|
|
if ($siren==$sirenPre && $nic==$nicPre && !$dateNull) continue;
|
|
$nbSiret++;
|
|
$dcren=$ligne['insDCREN']*1;
|
|
$dcret=$ligne['insDCRET']*1;
|
|
if ($dcren==0 || $dcret==0) $dateNull=true;
|
|
else $dateNull=false;
|
|
$ret2=$iDbW->select('identite', 'DCREN, DCRET, dateUpdate', "SIREN=$siren AND NIC=$nic", false, MYSQL_ASSOC);
|
|
$etab=$ret2[0];
|
|
$tabUpdate=array('dateUpdate'=>$etab['dateUpdate']);
|
|
|
|
if ($dcren>101 && substr($dcren,6,2)<>'00' && $etab['DCREN']<>$dcren) {
|
|
if ($modeDebug) echo "$k/$nbLignes : $siren $nic - $dcren $dcret DCREN identité différent=".$etab['DCREN'].EOL;
|
|
$tabUpdate['DCREN']=$dcren;
|
|
$nbDcren++;
|
|
}
|
|
if ($dcret>101 && substr($dcret,6,2)<>'00' && $etab['DCRET']<>$dcret) {
|
|
if ($modeDebug) echo "$k/$nbLignes : $siren $nic - $dcren $dcret DCRET identité différent=".$etab['DCRET'].EOL;
|
|
$tabUpdate['DCRET']=$dcret;
|
|
$nbDcret++;
|
|
}
|
|
|
|
if (count($tabUpdate)>1) {
|
|
$iDbW->update('identite', $tabUpdate, "SIREN=$siren AND NIC=$nic", false);
|
|
//die();
|
|
}
|
|
/*
|
|
print_r($ligne);
|
|
print_r($etab);
|
|
*/
|
|
|
|
$sirenPre=$siren;
|
|
$nicPre=$nic;
|
|
}
|
|
echo date ('Y/m/d - H:i:s') . " - Date de créations corrigées : $nbDcren entrep. et $nbDcret étab. / $nbSiret siret ($k lignes)".EOL;
|
|
/*
|
|
die();
|
|
|
|
$tabInsert=array( 'SIREN'=> $ligne['insSIREN'],
|
|
'NIC'=> $ligne['insNIC'],
|
|
);
|
|
// $tabInsert=array_merge($tabInsert, $arrTel, $arrDir, $arrBase, $arrActif);
|
|
$retInsert=$iDbW->insert('identite', $tabInsert, true);
|
|
if (!$retInsert) die('Erreur Mysql n°'. mysql_errno() .' : '.mysql_error());
|
|
if ($modeDebug) echo date ('Y/m/d - H:i:s')." - Siret $siren $nic ajouté".EOL;
|
|
$nbInsert++;
|
|
}*/
|
|
|
|
die();
|
|
|
|
?>
|