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

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();
?>