On autorise seulement des siren avec des chiffres

This commit is contained in:
Michael RICOIS 2012-05-29 09:34:56 +00:00
parent ab819c5c6e
commit b8f646c1d2

View File

@ -54,31 +54,31 @@ $tabDico = array(
'etablissements' => array(
'db' => 'jo.etablissements',
'cle' => array(
'idSd' => "CONCAT(source,'-',source_id) AS idSd",
'source' => '',
'triCode' => '',
'autre_id' => '',
'actif' => '',
'siege' => '',
'raisonSociale' => '',
'enseigne' => '',
'sigle' => '',
'marques' => '',
'adr_num' => '',
'adr_btq' => '',
'adr_typeVoie' => '',
'adr_libVoie' => '',
'adr_comp' => '',
'adr_cp' => '',
'adr_ville' => '',
'adr_dep' => '',
'adr_codeCom' => 'CONCAT(if (adr_dep>100,round(adr_dep/10),adr_dep*1),adr_com) AS adr_codeCom',
'telEtab' => 'tel as telEtab',
'faxEtab' => 'fax as faxEtab',
'cj' => '',
'capital' => '',
'capitalDev' => '',
'ape_etab' => '',
'idSd' => "CONCAT(source,'-',source_id) AS idSd",
'source' => '',
'triCode' => '',
'autre_id' => '',
'actif' => '',
'siege' => '',
'raisonSociale' => '',
'enseigne' => '',
'sigle' => '',
'marques' => '',
'adr_num' => '',
'adr_btq' => '',
'adr_typeVoie' => '',
'adr_libVoie' => '',
'adr_comp' => '',
'adr_cp' => '',
'adr_ville' => '',
'adr_dep' => '',
'adr_codeCom' => 'CONCAT(if (adr_dep>100,round(adr_dep/10),adr_dep*1),adr_com) AS adr_codeCom',
'telEtab' => 'tel as telEtab',
'faxEtab' => 'fax as faxEtab',
'cj' => '',
'capital' => '',
'capitalDev' => '',
'ape_etab' => '',
'ape_entrep' => '',
'SiretEnBase' => 'nic>0 as SiretEnBase',
),
@ -126,7 +126,7 @@ $tabDico = array(
'DCRET' => '',
'EFF_ET' => '',
'CODEVOIE' => '',
'dateMajInsee' => 'dateUpdate as dateMajInsee',
'dateMajInsee' => 'dateUpdate as dateMajInsee',
),
'where' => ' WHERE SIREN=$siren AND NIC=$nicV',
),
@ -139,7 +139,7 @@ $tabDico = array(
'insARRONET' => '',
'insCTONET' => '',
'insTCD' => '',
'insZEMET' => '',
'insZEMET' => '',
'insDU' => '',
'insTU' => '',
'insUU' => '',
@ -207,7 +207,7 @@ $tabDico = array(
'web' => '',
'mail' => '',
),
'where' => ' WHERE siren=$siren',
'where' => ' WHERE siren=$siren',
),
'data' => array(
'nicSiege',
@ -218,7 +218,7 @@ $tabDico = array(
'situationJuridique',
'situationParution',
'situationDernCode',
'situationDernEven',
'situationDernEven',
'indiScore',
'dirigeant',
'bilanN',
@ -285,7 +285,7 @@ try {
exit ( $e->getMessage() );
}
$tabExtract = array();
$tabExtract = array();
$tabEntete = array();
$tabIdentifiant = array();
$tabData = array();
@ -299,8 +299,8 @@ $inFile = $path->data.'/clients/'.$file.'.csv';
$row = 0;
if (($handle = fopen($inFile, 'r')) !== FALSE) {
while (($data = fgetcsv($handle, 0, ',', '"')) !== FALSE) {
$num = count($data);
$num = count($data);
//Traitement de la première ligne
if ($row == 0) {
for ($c=0; $c < $num; $c++) {
@ -323,7 +323,7 @@ if (($handle = fopen($inFile, 'r')) !== FALSE) {
}
if ($posKeySiren===false && $posKeySiret===false){
die("Aucune clé détecté!");
}
}
//Traitement des identifiants
} else {
@ -333,16 +333,16 @@ if (($handle = fopen($inFile, 'r')) !== FALSE) {
$tabIdentifiant[] = $data[$posKeySiren].$data[$posKeyNic];
} elseif ( $posKeySiren !==false ){
$tabIdentifiant[] = $data[$posKeySiren];
}
}
for ($c=0; $c < $num; $c++) {
$colname = $tabExtract[$c];
$colname = $tabExtract[$c];
if (!in_array(strtolower($colname), array('siren', 'siret', 'nic'))){
$tabData[$row-1][$colname] = $data[$c];
}
}
}
}
$row++;
}
fclose($handle);
@ -364,7 +364,7 @@ $dico = new Enrichissement();
foreach($tabExtract as $key)
{
$strKey = false;
//Détection element(VAL1,VAL2)
$values = false;
if (preg_match('/(.*)\((.*)\)/', $key, $matches))
@ -372,43 +372,43 @@ foreach($tabExtract as $key)
$key = $matches[1];
$values = $matches[2];
}
//Traitement spécial pour le champs, ajout et remplacement sur entete
if (function_exists($key.'Entete')){
$keys = call_user_func($key.'Entete', $values);
foreach($keys as $item){
$tabEntete[] = $item;
}
} else {
}
} else {
$tabEntete[] = $key;
}
//Ajout à la requete SQL
foreach($tabDico as $element => $select)
{
if ( array_key_exists('db', $select) && array_key_exists($key, $select['cle']) )
{
if (isset(${$element.'Fields'})){ ${$element.'Fields'}.= ', '; }
if ($select['cle'][$key]!=''){
$strKey = $select['cle'][$key];
}
if ($strKey!==false){
${$element.'Fields'}.= $strKey;
} else {
${$element.'Fields'}.= $key;
}
break;
}
if ( $element == 'data' && in_array($key, $select) )
{
}
if ( $element == 'data' && in_array($key, $select) )
{
${$key.'Data'} = $values;
}
}
}
//Ajout colonne obligatoire SiretValide
$tabEntete[] = 'SiretValide';
$tabEntete[] = 'SiretValide';
unset($tabExtract);
//Construction de l'entete pour le fichier
@ -421,19 +421,19 @@ if (count($tabEntete)>0){
} else {
$tabEnteteF[] = $key;
}
}
}
}
//Définition du fichier de sortie
if ( $opts->reprise ) {
$outFile = $path->data.'/export/'.$commande->fichierOut;
$rowReprise = 0;
$fp = fopen($outFile, 'r+');
while (($data = fgetcsv($fp, 0, ',', '"')) !== FALSE) {
$rowReprise++;
}
} else {
$outFile = $path->data.'/export/'.$file.'-'.date('YmdHis').'.csv';
@ -442,7 +442,7 @@ if ( $opts->reprise ) {
if (count($tabEnteteF)>0){
fputcsv($fp, $tabEnteteF, ',', '"');
}
//Mise à jour des éléments
if ($opts->id) {
$commandesM->update(array(
@ -450,62 +450,69 @@ if ( $opts->reprise ) {
'fichierOut' => basename($outFile)),
"id = ".$commande->id);
}
}
$row = 0;
//Vérification et création des données
foreach($tabIdentifiant as $item)
foreach($tabIdentifiant as $item)
{
echo "Ligne ".($row+1)." - ";
if ( $opts->reprise && $row < $rowReprise ) {
//Reprise
//Reprise
$row++;
echo "Reprise";
} else {
$siretValide = false;
$sirenValide = false;
$siren = substr($item, 0, 9);
$nic = substr($item, 9);
//Vérification par algorithme
$siretValide = siretValide($item);
if ($posKeySiret!==false){
if ($siretValide===false){
$sirenValide = sirenValide($siren);
} else {
$sirenValide = true;
}
}
if ($posKeySiren!==false && $posKeyNic!==false) {
$sirenValide = sirenValide($siren);
//Simple vérification, seulement des chiffres
if (!preg_match('/[0-9]{9}/', $siren)) {
$siretValide = $sirenValide = false;
} else {
//Vérification par algorithme
$siretValide = siretValide($item);
if ($posKeySiret!==false) {
if ($siretValide===false) {
$sirenValide = sirenValide($siren);
} else {
$sirenValide = true;
}
}
if ($posKeySiren!==false && $posKeyNic!==false) {
$sirenValide = sirenValide($siren);
}
}
//On définit le tableau de retour
if ( $posKeySiret!==false ){
$tabData[$row]['siret'] = $item;
} elseif ( $posKeySiren!==false && $posKeyNic!==false ){
$tabData[$row]['siren'] = $siren;
$tabData[$row]['nic'] = $nic;
} elseif ( $posKeySiren !==false ){
} elseif ( $posKeySiren !==false ){
$tabData[$row]['siren'] = $siren;
}
$tabData[$row]['SiretValide'] = ($siretValide===true) ? 1 : 0;
if ( $sirenValide===false || intval($siren)==0 ){
//Siren faux
} else {
//Vérifier les nic, ou sélectionner le nic du siege actif
$nicV = $nic; //Surcharge pour le nic
$strNic = '';
$sqlNic = 'SELECT nic as nicTmp, cj as cjTmp FROM jo.etablissements WHERE siren='.$siren;
//Si identifiant est un siret, char(14) alors on vérifie que le NIC existe
if (strlen($item)==14 && intval($nic)>0){
$stmt = $dbMetier->query($sqlNic.' AND nic='.$nic);
$result = $stmt->fetchAll();
@ -517,7 +524,7 @@ foreach($tabIdentifiant as $item)
$fJur = $result[0]['cjTmp'];
}
}
if (intval($nicV)==0){
$strNic = ' AND nic>-1 AND actif>-1 ORDER BY siege DESC, actif DESC, nicTmp DESC LIMIT 0,1';
$stmt = $dbMetier->query($sqlNic.$strNic);
@ -529,13 +536,13 @@ foreach($tabIdentifiant as $item)
$nicV = '00000';
$fJur = '0000';
}
}
}
if ( $posKeySiren!==false && $posKeyNic!==false ){
$tabData[$row]['siren'] = $siren;
$tabData[$row]['nic'] = $nic;
}
//Récupération des données
foreach($tabDico as $element => $select)
{
@ -544,58 +551,58 @@ foreach($tabIdentifiant as $item)
$where = $select['where'];
eval( "\$where = \"$where\";" );
${$element.'SQL'} = 'SELECT '.${$element.'Fields'}.' FROM '.$select['db'].$where;
try {
$stmt = $dbMetier->query(${$element.'SQL'});
$stmt = $dbMetier->query(${$element.'SQL'});
$result = $stmt->fetchAll();
if ( count($result)>0 ) {
$tabData[$row] = array_merge( $tabData[$row] , $result[0]);
}
} catch (Zend_Db_Exception $e) {
//Enregistrement du message d'erreur
if ($opts->id) {
$commandesM->update(array('error'=>$e->getMessage()), "id = ".$commande->id);
}
//Arret du script
exit;
}
}
//Traitement par fonction
if( $element == 'data' )
if( $element == 'data' )
{
foreach($select as $item)
{
if (isset(${$item.'Data'}))
if (isset(${$item.'Data'}))
{
$values = false;
if( ${$item.'Data'}!=false ){
$values = ${$item.'Data'};
}
}
$retour = call_user_func($item.'Data', $siren, $nicV, $values);
$tabData[$row] = $tabData[$row] + $retour;
}
}
}
}
}
}
}
//Trier pour la sortie
$tabSortie = array();
foreach($tabEntete as $key){
$tabSortie[] = isset($tabData[$row][$key]) ? $tabData[$row][$key] : '';
}
fputcsv($fp, $tabSortie, ',', '"');
$row++;
echo "OK";
}
echo "\n";
//Mise à jour des lignes traitées dans la base
if ($opts->id) {
$commandesM->update(array('nbLigneT'=>$row), "id = ".$commande->id);
@ -603,7 +610,7 @@ foreach($tabIdentifiant as $item)
}
fclose($fp);
if ($opts->id) {
$commandesM->update( array('dateStop' => date('Y-m-d H:i:s')) , "id = ".$commande->id);
$commandesM->update( array('dateStop' => date('Y-m-d H:i:s')) , "id = ".$commande->id);
}
@ -628,7 +635,7 @@ function dateFermetureEtEntete($values)
return array(
'dateFermetureEt',
'codeFermetureEt',
);
);
}
function dateFermetureEtData($siren, $nic, $values = false)
@ -640,7 +647,7 @@ function dateFermetureEtData($siren, $nic, $values = false)
$ret = $iDb->select('insee.insee_even', 'insEVE, insDATEVE', "insSIRETPS=$siret AND insEVE IN('510','530') ORDER BY insDATEVE DESC LIMIT 1", false, MYSQL_ASSOC);
}
$tabData['dateFermetureEt'] = isset($ret[0]['insDATEVE']) ? $ret[0]['insDATEVE'] : '';
$tabData['codeFermetureEt'] = isset($ret[0]['insEVE']) ? $ret[0]['insEVE'] : '';
$tabData['codeFermetureEt'] = isset($ret[0]['insEVE']) ? $ret[0]['insEVE'] : '';
return $tabData;
}
@ -678,10 +685,10 @@ function situationJuridiqueEntete($values)
'situationParution',
'situationDernCode',
'situationDernEven',
);
);
}
function situationJuridiqueData($siren, $nic, $values = false)
function situationJuridiqueData($siren, $nic, $values = false)
{
$tabTmp = array('P','A','D');
$tabData['situationJuridique']='';
@ -707,7 +714,7 @@ function situationJuridiqueData($siren, $nic, $values = false)
$tabData['situationDernCode']='';
$tabData['situationDernEven']='';
}
return $tabData;
}
@ -724,7 +731,7 @@ function dirigeantEntete($values)
'dirigeant2LieuNaiss',
);
}
function dirigeantData($siren, $nic, $values = false)
{
$iInsee = new MInsee();
@ -738,15 +745,15 @@ function dirigeantData($siren, $nic, $values = false)
$tabData['dirigeant2DateNaiss'] = '';
$tabData['dirigeant2LieuNaiss'] = '';
if (count($tmp)>0 ) {
$dir = $tmp[0];
if ($dir['Societe']<>'') $tabData['dirigeant1Nom'].= $dir['Societe'].' repr. par ';
$tabData['dirigeant1Nom'].= trim($dir['Civilite'].' '.$dir['Nom'].' '.$dir['Prenom']);
$dir = $tmp[0];
if ($dir['Societe']<>'') $tabData['dirigeant1Nom'].= $dir['Societe'].' repr. par ';
$tabData['dirigeant1Nom'].= trim($dir['Civilite'].' '.$dir['Nom'].' '.$dir['Prenom']);
$tabData['dirigeant1Fonction'] = $dir['Titre'];
$tabData['dirigeant1DateNaiss'] = $dir['NaissDate'];
$tabData['dirigeant1LieuNaiss'] = $dir['NaissVille'];
$tabData['dirigeant1LieuNaiss'] = $dir['NaissVille'];
}
if (count($tmp)>1) {
$dir = $tmp[1];
$dir = $tmp[1];
if ($dir['Societe']<>'') $tabData['dirigeant2Nom'].=$dir['Societe'].' repr. par ';
$tabData['dirigeant2Nom'].= trim($dir['Civilite'].' '.$dir['Nom'].' '.$dir['Prenom']);
$tabData['dirigeant2Fonction'] = $dir['Titre'];
@ -763,11 +770,11 @@ function bilanNEntete($values)
$tmp = array();
foreach($values as $value){
$tmp[] = 'bilanN'.$value;
}
return array_merge(
}
return array_merge(
array('bilanNdateCloture', 'bilanNdureeMois')
, $tmp
);
, $tmp
);
} else {
return array('bilanNdateCloture', 'bilanNdureeMois');
}
@ -775,15 +782,15 @@ function bilanNEntete($values)
function bilanNData($siren, $nic, $values = false)
{
require_once 'Metier/partenaires/classMBilans.php';
$tabPostes = explode(',', $values);
$tabPostes = explode(',', $values);
$annee = 0;
$tabData = array();
$mBil = new MBilans($siren);
$tabBilans = $mBil->listeBilans(false, 9);
if (count($tabBilans)>0) {
if (count($tabBilans)>0) {
$tabBi = findBilan($siren, $tabBilans, $annee);
$tabData['bilanNdateCloture'] = $tabBi['DATE_CLOTURE'];
$tabData['bilanNdureeMois'] = $tabBi['DUREE_MOIS'];
$tabData['bilanNdureeMois'] = $tabBi['DUREE_MOIS'];
if (count($tabPostes)>0) {
foreach ($tabPostes as $poste) {
if (isset($tabBi[$poste])){
@ -802,11 +809,11 @@ function bilanN1Entete($values)
$tmp = array();
foreach($values as $value){
$tmp[] = 'bilanN1'.$value;
}
return array_merge(
}
return array_merge(
array('bilanN1dateCloture', 'bilanN1dureeMois')
, $tmp
);
, $tmp
);
} else {
return array('bilanN1dateCloture', 'bilanN1dureeMois');
}
@ -819,10 +826,10 @@ function bilanN1Data($siren, $nic, $values = false)
$tabData = array();
$mBil = new MBilans($siren);
$tabBilans = $mBil->listeBilans(false, 9);
if (count($tabBilans)>0) {
if (count($tabBilans)>0) {
$tabBi = findBilan($siren, $tabBilans, $annee);
$tabData['bilanN1dateCloture'] = $tabBi['DATE_CLOTURE'];
$tabData['bilanN1dureeMois'] = $tabBi['DUREE_MOIS'];
$tabData['bilanN1dureeMois'] = $tabBi['DUREE_MOIS'];
if (count($tabPostes)>0) {
foreach ($tabPostes as $poste) {
if (isset($tabBi[$poste])){
@ -841,11 +848,11 @@ function bilanN2Entete($values)
$tmp = array();
foreach($values as $value){
$tmp[] = 'bilanN2'.$value;
}
return array_merge(
}
return array_merge(
array('bilanN2dateCloture', 'bilanN2dureeMois')
, $tmp
);
, $tmp
);
} else {
return array('bilanN2dateCloture', 'bilanN2dureeMois');
}
@ -858,10 +865,10 @@ function bilanN2Data($siren, $nic, $values = false)
$tabData = array();
$mBil = new MBilans($siren);
$tabBilans = $mBil->listeBilans(false, 9);
if (count($tabBilans)>0) {
if (count($tabBilans)>0) {
$tabBi = findBilan($siren, $tabBilans, $annee);
$tabData['bilanN2dateCloture'] = $tabBi['DATE_CLOTURE'];
$tabData['bilanN2dureeMois'] = $tabBi['DUREE_MOIS'];
$tabData['bilanN2dureeMois'] = $tabBi['DUREE_MOIS'];
if (count($tabPostes)>0) {
foreach ($tabPostes as $poste) {
if (isset($tabBi[$poste])){
@ -879,7 +886,7 @@ function findBilan($siren, $tabBilans, $position = 0)
$mBil = new MBilans($siren);
//Trier et Supprimer les bilans consolidés
$tabBilN = $tabBilS = array();
foreach ($tabBilans as $typeMil => $bilan) {
foreach ($tabBilans as $typeMil => $bilan) {
$temp = $mBil->getBilan(substr($typeMil,1), substr($typeMil,0,1));
$annee = $bilan['millesime'];
if (substr($typeMil,0,1)=='N') {
@ -899,7 +906,7 @@ function findBilan($siren, $tabBilans, $position = 0)
}
if ($tabBi['CONSOLIDE'] == 'S'){
$bilanT = bilanSimplifie2Normal($tabBi);
$tabBi = $tabBi + $bilanT;
$tabBi = $tabBi + $bilanT;
}
return $tabBi;
}
@ -1014,7 +1021,7 @@ function bilanSimplifie2Normal($bilanRS)
'YZ'=>'378',
'YP'=>'376',
);
$bilanRN=array();
foreach ($tabBS2BN as $posteRN => $formule) {
if (preg_match('/\+|\-/', $formule)) {
@ -1045,7 +1052,7 @@ function bilanSimplifie2Normal($bilanRS)
$bilanRN['BN']=$bilanRS['050'];
$bilanRN['BO']=$bilanRS['052'];
}
if ($bilanRS['070']<>0 || $bilanRS['074']<>0 || $bilanRS['052']<>0 || $bilanRS['062']<>0)
$bilanRN['GC']=$bilanRS['256'];
elseif ($bilanRS['070']==0 && $bilanRS['074']==0 && $bilanRS['052']==0 && $bilanRS['062']==0 && $bilanRS['254']<>0)
@ -1078,7 +1085,7 @@ function annoncesEntete($values)
}
return $tmp;
} else {
return array();
return array();
}
}
function annoncesData($siren, $nic, $values = false)
@ -1097,11 +1104,11 @@ function annoncesData($siren, $nic, $values = false)
$dateEven = $tabAnn['dateJugement'];
if ($dateEven=='0000-00-00') $dateEven=$tabAnn['dateEffet'];
if ($dateEven=='0000-00-00') $dateEven=$tabAnn['DateParution'];
$tabData['Annonce'.$even.'Lib'] = strtr($codEve['LibEven'],array(','=>' ',"'"=>' ','"'=>' ',';'=>' '));
$tabData['Annonce'.$even.'Date'] = $dateEven;
$tabData['Annonce'.$even.'DateParution'] = $tabAnn['DateParution'];
}
}
}