batch/1.1/old/majEtab.php

183 lines
10 KiB
PHP
Raw Normal View History

#!/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();
2013-06-19 08:24:49 +00:00
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',
);
/*
2013-06-19 08:24:49 +00:00
1. UPDATE etablissements SET SOORIG=0; // Toutes les <20>tab sont consid<69>r<EFBFBD>s inactifs
2. R<EFBFBD>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);
2013-06-19 08:24:49 +00:00
echo date ('Y/m/d - H:i:s')." - Table $table : enregistrement $i <20> ".($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;
2013-06-19 08:24:49 +00:00
$tabUpdate=array( 'SOORIG'=> $origine, // Mise <20> jour Notice 80 mensuel Insee
'SOSTAE'=> $statut, // Si<53>ge + Saisonnat + Auxil
'DISTSP'=> trim($ligne['insDISTSP']), // Distribution Sp<53>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);
2013-06-19 08:24:49 +00:00
if (!$retUpdate) die('Erreur lors de MAJ Mysql n<>'. mysql_errno() .' : '.mysql_error());
} elseif ($cpt==0) {
2013-06-19 08:24:49 +00:00
$siegeDep=substr($ligne['insDEPCOMEN'], 0, 2); // D<>partement du si<73>ge
$siegeLoc=substr($ligne['insDEPCOMEN'], 2, 3); // Code commune du si<73>ge
//$statut=0; //Si<53>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'],
2013-06-19 08:24:49 +00:00
'SOORIG'=> $origine, // Mise <20> jour Notice 80 mensuel Insee
'SONOM'=> trim($ligne['insNOMEN']), // Raison Sociale de l'entreprise
2013-06-19 08:24:49 +00:00
'SOENS'=> trim($ligne['insNOMET']), // Nom de l'<27>tablissement ou enseigne
'SOSIG'=> trim($ligne['insSIGLE']), // Sigle
2013-06-19 08:24:49 +00:00
'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
2013-06-19 08:24:49 +00:00
'SOCPLA'=> trim($ligne['insCADR']), // Compl<70>ment d'adresse
/**/ 'DISTSP'=> trim($ligne['insDISTSP']), // Distribution Sp<53>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.
2013-06-19 08:24:49 +00:00
'SOSTAE'=> $statut,//Si<53>ge + Saisonnat + Auxil
'SOCJEN'=> trim($ligne['insCJ']),
'SOTSEX'=> trim($ligne['insSEXE']),
2013-06-19 08:24:49 +00:00
'SONBET'=> trim($ligne['insNBTOA']), // Nombre d'<27>tablissement de l'entreprise
'SOAPET'=> $ligne['insAPEN700'], // Code NAF de l'entreprise (cf. table APE)
2013-06-19 08:24:49 +00:00
'SOAPEE'=> $ligne['insAPET700'], // Code NAF de l'<27>tablissement (cf. table APE)
'SORLJ'=> $ligne['SORLJ_N'], // Proc<6F>dure Collective sur l'entreprise : O = Pr<50>sence ProCol dans l'historique annonces
'SOEFF'=> $ligne['insEFENCENT'], // Effectif connu <20> la centaine de l'entreprise
'SOETEL'=> $ligne['SOETEL'], // T<>l<EFBFBD>phone de l'<27>tablissement
'SOEFAX'=> $ligne['SOEFAX'], // FAX de l'<27>tablissement
'SOEDRQ'=> $ligne['SOEDRQ'], // Qualit<69> du dirigeant de l'entreprise (cf. table DQA)
'SOEDRN'=> $ligne['SOEDRN_X'], // Nom & Pr<50>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)
2013-06-19 08:24:49 +00:00
//'SOERGS'=> $ligne['insRPEN'], // Code r<>gion INSEE du si<73>ge (cf. table ING)
//'SOERGE'=> $ligne['insRPET'], // Code r<>gion INSEE de l'<27>tab. (cf. table ING)
//'SOEDPS'=> $siegeDep, // D<>partement du si<73>ge
//'SOELCS'=> $siegeLoc, // Code localit<69> du si<73>ge
'SOEDPE'=> $ligne['insDEPET'], // D<>partement de l'<27>tablissement
'SOELCE'=> $ligne['insCOMET'], // Code localit<69> de l'<27>tablissement
'SOECA'=> $ligne['insTCA'], // Code tranche CA de l'entreprise (cf. table INT)
'SOECAX'=> $ligne['insTCAEXPOR'], // Code tranche CA Expor. Entrep. (cf. table INP)
2013-06-19 08:24:49 +00:00
'SOSINE'=> $ligne['insSINGT'], // Code Singularit<69> <20>tablissement (cf. table INE)
'dateInsert'=>$ligne['SODTEN_D'],
);
$retInsert=$iDbEve->insert('etablissements', $tabInsert, true);
2013-06-19 08:24:49 +00:00
if (!$retInsert) die('Erreur Mysql n<>'. mysql_errno() .' : '.mysql_error());
// print_r($tabInsert);
// fgets(STDIN);
/*
2013-06-19 08:24:49 +00:00
V<EFBFBD>rifier les champs insee non int<EFBFBD>gr<EFBFBD>es dans la base des <EFBFBD>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
2013-06-19 08:24:49 +00:00
SORCE 9 Num<EFBFBD>ro de RC de l'entreprise
SODCAP 8 Date de mise <EFBFBD> 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));
?>