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

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