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

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