webservice/scripts/build/genCache.php
2016-09-30 16:01:35 +02:00

422 lines
11 KiB
PHP

<?php
// --- Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(__DIR__ . '/../../application'));
// --- Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
// --- Composer autoload
require_once realpath(__DIR__ . '/../../vendor/autoload.php');
// --- Create application, bootstrap, and run
$application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini');
// --- Options
$displayUsage = false;
try {
$opts = new Zend_Console_Getopt(array(
'help|?' => "Aide.",
'list' => "List item.",
'generate|g=s' => "Generate the specify cache.",
));
$opts->parse();
} catch (Zend_Console_Getopt_Exception $e) {
$displayUsage = true;
}
// --- Aide / Options
if (count($opts->getOptions())==0 || isset($opts->help)) {
$displayUsage = true;
}
// --- Usage
if ($displayUsage) {
echo "\nGénération Table Static Metier\n\n";
echo $opts->getUsageMessage();
exit;
}
if ( $opts->list ) {
$tabItems = array(
'Tribunaux' => "Tribunaux",
'FctDir' => "Fonctions de direction",
'Evenements' => "Table des evenements bodacc",
'Devises' => "Table des devises bodacc",
'RncsTribunaux' => "Table des tribunaux",
'DevisesInpi' => "Devises Inpi",
'Jugements' => "Jugements",
'PaysInpi' => "PaysInpi",
'CodesNaf' => "Codes Naf",
'CodesNace' => "Codes Nace",
'CodesNafa' => "Codes Nafa",
'CodesFJ' => "Codes Formes Juridiques",
'AffairesTypes' => "Codes natures des contentieux",
'ProcolDelete' => "Codes effacement de procol",
);
echo "\n";
foreach ( $tabItems as $code => $label ) {
echo "\t" . $code . " => ". $label . PHP_EOL;
}
exit;
}
// Database
$c = new Zend_Config($this->getOptions());
$config = new \Doctrine\DBAL\Configuration();
$connectionParams = array(
'dbname' => $c->profil->db->metier->params->dbname,
'user' => $c->profil->db->metier->params->username,
'password' => $c->profil->db->metier->params->password,
'host' => $c->profil->db->metier->params->host,
'charset' => 'utf8',
'driver' => 'pdo_mysql',
);
try {
$conn = \Doctrine\DBAL\DriverManager::getConnection($connectionParams, $config);
} catch (\Doctrine\DBAL\DBALException $e) {
echo "Connection Database impossible.\n";
exit;
}
/**
* Cache des Tribunaux Bodacc
*/
if( $opts->generate == 'Tribunaux' ) {
$sql = "SELECT triCode, triNom, triCP, triSiret FROM jo.tribunaux WHERE triCode IS NOT NULL";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
$fp = fopen(APPLICATION_PATH . '/../library/Metier/Table/BodaccTribunaux.php','w');
fwrite($fp, "<?php\n");
fwrite($fp, "return array(\n");
if ($stmt->rowCount() > 0) {
foreach($result as $item) {
$dep = intval(substr($item->triCP, 0, 2));
if ($dep == 97 || $dep == 98) {
$dep = intval(substr($item->triCP, 0, 3));
}
fwrite($fp, "\t'" . $item->triCode . "' => array(");
fwrite($fp, "'nom'=>\"" . $item->triNom . "\", 'siret'=>\"".$item->triSiret."\", 'dep'=>\"".$dep."\"");
fwrite($fp, "),\n");
}
}
fwrite($fp, ");\n");
}
/**
* Cache Fonctions de Direction
*/
if ( $opts->generate == 'FctDir' ) {
$sql = "SELECT codeFct, libelle FROM jo.bodacc_fonctions";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
$fp=fopen(APPLICATION_PATH . '/../library/Metier/Table/FctDir.php','w');
fwrite($fp, "<?php\n");
fwrite($fp, "return array(\n");
if ($stmt->rowCount() > 0) {
foreach($rows as $item) {
fwrite($fp, "\t'" . intval($item->codeFct) . "' => \"". $item->libelle . "\",\n");
}
}
fwrite($fp, ");\n");
}
/**
* Cache Evenements
*/
if ( $opts->generate == 'Evenements' ) {
$sql = "SELECT codEven, libEven, Bodacc_Code, Rubrique, version, lienEtab FROM jo.tabEvenements";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
$fp = fopen(APPLICATION_PATH . '/../library/Metier/Table/Evenements.php','w');
fwrite($fp, "<?php\n");
fwrite($fp, "return array(\n");
if ($stmt->rowCount() > 0) {
foreach($rows as $item) {
fwrite($fp, "\t'" . intval($item->codEven) . "' => array(\n");
fwrite($fp, "\t\t'libEven' => \"" . $item->libEven . "\",\n");
fwrite($fp, "\t\t'Bodacc_Code' => \"" . $item->Bodacc_Code . "\",\n");
fwrite($fp, "\t\t'Rubrique' => \"" . $item->Rubrique . "\",\n");
fwrite($fp, "\t\t'Version' => " . $item->version . ",\n");
fwrite($fp, "\t\t'LienEtab' => " . $item->lienEtab . ",\n");
fwrite($fp, "\t),\n");
}
}
fwrite($fp, ");\n");
}
/**
* Cache des devises Bodacc
*/
if ( $opts->generate == 'Devises' ) {
$sql = "SELECT libDeviseBodacc, devIso FROM jo.bodacc_devises";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
$fp = fopen(APPLICATION_PATH . '/../library/Metier/Table/Devises.php','w');
fwrite($fp, "<?php\n");
fwrite($fp, "return array(\n");
if ($stmt->rowCount() > 0) {
foreach($rows as $item) {
fwrite($fp, "\t\"" . $item->libDeviseBodacc . "\" => \"" . $item->devIso ."\",\n");
}
}
fwrite($fp, ");\n");
}
/**
* Cache Tribunaux RNCS
*/
if ( $opts->generate == 'RncsTribunaux' ) {
$sql = "SELECT triNumGreffe, triNom, triId, triCode FROM jo.tribunaux WHERE triNumGreffe IS NOT NULL";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
$fp = fopen(APPLICATION_PATH . '/../library/Metier/Table/RncsTribunaux.php','w');
fwrite($fp, "<?php\n");
fwrite($fp, "return array(\n");
if ($stmt->rowCount() > 0) {
foreach($rows as $item) {
fwrite($fp, "\t" . intval($item->triNumGreffe) . " => array(");
fwrite($fp, "'Id'=>\"" . $item->triId . "\", 'Nom'=>\"".$item->triNom."\", 'Code'=>\"".$item->triCode."\"");
fwrite($fp, "),\n");
}
}
fwrite($fp, ");\n");
}
/**
* Cache Devises Inpi
*/
if ( $opts->generate == 'DevisesInpi' ) {
$sql = "SELECT devInpi, devIso FROM jo.tabDevises WHERE devInpi>0 ORDER BY devInpi ASC";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
$fp = fopen(APPLICATION_PATH . '/../library/Metier/Table/DevisesInpi.php','w');
fwrite($fp, "<?php\n");
fwrite($fp, "return array(\n");
if ($stmt->rowCount() > 0) {
foreach($rows as $item) {
fwrite($fp, "\t" . intval($item->devInpi) . " => \"" . $item->devIso . "\",\n");
}
}
fwrite($fp, ");\n");
}
/**
* Cache Jugements
*/
if ( $opts->generate == 'Jugements' ) {
$sql = "SELECT codJugement, codEven FROM jo.tabJugeRncs";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
$fp = fopen(APPLICATION_PATH . '/../library/Metier/Table/Jugements.php','w');
fwrite($fp, "<?php\n");
fwrite($fp, "return array(\n");
if ($stmt->rowCount() > 0) {
foreach($rows as $item) {
fwrite($fp, "\t" . intval($item->codJugement) . " => " . $item->codEven . ",\n");
}
}
fwrite($fp, ");\n");
}
/**
* Cache PaysInpi
*/
if ( $opts->generate == 'PaysInpi' ) {
$sql = "SELECT codePaysInpi, codPays FROM jo.tabPays WHERE codePaysInpi>0 ORDER BY codePaysInpi ASC";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
$fp = fopen(APPLICATION_PATH . '/../library/Metier/Table/PaysInpi.php','w');
fwrite($fp, "<?php\n");
fwrite($fp, "return array(\n");
if ($stmt->rowCount() > 0) {
foreach($rows as $item) {
fwrite($fp, "\t" . intval($item->codePaysInpi) . " => \"" . $item->codPays . "\",\n");
}
}
fwrite($fp, ");\n");
}
/**
* Cache CodesNaf
*/
if ( $opts->generate == 'CodesNaf' ) {
$sql = "SELECT codNaf700 AS naf, libNaf700 AS LibNaf FROM jo.tabNaf4";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
$fp = fopen(APPLICATION_PATH . '/../library/Metier/Table/CodesNaf.php','w');
fwrite($fp, "<?php\n");
fwrite($fp, "return array(\n");
if ($stmt->rowCount() > 0) {
foreach($rows as $item) {
fwrite($fp, "\t'" . $item->naf . "' => \"" . $item->LibNaf . "\",\n");
}
}
$sql = "SELECT codNaf5 AS naf, libNaf5 AS LibNaf FROM jo.tabNaf5";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
if ($stmt->rowCount() > 0) {
foreach($rows as $item) {
fwrite($fp, "\t'" . $item->naf . "' => \"" . $item->LibNaf. "\",\n");
}
}
fwrite($fp, ");\n");
}
/**
* Cache CodesNace
*/
if ( $opts->generate == 'CodesNace' ) {
$sql = "SELECT codNaf5 AS naf, libNaf5 AS LibNaf, codNaf1 FROM jo.tabNaf5";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
$fp = fopen(APPLICATION_PATH . '/../library/Metier/Table/CodesNace.php','w');
fwrite($fp, "<?php\n");
fwrite($fp, "return array(\n");
if ($stmt->rowCount() > 0) {
foreach($rows as $item) {
fwrite($fp, "\t'" . $item->naf . "' => \"" . $item->codNaf1 . preg_replace('/^0/','',substr($item->naf,0,4)) . "\",\n");
}
}
fwrite($fp, ");\n");
}
/**
* Cache CodesNafa
*/
if ( $opts->generate == 'CodesNafa' ) {
$sql = "SELECT codNafa AS nafa, libNafa FROM jo.tabNafa";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
$fp = fopen(APPLICATION_PATH . '/../library/Metier/Table/CodesNafa.php','w');
fwrite($fp, "<?php\n");
fwrite($fp, "return array(\n");
if ($stmt->rowCount() > 0) {
foreach($rows as $item) {
fwrite($fp, "\t'" . $item->nafa . "' => \"" . $item->libNafa ."\",\n");
}
}
fwrite($fp, ");\n");
}
/**
* Cache CodesFJ
*/
if ( $opts->generate == 'CodesFJ' ) {
$sql = "SELECT code AS FJ, libelle AS libFJ FROM jo.tabFJur WHERE code>=1000";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
$fp = fopen(APPLICATION_PATH . '/../library/Metier/Table/CodesFJ.php','w');
fwrite($fp, "<?php\n");
fwrite($fp, "return array(\n");
if ($stmt->rowCount() > 0) {
foreach($rows as $item) {
fwrite($fp, "\t" . $item->FJ . " => \"" . str_replace('"','\"',$item->libFJ) ."\",\n");
}
}
fwrite($fp, ");\n");
}
/**
* Cache AffairesTypes
* Code Nature des contentieux
*/
if ( $opts->generate == 'AffairesTypes' ) {
$sql = "SELECT code, label FROM jo.greffes_affaires_nature";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
$fp = fopen(APPLICATION_PATH . '/../library/Metier/Table/AffairesTypes.php','w');
fwrite($fp, "<?php\n");
fwrite($fp, "return array(\n");
if ($stmt->rowCount() > 0) {
foreach($rows as $item) {
fwrite($fp, "\t'" . $item->code . "' => \"" . $item->label ."\",\n");
}
}
fwrite($fp, ");\n");
}
/**
* Procol Delete
*/
if ( $opts->generate == 'ProcolDelete' ) {
$sql = "SELECT codEven, affProcol FROM jo.tabEvenements WHERE affProcol>0";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
$fp = fopen(APPLICATION_PATH . '/../library/Metier/Defaillance/ProcolDelete.php', 'w');
fwrite($fp, "<?php\n");
fwrite($fp, "return array(\n");
if ($stmt->rowCount() > 0) {
foreach($rows as $item) {
fwrite($fp, "\t" . $item->codEven . " => " . $item->affProcol .",\n");
}
}
fwrite($fp, ");\n");
}