163 lines
6.6 KiB
PHP
163 lines
6.6 KiB
PHP
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
|
<?php
|
|
/**
|
|
** @todo
|
|
**
|
|
**/
|
|
|
|
echo date ('Y/m/d - H:i:s')." - DEBUT de la consolidation de la base Etablissements".EOL;
|
|
|
|
include_once(FWK_PATH.'common/chiffres.php');
|
|
include_once(FWK_PATH.'common/dates.php');
|
|
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
|
|
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
|
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
|
|
include_once(FWK_PATH.'mail/sendMail.php');
|
|
|
|
$all=true;
|
|
$joAsso=$joBodacc=$baseInsee=$baseInpi=$reset=$pageRankOnly=$iGreffe=false;
|
|
// Compteurs
|
|
$nbInsertAsso=$nbInsertRncs1=$nbInsertRncs2=$nbInsertBod=$nbConjoints=$nbInsertBodNS=$nbInsertGreffes=$nbInsertMarques=$nbUpdateAsso=0;
|
|
|
|
$table='etablissements_tmp';
|
|
|
|
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
|
|
Consolide la table des dirigeants d'entreprises à partir des dernières mises à jours des différentes sources.
|
|
Sans aucune options, consolide toutes les sources.
|
|
|
|
Options :
|
|
-n Consolider les infos RNCS (Inpi)
|
|
-b Consolider le Bodacc
|
|
-h Consolider le Bodacc en historique
|
|
";
|
|
|
|
$argv=$_SERVER['argv'];
|
|
if ($_SERVER['argc']>1)
|
|
{
|
|
for ($i=1; isset($argv[$i]); $i++) {
|
|
if (substr($argv[$i],0,1)=='-') {
|
|
switch (substr($argv[$i],1,1)) {
|
|
case 'b':
|
|
$all=false;
|
|
$baseBodacc=true;
|
|
break;
|
|
case 'n':
|
|
$all=false;
|
|
$baseInpi=true;
|
|
break;
|
|
case 'h':
|
|
$all=false;
|
|
$baseBodaccHisto=true;
|
|
break;
|
|
case '-':
|
|
case '?':
|
|
die($strInfoScript);
|
|
break;
|
|
default:
|
|
die('Option '. $argv[$i] . " inconnue !\n");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (file_exists(REP_TEMP.'stockInsee.lock')) {
|
|
$message='Stock en cours de chargement "'.file_get_contents(REP_TEMP.'stockInsee.lock').'"';
|
|
sendMail('webmaster@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Consolidation des dirigeants non traitée car trimestriel en cours', $message);
|
|
die();
|
|
}
|
|
|
|
/** Par défaut, on consolide toutes les sources **/
|
|
if ($all) {
|
|
$baseInpi=$baseBodacc=$baseBodaccHisto=true;
|
|
}
|
|
|
|
$iDb=new WDB('jo');
|
|
|
|
echo date ('Y/m/d - H:i:s')." - Création de la nouvelle table dirigeants.".EOL;
|
|
if (!$iDb->query("DROP TABLE IF EXISTS jo.dirigeants_tmp;"))
|
|
die($iDb->getLastError());
|
|
|
|
if (!$iDb->query("CREATE TABLE jo.dirigeants_tmp (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`source` tinyint(3) unsigned zerofill NOT NULL,
|
|
`source_id` bigint(20) unsigned NOT NULL,
|
|
`siren` int(9) unsigned zerofill NOT NULL,
|
|
`adr_dep` smallint(3) unsigned NOT NULL,
|
|
`typeDir` enum('PP','PM') NOT NULL,
|
|
`dirSiren` int(9) unsigned zerofill NOT NULL,
|
|
`dirRS` varchar( 60 ) NOT NULL,
|
|
`civilite` enum('M','MME','MLLE') DEFAULT NULL,
|
|
`nom` char(60) NOT NULL,
|
|
`prenom` char(40) NOT NULL,
|
|
`naissance_nom` char(60) NOT NULL,
|
|
`naissance_date` date NOT NULL,
|
|
`naissance_lieu` char(35) NOT NULL,
|
|
`fonction_code` smallint(4) unsigned zerofill NOT NULL,
|
|
`actif` tinyint(1) unsigned NOT NULL,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `source` (`source`,`source_id`),
|
|
UNIQUE KEY `idxUnique` (`siren`,`typeDir`,`dirSiren`,`dirRS`,`nom`,`prenom`,`naissance_nom`,`naissance_date`,`naissance_lieu`,`fonction_code`),
|
|
KEY `idxSiren` (`siren`),
|
|
KEY `idxDirSiren` (`dirSiren`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Index des Dirigeants';", true))
|
|
die($iDb->getLastError());
|
|
|
|
$strMailInfo=date ('Y/m/d - H:i:s')." - Consolidation des dirigeants.".EOL;
|
|
if ($baseInpi) {
|
|
echo date ('Y/m/d - H:i:s')." - Mise à jour de la nouvelle table dirigeants depuis le RNCS.".EOL;
|
|
|
|
$retTmp=$iDb->select('jo.rncs_dirigeants', 'COUNT(*) AS nbEtab', '1', false,MYSQL_ASSOC);
|
|
$nbEtab=$retTmp[0]['nbEtab'];
|
|
echo date ('Y/m/d - H:i:s')." - Il y a $nbEtab dirigeants à consolider depuis le RNCS...".EOL;
|
|
|
|
if(!$iDb->query("INSERT IGNORE INTO jo.dirigeants_tmp SELECT 0 AS id, 5 AS source, id AS source_id, siren, adr_dep,
|
|
typeDir, dirSiren, dirRS, civilite, nom, prenom, naissance_nom, naissance_date, naissance_lieu,
|
|
fonction_code, actif%10 as actif
|
|
FROM jo.rncs_dirigeants"))
|
|
die($iDb->getLastError());
|
|
|
|
$retTmp=$iDb->select('jo.dirigeants_tmp', 'COUNT(*) AS nbEtab', '1', false,MYSQL_ASSOC);
|
|
$nbEtab=$retTmp[0]['nbEtab'];
|
|
echo date ('Y/m/d - H:i:s')." - Il y a $nbEtab dirigeants RNCS consolidés.".EOL;
|
|
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbEtab dirigeants RNCS consolidés.".EOL;
|
|
}
|
|
|
|
if ($baseBodacc) {
|
|
$retTmp=$iDb->select('jo.bodacc_dirigeants', 'COUNT(*) AS nbEtab', '1', false,MYSQL_ASSOC);
|
|
$nbEtab=$retTmp[0]['nbEtab'];
|
|
echo date ('Y/m/d - H:i:s')." - Il y a $nbEtab dirigeants à consolider depuis le Bodacc...".EOL;
|
|
|
|
if(!$iDb->query("INSERT IGNORE INTO dirigeants_tmp
|
|
SELECT NULL AS id, 1 AS source, id AS source_id, siren, NULL AS dep, IF(prenom<>'','PP','PM') AS typeDir, 0 AS dirSiren, rs AS dirRS, NULL AS civilite, nom, prenom, nomUsage AS naissance_nom, 0 AS naissance_date, NULL AS naissance_lieu, fonction AS fonction_code, IF(depart=1,0,1) AS actif
|
|
FROM bodacc_dirigeants;"))
|
|
die($iDb->getLastError());
|
|
|
|
$retTmp=$iDb->select('jo.dirigeants_tmp', 'COUNT(*) AS nbEtab', 'source=1', false,MYSQL_ASSOC);
|
|
$nbEtab=$retTmp[0]['nbEtab'];
|
|
echo date ('Y/m/d - H:i:s')." - Il y a $nbEtab dirigeants BODACC consolidés.".EOL;
|
|
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbEtab dirigeants BODACC consolidés.".EOL;
|
|
}
|
|
|
|
if ($baseBodaccHisto) {
|
|
$retTmp=$iDb->select('jo.bodacc_dirigeants_histo', 'COUNT(*) AS nbEtab', '1', false,MYSQL_ASSOC);
|
|
$nbEtab=$retTmp[0]['nbEtab'];
|
|
echo date ('Y/m/d - H:i:s')." - Il y a $nbEtab dirigeants à consolider depuis le Bodacc Histo...".EOL;
|
|
|
|
if(!$iDb->query("INSERT IGNORE INTO dirigeants_tmp
|
|
SELECT NULL AS id, 6 AS source, id AS source_id, siren, NULL AS dep, IF(prenom<>'','PP','PM') AS typeDir, 0 AS dirSiren, rs AS dirRS, NULL AS civilite, nom, prenom, nomUsage AS naissance_nom, 0 AS naissance_date, NULL AS naissance_lieu, fonction AS fonction_code, IF(depart=1,0,1) AS actif
|
|
FROM bodacc_dirigeants_histo;"))
|
|
die($iDb->getLastError());
|
|
|
|
$retTmp=$iDb->select('jo.dirigeants_tmp', 'COUNT(*) AS nbEtab', 'source=6', false,MYSQL_ASSOC);
|
|
$nbEtab=$retTmp[0]['nbEtab'];
|
|
echo date ('Y/m/d - H:i:s')." - Il y a $nbEtab dirigeants BODACC Histo consolidés.".EOL;
|
|
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbEtab dirigeants BODACC Histo consolidés.".EOL;
|
|
}
|
|
|
|
echo date ('Y/m/d - H:i:s')." - FIN de la consolidation de la base Dirigeants".EOL;
|
|
$strMailInfo.=date ('Y/m/d - H:i:s')." - FIN de la consolidation de la base Dirigeants".EOL;
|
|
|
|
sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Consolidation des dirigeants', $strMailInfo);
|
|
die();
|
|
?>
|