#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini 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(); ?>