183 lines
10 KiB
PHP
183 lines
10 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');
|
|
|
|
$iDb=new WDB('modelisation');
|
|
$iDbEve=new WDB('jo');
|
|
|
|
$iInsee=new MInsee();
|
|
|
|
echo date ('Y/m/d - H:i:s')." - Début du traitement...".EOL;
|
|
flush();
|
|
|
|
$tabInsee=array(/*'insee200403', 'insee200506', 'insee200604', 'insee200605', 'insee200607', 'insee200608', 'insee200609',
|
|
'insee200610', 'insee200611', 'insee200612', 'insee200701', 'insee200702', 'insee200703', 'insee200704',
|
|
'insee200705',*/
|
|
'insee200707',
|
|
);
|
|
/*
|
|
1. UPDATE etablissements SET SOORIG=0; // Toutes les étab sont considérés inactifs
|
|
2. Réindexer Sphinx indexer
|
|
*/
|
|
|
|
//$tabInsee=array('insee200705',);
|
|
|
|
|
|
|
|
$fields='insSIREN, insNIC, insNOMEN, insNOMET, insSIGLE, insCADR, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE, insDISTSP, insACHPOSTE, insRPET, insDEPET, insARRONET, insCTONET, '.
|
|
'insCOMET, insLIBCOM, insDU, insTU, insU7U, insCODPOS, insTCD, insZEMET, insCODEVOIE, insAPET700, insAPET31, insSIEGE, insTEFET, insEFETCENT, insORIGINE, insDCRET, insMMINTRET, '.
|
|
'insNATURE, insSAISONAT, insMODET, insDAPET, insDEFET, insSINGT, insAUXILT, insEAEANT, insEAEAPET, insEAESEC1T, insEAESEC2T, insCJ, insTEFEN, insEFENCENT, insAPEN700, '.
|
|
'insAPEN31, insAPRM, insTCA, insSEXE, insRECME, insDAPEN, insDEFEN, insDCREN, insMMINTREN, insMONOACT, insMODEN, insORDIN, insEAEANN, insEAEAPEN, insEAESEC1N, insEAESEC2N, '.
|
|
'insEAESEC3N, insEAESEC4N, insNBTOA, insTCAEXPOR, insREGIMP, insMONOREG, insRPEN, insDEPCOMEN, SPEACT, SORLJ_N, SOEVT, SOROL, SODJL_D, SOEDRQ, SOEDRN_X, SOEDRD_D, SOEDRL_N, '.
|
|
'SORSNC, SORSNO, SOETEL, SOEFAX, SODTEN_D';
|
|
|
|
$fieldsEtab='SIREN, NIC, SOORIG, SONOM, SONOM2, SOSIG, SOENS, SONRU, SOBTQ, TYPVOIE, SORUE, SOCOM, SOCP, SOCPLA, SODTCT, SOSTAE, SOCJEN, SOTSEX, SONBET, SOAPET, SOAPFT, SOAPEE, SOAPFE, SORLJ, SOCAPI, SOEFF, SORCE, SOETEL, SOEFAX, SOEDRQ, SOEDRN, SDEDRD, SOEDRL, SOTYPM, SOISIN, SODCAP, SOCAPO, SOCLAT, SOEDPE, SOELCE, SOECA, SOECAX, SOSINE';
|
|
$tabSirenDoubles=array();
|
|
$nbRecords=100000;
|
|
foreach ($tabInsee as $numTable => $table) {
|
|
$ret=$iDb->select($table, 'count(*) as nb', '1', false);
|
|
$nb=$ret[0][0];
|
|
echo date ('Y/m/d - H:i:s')." - Table $table : $nb enregistrements.".EOL;
|
|
if ($table=='insee200707') $origine=1;
|
|
else $origine=0;
|
|
if ($table=='insee200707') $ideb=0;
|
|
else $ideb=0;
|
|
for ($i=$ideb; $i<$nb; $i=$i+$nbRecords) {
|
|
$ret=$iDb->select($table, $fields, "1 LIMIT $i, $nbRecords", true, MYSQL_ASSOC, true);
|
|
echo date ('Y/m/d - H:i:s')." - Table $table : enregistrement $i à ".($i+$nbRecords)." / $nb".EOL;
|
|
//die($ret);
|
|
$k=0;
|
|
while($ligne=$iDb->fetch(MYSQL_ASSOC)) {
|
|
$k++;
|
|
$siren=$ligne['insSIREN'];
|
|
$nic =$ligne['insNIC'];
|
|
$ret2=$iDbEve->select('etablissements', $fieldsEtab, "SIREN=$siren AND NIC=$nic");
|
|
$cpt=count($ret2);
|
|
if ($cpt>1) {
|
|
//die(date ('Y/m/d - H:i:s')." - Siret $siren $nic : $cpt correspondances".EOL);
|
|
$tabSirenDoubles[]=$siren;// RAF
|
|
print_r($ret2);
|
|
echo EOL.'==============================================='.EOL;
|
|
}
|
|
elseif ($cpt==1) {
|
|
//echo date ('Y/m/d - H:i:s')." - Siret $siren $nic : $cpt correspondances".EOL;
|
|
$etab=$ret2[0];
|
|
//echo "Raison Sociale = '".$etab['SONOM']."' <--> '".$ligne['insNOMEN']."'".EOL;
|
|
if ($ligne['insSIEGE']==1 && $ligne['insSAISONAT']==1 && $ligne['insAUXILT']==1) // 1 : Saisonnier
|
|
$statut=7;
|
|
elseif ($ligne['insSIEGE']==1 && $ligne['insSAISONAT']==1 && $ligne['insAUXILT']==0) // 1 : Saisonnier
|
|
$statut=5;
|
|
elseif ($ligne['insSIEGE']==1 && $ligne['insSAISONAT']==0 && $ligne['insAUXILT']==1) // 1 : Saisonnier
|
|
$statut=3;
|
|
elseif ($ligne['insSIEGE']==1 && $ligne['insSAISONAT']==0 && $ligne['insAUXILT']==0) // 1 : Saisonnier
|
|
$statut=1;
|
|
elseif ($ligne['insSIEGE']==0 && $ligne['insSAISONAT']==0 && $ligne['insAUXILT']==0) // 1 : Saisonnier
|
|
$statut=2;
|
|
elseif ($ligne['insSIEGE']==0 && $ligne['insSAISONAT']==1 && $ligne['insAUXILT']==0) // 1 : Saisonnier
|
|
$statut=6;
|
|
elseif ($ligne['insSIEGE']==0 && $ligne['insSAISONAT']==1) // 1 : Saisonnier
|
|
$statut=4;
|
|
else $statut=8;
|
|
|
|
$tabUpdate=array( 'SOORIG'=> $origine, // Mise à jour Notice 80 mensuel Insee
|
|
'SOSTAE'=> $statut, // Siège + Saisonnat + Auxil
|
|
'DISTSP'=> trim($ligne['insDISTSP']), // Distribution Spéciale
|
|
'ACHPOSTE'=>trim($ligne['insACHPOSTE']), // Acheminement Postal
|
|
'DCRET'=> substr($ligne['insDCRET'],2,4).substr($ligne['insDCRET'],0,2).'00', // Date CREA Etab.
|
|
);
|
|
$retUpdate=$iDbEve->update('etablissements', $tabUpdate, "SIREN=$siren AND NIC=$nic", false);
|
|
if (!$retUpdate) die('Erreur lors de MAJ Mysql n°'. mysql_errno() .' : '.mysql_error());
|
|
} elseif ($cpt==0) {
|
|
$siegeDep=substr($ligne['insDEPCOMEN'], 0, 2); // Département du siège
|
|
$siegeLoc=substr($ligne['insDEPCOMEN'], 2, 3); // Code commune du siège
|
|
//$statut=0; //Siège + Saisonnat + Auxil
|
|
if ($ligne['insSIEGE']==1 && $ligne['insSAISONAT']==1 && $ligne['insAUXILT']==1) // 1 : Saisonnier
|
|
$statut=7;
|
|
elseif ($ligne['insSIEGE']==1 && $ligne['insSAISONAT']==1 && $ligne['insAUXILT']==0) // 1 : Saisonnier
|
|
$statut=5;
|
|
elseif ($ligne['insSIEGE']==1 && $ligne['insSAISONAT']==0 && $ligne['insAUXILT']==1) // 1 : Saisonnier
|
|
$statut=3;
|
|
elseif ($ligne['insSIEGE']==1 && $ligne['insSAISONAT']==0 && $ligne['insAUXILT']==0) // 1 : Saisonnier
|
|
$statut=1;
|
|
elseif ($ligne['insSIEGE']==0 && $ligne['insSAISONAT']==0 && $ligne['insAUXILT']==0) // 1 : Saisonnier
|
|
$statut=2;
|
|
elseif ($ligne['insSIEGE']==0 && $ligne['insSAISONAT']==1 && $ligne['insAUXILT']==0) // 1 : Saisonnier
|
|
$statut=6;
|
|
elseif ($ligne['insSIEGE']==0 && $ligne['insSAISONAT']==1) // 1 : Saisonnier
|
|
$statut=4;
|
|
else $statut=8;
|
|
|
|
$tabInsert=array( 'SIREN'=> $ligne['insSIREN'],
|
|
'NIC'=> $ligne['insNIC'],
|
|
'SOORIG'=> $origine, // Mise à jour Notice 80 mensuel Insee
|
|
'SONOM'=> trim($ligne['insNOMEN']), // Raison Sociale de l'entreprise
|
|
'SOENS'=> trim($ligne['insNOMET']), // Nom de l'établissement ou enseigne
|
|
'SOSIG'=> trim($ligne['insSIGLE']), // Sigle
|
|
'SONRU'=> trim($ligne['insNUMVOIE']), // N° dans la voie
|
|
'SOBTQ'=> trim($ligne['insINDREP']), // BTQ
|
|
/**/ 'TYPVOIE'=> trim($ligne['insTYPVOIE']), // Type de voie
|
|
'SORUE'=> trim($ligne['insLIBVOIE']), // Lib Voie
|
|
'SOCP'=> trim($ligne['insCODPOS']), // Code Postal
|
|
'SOCOM'=> trim($ligne['insLIBCOM']), // Commune
|
|
'SOCPLA'=> trim($ligne['insCADR']), // Complément d'adresse
|
|
/**/ 'DISTSP'=> trim($ligne['insDISTSP']), // Distribution Spéciale
|
|
/**/ 'ACHPOSTE'=>trim($ligne['insACHPOSTE']), // Acheminement Postal
|
|
/**/ 'DCRET'=> substr($ligne['insDCRET'],2,4).substr($ligne['insDCRET'],0,2).'00', // Date CREA Etab.
|
|
'SODTCT'=> substr($ligne['insDCREN'],2,4).substr($ligne['insDCREN'],0,2).'00', // Date CREA Entrep.
|
|
'SOSTAE'=> $statut,//Siège + Saisonnat + Auxil
|
|
'SOCJEN'=> trim($ligne['insCJ']),
|
|
'SOTSEX'=> trim($ligne['insSEXE']),
|
|
'SONBET'=> trim($ligne['insNBTOA']), // Nombre d'établissement de l'entreprise
|
|
'SOAPET'=> $ligne['insAPEN700'], // Code NAF de l'entreprise (cf. table APE)
|
|
'SOAPEE'=> $ligne['insAPET700'], // Code NAF de l'établissement (cf. table APE)
|
|
'SORLJ'=> $ligne['SORLJ_N'], // Procédure Collective sur l'entreprise : O = Présence ProCol dans l'historique annonces
|
|
'SOEFF'=> $ligne['insEFENCENT'], // Effectif connu à la centaine de l'entreprise
|
|
'SOETEL'=> $ligne['SOETEL'], // Téléphone de l'établissement
|
|
'SOEFAX'=> $ligne['SOEFAX'], // FAX de l'établissement
|
|
'SOEDRQ'=> $ligne['SOEDRQ'], // Qualité du dirigeant de l'entreprise (cf. table DQA)
|
|
'SOEDRN'=> $ligne['SOEDRN_X'], // Nom & Prénom du dirigeant
|
|
'SDEDRD'=> $ligne['SOEDRD_D'], // Date de naissance du dirigeant (SSAAMMJJ)
|
|
'SOEDRL'=> $ligne['SOEDRL_N'], // Lieu de naissance du dirigeant
|
|
'SOCLAT'=> $ligne['insTEFEN'], // Tranche d'effectif de l'entreprise (cf. table INL)
|
|
//'SOERGS'=> $ligne['insRPEN'], // Code région INSEE du siège (cf. table ING)
|
|
//'SOERGE'=> $ligne['insRPET'], // Code région INSEE de l'étab. (cf. table ING)
|
|
//'SOEDPS'=> $siegeDep, // Département du siège
|
|
//'SOELCS'=> $siegeLoc, // Code localité du siège
|
|
'SOEDPE'=> $ligne['insDEPET'], // Département de l'établissement
|
|
'SOELCE'=> $ligne['insCOMET'], // Code localité de l'établissement
|
|
'SOECA'=> $ligne['insTCA'], // Code tranche CA de l'entreprise (cf. table INT)
|
|
'SOECAX'=> $ligne['insTCAEXPOR'], // Code tranche CA Expor. Entrep. (cf. table INP)
|
|
'SOSINE'=> $ligne['insSINGT'], // Code Singularité établissement (cf. table INE)
|
|
'dateInsert'=>$ligne['SODTEN_D'],
|
|
);
|
|
$retInsert=$iDbEve->insert('etablissements', $tabInsert, true);
|
|
if (!$retInsert) die('Erreur Mysql n°'. mysql_errno() .' : '.mysql_error());
|
|
// print_r($tabInsert);
|
|
// fgets(STDIN);
|
|
/*
|
|
|
|
Vérifier les champs insee non intégrées dans la base des étab !!!
|
|
insAPET31, insTEFET, insEFETCENT, insORIGINE, insMMINTRET,
|
|
insNATURE, insMODET, insDAPET, insDEFET, insEAEANT, insEAEAPET, insEAESEC1T, insEAESEC2T,
|
|
insAPEN31, insAPRM, insRECME, insDAPEN, insDEFEN, insMMINTREN, insMONOACT, insMODEN, insORDIN, insEAEANN, insEAEAPEN, insEAESEC1N, insEAESEC2N,
|
|
insEAESEC3N, insEAESEC4N, insREGIMP, insMONOREG, SPEACT, SOEVT, SOROL, SODJL_D,
|
|
SORSNC, SORSNO, SODTEN_D
|
|
|
|
Il manque les zones suivantes depuis la base
|
|
SOCAPI 13 Montant du capital de l'entreprise
|
|
SORCE 9 Numéro de RC de l'entreprise
|
|
SODCAP 8 Date de mise à jour du capital (SSAAMMJJ)
|
|
SOCAPO 3 Monnaie d'origine du capital (cf. table BDV)
|
|
*/
|
|
} else die(date ('Y/m/d - H:i:s')." - Siret $siren $nic : Nb $cpt correspondances impossible !!!".EOL);
|
|
}
|
|
}
|
|
}
|
|
|
|
//print_r(array_unique($tabSirenDoubles));
|
|
|
|
?>
|