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

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