125 lines
4.6 KiB
PHP
125 lines
4.6 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(INCLUDE_PATH.'insee/classMInsee.php');
|
|
|
|
$iDbR=new WDB('tmp');
|
|
$iDbW=new WDB('insee');
|
|
|
|
echo date ('Y/m/d - H:i:s')." - Début du traitement...".EOL;
|
|
|
|
$nbLongs=$nbCourt=$nbUpdates=$nbIdentiques=$nbNonRemplaces=0;
|
|
|
|
$fieldsR='SIREN, NIC, TEL';
|
|
// on lit R pour mettre à jour W
|
|
$fieldsW='SIREN, NIC, APE_ENT, APE_ETAB, SIEGE, ACTIF, ADR_DEP, ADR_COM, TEL';
|
|
$ret=$iDbR->select('mederic', $fieldsR, "SIREN<>'' AND NIC<>'' AND TEL<>''", true, MYSQL_ASSOC, true);
|
|
$k=$nbInsert=$nbUpdate=$nbDBl=0;
|
|
while($ligne=$iDbR->fetch(MYSQL_ASSOC)) {
|
|
$k++;
|
|
$sirenR=$ligne['SIREN']*1;
|
|
$nicR =$ligne['NIC']*1;
|
|
$telR =''.trim(preg_replace('/[^0-9]/', '', $ligne['TEL']));
|
|
if (strlen($telR)>10) { $nbLongs++; continue; }
|
|
elseif (strlen($telR)==9) $telR = '0'.$telR;
|
|
elseif (strlen($telR)<9) { $nbCourt++; continue; }
|
|
|
|
$ret2=$iDbW->select('identite', $fieldsW, "SIREN=$sirenR AND NIC=$nicR", false, MYSQL_ASSOC);
|
|
$cpt=count($ret2);
|
|
if ($cpt==1) {
|
|
/**
|
|
** On Vérifie si le téléphone est absent dans la table identité
|
|
**/
|
|
$tabIden=$ret2[0];
|
|
if (trim($tabIden['TEL'])=='') {
|
|
//
|
|
echo "Ligne $k, $sirenR $nicR, Tél à mettre à jour = $telR\n";
|
|
$retUpdate=$iDbW->update('identite', array('TEL'=>$telR), "SIREN=$sirenR AND NIC=$nicR");
|
|
if (!$retUpdate) die('Erreur lors de MAJ Mysqlsur SIREN=$sirenR AND NIC=$nicR : '. mysql_errno() .' : '.mysql_error());
|
|
$nbUpdates++;
|
|
} elseif ($tabIden['TEL']==$telR) {
|
|
echo "Ligne $k, $sirenR $nicR, Tél identiques = $telR\n";
|
|
$nbIdentiques++;
|
|
} else {
|
|
echo "Ligne $k, $sirenR $nicR, Tél à mettre à jour = $telR... Mais téléphone déjà en base = ". $tabIden['TEL'] . EOL;
|
|
$nbNonRemplaces++;
|
|
}
|
|
}
|
|
}
|
|
|
|
echo date ('Y/m/d - H:i:s')." - Trop Longs = $nbLongs".EOL;
|
|
echo date ('Y/m/d - H:i:s')." - Trop Courts = $nbCourt".EOL;
|
|
echo date ('Y/m/d - H:i:s')." - Mis à jours = $nbUpdates".EOL;
|
|
echo date ('Y/m/d - H:i:s')." - Identiques = $nbIdentiques".EOL;
|
|
echo date ('Y/m/d - H:i:s')." - Non remplacés = $nbNonRemplaces".EOL;
|
|
|
|
die();
|
|
|
|
echo date ('Y/m/d - H:i:s')." - Mise à jour depuis le flux bascule...".EOL;
|
|
|
|
$fieldsR='siren, nic, apen5, apen4, depCom, siege, apet5, apet4';
|
|
// on lit R pour mettre à jour W
|
|
$fieldsW='SIREN, NIC, APE_ENT, APE_ETAB, SIEGE, ACTIF, ADR_DEP, ADR_COM';
|
|
$ret=$iDbR->select('bascule', $fieldsR, '1', true, MYSQL_ASSOC, true);
|
|
$k=$nbInsert=$nbUpdate=$nbDBl=0;
|
|
while($ligne=$iDbR->fetch(MYSQL_ASSOC)) {
|
|
$k++;
|
|
$siren=$ligne['siren'];
|
|
$nic =$ligne['nic'];
|
|
$ret2=$iDbW->select('identite', $fieldsW, "SIREN=$siren AND NIC=$nic", false, MYSQL_ASSOC);
|
|
$cpt=count($ret2);
|
|
|
|
$arrBase=array( 'ACTIF'=> 1, // PROVISOIRE
|
|
'SIEGE'=> $ligne['siege'], // Siège
|
|
'APE_ENT'=> trim($ligne['apen5']), // Code NAF de l'entreprise (cf. table APE)
|
|
'APE_ETAB'=> trim($ligne['apet5']), // Code NAF de l'établissement (cf. table APE)
|
|
'ADR_DEP'=> trim(substr($ligne['depCom'],0,2))*1,
|
|
'ADR_COM'=> trim(substr($ligne['depCom'],2,3))*1,
|
|
'DATE_MAJ'=> '20080111'
|
|
);
|
|
|
|
if ($cpt==0) {
|
|
/**
|
|
** On ajoute la fiche de l'établissement
|
|
**/
|
|
$tabInsert=array( 'SIREN'=> $siren,
|
|
'NIC'=> $nic,
|
|
);
|
|
$tabInsert=array_merge($tabInsert, $arrBase);
|
|
//echo date ('Y/m/d - H:i:s')." - Siret $siren $nic en cours d'ajout".EOL;
|
|
$retInsert=$iDbW->insert('identite', $tabInsert, true);
|
|
if (!$retInsert) die('Erreur Mysql n°'. mysql_errno() .' : '.mysql_error());
|
|
//else echo date ('Y/m/d - H:i:s')." - Siret $siren $nic ajouté".EOL;
|
|
$fp=fopen('siretBasculesInconnus.csv','a');
|
|
fwrite($fp, implode(';', $tabInsert)."\n");
|
|
fclose($fp);
|
|
$nbInsert++;
|
|
} else {
|
|
/**
|
|
** On modifie la fiche de l'établissement
|
|
**/
|
|
//$tabUpdate=;
|
|
$retUpdate=$iDbW->update('identite', $arrBase, "SIREN=$siren AND NIC=$nic");
|
|
if (!$retUpdate) die('Erreur lors de MAJ Mysql n°'. mysql_errno() .' : '.mysql_error());
|
|
//else echo date ('Y/m/d - H:i:s')." - Siret $siren $nic modifié".EOL;
|
|
$nbUpdate++;
|
|
|
|
if ($cpt>1) {
|
|
//die(date ('Y/m/d - H:i:s')." - Siret $siren $nic : $cpt correspondances".EOL);
|
|
$tabSirenDoubles[]=$siren;// RAF
|
|
$fp=fopen('doublons.txt', 'a');
|
|
fwrite($fp, "$siren $nic : $cpt lignes\n");
|
|
fclose($fp);
|
|
//print_r($ret2);
|
|
echo date ('Y/m/d - H:i:s')." - Doublons sur $siren $nic : $cpt lignes\n";
|
|
$nbDBl++;
|
|
}
|
|
}
|
|
if ($k%10000==0) echo date ('Y/m/d - H:i:s')." - $k lignes traités, $siren $nic ($nbInsert ajouts, $nbUpdate maj et $nbDBl doublons)\n";
|
|
}
|
|
|
|
die();
|
|
|
|
?>
|