This commit is contained in:
Michael RICOIS 2015-09-03 09:35:24 +00:00
parent f52ba2232d
commit d265e5a030
469 changed files with 0 additions and 558721 deletions

View File

@ -1,57 +0,0 @@
<?php
require_once realpath(dirname(__FILE__)).'/includes/config.php';
require_once 'framework/mail/sendMail.php';
define('FTP_STORAGE','/home/data/ftp');
//Vérifier montage FTP
if (file_exists(FTP_STORAGE . DIRECTORY_SEPARATOR . 'test-presence-ftp')) {
$msg = "Liste des fichiers sur le FTP :\n";
//Liste des fichiers dans les repertoires
if (is_dir(FTP_STORAGE)) {
if ($dh = opendir(FTP_STORAGE)) {
while (($client = readdir($dh)) !== false) {
if ( $client !='.' && $client!= '..'
&& !is_link(FTP_STORAGE . DIRECTORY_SEPARATOR . $client)
&& is_dir(FTP_STORAGE . DIRECTORY_SEPARATOR . $client) ) {
$dirClient = FTP_STORAGE . DIRECTORY_SEPARATOR . $client . '/recv';
if ( file_exists($dirClient) ) {
$msg.= "Dossier Client : ".$client."\n";
if ($dhFile = opendir($dirClient) ) {
while (($file = readdir($dhFile)) !== false) {
$today = date('Ymd');
$fileCpt = 0;
if ( $file !='.' && $file!= '..'
&& is_file($dirClient . DIRECTORY_SEPARATOR . $file)
&& preg_match('/_'.$today.'[0-9]{1,}\./', $file)) {
$msg.= $file."\n";
$fileCpt++;
}
}
if ($fileCpt==0) {
$msg.= "Aucun fichier.\n";
}
$msg.= "\n";
closedir($dhFile);
}
}
}
}
closedir($dh);
}
}
sendMail('supportdev@scores-decisions.com','support@scores-decisions.com',
"[CHECK] - FTP ", $msg);
} else {
sendMail(
'supportdev@scores-decisions.com',
'support@scores-decisions.com',
"[CHECK] - FTP ",
"FTP non monté sur la machine Batch (192.168.3.201). Vérifier que le FTP fonctionne!");
}

View File

@ -1,103 +0,0 @@
<?php
define('INCLUDE_PATH', realpath(dirname(__FILE__)).'/');
/** BATCH **/
define('FILLER',' ');
define('VERSION_FICHIER_BODACC','0106');
define('LONGUEUR_LIGNE_SORTIE', 2000);
/** Paramétres du FTP des JO **/
define('BODACC_FTP_URL', 'ftp.journal-officiel.gouv.fr');
define('BODACC_FTP_USER', 'SCORE');
define('BODACC_FTP_PASS', 'SD075');
define('BODACC_LOCAL_DIR', '/home/data/sources/bodacc/');
define('JAL_LOCAL_DIR', '/home/data/sources/jal/');
/** Paramétres du FTP de Hugin : Communiqués de presse **/
define('HUGIN_FTP_URL', 'ftp.companynews.fr');
define('HUGIN_FTP_USER', 'scores');
define('HUGIN_FTP_PASS', 'scores_632');
define('HUGIN_LOCAL_DIR', '/home/data/sources/infosreg/hugin/');
/** Paramétres du FTP de ActusNews : Communiqués de presse **/
define('ACTUSNEWS_FTP_URL', 'ftp.actusnews.com');
define('ACTUSNEWS_FTP_USER', 'scores_act');
define('ACTUSNEWS_FTP_PASS', '6_etIwL');
define('ACTUSNEWS_LOCAL_DIR', '/home/data/sources/infosreg/actusnews/');
/** Paramétres du FTP de Di Release : Communiqués de presse **/
define('DIRELEASE_FTP_URL', 'ftp.actusnews.com');
define('DIRELEASE_FTP_USER', 'scores_dir');
define('DIRELEASE_FTP_PASS', '-gT52sQ');
define('DIRELEASE_LOCAL_DIR', '/home/data/sources/infosreg/direlease/');
/** Paramétres du FTP des Echos: Communiqués de presse **/
define('LESECHOS_FTP_URL', 'ftp.webdisclosure.com');
define('LESECHOS_FTP_USER', 'Scores');
define('LESECHOS_FTP_PASS', 'scores2001');
define('LESECHOS_LOCAL_DIR', '/home/data/sources/infosreg/lesechos/');
/** Paramétres du FTP de BusinessWire : Communiqués de presse **/
define('BUSINESSWIRE_LOCAL_DIR_INCOMING', '/home/data/ftp/businesswire/');
define('BUSINESSWIRE_LOCAL_DIR', '/home/data/infosreg/businesswire/');
/** Base de données de S&D **/
define ('MYSQL_HOST', '192.168.3.30');
define ('MYSQL_USER', 'wsuser');
define ('MYSQL_PASS', 'wspass2012');
define ('MYSQL_DEFAULT_DB', 'jo');
define ('MYSQL_SQL_LOG', 'NONE');
define ('SPHINX_HOST', '192.168.3.32');
define ('SPHINX_PORT', 9312);
define ('SPHINX_ENT_HOST', '192.168.3.32');
define ('SPHINX_ENT_PORT', 9312);
define ('SPHINX_DIR_HOST', '192.168.3.32');
define ('SPHINX_DIR_PORT', 9312);
define ('SPHINX_ACT_HOST', '192.168.3.25');
define ('SPHINX_ACT_PORT', 3312);
define ('SPHINX_HISTO_HOST', '192.168.3.25');
define ('SPHINX_HISTO_PORT', 3312);
/** SERVEUR DE MESSAGERIE **/
define ('SMTP_HOST', 'smtp.celeste.fr');
define ('SMTP_PORT', 25);
define ('SMTP_USER', '');
define ('SMTP_PASS', '');
/** INFOGREFFE **/
define('INFOGREFFE_DISPO', true);
define('INFOGREFFE_DISPO_WS', true);
define('INFOGREFFE_DISPO_WEB', true);
define('INFOGREFFE_WS_URL', 'https://webservices.infogreffe.fr/WSContextInfogreffe/INFOGREFFE');
define('INFOGREFFE_WS_URI', 'https://webservices.infogreffe.fr/');
define('INFOGREFFE_WS_USER', '85000109');
define('INFOGREFFE_WS_PASS', '166');
/** AMABIS **/
define('AMABIS_WS_URL', 'http://sw4.amabis.com:5101');
define('AMABIS_WS_URI', 'http://sw4.amabis.com:5101');
/** Dossiers locaux pour les documents a telecharger (PDF kbis, marques, etc...) **/
define ('DOC_WEB_LOCAL', '/home/data/datafile/');
define ('DOC_WEB_URL', '/data/');
/** LOGGING **/
define('LOG_PATH', '/home/data/sources/log');
define ('DATETIME', date('YmdHis'));
define ('DATE', substr(DATETIME,0,8));
define ('TIME', substr(DATETIME,8,6));
define ('DATE_LISIBLE', substr(DATETIME,6,2).'/'.substr(DATETIME,4,2).'/'.substr(DATETIME,0,4));
define ('TIME_LISIBLE', substr(DATETIME,8,2).':'.substr(DATETIME,10,2).':'.substr(DATETIME,12,2));
/**
* Inclusion du Framework
*/
if( !defined('FWK_PATH') )
include_once realpath(dirname(__FILE__).'/../framework/fwk.php');

View File

@ -1,60 +0,0 @@
#!/usr/bin/php
<?php
// Paramètres
if ( $argc < 2 || in_array($argv[1], array('--help', '-help', '-h', '-?')) ) {
?>
Installation
Avec les options --help, -help, -h, et -?, vous obtiendrez cette aide.
Utilisation : <?php echo $argv[0]; ?> options
options :
--install
<?php
exit;
}
$action = $argv[1];
$mode = strtoupper($argv[2]);
$hostname = exec('echo $(hostname)');
switch ($action)
{
case '--install':
//Création de la configuration
echo "Ecriture de la configuration\n";
writeConfig();
echo "Changement des permissions\n";
changePermission();
break;
}
/**
* Vérfie si l'utilisateur est ROOT
*/
function isRoot()
{
$uid = exec('echo $(id -u)');
if ((int) $uid == 0){
return true;
} else {
return false;
}
}
function changePermission()
{
require_once realpath(dirname(__FILE__)).'/../includes/config.php';
if (!file_exists(realpath(dirname(__FILE__).'/../html/data')))
passthru('ln -vs '.DOC_WEB_LOCAL.' '.realpath(dirname(__FILE__).'/../html/data'));
passthru('chown -R www-data: '.realpath(dirname(__FILE__).'/../'));
passthru('chmod -R +x '.realpath(dirname(__FILE__).'/../batch/').'/*.php');
}
function writeConfig()
{
global $hostname;
passthru('cp -v '.realpath(dirname(__FILE__)).'/'.$hostname.'/config.php '.realpath(dirname(__FILE__)).'/../includes/config.php');
}

View File

@ -1,106 +0,0 @@
<?php
define('INCLUDE_PATH', realpath(dirname(__FILE__)).'/');
/** BATCH **/
define('FILLER',' ');
define('VERSION_FICHIER_BODACC','0106');
define('LONGUEUR_LIGNE_SORTIE', 2000);
/** Paramétres du FTP des JO **/
define('BODACC_FTP_URL', 'ftp.journal-officiel.gouv.fr');
define('BODACC_FTP_USER', 'SCORE');
define('BODACC_FTP_PASS', 'SD075');
define('BODACC_LOCAL_DIR', '/home/data/bodacc/');
define('JAL_LOCAL_DIR', '/home/data/jal/');
/** Paramétres du FTP de Hugin : Communiqués de presse **/
define('HUGIN_FTP_URL', 'ftp.companynews.fr');
define('HUGIN_FTP_USER', 'scores');
define('HUGIN_FTP_PASS', 'scores_632');
define('HUGIN_LOCAL_DIR', '/home/data/infosreg/hugin/');
/** Paramétres du FTP de ActusNews : Communiqués de presse **/
define('ACTUSNEWS_FTP_URL', 'ftp.actusnews.com');
define('ACTUSNEWS_FTP_USER', 'scores_act');
define('ACTUSNEWS_FTP_PASS', '6_etIwL');
define('ACTUSNEWS_LOCAL_DIR', '/home/data/infosreg/actusnews/');
/** Paramétres du FTP de Di Release : Communiqués de presse **/
define('DIRELEASE_FTP_URL', 'ftp.actusnews.com');
define('DIRELEASE_FTP_USER', 'scores_dir');
define('DIRELEASE_FTP_PASS', '-gT52sQ');
define('DIRELEASE_LOCAL_DIR', '/home/data/infosreg/direlease/');
/** Paramétres du FTP des Echos: Communiqués de presse **/
define('LESECHOS_FTP_URL', 'ftp.webdisclosure.com');
define('LESECHOS_FTP_USER', 'Scores');
define('LESECHOS_FTP_PASS', 'scores2001');
define('LESECHOS_LOCAL_DIR', '/home/data/infosreg/lesechos/');
/** Paramétres du FTP de BusinessWire : Communiqués de presse **/
define('BUSINESSWIRE_LOCAL_DIR_INCOMING', '/home/data/ftp/businesswire/');
define('BUSINESSWIRE_LOCAL_DIR', '/home/data/infosreg/businesswire/');
/** Base de données de S&D **/
define ('MYSQL_HOST', '192.168.3.30');
define ('MYSQL_USER', 'root');
define ('MYSQL_PASS', 'scores');
define ('MYSQL_DEFAULT_DB', 'jo');
define ('MYSQL_SQL_LOG', 'NONE');
define ('SPHINX_HOST', '192.168.3.32');
define ('SPHINX_PORT', 9312);
define ('SPHINX_HOST', '192.168.3.32');
define ('SPHINX_PORT', 9312);
define ('SPHINX_ENT_HOST', '192.168.3.32');
define ('SPHINX_ENT_PORT', 9312);
define ('SPHINX_DIR_HOST', '192.168.3.32');
define ('SPHINX_DIR_PORT', 9312);
define ('SPHINX_ACT_HOST', '192.168.3.32');
define ('SPHINX_ACT_PORT', 9312);
define ('SPHINX_HISTO_HOST', '192.168.3.32');
define ('SPHINX_HISTO_PORT', 9312);
/** SERVEUR DE MESSAGERIE **/
define ('SMTP_HOST', 'smtp.free.fr');
define ('SMTP_PORT', 25);
define ('SMTP_USER', '');
define ('SMTP_PASS', '');
/** INFOGREFFE **/
define('INFOGREFFE_DISPO', true);
define('INFOGREFFE_DISPO_WS', true);
define('INFOGREFFE_DISPO_WEB', true);
define('INFOGREFFE_WS_URL', 'https://webservices.infogreffe.fr/WSContextInfogreffe/INFOGREFFE');
define('INFOGREFFE_WS_URI', 'https://webservices.infogreffe.fr/');
define('INFOGREFFE_WS_USER', '85000109');
define('INFOGREFFE_WS_PASS', '166');
/** AMABIS **/
define('AMABIS_WS_URL', 'http://sw4.amabis.com:5101');
define('AMABIS_WS_URI', 'http://sw4.amabis.com:5101');
/** Dossiers locaux pour les documents a telecharger (PDF kbis, marques, etc...) **/
define ('DOC_WEB_LOCAL', realpath('d:/www/dataws/'));
define ('DOC_WEB_URL', '/data/');
/** LOGGING **/
define('LOG_PATH', realpath('d:/www/dataws/log/'));
define ('DATETIME', date('YmdHis'));
define ('DATE', substr(DATETIME,0,8));
define ('TIME', substr(DATETIME,8,6));
define ('DATE_LISIBLE', substr(DATETIME,6,2).'/'.substr(DATETIME,4,2).'/'.substr(DATETIME,0,4));
define ('TIME_LISIBLE', substr(DATETIME,8,2).':'.substr(DATETIME,10,2).':'.substr(DATETIME,12,2));
/**
* Inclusion du Framework
*/
if( !defined('FWK_PATH') )
include_once realpath(dirname(__FILE__).'/../framework/fwk.php');

View File

@ -1,104 +0,0 @@
<?php
define('INCLUDE_PATH', realpath(dirname(__FILE__)).'/');
/** BATCH **/
define('FILLER',' ');
define('VERSION_FICHIER_BODACC','0106');
define('LONGUEUR_LIGNE_SORTIE', 2000);
/** Paramétres du FTP des JO **/
define('BODACC_FTP_URL', 'ftp.journal-officiel.gouv.fr');
define('BODACC_FTP_USER', 'SCORE');
define('BODACC_FTP_PASS', 'SD075');
define('BODACC_LOCAL_DIR', '/home/data/bodacc/');
define('JAL_LOCAL_DIR', '/home/data/jal/');
/** Paramétres du FTP de Hugin : Communiqués de presse **/
define('HUGIN_FTP_URL', 'ftp.companynews.fr');
define('HUGIN_FTP_USER', 'scores');
define('HUGIN_FTP_PASS', 'scores_632');
define('HUGIN_LOCAL_DIR', '/home/data/infosreg/hugin/');
/** Paramétres du FTP de ActusNews : Communiqués de presse **/
define('ACTUSNEWS_FTP_URL', 'ftp.actusnews.com');
define('ACTUSNEWS_FTP_USER', 'scores_act');
define('ACTUSNEWS_FTP_PASS', '6_etIwL');
define('ACTUSNEWS_LOCAL_DIR', '/home/data/infosreg/actusnews/');
/** Paramétres du FTP de Di Release : Communiqués de presse **/
define('DIRELEASE_FTP_URL', 'ftp.actusnews.com');
define('DIRELEASE_FTP_USER', 'scores_dir');
define('DIRELEASE_FTP_PASS', '-gT52sQ');
define('DIRELEASE_LOCAL_DIR', '/home/data/infosreg/direlease/');
/** Paramétres du FTP des Echos: Communiqués de presse **/
define('LESECHOS_FTP_URL', 'ftp.webdisclosure.com');
define('LESECHOS_FTP_USER', 'Scores');
define('LESECHOS_FTP_PASS', 'scores2001');
define('LESECHOS_LOCAL_DIR', '/home/data/infosreg/lesechos/');
/** Paramétres du FTP de BusinessWire : Communiqués de presse **/
define('BUSINESSWIRE_LOCAL_DIR_INCOMING', '/home/data/ftp/businesswire/');
define('BUSINESSWIRE_LOCAL_DIR', '/home/data/infosreg/businesswire/');
/** Base de données de S&D **/
define ('MYSQL_HOST', '192.168.78.230');
define ('MYSQL_USER', 'wsuser');
define ('MYSQL_PASS', 'scores');
define ('MYSQL_DEFAULT_DB', 'jo');
define ('MYSQL_SQL_LOG', 'NONE');
define ('SPHINX_HOST', '192.168.3.32');
define ('SPHINX_PORT', 9312);
define ('SPHINX_ENT_HOST', '192.168.3.32');
define ('SPHINX_ENT_PORT', 9312);
define ('SPHINX_DIR_HOST', '192.168.3.32');
define ('SPHINX_DIR_PORT', 9312);
define ('SPHINX_ACT_HOST', '192.168.3.32');
define ('SPHINX_ACT_PORT', 9312);
define ('SPHINX_HISTO_HOST', '192.168.3.32');
define ('SPHINX_HISTO_PORT', 9312);
/** SERVEUR DE MESSAGERIE **/
define ('SMTP_HOST', 'smtp.free.fr');
define ('SMTP_PORT', 25);
define ('SMTP_USER', '');
define ('SMTP_PASS', '');
/** INFOGREFFE **/
define('INFOGREFFE_DISPO', true);
define('INFOGREFFE_DISPO_WS', true);
define('INFOGREFFE_DISPO_WEB', true);
define('INFOGREFFE_WS_URL', 'https://webservices.infogreffe.fr/WSContextInfogreffe/INFOGREFFE');
define('INFOGREFFE_WS_URI', 'https://webservices.infogreffe.fr/');
define('INFOGREFFE_WS_USER', '85000109');
define('INFOGREFFE_WS_PASS', '166');
/** AMABIS **/
define('AMABIS_WS_URL', 'http://sw4.amabis.com:5101');
define('AMABIS_WS_URI', 'http://sw4.amabis.com:5101');
/** Dossiers locaux pour les documents a telecharger (PDF kbis, marques, etc...) **/
define ('DOC_WEB_LOCAL', '/sites/dataws/');
define ('DOC_WEB_URL', '/data/');
/** LOGGING **/
define('LOG_PATH', '/sites/dataws/log');
define ('DATETIME', date('YmdHis'));
define ('DATE', substr(DATETIME,0,8));
define ('TIME', substr(DATETIME,8,6));
define ('DATE_LISIBLE', substr(DATETIME,6,2).'/'.substr(DATETIME,4,2).'/'.substr(DATETIME,0,4));
define ('TIME_LISIBLE', substr(DATETIME,8,2).':'.substr(DATETIME,10,2).':'.substr(DATETIME,12,2));
/**
* Inclusion du Framework
*/
if( !defined('FWK_PATH') )
include_once realpath(dirname(__FILE__).'/../framework/fwk.php');

View File

@ -1,35 +0,0 @@
HOW TO MAKE SCRIPT
=====================
To launch batch on all platform, don't add #!/usr/bin/php
All batch must be execute by adding php command before in shell.
ex :
php mybatch.php
How to define require
---------------------
CONFIGURATION
=============
THE PAST
=========
Historically, we have "framework" and "includes" directories
THE FUTURE
==========
- Use Zend Framework to make all scripts
- Use mysqli or PDO drivers to connect to the database, and use php-mysqlnd instead of php-mysql

View File

@ -1,763 +0,0 @@
<?
class WChiffes {
private static $tabChiffresEnLEttres = array( 0=>'zéro',
1=>'un',
2=>'deux',
3=>'trois',
4=>'quatre',
5=>'cinq',
6=>'six',
7=>'sept',
8=>'huit',
9=>'neuf',
10=>'dix',
11=>'onze',
12=>'douze',
13=>'treize',
14=>'quatorze',
15=>'quinze',
16=>'seize',
17=>'dix sept',
18=>'dix huit',
19=>'dix neuf',
20=>'vingt',
21=>'vingt et un',
22=>'vingt deux',
23=>'vingt trois',
24=>'vingt quatre',
25=>'vingt cinq',
26=>'vingt six',
27=>'vingt sept',
28=>'vingt huit',
29=>'vingt neuf',
30=>'trente',
40=>'quarante',
50=>'cinquante',
60=>'soixante',
70=>'soixante dix',
80=>'quatre vingt',
90=>'quatre vingt dix');
public function ChiffresEnLettres($chiffre) {
return array_search($chiffre, self::$tabChiffresEnLEttres);
}
}
/*
define('NEL_SEPTANTE', 0x0001);
define('NEL_HUITANTE', 0x0002);
define('NEL_OCTANTE', 0x0004);
define('NEL_NONANTE', 0x0008);
define('NEL_BELGIQUE', NEL_SEPTANTE|NEL_NONANTE);
define('NEL_VVF', NEL_SEPTANTE|NEL_HUITANTE|NEL_NONANTE);
define('NEL_ARCHAIQUE', NEL_SEPTANTE|NEL_OCTANTE|NEL_NONANTE);
define('NEL_SANS_MILLIARD', 0x0010);
define('NEL_AVEC_ZILLIARD', 0x0020);
define('NEL_TOUS_ZILLIONS', 0x0040);
define('NEL_RECTIF_1990', 0x0100);
define('NEL_ORDINAL', 0x0200);
define('NEL_NIEME', 0x0400);
# Le tableau associatif $NEL contient toutes les variables utilisées
# de façon globale dans ce module. ATTENTION : ce nom est assez court,
# et cela pourrait poser des problèmes de collision avec une autre
# variable si plusieurs modules sont inclus dans le même programme.
$NEL = array(
'1-99' => array(
# 0-19
'', 'un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept',
'huit', 'neuf', 'dix', 'onze', 'douze', 'treize', 'quatorze',
'quinze', 'seize', 'dix-sept', 'dix-huit', 'dix-neuf',
# 20-29
'vingt', 'vingt et un', 'vingt-deux', 'vingt-trois',
'vingt-quatre', 'vingt-cinq', 'vingt-six',
'vingt-sept', 'vingt-huit', 'vingt-neuf',
# 30-39
'trente', 'trente et un', 'trente-deux', 'trente-trois',
'trente-quatre', 'trente-cinq', 'trente-six',
'trente-sept', 'trente-huit', 'trente-neuf',
# 40-49
'quarante', 'quarante et un', 'quarante-deux', 'quarante-trois',
'quarante-quatre', 'quarante-cinq', 'quarante-six',
'quarante-sept', 'quarante-huit', 'quarante-neuf',
# 50-59
'cinquante', 'cinquante et un', 'cinquante-deux', 'cinquante-trois',
'cinquante-quatre', 'cinquante-cinq', 'cinquante-six',
'cinquante-sept', 'cinquante-huit', 'cinquante-neuf',
# 60-69
'soixante', 'soixante et un', 'soixante-deux', 'soixante-trois',
'soixante-quatre', 'soixante-cinq', 'soixante-six',
'soixante-sept', 'soixante-huit', 'soixante-neuf',
# 70-79
'septante', 'septante et un', 'septante-deux', 'septante-trois',
'septante-quatre', 'septante-cinq', 'septante-six',
'septante-sept', 'septante-huit', 'septante-neuf',
# 80-89
'huitante', 'huitante et un', 'huitante-deux', 'huitante-trois',
'huitante-quatre', 'huitante-cinq', 'huitante-six',
'huitante-sept', 'huitante-huit', 'huitante-neuf',
# 90-99
'nonante', 'nonante et un', 'nonante-deux', 'nonante-trois',
'nonante-quatre', 'nonante-cinq', 'nonante-six',
'nonante-sept', 'nonante-huit', 'nonante-neuf'
),
'illi' => array('', 'm', 'b', 'tr', 'quatr', 'quint', 'sext'),
'maxilli' => 0, # voir plus loin
'de_maxillions' => '', # voir plus loin
'septante' => false, # valeurs possibles : (false|true)
'huitante' => false, # valeurs possibles : (false|true|'octante')
'nonante' => false, # valeurs possibles : (false|true)
'zillions' => false, # valeurs possibles : (false|true)
'zilliard' => 1, # valeurs possibles : (0|1|2)
'rectif' => false, # valeurs possibles : (false|true)
'ordinal' => false, # valeurs possibles : (false|true|'nieme')
'separateur' => ' '
);
# Si le tableau $NEL['illi'] s'arrête à 'sext', alors les deux valeurs
# suivantes sont respectivement '6' et ' de sextillions'.
$NEL['maxilli'] = count($NEL['illi']) - 1;
$NEL['de_maxillions'] = " de {$NEL['illi'][$NEL['maxilli']]}illions";
function enlettres_options($options, $separateur=NULL)
{
global $NEL;
if ($options !== NULL) {
$NEL['septante'] = ($options & NEL_SEPTANTE) ? true : false;
$NEL['huitante'] =
($options & NEL_OCTANTE) ? 'octante' :
(($options & NEL_HUITANTE) ? true : false);
$NEL['nonante'] = ($options & NEL_NONANTE) ? true : false;
$NEL['zillions'] = ($options & NEL_TOUS_ZILLIONS) ? true : false;
$NEL['zilliard'] =
($options & NEL_AVEC_ZILLIARD) ? 2 :
(($options & NEL_SANS_MILLIARD) ? 0 : 1);
$NEL['rectif'] = ($options & NEL_RECTIF_1990) ? true : false;
$NEL['ordinal'] =
($options & NEL_NIEME) ? 'nieme' :
(($options & NEL_ORDINAL) ? true : false);
}
if ($separateur !== NULL) {
$NEL['separateur'] = $separateur;
}
}
function enlettres_par3($par3)
{
global $NEL;
if ($par3 == 0) return '';
$centaine = floor($par3 / 100);
$par2 = $par3 % 100;
$dizaine = floor($par2 / 10);
# On traite à part les particularités du français de référence
# 'soixante-dix', 'quatre-vingts' et 'quatre-vingt-dix'.
$nom_par2 = NULL;
switch ($dizaine) {
case 7:
if ($NEL['septante'] === false) {
if ($par2 == 71) $nom_par2 = 'soixante et onze';
else $nom_par2 = 'soixante-' . $NEL['1-99'][$par2 - 60];
}
break;
case 8:
if ($NEL['huitante'] === false) {
if ($par2 == 80) $nom_par2 = 'quatre-vingts';
else $nom_par2 = 'quatre-vingt-' . $NEL['1-99'][$par2 - 80];
}
break;
case 9:
if ($NEL['nonante'] === false) {
$nom_par2 = 'quatre-vingt-' . $NEL['1-99'][$par2 - 80];
}
break;
}
if ($nom_par2 === NULL) {
$nom_par2 = $NEL['1-99'][$par2];
if (($dizaine == 8) and ($NEL['huitante'] === 'octante')) {
$nom_par2 = str_replace('huitante', 'octante', $nom_par2);
}
}
# Après les dizaines et les unités, il reste à voir les centaines
switch ($centaine) {
case 0: return $nom_par2;
case 1: return rtrim("cent {$nom_par2}");
}
# Assertion : $centaine = 2 .. 9
$nom_centaine = $NEL['1-99'][$centaine];
if ($par2 == 0) return "{$nom_centaine} cents";
return "{$nom_centaine} cent {$nom_par2}";
}
function enlettres_zilli($idx)
{
# Noms des 0ème à 9ème zillions
static $petit = array(
'n', 'm', 'b', 'tr', 'quatr', 'quint', 'sext', 'sept', 'oct', 'non'
);
# Composantes des 10ème à 999ème zillions
static $unite = array(
'<', 'un<', 'duo<', 'tre<sé',
'quattuor<', 'quin<', 'se<xsé',
'septe<mné', 'octo<', 'nove<mné'
);
static $dizaine = array(
'', 'né>déci<', 'ms>viginti<', 'ns>triginta<',
'ns>quadraginta<', 'ns>quinquaginta<', 'né>sexaginta<',
'né>septuaginta<', 'mxs>octoginta<', 'é>nonaginta<'
);
static $centaine = array(
'>', 'nxs>cent', 'né>ducent', 'ns>trécent',
'ns>quadringent', 'ns>quingent', 'né>sescent',
'né>septingent', 'mxs>octingent', 'é>nongent'
);
# Règles d'assimilation aux préfixes latins, modifiées pour accentuer
# un éventuel 'é' de fin de préfixe.
# (1) Si on trouve une lettre deux fois entre < > on la garde.
# S'il y a plusieurs lettres dans ce cas, on garde la première.
# (2) Sinon on efface tout ce qui est entre < >.
# (3) On remplace "treé" par "tré", "seé" par "sé", "septeé" par "septé"
# et "noveé" par "nové".
# (4) En cas de dizaine sans centaine, on supprime la voyelle en trop.
# Par exemple "déciilli" devient "décilli" et "trigintailli" devient
# "trigintilli".
#
# Il est à noter que ces règles PERL (en particulier la première qui
# est la plus complexe) sont *très* fortement inspirées du programme
# de Nicolas Graner. On pourrait même parler de plagiat s'il n'avait
# pas été au courant que je reprenais son code.
# Voir <http://www.graner.net/nicolas/nombres/nom.php>
# et <http://www.graner.net/nicolas/nombres/nom-exp.php>
#
static $recherche = array(
'/<[a-zé]*?([a-zé])[a-zé]*\1[a-zé]*>/', # (1)
'/<[a-zé]*>/', # (2)
'/eé/', # (3)
'/[ai]illi/' # (4)
);
static $remplace = array(
'\\1', # (1)
'', # (2)
'é', # (3)
'illi' # (4)
);
$nom = '';
while ($idx > 0) {
$p = $idx % 1000;
$idx = floor($idx/1000);
if ($p < 10) {
$nom = $petit[$p] . 'illi' . $nom;
} else {
$nom = $unite[$p % 10] . $dizaine[floor($p/10) % 10]
. $centaine[floor($p/100)] . 'illi' . $nom;
}
}
return preg_replace($recherche, $remplace, $nom);
}
function enlettres_illions($idx)
{
global $NEL;
if ($idx == 0) {
return '';
}
if ($NEL['zillions']) {
return enlettres_zilli($idx) . 'ons';
}
$suffixe = '';
while ($idx > $NEL['maxilli']) {
$idx -= $NEL['maxilli'];
$suffixe .= $NEL['de_maxillions'];
}
return "{$NEL['illi'][$idx]}illions{$suffixe}";
}
function enlettres_avec_illiards($idx)
{
global $NEL;
if ($idx == 0) return false;
switch ($NEL['zilliard']) {
case 0: return false;
case 2: return true;
}
return ($idx == 1);
}
function enlettres($nombre, $options=NULL, $separateur=NULL)
{
global $NEL;
if ($options !== NULL or $separateur !== NULL) {
$NELsave = $NEL;
enlettres_options($options, $separateur);
$nom = enlettres($nombre);
$NEL = $NELsave;
return $nom;
}
# On ne garde que les chiffres, puis on supprime les 0 du début
$nombre = preg_replace('/[^0-9]/', '', $nombre);
$nombre = ltrim($nombre, '0');
if ($nombre == '') {
if ($NEL['ordinal'] === 'nieme') return 'zéroïème';
else return 'zéro';
}
$table_noms = array();
for ($idx = 0; $nombre != ''; $idx++) {
$par6 = (int)((strlen($nombre) < 6) ? $nombre : substr($nombre, -6));
$nombre = substr($nombre, 0, -6);
if ($par6 == 0) continue;
$nom_par3_sup = enlettres_par3(floor($par6 / 1000));
$nom_par3_inf = enlettres_par3($par6 % 1000);
$illions = enlettres_illions($idx);
if (enlettres_avec_illiards($idx)) {
if ($nom_par3_inf != '') {
$table_noms[$illions] = $nom_par3_inf;
}
if ($nom_par3_sup != '') {
$illiards = preg_replace('/illion/', 'illiard', $illions, 1);
$table_noms[$illiards] = $nom_par3_sup;
}
} else {
switch($nom_par3_sup) {
case '':
$nom_par6 = $nom_par3_inf;
break;
case 'un':
$nom_par6 = rtrim("mille {$nom_par3_inf}");
break;
default:
$nom_par3_sup = preg_replace('/(vingt|cent)s/', '\\1', $nom_par3_sup);
$nom_par6 = rtrim("{$nom_par3_sup} mille {$nom_par3_inf}");
break;
}
$table_noms[$illions] = $nom_par6;
}
}
$nom_enlettres = '';
foreach ($table_noms as $nom => $nombre) {
##
# $nombre est compris entre 'un' et
# 'neuf cent nonante-neuf mille neuf cent nonante-neuf'
# (ou variante avec 'quatre-vingt-dix-neuf')
##
# $nom peut valoir '', 'millions', 'milliards', 'billions', ...
# 'sextillions', 'sextilliards', 'millions de sextillions',
# 'millions de sextilliards', etc.
##
# Rectifications orthographiques de 1990
if ($NEL['rectif']) {
$nombre = str_replace(' ', '-', $nombre);
}
# Nom (éventuel) et accord (éventuel) des substantifs
$nom = rtrim("{$nombre} {$nom}");
if ($nombre == 'un') {
# Un seul million, milliard, etc., donc au singulier
# noter la limite de 1 remplacement, pour ne supprimer que le premier 's'
# dans 'billions de sextillions de sextillions'
$nom = preg_replace('/(illion|illiard)s/', '\\1', $nom, 1);
}
# Ajout d'un séparateur entre chaque partie
if ($nom_enlettres == '') {
$nom_enlettres = $nom;
} else {
$nom_enlettres = $nom . $NEL['separateur'] . $nom_enlettres;
}
}
if ($NEL['ordinal'] === false) {
# Nombre cardinal : le traitement est fini
return $nom_enlettres;
}
# Aucun pluriel dans les ordinaux
$nom_enlettres =
preg_replace('/(cent|vingt|illion|illiard)s/', '\\1', $nom_enlettres);
if ($NEL['ordinal'] !== 'nieme') {
# Nombre ordinal simple (sans '-ième')
return $nom_enlettres;
}
if ($nom_enlettres === 'un') {
# Le féminin n'est pas traité ici. On fait la supposition
# qu'il est plus facile de traiter ce cas à part plutôt
# que de rajouter une option rien que pour ça.
return 'premier';
}
switch (substr($nom_enlettres, -1)) {
case 'e':
# quatre, onze à seize, trente à nonante, mille
# exemple : quatre -> quatrième
return substr($nom_enlettres, 0, -1) . 'ième';
case 'f':
# neuf -> neuvième
return substr($nom_enlettres, 0, -1) . 'vième';
case 'q':
# cinq -> cinquième
return $nom_enlettres . 'uième';
}
# Tous les autres cas.
# Exemples: deuxième, troisième, vingtième, trente et unième,
# neuf centième, un millionième, quatre-vingt milliardième.
return $nom_enlettres . 'ième';
}
function enchiffres_petit($mot)
{
static $petit = array(
# 1-16
'un' => 1,
'deux' => 2,
'trois' => 3,
'quatre' => 4,
'cinq' => 5,
'six' => 6,
'sept' => 7,
'huit' => 8,
'neuf' => 9,
'dix' => 10,
'onze' => 11,
'douze' => 12,
'treize' => 13,
'quatorze' => 14,
'quinze' => 15,
'seize' => 16,
# 20-90
'vingt' => 20,
'vingts' => 20,
'trente' => 30,
'quarante' => 40,
'cinquante' => 50,
'soixante' => 60,
'septante' => 70,
'huitante' => 80,
'octante' => 80,
'nonante' => 90,
# 100, 1000
'cent' => 100,
'cents' => 100,
'mil' => 1000,
'mille' => 1000
);
if (! isset($petit[$mot]))
return false;
return $petit[$mot];
}
function enchiffres_zilli($mot)
{
# Noms des 0ème à 9ème zillions
static $petits = array(
'n', 'm', 'b', 'tr', 'quadr', 'quint', 'sext', 'sept', 'oct', 'non'
);
# Composantes des 10ème à 999ème zillions
static $unites = array(
'', 'un', 'duo', 'tre', 'quattuor', 'quin', 'se', 'septe', 'octo', 'nove'
);
static $dizaines = array(
'', 'dec', 'vigint', 'trigint', 'quadragint',
'quinquagint', 'sexagint', 'septuagint', 'octogint', 'nonagint'
);
static $centaines = array(
'', 'cent', 'ducent', 'trecent', 'quadringent',
'quingent', 'sescent', 'septingent', 'octingent', 'nongent'
);
# Expressions rationnelles pour extraire les composantes
static $um =
'(|un|duo|tre(?!c)|quattuor|quin|se(?!p)(?!sc)|septe|octo|nove)[mnsx]?';
static $dm =
'(|dec|(?:v|tr|quadr|quinqu|sex|septu|oct|non)[aio]gint)[ai]?';
static $cm =
'(|(?:|du|tre|ses)cent|(?:quadri|qui|septi|octi|no)ngent)';
$u = array_search($mot, $petits);
if ($u !== false) {
return '00' . $u;
}
if (preg_match('/^'.$um.$dm.$cm.'$/', $mot, $resultat) < 1) {
return false;
}
$u = array_search($resultat[1], $unites);
$d = array_search($resultat[2], $dizaines);
$c = array_search($resultat[3], $centaines);
if ($u === false or $d === false or $c === false) {
return false;
}
return $c.$d.$u;
}
function enchiffres_grand($mot)
{
# Quelques remplacements initiaux pour simplifier (les 'é' ont déjà
# été tous transformés en 'e').
# (1) Je supprime le 's' final de '-illions' ou '-illiards' pour ne
# tester que '-illion' ou '-illiard'.
# (2) Les deux orthographes étant possibles pour quadrillion ou
# quatrillion, je teste les deux. Noter que j'aurais pu changer
# 'quadr' en 'quatr' au lieu de l'inverse, mais alors cela aurait
# aussi changé 'quadragintillion' en 'quatragintillion', ce qui
# n'est pas franchement le but recherché.
# (3) En latin, on trouve parfois 'quatuor' au lieu de 'quattuor'. De même,
# avec google on trouve quelques 'quatuordecillions' au milieu des
# 'quattuordecillions' (environ 1 sur 10).
# (4) La règle de John Conway et Allan Wechsler préconisait le préfixe
# 'quinqua' au lieu de 'quin' que j'ai choisi. Pour accepter les deux,
# je remplace 'quinqua' par 'quin', sauf dans 'quinquaginta' (50)
# et dans 'quinquadraginta' (45).
static $recherche = array(
'/s$/', # (1)
'/quatr/', # (2)
'/quatuor/', # (3)
'/quinqua(?!(dra)?gint)/' # (4)
);
static $remplace = array(
'', # (1)
'quadr', # (2)
'quattuor', # (3)
'quin' # (4)
);
$mot = preg_replace($recherche, $remplace, $mot);
if ($mot == 'millier') return 1;
if ($mot == 'millinillion') return 2000;
$prefixes = explode('illi', $mot);
if (count($prefixes) < 2) {
# Il faut au moins un 'illi' dans le nom
return false;
}
switch (array_pop($prefixes)) {
case 'on':
# zillion : nombre pair de milliers
$ard = 0;
break;
case 'ard':
# zilliard : nombre impair de milliers
$ard = 1;
break;
default:
# Ce n'est ni un zillion, ni un zilliard
return false;
}
$nombre = '';
foreach ($prefixes as $prefixe) {
$par3 = enchiffres_zilli($prefixe);
if ($par3 === false) return false;
$nombre .= $par3;
}
if (strlen($nombre) > 3) {
# On n'accepte que les nombres inférieurs au millinillion
# pour limiter le temps de calcul
return 0;
}
return 2*$nombre + $ard;
}
class enchiffres_struct
{
var $valeur;
var $discr;
function enchiffres_struct($mul, $val)
{
$this->valeur = $this->discr = $val;
if ($mul != 0) {
$this->valeur *= $mul;
}
}
}
function enchiffres_ajouter_petit(&$table_petits, $petit)
{
$somme = 0;
while (($elem = array_pop($table_petits)) !== NULL) {
if ($elem->discr > $petit) {
array_push($table_petits, $elem);
break;
}
$somme += $elem->valeur;
}
$elem = new enchiffres_struct($somme, $petit);
array_push($table_petits, $elem);
}
function enchiffres_somme_petits($table_petits)
{
$somme = 0;
foreach ($table_petits as $elem) {
$somme += $elem->valeur;
}
return $somme;
}
function enchiffres_ajouter_grand(&$table_grands, $mantisse, $exposant)
{
while ($mantisse > 0) {
if (isset($table_grands[$exposant])) {
$mantisse += $table_grands[$exposant];
}
$table_grands[$exposant] = $mantisse % 1000;
$mantisse = floor($mantisse / 1000);
$exposant++;
}
}
function enchiffres($nom)
{
$nom = preg_replace('/[éèÉÈ]/', 'e', $nom);
$nom = strtolower($nom);
$table_mots = preg_split('/[^a-z]+/', $nom);
$table_petits = array();
$mantisse = $exposant = 0;
$table_grands = array();
foreach ($table_mots as $mot) {
$petit = enchiffres_petit($mot);
if ($petit !== false) {
if ($mantisse != 0) {
enchiffres_ajouter_grand($table_grands, $mantisse, $exposant);
$mantisse = $exposant = 0;
}
enchiffres_ajouter_petit($table_petits, $petit);
continue;
}
$grand = enchiffres_grand($mot);
if ($grand === false) {
# Ce n'est pas un nombre
continue;
}
if ($grand == 0) {
# Ce nombre était trop grand (millinillion et plus) : on annule le
# tout pour limiter le temps de calcul.
$mantisse = 0;
$exposant = 0;
$table_petits = array();
} else {
if (count($table_petits) > 0) {
$mantisse = enchiffres_somme_petits($table_petits);
$exposant = 0;
$table_petits = array();
}
if ($mantisse != 0) {
$exposant += $grand;
}
}
}
if (count($table_petits) > 0) {
$mantisse = enchiffres_somme_petits($table_petits);
$exposant = 0;
}
if ($mantisse != 0) {
enchiffres_ajouter_grand($table_grands, $mantisse, $exposant);
}
$nombre = "";
for ($exposant = 0; count($table_grands) > 0; $exposant++) {
if (isset($table_grands[$exposant])) {
$par3 = $table_grands[$exposant];
unset($table_grands[$exposant]);
} else {
$par3 = 0;
}
$nombre = sprintf("%03d", $par3) . $nombre;
}
$nombre = ltrim($nombre, '0');
if ($nombre === '') $nombre = '0';
return $nombre;
}
function enchiffres_aerer($nombre, $blanc=' ', $virgule=',', $tranche=3)
{
# Si c'est un nombre à virgule, on traite séparément les deux parties
if ($virgule !== NULL) {
$ent_dec = preg_split("/$virgule/", $nombre);
if (count($ent_dec) >= 2) {
$ent = enchiffres_aerer($ent_dec[0], $blanc, NULL, $tranche);
$dec = enchiffres_aerer($ent_dec[1], $blanc, NULL, -$tranche);
return $ent . $virgule . $dec;
}
}
# On ne garde que les chiffres
$nombre = preg_replace('/[^0-9]/', '', $nombre);
# Il est plus logique d'avoir un nombre positif pour les entiers,
# donc négatif pour la partie décimale, mais plus pratique de
# faire le contraire pour les substr().
$tranche = - (int)$tranche;
if ($tranche == 0) {
# on voulait juste supprimer les caractères en trop, pas en rajouter
return $nombre;
}
$nombre_aere = '';
if ($tranche < 0) {
# entier, ou partie entière d'un nombre décimal
while ($nombre != '') {
$par3 = substr($nombre, $tranche);
$nombre = substr($nombre, 0, $tranche);
if ($nombre_aere == '') {
$nombre_aere = $par3;
} else {
$nombre_aere = $par3 . $blanc . $nombre_aere;
}
}
} else {
# partie décimale
while ($nombre != '') {
$par3 = substr($nombre, 0, $tranche);
$nombre = substr($nombre, $tranche);
if ($nombre_aere == '') {
$nombre_aere = $par3;
} else {
$nombre_aere .= $blanc . $par3;
}
}
}
return $nombre_aere;
}
*/
?>

View File

@ -1,301 +0,0 @@
<?
/** Parse une page Html et retourne son contenu dans un tableau :
** "code" => Code réponse Serveur
** "header" => Headers du serveur
** "body" => Page HTML
**/
function parse_response($this_response) {
// Split response into header and body sections
list($response_headers, $response_body) = explode("\r\n\r\n", $this_response, 2);
$response_header_lines = explode("\r\n", $response_headers);
// First line of headers is the HTTP response code
$http_response_line = array_shift($response_header_lines);
if(preg_match('@^HTTP/[0-9]\.[0-9] ([0-9]{3})@',$http_response_line, $matches)) { $response_code = $matches[1]; }
// put the rest of the headers in an array
$response_header_array = array();
$nbRMID=0;
foreach($response_header_lines as $header_line)
{
list($header,$value) = explode(': ', $header_line, 2);
if ($header=='Set-cookie' && substr($value,0,5)=='RMID=' && $nbRMID<5)//{
$nbRMID++;
// echo ("Je gicle le RMID n°$nbRMID\r\n");}
else
@$response_header_array[$header] .= $value."\n";
}
return array('code' => $response_code, 'header' => $response_header_array, 'body' => $response_body);
}
/** Récupère une page HTML en fonction des paramètres :
** $url Url distante de la page à récupérer
** $strCookies Chaine de caractère contenant les cookies
** $postData Tableau des données à passer en POST uniquement
** $referer Referer à indiquer lors de l'appel de la page
** $debug Activer le débogage (True/False)
**
** ... et retourne son contenu dans un tableau :
** "code" => Code réponse Serveur
** "header" => Headers du serveur
** "body" => Page HTML
**/
function getUrl($url, $strCookies='', $postData='', $referer='', $debug=false, $host='', $proxy='', $timeout=0, $nbRetry=0) {
$ch = curl_init();
if ($host=='')
$this_header = array('Host: '. parse_url($url, PHP_URL_HOST));
else
$this_header = array('Host: '. $host);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
if ($proxy<>'') curl_setopt($ch, CURLOPT_PROXY, $proxy);
//curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'username:password'); // Pas nécessaire en authentification NT
if (((int)$timeout)<>0) {
curl_setopt($ch, CURLOPT_TIMEOUT, (int)$timeout);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, (int)$timeout);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); // New
//curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//curl_setopt($ch, CURLOPT_MAXREDIRS, 1);
/* curl_setopt($ch, CURLOPT_WRITEFUNCTION, receiveResponse);
function receiveResponse($curlHandle,$xmldata)
{
$this->responseString = $xmldata;
$this->responseXML .= $this->responseString;
$this->length = strlen($xmldata);
$this->size += $this->length;
return $this->length;
}
*/
if (preg_match('/^https/i',$url))
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$user_agent = 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)';
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_REFERER, $referer);
// Add each cookie that has been returned in the response
// If cookies need to be added/deleted or value changed, then add code here
if ($strCookies!='') {
//die('"'.$strCookies.'"');
//echo $strCookies."\r\n";
$cookies = explode("\n", $strCookies);
// Create the basic header
foreach($cookies as $this_cookie) {
if (trim($this_cookie)<>'')
array_push($this_header, 'Cookie: '.$this_cookie);
}
}
if ($postData!='') {
if (is_array($postData))
$post_data=$postData;
$o="";
foreach ($post_data as $k=>$v)
{
$o.= "$k=".utf8_encode($v)."&";
}
$post_data=substr($o,0,-1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
//if in_array('',$this_header
/*array_push($this_header, "Content-type: application/x-www-form-urlencoded");
array_push($this_header, "Content-Length: 44");*/
}
/* curl_setopt($ch, CURLOPT_STDERR, LOG_PATH.'/curlerror.log');
curl_setopt($ch, CURLOPT_VERBOSE, true);
*/
curl_setopt($ch, CURLOPT_HTTPHEADER, $this_header);
//print_r($this_header);
if ($nbRetry==0) {
$page=curl_exec($ch);
if($page === false) {
if (curl_errno($ch) == 28) //TIMEOUT
$response=array('code' =>408, 'header' =>array('curl_errno'=>curl_errno($ch),'curl_error'=>curl_error($ch)), 'body' =>'Connexion impossible au site du partenaire/Timeout');
else
$response=array('code' =>400, 'header' =>array('curl_errno'=>curl_errno($ch),'curl_error'=>curl_error($ch)), 'body' =>'Erreur Curl : ' . curl_error($ch));
} else
$response = parse_response($page);
} else {
$numTry=0;
while($numTry<=$nbRetry) {
$page=curl_exec($ch);
if($page === false) {
if (curl_errno($ch) == 28) //TIMEOUT
$response=array('code' =>408, 'header' =>array('curl_errno'=>curl_errno($ch),'curl_error'=>curl_error($ch)), 'body' =>'Connexion impossible au site du partenaire');
else
$response=array('code' =>400, 'header' =>array('curl_errno'=>curl_errno($ch),'curl_error'=>curl_error($ch)), 'body' =>'Erreur Curl : ' . curl_error($ch));
} else {
$response = parse_response($page);
break;
}
}
}
if ($debug){
$url2=str_replace('http://', '', $url);
$url2=str_replace('/', '_', $url2);
$url2=str_replace('?', '(param)', $url2);
$url2=str_replace('&', '(et)', $url2);
$fp=fopen('/tmp/curl-'. date('Ymd-His') .'-'. microtime_float(true) .'-'. $url2 . '.html', 'a');
fwrite($fp, $url."\r\n");
fwrite($fp, $page);
fclose($fp);
//echo strip_tags(html_entity_decode($response['body']), '<td>');
}
//print_r(curl_getinfo($ch));
curl_close($ch);
return $response;
}
/** Recherche un texte dans une page HTML
**
**/
function getTextInHtml($pageHtml, $strToFind, $strDeb, $strEnd, $include_strDeb=false, $include_strEnd=false, $ltrim=true, $rtrim=true, &$fin, $nbOcc=1) {
$tabRet=array();
$deb=$nbOccTrouve=0;
while( is_int(($deb=strpos($pageHtml,$strToFind,$fin))) ) {
$deb++;
$deb2 = strpos($pageHtml,$strDeb, $deb);
$fin = strpos($pageHtml,$strEnd, $deb2);
if (!$include_strDeb)
$deb2+=strlen($strDeb);
$s_temp = substr($pageHtml, $deb2, ($fin-$deb2));
if ($ltrim) $s_temp=ltrim($s_temp);
if ($rtrim) $s_temp=rtrim($s_temp);
if ($nbOcc==1) return $s_temp;
//echo $s_temp."\r\n";
//$a_temp = explode('" class="basic">', $s_temp);
$tabUrl[$nbOccTrouve]=$s_temp;
$nbOccTrouve++;
if ($nbOcc==$nbOccTrouve) {
// echo "j'ai trouvé le nb demandé, je sort\r\n";
break;
};
}
return $tabUrl;
/*<span class="mongrasvert">
<li>Le type de voie a été modifié<br>
<li>L'orthographe du mot directeur a été modifiée<br>
<li>Le code postal a été forcé à partir du département et de la localité<br> </span>
*/
}
function getPdfInfo($f){
$tabInfo=array( 'file'=>$f,
'fileName'=>basename($f));
$handle = @fopen($f, 'r');
if ($handle) {
//echo '1'.EOL;
$i=$nbPages=$buffer=0;
while (!feof($handle)) {
$prev_buffer=$buffer;
$buffer = fgets($handle, 4096);
if ($i==0 && preg_match("/^\%PDF\-(.*)\s/U", $buffer, $matches))
$tabInfo['version']=$matches[1];
elseif (preg_match("/Type\s*\/Page[^s]/", $buffer) )
++$nbPages;
$i++;
}
//echo '2'.EOL;
if (preg_match("/\%\%EOF$/", $prev_buffer) || preg_match("/\%\%EOF/", $prev_buffer) || preg_match("/\%\%EOF/", $buffer)) {
//echo '3'.EOL;
$tabInfo['pdfEOF']=true;
} else {
/*echo '4 prev:'.$prev_buffer.EOL;
echo '4 last:'.$buffer.EOL;*/
$tabInfo['debugBuffer']=$prev_buffer;
return false;
}
fclose($handle);
} else {
//echo '5'.EOL;
return false;
}
$tabInfo['pdfSize']=filesize($f);
$tabInfo['nbPages']=0+$nbPages;
//$tabInfo['debugBuffer']=$prev_buffer;
return $tabInfo;
}
function simpleWhois($domain, $tdl, $debug=false) {
// Fonction de traitement
// -----------------------------------------------
// 0 => Info, le nom est pris
// 1 => Info, le nom est libre
// 2 => Info, le nom est en pending
// 3 => Avertissement, trop de requêtes
// 4 => Erreur, il faut spécifier une chaine à rechercher (regexp)
// 5 => Erreur, la requête retournée était vide
// -----------------------------------------------
// Informations spécifiques aux extensions
$info = array(
'fr' => array(
'host' => 'whois.nic.fr',
'regexp' => 'No[s]*entries[s]*found',
'pending' => 'status[s]*:[s]*REDEMPTION'
),
'com' => array(
'host' => 'whois.crsnic.net',
'regexp' => 'No[s]*match[s]*for'
),
'net' => array(
'host' => 'whois.crsnic.net',
'regexp' => 'No[s]*match[s]*for'
),
);
// Initialisation de la sortie
$output = '';
// Initialisation de la requête
$req = fsockopen($info[$tdl]['host'], 43, $errno, $errstr, 5); // le 5 permet de stopper la requete si aucune réponse au bout de 5 secondes
// Récupération de la requête
if($req){
fputs($req, $domain.'.'.$tdl."rn");
while(!feof($req)) $output .= fgets($req, 4096);
fclose($req);
}else unset($req);
// mode debug
if($debug) return $output;
// Sortie vide
if(empty($output)) return 5;
// Trop de requêtes
if(preg_match("/(Too[s]+many[s]+requests|Your[s]+connection[s]+limit[s]+exceeded|daily[s]+whois[s]+limit[s]+exceeded|Maximum[s]+queries|WHOIS[s]+LIMIT[s]+EXCEEDED|referral[s]+host[s]+not[s]+responding|Excessive[s]+querying)/i", $output)) return 3;
// Pending
if(isset($info[$tdl]['pending']) && !empty($info[$tdl]['pending']) && preg_match("/".$info[$tdl]['pending']."/i", $output)) return 2;
// Info de recheche manquant
if(!isset($info[$tdl]['regexp']) || empty($info[$tdl]['regexp'])) return 4;
// Libre
if(preg_match("/".$info[$tdl]['regexp']."/i", $output)) return 1;
// Pris
return 0;
}
?>

View File

@ -1,205 +0,0 @@
<?
include_once('chiffres.php');
/**
* Classe de gestion des méthodes relatives à la date et à l'heure
*
* <p>détail de la classe</p>
*
* @name nom de la classe
* @author Nom de l'auteur <adresse@Email.dom>
* @link
* @copyright Prénom Nom Année
* @version 1.0.0
* @package Nom du package
*/
class WDate {
private static $tabMoisEnLettres = array( 1=>'Janvier',
2=>'Février',
3=>'Mars',
4=>'Avril',
5=>'Mai',
6=>'Juin',
7=>'Juillet',
8=>'Août',
9=>'Septembre',
10=>'Octobre',
11=>'Novembre',
12=>'Décembre');
/** Retourne le numéro du mois donné au format texte (janvier, mars, etc...)
* @param string Mois en toute lettres (janvier, mars, etc...)
* @return string Mois en Chiffe (1, 3, 12) / false en cas d'erreur
*/
public function getNumMois($moisEnLettres) {
foreach (self::$tabMoisEnLettres as $num=>$mois)
$tabMoisSansAccents[$num]=strtr($mois, 'ééûÉÉÛ','eeueeu');
return array_search(ucfirst(strtolower(strtr($moisEnLettres, 'ééûÉÉÛ','eeuEEU'))), $tabMoisSansAccents);
}
/** Retourne le libellé nu numéro du mois passé en paramètre
* @param int $moisEnChiffre
* @return string Libellé du mois / false si le mois passé en paramètre est invalide
*/
public function getLibelleMois($moisEnChiffre) {
if ($moisEnChiffre>0 && $moisEnChiffre<13)
return self::$tabMoisEnLettres[$moisEnChiffre];
return false;
}
/** Retourne le nombre de mois entre 2 dates au format Ymd
**
** @param int $dateDeb Date de début au format Ymd
** @param int $dateFin Date de fin (ultérieur à la date de début) au format Ymd
** @return int Nombre de mois
**/
function nbMoisEntre($dateDeb, $dateFin=TODAY) {
$dDeb=explode('-', Wdate::dateT('Ymd','Y-m-d', $dateDeb));
$dFin=explode('-', Wdate::dateT('Ymd','Y-m-d', $dateFin));
return ($dFin[0]*12+$dFin[1])-($dDeb[0]*12+$dDeb[1]);
}
/**
* Conversion de formats de dates selon les formats de dates définits en php
* @param string Format de la date d'entrée
* @param string Format de la date de sortie
* @param string Date d'entrée
* @return string Date formatée
*/
public function dateT($formatIN, $formatOUT, $date) {
$M='';
switch ($formatIN) {
case 'd M Y': $tmp=explode(' ', $date); $d=str_replace('1er', '1', $tmp[0]); $m=self::getNumMois($tmp[1]); $Y=$tmp[2]; break;
case 'dMY': $Y=substr($date,-4);
if (substr($date,0,3)=='1er') { $d=1; $posM=3; }
elseif (is_numeric(substr($date,1,1))) { $d=substr($date,0,2); $posM=2; }
else { $d=substr($date,0,1); $posM=1; }
$M=trim(substr($date, $posM, strlen($date)-4-$posM));
//echo "$date:$posM:$M".EOL;
$m=self::getNumMois($M);
break;
case 'Ymd': $d=substr($date,6,2); $m=substr($date,4,2); $Y=substr($date,0,4); break;
case 'ymd': $d=substr($date,4,2); $m=substr($date,2,2); $Y=substr($date,0,2);
if ($Y<50) $Y='20'.$Y; else $Y='19'.$Y; break;
case 'Y-m-d': $d=substr($date,8,2); $m=substr($date,5,2); $Y=substr($date,0,4); break;
case 'Y-m': $d=1; $m=substr($date,5,2); $Y=substr($date,0,4); break;
case 'd/m/Y': $tmp=explode('/', $date); $d=$tmp[0]; $m=$tmp[1]; $Y=$tmp[2]; break;
case 'd.m.Y': $tmp=explode('.', $date); $d=$tmp[0]; $m=$tmp[1]; $Y=$tmp[2]; break;
case 'd/m/y': $tmp=explode('/', $date); $d=$tmp[0]; $m=$tmp[1];
if ($tmp[2]<date('y')) $Y='20'.$tmp[2]; else $Y='19'.$tmp[2]; break;
case 'd-m-Y': $tmp=explode('-', $date); $d=$tmp[0]; $m=$tmp[1]; $Y=$tmp[2]; break;
case 'm/d/Y': $tmp=explode('/', $date); $d=$tmp[1]; $m=$tmp[0]; $Y=$tmp[2]; break;
case 'dmY': $d=substr($date,0,2); $m=substr($date,2,2); $Y=substr($date,4,4); break;
case 'dmy': $d=substr($date,0,2); $m=substr($date,2,2); $Y=substr($date,4,2);
if ($Y<50) $Y='20'.$Y; else $Y='19'.$Y; break;
default: return $date;
}
if ($m*1>0 && $m*1<10) $m='0'.($m*1); if ($d*1>0 && $d*1<10) $d='0'.($d*1);
switch ($formatOUT) {
case 'd/m/Y': return $d.'/'.$m.'/'.$Y; break;
case 'm/Y': return $m.'/'.$Y; break;
case 'd M Y': return $d.' '.self::$tabMoisEnLettres[$m*1].' '.$Y; break;
case 'M Y': return self::$tabMoisEnLettres[$m*1].' '.$Y; break;
case 'Y': return $Y; break;
case 'm': return $m; break;
case 'd': return $d; break;
case 'Ym': return $Y.$m; break;
case 'Ymd': return $Y.$m.$d; break;
case 'Y-m-d': return $Y.'-'.$m.'-'.$d; break;
case 'Y/m/d': return $Y.'/'.$m.'/'.$d; break;
default: return $date;
}
}
/** Calcul de la date après application de la période textuelle (deux ans, six mois, quinze jours, etc...)
* @todo Fonction ne fonctionnant qu'avec un chiffre en un seul mot du genre dix mais pas quatre vingt dix !!!
* @param date $dateIN au format Ymd
* @param string $period (ex : cinq mois, six ans, un jour, 3 mois)
* @return date
*/
function period2Days($dateIN, $period, $inThePast=false) {
$dateV=self::dateT('Ymd', 'Ymd', $dateIN);
if ($dateV<>$dateIN) return NULL;
$d=substr($dateIN,6,2);
$m=substr($dateIN,4,2);
$Y=substr($dateIN,0,4);
$period=strtolower(trim(strtr($period, "-.,", ' ')));
if ($period=='') return NULL;
$tabP=explode(' ', $period);
if ($tabP[0]*1>0) $chiffre=$tabP[0]*1*1;
else $chiffre=WChiffes::ChiffresEnLettres($tabP[0]);
if ($inThePast) $chiffre=-1*$chiffre;
switch (end($tabP)) {
case 'mois': $dateOUT=date('Ymd', mktime(0, 0, 0, $m+$chiffre, $d, $Y)); break;
case 'an':
case 'ans': $dateOUT=date('Ymd', mktime(0, 0, 0, $m, $d, $Y+$chiffre)); break;
case 'jour':
case 'jours': $dateOUT=date('Ymd', mktime(0, 0, 0, $m, $d+$chiffre, $Y)); break;
default: $dateOUT=NULL;
}
return $dateOUT;
}
/** le jour est il ferié
* @param date $date Date au format SSAA-MM-JJ ou SSAAMMJJ
* @param bool $weekend Considérer les WeekEnd comme feriés ? 1=Oui
* @return bool
**/
function jourFerie($date, $weekend=false) {
$date =str_replace('-','',strtr($date, '/.:','---'));
$jour =self::dateT('Ymd', 'd', $date);
$mois =self::dateT('Ymd', 'm', $date);
$annee=self::dateT('Ymd', 'Y', $date);
$ferie=false;
// Jours feriées fixes
if($jour == 1 && $mois == 1) $ferie = true; // 1er janvier
if($jour == 1 && $mois == 5) $ferie = true; // 1er mai
if($jour == 8 && $mois == 5) $ferie = true; // 8 mai
if($jour == 14 && $mois == 7) $ferie = true; // 14 juillet
if($jour == 15 && $mois == 8) $ferie = true; // 15 aout
if($jour == 1 && $mois == 11) $ferie = true; // 1 novembre
if($jour == 11 && $mois == 11) $ferie = true; // 11 novembre
if($jour == 25 && $mois == 12) $ferie = true; // 25 décembre
// fêtes religieuses mobiles
$pak = @easter_date($annee);
$jp = date("d", $pak);
$mp = date("m", $pak);
if($jp == $jour && $mp == $mois){ $ferie = true;} // Pâques
$lpk = mktime(date("H", $pak), date("i", $pak), date("s", $pak), date("m", $pak), date("d", $pak) +1, date("Y", $pak) );
$jp = date("d", $lpk);
$mp = date("m", $lpk);
if($jp == $jour && $mp == $mois){ $ferie = true; }// Lundi de Pâques
$asc = mktime(date("H", $pak), date("i", $pak), date("s", $pak), date("m", $pak), date("d", $pak) + 39, date("Y", $pak) );
$jp = date("d", $asc);
$mp = date("m", $asc);
if($jp == $jour && $mp == $mois){ $ferie = true;}//ascension
$pe = mktime(date("H", $pak), date("i", $pak), date("s", $pak), date("m", $pak), date("d", $pak) + 49, date("Y", $pak) );
$jp = date("d", $pe);
$mp = date("m", $pe);
if($jp == $jour && $mp == $mois) {$ferie = true;}// Pentecôte
$lp = mktime(date("H", $asc), date("i", $pak), date("s", $pak), date("m", $pak), date("d", $pak) + 50, date("Y", $pak) );
$jp = date("d", $lp);
$mp = date("m", $lp);
if($jp == $jour && $mp == $mois) {$ferie = true;}// lundi Pentecôte
// Samedis et Dimanches
if ($weekend) {
$jour_sem = date('N',mktime(0,0,0, $mois, $jour, $annee));
if($jour_sem>5) $ferie = true;
}
return $ferie;
}
}
?>

View File

@ -1,135 +0,0 @@
<?php
function ftp_mget($ftp_url, $ftp_user, $ftp_pass, $ftp_dir, $local_dir, $debug=null) {
$conn_id = @ftp_connect($ftp_url);
if (!$conn_id) {
if ($debug<>null) echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible de se connecter au serveur FTP ($ftp_url) !".EOL;
return false;
}
$login_result = @ftp_login($conn_id, $ftp_user, $ftp_pass);
if (!$login_result) {
if ($debug<>null) echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible de s'authentifier sur le serveur FTP (user=$ftp_user)!".EOL;
return false;
}
// Récupération du contenu d'un dossier
$contents = ftp_nlist($conn_id, $ftp_dir);
// print_r($contents);
// print_r(ftp_rawlist($conn_id, $ftp_dir));
$nbFic=0; // Nombre de fichiers récupérés
if (is_array($contents))
foreach($contents as $k => $server_file) {
$tailleDist = ftp_size($conn_id, $server_file);
$dateDist = ftp_mdtm($conn_id, $server_file);
$tailleLoc=0;
if ($dateDist != -1) {
$tabFichiers[$server_file]['dateDispo']=date('Y-m-d H:i:s', $dateDist);
// echo date ('Y/m/d - H:i:s') ." - Le fichier distant $server_file a été modifié le ".date("d/m/Y à H:i:s.",$dateDist)."\n";
} else {
$tabFichiers[$server_file]['dateDispo']=NULL;
// echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible de récupérer l'heure de modification du fichier distant $server_file !\n";
}
$tabFichiers[$server_file]['taille']=$tailleDist;
if ($tailleDist != -1) {
//echo date ('Y/m/d - H:i:s') ." - Taille du fichier distant $server_file est de $tailleDist octets\n";
}
if (file_exists($local_dir . $server_file)) {
$dateLoc=filemtime($local_dir . $server_file);
$tabFichiers[$server_file]['dateDownload']=date('Y-m-d H:i:s', $dateLoc);
$tailleLoc=filesize($local_dir . $server_file);
//echo date ('Y/m/d - H:i:s') ." - Taille du fichier local $server_file = $tailleLoc octets\n";
}
if ($tailleDist<>$tailleLoc) {
if (ftp_get($conn_id, $local_dir. $server_file, $server_file, FTP_BINARY))
//echo date ('Y/m/d - H:i:s')." - Fichier distant $server_file téléchargé avec succès".EOL;
$nbFic++;
else {
if ($debug<>null) echo date ('Y/m/d - H:i:s')." - ERREUR : Fichier distant $server_file non téléchargé !".EOL;
return false;
}
}
}
// Fermeture de la connexion
ftp_close($conn_id);
return $nbFic;
}
/**
* ftpRecursiveFileListing
*
* Get a recursive listing of all files in all subfolders given an ftp handle and path
*
* @param resource $ftpConnection the ftp connection handle
* @param string $path the folder/directory path
* @return array $allFiles the list of files in the format: directory => $filename
*/
/*function ftp_rlist($conn_id, $path) {
static $allFiles = array();
$contents = ftp_nlist($conn_id, $path);
foreach($contents as $currentFile) {
// assuming its a folder if there's no dot in the name
echo $currentFile.EOL;
//if (strpos($currentFile, '.') === false) {
if(ftp_is_dir($conn_id, $currentFile)) {
ftp_rlist($conn_id, $path.'/'.$currentFile);
}
$allFiles[$path][] = substr($currentFile, strlen($path) + 1);
}
return $allFiles;
}
*/
//identify directories
function ftp_is_dir($conn_id, $dir) {
if (@ftp_chdir($conn_id, $dir)) {
ftp_chdir($conn_id, '../');
return true;
} else {
return false;
}
}
/*
function list_all_files($conn_id, $path){
$buff = ftp_rawlist($conn_id, $path);
$res = parse_rawlist( $buff) ;
static $flist = array();
if(count($res)>0){
foreach($res as $result){
// verify if is dir , if not add to the list of files
if($result['size']== 0){
// recursively call the function if this file is a folder
list_all_files($conn_id, $path.'/'.$result['name']);
}
else{
// this is a file, add to final list
$flist[] = $result;
}
}
}
return $flist;
}*/
function ftp_rlist($conn_id, $path, $suffixes=array('gif','png','jpeg','pdf','php','txt','csv'), $files=array()) {
ftp_pasv($conn_id, true);
// = explode(",", $suffix);
$list = ftp_rawlist($conn_id, $path);
$anzlist = count($list);
$i = 0;
while ($i < $anzlist):
$split = preg_split("/[\s]+/", $list[$i], 9, PREG_SPLIT_NO_EMPTY);
$ItemName = $split[8];
$endung = strtolower(substr(strrchr($ItemName,"."),1));
$path = "$path/$ItemName";
if (substr($list[$i],0,1) === "d" AND substr($ItemName,0,1) != "."):
// array_push($files, $path); # write directory in array if desired
ftp_rlist($conn_id,$path, $suffixes, $files);
elseif (substr($ItemName,0,2) != "._" AND in_array($endung,$suffixes)):
array_push($files, $path);
endif;
$i++;
endwhile;
return $files;
}
?>

View File

@ -1,3 +0,0 @@
<?php
include_once(FWK_PATH.'mail/htmlMimeMail5.php');
?>

View File

@ -1,228 +0,0 @@
<?php
class WDB {
private $host;
private $database;
private $user;
private $password;
private $con_id; // Connection ID with MySQL
private $result;
public function __construct($database='', $host='', $user='', $password='') {
if ($host=='') $this->host=MYSQL_HOST;
else $this->host=$host;
if ($user=='') $this->user=MYSQL_USER;
else $this->user=$user;
if ($password=='') $this->password=MYSQL_PASS;
else $this->password=$password;
if ($database=='') $this->database=MYSQL_DEFAULT_DB;
else $this->database=$database;
$this->con_id = mysql_pconnect($this->host, $this->user, $this->password);
if (!($this->con_id === false)) {
if (mysql_select_db($this->database, $this->con_id) === false) {
echo date('Y/m/d - H:i:s') ." - ERREUR ".mysql_errno()." : Connection à la base de données impossible !".EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
die();
}
}
return mysql_query("SET NAMES 'utf8';", $this->con_id);
}
public function setCharSet($charSet) {
return (mysql_query("SET CHARACTER SET $charSet;", $this->con_id));
}
private function setDB() {
return (mysql_query("USE $this->database;", $this->con_id));
}
/** INSERTION d'un tableau dans une table.
** Les index doivent avoir les mêmes noms que les champs.
** @param string Table
** @param array Valeurs insérer
** @return int Dernière valeur de l'auto-incrément, 1 si pas d'auto-incrément et 0 si erreur
**/
public function insert($table, $toAdd, $debug=false, $low_priority=false){
$this->setDB();
$fields = implode(array_keys($toAdd), '`,`');
foreach (array_values($toAdd) as $key=>$array_values)
$tmp[$key]=checkaddslashes($array_values);
$values = "'".implode(array_values($tmp), "','")."'"; # better
$values = str_replace("'NULL'", 'NULL', $values);
if ($low_priority)
$query = 'INSERT DELAYED INTO `'.$table.'` (`'.$fields.'`) VALUES ('.$values.');';
else
$query = 'INSERT INTO `'.$table.'` (`'.$fields.'`) VALUES ('.$values.');';
if ($debug) $tdeb=microtime_float();
$res = mysql_query($query, $this->con_id);
if ($res!==false)
{
if (mysql_insert_id()>0)
$res=mysql_insert_id();
else
$res=true;
}
if ($debug) $this->trace($query, $res, $tdeb);
return $res;
}
public function update($table, $update, $where, $debug=false, $limit=0, $low_priority=false){
$this->setDB();
$fields = array_keys($update);
$values = array_values($update);
$i=0;
if ($low_priority)
$query='UPDATE LOW_PRIORITY `'.$table.'` SET ';
else
$query='UPDATE `'.$table.'` SET ';
while(isset($fields[$i])){
if($i>0) { $query.=', '; }
$query.=' `'.$fields[$i]."`='".checkaddslashes($values[$i])."'";
$i++;
}
$query = str_replace("'NULL'", 'NULL', $query);
$query.=' WHERE '.$where;
if ($limit>0) $query.=" LIMIT $limit";
if ($debug) $tdeb=microtime_float();
$res=mysql_query($query, $this->con_id);
if ($debug) $this->trace($query, $res, $tdeb);
return $res;
}
public function delete($table, $where, $debug=false, $low_priority=false) {
$this->setDB();
if ($low_priority)
$query='DELETE LOW_PRIORITY QUICK FROM `'.$table.'` WHERE '.$where.' LIMIT 1;';
else
$query='DELETE FROM `'.$table.'` WHERE '.$where.' LIMIT 1;';
if ($debug) $tdeb=microtime_float();
$res=mysql_query($query, $this->con_id);
if ($debug) $this->trace($query, $res, $tdeb);
return $res;
}
public function select($table, $fields, $where, $debug=false, $assoc=MYSQL_BOTH, $huge=false) {
$this->setDB();
if (mysql_select_db($this->database, $this->con_id) === false) {
echo date('Y/m/d - H:i:s') ." - ERREUR ".mysql_errno()." : Connection à la base de données impossible !".EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
die();
}
$query="SELECT $fields FROM $table WHERE $where;";
if ($debug) $tdeb=microtime_float();
$this->result=mysql_query($query, $this->con_id);// or die(mysql_error());
if (mysql_errno()) {
$fpErr=fopen(LOG_PATH.'/sqlerror.log','a');
fwrite($fpErr, date('YmdHis'). ' - '.$query .EOL);
fwrite($fpErr, date('YmdHis'). ' - '.mysql_errno() .' - '. mysql_error().EOL);
return false;
}
// echo ;
if (!$huge) {
$tab=array();
while ($ligne = mysql_fetch_array($this->result, $assoc))
$tab[]=$ligne;
if ($debug) $this->trace($query, sizeof($tab), $tdeb);
return $tab;
} else {
$nbRows=mysql_num_rows($this->result);
if ($debug) $this->trace($query, $nbRows, $tdeb);
return $nbRows;
}
}
public function fetch($assoc=MYSQL_BOTH) {
return mysql_fetch_array($this->result, $assoc);
}
public function trace($query, $res='', $tdeb=-1) {
if (!$fp=fopen(LOG_PATH.'/mysql_insert.log', 'a'))
return false;
$errnum=mysql_errno($this->con_id);
if ($tdeb>-1) $duree=substr(''.microtime_float()-$tdeb, 0, 5);
else $duree='N/D';
if (!fwrite($fp, date('Y/m/d - H:i:s') ." - $errnum - $res - $duree - $query\n"))
return false;
if (!fclose($fp))
return false;
return true;
}
/** Exécute la requête passé en paramètre **/
public function query($query, $debug=false){
$this->setDB();
$this->result=mysql_query($query, $this->con_id);
return $this->result;
}
/** Retourne le nombre de records de la dernière requête de sélection **
public function getNumRows() {
return mysql_num_rows($this->con_id);
}
*/
/** Retourne le libellé de la dernière erreur **/
public function getLastErrorMsg() {
return mysql_error($this->con_id);
}
/** Retourne le numéro de la dernière erreur **/
public function getLastErrorNum() {
return mysql_errno($this->con_id);
}
/** Retourne le libellé et le numéro de la dernière erreur **/
public function getLastError() {
return mysql_error($this->con_id).' ('.mysql_errno($this->con_id).')';
}
/** Retourne le nombre de lignes modifiées par la dernière requête **/
public function getAffectedRows() {
return mysql_affected_rows($this->con_id);
}
/** Génère le fichier CSV pour la requete SQL
**
** @param string $query
** @param string $fileCsv
** @return bool
*/
public function exportCSV($query, $fileCsv, $sep=',', $eol=EOL) {
$i=$c=0;
$fp = fopen($fileCsv, 'w');
if (!$fp) return false;
$res=$this->query($query);
$nbLignes=mysql_num_rows($res);
while ($ligne=$this->fetch(MYSQL_ASSOC)) {
if ($i==0) {
$nbCols=count($ligne);
foreach ($ligne as $libCol=>$col) {
$c++;
if ($c<$nbCols) fwrite($fp, str_replace($sep,' ', $libCol).$sep);
else fwrite($fp, str_replace($sep,' ', $libCol));
}
fwrite($fp, $eol);
}
$c=0;
foreach ($ligne as $libCol=>$col) {
$c++;
if ($c<$nbCols) fwrite($fp, str_replace($sep,' ', $col).$sep);
else fwrite($fp, str_replace($sep,' ', $col));
}
fwrite($fp, $eol);
$i++;
}
fclose($fp);
return $nbLignes;//$this->getAffectedRows();
}
}
?>

View File

@ -1,215 +0,0 @@
<?php
/*
Atom and RSS Extractor and Displayer
(c) 2007 Scriptol.com - Licence Mozilla 1.1.
commonlib.php
*/
class atomRss {
public $codeErreurHttp=0;
private $Common_Content = array();
function RSS_Tags($item, $type)
{
$y = array();
$y["title"] = $item->getElementsByTagName("title")->item(0)->firstChild->data;
$y["link"] = $item->getElementsByTagName("link")->item(0)->firstChild->data;
$y["description"] = $item->getElementsByTagName("description")->item(0)->firstChild->data;
$tnl = $item->getElementsByTagName("pubDate");
if($tnl->length == 0)
{
$tnl = $item->getElementsByTagName("lastBuildDate");
}
if($tnl->length != 0)
{
$tnl =$tnl->item(0)->firstChild->data;
}
else
$tnl = false;
$y["updated"] = $tnl;
$y["type"] = $type;
array_push($this->Common_Content, $y);
}
function RSS_Channel($channel)
{
$items = $channel->getElementsByTagName("item");
// Processing channel
$this->RSS_Tags($channel, 0); // get description of channel, type 0
// Processing articles
foreach($items as $item)
{
$this->RSS_Tags($item, 1); // get description of article, type 1
}
}
function RSS_Retrieve($url)
{
$doc = new DOMDocument();
$ret = $doc->load($url);
if ($ret===false) {
$page=getUrl($url,'','','',false,'','',3);
$this->codeErreurHttp=$page['code'];
if ($this->codeErreurHttp==302) {
$url=$page['header']['Location'];
$ret = $doc->load($url);
}
}
$channels = $doc->getElementsByTagName("channel");
$this->Common_Content = array();
foreach($channels as $channel)
{
$this->RSS_Channel($channel);
}
return ( count($this->Common_Content) > 0);
}
function Atom_Tags($item)
{
$y = array();
$y["title"] = $item->getElementsByTagName("title")->item(0)->firstChild->data;
$y["link"] = $item->getElementsByTagName("link")->item(0)->getAttribute("href");
$y["description"] = $item->getElementsByTagName("summary")->item(0)->firstChild->data;
$y["updated"] = $item->getElementsByTagName("updated")->item(0)->firstChild->data;
$y["type"] = 1;
array_push($this->Common_Content, $y);
}
function Atom_Feed($doc)
{
$entries = $doc->getElementsByTagName("entry");
if($entries->length == 0) return false;
// Processing feed
$y = array();
$y["title"] = $doc->getElementsByTagName("title")->item(0)->firstChild->data;
$y["link"] = $doc->getElementsByTagName("link")->item(0)->getAttribute("href");
$y["description"] = $doc->getElementsByTagName("subtitle")->item(0)->firstChild->data;
$y["updated"] = $doc->getElementsByTagName("updated")->item(0)->firstChild->data;
$y["type"] = 0;
array_push($this->Common_Content, $y);
// Processing articles
foreach($entries as $entry)
{
$this->Atom_Tags($entry); // get description of article, type 1
}
return true;
}
function Atom_Retrieve($url)
{
$doc = new DOMDocument();
$doc->load($url);
$this->Common_Content = array();
return $this->Atom_Feed($doc);
}
function loadRss($url, $size=200, $chanopt=true, $descopt=true, $dateopt=true)
{
$opened = false;
$page = "";
if($this->Atom_Retrieve($url) === false)
{
if($this->RSS_Retrieve($url) === false)
{
return false;
}
}
if($size > 0)
{
$size += 1; // add one for the channel
$recents = array_slice($this->Common_Content, 0, $size);
}
//$tabFlux=array();
return $recents;
/*
foreach($recents as $article)
{
$type = $article["type"];
if($type == 0)
{
if($chanopt != true) continue;
if($opened == true)
{
$page .="</ul>\n";
$opened = false;
}
//$page .="<b>";
}
else
{
if($opened == false && $chanopt == true)
{
$page .= "<ul>\n";
$opened = true;
}
}
$title = $article["title"];
$link = $article["link"];
$page .= "<".$Common_Style."><a href=\"$link\">$title</a>";
if($descopt != false)
{
$description = $article["description"];
if($description != false)
{
$page .= "<br>$description";
}
}
if($dateopt != false)
{
$updated = $article["updated"];
if($updated != false)
{
$page .= "<br /><font $Common_Date_Font>$updated</font>";
}
}
$page .= "</".$Common_Style.">\n";
/*
if($type == 0)
{
$page .="<br />";
}
*
}
if($opened == true)
{
$page .="</ul>\n";
}
return $page."\n";
*/
}
}
?>

View File

@ -1,424 +0,0 @@
<?
define ('BEFORE', 0);
define ('AFTER', 1);
define ('BOTH', 2);
define ('ALIGN_LEFT', 0);
define ('ALIGN_RIGHT', 1);
/**Initialisation d'une chaîne de caractère
*
* @param string $chaine Chaîne de caractère initiale
* @param int $taille Taille de la chaîne de caractère à initialiser
* @param string $caractere_pour_combler Caractère à utiliser pour combler la chaîne de caractère (espace par défaut)
* @param string $align Aligner la chaîne de caractère à droite (right) ou à gauche (left, par défaut)
* @return string
*/
function initstr($chaine, $taille, $caractere_pour_combler=' ', $align=ALIGN_LEFT) {
if ($align==ALIGN_RIGHT) {
$str2='';
for ($i=0;$i<($taille-strlen($chaine));$i++)
$str2.=$caractere_pour_combler;
$str=$str2.$chaine;
} else {
if (strlen($chaine)>=$taille)
return substr($chaine,0,$taille);
$str=$chaine;
for ($i=strlen($chaine);$i<$taille;$i++)
$str = $str . $caractere_pour_combler;
}
return $str;
}
/**
* Ajout d'anti-slashs s'il y a lieu en vu d'une insertion en BDD
*
* @param string $str Chaine de caractère
* @return unknown
*/
function checkaddslashes($str){
return addslashes(preg_replace('/\\[^nrt\']/i', '\\', $str));
}
function checkaddslashes2($str){
if(strpos(str_replace("\'",''," $str"),"'")!=false)
return addslashes($str);
else
return $str;
}
function trimAccent ($strWithAccent) {
$strWithAccent = htmlentities(strtolower($strWithAccent ));
$strWithAccent = preg_replace("/&(.)(acute|cedil|circ|ring|tilde|uml|grave);/", "$1", $strWithAccent );
$strWithAccent = preg_replace("/([^a-z0-9]+)/", " ", html_entity_decode($strWithAccent ));
$strWithAccent = trim($strWithAccent , "-");
return $strWithAccent;
}
//function SRSaufVoyelle ($strIn, $mot1, $mot2) {
function str_replace_except_voy($mot1, $mot2, $strIn, $rule=0) {
$Voyelle=array('a','e','i','o','u','y', '1', '2', '3', '4');
if ($mot1==$mot2) return $strIn;
if (strpos($mot2,$mot1)===false)
{
//foreach ($Voyelle as $k => $voy)
$posMot1=strpos($strIn, $mot1);
while ($posMot1!==false) {
$lettreAV=$strIn[$posMot1-1];
$lettreAP=$strIn[$posMot1+strlen($mot1)];
//echo "Lettre AV=$lettreAV<br/>";
//echo "Lettre AP=$lettreAP<br/>";
if ( ( $rule==0 && !in_array($lettreAV, $Voyelle) ) ||
( $rule==1 && !in_array($lettreAP, $Voyelle) ) ||
( $rule==2 && !in_array($lettreAV, $Voyelle) && !in_array($lettreAP, $Voyelle) ))
$strIn=substr($strIn,0,$posMot1) . $mot2 . substr($strIn,$posMot1+strlen($mot1),strlen($strIn));
//echo "Le Mot devient : $strIn<br/>";
$posMot1=strpos($strIn, $mot1, $posMot1+strlen($mot1));
}
return $strIn;
}
//echo "Erreur : $mot2 contient $mot1 !<br>";
return $strIn;
}
/** Retourne le phonex d'un mot
**/
function phonex($strIn) {
if ($strIn=='') return 0.0;
$tabSonAIA=array('aina', 'eina', 'aima', 'eima');
$tabSonAIE=array('ainr', 'eine', 'aime', 'eime');
$tabSonAII=array('aini', 'eini', 'aimi', 'eimi');
$tabSonAIO=array('aino', 'eino', 'aimo', 'eimo');
$tabSonAIU=array('ainu', 'einu', 'aimu', 'eimu');
$tabCarPhon=array('1', '2', '3', '4', '5', 'e', 'f', 'g', 'h', 'i', 'k', 'l', 'n', 'o', 'r', 's', 't', 'u', 'w', 'x', 'y', 'z');
/** On traite tout en minuscule **/
$strIn=strtolower($strIn);
/** On remplace les 'Y' par des 'I' **/
$strIn=str_replace('y', 'i', $strIn);
/** On supprime les accents **/
$strIn=trimAccent($strIn);
/** On retire les 'H' muets sauf ceux précédés par 'C' ou 'S' **/
$strIn = preg_replace ('/(?<![CS])H/', '', $strIn);
/** On remplace les 'PH' par des 'F' **/
$strIn=str_replace('ph', 'f', $strIn);
/** On remplace les 'G' par des 'K' devant AN AM AIN AIM **/
$strIn=str_replace('gan', 'kan', $strIn);
$strIn=str_replace('gain', 'kain', $strIn);
$strIn=str_replace('gam', 'kam4', $strIn);
$strIn=str_replace('gaim', 'kaim', $strIn);
/** On remplace le son AI **/
for ($i=0; $i>4; $i++) {
$strIn=str_replace($tabSonAIA[$i], 'yna', $strIn);
$strIn=str_replace($tabSonAIE[$i], 'yne', $strIn);
$strIn=str_replace($tabSonAII[$i], 'yni', $strIn);
$strIn=str_replace($tabSonAIO[$i], 'yno', $strIn);
$strIn=str_replace($tabSonAIU[$i], 'ynu', $strIn);
}
/** Remplacement des groupes de 3 lettres **/
$strIn=str_replace('eau', 'o', $strIn);
$strIn=str_replace('oua', '2', $strIn);
$strIn=str_replace('ein', '4', $strIn);
$strIn=str_replace('ain', '4', $strIn);
/** Remplacement du son 'é' **/
$strIn=str_replace('ai', 'y', $strIn);
$strIn=str_replace('ei', 'y', $strIn);
$strIn=str_replace('er', 'yr', $strIn);
$strIn=str_replace('ess', 'yss', $strIn);
$strIn=str_replace('et', 'yt', $strIn);
$strIn=str_replace('ez', 'yz', $strIn);
/** Remplacement des groupes de 2 lettres sauf si voyelle ou son (1 à 4) AVANT **/
$strIn=str_replace_except_voy('an', '1', $strIn, BEFORE);
$strIn=str_replace_except_voy('am', '1', $strIn, BEFORE);
$strIn=str_replace_except_voy('en', '1', $strIn, BEFORE);
$strIn=str_replace_except_voy('em', '1', $strIn, BEFORE);
$strIn=str_replace_except_voy('in', '4', $strIn, BEFORE);
/** Remplacement du son 'SCH' **/
$strIn=str_replace('sch', '5', $strIn);
/** Remplacement du 'S' sauf si voyelle ou son (1 à 4) avant ou après **/
$strIn=str_replace_except_voy('in', '4', $strIn, BOTH);
/** Remplacement de groupe de 2 lettres diverses **/
$strIn=str_replace('oe', 'e', $strIn);
$strIn=str_replace('eu', 'e', $strIn);
$strIn=str_replace('au', 'o', $strIn);
$strIn=str_replace('oi', '2', $strIn);
$strIn=str_replace('oy', '2', $strIn);
$strIn=str_replace('ou', '3', $strIn);
$strIn=str_replace('ch', '5', $strIn);
$strIn=str_replace('sh', '5', $strIn);
$strIn=str_replace('ss', 's', $strIn);
$strIn=str_replace('sc', 's', $strIn);
/** Remplacement du 'C' par 'S' s'il est suivi d'un 'E' ou d'un 'I' **/
$strIn=str_replace('ce', 'se', $strIn);
$strIn=str_replace('ci', 'si', $strIn);
/** Remplacement divers **/
$strIn=str_replace('c', 'k', $strIn);
$strIn=str_replace('q', 'k', $strIn);
$strIn=str_replace('qu', 'k', $strIn);
$strIn=str_replace('ga', 'ka', $strIn);
$strIn=str_replace('go', 'ko', $strIn);
$strIn=str_replace('gu', 'ku', $strIn);
$strIn=str_replace('gy', 'ky', $strIn);
$strIn=str_replace('g2', 'k2', $strIn);
$strIn=str_replace('g1', 'k1', $strIn);
$strIn=str_replace('g3', 'k3', $strIn);
$strIn=str_replace('a', 'o', $strIn);
$strIn=str_replace('d', 't', $strIn);
$strIn=str_replace('p', 't', $strIn);
$strIn=str_replace('j', 'g', $strIn);
$strIn=str_replace('b', 'f', $strIn);
$strIn=str_replace('v', 'f', $strIn);
$strIn=str_replace('m', 'n', $strIn);
/** Supression des lettres dupliquées **/
$let=$strIn[0];
$strIn2=$let;
for ($i=1; $i<strlen($strIn); $i++)
{ if ($strIn==$let)
continue;
else {
$let=$strIn[$i];
$strIn2.=$strIn[$i];
}
}
$strIn=$strIn2;
/** Supression des terminaisons **/
$strIn2=substr($strIn,-1);
if ($strIn2=='t' || $strIn2=='k' || $strIn2=='s' || $strIn2=='z')
$strIn=substr($strIn,0,-1);
/** Supression des caractères non autorisés **/
$j=10;
$sout=array();
for ($i=0; $i<strlen($strIn); $i++)
{
if ($j<1) break;
for ($k=0; $k<22; $k++)
{
if ($strIn[$i]==$tabCarPhon[$k])
{
$sout[$j]=$k;
$j--;
}
}
}
print_r($tabCarPhon);
/** Couversion en flottant **/
$result=0.0;
for ($j=10; $j>0; $j--)
$result+=$sout[$j]*pow($j-1,10);
return $result;
}
/**
* CLASS soundex2
* soundex2 French version
* based on the algorithm described here : http://sqlpro.developpez.com/cours/soundex/ by Frédéric BROUARD
*
* author Johan Barbier <barbier_johan@hotmail.com>
*/
class csoundex2 {
/**
* public sString
* main string we work on
*/
var $sString = '';
/**
* vowels replacement array
*/
var $aReplaceVoy1 = array (
'E' => 'A',
'I' => 'A',
'O' => 'A',
'U' => 'A'
);
/**
* consonnants replacement array
*/
var $aReplaceGrp1 = array (
'GUI' => 'KI',
'GUE' => 'KE',
'GA' => 'KA',
'GO' => 'KO',
'GU' => 'K',
'CA' => 'KA',
'CO' => 'KO',
'CU' => 'KU',
'Q' => 'K',
'CC' => 'K',
'CK' => 'K'
);
/**
* other replacement array
*/
var $aReplaceGrp2 = array (
'ASA' => 'AZA',
'KN' => 'NN',
'PF' => 'FF',
'PH' => 'FF',
'SCH' => 'SSS'
);
/**
* endings replacement array
*/
var $aEnd = array (
'A',
'T',
'D',
'S'
);
/**
* public function build
* core function of the class, go through the whole process
* @Param string sString : the string we want to check
*/
function build ($sString) {
/**
* let's check it's a real string...
*/
if (is_string ($sString) && !empty ($sString)) {
$this -> sString = $sString;
} else {
trigger_error ('Parameter string must not be empty', E_USER_ERROR);
}
/**
* remove starting and ending spaces
*/
$this -> sString = trim ($this -> sString);
/**
* remove special french characters
*/
$this -> trimAccent ();
/**
* string to upper case
*/
$this -> sString = strtoupper ($this -> sString );
/**
* let's remove every space in the string
*/
$this -> sString = str_replace (' ', '', $this -> sString);
/**
* let's remove every '-' in the string
*/
$this -> sString = str_replace ('-', '', $this -> sString);
/**
* let's process through the first replacement array
*/
$this -> arrReplace ($this -> aReplaceGrp1);
/**
* let's process through th vowels replacement
*/
$sChar = substr ($this -> sString, 0, 1);
$this -> sString = substr ($this -> sString, 1, strlen ($this -> sString) - 1);
$this -> arrReplace ($this -> aReplaceVoy1);
$this -> sString = $sChar.$this -> sString;
/**
* let's process through the second replacement array
*/
$this -> arrReplace ($this -> aReplaceGrp2, true);
/**
* let's remove every 'H' but those prededed by a 'C' or an 'S'
*/
$this -> sString = preg_replace ('/(?<![CS])H/', '', $this -> sString);
/**
* let's remove every 'Y' but those preceded by an 'A'
*/
$this -> sString = preg_replace ('/(?<!A)Y/', '', $this -> sString);
/**
* remove endings in aEnd
*/
$length = strlen ($this -> sString) - 1;
if (in_array ($this -> sString{$length}, $this -> aEnd)) {
$this -> sString = substr ($this -> sString, 0, $length);
}
/**
* let's remove every 'A', but the one at the beginning of the string, if any.
*/
$sChar = '';
if ($this -> sString{0} === 'A') {
$sChar = 'A';
}
$this -> sString = str_replace ('A', '', $this -> sString);
$this -> sString = $sChar.$this -> sString;
/**
* let's have only 1 occurence of each letter
*/
$this -> sString = preg_replace( '/(.)\1/', '$1', $this -> sString );
/**
* let's have the final code : a 4 letters string
*/
$this -> getFinal ();
}
/**
* private function getFinal
* gets the first 4 letters, pads the string with white space if the string length < 4
*/
function getFinal () {
if (strlen ($this -> sString) < 4) {
$this -> sString = str_pad ($this -> sString, 4, ' ', STR_PAD_RIGHT);
} else {
$this -> sString = substr ($this -> sString, 0, 4);
}
}
/**
* private function trimAccent
* remove every special French letters
*/
function trimAccent () {
$this -> sString = htmlentities(strtolower($this -> sString ));
$this -> sString = preg_replace("/&(.)(acute|cedil|circ|ring|tilde|uml|grave);/", "$1", $this -> sString );
$this -> sString = preg_replace("/([^a-z0-9]+)/", "-", html_entity_decode($this -> sString ));
$this -> sString = trim($this -> sString , "-");
}
/**
* private function arrReplace
* replacement method, given an array
* @Param array tab : the replacement array to be used
* @Param bool pref : if false, just replace keys by values; if true, do the same but only with prefix
*/
function arrReplace (array $tab, $pref = false) {
$fromRep = array_keys ($tab);
$toRep = array_values ($tab);
if (false === $pref) {
$this -> sString = str_replace ($fromRep, $toRep, $this -> sString);
} else {
foreach ($fromRep as $clef => $val) {
$length = strlen ($val);
if (substr ($this -> sString, 0, $length) === $val) {
$this -> sString = substr_replace ($this -> sString, $toRep[$clef], 0, $length);
}
}
}
}
}
function soundex2($str) {
$soundex2 = new csoundex2();
$soundex2 -> build ($str);
return $soundex2 -> sString;
}
function htm2txt($str) {
return trim(strip_tags( str_replace(chr(160), ' ',
str_replace('&#156;', 'oe',
str_replace('&#146;', '\'', html_entity_decode($str, ENT_QUOTES))))));
}
?>

View File

@ -1,111 +0,0 @@
<?php
/*
XML Parser Class
by Eric Rosebrock
http://www.phpfreaks.com
Class originated from: kris@h3x.com AT: http://www.devdump.com/phpxml.php
Usage:
<?php
include 'clsParseXML.php';
$xmlparse = &new ParseXML;
$xml = $xmlparse->GetXMLTree('/path/to/xmlfile.xml');
echo "<pre>";
print_r($xml);
echo "</pre>";
?>
The path to the XML file may be a local file or a URL.
Returns the elements of the XML file into an array with
it's subelements as keys and subarrays.
*/
class ParseXML{
function GetChildren($vals, &$i) {
$children = array(); // Contains node data
if (isset($vals[$i]['value'])){
$children['VALUE'] = $vals[$i]['value'];
}
while (++$i < count($vals)){
switch ($vals[$i]['type']){
case 'cdata':
if (isset($children['VALUE'])){
$children['VALUE'] .= $vals[$i]['value'];
} else {
$children['VALUE'] = $vals[$i]['value'];
}
break;
case 'complete':
if (isset($vals[$i]['attributes'])) {
$children[$vals[$i]['tag']][]['ATTRIBUTES'] = $vals[$i]['attributes'];
$index = count($children[$vals[$i]['tag']])-1;
if (isset($vals[$i]['value'])){
$children[$vals[$i]['tag']][$index]['VALUE'] = $vals[$i]['value'];
} else {
$children[$vals[$i]['tag']][$index]['VALUE'] = '';
}
} else {
if (isset($vals[$i]['value'])){
$children[$vals[$i]['tag']][]['VALUE'] = $vals[$i]['value'];
} else {
$children[$vals[$i]['tag']][]['VALUE'] = '';
}
}
break;
case 'open':
if (isset($vals[$i]['attributes'])) {
$children[$vals[$i]['tag']][]['ATTRIBUTES'] = $vals[$i]['attributes'];
$index = count($children[$vals[$i]['tag']])-1;
$children[$vals[$i]['tag']][$index] = array_merge($children[$vals[$i]['tag']][$index],$this->GetChildren($vals, $i));
} else {
$children[$vals[$i]['tag']][] = $this->GetChildren($vals, $i);
}
break;
case 'close':
return $children;
}
}
}
function GetXMLTree($xmlloc){
if (file_exists($xmlloc)){
$data = implode('', file($xmlloc));
} else {
$fp = fopen($xmlloc,'r');
while(!feof($fp)){
$data = $data . fread($fp, 1024);
}
fclose($fp);
}
$parser = xml_parser_create('ISO-8859-1');
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($parser, $data, $vals, $index);
xml_parser_free($parser);
$tree = array();
$i = 0;
if (isset($vals[$i]['attributes'])) {
$tree[$vals[$i]['tag']][]['ATTRIBUTES'] = $vals[$i]['attributes'];
$index = count($tree[$vals[$i]['tag']])-1;
$tree[$vals[$i]['tag']][$index] = array_merge($tree[$vals[$i]['tag']][$index], $this->GetChildren($vals, $i));
} else {
$tree[$vals[$i]['tag']][] = $this->GetChildren($vals, $i);
}
return $tree;
}
}

View File

@ -1,283 +0,0 @@
<?
define('FWK_PATH', realpath(dirname(__FILE__)).'/');
include_once(FWK_PATH.'common/mysql.php');
include_once(FWK_PATH.'common/strings.php');
//include_once(FWK_PATH.'common/dates.php');
define ('REP_TEMP', '/tmp/');
// Environnement : DEV ou PRD
define ('ENV', 'DEV');
define ('EOL', "\n");
define ('MODE_CLI', 1);
define ('MODE_WWW', 2);
define ('MODE_WS', 3);
if (@$_SERVER['argc']>0) define('MODE_EXEC', MODE_CLI);
else define('MODE_EXEC', MODE_WS);
/** @todo Gérer la distinction du mode WWW du WS
else define('MODE_EXEC', MODE_WWW);
*/
/** TimeStamp Unix
** Si $onlyMiliSec=true, retourne juste les milisec du timestamp
**/
function microtime_float($onlyMiliSec=false) {
list($usec, $sec) = explode(' ', microtime());
if (!$onlyMiliSec)
return ((float)$usec + (float)$sec);
else
return $usec;
}
/** Fait une pause aléatoire entre 0 et 15 secondes par défaut
**/
function randsleep($min_sec=0, $max_sec=15) {
sleep(rand($min_sec, $max_sec));
}
/** Retourne la factorielle d'un nombre : 4! = 1*2*3*4 = 24
**/
function factorielle($nbr) {
if($nbr === 0) // condition d'arret
return 1;
else
return $nbr*factorielle($nbr-1);
}
/** Vérification que la variable demandé respecte bien les règles passées en paramètres
* @param mixed Variable à tester
* @param int Longueur minimum en caractère de la variable
* @param int Longueur mximum
* @param char(1) Type de variable <b>A</b>:Alphanumérique / <b>N</b>:Numérique
* @param mixed Message textuel d'erreur à afficher en cas d'erreur ou false
* @return mixed true, false ou Message d'erreur passé en paramètre
*/
function valideData($variable, $taille_min, $taille_max, $type_variable, $erreur=false){
if ( strlen((string)$variable) < $taille_min )
return $erreur;
if ( strlen((string)$variable) > $taille_max )
return $erreur;
if ( $type_variable == 'A' )
if ( is_string($variable) == true )
return true;
else
return $erreur;
elseif ( $type_variable == 'N')
{
for ($i=0; $i < strlen((string)$variable); $i++)
{
$car = substr((string)$variable,$i,1);
if ($car<'0' || $car>'9')
return $erreur;
}
return true;
}
return $erreur;
}
function adapteOCtets($size) {
$kb = 1024; // Kilobyte
$mb = 1024 * $kb; // Megabyte
$gb = 1024 * $mb; // Gigabyte
$tb = 1024 * $gb; // Terabyte
if($size==0) return '0';
else if($size < $kb) return $size.'o';
else if($size < $mb) return round($size/$kb,2).'ko';
else if($size < $gb) return round($size/$mb,2).'Mo';
else if($size < $tb) return round($size/$gb,2).'Go';
else return round($size/$tb,2).'To';
}
/**
** Enregistrer une information dans la log
**
** @param string $debugLevel E=Error, W=Warning, N=Notice, I=Info, D=Debug
** @param string $message Message d'erreur à inscrire dans la log
** @param integer $line __LINE__
** @param string $file __FILE__
** @param string $function __FUNCTION__
** @param string $class __CLASS___
**/
function debugLog($debugLevel, $message, $line, $file, $function, $class) {
if (!file_exists(LOG_PATH.'/debug.log')) {
$fp=fopen(LOG_PATH.'/debug.log', 'a');
fwrite($fp, 'Date/Heure;Niveau;Script;Login;Password;Adresse IP;Action SOAP;Ligne;Fichier;Fonction;Classe;Domaine;POST DATA;Memory;Message'.EOL);
} else
$fp=fopen(LOG_PATH.'/debug.log', 'a');
fwrite($fp, date('Y/m/d-H:i:s') .';'. $debugLevel .';'. $_SERVER['PHP_SELF'] .';'. $_SERVER['PHP_AUTH_USER'] .';'. $_SERVER['PHP_AUTH_PW'] .';'.
$_SERVER['REMOTE_ADDR'] .';'. $_SERVER['HTTP_SOAPACTION'] .';'.$line.';'. $file.';'. $function.';'. $class .';'.
@gethostbyaddr($_SERVER['REMOTE_ADDR']) .';'. $HTTP_RAW_POST_DATA .';'. @memory_get_usage().';'. $message . EOL);
fclose($fp);
if ($debugLevel=='E'){
if (!file_exists(LOG_PATH.'/debugError.log')) {
$fp=fopen(LOG_PATH.'/debugError.log', 'a');
fwrite($fp, 'Date/Heure;Niveau;Script;Login;Password;Adresse IP;Action SOAP;Ligne;Fichier;Fonction;Classe;Domaine;POST DATA;Message'.EOL);
} else
$fp=fopen(LOG_PATH.'/debugError.log', 'a');
fwrite($fp, date('Y/m/d-H:i:s') .';'. $debugLevel .';'. $_SERVER['PHP_SELF'] .';'. $_SERVER['PHP_AUTH_USER'] .';'. $_SERVER['PHP_AUTH_PW'] .';'.
$_SERVER['REMOTE_ADDR'] .';'. $_SERVER['HTTP_SOAPACTION'] .';'.$line.';'. $file.';'. $function.';'. $class .';'.
@gethostbyaddr($_SERVER['REMOTE_ADDR']) .';'. $HTTP_RAW_POST_DATA .';'. @memory_get_usage().';'. $message . EOL);
fclose($fp);
//die($message);
}
}
function prepareString($str) {
$tabReplace=array();
for($c=0;$c<32; $c++)
$tabReplace[''.chr($c)]='';
for($c=127;$c<256; $c++)
$tabReplace[''.chr($c)]='';
return strtr(
strtr(htmlentities(utf8_decode(strtr(strtr($str, 'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝŸ…‘‹',
"aaaaaaaceeeeiiiionooooouuuuyyAAAAAAACEEEEIIIIONOOOOOUUUUYY.''"), array('œ'=>'oe'))), ENT_QUOTES, 'ISO-8859-1'),array('€'=>'&euro;',''=>'"')),
$tabReplace);
//return */
//return utf8_encode($str);
}
/**
** Déplacement d'un fichier. Retourne false en cas d'erreur.
**
** @param string $from
** @param string $to
** @return bool
**/
function move($from, $to) {
return (copy($from, $to) and unlink($from));
}
/** Converti une IP en nombre
**
** @param string $ip Adresse IP
** @return integer
**/
function getIpNumber($ip) {
$tab=explode('.', $ip);
return (($tab[0]*256*256*256) + ($tab[1]*256*256) + ($tab[2]*256) + ($tab[3]));
}
/** Vérifie si une IP est dans une plage du type 192.168.3.1-192.168.3.10
**
** @param string $plage_1 Plage IP de début
** @param string $plage_2 Plage IP de fin
** @param string $ip Adresse IP à tester
** @return boolean
**/
function in_plage($plage_1,$plage_2,$ip){
$ip2=getIpNumber($ip);
if ($ip2>=getIpNumber($plage_1) && $ip2<=getIpNumber($plage_2))
return true;
else
return false;
}
/** Controle si une adresse IP est dans une liste des IP communiquées sous la forme 192.168.3.5-192.68.3.10;192.168.3.*;192.168.3.10
**
** @param string $strPlageIP La plage d'adresses IP
** @param string $adresseIP L'adresse IP à tester
** @return boolean
**/
function checkPlagesIp($strPlageIP, $adresseIP) {
$connected=false;
$tabIpAllowed=explode(';', trim($strPlageIP));
if (count($tabIpAllowed)==1 && $tabIpAllowed[0]=='')
$tabIpAllowed=array();
foreach ($tabIpAllowed as $ip) {
$tabPlages=explode('-', $ip);
// C'est une plage d'adresse '-'
if (isset($tabPlages[1]))
$connected=in_plage($tabPlages[0],$tabPlages[1],$adresseIP);
else {
// C'est une adresse avec ou sans masque '*'
if (preg_match('/^'.str_replace('*','.*',str_replace('.','\.',$ip)).'$/', $adresseIP) )
$connected=true;
}
if ($connected) break;
}
if (count($tabIpAllowed)==0) return false;
elseif (!$connected) {
return false;
}
return true;
}
/**
* @return bool
* @param string $in
* @param string $out
* @desc compressing the file with the bzip2-extension
*/
function bzip2 ($in, $out)
{
if (!file_exists ($in) || !is_readable ($in))
return false;
if ((!file_exists ($out) && !is_writeable (dirname ($out)) || (file_exists($out) && !is_writable($out)) ))
return false;
$in_file = fopen ($in, 'rb');
$out_file = bzopen ($out.'.bz2', 'wb');
while (!feof ($in_file)) {
$buffer = fgets ($in_file, 4096);
bzwrite ($out_file, $buffer, 4096);
}
fclose ($in_file);
bzclose ($out_file);
return true;
}
/**
* @return bool
* @param string $in
* @param string $out
* @desc uncompressing the file with the bzip2-extension
*/
function bunzip2 ($in, $out)
{
if (!file_exists ($in) || !is_readable ($in))
return false;
if ((!file_exists ($out) && !is_writeable (dirname ($out)) || (file_exists($out) && !is_writable($out)) ))
return false;
$in_file = bzopen ($in, "rb");
$out_file = fopen ($out, "wb");
while ($buffer = bzread ($in_file, 4096)) {
fwrite ($out_file, $buffer, 4096);
}
bzclose ($in_file);
fclose ($out_file);
return true;
}
class DomDocument2 extends DOMDocument {
function getValueFromTag($tagName) {
$items=$this->getElementsByTagName($tagName);
foreach ($items as $item) {
return utf8_decode($item->nodeValue);
}
}
}
?>

View File

@ -1,878 +0,0 @@
<?php
/**
) o------------------------------------------------------------------------------o
* | This is HTMLMimeMail5. It is dual licensed as GPL and a commercial license. |
* | If you use the code commercially (or if you don't want to be restricted by |
* | the GPL license), you will need the commercial license. It's only £49 (GBP - |
* | roughly $98 depending on the exchange rate) and helps me out a lot. Thanks. |
* o------------------------------------------------------------------------------o
*
* © Copyright 2005 Richard Heyes
*/
/**
* RFC 822 Email address list validation Utility
*
* What is it?
*
* This class will take an address string, and parse it into it's consituent
* parts, be that either addresses, groups, or combinations. Nested groups
* are not supported. The structure it returns is pretty straight forward,
* and is similar to that provided by the imap_rfc822_parse_adrlist(). Use
* print_r() to view the structure.
*
* How do I use it?
*
* $address_string = 'My Group: "Richard Heyes" <richard@localhost> (A comment), ted@example.com (Ted Bloggs), Barney;';
* $structure = Mail_RFC822::parseAddressList($address_string, 'example.com', TRUE)
* print_r($structure);
*/
class Mail_RFC822
{
/**
* The address being parsed by the RFC822 object.
* @private string $address
*/
private $address = '';
/**
* The default domain to use for unqualified addresses.
* @private string $default_domain
*/
private $default_domain = 'localhost';
/**
* Should we return a nested array showing groups, or flatten everything?
* @private boolean $nestGroups
*/
private $nestGroups = true;
/**
* Whether or not to validate atoms for non-ascii characters.
* @private boolean $validate
*/
private $validate = true;
/**
* The array of raw addresses built up as we parse.
* @private array $addresses
*/
private $addresses = array();
/**
* The final array of parsed address information that we build up.
* @private array $structure
*/
private $structure = array();
/**
* The current error message, if any.
* @private string $error
*/
private $error = null;
/**
* An internal counter/pointer.
* @private integer $index
*/
private $index = null;
/**
* The number of groups that have been found in the address list.
* @private integer $num_groups
* @access public
*/
private $num_groups = 0;
/**
* A variable so that we can tell whether or not we're inside a
* Mail_RFC822 object.
* @private boolean $mailRFC822
*/
private $mailRFC822 = true;
/**
* A limit after which processing stops
* @private int $limit
*/
private $limit = null;
/**
* Sets up the object. The address must either be set here or when
* calling parseAddressList(). One or the other.
*
* @access public
* @param string $address The address(es) to validate.
* @param string $default_domain Default domain/host etc. If not supplied, will be set to localhost.
* @param boolean $nest_groups Whether to return the structure with groups nested for easier viewing.
* @param boolean $validate Whether to validate atoms. Turn this off if you need to run addresses through before encoding the personal names, for instance.
*
* @return object Mail_RFC822 A new Mail_RFC822 object.
*/
function __construct($address = null, $default_domain = null, $nest_groups = null, $validate = null, $limit = null)
{
if (isset($address)) $this->address = $address;
if (isset($default_domain)) $this->default_domain = $default_domain;
if (isset($nest_groups)) $this->nestGroups = $nest_groups;
if (isset($validate)) $this->validate = $validate;
if (isset($limit)) $this->limit = $limit;
}
/**
* Starts the whole process. The address must either be set here
* or when creating the object. One or the other.
*
* @access public
* @param string $address The address(es) to validate.
* @param string $default_domain Default domain/host etc.
* @param boolean $nest_groups Whether to return the structure with groups nested for easier viewing.
* @param boolean $validate Whether to validate atoms. Turn this off if you need to run addresses through before encoding the personal names, for instance.
*
* @return array A structured array of addresses.
*/
function parseAddressList($address = null, $default_domain = null, $nest_groups = null, $validate = null, $limit = null)
{
if (!isset($this->mailRFC822)) {
$obj = new Mail_RFC822($address, $default_domain, $nest_groups, $validate, $limit);
return $obj->parseAddressList();
}
if (isset($address)) $this->address = $address;
if (isset($default_domain)) $this->default_domain = $default_domain;
if (isset($nest_groups)) $this->nestGroups = $nest_groups;
if (isset($validate)) $this->validate = $validate;
if (isset($limit)) $this->limit = $limit;
$this->structure = array();
$this->addresses = array();
$this->error = null;
$this->index = null;
while ($this->address = $this->_splitAddresses($this->address)) {
continue;
}
if ($this->address === false || isset($this->error)) {
return false;
}
// Reset timer since large amounts of addresses can take a long time to
// get here
set_time_limit(30);
// Loop through all the addresses
for ($i = 0; $i < count($this->addresses); $i++){
if (($return = $this->_validateAddress($this->addresses[$i])) === false
|| isset($this->error)) {
return false;
}
if (!$this->nestGroups) {
$this->structure = array_merge($this->structure, $return);
} else {
$this->structure[] = $return;
}
}
return $this->structure;
}
/**
* Splits an address into seperate addresses.
*
* @access private
* @param string $address The addresses to split.
* @return boolean Success or failure.
*/
function _splitAddresses($address)
{
if (!empty($this->limit) AND count($this->addresses) == $this->limit) {
return '';
}
if ($this->_isGroup($address) && !isset($this->error)) {
$split_char = ';';
$is_group = true;
} elseif (!isset($this->error)) {
$split_char = ',';
$is_group = false;
} elseif (isset($this->error)) {
return false;
}
// Split the string based on the above ten or so lines.
$parts = explode($split_char, $address);
$string = $this->_splitCheck($parts, $split_char);
// If a group...
if ($is_group) {
// If $string does not contain a colon outside of
// brackets/quotes etc then something's fubar.
// First check there's a colon at all:
if (strpos($string, ':') === false) {
$this->error = 'Invalid address: ' . $string;
return false;
}
// Now check it's outside of brackets/quotes:
if (!$this->_splitCheck(explode(':', $string), ':'))
return false;
// We must have a group at this point, so increase the counter:
$this->num_groups++;
}
// $string now contains the first full address/group.
// Add to the addresses array.
$this->addresses[] = array(
'address' => trim($string),
'group' => $is_group
);
// Remove the now stored address from the initial line, the +1
// is to account for the explode character.
$address = trim(substr($address, strlen($string) + 1));
// If the next char is a comma and this was a group, then
// there are more addresses, otherwise, if there are any more
// chars, then there is another address.
if ($is_group && substr($address, 0, 1) == ','){
$address = trim(substr($address, 1));
return $address;
} elseif (strlen($address) > 0) {
return $address;
} else {
return '';
}
// If you got here then something's off
return false;
}
/**
* Checks for a group at the start of the string.
*
* @access private
* @param string $address The address to check.
* @return boolean Whether or not there is a group at the start of the string.
*/
function _isGroup($address)
{
// First comma not in quotes, angles or escaped:
$parts = explode(',', $address);
$string = $this->_splitCheck($parts, ',');
// Now we have the first address, we can reliably check for a
// group by searching for a colon that's not escaped or in
// quotes or angle brackets.
if (count($parts = explode(':', $string)) > 1) {
$string2 = $this->_splitCheck($parts, ':');
return ($string2 !== $string);
} else {
return false;
}
}
/**
* A common function that will check an exploded string.
*
* @access private
* @param array $parts The exloded string.
* @param string $char The char that was exploded on.
* @return mixed False if the string contains unclosed quotes/brackets, or the string on success.
*/
function _splitCheck($parts, $char)
{
$string = $parts[0];
for ($i = 0; $i < count($parts); $i++) {
if ($this->_hasUnclosedQuotes($string)
|| $this->_hasUnclosedBrackets($string, '<>')
|| $this->_hasUnclosedBrackets($string, '[]')
|| $this->_hasUnclosedBrackets($string, '()')
|| substr($string, -1) == '\\') {
if (isset($parts[$i + 1])) {
$string = $string . $char . $parts[$i + 1];
} else {
$this->error = 'Invalid address spec. Unclosed bracket or quotes';
return false;
}
} else {
$this->index = $i;
break;
}
}
return $string;
}
/**
* Checks if a string has an unclosed quotes or not.
*
* @access private
* @param string $string The string to check.
* @return boolean True if there are unclosed quotes inside the string, false otherwise.
*/
function _hasUnclosedQuotes($string)
{
$string = explode('"', $string);
$string_cnt = count($string);
for ($i = 0; $i < (count($string) - 1); $i++)
if (substr($string[$i], -1) == '\\')
$string_cnt--;
return ($string_cnt % 2 === 0);
}
/**
* Checks if a string has an unclosed brackets or not. IMPORTANT:
* This function handles both angle brackets and square brackets;
*
* @access private
* @param string $string The string to check.
* @param string $chars The characters to check for.
* @return boolean True if there are unclosed brackets inside the string, false otherwise.
*/
function _hasUnclosedBrackets($string, $chars)
{
$num_angle_start = substr_count($string, $chars[0]);
$num_angle_end = substr_count($string, $chars[1]);
$this->_hasUnclosedBracketsSub($string, $num_angle_start, $chars[0]);
$this->_hasUnclosedBracketsSub($string, $num_angle_end, $chars[1]);
if ($num_angle_start < $num_angle_end) {
$this->error = 'Invalid address spec. Unmatched quote or bracket (' . $chars . ')';
return false;
} else {
return ($num_angle_start > $num_angle_end);
}
}
/**
* Sub function that is used only by hasUnclosedBrackets().
*
* @access private
* @param string $string The string to check.
* @param integer &$num The number of occurences.
* @param string $char The character to count.
* @return integer The number of occurences of $char in $string, adjusted for backslashes.
*/
function _hasUnclosedBracketsSub($string, &$num, $char)
{
$parts = explode($char, $string);
for ($i = 0; $i < count($parts); $i++){
if (substr($parts[$i], -1) == '\\' || $this->_hasUnclosedQuotes($parts[$i]))
$num--;
if (isset($parts[$i + 1]))
$parts[$i + 1] = $parts[$i] . $char . $parts[$i + 1];
}
return $num;
}
/**
* Function to begin checking the address.
*
* @access private
* @param string $address The address to validate.
* @return mixed False on failure, or a structured array of address information on success.
*/
function _validateAddress($address)
{
$is_group = false;
if ($address['group']) {
$is_group = true;
// Get the group part of the name
$parts = explode(':', $address['address']);
$groupname = $this->_splitCheck($parts, ':');
$structure = array();
// And validate the group part of the name.
if (!$this->_validatePhrase($groupname)){
$this->error = 'Group name did not validate.';
return false;
} else {
// Don't include groups if we are not nesting
// them. This avoids returning invalid addresses.
if ($this->nestGroups) {
$structure = new stdClass;
$structure->groupname = $groupname;
}
}
$address['address'] = ltrim(substr($address['address'], strlen($groupname . ':')));
}
// If a group then split on comma and put into an array.
// Otherwise, Just put the whole address in an array.
if ($is_group) {
while (strlen($address['address']) > 0) {
$parts = explode(',', $address['address']);
$addresses[] = $this->_splitCheck($parts, ',');
$address['address'] = trim(substr($address['address'], strlen(end($addresses) . ',')));
}
} else {
$addresses[] = $address['address'];
}
// Check that $addresses is set, if address like this:
// Groupname:;
// Then errors were appearing.
if (!isset($addresses)){
$this->error = 'Empty group.';
return false;
}
for ($i = 0; $i < count($addresses); $i++) {
$addresses[$i] = trim($addresses[$i]);
}
// Validate each mailbox.
// Format could be one of: name <geezer@domain.com>
// geezer@domain.com
// geezer
// ... or any other format valid by RFC 822.
array_walk($addresses, array($this, 'validateMailbox'));
// Nested format
if ($this->nestGroups) {
if ($is_group) {
$structure->addresses = $addresses;
} else {
$structure = $addresses[0];
}
// Flat format
} else {
if ($is_group) {
$structure = array_merge($structure, $addresses);
} else {
$structure = $addresses;
}
}
return $structure;
}
/**
* Function to validate a phrase.
*
* @access private
* @param string $phrase The phrase to check.
* @return boolean Success or failure.
*/
function _validatePhrase($phrase)
{
// Splits on one or more Tab or space.
$parts = preg_split('/[ \\x09]+/', $phrase, -1, PREG_SPLIT_NO_EMPTY);
$phrase_parts = array();
while (count($parts) > 0){
$phrase_parts[] = $this->_splitCheck($parts, ' ');
for ($i = 0; $i < $this->index + 1; $i++)
array_shift($parts);
}
for ($i = 0; $i < count($phrase_parts); $i++) {
// If quoted string:
if (substr($phrase_parts[$i], 0, 1) == '"') {
if (!$this->_validateQuotedString($phrase_parts[$i]))
return false;
continue;
}
// Otherwise it's an atom:
if (!$this->_validateAtom($phrase_parts[$i])) return false;
}
return true;
}
/**
* Function to validate an atom which from rfc822 is:
* atom = 1*<any CHAR except specials, SPACE and CTLs>
*
* If validation ($this->validate) has been turned off, then
* validateAtom() doesn't actually check anything. This is so that you
* can split a list of addresses up before encoding personal names
* (umlauts, etc.), for example.
*
* @access private
* @param string $atom The string to check.
* @return boolean Success or failure.
*/
function _validateAtom($atom)
{
if (!$this->validate) {
// Validation has been turned off; assume the atom is okay.
return true;
}
// Check for any char from ASCII 0 - ASCII 127
if (!preg_match('/^[\\x00-\\x7E]+$/i', $atom, $matches)) {
return false;
}
// Check for specials:
if (preg_match('/[][()<>@,;\\:". ]/', $atom)) {
return false;
}
// Check for control characters (ASCII 0-31):
if (preg_match('/[\\x00-\\x1F]+/', $atom)) {
return false;
}
return true;
}
/**
* Function to validate quoted string, which is:
* quoted-string = <"> *(qtext/quoted-pair) <">
*
* @access private
* @param string $qstring The string to check
* @return boolean Success or failure.
*/
function _validateQuotedString($qstring)
{
// Leading and trailing "
$qstring = substr($qstring, 1, -1);
// Perform check.
return !(preg_match('/(.)[\x0D\\\\"]/', $qstring, $matches) && $matches[1] != '\\');
}
/**
* Function to validate a mailbox, which is:
* mailbox = addr-spec ; simple address
* / phrase route-addr ; name and route-addr
*
* @access public
* @param string &$mailbox The string to check.
* @return boolean Success or failure.
*/
function validateMailbox(&$mailbox)
{
// A couple of defaults.
$phrase = '';
$comment = '';
// Catch any RFC822 comments and store them separately
$_mailbox = $mailbox;
while (strlen(trim($_mailbox)) > 0) {
$parts = explode('(', $_mailbox);
$before_comment = $this->_splitCheck($parts, '(');
if ($before_comment != $_mailbox) {
// First char should be a (
$comment = substr(str_replace($before_comment, '', $_mailbox), 1);
$parts = explode(')', $comment);
$comment = $this->_splitCheck($parts, ')');
$comments[] = $comment;
// +1 is for the trailing )
$_mailbox = substr($_mailbox, strpos($_mailbox, $comment)+strlen($comment)+1);
} else {
break;
}
}
for($i=0; $i<count(@$comments); $i++){
$mailbox = str_replace('('.$comments[$i].')', '', $mailbox);
}
$mailbox = trim($mailbox);
// Check for name + route-addr
if (substr($mailbox, -1) == '>' && substr($mailbox, 0, 1) != '<') {
$parts = explode('<', $mailbox);
$name = $this->_splitCheck($parts, '<');
$phrase = trim($name);
$route_addr = trim(substr($mailbox, strlen($name.'<'), -1));
if ($this->_validatePhrase($phrase) === false || ($route_addr = $this->_validateRouteAddr($route_addr)) === false)
return false;
// Only got addr-spec
} else {
// First snip angle brackets if present.
if (substr($mailbox,0,1) == '<' && substr($mailbox,-1) == '>')
$addr_spec = substr($mailbox,1,-1);
else
$addr_spec = $mailbox;
if (($addr_spec = $this->_validateAddrSpec($addr_spec)) === false)
return false;
}
// Construct the object that will be returned.
$mbox = new stdClass();
// Add the phrase (even if empty) and comments
$mbox->personal = $phrase;
$mbox->comment = isset($comments) ? $comments : array();
if (isset($route_addr)) {
$mbox->mailbox = $route_addr['local_part'];
$mbox->host = $route_addr['domain'];
$route_addr['adl'] !== '' ? $mbox->adl = $route_addr['adl'] : '';
} else {
$mbox->mailbox = $addr_spec['local_part'];
$mbox->host = $addr_spec['domain'];
}
$mailbox = $mbox;
return true;
}
/**
* This function validates a route-addr which is:
* route-addr = "<" [route] addr-spec ">"
*
* Angle brackets have already been removed at the point of
* getting to this function.
*
* @access private
* @param string $route_addr The string to check.
* @return mixed False on failure, or an array containing validated address/route information on success.
*/
function _validateRouteAddr($route_addr)
{
// Check for colon.
if (strpos($route_addr, ':') !== false) {
$parts = explode(':', $route_addr);
$route = $this->_splitCheck($parts, ':');
} else {
$route = $route_addr;
}
// If $route is same as $route_addr then the colon was in
// quotes or brackets or, of course, non existent.
if ($route === $route_addr){
unset($route);
$addr_spec = $route_addr;
if (($addr_spec = $this->_validateAddrSpec($addr_spec)) === false) {
return false;
}
} else {
// Validate route part.
if (($route = $this->_validateRoute($route)) === false) {
return false;
}
$addr_spec = substr($route_addr, strlen($route . ':'));
// Validate addr-spec part.
if (($addr_spec = $this->_validateAddrSpec($addr_spec)) === false) {
return false;
}
}
if (isset($route)) {
$return['adl'] = $route;
} else {
$return['adl'] = '';
}
$return = array_merge($return, $addr_spec);
return $return;
}
/**
* Function to validate a route, which is:
* route = 1#("@" domain) ":"
*
* @access private
* @param string $route The string to check.
* @return mixed False on failure, or the validated $route on success.
*/
function _validateRoute($route)
{
// Split on comma.
$domains = explode(',', trim($route));
for ($i = 0; $i < count($domains); $i++) {
$domains[$i] = str_replace('@', '', trim($domains[$i]));
if (!$this->_validateDomain($domains[$i])) return false;
}
return $route;
}
/**
* Function to validate a domain, though this is not quite what
* you expect of a strict internet domain.
*
* domain = sub-domain *("." sub-domain)
*
* @access private
* @param string $domain The string to check.
* @return mixed False on failure, or the validated domain on success.
*/
function _validateDomain($domain)
{
// Note the different use of $subdomains and $sub_domains
$subdomains = explode('.', $domain);
while (count($subdomains) > 0) {
$sub_domains[] = $this->_splitCheck($subdomains, '.');
for ($i = 0; $i < $this->index + 1; $i++)
array_shift($subdomains);
}
for ($i = 0; $i < count($sub_domains); $i++) {
if (!$this->_validateSubdomain(trim($sub_domains[$i])))
return false;
}
// Managed to get here, so return input.
return $domain;
}
/**
* Function to validate a subdomain:
* subdomain = domain-ref / domain-literal
*
* @access private
* @param string $subdomain The string to check.
* @return boolean Success or failure.
*/
function _validateSubdomain($subdomain)
{
if (preg_match('|^\[(.*)]$|', $subdomain, $arr)){
if (!$this->_validateDliteral($arr[1])) return false;
} else {
if (!$this->_validateAtom($subdomain)) return false;
}
// Got here, so return successful.
return true;
}
/**
* Function to validate a domain literal:
* domain-literal = "[" *(dtext / quoted-pair) "]"
*
* @access private
* @param string $dliteral The string to check.
* @return boolean Success or failure.
*/
function _validateDliteral($dliteral)
{
return !preg_match('/(.)[][\x0D\\\\]/', $dliteral, $matches) && $matches[1] != '\\';
}
/**
* Function to validate an addr-spec.
*
* addr-spec = local-part "@" domain
*
* @access private
* @param string $addr_spec The string to check.
* @return mixed False on failure, or the validated addr-spec on success.
*/
function _validateAddrSpec($addr_spec)
{
$addr_spec = trim($addr_spec);
// Split on @ sign if there is one.
if (strpos($addr_spec, '@') !== false) {
$parts = explode('@', $addr_spec);
$local_part = $this->_splitCheck($parts, '@');
$domain = substr($addr_spec, strlen($local_part . '@'));
// No @ sign so assume the default domain.
} else {
$local_part = $addr_spec;
$domain = $this->default_domain;
}
if (($local_part = $this->_validateLocalPart($local_part)) === false) return false;
if (($domain = $this->_validateDomain($domain)) === false) return false;
// Got here so return successful.
return array('local_part' => $local_part, 'domain' => $domain);
}
/**
* Function to validate the local part of an address:
* local-part = word *("." word)
*
* @access private
* @param string $local_part
* @return mixed False on failure, or the validated local part on success.
*/
function _validateLocalPart($local_part)
{
$parts = explode('.', $local_part);
// Split the local_part into words.
while (count($parts) > 0){
$words[] = $this->_splitCheck($parts, '.');
for ($i = 0; $i < $this->index + 1; $i++) {
array_shift($parts);
}
}
// Validate each word.
for ($i = 0; $i < count($words); $i++) {
if ($this->_validatePhrase(trim($words[$i])) === false) return false;
}
// Managed to get here, so return the input.
return $local_part;
}
/**
* Returns an approximate count of how many addresses are
* in the given string. This is APPROXIMATE as it only splits
* based on a comma which has no preceding backslash. Could be
* useful as large amounts of addresses will end up producing
* *large* structures when used with parseAddressList().
*
* @param string $data Addresses to count
* @return int Approximate count
*/
function approximateCount($data)
{
return count(preg_split('/(?<!\\\\),/', $data));
}
/**
* This is a email validating function seperate to the rest
* of the class. It simply validates whether an email is of
* the common internet form: <user>@<domain>. This can be
* sufficient for most people. Optional stricter mode can
* be utilised which restricts mailbox characters allowed
* to alphanumeric, full stop, hyphen and underscore.
*
* @param string $data Address to check
* @param boolean $strict Optional stricter mode
* @return mixed False if it fails, an indexed array
* username/domain if it matches
*/
function isValidInetAddress($data, $strict = false)
{
$regex = $strict ? '/^([.0-9a-z_-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,4})$/i' : '/^([*+!.&#$|\'\\%\/0-9a-z^_`{}=?~:-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,4})$/i';
if (preg_match($regex, trim($data), $matches)) {
return array($matches[1], $matches[2]);
} else {
return false;
}
}
}
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,311 +0,0 @@
<?php
/**
* o------------------------------------------------------------------------------o
* | This is HTMLMimeMail5. It is dual licensed as GPL and a commercial license. |
* | If you use the code commercially (or if you don't want to be restricted by |
* | the GPL license), you will need the commercial license. It's only £49 (GBP - |
* | roughly $98 depending on the exchange rate) and helps me out a lot. Thanks. |
* o------------------------------------------------------------------------------o
*
* © Copyright Richard Heyes
*/
/**
*
* Raw mime encoding class
*
* What is it?
* This class enables you to manipulate and build
* a mime email from the ground up.
*
* Why use this instead of mime.php?
* mime.php is a userfriendly api to this class for
* people who aren't interested in the internals of
* mime mail. This class however allows full control
* over the email.
*
* Eg.
*
* // Since multipart/mixed has no real body, (the body is
* // the subpart), we set the body argument to blank.
*
* $params['content_type'] = 'multipart/mixed';
* $email = new Mail_mimePart('', $params);
*
* // Here we add a text part to the multipart we have
* // already. Assume $body contains plain text.
*
* $params['content_type'] = 'text/plain';
* $params['encoding'] = '7bit';
* $text = $email->addSubPart($body, $params);
*
* // Now add an attachment. Assume $attach is
* the contents of the attachment
*
* $params['content_type'] = 'application/zip';
* $params['encoding'] = 'base64';
* $params['disposition'] = 'attachment';
* $params['dfilename'] = 'example.zip';
* $attach =& $email->addSubPart($body, $params);
*
* // Now build the email. Note that the encode
* // function returns an associative array containing two
* // elements, body and headers. You will need to add extra
* // headers, (eg. Mime-Version) before sending.
*
* $email = $message->encode();
* $email['headers'][] = 'Mime-Version: 1.0';
*
*
* Further examples are available at http://www.phpguru.org
*
* TODO:
* - Set encode() to return the $obj->encoded if encode()
* has already been run. Unless a flag is passed to specifically
* re-build the message.
*
* @author Richard Heyes <richard@phpguru.org>
* @version $Revision: 1.3 $
* @package Mail
*/
class Mail_MIMEPart
{
/**
* The encoding type of this part
* @var string
*/
private $encoding;
/**
* An array of subparts
* @var array
*/
private $subparts;
/**
* The output of this part after being built
* @var string
*/
private $encoded;
/**
* Headers for this part
* @var array
*/
private $headers;
/**
* The body of this part (not encoded)
* @var string
*/
private $body;
/**
* Constructor.
*
* Sets up the object.
*
* @param $body - The body of the mime part if any.
* @param $params - An associative array of parameters:
* content_type - The content type for this part eg multipart/mixed
* encoding - The encoding to use, 7bit, 8bit, base64, or quoted-printable
* cid - Content ID to apply
* disposition - Content disposition, inline or attachment
* dfilename - Optional filename parameter for content disposition
* description - Content description
* charset - Character set to use
* @access public
*/
public function __construct($body = '', $params = array())
{
if (!defined('MAIL_MIMEPART_CRLF')) {
define('MAIL_MIMEPART_CRLF', defined('MAIL_MIME_CRLF') ? MAIL_MIME_CRLF : "\r\n", true);
}
foreach ($params as $key => $value) {
switch ($key) {
case 'content_type':
$headers['Content-Type'] = $value . (isset($charset) ? '; charset="' . $charset . '"' : '');
break;
case 'encoding':
$this->encoding = $value;
$headers['Content-Transfer-Encoding'] = $value;
break;
case 'cid':
$headers['Content-ID'] = '<' . $value . '>';
break;
case 'disposition':
$headers['Content-Disposition'] = $value . (isset($dfilename) ? '; filename="' . $dfilename . '"' : '');
break;
case 'dfilename':
if (isset($headers['Content-Disposition'])) {
$headers['Content-Disposition'] .= '; filename="' . $value . '"';
} else {
$dfilename = $value;
}
break;
case 'description':
$headers['Content-Description'] = $value;
break;
case 'charset':
if (isset($headers['Content-Type'])) {
$headers['Content-Type'] .= '; charset="' . $value . '"';
} else {
$charset = $value;
}
break;
}
}
// Default content-type
if (!isset($headers['Content-Type'])) {
$headers['Content-Type'] = 'text/plain';
}
// Default encoding
if (!isset($this->encoding)) {
$this->encoding = '7bit';
}
// Assign stuff to member variables
$this->encoded = array();
$this->headers = $headers;
$this->body = $body;
}
/**
* Encodes and returns the email. Also stores
* it in the encoded member variable
*
* @return An associative array containing two elements,
* body and headers. The headers element is itself
* an indexed array.
*/
public function encode()
{
$encoded =& $this->encoded;
if (!empty($this->subparts)) {
srand((double)microtime()*1000000);
$boundary = '=_' . md5(uniqid(rand()) . microtime());
$this->headers['Content-Type'] .= ';' . MAIL_MIMEPART_CRLF . "\t" . 'boundary="' . $boundary . '"';
// Add body parts to $subparts
for ($i = 0; $i < count($this->subparts); $i++) {
$headers = array();
$tmp = $this->subparts[$i]->encode();
foreach ($tmp['headers'] as $key => $value) {
$headers[] = $key . ': ' . $value;
}
$subparts[] = implode(MAIL_MIMEPART_CRLF, $headers) . MAIL_MIMEPART_CRLF . MAIL_MIMEPART_CRLF . $tmp['body'];
}
$encoded['body'] = '--' . $boundary . MAIL_MIMEPART_CRLF .
implode('--' . $boundary . MAIL_MIMEPART_CRLF, $subparts) .
'--' . $boundary.'--' . MAIL_MIMEPART_CRLF;
} else {
$encoded['body'] = $this->getEncodedData($this->body, $this->encoding) . MAIL_MIMEPART_CRLF;
}
// Add headers to $encoded
$encoded['headers'] =& $this->headers;
return $encoded;
}
/**
* Adds a subpart to current mime part and returns
* a reference to it
*
* @param $body The body of the subpart, if any.
* @param $params The parameters for the subpart, same
* as the $params argument for constructor.
* @return A reference to the part you just added.
*/
public function addSubPart($body, $params)
{
$this->subparts[] = new Mail_MIMEPart($body, $params);
return $this->subparts[count($this->subparts) - 1];
}
/**
* Returns encoded data based upon encoding passed to it
*
* @param $data The data to encode.
* @param $encoding The encoding type to use, 7bit, base64,
* or quoted-printable.
*/
private function getEncodedData($data, $encoding)
{
switch ($encoding) {
case '8bit':
case '7bit':
return $data;
break;
case 'quoted-printable':
return $this->quotedPrintableEncode($data);
break;
case 'base64':
return rtrim(chunk_split(base64_encode($data), 76, MAIL_MIMEPART_CRLF));
break;
default:
return $data;
}
}
/**
* Encodes data to quoted-printable standard.
*
* @param $input The data to encode
* @param $line_max Optional max line length. Should
* not be more than 76 chars
*/
private function quotedPrintableEncode($input , $line_max = 76)
{
$lines = preg_split("/\r?\n/", $input);
$eol = MAIL_MIMEPART_CRLF;
$escape = '=';
$output = '';
while(list(, $line) = each($lines)){
$linlen = strlen($line);
$newline = '';
for ($i = 0; $i < $linlen; $i++) {
$char = substr($line, $i, 1);
$dec = ord($char);
if (($dec == 32) AND ($i == ($linlen - 1))){ // convert space at eol only
$char = '=20';
} elseif($dec == 9) {
; // Do nothing if a tab.
} elseif(($dec == 61) OR ($dec < 32 ) OR ($dec > 126)) {
$char = $escape . strtoupper(sprintf('%02s', dechex($dec)));
}
if ((strlen($newline) + strlen($char)) >= $line_max) { // MAIL_MIMEPART_CRLF is not counted
$output .= $newline . $escape . $eol; // soft line break; " =\r\n" is okay
$newline = '';
}
$newline .= $char;
} // end of for
$output .= $newline . $eol;
}
$output = substr($output, 0, -1 * strlen($eol)); // Don't want last crlf
return $output;
}
} // End of class
?>

View File

@ -1,103 +0,0 @@
<?
function sendMail($from, $to, $subject, $text='', $html='', /*$priority='high', $tabImgFiles=array(), */$tabAttachedFiles=array())
{
//return true;
$to=preg_split("/[\s,;]+/", $to);
//die(print_r($to));
require_once('Mail.php');
require_once('Mail/mime.php');
$headers=array( 'From'=>$from,
'To'=>$to,
'Subject'=>$subject,
// 'Reply-To'=>$from,
// 'Return-Path'=>$from,
'Content-Transfer-Encoding'=>'8bit',
'MIME-Version'=>'1.0',
'Date'=>date('D, d M Y H:i:s O'),
'Message-ID'=>'<'.md5(date('YmdHis')).'@mail.scores-decisions.com>',
'X-Priority'=>3,
'X-Mailer'=>'PHP v'.phpversion(),
);
/*
# Boundry for marking the split & Multitype Headers
$mime_boundary=md5(time());
$headers .= ''.$eol;
$headers .= "Content-Type: multipart/related; boundary=\"".$mime_boundary."\"".$eol;
$msg = "";
*/
$mime = new Mail_mime();
$footer="";/*
_______________________________________________________________________
Ce message et toutes les pièces jointes (ci-après le \"message\") sont établis a l'intention exclusive de ses destinataires.Si vous recevez ce message par erreur, merci de le détruire et d'en avertir immédiatement l'expéditeur par e-mail. Toute utilisation de ce message non conforme a sa destination, toute diffusion ou toute publication, totale ou partielle, est interdite, sauf autorisation expresse. Les communications sur Internet n'étant pas sécurisées, SCORES & DECISIONS S.A.S. informe qu'elle ne peut accepter aucune responsabilite quant au contenu de ce message.
This mail message and attachments (the \"message\") are solely intended for the addressees. It is confidential in nature . If you receive this message in error, please delete it and immediately notify the sender by e-mail. Any use other than its intended purpose, dissemination or disclosure, either whole or partial, is prohibited except if formal approval is granted. As communication on the Internet is not secure, SCORES & DECISIONS S.A.S. does not accept responsability for the content of this message.
";*/
if ($text<>'') $mime->setTXTBody($text.$footer);
if ($html<>'') $mime->setHTMLBody($html);
foreach ($tabAttachedFiles as $file)
$mime->addAttachment($file);
//do not ever try to call these lines in reverse order
$body = $mime->get();
$headers = $mime->headers($headers);
$params=array( 'host'=>'smtpauth.online.net', // SMTP_HOST
'port'=>25, //SMTP_PORT,
);
$params=array( 'host'=>SMTP_HOST,
'port'=>SMTP_PORT,
//'debug'=>true,
//'persist'=>true,
);
if (SMTP_USER=='' && SMTP_PASS=='')
$params['auth'] = false;
else {
$params['username'] = SMTP_USER;
$params['password'] = SMTP_PASS;
}/*
$params['auth'] = true;
$params['username'] = 'buzuk@scores-decisions.com';
$params['password'] = 'catsysyo92';
*/
$nbEssais=0;
while (1) {
// Create the mail object using the Mail::factory method
$mail_object = Mail::factory('smtp', $params);
// Trying to send the mail
$send = $mail_object->send($to, $headers, $body);
$nbEssais++;
if (PEAR::isError($send)) {
/** @todo tester les différents codes erreur **/
echo date('Y-m-d H:i:s'). " sendMail.php - essai #$nbEssais : ".$send->getMessage().EOL;
if (preg_match('/too many connections|421/i', $send->getMessage()))
sleep($nbEssais);
else {
$strTo=implode(';', $to);
file_put_contents( LOG_PATH.'/sendMailError.log',
date('Y-m-d H:i:s')."\t#$nbEssais\t$strTo\t".$send->getMessage().EOL,
FILE_APPEND);
break;
}
} else {
/** Si nous sommes en mode CLI, alors on fait en sorte de ne pas atteindre
la limite des 25 mails par minute (ramené à 100 / minute)
**/
if (MODE_EXEC==MODE_CLI) usleep(500000);
break;
}
}
return true;
}
?>

View File

@ -1,33 +0,0 @@
<?
function sendMail($from, $to, $subject, $text='', $html='', $priority='high', $tabImgFiles=array(), $tabAttachedFiles=array())
{
require_once("Mail.php");
$headers["From"] = $from;
$headers["To"] = $to;
$headers["Subject"] = $subject;
$body = $text;
$params["host"] = SMTP_HOST;
$params["port"] = SMTP_PORT;
if (SMTP_USER=='' && SMTP_PASS=='')
$params["auth"] = false;
else {
$params["username"] = SMTP_USER;
$params["password"] = SMTP_PASS;
}
// Create the mail object using the Mail::factory method
$mail_object = Mail::factory("smtp", $params);
$mail_object->send($to, $headers, $body);
if (PEAR::isError($mail_object))
return $mail_object->getMessage();
return true;
}
?>

View File

@ -1,369 +0,0 @@
<?php
/**
) o------------------------------------------------------------------------------o
* | This is HTMLMimeMail5. It is dual licensed as GPL and a commercial license. |
* | If you use the code commercially (or if you don't want to be restricted by |
* | the GPL license), you will need the commercial license. It's only £49 (GBP - |
* | roughly $98 depending on the exchange rate) and helps me out a lot. Thanks. |
* o------------------------------------------------------------------------------o
*
* © Copyright 2005 Richard Heyes
*/
define('SMTP_STATUS_NOT_CONNECTED', 1, true);
define('SMTP_STATUS_CONNECTED', 2, true);
class smtp
{
private $authenticated;
private $connection;
private $recipients;
private $headers;
private $timeout;
private $errors;
private $status;
private $body;
private $from;
private $host;
private $port;
private $helo;
private $auth;
private $user;
private $pass;
/**
* Constructor function. Arguments:
* $params - An assoc array of parameters:
*
* host - The hostname of the smtp server Default: localhost
* port - The port the smtp server runs on Default: 25
* helo - What to send as the HELO command Default: localhost
* (typically the hostname of the
* machine this script runs on)
* auth - Whether to use basic authentication Default: FALSE
* user - Username for authentication Default: <blank>
* pass - Password for authentication Default: <blank>
* timeout - The timeout in seconds for the call Default: 5
* to fsockopen()
*/
public function __construct($params = array())
{
if(!defined('CRLF'))
define('CRLF', "\r\n", TRUE);
$this->authenticated = FALSE;
$this->timeout = 5;
$this->status = SMTP_STATUS_NOT_CONNECTED;
$this->host = 'smtp.free.fr';
$this->port = 25;
$this->helo = 'srvsd01';
$this->auth = FALSE;
$this->user = '';
$this->pass = '';
$this->errors = array();
foreach($params as $key => $value){
$this->$key = $value;
}
}
/**
* Connect function. This will, when called
* statically, create a new smtp object,
* call the connect function (ie this function)
* and return it. When not called statically,
* it will connect to the server and send
* the HELO command.
*/
public function connect($params = array())
{
if (!isset($this->status)) {
$obj = new smtp($params);
if($obj->connect()){
$obj->status = SMTP_STATUS_CONNECTED;
}
return $obj;
} else {
$this->connection = fsockopen($this->host, $this->port, $errno, $errstr, $this->timeout);
if (function_exists('socket_set_timeout')) {
@socket_set_timeout($this->connection, 5, 0);
}
$greeting = $this->get_data();
if (is_resource($this->connection)) {
return $this->auth ? $this->ehlo() : $this->helo();
} else {
$this->errors[] = 'Failed to connect to server: '.$errstr;
return FALSE;
}
}
}
/**
* Function which handles sending the mail.
* Arguments:
* $params - Optional assoc array of parameters.
* Can contain:
* recipients - Indexed array of recipients
* from - The from address. (used in MAIL FROM:),
* this will be the return path
* headers - Indexed array of headers, one header per array entry
* body - The body of the email
* It can also contain any of the parameters from the connect()
* function
*/
public function send($params = array())
{
foreach ($params as $key => $value) {
$this->set($key, $value);
}
if ($this->is_connected()) {
// Do we auth or not? Note the distinction between the auth variable and auth() function
if ($this->auth AND !$this->authenticated) {
if(!$this->auth())
return false;
}
$this->mail($this->from);
if (is_array($this->recipients)) {
foreach ($this->recipients as $value) {
$this->rcpt($value);
}
} else {
$this->rcpt($this->recipients);
}
if (!$this->data()) {
return false;
}
// Transparency
$headers = str_replace(CRLF.'.', CRLF.'..', trim(implode(CRLF, $this->headers)));
$body = str_replace(CRLF.'.', CRLF.'..', $this->body);
$body = substr($body, 0, 1) == '.' ? '.'.$body : $body;
$this->send_data($headers);
$this->send_data('');
$this->send_data($body);
$this->send_data('.');
$result = (substr(trim($this->get_data()), 0, 3) === '250');
//$this->rset();
return $result;
} else {
$this->errors[] = 'Not connected!';
return FALSE;
}
}
/**
* Function to implement HELO cmd
*/
private function helo()
{
if(is_resource($this->connection)
AND $this->send_data('HELO '.$this->helo)
AND substr(trim($error = $this->get_data()), 0, 3) === '250' ){
return true;
} else {
$this->errors[] = 'HELO command failed, output: ' . trim(substr(trim($error),3));
return false;
}
}
/**
* Function to implement EHLO cmd
*/
private function ehlo()
{
if (is_resource($this->connection)
AND $this->send_data('EHLO '.$this->helo)
AND substr(trim($error = $this->get_data()), 0, 3) === '250' ){
return true;
} else {
$this->errors[] = 'EHLO command failed, output: ' . trim(substr(trim($error),3));
return false;
}
}
/**
* Function to implement RSET cmd
*/
private function rset()
{
if (is_resource($this->connection)
AND $this->send_data('RSET')
AND substr(trim($error = $this->get_data()), 0, 3) === '250' ){
return true;
} else {
$this->errors[] = 'RSET command failed, output: ' . trim(substr(trim($error),3));
return false;
}
}
/**
* Function to implement QUIT cmd
*/
private function quit()
{
if(is_resource($this->connection)
AND $this->send_data('QUIT')
AND substr(trim($error = $this->get_data()), 0, 3) === '221' ){
fclose($this->connection);
$this->status = SMTP_STATUS_NOT_CONNECTED;
return true;
} else {
$this->errors[] = 'QUIT command failed, output: ' . trim(substr(trim($error),3));
return false;
}
}
/**
* Function to implement AUTH cmd
*/
private function auth()
{
if (is_resource($this->connection)
AND $this->send_data('AUTH LOGIN')
AND substr(trim($error = $this->get_data()), 0, 3) === '334'
AND $this->send_data(base64_encode($this->user)) // Send username
AND substr(trim($error = $this->get_data()),0,3) === '334'
AND $this->send_data(base64_encode($this->pass)) // Send password
AND substr(trim($error = $this->get_data()),0,3) === '235' ){
$this->authenticated = true;
return true;
} else {
$this->errors[] = 'AUTH command failed: ' . trim(substr(trim($error),3));
return false;
}
}
/**
* Function that handles the MAIL FROM: cmd
*/
private function mail($from)
{
if ($this->is_connected()
AND $this->send_data('MAIL FROM:<'.$from.'>')
AND substr(trim($this->get_data()), 0, 2) === '250' ) {
return true;
} else {
return false;
}
}
/**
* Function that handles the RCPT TO: cmd
*/
private function rcpt($to)
{
if($this->is_connected()
AND $this->send_data('RCPT TO:<'.$to.'>')
AND substr(trim($error = $this->get_data()), 0, 2) === '25' ){
return true;
} else {
$this->errors[] = trim(substr(trim($error), 3));
return false;
}
}
/**
* Function that sends the DATA cmd
*/
private function data()
{
if($this->is_connected()
AND $this->send_data('DATA')
AND substr(trim($error = $this->get_data()), 0, 3) === '354' ) {
return true;
} else {
$this->errors[] = trim(substr(trim($error), 3));
return false;
}
}
/**
* Function to determine if this object
* is connected to the server or not.
*/
private function is_connected()
{
return (is_resource($this->connection) AND ($this->status === SMTP_STATUS_CONNECTED));
}
/**
* Function to send a bit of data
*/
private function send_data($data)
{
if(is_resource($this->connection)){
return fwrite($this->connection, $data.CRLF, strlen($data)+2);
} else {
return false;
}
}
/**
* Function to get data.
*/
private function get_data()
{
$return = '';
$line = '';
$loops = 0;
if(is_resource($this->connection)){
while((strpos($return, CRLF) === FALSE OR substr($line,3,1) !== ' ') AND $loops < 100){
$line = fgets($this->connection, 512);
$return .= $line;
$loops++;
}
return $return;
}else
return false;
}
/**
* Sets a variable
*/
public function set($var, $value)
{
$this->$var = $value;
return true;
}
/**
* Function to return the errors array
*/
public function getErrors()
{
return $this->errors;
}
} // End of class
?>

View File

@ -1,247 +0,0 @@
<?php
ini_set('soap.wsdl_cache_enabled', 0);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
class mantisWsdlClient
{
private $mtSrvClient;
private $mtSrvUser='';
private $mtSrvPass='';
public function __construct($mtSrvWsdlUrl, $mtSrvUser, $mtSrvPass)
{
$this->mtSrvUser=$mtSrvUser;
$this->mtSrvPass=$mtSrvPass;
try {
$this->mtSrvClient = new soapclient($mtSrvWsdlUrl);
} catch(Soapfault $e) {
echo "Erreur : URL Soap WSDL Mantis invalide";
exit();
}
}
/** Ajout d'une note
* @param unknown_type $issue_id
* @param unknown_type $reporter_id
* @param unknown_type $notes
*/
public function add_issue_note($issue_id,$reporter_id,$notes)
{
$view_state = new StdClass;
$view_state->id =1;
$note = new StdClass;
$note->id =$issue_id;
$note->reporter =$reporter_id;
$note->text =$notes;
$note->view_state=$view_state;
$note->date_submitted =date('d-m-Y');
$note->last_modified =date('d-m-Y');
try{
$this->mtSrvClient->mc_issue_note_add($this->mtSrvUser,$this->mtSrvPass,$issue_id,$note);
} catch (SoapFault $exception) {
// handle the fault
print_r($exception);
//var_dump(libxml_get_last_error());
echo "Problem occured when adding issue for the planner title: ".$summary."<br>";
}
}
// Add issue function
// parameter @projectid
public function addissue($projecId,$reporterid,$summary,$description,$priority=0)
{
//$client = new soapclient(WSDL_URL);
$issue = new StdClass;
$project = new StdClass;
$project->id =$projecId;// 15;
$reporter = new StdClass;
$reporter->id =$reporterid;// 24;
/*$handler = new StdClass;
if(trim($handlerid)=="" or trim($handlerid)=="0" )
$handler->id =$reporterid;// 24;
else
$handler->id =$handlerid;// 24;
// echo "HAND: ".$handler->id."<br><br>";
*/
$issue->project = $project;
$issue->reporter = $reporter;
//$issue->handler = $handler;
$issue->summary = $summary;//"testiing subject";
$issue->description =$description;//"testiing";
if($priority*1==0)
$issue->priority = 30;
else
$issue->priority = $prority;
/*if($eta=="" or $eta=="0" )
$issue->eta = 10;
else
$issue->eta = $eta;
*/
$issue->severity = 50;
$issue->status = 10;
$issue->reproducibility = 70;//10;
//$issue->resolution = 10;
$issue->projection = 10;
$issue->view_state = 10;
$issue->category = "";
$issue->additional_information =date('d-m-Y: H:i:s');
try {
$response_issue_id=$this->mtSrvClient->mc_issue_add($this->mtSrvUser,$this->mtSrvPass,$issue); // add Task
return $response_issue_id;
} catch (SoapFault $exception) {
// handle the fault
print_r($exception);
//var_dump(libxml_get_last_error());
echo "Problem occured when adding issue for the planner title: ".$summary."<br>";
}
/*POSTDATA =
name="bug_report_token"
name="m_id" 0
name="project_id" 37
name="category"
name="reproducibility" 70
name="severity" 50
name="priority" 30
name="profile_id"
name="platform"
name="os"
name="os_build"
name="build"
name="handler_id" 0
name="summary" Siren 450175179 Bilan du 31/12/2009
name="description" Poste DO non saisit
name="steps_to_reproduce"
name="additional_info"
name="max_file_size" 2000000
name="file"; filename="" Content-Type: application/octet-stream
name="view_state" 10
*/
}
function getProjectIssues($projecId) {
if ($this->checkProjectid($projecId)) {
try {
$resfound=$this->mtSrvClient->mc_project_get_issues($this->mtSrvUser,$this->mtSrvPass,$projecId);
} catch(Exception $e) {
echo "<br>Invalid Login credentials (wsdl_config.php) or ProjectID .<br>";
return false;
}
return $resfound;
}
return false;
}
//Function accpets username as argument and returns userid if exists
/*
public function checkUserid($username)
{
$result = mysql_query("SELECT * FROM mantis_user_table where username='".$username."'") or die(mysql_error());
$row = mysql_fetch_array( $result );
// Print out the contents of the entry
if(sizeof($row>0))
return $row['id'];
else
return 0;
}*/
//insert custom fields startdate,finsihdate,percentage complete
/*
public function mantis_insert_customfield($field_id,$bug_id,$value)
{
$sql="insert into mantis_custom_field_string_table (field_id,bug_id,value) values ('".$field_id."','".$bug_id."','".$value."')";
mysql_query($sql);
}
*/
//update ETA field
/*
public function mantis_update_bugfield($bug_id,$bugfield,$bugvalue)
{
$sql="update mantis_bug_table set ".$bugfield."='".$bugvalue."' where id=".$bug_id;
//echo $sql;
mysql_query($sql);
}
*/
/** Le projet existe t il dans Mantis ?
**
** @param $projecId
**/
public function checkProjectid($projecId)
{
try {
$resfound=$this->mtSrvClient->mc_project_get_categories($this->mtSrvUser,$this->mtSrvPass, $projecId );
}
catch(Exception $e)
{
echo "<br>Invalid Login credentials (wsdl_config.php) or ProjectID .<br>";
return false;
}
// print_r($resfound);
return true;
}
public function addirelationship($relationType,$issue_id,$target_id)
{
//relation object class---------------START
$relation = new StdClass;
if($relationType=="p")
{
//parent of
$relation->id = 2;
$relation->name = "parent of";
}
else
{
//child of
$relation->id = 3;
$relation->name = "child of";
}
//relation object class---------------END
//relationship object class-----------------------START
$relationship = new StdClass;
$relationship->id= 3;
$relationship->type=$relation;
$relationship->target_id= $target_id;
//relationship object class-----------------------END
//$response_issue_id=56;
try{
$response=$this->mtSrvClient->mc_issue_relationship_add($this->mtSrvUser,$this->mtSrvPass,$issue_id,$relationship); // add relationshiip
} catch (SoapFault $exception) {
//print_r($exception);
// handle the fault
//echo "Problem occured when configuring relationship for the Ticket id: ".$issue_id."<br>";
}
}
}
?>

View File

@ -1,644 +0,0 @@
<?php
/*
0 9 * * 1-5 /var/www/batch/getAsso.php -c >> /var/www/log/getAsso.log
*/
require_once realpath(dirname(__FILE__)).'/includes/config.php';
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');
require_once 'framework/mail/sendMail.php';
$tabInfosGlobal=array();
$repPdfAssoCpt='/home/data/datafile/associations/bilans/';
function getNextDate($dateCour, $nbJours=7) {
$nextDate=date('Ymd', mktime(0, 0, 0, WDate::dateT('Ymd','m', $dateCour), WDate::dateT('Ymd','d', $dateCour)+$nbJours, WDate::dateT('Ymd','Y', $dateCour)));
return $nextDate;
}
global $tabDep;
$tabDep = array(
'Dordogne'=>'24',
'Gironde'=>'33',
'Landes'=>'40',
'Lot-et-Garonne'=>'47',
'Pyrénées-Atlantiques'=>'64',
'Bas-Rhin'=>'67',
'Haut-Rhin'=>'68',
'Allier'=>'03',
'Cantal'=>'15',
'Haute-Loire'=>'43',
'Puy-de-Dôme'=>'63',
'Calvados'=>'14',
'Manche'=>'50',
'Orne'=>'61',
'Côte-d\'Or'=>'21',
'Nièvre'=>'58',
'Saône-et-Loire'=>'71',
'Yonne'=>'89',
'Côtes-d\'Armor'=>'22',
'Finistère'=>'29',
'Ille-et-Vilaine'=>'35',
'Morbihan'=>'56',
'Cher'=>'18',
'Eure-et-Loir'=>'28',
'Indre'=>'36',
'Indre-et-Loire'=>'37',
'Loir-et-Cher'=>'41',
'Loiret'=>'45',
'Ardennes'=>'08',
'Aube'=>'10',
'Haute-Marne'=>'52',
'Marne'=>'51',
'Corse-du-sud'=>'2A',
'Haute-Corse'=>'2B',
'Doubs'=>'25',
'Haute-Saône'=>'70',
'Jura'=>'39',
'Territoire-de-Belfort'=>'90',
'Eure'=>'27',
'Seine-Maritime'=>'76',
'Essonne'=>'91',
'Hauts-de-Seine'=>'92',
'Paris'=>'75',
'Seine-et-Marne'=>'77',
'Seine-Saint-Denis'=>'93',
'Val-d\'Oise'=>'95',
'Val-de-Marne'=>'94',
'Yvelines'=>'78',
'Aude'=>'11',
'Gard'=>'30',
'Hérault'=>'34',
'Lozère'=>'48',
'Pyrénées-Orientales'=>'66',
'Corrèze'=>'19',
'Creuse'=>'23',
'Haute-Vienne'=>'87',
'Moselle'=>'57',
'Meurthe-et-Moselle'=>'54',
'Meuse'=>'55',
'Vosges'=>'88',
'Ariège'=>'09',
'Aveyron'=>'12',
'Gers'=>'32',
'Haute-Garonne'=>'31',
'Hautes-Pyrénées'=>'65',
'Lot'=>'46',
'Tarn'=>'81',
'Tarn-et-Garonne'=>'82',
'Nord'=>'59',
'Pas-de-calais'=>'62',
'Guadeloupe'=>'971',
'Guyane'=>'973',
'Martinique'=>'972',
'Réunion'=>'974',
'Saint-Pierre-et-Miquelon'=>'975',
'Mayotte'=>'976',
'Loire-Atlantique'=>'44',
'Maine-et-Loire'=>'49',
'Mayenne'=>'53',
'Sarthe'=>'72',
'Vendée'=>'85',
'Aisne'=>'02',
'Oise'=>'60',
'Somme'=>'80',
'Charente'=>'16',
'Charente-Maritime'=>'17',
'Deux-Sèvres'=>'79',
'Vienne'=>'86',
'Alpes-de-Haute-Provence'=>'04',
'Alpes-Maritimes'=>'06',
'Bouches-du-Rhone'=>'13',
'Hautes-Alpes'=>'05',
'Var'=>'83',
'Vaucluse'=>'84',
'Ain'=>'01',
'Ardèche'=>'07',
'Drôme'=>'26',
'Haute-Savoie'=>'74',
'Isère'=>'38',
'Loire'=>'42',
'Rhône'=>'69',
'Savoie'=>'73',
);
function getInfosAnnonceAsso($annonceHtml, $depotComptes=false)
{
$tabAnn=array();
global $tabDep;
global $iInsee;
$tabAnn['Assoc_Nom']=htm2txt(@getTextInHtml($annonceHtml, '<p>Association : <b>', '<b>', '</b>'));
if (substr($tabAnn['Assoc_Nom'],-1)=='.') $tabAnn['Assoc_Nom']=substr($tabAnn['Assoc_Nom'],0,-1);
$tabAnn['Siren']=str_replace(' ','', strtr(htm2txt(@getTextInHtml($annonceHtml, '<p>Siren : <b>', '<b>', '</b>')),' .-/;,',' '))*1;
$tabAnn['sirenValide']=$iInsee->valideSiren($tabAnn['Siren']);
$tabAnn['Waldec']=strtoupper(@getTextInHtml($annonceHtml, '<p>Identification R.N.A. : <b>', '<b>', '</b>'));
$tabAnn['Annonce_Html']=str_replace('</p>','',str_replace(chr(160), ' ', html_entity_decode(@getTextInHtml($annonceHtml, '<p align="LEFT"><br>', '<br>', '</p>'))));
if ($tabAnn['Annonce_Html']=='') // Les fondations n'ont pas le même corps HTML
$tabAnn['Annonce_Html']=str_replace('</p>','',str_replace(chr(160), ' ', html_entity_decode(@getTextInHtml($annonceHtml, '<p align="left"></p> <p align="left">', '</p> <p align="left">', '</p>'))));
if ($tabAnn['Annonce_Html']=='') // Les fondations n'ont pas le même corps HTML
$tabAnn['Annonce_Html']='#####'.str_replace(chr(160), ' ', html_entity_decode($annonceHtml));
if ($depotComptes) {
$tabAnn['pdfLink']=@getTextInHtml($annonceHtml, '<a href="/', '/', '">');
$tmp=@getTextInHtml($annonceHtml, 'Date de clôture de l\'exercice : <b>', '<b>', '</b>');
$tabAnn['dateCloture']=WDate::dateT('d/m/Y', 'Y-m-d', $tmp);
if ( $tabAnn['dateCloture']=='' ) {
preg_match('/_([0-9]{8})/', $tabAnn['pdfLink'], $matches);
/*sendMail(
'mricois@scores-decisions.com',
'mricois@scores-decisions.com',
'Associations',
$annonceHtml."\n\n\n".print_r($matches,1));*/
}
$tabAnn['typeCompte']=@getTextInHtml($annonceHtml, '<a href="/', '">>', '</a>');
$tabAnn['dateInsert']=date('YmdHis');
} else {
$tabAnn['nic']=0;
$tabAnn['nicValide']=0;
$tabAnn['Activite']=htm2txt(@getTextInHtml($annonceHtml, 'Activit&eacute;(s) : <b>', '<b>', '</b>'));
$tabAnn['Num_Annonce']=@getTextInHtml($annonceHtml, 'No d\'annonce : <b>', '<b>', '</b>');
$tmp=@getTextInHtml($annonceHtml, 'Paru le : <b>', '<b>', '</b>');
$tabAnn['Date_Parution']=substr($tmp,6,4).'-'.substr($tmp,3,2).'-'.substr($tmp,0,2);
$tabAnn['Num_Parution']=@getTextInHtml($annonceHtml, 'No de parution : <b>', '<b>', '</b>');
$depReg=trim(htm2txt(@getTextInHtml($annonceHtml, 'D&eacute;partement (R&eacute;gion) : <b>','<b>','</b></p>')));
$tabDepReg=explode('(', $depReg);
$dep=trim($tabDepReg[0]);
$numDep=$tabDep[$dep];
if ($numDep=='') echo date ('Y/m/d - H:i:s') ." - Attention, département '$dep' non trouvé !". EOL;
$region=trim(substr($tabDepReg[1],0,strlen($tabDepReg[1])-1));
$tabAnn['Departement']=$numDep;
$tabAnn['Sous_Prefecture']=htm2txt(@getTextInHtml($annonceHtml, '<p>Lieu parution : <b>Déclaration à la ', ' à la ', '</b>'));
$tabAnn['Type_Annonce']=htm2txt(@getTextInHtml($annonceHtml, 'Type d\'annonce : <b>', '<b>', '</b>'));
/** Recherche du type d'association
**/
if (preg_match('/ASL/i', $tabAnn['Type_Annonce']) || preg_match('/syndicale/i', $tabAnn['Type_Annonce']))
$tabAnn['typeAsso']='ASL';
elseif (preg_match('/Fondation/i', $tabAnn['Type_Annonce']))
$tabAnn['typeAsso']='FON';
elseif (preg_match('/dotation/i', $tabAnn['Type_Annonce']))
$tabAnn['typeAsso']='FOD';
else
$tabAnn['typeAsso']='ASS';
/** Recherche du type d'insertion
**/
if (preg_match('/ANNULATION/i', $tabAnn['Type_Annonce']))
$tabAnn['typeAnnonce']='Suppression';
elseif (preg_match('/RECTIFICATIF/i', $tabAnn['Type_Annonce']))
$tabAnn['typeAnnonce']='Rectificatif';
else
$tabAnn['typeAnnonce']='Insertion';
$tabAnn['Assoc_Duree']=trim(htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Durée :', 'Durée :', '.<br>')));
$tabAnn['Assoc_Dotation']=trim(htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Montant de la dotation initiale :', 'initiale :', '.<br>')));
$tabAnn['Assoc_ProgAction']=trim(htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'action pluriannuel :', 'pluriannuel :', '.<br>')));
$tabAnn['Assoc_Fondateurs']=trim(htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], ' de chacun des fondateurs :', 'fondateurs :', '.</p>')));
//<p align="LEFT">Autorisation administrative.</p> <p align="LEFT">
//Date de signature de statuts : 21 décembre 1992.<br>
//Date de la modification des statuts : 7 février 1996, autorisation délivrée par le préfet 16 mars 1996.</p> <p align="LEFT">Autorisation tacite.</p> <p align="LEFT">
//Date de la demande de modification des statuts : 7 février 1996, sollicitée auprès du préfet de Paris.</p>
$tabAnn['Assoc_Web']=@getTextInHtml($tabAnn['Annonce_Html'], 'ite Internet : </i>', '</i>', '<i>');
if (substr($tabAnn['Assoc_Web'],-1)=='.')
$tabAnn['Assoc_Web']=substr($tabAnn['Assoc_Web'],0,-1);
$tabAnn['Assoc_Mail']= @getTextInHtml($tabAnn['Annonce_Html'], '<i>Courriel : </i>', '</i>', '<i>');
if ($tabAnn['Assoc_Mail']=='')
$tabAnn['Assoc_Mail']= @getTextInHtml($tabAnn['Annonce_Html'], '<i>Mél. : </i>', '</i>', '<i>');
if (substr($tabAnn['Assoc_Mail'],-1)=='.')
$tabAnn['Assoc_Mail']=substr($tabAnn['Assoc_Mail'],0,-1);
$tabAnn['Assoc_Objet']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '>Objet : </i>', '</i>', '<i>'));
if(trim($tabAnn['Assoc_Objet'])=='')
$tabAnn['Assoc_Objet']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Objet : </i>', '</i>', '<br>'));
$tabAnn['Assoc_NObjet']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '<i>Nouvel objet : </i>', '</i>', '<i>'));
$tabAnn['Assoc_AObjet']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '<i>Additif à l&#146;objet : </i>', '</i>', '<i>'));
$tabAnn['Assoc_NAdresse']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '<i>Transféré ; nouvelle adresse : </i>', '</i>', '. <i>'));
$tabAnn['Assoc_Fusion']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '<i>Fusion des associations : </i>', '</i>', '<i>'));
$tabAnn['Assoc_Adresse']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '<i>Siège social : </i>', '</i>', '. <i>'));
// Fondations
if (trim($tabAnn['Assoc_Adresse'])=='')
$tabAnn['Assoc_Adresse']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Siège : </i>', '</i>', '.<br>'));
if (trim($tabAnn['Assoc_Adresse'])=='')
$tabAnn['Assoc_Adresse']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Siège : </i>', '</i>', '.</p>'));
$tabAnn['Assoc_Date_Declaration']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '>Date de la déclaration : </i>', '</i>', '.'));
if ($tabAnn['Assoc_Date_Declaration']=='')
$tabAnn['Assoc_Date_Declaration']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '>Date de délivrance du récépissé : </i>', '</i>', '.'));
// Fondations
if(trim($tabAnn['Assoc_Date_Declaration'])=='') {
$tabAnn['Assoc_Date_Declaration']=trim(htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'autorisation administrative :', 'administrative :', ',')));
if (trim($tabAnn['Assoc_Date_Declaration'])=='')
$tabAnn['Assoc_Date_Declaration']=trim(htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Date de la modification des statuts :', 'statuts :', ',')));
if(trim($tabAnn['Sous_Prefecture'])=='')
$tabAnn['Sous_Prefecture']=htm2txt(@getTextInHtml($annonceHtml, 'sollicitée auprès du', 'du', '<br>'));
if(trim($tabAnn['Sous_Prefecture'])=='')
$tabAnn['Sous_Prefecture']=htm2txt(@getTextInHtml($annonceHtml, 'sollicitée auprès du', 'du', '</p>'));
}
$tabAnn['Assoc_Date_Declaration2']=WDate::dateT('d M Y', 'Y-m-d', $tabAnn['Assoc_Date_Declaration']);
$tabAnn['Assoc_ANom']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '<i>Ancien titre : </i>', '</i>', '<i>'));
$tabAnn['Assoc_Annulation']='Annulation '.htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '>Annulation', '</i>', '.'));
/*<i>Annulation </i>de l&#146;insertion n<sup>o</sup> 1014, parue au <i>Journal officiel </i>n<sup>o</sup> 25, du 24 juin 2006, page 3106.*/
if ($tabAnn['Assoc_Annulation']=='Annulation ') $tabAnn['Assoc_Annulation']='';
if ($tabAnn['Assoc_ANom']=='')
$tabAnn['Assoc_ANom']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Au lieu de : </i>', '</i>', '<i>'));
if (substr($tabAnn['Assoc_ANom'],-1)=='.')
$tabAnn['Assoc_ANom']=substr($tabAnn['Assoc_ANom'],0,-1);
$tabAnn['Assoc_NNom']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '<i>Nouveau titre :', '</i>', '<i>'));
if (substr($tabAnn['Assoc_NNom'],-1)=='.')
$tabAnn['Assoc_NNom']=substr($tabAnn['Assoc_NNom'],0,-1);
}
return $tabAnn;
}
$tempsMinEntreRequetes=5;
$tempsMaxEntreRequetes=30;
set_time_limit(0);
$lastJO=$dateDebut=$dateFin=$dateF=$dateCour=$verif=false;
$strInfoProg='Usage : '.basename($argv[0]). " [OPTION]
Recupère les annonces Association sur le site du JO Association.
Sans aucun paramètre, récupération du dernier JO Association.
Sinon:
-d:JJ/MM/AAAA Date de début de publication
-f:JJ/MM/AAAA Date de fin de publication
-l Dernier JO Association uniquement (*)
-c Dépôts des comptes uniquement
-n:X Intervalle MIN en secondes entre les requêtes sur le site des JO (défaut=$tempsMinEntreRequetes)
-i:X \" MAX \" \" \" \" \" \" \" \" \" \" (défaut=$tempsMaxEntreRequetes)
-v Vérifier que toutes les annonces du JO sont en base !
";
$depotComptes=false;
$argv=$_SERVER['argv'];
if ($_SERVER['argc']==1) $lastJO=true;
else {
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'd':
$dateDebut=substr($argv[$i],3,10);
$dateDeb=WDate::dateT('d/m/Y', 'Ymd', $dateDebut);
break;
case 'f':
$dateFin=substr($argv[$i],3,10);
$dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin);
break;
case 'n':
$tempsMinEntreRequetes=trim(substr($argv[$i],3))*1;
if ($tempsMinEntreRequetes<0) $tempsMinEntreRequetes=0;
break;
case 'i':
$tempsMaxEntreRequetes=trim(substr($argv[$i],3))*1;
if ($tempsMaxEntreRequetes<5) $tempsMaxEntreRequetes=2;
break;
case 'l':
$lastJO=true;
break;
case 'v':
$verif=true;
break;
case 'c':
$depotComptes=true;
break;
case '-':
die($strInfoProg);
break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
}
}
}
if ($depotComptes)
$tabReg=array( 'ASSOCIATION%2FCOMPTE',
'FONDATION%2FCOMPTE',
'FONDS+DE+DOTATION%2FCOMPTE',
'AUTRE%2FCOMPTE',
);
else
$tabReg=array( 'ASSOCIATION%2FCREATION',
'ASSOCIATION%2FMODIFICATION',
'ASSOCIATION%2FDISSOLUTION',
'ASL',
'FONDATION',
'DECISION+JUSTICE',
'AUTRE',
'FONDS+DE+DOTATION',
);
$iDb=new WDB();
$iInsee=new MInsee();
$referer='http://www.journal-officiel.gouv.fr/association/';
if ($verif) {
echo date('Y/m/d - H:i:s') ." - Comptage du nombre d'annonce présentes en base par date de parution...". EOL;
$AnnDb=$iDb->select('asso', 'Date_Parution, count(*) as nb', '1 GROUP BY Date_Parution');
foreach ($AnnDb as $i=>$tabDates) {
if ($tabDates[0]<>'0000-00-00') {
$parDate=$tabDates[0];
$parNb =$tabDates[1];
$dateFmt=str_replace('/', '%2F', WDate::dateT('Y-m-d', 'd/m/Y',$parDate));
$url="http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID=&JAN_LIEU_DECL=&JTY_ID=&JTY_WALDEC=&JPA_D_D=$dateFmt&JPA_D_F=".$dateFmt.'&rechercher.x='.rand(1,68).'&rechercher.y='.rand(1,16).'&rechercher=Rechercher';
$page=getUrl($url, '', '', $referer, false, 'www.journal-officiel.gouv.fr');
$body=$page['body'];
$ctx=@getTextInHtml($body, '<A href="index.php?ctx=', 'ctx=', '&'); // Clé de contexte entre chaque page
$nbAnnonces=@getTextInHtml($body, '<p>R&eacute;sultat de la recherche : <strong>', '<strong>', 'annonce(s)</strong>');
if ($nbAnnonces<>$parNb && $nbAnnonces<>0)
echo date('Y/m/d - H:i:s') ." - Parution du $parDate : $parNb annonces en base / $nbAnnonces annonces parues !". EOL;
elseif ($nbAnnonces==0)
echo date('Y/m/d - H:i:s') ." - Parution du $parDate : $parNb annonces en base / Plus d'annonces sur le site JO.". EOL;
//die(print_r($body));
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
//die();
}
}
die();
}
if ($lastJO==true) {
$strLast=' dernier';
$strDates='';
}
else {
$strLast='';
if ($depotComptes) {
if ($dateDebut==false) {
$dateDeb= getNextDate(date('Ymd'),-5);
$dateDebut= WDate::dateT('Ymd', 'd/m/Y',$dateDeb);
}
if ($dateFin==false) {
$dateF= getNextDate(date('Ymd'),0);
$dateFin= WDate::dateT('Ymd', 'd/m/Y',$dateF);
}
$dateCour= $dateDeb;
}
if ($dateFin==false) {
$dateFin=date('d/m/Y');
$dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin);
}
if ($dateDebut==false)
die($strInfoProg);
else
$strDates=" du $dateDebut au $dateFin";
$dateCour=$dateDeb;
}
echo date('Y/m/d - H:i:s') ." - DEBUT du la récupération du$strLast JO Association$strDates".EOL;
echo date('Y/m/d - H:i:s') .' - La durée maximum entre chaque requête est de '. $tempsMaxEntreRequetes .' secondes.'. EOL;
flush();
$message = '';
while ($dateCour<=$dateF || $lastJO) { // Boucle sur les dates
//echo date ('Y/m/d - H:i:s') ." - dateCour($dateCour) <= dateF($dateF) OU lastJO($lastJO)=true". $eol;
for ($i_reg=0; isset($tabReg[$i_reg]) || $lastJO; $i_reg++) { // Boucle sur les régions
if ($lastJO==true) { // Cas récup dernier JO
$region='';
$url='http://www.journal-officiel.gouv.fr/association/index.php?ACTION=showLast';
} else { // On est pas dans la récupération du JO Assoc Jiur
$region=$tabReg[$i_reg];
$reg5=substr($region,0,5);
$dateFmt=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',$dateCour));
if ($depotComptes)
$dateFmt2=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',getNextDate($dateCour,0)));
else
$dateFmt2=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',getNextDate($dateCour)));
//$url='http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID='.urlencode($tabReg[$i_reg]).'&JAN_LIEU_DECL=&JTY_ID=&JTY_WALDEC=&JPA_D_D='. $dateFmt .'&JPA_D_F='. $dateFmt2;//&rechercher.x=44&rechercher.y=6&rechercher=Rechercher
$url='http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID=&JAN_LIEU_DECL=&JTY_ID='.$region.'&JTY_WALDEC=&JTY_SIREN=&JPA_D_D='. $dateFmt .'&JPA_D_F='. $dateFmt2.'&rechercher.x='.rand(1,68).'&rechercher.y='.rand(1,16).'&rechercher=Rechercher';
// http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID=&JAN_LIEU_DECL=&JTY_ID=ASSOCIATION%2FCOMPT&JTY_WALDEC=&JTY_SIREN=&JPA_D_D=01%2F01%2F1990&JPA_D_F=31%2F12%2F2009&rechercher.x=40&rechercher.y=9&rechercher=Rechercher
$strLast='';
}
$page=getUrl($url, '', '', $referer, false, 'www.journal-officiel.gouv.fr');
$body=$page['body'];
//die(print_r($body));
$ctx=@getTextInHtml($body, '<A href="index.php?ctx=', 'ctx=', '&'); // Clé de contexte entre chaque page
$nbAnnonces=@getTextInHtml($body, 'R&eacute;sultat de la recherche :', ' :', 'annonce(s)');
$dateDerParution=@getTextInHtml($body, 'Annonce parue entre le :', ' et le ', '<br>'); // Date au format JJ/MM/AAAA
// 01/08/2010 et le 01/08/2010<br>
$nbPages=ceil($nbAnnonces/25);
if ($nbPages>100) {
echo date('Y/m/d - H:i:s') .' - ERREUR : Il y a plus de 100 pages d\'annonces !'. EOL;
die();
}
echo date('Y/m/d - H:i:s') ." - Clé de contexte = $ctx".EOL;
unset($AnnDb);
$nbAnnDb=0;
if ($lastJO==true) {
echo date('Y/m/d - H:i:s') .' - Derniere parution ASSO le '. $dateDerParution .' de '. $nbAnnonces .' annonces ('. $nbPages .' pages)'. EOL;
// On recherche si nous n'avons pas déjà toutes ces annonces en base !
$dateDb=substr($dateDerParution,6,4).'-'.substr($dateDerParution,3,2).'-'.substr($dateDerParution,0,2);
$AnnDb=$iDb->select('asso', 'count(*) AS nb', "Date_Parution='$dateDb'", false, MYSQL_ASSOC);
$nbAnnDb=$AnnDb[0]['nb'];
if ($nbAnnDb==$nbAnnonces) {
echo date('Y/m/d - H:i:s') .' - Toutes les annonces du '. $dateDerParution .' sont en base !'. EOL;
echo date('Y/m/d - H:i:s') .' - FIN du script'. EOL;
die();
}
elseif ($nbAnnDb>0 && $nbAnnDb<$nbAnnonces) {
$message=date('Y/m/d - H:i:s') .' - ATTENTION : Il n\'y a que '. $nbAnnDb .' annonces en base sur les '. $nbAnnonces .' annonces présentes au JO Association du '. $dateDerParution .' !'. EOL;
echo $message;
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'JO Association', $message);
echo date('Y/m/d - H:i:s') .' - Tentative de récupération des annonces...'. EOL;
}
} else {
// On recherche si nous n'avons pas déjà toutes ces annonces en base !
$dateDb=substr($dateCour,0,4).'-'.substr($dateCour,4,2).'-'.substr($dateCour,6,2);
$dateDerParution=WDate::dateT('Y-m-d', 'd/m/Y',$dateDb);
if ($depotComptes) {
switch ($region) {
case 'ASSOCIATION%2FCOMPTE': $strRegSql=" AND typeAsso='ASS' "; break;
case 'FONDATION%2FCOMPTE': $strRegSql=" AND typeAsso='FON' "; break;
case 'FONDS+DE+DOTATION%2FCOMPTE': $strRegSql=" AND typeAsso='FOD' "; break;
case 'AUTRE%2FCOMPTE': $strRegSql=" AND typeAsso='DIV' "; break;
}
$AnnDb=$iDb->select('asso_bilans', 'count(*) AS nb', "Assoc_Date_Declaration='$dateDb' $strRegSql", false, MYSQL_ASSOC);
$strJO='depôts des comptes associations';
} else {
$AnnDb=$iDb->select('asso', 'count(*) AS nb', "Date_Parution='$dateDb'", false, MYSQL_ASSOC);
$strJO='associations';
}
$nbAnnDb=$AnnDb[0]['nb'];
if ($nbAnnDb>=$nbAnnonces) {
echo mysql_error().EOL;
echo date('Y/m/d - H:i:s') ." - Les $nbAnnonces annonces $strJO $reg5 du $dateDerParution ($dateDb) sont en base ($nbAnnDb) !". EOL;
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
continue;
}
elseif ($nbAnnDb>0 && $nbAnnDb<$nbAnnonces) {
$message.=date('Y/m/d - H:i:s') ." - ATTENTION : Il n'y a que $nbAnnDb annonce(s) $strJO en base sur les $nbAnnonces annonces présentes au JO du $dateDerParution !". EOL;
echo date('Y/m/d - H:i:s') ." - ATTENTION : Il n'y a que $nbAnnDb annonce(s) $strJO en base sur les $nbAnnonces annonces présentes au JO du $dateDerParution !". EOL;
echo date('Y/m/d - H:i:s') .' - Tentative de récupération des annonces...'. EOL;
}
else {
$message.=date('Y/m/d - H:i:s') ." - Il y a $nbAnnDb annonce(s) $strJO $reg5 en base sur les $nbAnnonces annonces présentes au JO du $dateDerParution !". EOL;
echo date('Y/m/d - H:i:s') ." - Il y a $nbAnnDb annonce(s) $strJO $reg5 en base sur les $nbAnnonces annonces présentes au JO du $dateDerParution !". EOL;
}
}
$tabAnnonces=explode('<div class="hr"><hr/></div>', utf8_encode($page['body']));
for ($j=1; $j<26 && isset($tabAnnonces[$j]); $j++)
$tabAnn[$j-1]=$tabAnnonces[$j];
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
$referer=$url;
for ($i=2; $i<=$nbPages; $i++)
{
if (!$lastJO) {
$data='';
$date1=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',$dateCour));
if ($depotComptes)
$date2=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',getNextDate($dateCour,0)));
else
$date2=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',getNextDate($dateCour)));
$url='http://www.journal-officiel.gouv.fr/association/index.php?ctx='.$ctx.'&page='.$i.'&JRE_ID='.urlencode($region).'&JPA_D_D='.$date1.'&JPA_D_F='.$date2;
} else {
$date1='';$date2='';$data='1';
$url='http://www.journal-officiel.gouv.fr/association/index.php?ctx='.$ctx.'&page='.$i;
}
$page=getUrl($url, '', '', $referer, false, 'www.journal-officiel.gouv.fr');
$tabAnnonces=explode('<div class="hr"><hr/></div>', utf8_encode($page['body']));
for ($j=1; $j<26; $j++) {
$k=$j+(25*($i-1))-1;
if ($k<$nbAnnonces)
$tabAnn[$k]=$tabAnnonces[$j];
}
flush();
if ($i==2)
echo date('Y/m/d - H:i:s') ." - Page $i/$nbPages";
else
echo ", $i/$nbPages";
if ($i==$nbPages)
echo '.'.EOL;
else
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
}
$tabActivites=array();
for ($i=0; $i<$nbAnnonces; $i++) {
$infoAnnBalo=getInfosAnnonceAsso($tabAnn[$i], $depotComptes);
$tabInfos=array();
preg_match_all("|<i>(.*)</i>|U", $infoAnnBalo['Annonce_Html'], $tabInfos);
$tabInfosGlobal=array_unique(array_merge($tabInfosGlobal, $tabInfos[1]));
// On recherche si nous n'avons pas déjà cette annonce en base !
if ($depotComptes) {
$AnnDb=$iDb->select('asso_bilans', 'count(*) AS nb', "Siren=".$infoAnnBalo['Siren']." AND Waldec='".$infoAnnBalo['Waldec']."' AND dateCloture='".$infoAnnBalo['dateCloture']."'", false, MYSQL_ASSOC);
// $AnnDb[0][0]=0;
} else {
$AnnDb=$iDb->select('asso', 'count(*) AS nb', "Num_Annonce='".$infoAnnBalo['Num_Annonce']."' AND Date_Parution='".$infoAnnBalo['Date_Parution']."' AND Num_Parution='".$infoAnnBalo['Num_Parution']."'", false, MYSQL_ASSOC);
$dateAff=$infoAnnBalo['Date_Parution'];
}
$nbAnnDb=$AnnDb[0]['nb'];
$i2=$i+1;
$strRegion=', '. $region;
if ($depotComptes) {
$table='asso_bilans';
// Si le bilan PDF n'est pas déjà sur le disk, on va le chercher !
switch ($region) {
case 'ASSOCIATION%2FCOMPTE': $infoAnnBalo['typeAsso']='ASS'; break;
case 'FONDATION%2FCOMPTE': $infoAnnBalo['typeAsso']='FON'; break;
case 'FONDS+DE+DOTATION%2FCOMPTE': $infoAnnBalo['typeAsso']='FOD'; break;
case 'AUTRE%2FCOMPTE':
default: $infoAnnBalo['typeAsso']='DIV'; break;
}
$dateAff=$dateCour.' ('.$infoAnnBalo['dateCloture'].')';
$infoAnnBalo['Assoc_Date_Declaration']=$dateCour;
$tabPdf=getPdfInfo($repPdfAssoCpt.'/'.basename($infoAnnBalo['pdfLink']));
if (!$tabPdf) {
$page=getUrl('http://www.journal-officiel.gouv.fr/'.$infoAnnBalo['pdfLink'], '', '', '', false);
@mkdir($repPdfAssoCpt);
$fp=@fopen($repPdfAssoCpt.'/'.basename($infoAnnBalo['pdfLink']), 'w');
if (!fwrite($fp, $page['body']) || !$fp) {
$message.=date('Y/m/d - H:i:s') .' - ERREUR : Problème de création du PDF '. basename($infoAnnBalo['pdfLink']) ." pour la parution du $dateAff $strRegion, Annonce $i2/$nbAnnonces, Association \"". $infoAnnBalo['Assoc_Nom'] .'" !'.EOL;
echo date('Y/m/d - H:i:s') .' - ERREUR : Problème de création du PDF '. basename($infoAnnBalo['pdfLink']) ." pour la parution du $dateAff $strRegion, Annonce $i2/$nbAnnonces, Association \"". $infoAnnBalo['Assoc_Nom'] .'" !'.EOL;
}
@fclose($fp);
$tabPdf=getPdfInfo($repPdfAssoCpt.'/'.basename($infoAnnBalo['pdfLink']));
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
}
$infoAnnBalo['pdfSize'] = $tabPdf['pdfSize'];
$infoAnnBalo['pdfVer'] = $tabPdf['version'];
$infoAnnBalo['pdfPage'] = $tabPdf['nbPages'];
} else {
$table='asso';
$tabTmp=explode('/',$infoAnnBalo['Activite']);
$tabActivites=array_merge($tabActivites, $tabTmp);
}
if ($nbAnnDb==1) {
echo date('Y/m/d - H:i:s') ." - Parution du $dateAff $strRegion, Annonce $i2/$nbAnnonces, Association \"". $infoAnnBalo['Assoc_Nom'] .'" déjà en base !'.EOL;
// L'annonce est déjà en base !
continue;
} else {
$message.=date('Y/m/d - H:i:s') ." - Parution du $dateAff $strRegion, Annonce $i2/$nbAnnonces, Association \"". $infoAnnBalo['Assoc_Nom'] .'"... enregistrement'.EOL;
echo date('Y/m/d - H:i:s') ." - Parution du $dateAff $strRegion, Annonce $i2/$nbAnnonces, Association \"". $infoAnnBalo['Assoc_Nom'] .'"... enregistrement'.EOL;
}
if (!$iDb->insert($table, $infoAnnBalo))
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . EOL;
}
if ($lastJO) {
print_r($tabInfosGlobal);
echo date('Y/m/d - H:i:s') .' - FIN du script'. EOL;
die();
}
unset($tabAnn);
} // Fin boucle région
if ($depotComptes)
$dateCour=getNextDate($dateCour,1);
else
$dateCour=getNextDate($dateCour);
} // Fin boucle Data
if ($depotComptes) {
//
$AnnDb=$iDb->select('annonces', 'MAX(dateSource) AS dateMAJ', "typeEven=3200", false, MYSQL_ASSOC);
$dateMaj=$AnnDb[0]['dateMAJ'];
// echo date('Y/m/d - H:i:s') ." - Dernière mise à jour des annonces dépots en collecte en date du $dateMaj.".EOL;
$AnnDb=$iDb->select('asso_bilans',
"Assoc_Nom AS raisonSociale, siren, sirenValide, dateCloture AS dateEffetFinP, Assoc_Date_Declaration AS dateJugement, dateInsert AS dateSource,
'3200' AS typeEven, 'DJOFFJ' AS tribunal, 'JS' AS source, Waldec",
"dateInsert>'$dateMaj' ORDER BY dateEffetFinP DESC", false, MYSQL_ASSOC);
$nbAnnonces=count($AnnDb);
$message.=date('Y/m/d - H:i:s') ." - Il y a $nbAnnonces annonces dépots à mettre en collecte en date du $dateMaj.".EOL;
echo date('Y/m/d - H:i:s') ." - Il y a $nbAnnonces annonces dépots à mettre en collecte en date du $dateMaj.".EOL;
foreach ($AnnDb as $i=>$tabInsert) {
$tabTmp=$iInsee->getIdentiteLight($tabInsert['siren']);
$tabInsert['adresse'] = $tabTmp['Adresse'];
$tabInsert['codePostal']= $tabTmp['CP'];
$tabInsert['ville'] = $tabTmp['Ville'];
$tabInsert['dateInsert']= date('YmdHis');
if (trim($tabInsert['Waldec'])<>'')
$tabInsert['complement']= 'Identifiant Waldec : '.$tabInsert['Waldec'];
unset($tabInsert['Waldec']);
//print_r($tabInsert);
//die();
if (!$iDb->insert('annonces', $tabInsert))
echo '';//date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . EOL;
}
sendMail('supportdev@scores-decisions.com', 'support@scores-decisions.com', '[CHARGEMENT] JO Association Comptes', $message);
}
echo date('Y/m/d - H:i:s') .' - FIN du script.'. EOL;

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +0,0 @@
<?
$tabINDREP=array('B'=>'bis',
'T'=>'ter',
'Q'=>'quater',
'C'=>'quinquies',
' '=>'',
''=>'');
switch($_SESSION['user']) {
case 'MHZ': $myEmail='mheitz@scores-decisions.com'; break;
case 'JMY': $myEmail='jmartory@scores-decisions.com'; break;
case 'YLN': $myEmail='buzuk@scores-decisions.com'; break;
}
?>

View File

@ -1,820 +0,0 @@
<?php
/***********************************************************************************************************/
/* CLASSE D'AFFICHAGE ET D'ENVOI D'UN FORMULAIRE */
/* */
/* Auteur : Bernard Martin-Rabaud */
/* Email : bernard@ediweb.org */
/* */
/* Cette classe permet de : */
/* - créer un formulaire */
/* - le contrôler et l'afficher pour confirmation */
/* - et retourner son contenu */
/***********************************************************************************************************/
define("_SEPA_AFFICHE_MULTIPLE", ", ");
define("_SEPA_VALEUR_MULTIPLE", "###");
$erreur_message = array("min" => "caractères minimum",
"max" => "caractères maximum",
"texte" => "texte non valide",
"alphanum" => "texte alphanumérique non valide",
"num" => "valeur numérique non valide",
"num-strict" => "valeur numérique non valide",
"tel" => "numéro de téléphone non valide",
"email" => "e-mail non valide",
"url" => "url non valide",
"date" => "date non valide",
"datej" => "jour non valide",
"datem" => "mois non valide",
"datem" => "année non valide",
"option" => "aucune option n'a été sélectionnée",
"vide" => "champ obligatoire");
class ClasseForm {
var $titre;
var $montrer_titre;
var $champs;
var $taille_std;
var $pivot_siecle;
var $mode_retour;
var $confirme;
var $mode;
var $champ_cour;
var $log;
var $name;
var $closeButton;
function ClasseForm($titre=null, $confirme=false, $autocomplete="on", $nom='formulaire', $closeButton=false) {
$this->titre = $titre;
$this->montrer_titre = true;
$this->champs = array();
$this->taille_std = null;
$this->pivot_siecle = 20;
$this->mode_retour = "noms & valeurs";
$this->confirme = $confirme;
if ($autocomplete==false || $autocomplete=="off" || $autocomplete==null)
$this->autocomplete = 'off';
else
$this->autocomplete = 'on';
$this->name=$nom;
$this->mode = null;
$this->champ_cour = 0;
$this->log = null;
$this->closeButton=$closeButton;
}
function afficher() {
$resultat = null;
echo $this->javascriptSubmit();
if (!isset($_POST) || !$_POST || ($_POST["classeform_acces"] == "annuler")) $this->mode = null;
else {
$this->affecterValeursChamps($_POST);
$succes = $this->controler();
if ($succes) $this->mode = $_POST["classeform_acces"];
else $this->mode = "erreur";
}
switch ($this->mode) {
case "confirme" :
echo $this->afficherTexte();
echo $this->afficherForm(true);
break;
case "modif" :
echo $this->afficherForm();
break;
case "envoi" :
$resultat = $this->retournerTableauValeurs($this->mode_retour);
//print_r($resultat);
if ($this->log) $this->enregistrerLog($this->retournerTableauValeurs("valeurs", $resultat));
break;
default :
echo $this->afficherForm();
}
return $resultat;
}
function ajoutChamp($label, $nom, $type, $format=null, $oblig=true, $min=null, $max=null, $defVal='') {
$this->champ_cour = sizeof($this->champs);
$this->champs[$this->champ_cour] = new ClasseFormChamp($label, $nom, $type, $format, $oblig, $min, $max, $defVal);
}
function ajoutChampText($label, $nom, $format=null, $oblig=true, $min=null, $max=null, $defVal='', $ajaxQuery='') {
$this->champ_cour = sizeof($this->champs);
$this->champs[$this->champ_cour] = new ClasseFormChamp($label, $nom, "text", $format, $oblig, $min, $max, $defVal, $ajaxQuery);
$this->champs[$this->champ_cour]->valCtlLimites($this->taille_std, 256);
}
function ajoutChampHidden($nom) {
$this->champ_cour = sizeof($this->champs);
$this->champs[$this->champ_cour] = new ClasseFormChamp('', $nom, "hidden");
}
function ajoutChampPassword($label, $nom, $min=null, $max=null) {
$this->champ_cour = sizeof($this->champs);
$this->champs[$this->champ_cour] = new ClasseFormChamp($label, $nom, "password", "", true, $min, $max);
$this->champs[$this->champ_cour]->valCtlLimites($this->taille_std, 100);
}
function ajoutChampTextarea($label, $nom, $format=null, $oblig=true, $min=null, $max=null) {
$this->champ_cour = sizeof($this->champs);
$this->champs[$this->champ_cour] = new ClasseFormChamp($label, $nom, "textarea", $format, $oblig, $min, $max);
$this->champs[$this->champ_cour]->valCtlLimites($this->taille_std, 3);
}
function ajoutChampFile($label, $nom, $oblig=true, $min=null, $max=null) {
$this->champ_cour = sizeof($this->champs);
$this->champs[$this->champ_cour] = new ClasseFormChamp($label, $nom, "file", "fichier", $oblig, $min, $max);
$this->champs[$this->champ_cour]->valCtlLimites($this->taille_std, 256);
}
function ajoutChampSelect($label, $nom, $oblig=true, $taille=null, $multiple=null) {
$this->champ_cour = sizeof($this->champs);
$this->champs[$this->champ_cour] = new ClasseFormChamp($label, $nom, "select", "", $oblig, null, null);
if ($taille) $this->champs[$this->champ_cour]->valCtlLimites($taille, null);
if ($multiple) $this->champs[$this->champ_cour]->valMultiple();
}
function ajoutChampRadio($label, $nom, $oblig=true, $fin_ligne=null) {
$this->champ_cour = sizeof($this->champs);
$args = func_get_args();
$this->champs[$this->champ_cour] = new ClasseFormChamp($label, $nom, "radio", "", $oblig);
if ($fin_ligne) $this->champs[$this->champ_cour]->valFinLigne($fin_ligne);
if (sizeof($args) > 4) $this->champs[$this->champ_cour]->valOptions(array_slice($args, 4));
}
function ajoutChampCheckbox($label, $nom, $oblig=true, $fin_ligne=null) {
$this->champ_cour = sizeof($this->champs);
$args = func_get_args();
$this->champs[$this->champ_cour] = new ClasseFormChamp($label, $nom, "checkbox", "", $oblig);
if ($fin_ligne) $this->champs[$this->champ_cour]->valFinLigne($fin_ligne);
if (sizeof($args) > 4) $this->champs[$this->champ_cour]->valOptions(array_slice($args, 4));
}
function ajoutTexte($texte) {
$this->champ_cour = sizeof($this->champs);
$this->champs[$this->champ_cour] = new ClasseFormChamp($texte, "", "", "", false);
}
function cacherTitre() {
$this->montrer_titre = false;
}
function valTailleStd($taille) {
$this->taille_std = $taille;
}
function valPivotSiecle($pivot) {
$this->pivot_siecle = $pivot;
}
function valModeRetour($mode) {
$this->mode_retour = $mode;
}
function valLog($log) {
$this->log = $log;
}
function valChampFormat($format, $min=null, $max=null) {
$this->champs[$this->champ_cour]->valFormat($format, $min, $max);
}
function valChampLimites($min, $max=null) {
$this->champs[$this->champ_cour]->valLimites($min, $max);
}
function valChampCtlLimites($min, $max=null) {
$this->champs[$this->champ_cour]->valCtlLimites($min, $max);
}
function valChampMultiple() {
$this->champs[$this->champ_cour]->valMultiple();
}
function valChampOptions() {
if ((func_num_args() == 1) && is_array(func_get_arg(0))) $args = func_get_arg(0);
else $args = func_get_args();
$this->champs[$this->champ_cour]->valOptions($args);
}
function valChampDescro($descro) {
$this->champs[$this->champ_cour]->valDescro($descro);
}
function valChampFinLigne($fin_ligne) {
$this->champs[$this->champ_cour]->valFinLigne($fin_ligne);
}
function valChampOption1Vide($option_vide) {
$this->champs[$this->champ_cour]->valOption1Vide($option_vide);
}
function afficherForm($cache=false) {
$html = "<form method='post' action='javascript:location.href' name='$this->name' 'id='$this->name' autocomplete='$this->autocomplete'>\n";
$html .= "<fieldset>\n";
$html .= "<table class='form-table' cellspacing='0' cellpadding='2' border='0'>\n";
if ($this->titre && $this->montrer_titre && !$cache)
$html .= "<caption class='form-caption'>$this->titre" . (($this->mode == "erreur") ? " <span class='erreur'>(erreurs)</span>" : "") . "</caption>\n";
else if (($this->mode == "erreur"))
$html .= "<caption class='form-caption'><span class='erreur'>(erreurs)</span></caption>\n";
for ($i=0;$i<sizeof($this->champs);$i++) {
if ($cache) $html .= $this->champs[$i]->afficherFormCache();
else $html .= $this->champs[$i]->afficherForm();
}
if ($valeurs) $html .= $this->afficherBoutonsForm();
else $html .= $this->afficherBoutonsForm();
if ($this->existeChampFacultatif())
$html .= "<tr><td class='form-info-obligatoire' colspan='2'>&nbsp;</td></tr>";
$html .= "</fieldset></table></form>\n";
return $html;
}
function afficherBoutonsForm() {
if (($this->mode == null) || ($this->mode == "erreur")) {
if ($this->confirme)
$html = "<tr><td><input type='hidden' name='classeform_acces' value='confirme' /></td>";
else $html = "<tr><td><input type='hidden' name='classeform_acces' value='envoi' /></td>";
}
else $html = "<tr><td><input type='hidden' name='classeform_acces' /></td>";
$html .= "<td><input class='form-bouton' type='button' value='Envoyer' onClick='soumettre(\"envoi\")'/>";
if ($this->confirme) {
if ($this->mode == "confirme") {
$html .= " <input class='form-bouton' type='button' value='Modifier'";
$html .= " onClick='soumettre(\"modif\")'; />";
}
else {
$html .= " <input class='form-bouton' type='button' value='Voir avant envoi'";
$html .= " onClick='soumettre(\"confirme\")'; />";
}
}
$html .= " <input class='form-bouton' type='reset' value='Rétablir' onClick='soumettre(\"annuler\")' />\n";
if ($this->closeButton)
$html .= " <input class='form-bouton' type='button' value='Annuler & Fermer' onClick='soumettre(\"fermer\")' />\n";
$html .= "</td></tr>";
return $html;
}
function afficherTexte() {
$html = "<table class='form-table' cellspacing='0' cellpadding='2' border='0'>\n";
if ($this->titre) $html .= "<caption class='form-caption'>$this->titre</caption>\n";
for ($i=0;$i<sizeof($this->champs);$i++)
$html .= $this->champs[$i]->afficherTexte();
$html .= "</table>\n";
return $html;
}
function javascriptSubmit() {
$html = "<script language='JavaScript'>\n";
$html .= "<!-- \n";
$html .= "function soumettre(acces) {\n";
$html .= " if (acces=='fermer') self.close();\n";
$html .= " else {\n";
$html .= " with (document.forms[0]) {\n";
$html .= " classeform_acces.value=acces; action=location.href; submit();\n";
$html .= " }\n";
$html .= " }\n";
$html .= "}\n";
$html .= "// -->\n";
$html .= "</script>\n";
return $html;
}
function controler() {
$succes = true;
for ($i=0;$i<sizeof($this->champs);$i++) {
$this->champs[$i]->valeur_db=$this->champs[$i]->valeur;
if ( $this->champs[$i]->aControler() && ($this->champs[$i]->controler($this->pivot_siecle) == false) ) {
$succes = false;
}
}
return $succes;
}
function affecterValeursChamps($valeurs) {
$valeurs = convertirPost($valeurs);
for ($i=0;$i<sizeof($this->champs);$i++)
$this->champs[$i]->affecterValeur($valeurs);
}
function retournerTableauValeurs($mode_retour) {
$retour = array();
for ($i=0;$i<sizeof($this->champs);$i++)
{// echo "------------------------------------\r\n$i : \r\n";
//print_r($this->champs);
//print_r($this->champs[$i]);
//echo "\r\n\r\n";
$this->champs[$i]->retournerTableauValeurs(&$retour, $mode_retour);}
return $retour;
}
function envoyerMail() {
$mail = new ClasseMail($this->titre);
$mail->contenu = $this->champs;
return $mail->envoyer($this->cible);
}
function existeChampFacultatif() {
$ok = false;
for ($i=0;$i<sizeof($this->champs);$i++) {
if ($this->champs[$i]->type && !$this->champs[$i]->valObligatoire()) {
$ok = true;
break;
}
}
return $ok;
}
function enregistrerLog($valeurs, $resultat) {
if ($f = fopen($this->log, "a")) {
$texte = ($resultat ? "" : "ECHEC ") . "[ " . date("d/mY H:i:s") . " ] - ";
$texte .= $this->titre ? "$this->titre - " : "";
$texte .= $valeurs;
fputs($f, $texte);
fclose($f);
}
}
}
class ClasseFormChamp {
var $label;
var $nom;
var $type;
var $format;
var $oblig;
var $taille_max;
var $taille_min;
var $valeur;
var $options;
var $descro;
var $multiple;
var $fonction;
var $ctl_taille1;
var $ctl_taille2;
var $fin_ligne;
var $erreur;
var $valeur_defaut;
var $valeur_db;
var $ajaxQuey;
function ClasseFormChamp($label, $nom, $type=null, $format=null, $oblig=true, $min=null, $max=null, $valDef='', $ajaxQuery='') {
$this->label = $label;
$this->nom = $nom;
$this->type = $type;
$this->format = $format;
$this->taille_min = $min;
$this->taille_max = $max;
$this->oblig = $oblig;
if (($type == "select") || ($type == "checkbox") || ($type == "radio")) {
$this->valeur = array();
$this->options = array();
}
else {
$this->valeur = null;
$this->options = null;
}
$this->descro = null;
if ($type == "checkbox") $this->multiple = true;
else $this->multiple = false;
$this->fonction = null;
$this->ctl_taille1 = null;
$this->ctl_taille2 = null;
$this->fin_ligne = null;
$this->erreur = null;
$this->valeur_defaut = $valDef;
$this->ajaxQuey = $ajaxQuery;
// $this->valeur_db=$this->valeur;
}
function valObligatoire() {
if ($this->oblig) return true;
else return false;
}
function valFormat($format, $long_min=null, $long_max=null) {
if ($this->type == "text") {
$this->format = $format;
if ($long_min) $this->taille_min = $long_min;
if ($long_max) $this->taille_max = $long_max;
}
}
function valLimites($min, $max) {
if (($this->type == "text") || ($this->type == "password") || ($this->type == "textarea") || ($this->type == "file")) {
$this->taille_min = $min;
$this->taille_max = $max;
}
}
function valCtlLimites($taille1, $taille2) {
if (($this->type == "text") || ($this->type == "password") || ($this->type == "textarea") || ($this->type == "select") || ($this->type == "file")) {
$this->ctl_taille1 = $taille1;
if ($taille2 && ($this->type != "select")) $this->ctl_taille2 = $taille2;
}
}
function valFonction($fonction) {
$this->fonction = $fonction;
}
function valDescro($descro) {
if (($this->type == "text") || ($this->type == "password") || ($this->type == "textarea") || ($this->type == "file")) {
$this->descro = $descro;
}
}
function valMultiple() {
if ($this->type == "select") $this->multiple = true;
}
function valFinLigne($fin_ligne) {
if (($this->type == "radio") || ($this->type == "checkbox")) $this->fin_ligne = $fin_ligne;
}
function valOptions($options) {
if ($this->champAOptions()) {
if (is_array($options)) {
foreach ($options as $option) {
if (preg_match("/^s[e|é]lection\s?=\s?(.+)$/", $option, $regs))
$this->options[] = new ClasseFormOption($regs[1], true);
else $this->options[] = new ClasseFormOption($option);
}
}
else {
if (preg_match("/^s[e|é]lection\s?=\s?(.+)$/", $options, $regs))
$this->options[] = new ClasseFormOption($regs[1], true);
else $this->options[] = new ClasseFormOption($options);
}
}
}
function ValOption1Vide($option_vide) {
if ($this->type == "select") $this->fin_ligne = $option_vide;
}
function afficherForm() {
if (!$this->type) $html = "<tr><td class='form-label' colspan='2'>$this->label</td></tr>";
else {
if (!is_null($this->erreur))
$html = "<tr><td class='form-label-erreur'> > $this->label (<font size='-2'>$this->erreur</font>)</td>";
else if ($this->oblig) $html = "<tr><td class='form-label-obligatoire'>$this->label</td>";
else $html .= "<tr><td class='form-label-facultatif'>$this->label</td>";
$html .= "<td class='form-td'>";
switch ($this->type) {
case "text" : $html .= $this->afficherFormTexte();
break;
case "password" : $html .= $this->afficherFormPassword();
break;
case "textarea" : $html .= $this->afficherFormTextarea();
break;
case "select" : $html .= $this->afficherFormSelect();
break;
case "radio" : $html .= $this->afficherFormRadio();
break;
case "checkbox" : $html .= $this->afficherFormCheckbox();
break;
case "file" : $html .= $this->afficherFormFile();
break;
case "hidden" : $html .= $this->afficherFormCache();
break;
}
$html .= "</td></tr>\n";
}
return $html;
}
function afficherFormCache() {
$html = "<input type='hidden' name='$this->nom' id='$this->nom'";
if (is_array($this->valeur)) {
$chaine = implode(_SEPA_VALEUR_MULTIPLE, $this->valeur);
$html .= " value=\"" . $chaine . "\" />\n";
}
else $html .= " value=\"" . $this->valeur . "\" />\n";
return $html;
}
function afficherTexte() {
$html = "<tr><td class='form-label'>$this->label</td><td class='form-td'>";
if (is_array($this->valeur)) {
$chaine = implode(_SEPA_AFFICHE_MULTIPLE, $this->valeur);
$html .= $chaine;
}
else $html .= $this->valeur;
$html .= "</td></tr>\n";
return $html;
}
function champAOptions() {
if (($this->type == "select") || ($this->type == "checkbox") || ($this->type == "radio")) return true;
else return false;
}
function controler($pivot=null) {
global $erreur_message;
//$this->valeur_db=$this->valeur;
if ($this->type) {
if (($this->type == "text") || ($this->type == "password") || ($this->type == "textarea") || ($this->type == "file")) {
$this->controlerChampTexte($pivot);
if (is_null($this->erreur)) return true;
else return false;
}
else if (($this->type == "select") || ($this->type == "radio")) {
if (!$this->valeur || (sizeof($this->valeur) == 0)) {
$this->erreur = $erreur_message["option"];
return false;
}
else return true;
}
else return true;
}
else return true;
}
function aControler() {
if ($this->type && $this->oblig) return true;
else return false;
//return true;
}
function retournerTableauValeurs(&$tableau, $mode_retour) {
if (is_array($this->valeur)) {$valeur = implode(_SEPA_VALEUR_MULTIPLE, $this->valeur);
print_r($this->valeur);
die('Cas non géré dans inc_classeform.php');
}
else $valeur = $this->valeur_db;
switch ($mode_retour) {
case "noms & valeurs" :
$tableau[$this->nom] = $valeur;
break;
case "labels & valeurs" :
$tableau[$this->label] = $valeur;
break;
case "valeurs" :
$tableau[] = $valeur;
}
//echo '$this->nom='.$this->nom.', $valeur='.$valeur."\r\n";
}
function affecterValeur($valeurs) {
$valeur = $valeurs[$this->nom];
if ($this->champAOptions()) {
if (strpos($valeur, _SEPA_VALEUR_MULTIPLE) !== false)
$this->valeur = explode(_SEPA_VALEUR_MULTIPLE, $valeur);
else $this->valeur = $valeur;
for ($i=0;$i<sizeof($this->options);$i++)
$this->options[$i]->selectionnerSiValeur($this->valeur);
}
else $this->valeur = $valeur;
}
function controlerChampTexte($pivot) {
global $erreur_message;
if (trim($this->valeur) == "") $this->erreur = $erreur_message["vide"];
else {
$this->erreur = champTexteConforme($this->valeur, $this->taille_min, $this->taille_max);
if (is_null($this->erreur) && $this->format) {
switch ($this->format) {
case "alphanum" :
if (!controlerAlphanum($this->valeur)) $this->erreur = $erreur_message["alphanum"];
break;
case "num" :
if (!controlerNum($this->valeur)) $this->erreur = $erreur_message["num"];
break;
case "num-strict" :
if (!controlerNum($this->valeur, true)) $this->erreur = $erreur_message["num"];
break;
case "tel" :
if (!controlerTel($this->valeur)) $this->erreur = $erreur_message["tel"];
break;
case "email" :
if (!controlerEmail($this->valeur)) $this->erreur = $erreur_message["email"];
break;
case "date" :
if (!controlerDate($this->valeur, $pivot)) $this->erreur = $erreur_message["date"];
$tmp=explode('/', $this->valeur);
if ($tmp[0]*1<10) $date_j='0'.$tmp[0]*1; else $date_j=''.$tmp[0]*1;
if ($date_j*1 < 1 || $date_j>31) $this->erreur = $erreur_message["datej"];
if ($tmp[1]*1<10) $date_m='0'.$tmp[1]*1; else $date_m=''.$tmp[1]*1;
if ($date_m*1 < 1 || $date_m>12) $this->erreur = $erreur_message["datem"];
$date_a=''.$tmp[2]*1;
if ($date_a*1 < 1890 || $date_a>date('Y')) $this->erreur = $erreur_message["datea"];
$this->valeur_db=$date_a.'-'.$date_m.'-'.$date_j;
break;
case "url" :
if (!controlerUrl($this->valeur)) $this->erreur = $erreur_message["url"];
break;
}
}
}
}
function afficherFormTexte() {
$html .= "<input class='form-input' type='text' name='$this->nom' size='$this->ctl_taille1' ";
if ($this->ctl_taille2) $html .= " maxlength='$this->ctl_taille2'";
if ($this->valeur) $html .= ' value="' . $this->valeur . '" />';
else if ($this->valeur_defaut) $html .= ' value="' . $this->valeur_defaut . '" />';
else if ($this->descro) { $html .= ' value="' . htmlentities(stripslashes($this->descro), ENT_QUOTES) . '"';
$html .= " onFocus='this.value=\"\"' />";
}
elseif ($this->ajaxQuey) $html .= " id='$this->nom' onkeyup=\"loadData('$this->nom');\" />
<ul id='zoneResultats_$this->nom' style='visibility: hidden;'></ul>";
else $html .= ' value="" />';
return $html;
}
function afficherFormPassword() {
$html .= "<input class='form-input' type='password' name='$this->nom' size='$this->ctl_taille1'";
if ($this->ctl_taille2) $html .= " maxlength='$this->ctl_taille2'";
if ($this->valeur) $html .= ' value="' . $this->valeur . '" />';
else if ($this->descro) {
$html .= ' value="' . htmlentities(stripslashes($this->descro), ENT_QUOTES) . '"';
$html .= " onFocus='this.value=\"\"' />";
}
else $html .= " value='' />";
return $html;
}
function afficherFormTextarea() {
$html .= "<textarea class='form-input' name='$this->nom' cols='$this->ctl_taille1'";
if ($this->ctl_taille2) $html .= " rows='$this->ctl_taille2'";
else if ($this->taille_max) {
$rows = ceil($this->taille_max / $taille_std);
$html .= " rows='$rows'";
}
else $html .= " rows='3'";
if ((trim($this->valeur) == "") || $this->descro) $html .= " onFocus='this.value=\"\"'>";
else $html .= ">";
if (trim($this->valeur)) $html .= $this->valeur;
else if ($this->descro) $html .= htmlentities(stripslashes($this->descro), ENT_QUOTES);
$html .= "</textarea>";
return $html;
}
function afficherFormSelect() {
$html = "<select name='$this->nom" . ($this->multiple ? "[]'" : "'");
if ($this->fin_ligne && $this->multiple)
$html .= " size='" . (($this->ctl_taille1 >= 2) ? $this->ctl_taille1 : 2 ) . "'";
else $html .= " size='" . ($this->ctl_taille1 ? $this->ctl_taille1 : 1) . "'";
$html .= $this->multiple ? " multiple>\n" : ">\n";
if ($this->fin_ligne) {
$html .= "<option class='form-option-entete' value=''>$this->fin_ligne</option>\n";
}
for ($i=0;$i<sizeof($this->options);$i++)
$html .= $this->options[$i]->afficherFormSelect();
$html .= "</select>\n";
return $html;
}
function afficherFormRadio() {
for ($i=0;$i<sizeof($this->options);$i++) {
$html .= $this->options[$i]->afficherFormCase("radio", $this->nom, $this->oblig);
$html .= $this->fin_ligne ? "<br />" : "&nbsp;";
}
return $html;
}
function afficherFormCheckbox() {
for ($i=0;$i<sizeof($this->options);$i++) {
$html .= $this->options[$i]->afficherFormCase("checkbox", "$this->nom[]", $this->oblig);
$html .= $this->fin_ligne ? "<br />" : "&nbsp;";
}
return $html;
}
function afficherFormFile() {
$html .= "<input class='form-input' type='file' name='$this->nom' size='$this->ctl_taille1'";
if ($this->taille_max) $html .= " maxlength='$this->ctl_taille2'";
if ($this->descro) $html .= " value='$this->descro' onChange='this.value=\"\"' />";
else $html .= " value='' />";
return $html;
}
}
class ClasseFormOption {
var $valeur;
var $selection;
function ClasseFormOption($val, $selec=false) {
$this->valeur = htmlspecialchars(stripslashes($val), ENT_QUOTES);
$this->selection = $selec;
}
function afficherFormSelect() {
echo "<!--Valeur du select='$this->valeur'-->";
if (strpos($this->valeur,':')>0) {
$tab=explode(':', $this->valeur);
$html = '<option value="'.$tab[0] .'"' . ($this->selection ? ' selected>' : '>');
$html .= $tab[1]."</option>\n";
}
else {
$html = '<option value="'. $this->valeur .'"' . ($this->selection ? ' selected>' : '>');
$html .= "$this->valeur</option>\n";
}
return $html;
}
function afficherFormCase($type, $nom, $oblig) {
$html = "<input type='$type' name='$nom' value=\"$this->valeur\"";
$html .= ($this->selection) ? " checked />" : " />";
if ($oblig) $html .= "<span class='form-input-obligatoire'>" . $this->valeur . "<span>";
else $html .= "<span class='form-input-facultatif'>" . $this->valeur . "<span>";
return $html;
}
function selectionnerSiValeur($valeurs) {
if (is_array($valeurs)) {
if (in_array($this->valeur, $valeurs)) $this->selection = true;
else $this->selection = false;
}
else if ($this->valeur == $valeurs) $this->selection = true;
else $this->selection = false;
}
}
function controlerEmail($valeur) {
if (preg_match("/^[\w|-]+(\.[\w|-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$/", $valeur)) return true;
else return false;
}
function controlerDate($valeur, $pivot) {
if (preg_match("/^(\d{1,2})[\/|\-|\.](\d{1,2})[\/|\-|\.](\d\d)(\d\d)?$/", $valeur, $regs)) {
$jour = ($regs[1] < 10) ? "0".$regs[1] : $regs[1];
$mois = ($regs[2] < 10) ? "0".$regs[2] : $regs[2];
if ($regs[4]) $an = $regs[3] . $regs[4];
else {
if ($pivot) {
if ($regs[3] <= $pivot) $an = $regs[3] + 2000;
else $an = $regs[3] + 1900;
}
else $an = $regs[3] + 2000;
}
if (checkdate($mois, $jour, $an)) return true;
else return false;
}
else return false;
}
function controlerUrl($valeur) {
if (ereg("^((http|ftp):\/\/)?([0-9a-z_]+[\.\-])+[0-9a-z]+(\/[0-9a-z_]+)*(\/[0-9a-z_]+\.[0-9a-z]+)?$", $valeur)) return true;
else return false;
}
function controlerAlphanum($valeur) {
//if (preg_match("/^[\w|\d|\s|'|\"|\\|,|\.|\-|&|#|;]+$/", $valeur)) return true;
//else return false;
return true;
}
function controlerNum($valeur, $strict=false) {
if ($strict) {
if (ereg("^[0-9]+$", $valeur)) return true;
else return false;
}
else if (preg_match("/^[\d|\s|\-|\+|E|e|,|\.]+$/", $valeur)) return true;
else return false;
}
function controlerTel($valeur) {
if (preg_match("/^[\d|\s|\-|\.|\(|\)]+$/", $valeur)) return true;
else return false;
}
function champTexteConforme($valeur, $min, $max) {
global $erreur_message;
if ($min && (strlen($valeur) < $min)) return $min . " " . $erreur_message["min"];
else if ($max && (strlen($valeur) > $max)) return $max . " " . $erreur_message["max"];
else if (preg_match('/(.)\1{4,}/', $valeur)) return $erreur_message["texte"];
else return null;
}
function convertirPost($post) {
$result = array();
foreach ($post as $cle => $valeur) {
if (is_array($valeur)) {
for ($i=0;$i<sizeof($valeur);$i++)
$result[$cle][] = stripslashes($valeur[$i]);//htmlspecialchars(, ENT_QUOTES);
}
else $result[$cle] =stripslashes($valeur);// htmlspecialchars(stripslashes(), ENT_QUOTES);
}
return $result;
}
?>

View File

@ -1,764 +0,0 @@
<?php
/***********************************************************************************************************/
/* CLASSE D'AFFICHAGE ET D'ENVOI D'UN FORMULAIRE */
/* */
/* Auteur : Bernard Martin-Rabaud */
/* Email : bernard@ediweb.org */
/* */
/* Cette classe permet de : */
/* - créer un formulaire */
/* - le contrôler et l'afficher pour confirmation */
/* - et retourner son contenu */
/***********************************************************************************************************/
define("_SEPA_AFFICHE_MULTIPLE", ", ");
define("_SEPA_VALEUR_MULTIPLE", "###");
$erreur_message = array("min" => "caractères minimum",
"max" => "caractères maximum",
"texte" => "texte non valide",
"alphanum" => "texte alphanumérique non valide",
"num" => "valeur numérique non valide",
"num-strict" => "valeur numérique non valide",
"tel" => "numéro de téléphone non valide",
"email" => "e-mail non valide",
"url" => "url non valide",
"date" => "date non valide",
"option" => "aucune option n'a été sélectionnée",
"vide" => "champ obligatoire");
class ClasseForm {
var $titre;
var $montrer_titre;
var $champs;
var $taille_std;
var $pivot_siecle;
var $mode_retour;
var $confirme;
var $mode;
var $champ_cour;
var $log;
function ClasseForm($titre=null, $confirme=false) {
$this->titre = $titre;
$this->montrer_titre = true;
$this->champs = array();
$this->taille_std = null;
$this->pivot_siecle = 20;
$this->mode_retour = "noms & valeurs";
$this->confirme = $confirme;
$this->mode = null;
$this->champ_cour = 0;
$this->log = null;
}
function afficher() {
$resultat = null;
echo $this->javascriptSubmit();
if (!isset($_POST) || !$_POST || ($_POST["classeform_acces"] == "annuler")) $this->mode = null;
else {
$this->affecterValeursChamps($_POST);
$succes = $this->controler();
if ($succes) $this->mode = $_POST["classeform_acces"];
else $this->mode = "erreur";
}
switch ($this->mode) {
case "confirme" :
echo $this->afficherTexte();
echo $this->afficherForm(true);
break;
case "modif" :
echo $this->afficherForm();
break;
case "envoi" :
$resultat = $this->retournerTableauValeurs($this->mode_retour);
if ($this->log) $this->enregistrerLog($this->retournerTableauValeurs("valeurs", $resultat));
break;
default :
echo $this->afficherForm();
}
return $resultat;
}
function ajoutChamp($label, $nom, $type, $format=null, $oblig=true, $min=null, $max=null, $defVal='') {
$this->champ_cour = sizeof($this->champs);
$this->champs[$this->champ_cour] = new ClasseFormChamp($label, $nom, $type, $format, $oblig, $min, $max, $defVal);
}
function ajoutChampText($label, $nom, $format=null, $oblig=true, $min=null, $max=null, $defVal='') {
$this->champ_cour = sizeof($this->champs);
$this->champs[$this->champ_cour] = new ClasseFormChamp($label, $nom, "text", $format, $oblig, $min, $max, $defVal);
$this->champs[$this->champ_cour]->valCtlLimites($this->taille_std, 256);
}
function ajoutChampPassword($label, $nom, $min=null, $max=null) {
$this->champ_cour = sizeof($this->champs);
$this->champs[$this->champ_cour] = new ClasseFormChamp($label, $nom, "password", "", true, $min, $max);
$this->champs[$this->champ_cour]->valCtlLimites($this->taille_std, 100);
}
function ajoutChampTextarea($label, $nom, $format=null, $oblig=true, $min=null, $max=null) {
$this->champ_cour = sizeof($this->champs);
$this->champs[$this->champ_cour] = new ClasseFormChamp($label, $nom, "textarea", $format, $oblig, $min, $max);
$this->champs[$this->champ_cour]->valCtlLimites($this->taille_std, 3);
}
function ajoutChampFile($label, $nom, $oblig=true, $min=null, $max=null) {
$this->champ_cour = sizeof($this->champs);
$this->champs[$this->champ_cour] = new ClasseFormChamp($label, $nom, "file", "fichier", $oblig, $min, $max);
$this->champs[$this->champ_cour]->valCtlLimites($this->taille_std, 256);
}
function ajoutChampSelect($label, $nom, $oblig=true, $taille=null, $multiple=null) {
$this->champ_cour = sizeof($this->champs);
$this->champs[$this->champ_cour] = new ClasseFormChamp($label, $nom, "select", "", $oblig, null, null);
if ($taille) $this->champs[$this->champ_cour]->valCtlLimites($taille, null);
if ($multiple) $this->champs[$this->champ_cour]->valMultiple();
}
function ajoutChampRadio($label, $nom, $oblig=true, $fin_ligne=null) {
$this->champ_cour = sizeof($this->champs);
$args = func_get_args();
$this->champs[$this->champ_cour] = new ClasseFormChamp($label, $nom, "radio", "", $oblig);
if ($fin_ligne) $this->champs[$this->champ_cour]->valFinLigne($fin_ligne);
if (sizeof($args) > 4) $this->champs[$this->champ_cour]->valOptions(array_slice($args, 4));
}
function ajoutChampCheckbox($label, $nom, $oblig=true, $fin_ligne=null) {
$this->champ_cour = sizeof($this->champs);
$args = func_get_args();
$this->champs[$this->champ_cour] = new ClasseFormChamp($label, $nom, "checkbox", "", $oblig);
if ($fin_ligne) $this->champs[$this->champ_cour]->valFinLigne($fin_ligne);
if (sizeof($args) > 4) $this->champs[$this->champ_cour]->valOptions(array_slice($args, 4));
}
function ajoutTexte($texte) {
$this->champ_cour = sizeof($this->champs);
$this->champs[$this->champ_cour] = new ClasseFormChamp($texte, "", "", "", false);
}
function cacherTitre() {
$this->montrer_titre = false;
}
function valTailleStd($taille) {
$this->taille_std = $taille;
}
function valPivotSiecle($pivot) {
$this->pivot_siecle = $pivot;
}
function valModeRetour($mode) {
$this->mode_retour = $mode;
}
function valLog($log) {
$this->log = $log;
}
function valChampFormat($format, $min=null, $max=null) {
$this->champs[$this->champ_cour]->valFormat($format, $min, $max);
}
function valChampLimites($min, $max=null) {
$this->champs[$this->champ_cour]->valLimites($min, $max);
}
function valChampCtlLimites($min, $max=null) {
$this->champs[$this->champ_cour]->valCtlLimites($min, $max);
}
function valChampMultiple() {
$this->champs[$this->champ_cour]->valMultiple();
}
function valChampOptions() {
if ((func_num_args() == 1) && is_array(func_get_arg(0))) $args = func_get_arg(0);
else $args = func_get_args();
$this->champs[$this->champ_cour]->valOptions($args);
}
function valChampDescro($descro) {
$this->champs[$this->champ_cour]->valDescro($descro);
}
function valChampFinLigne($fin_ligne) {
$this->champs[$this->champ_cour]->valFinLigne($fin_ligne);
}
function valChampOption1Vide($option_vide) {
$this->champs[$this->champ_cour]->valOption1Vide($option_vide);
}
function afficherForm($cache=false) {
$html = "<form method='post' action='javascript:location.href'>\n";
$html .= "<table class='form-table' cellspacing='0' cellpadding='2' border='0'>\n";
if ($this->titre && $this->montrer_titre && !$cache)
$html .= "<caption class='form-caption'>$this->titre" . (($this->mode == "erreur") ? " <span class='erreur'>(erreurs)</span>" : "") . "</caption>\n";
else if (($this->mode == "erreur"))
$html .= "<caption class='form-caption'><span class='erreur'>(erreurs)</span></caption>\n";
for ($i=0;$i<sizeof($this->champs);$i++) {
if ($cache) $html .= $this->champs[$i]->afficherFormCache();
else $html .= $this->champs[$i]->afficherForm();
}
if ($valeurs) $html .= $this->afficherBoutonsForm();
else $html .= $this->afficherBoutonsForm();
if ($this->existeChampFacultatif())
$html .= "<tr><td class='form-info-obligatoire' colspan='2'>&nbsp;</td></tr>";
$html .= "</table></form>\n";
return $html;
}
function afficherBoutonsForm() {
if (($this->mode == null) || ($this->mode == "erreur")) {
if ($this->confirme)
$html = "<tr><td><input type='hidden' name='classeform_acces' value='confirme' /></td>";
else $html = "<tr><td><input type='hidden' name='classeform_acces' value='envoi' /></td>";
}
else $html = "<tr><td><input type='hidden' name='classeform_acces' /></td>";
$html .= "<td><input class='form-bouton' type='button' value='Envoyer' onClick='soumettre(\"envoi\")'/>";
if ($this->confirme) {
if ($this->mode == "confirme") {
$html .= " <input class='form-bouton' type='button' value='Modifier'";
$html .= " onClick='soumettre(\"modif\")'; />";
}
else {
$html .= " <input class='form-bouton' type='button' value='Voir avant envoi'";
$html .= " onClick='soumettre(\"confirme\")'; />";
}
}
$html .= " <input class='form-bouton' type='reset' value='Annuler' onClick='soumettre(\"annuler\")' /></td></tr>\n";
return $html;
}
function afficherTexte() {
$html = "<table class='form-table' cellspacing='0' cellpadding='2' border='0'>\n";
if ($this->titre) $html .= "<caption class='form-caption'>$this->titre</caption>\n";
for ($i=0;$i<sizeof($this->champs);$i++)
$html .= $this->champs[$i]->afficherTexte();
$html .= "</table>\n";
return $html;
}
function javascriptSubmit() {
$html = "<script language='JavaScript'>\n";
$html .= "<!-- \n";
$html .= "function soumettre(acces) { with (document.forms[0]) {";
$html .= "classeform_acces.value=acces; action=location.href; submit();";
$html .= "} }\n";
$html .= "// -->\n";
$html .= "</script>\n";
return $html;
}
function controler() {
$succes = true;
for ($i=0;$i<sizeof($this->champs);$i++) {
if ($this->champs[$i]->aControler() && ($this->champs[$i]->controler($this->pivot_siecle) == false)) {
$succes = false;
}
}
return $succes;
}
function affecterValeursChamps($valeurs) {
$valeurs = convertirPost($valeurs);
for ($i=0;$i<sizeof($this->champs);$i++)
$this->champs[$i]->affecterValeur($valeurs);
}
function retournerTableauValeurs($mode_retour) {
$retour = array();
for ($i=0;$i<sizeof($this->champs);$i++)
{ //echo "------------------------------------\r\n$i : \r\n";
//print_r($this->champs);
// print_r($this->champs[$i]);
//echo "\r\n\r\n";
$this->champs[$i]->retournerTableauValeurs(&$retour, $mode_retour);}
return $retour;
}
function envoyerMail() {
$mail = new ClasseMail($this->titre);
$mail->contenu = $this->champs;
return $mail->envoyer($this->cible);
}
function existeChampFacultatif() {
$ok = false;
for ($i=0;$i<sizeof($this->champs);$i++) {
if ($this->champs[$i]->type && !$this->champs[$i]->valObligatoire()) {
$ok = true;
break;
}
}
return $ok;
}
function enregistrerLog($valeurs, $resultat) {
if ($f = fopen($this->log, "a")) {
$texte = ($resultat ? "" : "ECHEC ") . "[ " . date("d/mY H:i:s") . " ] - ";
$texte .= $this->titre ? "$this->titre - " : "";
$texte .= $valeurs;
fputs($f, $texte);
fclose($f);
}
}
}
class ClasseFormChamp {
var $label;
var $nom;
var $type;
var $format;
var $oblig;
var $taille_max;
var $taille_min;
var $valeur;
var $options;
var $descro;
var $multiple;
var $fonction;
var $ctl_taille1;
var $ctl_taille2;
var $fin_ligne;
var $erreur;
var $valeur_defaut;
var $valeur_db;
function ClasseFormChamp($label, $nom, $type=null, $format=null, $oblig=true, $min=null, $max=null, $valDef='') {
$this->label = $label;
$this->nom = $nom;
$this->type = $type;
$this->format = $format;
$this->taille_min = $min;
$this->taille_max = $max;
$this->oblig = $oblig;
if (($type == "select") || ($type == "checkbox") || ($type == "radio")) {
$this->valeur = array();
$this->options = array();
}
else {
$this->valeur = null;
$this->options = null;
}
$this->descro = null;
if ($type == "checkbox") $this->multiple = true;
else $this->multiple = false;
$this->fonction = null;
$this->ctl_taille1 = null;
$this->ctl_taille2 = null;
$this->fin_ligne = null;
$this->erreur = null;
$this->valeur_defaut = $valDef;
}
function valObligatoire() {
if ($this->oblig) return true;
else return false;
}
function valFormat($format, $long_min=null, $long_max=null) {
if ($this->type == "text") {
$this->format = $format;
if ($long_min) $this->taille_min = $long_min;
if ($long_max) $this->taille_max = $long_max;
}
}
function valLimites($min, $max) {
if (($this->type == "text") || ($this->type == "password") || ($this->type == "textarea") || ($this->type == "file")) {
$this->taille_min = $min;
$this->taille_max = $max;
}
}
function valCtlLimites($taille1, $taille2) {
if (($this->type == "text") || ($this->type == "password") || ($this->type == "textarea") || ($this->type == "select") || ($this->type == "file")) {
$this->ctl_taille1 = $taille1;
if ($taille2 && ($this->type != "select")) $this->ctl_taille2 = $taille2;
}
}
function valFonction($fonction) {
$this->fonction = $fonction;
}
function valDescro($descro) {
if (($this->type == "text") || ($this->type == "password") || ($this->type == "textarea") || ($this->type == "file")) {
$this->descro = $descro;
}
}
function valMultiple() {
if ($this->type == "select") $this->multiple = true;
}
function valFinLigne($fin_ligne) {
if (($this->type == "radio") || ($this->type == "checkbox")) $this->fin_ligne = $fin_ligne;
}
function valOptions($options) {
if ($this->champAOptions()) {
if (is_array($options)) {
foreach ($options as $option) {
if (preg_match("/^s[e|é]lection\s?=\s?(.+)$/", $option, $regs))
$this->options[] = new ClasseFormOption($regs[1], true);
else $this->options[] = new ClasseFormOption($option);
}
}
else {
if (preg_match("/^s[e|é]lection\s?=\s?(.+)$/", $options, $regs))
$this->options[] = new ClasseFormOption($regs[1], true);
else $this->options[] = new ClasseFormOption($options);
}
}
}
function ValOption1Vide($option_vide) {
if ($this->type == "select") $this->fin_ligne = $option_vide;
}
function afficherForm() {
if (!$this->type) $html = "<tr><td class='form-label' colspan='2'>$this->label</td></tr>";
else {
if (!is_null($this->erreur))
$html = "<tr><td class='form-label-erreur'> > $this->label (<font size='-2'>$this->erreur</font>)</td>";
else if ($this->oblig) $html = "<tr><td class='form-label-obligatoire'>$this->label</td>";
else $html .= "<tr><td class='form-label-facultatif'>$this->label</td>";
$html .= "<td class='form-td'>";
switch ($this->type) {
case "text" : $html .= $this->afficherFormTexte();
break;
case "password" : $html .= $this->afficherFormPassword();
break;
case "textarea" : $html .= $this->afficherFormTextarea();
break;
case "select" : $html .= $this->afficherFormSelect();
break;
case "radio" : $html .= $this->afficherFormRadio();
break;
case "checkbox" : $html .= $this->afficherFormCheckbox();
break;
case "file" : $html .= $this->afficherFormFile();
}
$html .= "</td></tr>\n";
}
return $html;
}
function afficherFormCache() {
$html = "<input type='hidden' name='$this->nom'";
if (is_array($this->valeur)) {
$chaine = implode(_SEPA_VALEUR_MULTIPLE, $this->valeur);
$html .= " value='" . $chaine . "' />\n";
}
else $html .= " value='" . $this->valeur . "' />\n";
return $html;
}
function afficherTexte() {
$html = "<tr><td class='form-label'>$this->label</td><td class='form-td'>";
if (is_array($this->valeur)) {
$chaine = implode(_SEPA_AFFICHE_MULTIPLE, $this->valeur);
$html .= $chaine;
}
else $html .= $this->valeur;
$html .= "</td></tr>\n";
return $html;
}
function champAOptions() {
if (($this->type == "select") || ($this->type == "checkbox") || ($this->type == "radio")) return true;
else return false;
}
function controler($pivot=null) {
global $erreur_message;
$this->valeur_db=$this->valeur;
if ($this->type) {
if (($this->type == "text") || ($this->type == "password") || ($this->type == "textarea") || ($this->type == "file")) {
$this->controlerChampTexte($pivot);
if (is_null($this->erreur)) return true;
else return false;
}
else if (($this->type == "select") || ($this->type == "radio")) {
if (!$this->valeur || (sizeof($this->valeur) == 0)) {
$this->erreur = $erreur_message["option"];
return false;
}
else return true;
}
else return true;
}
else return true;
}
function aControler() {
if ($this->type && $this->oblig) return true;
else return false;
}
function retournerTableauValeurs(&$tableau, $mode_retour) {
if (is_array($this->valeur)) {$valeur = implode(_SEPA_VALEUR_MULTIPLE, $this->valeur);
print_r($this->valeur);
die('Cas non géré dans inc_classeform.php');
}
else $valeur = $this->valeur_db;
switch ($mode_retour) {
case "noms & valeurs" :
$tableau[$this->nom] = $valeur;
break;
case "labels & valeurs" :
$tableau[$this->label] = $valeur;
break;
case "valeurs" :
$tableau[] = $valeur;
}
}
function affecterValeur($valeurs) {
$valeur = $valeurs[$this->nom];
if ($this->champAOptions()) {
if (strpos($valeur, _SEPA_VALEUR_MULTIPLE) !== false)
$this->valeur = explode(_SEPA_VALEUR_MULTIPLE, $valeur);
else $this->valeur = $valeur;
for ($i=0;$i<sizeof($this->options);$i++)
$this->options[$i]->selectionnerSiValeur($this->valeur);
}
else $this->valeur = $valeur;
}
function controlerChampTexte($pivot) {
global $erreur_message;
if (trim($this->valeur) == "") $this->erreur = $erreur_message["vide"];
else {
$this->erreur = champTexteConforme($this->valeur, $this->taille_min, $this->taille_max);
if (is_null($this->erreur) && $this->format) {
switch ($this->format) {
case "alphanum" :
if (!controlerAlphanum($this->valeur)) $this->erreur = $erreur_message["alphanum"];
break;
case "num" :
if (!controlerNum($this->valeur)) $this->erreur = $erreur_message["num"];
break;
case "num-strict" :
if (!controlerNum($this->valeur, true)) $this->erreur = $erreur_message["num"];
break;
case "tel" :
if (!controlerTel($this->valeur)) $this->erreur = $erreur_message["tel"];
break;
case "email" :
if (!controlerEmail($this->valeur)) $this->erreur = $erreur_message["email"];
break;
case "date" :
if (!controlerDate($this->valeur, $pivot)) $this->erreur = $erreur_message["date"];
else $this->valeur_db=substr($this->valeur,6,4).'-'.substr($this->valeur,3,2).'-'.substr($this->valeur,0,2);
break;
case "url" :
if (!controlerUrl($this->valeur)) $this->erreur = $erreur_message["url"];
break;
}
}
}
}
function afficherFormTexte() {
$html .= "<input class='form-input' type='text' name='$this->nom' size='$this->ctl_taille1' ";
if ($this->ctl_taille2) $html .= " maxlength='$this->ctl_taille2'";
if ($this->valeur) $html .= " value='" . $this->valeur . "' />";
else if ($this->valeur_defaut) $html .= " value='" . $this->valeur_defaut . "' />";
else if ($this->descro) { $html .= " value='" . htmlentities(stripslashes($this->descro), ENT_QUOTES) . "'";
$html .= " onFocus='this.value=\"\"' />";
}
else $html .= " value='' />";
return $html;
}
function afficherFormPassword() {
$html .= "<input class='form-input' type='password' name='$this->nom' size='$this->ctl_taille1'";
if ($this->ctl_taille2) $html .= " maxlength='$this->ctl_taille2'";
if ($this->valeur) $html .= " value='" . $this->valeur . "' />";
else if ($this->descro) {
$html .= " value='" . htmlentities(stripslashes($this->descro), ENT_QUOTES) . "'";
$html .= " onFocus='this.value=\"\"' />";
}
else $html .= " value='' />";
return $html;
}
function afficherFormTextarea() {
$html .= "<textarea class='form-input' name='$this->nom' cols='$this->ctl_taille1'";
if ($this->ctl_taille2) $html .= " rows='$this->ctl_taille2'";
else if ($this->taille_max) {
$rows = ceil($this->taille_max / $taille_std);
$html .= " rows='$rows'";
}
else $html .= " rows='3'";
if ((trim($this->valeur) == "") || $this->descro) $html .= " onFocus='this.value=\"\"'>";
else $html .= ">";
if (trim($this->valeur)) $html .= $this->valeur;
else if ($this->descro) $html .= htmlentities(stripslashes($this->descro), ENT_QUOTES);
$html .= "</textarea>";
return $html;
}
function afficherFormSelect() {
$html = "<select name='$this->nom" . ($this->multiple ? "[]'" : "'");
if ($this->fin_ligne && $this->multiple)
$html .= " size='" . (($this->ctl_taille1 >= 2) ? $this->ctl_taille1 : 2 ) . "'";
else $html .= " size='" . ($this->ctl_taille1 ? $this->ctl_taille1 : 1) . "'";
$html .= $this->multiple ? " multiple>\n" : ">\n";
if ($this->fin_ligne) {
$html .= "<option class='form-option-entete' value=''>$this->fin_ligne</option>\n";
}
for ($i=0;$i<sizeof($this->options);$i++)
$html .= $this->options[$i]->afficherFormSelect();
$html .= "</select>\n";
return $html;
}
function afficherFormRadio() {
for ($i=0;$i<sizeof($this->options);$i++) {
$html .= $this->options[$i]->afficherFormCase("radio", $this->nom, $this->oblig);
$html .= $this->fin_ligne ? "<br />" : "&nbsp;";
}
return $html;
}
function afficherFormCheckbox() {
for ($i=0;$i<sizeof($this->options);$i++) {
$html .= $this->options[$i]->afficherFormCase("checkbox", "$this->nom[]", $this->oblig);
$html .= $this->fin_ligne ? "<br />" : "&nbsp;";
}
return $html;
}
function afficherFormFile() {
$html .= "<input class='form-input' type='file' name='$this->nom' size='$this->ctl_taille1'";
if ($this->taille_max) $html .= " maxlength='$this->ctl_taille2'";
if ($this->descro) $html .= " value='$this->descro' onChange='this.value=\"\"' />";
else $html .= " value='' />";
return $html;
}
}
class ClasseFormOption {
var $valeur;
var $selection;
function ClasseFormOption($val, $selec=false) {
$this->valeur = htmlspecialchars(stripslashes($val), ENT_QUOTES);
$this->selection = $selec;
}
function afficherFormSelect() {
$html = "<option value='$this->valeur'" . ($this->selection ? " selected>" : ">");
$html .= "$this->valeur</option>\n";
return $html;
}
function afficherFormCase($type, $nom, $oblig) {
$html = "<input type='$type' name='$nom' value='$this->valeur'";
$html .= ($this->selection) ? " checked />" : " />";
if ($oblig) $html .= "<span class='form-input-obligatoire'>" . $this->valeur . "<span>";
else $html .= "<span class='form-input-facultatif'>" . $this->valeur . "<span>";
return $html;
}
function selectionnerSiValeur($valeurs) {
if (is_array($valeurs)) {
if (in_array($this->valeur, $valeurs)) $this->selection = true;
else $this->selection = false;
}
else if ($this->valeur == $valeurs) $this->selection = true;
else $this->selection = false;
}
}
function controlerEmail($valeur) {
if (preg_match("/^[\w|-]+(\.[\w|-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$/", $valeur)) return true;
else return false;
}
function controlerDate($valeur, $pivot) {
if (preg_match("/^(\d{1,2})[\/|\-|\.](\d{1,2})[\/|\-|\.](\d\d)(\d\d)?$/", $valeur, $regs)) {
$jour = ($regs[1] < 10) ? "0".$regs[1] : $regs[1];
$mois = ($regs[2] < 10) ? "0".$regs[2] : $regs[2];
if ($regs[4]) $an = $regs[3] . $regs[4];
else {
if ($pivot) {
if ($regs[3] <= $pivot) $an = $regs[3] + 2000;
else $an = $regs[3] + 1900;
}
else $an = $regs[3] + 2000;
}
if (checkdate($mois, $jour, $an)) return true;
else return false;
}
else return false;
}
function controlerUrl($valeur) {
if (ereg("^((http|ftp):\/\/)?([0-9a-z_]+[\.\-])+[0-9a-z]+(\/[0-9a-z_]+)*(\/[0-9a-z_]+\.[0-9a-z]+)?$", $valeur)) return true;
else return false;
}
function controlerAlphanum($valeur) {
if (preg_match("/^[\w|\d|\s|'|\"|\\|,|\.|\-|&|#|;]+$/", $valeur)) return true;
else return false;
}
function controlerNum($valeur, $strict=false) {
if ($strict) {
if (ereg("^[0-9]+$", $valeur)) return true;
else return false;
}
else if (preg_match("/^[\d|\s|\-|\+|E|e|,|\.]+$/", $valeur)) return true;
else return false;
}
function controlerTel($valeur) {
if (preg_match("/^[\d|\s|\-|\.|\(|\)]+$/", $valeur)) return true;
else return false;
}
function champTexteConforme($valeur, $min, $max) {
global $erreur_message;
if ($min && (strlen($valeur) < $min)) return $min . " " . $erreur_message["min"];
else if ($max && (strlen($valeur) > $max)) return $max . " " . $erreur_message["max"];
else if (preg_match('/(.)\1{4,}/', $valeur)) return $erreur_message["texte"];
else return null;
}
function convertirPost($post) {
$result = array();
foreach ($post as $cle => $valeur) {
if (is_array($valeur)) {
for ($i=0;$i<sizeof($valeur);$i++)
$result[$cle][] = htmlspecialchars(stripslashes($valeur[$i]), ENT_QUOTES);
}
else $result[$cle] = htmlspecialchars(stripslashes($valeur), ENT_QUOTES);
}
return $result;
}
?>

View File

@ -1,195 +0,0 @@
<?php
//script will fetch an email identified by $msgid, and parse the its parts into an
//array $partsarray
//structure of array:
//$partsarray[<name of part>][<attachment/text>]
//if attachment- subarray is [filename][binary data]
//if text- subarray is [type of text(HTML/PLAIN)][text string]
//i.e.
//$partsarray[3.1][attachment][filename]=filename of attachment in part 3.1
//$partsarray[3.1][attachment][binary]=binary data of attachment in part 3.1
//$partsarray[2][text][type]=type of text in part 2
//$partsarray[2][text][string]=decoded text string in part 2
//$partsarray[not multipart][text][string]=decoded text string in message that isn't multipart
function parsepart($p,$i){
global $link,$msgid,$partsarray;
//where to write file attachments to:
$filestore = '[full/path/to/attachment/store/(chmod777)]';
//fetch part
$part=imap_fetchbody($link,$msgid,$i);
//if type is not text
if ($p->type!=0){
//DECODE PART
//decode if base64
if ($p->encoding==3)$part=base64_decode($part);
//decode if quoted printable
if ($p->encoding==4)$part=quoted_printable_decode($part);
//no need to decode binary or 8bit!
//get filename of attachment if present
$filename='';
// if there are any dparameters present in this part
if (count($p->dparameters)>0){
foreach ($p->dparameters as $dparam){
if ((strtoupper($dparam->attribute)=='NAME') ||(strtoupper($dparam->attribute)=='FILENAME')) $filename=$dparam->value;
}
}
//if no filename found
if ($filename==''){
// if there are any parameters present in this part
if (count($p->parameters)>0){
foreach ($p->parameters as $param){
if ((strtoupper($param->attribute)=='NAME') ||(strtoupper($param->attribute)=='FILENAME')) $filename=$param->value;
}
}
}
//write to disk and set partsarray variable
if ($filename!=''){
$partsarray[$i][attachment] = array('filename'=>$filename,'binary'=>$part);
$fp=fopen($filestore.$filename,"w+");
fwrite($fp,$part);
fclose($fp);
}
//end if type!=0
}
//if part is text
else if($p->type==0){
//decode text
//if QUOTED-PRINTABLE
if ($p->encoding==4) $part=quoted_printable_decode($part);
//if base 64
if ($p->encoding==3) $part=base64_decode($part);
//OPTIONAL PROCESSING e.g. nl2br for plain text
//if plain text
if (strtoupper($p->subtype)=='PLAIN')1;
//if HTML
else if (strtoupper($p->subtype)=='HTML')1;
$partsarray[$i][text] = array('type'=>$p->subtype,'string'=>$part);
}
//if subparts... recurse into function and parse them too!
if (count($p->parts)>0){
foreach ($p->parts as $pno=>$parr){
parsepart($parr,($i.'.'.($pno+1)));
}
}
return;
}
//require('./constantes.php');
$imap_server='{imap.online.net}';
$imap_account='buzuk@lenaour.org';//'scores-decisions.com';
$imap_password='bzh4231*';//catsysyo92';
if (!$mbox = imap_open($imap_server, $imap_account, $imap_password)) die("Connexion IMAP impossible : ". imap_last_error());
$list = imap_list($mbox, $imap_server, "*");
if(is_array($list)) {
reset($list);
foreach ($list as $val) {
echo imap_utf7_decode($val) . "<br />\n";
}
} else {
echo "imap_list a échoué : " . imap_last_error() . "\n";
}
echo "<p><h1>Entetes de mail dans INBOX</h1>\n";
$headers = imap_headers ($mbox);
if ($headers == false) {
echo "Erreur !\n";
} else {
while (list ($key,$val) = each ($headers)) {
echo $val."<br>\n";
}
}
$check = imap_mailboxmsginfo($mbox);
if($check) {
echo "Date: " . $check->Date ."<br />\n" ;
echo "Pilote: " . $check->Driver ."<br />\n" ;
echo "Mailbox: " . $check->Mailbox ."<br />\n" ;
echo "Messages: ". $check->Nmsgs ."<br />\n" ;
echo "Récent: " . $check->Recent ."<br />\n" ;
echo "Non lus: " . $check->Unread ."<br />\n" ;
echo "Effacés: " . $check->Deleted ."<br />\n" ;
echo "Taille: " . $check->Size ."<br />\n" ;
} else {
echo "imap_check() a échoué: ".imap_last_error(). "<br />\n";
}
$imap_obj = imap_check($mbox);
$imap_sorted = imap_sort($mbox, SORTARRIVAL, 0);
$MN=$imap_obj->Nmsgs;
echo '<br>Nombre de messages '.$MN.'<br/>';
$overview = imap_fetch_overview($mbox,"1:$MN",0);
$k=0;
$partsarray=array();
while( list($key,$val) = each($overview))
{
if (strpos($val->from, 'rapports@neoveille.fr')!==false) {
$unsorted[$k]=$val;//->uid;
/*$unsorted[$k]["subject"]=imap_utf8($val->subject); // Le sujet du message
$unsorted[$k]['from']=$val->from;
$unsorted[$k]['to']=$val->to;
$unsorted[$k]['date']=$val->date;// Date d'expédition
$unsorted[$k]['message_id - Identification du message
references - est une référence sur l'id de ce message
in_reply_to - est une réponse à cet identifiant de message
size - taille en octets
uid - UID du message dans la boîte aux lettres
msgno - numéro de séquence du message dans la boîte
recent - Ce message est récent
flagged - Ce message est marqué
answered - Ce message a donné lieu à une réponse
deleted - Ce message est marqué pour l'effacement
seen - Ce message est déjà lu
draft - Ce message est un brouillon
*/
$s=imap_fetchstructure($mbox,$val->message_id);
/*if (count($s->parts)>0){
foreach ($s->parts as $partno=>$partarr){
//parse parts of email
parsepart($partarr,$partno+1);
}
}
else { //for not multipart messages
//get body of message
//decode if quoted-printable
if ($s->encoding==4) $text=quoted_printable_decode($text);
//OPTIONAL PROCESSING
if (strtoupper($s->subtype)=='PLAIN') $text=$text;
if (strtoupper($s->subtype)=='HTML') $text=$text;
$partsarray['not multipart'][text]=array('type'=>$s->subtype,'string'=>$text);
}*/
$full_bodacc=imap_body($mbox,$val->msgno).'[FIN]';
$k++;
}
}
//usort ($unsorted, create_function('$a,$b','setlocale(LC_ALL,$locale);return strcoll($a["subject"],$b["subject"]);'));
$Bodacc=explode("-------------------------------------------------- \r\n--------------------------------------------------", $full_bodacc);
echo '<pre>';
/*var_dump($imap_obj);
print_r($imap_obj);
print_r($imap_sorted);
print_r($unsorted);
print_r($partsarray);*/
print_r($Bodacc);
echo '</pre>';
imap_close($mbox);
?>

View File

@ -1,174 +0,0 @@
<?
define ('BEFORE', 0);
define ('AFTER', 1);
define ('BOTH', 2);
function trimAccent ($strWithAccent) {
$strWithAccent = htmlentities(strtolower($strWithAccent ));
$strWithAccent = preg_replace("/&(.)(acute|cedil|circ|ring|tilde|uml|grave);/", "$1", $strWithAccent );
$strWithAccent = preg_replace("/([^a-z0-9]+)/", "-", html_entity_decode($strWithAccent ));
$strWithAccent = trim($strWithAccent , "-");
return $strWithAccent;
}
//function SRSaufVoyelle ($strIn, $mot1, $mot2) {
function str_replace_except_voy($mot1, $mot2, $strIn, $rule=0) {
$Voyelle=array('a','e','i','o','u','y', '1', '2', '3', '4');
if ($mot1==$mot2) return $strIn;
if (strpos($mot2,$mot1)===false)
{
//foreach ($Voyelle as $k => $voy)
$posMot1=strpos($strIn, $mot1);
while ($posMot1!==false) {
$lettreAV=$strIn[$posMot1-1];
$lettreAP=$strIn[$posMot1+strlen($mot1)];
//echo "Lettre AV=$lettreAV<br/>";
//echo "Lettre AP=$lettreAP<br/>";
if ( ( $rule==0 && !in_array($lettreAV, $Voyelle) ) ||
( $rule==1 && !in_array($lettreAP, $Voyelle) ) ||
( $rule==2 && !in_array($lettreAV, $Voyelle) && !in_array($lettreAP, $Voyelle) ))
$strIn=substr($strIn,0,$posMot1) . $mot2 . substr($strIn,$posMot1+strlen($mot1),strlen($strIn));
//echo "Le Mot devient : $strIn<br/>";
$posMot1=@strpos($strIn, $mot1, $posMot1+strlen($mot1));
}
return $strIn;
}
//echo "Erreur : $mot2 contient $mot1 !<br>";
return $strIn;
}
/** Retourne le phonex d'un mot
**/
function phonex($strIn) {
if ($strIn=='') return 0.0;
$tabSonAIA=array('aina', 'eina', 'aima', 'eima');
$tabSonAIE=array('ainr', 'eine', 'aime', 'eime');
$tabSonAII=array('aini', 'eini', 'aimi', 'eimi');
$tabSonAIO=array('aino', 'eino', 'aimo', 'eimo');
$tabSonAIU=array('ainu', 'einu', 'aimu', 'eimu');
$tabCarPhon=array('1', '2', '3', '4', '5', 'e', 'f', 'g', 'h', 'i', 'k', 'l', 'n', 'o', 'r', 's', 't', 'u', 'w', 'x', 'y', 'z');
/** On traite tout en minuscule **/
$strIn=strtolower($strIn);
/** On remplace les 'Y' par des 'I' **/
$strIn=str_replace('y', 'i', $strIn);
/** On supprime les accents **/
$strIn=trimAccent($strIn);
/** On retire les 'H' muets sauf ceux précédés par 'C' ou 'S' **/
$strIn = preg_replace ('/(?<![CS])H/', '', $strIn);
/** On remplace les 'PH' par des 'F' **/
$strIn=str_replace('ph', 'f', $strIn);
/** On remplace les 'G' par des 'K' devant AN AM AIN AIM **/
$strIn=str_replace('gan', 'kan', $strIn);
$strIn=str_replace('gain', 'kain', $strIn);
$strIn=str_replace('gam', 'kam4', $strIn);
$strIn=str_replace('gaim', 'kaim', $strIn);
/** On remplace le son AI **/
for ($i=0; $i>4; $i++) {
$strIn=str_replace($tabSonAIA[$i], 'yna', $strIn);
$strIn=str_replace($tabSonAIE[$i], 'yne', $strIn);
$strIn=str_replace($tabSonAII[$i], 'yni', $strIn);
$strIn=str_replace($tabSonAIO[$i], 'yno', $strIn);
$strIn=str_replace($tabSonAIU[$i], 'ynu', $strIn);
}
/** Remplacement des groupes de 3 lettres **/
$strIn=str_replace('eau', 'o', $strIn);
$strIn=str_replace('oua', '2', $strIn);
$strIn=str_replace('ein', '4', $strIn);
$strIn=str_replace('ain', '4', $strIn);
/** Remplacement du son 'é' **/
$strIn=str_replace('ai', 'y', $strIn);
$strIn=str_replace('ei', 'y', $strIn);
$strIn=str_replace('er', 'yr', $strIn);
$strIn=str_replace('ess', 'yss', $strIn);
$strIn=str_replace('et', 'yt', $strIn);
$strIn=str_replace('ez', 'yz', $strIn);
/** Remplacement des groupes de 2 lettres sauf si voyelle ou son (1 à 4) AVANT **/
$strIn=str_replace_except_voy('an', '1', $strIn, BEFORE);
$strIn=str_replace_except_voy('am', '1', $strIn, BEFORE);
$strIn=str_replace_except_voy('en', '1', $strIn, BEFORE);
$strIn=str_replace_except_voy('em', '1', $strIn, BEFORE);
$strIn=str_replace_except_voy('in', '4', $strIn, BEFORE);
/** Remplacement du son 'SCH' **/
$strIn=str_replace('sch', '5', $strIn);
/** Remplacement du 'S' sauf si voyelle ou son (1 à 4) avant ou après **/
$strIn=str_replace_except_voy('in', '4', $strIn, BOTH);
/** Remplacement de groupe de 2 lettres diverses **/
$strIn=str_replace('oe', 'e', $strIn);
$strIn=str_replace('eu', 'e', $strIn);
$strIn=str_replace('au', 'o', $strIn);
$strIn=str_replace('oi', '2', $strIn);
$strIn=str_replace('oy', '2', $strIn);
$strIn=str_replace('ou', '3', $strIn);
$strIn=str_replace('ch', '5', $strIn);
$strIn=str_replace('sh', '5', $strIn);
$strIn=str_replace('ss', 's', $strIn);
$strIn=str_replace('sc', 's', $strIn);
/** Remplacement du 'C' par 'S' s'il est suivi d'un 'E' ou d'un 'I' **/
$strIn=str_replace('ce', 'se', $strIn);
$strIn=str_replace('ci', 'si', $strIn);
/** Remplacement divers **/
$strIn=str_replace('c', 'k', $strIn);
$strIn=str_replace('q', 'k', $strIn);
$strIn=str_replace('qu', 'k', $strIn);
$strIn=str_replace('ga', 'ka', $strIn);
$strIn=str_replace('go', 'ko', $strIn);
$strIn=str_replace('gu', 'ku', $strIn);
$strIn=str_replace('gy', 'ky', $strIn);
$strIn=str_replace('g2', 'k2', $strIn);
$strIn=str_replace('g1', 'k1', $strIn);
$strIn=str_replace('g3', 'k3', $strIn);
$strIn=str_replace('a', 'o', $strIn);
$strIn=str_replace('d', 't', $strIn);
$strIn=str_replace('p', 't', $strIn);
$strIn=str_replace('j', 'g', $strIn);
$strIn=str_replace('b', 'f', $strIn);
$strIn=str_replace('v', 'f', $strIn);
$strIn=str_replace('m', 'n', $strIn);
/** Supression des lettres dupliquées **/
$let=$strIn[0];
$strIn2=$let;
for ($i=1; $i<strlen($strIn); $i++)
{ if ($strIn==$let)
continue;
else {
$let=$strIn[$i];
$strIn2.=$strIn[$i];
}
}
$strIn=$strIn2;
/** Supression des terminaisons **/
$strIn2=substr($strIn,-1);
if ($strIn2=='t' || $strIn2=='k' || $strIn2=='s' || $strIn2=='z')
$strIn=substr($strIn,0,-1);
/** Supression des caractères non autorisés **/
$j=10;
$sout=array();
for ($i=0; $i<strlen($strIn); $i++)
{
if ($j<1) break;
for ($k=0; $k<22; $k++)
{
if ($strIn[$i]==$tabCarPhon[$k])
{
$sout[$j]=$k;
$j--;
}
}
}
//print_r($tabCarPhon);
/** Couversion en flottant **/
$result=0.0;
for ($j=10; $j>0; $j--)
$result+=$sout[$j]*pow($j-1,10);
return $result;
}
?>

View File

@ -1,527 +0,0 @@
codeZone;valeur;NBEntreprises;NbProCol;Pourcentage;Risque;Points
GLOBALE;TOTAL;6447249;43572;0.006758231;0.006758231;0
insAPEN31;DB;18973;612;0.032256364;4.729218896;-3.729218896
insAPEN31;FA;367665;9644;0.0262304;3.845731092;-2.845731092
insAPEN31;DJ;32346;786;0.024299759;3.562673018;-2.562673018
insAPEN31;DM;5682;132;0.023231257;3.406016148;-2.406016148
insAPEN31;DC;2430;55;0.022633745;3.318412852;-2.318412852
insAPEN31;DE;36701;740;0.020162938;2.956159228;-1.956159228
insAPEN31;DH;5546;111;0.020014425;2.934385137;-1.934385137
insAPEN31;DD;11292;225;0.019925611;2.92136384;-1.92136384
insAPEN31;DK;17243;334;0.019370179;2.839930026;-1.839930026
insAPEN31;HA;242687;4586;0.018896768;2.770521585;-1.770521585
insAPEN31;IA;111075;1916;0.017249606;2.529025356;-1.529025356
insAPEN31;DL;20515;323;0.015744577;2.308367769;-1.308367769
insAPEN31;GA;693458;10740;0.0154876;2.270691423;-1.270691423
insAPEN31;DI;9391;138;0.014694921;2.154473946;-1.154473946
insAPEN31;DA;69613;995;0.014293307;2.095591997;-1.095591997
insAPEN31;DG;4389;61;0.013898382;2.037690661;-1.037690661
insAPEN31;DN;33557;435;0.012963018;1.900553633;-0.900553633
insAPEN31;ZZ;16576;119;0.007179054;1.052546337;-0.052546337
insAPEN31;CB;2833;17;0.006000706;0.879784584;0.120215416
insAPEN31;GG;9721;52;0.005349244;0.784271442;0.215728558
insAPEN31;MA;70612;373;0.005282388;0.774469502;0.225530498
insAPEN31;FF;4750;25;0.005263158;0.77165007;0.22834993
insAPEN31;CA;195;1;0.005128205;0.751864171;0.248135829
insAPEN31;HH;3757;16;0.004258717;0.62438547;0.37561453
insAPEN31;JA;72234;289;0.004000886;0.586583954;0.413416046
insAPEN31;OA;611504;2075;0.003393273;0.497499673;0.502500327
insAPEN31;KA;2657556;7102;0.00267238;0.391807048;0.608192952
insAPEN31;BA;14187;37;0.002608021;0.382371184;0.617628816
insAPEN31;OO;2450;6;0.00244898;0.359053502;0.640946498
insAPEN31;II;1476;3;0.00203252;0.297994946;0.702005054
insAPEN31;KK;22395;40;0.001786113;0.261868298;0.738131702
insAPEN31;AA;777002;1339;0.00172329;0.252657643;0.747342357
insAPEN31;EA;5687;7;0.001230877;0.180463266;0.819536734
insAPEN31;NA;432746;238;0.000549976;0.080633943;0.919366057
insAPEN31;BB;81;;0;0;1
insAPEN31;DF;149;;0;0;1
insAPEN31;EE;79;;0;0;1
insAPEN31;JJ;596;;0;0;1
insAPEN31;LA;56364;;0;0;1
insAPEN31;LL;79;;0;0;1
insAPEN31;MM;343;;0;0;1
insAPEN31;NN;772;;0;0;1
insAPEN31;PA;32;;0;0;1
insAPEN31;QA;510;;0;0;1
insMONOACT;1;57315;535;0.00933438;1.368546272;-0.368546272
insMONOACT;2;6175850;41794;0.006767328;0.992181671;0.007818329
insMONOACT;0;214084;1243;0.005806132;0.851257436;0.148742564
insSAISONAT;0;6422146;43477;0.006769855;0.99255229;0.00744771
insSAISONAT;1;25103;95;0.003784408;0.554845387;0.445154613
insDEPET;93;99100;1332;0.013440969;1.988829034;-0.988829034
insDEPET;77;87496;937;0.010709061;1.58459497;-0.58459497
insDEPET;94;94293;975;0.01034011;1.530002158;-0.530002158
insDEPET;57;67886;694;0.010223021;1.51267675;-0.51267675
insDEPET;95;72827;735;0.010092411;1.493350666;-0.493350666
insDEPET;13;198603;1935;0.009743055;1.441657335;-0.441657335
insDEPET;59;165430;1504;0.009091459;1.345242092;-0.345242092
insDEPET;91;75252;675;0.008969861;1.327249612;-0.327249612
insDEPET;06;158986;1366;0.008591951;1.271331178;-0.271331178
insDEPET;62;87566;730;0.008336569;1.23354282;-0.23354282
insDEPET;54;50761;411;0.008096767;1.198059904;-0.198059904
insDEPET;90;9792;79;0.00806781;1.193775242;-0.193775242
insDEPET;42;68973;550;0.007974135;1.179914273;-0.179914273
insDEPET;60;52888;420;0.00794131;1.175057253;-0.175057253
insDEPET;92;147353;1169;0.00793333;1.173876504;-0.173876504
insDEPET;68;61653;481;0.007801729;1.154403789;-0.154403789
insDEPET;72;43306;332;0.007666374;1.134375644;-0.134375644
insDEPET;31;116009;868;0.007482178;1.107120578;-0.107120578
insDEPET;02;39818;295;0.00740871;1.096249618;-0.096249618
insDEPET;78;101841;754;0.007403698;1.095508047;-0.095508047
insDEPET;67;93946;692;0.007365934;1.089920151;-0.089920151
insDEPET;28;34301;252;0.007346725;1.087077834;-0.087077834
insDEPET;33;152528;1107;0.007257684;1.07390268;-0.07390268
insDEPET;84;67613;488;0.007217547;1.067963714;-0.067963714
insDEPET;83;126540;909;0.007183499;1.062925765;-0.062925765
insDEPET;66;58946;419;0.007108201;1.051784011;-0.051784011
insDEPET;18;27790;193;0.006944944;1.027627324;-0.027627324
insDEPET;69;174961;1214;0.006938689;1.026701782;-0.026701782
insDEPET;88;34443;238;0.006909967;1.022451853;-0.022451853
insDEPET;30;76395;525;0.006872177;1.0168602;-0.0168602
insDEPET;08;23202;157;0.006766658;1.001246731;-0.001246731
insDEPET;87;34338;231;0.006727241;0.995414275;0.004585725
insDEPET;76;86118;579;0.006723333;0.994836039;0.005163961
insDEPET;26;53631;358;0.006675244;0.987720376;0.012279624
insDEPET;34;133650;876;0.006554433;0.969844315;0.030155685
insDEPET;2A;17005;111;0.006527492;0.965857872;0.034142128
insDEPET;25;44175;286;0.00647425;0.95797981;0.04202019
insDEPET;38;119307;770;0.006453938;0.954974293;0.045025707
insDEPET;41;28978;186;0.006418662;0.949754625;0.050245375
insDEPET;45;49561;318;0.006416335;0.949410303;0.050589697
insDEPET;2B;19519;124;0.006352784;0.940006815;0.059993185
insDEPET;70;21399;132;0.006168513;0.912740526;0.087259474
insDEPET;37;49723;305;0.006133982;0.907631159;0.092368841
insDEPET;55;17276;105;0.006077796;0.899317376;0.100682624
insDEPET;27;45311;273;0.006025027;0.891509307;0.108490693
insDEPET;39;26947;162;0.006011801;0.889552272;0.110447728
insDEPET;80;42871;257;0.005994728;0.887026083;0.112973917
insDEPET;47;40592;242;0.005961766;0.882148698;0.117851302
insDEPET;82;27230;159;0.005839148;0.864005216;0.135994784
insDEPET;36;23734;137;0.00577231;0.854115317;0.145884683
insDEPET;63;65589;373;0.005686929;0.841481754;0.158518246
insDEPET;89;33216;188;0.005659923;0.837485697;0.162514303
insDEPET;52;16860;94;0.005575326;0.824968117;0.175031883
insDEPET;24;51134;284;0.005554034;0.821817631;0.178182369
insDEPET;58;22345;123;0.005504587;0.814501022;0.185498978
insDEPET;17;75422;415;0.005502373;0.814173445;0.185826555
insDEPET;71;55680;306;0.00549569;0.813184479;0.186815521
insDEPET;03;34938;192;0.005495449;0.813148882;0.186851118
insDEPET;21;53379;290;0.005432848;0.803885963;0.196114037
insDEPET;49;68055;368;0.005407391;0.800119144;0.199880856
insDEPET;11;55513;300;0.00540414;0.799638025;0.200361975
insDEPET;86;38412;205;0.005336874;0.789684879;0.210315121
insDEPET;51;65810;346;0.00525756;0.777948932;0.222051068
insDEPET;56;72609;378;0.005205966;0.770314771;0.229685229
insDEPET;07;33636;169;0.005024379;0.74344568;0.25655432
insDEPET;44;106703;532;0.004985802;0.73773754;0.26226246
insDEPET;01;51685;255;0.004933733;0.730033082;0.269966918
insDEPET;10;30663;149;0.004859277;0.71901592;0.28098408
insDEPET;14;64428;310;0.004811573;0.711957263;0.288042737
insDEPET;19;30160;144;0.004774536;0.706477014;0.293522986
insDEPET;16;39889;190;0.004763218;0.704802333;0.295197667
insDEPET;73;71454;339;0.004744311;0.702004723;0.297995277
insDEPET;81;40986;194;0.004733324;0.700378935;0.299621065
insDEPET;35;90680;422;0.004653727;0.688601272;0.311398728
insDEPET;29;86330;400;0.004633384;0.685591038;0.314408962
insDEPET;61;32758;149;0.004548507;0.673032089;0.326967911
insDEPET;74;93707;423;0.00451407;0.667936558;0.332063442
insDEPET;09;17626;79;0.004482015;0.663193417;0.336806583
insDEPET;79;37656;162;0.004302103;0.636572261;0.363427739
insDEPET;64;83756;359;0.00428626;0.634227986;0.365772014
insDEPET;23;16174;68;0.004204278;0.622097355;0.377902645
insDEPET;50;52775;219;0.004149692;0.614020335;0.385979665
insDEPET;04;22787;90;0.00394962;0.58441619;0.41558381
insDEPET;40;49541;192;0.003875578;0.573460278;0.426539722
insDEPET;43;27370;105;0.003836317;0.567650968;0.432349032
insDEPET;22;64491;244;0.003783474;0.559831842;0.440168158
insDEPET;85;64417;243;0.003772296;0.558177928;0.441822072
insDEPET;46;26030;95;0.003649635;0.54002805;0.45997195
insDEPET;53;32932;120;0.003643872;0.539175339;0.460824661
insDEPET;99;40894;134;0.003276764;0.484855233;0.515144767
insDEPET;65;34146;104;0.003045745;0.450671801;0.549328199
insDEPET;32;32543;96;0.002949943;0.436496261;0.563503739
insDEPET;15;22199;62;0.002792919;0.413261701;0.586738299
insDEPET;05;25212;70;0.002776456;0.410825718;0.589174282
insDEPET;48;12747;34;0.002667294;0.394673359;0.605326641
insDEPET;98;775;2;0.002580645;0.381852092;0.618147908
insDEPET;12;41281;104;0.002519319;0.372777775;0.627222225
insDEPCOMEN;75120;23391;422;0.018041127;2.669503799;-1.669503799
insDEPCOMEN;75110;28336;491;0.017327781;2.56395164;-1.56395164
insDEPCOMEN;75102;19124;292;0.015268772;2.259284889;-1.259284889
insDEPCOMEN;75103;14002;144;0.010284245;1.521735947;-0.521735947
insDEPCOMEN;75112;23538;238;0.010111309;1.496147047;-0.496147047
insDEPCOMEN;75119;18558;185;0.009968747;1.475052368;-0.475052368
insDEPCOMEN;75109;30187;288;0.009540531;1.411690247;-0.411690247
insDEPCOMEN;75111;32950;296;0.008983308;1.329239301;-0.329239301
insDEPCOMEN;75101;16952;132;0.007786692;1.15217877;-0.15217877
insDEPCOMEN;75118;26179;197;0.007525116;1.113473932;-0.113473932
insDEPCOMEN;75114;21520;154;0.007156134;1.058876561;-0.058876561
insDEPCOMEN;75108;66310;446;0.006725984;0.995228288;0.004771712
insDEPCOMEN;75117;41679;278;0.006670026;0.986948262;0.013051738
insDEPCOMEN;75115;36833;223;0.006054353;0.895848666;0.104151334
insDEPCOMEN;75113;19497;113;0.005795763;0.857585705;0.142414295
insDEPCOMEN;75104;10380;51;0.004913295;0.72700886;0.27299114
insDEPCOMEN;75105;14528;71;0.004887115;0.723135028;0.276864972
insDEPCOMEN;75116;48424;220;0.004543202;0.672247044;0.327752956
insDEPCOMEN;75106;16345;72;0.004405017;0.651800145;0.348199855
insDEPCOMEN;75107;18645;59;0.003164387;0.468227056;0.531772944
insDEPCOMEN,3;974;61141;402;0.006574966;0.972882512;0.027117488
insDEPCOMEN,3;972;42850;261;0.006091015;0.901273418;0.098726582
insDEPCOMEN,3;971;63190;307;0.004858364;0.718880828;0.281119172
insDEPCOMEN,3;973;13285;63;0.00474219;0.701690944;0.298309056
insCJ,2;54;1046180;26431;0.025264295;3.738299821;-2.738299821
insCJ,2;55;116455;1676;0.014391825;2.129525393;-1.129525393
insCJ,2;13;332350;4569;0.013747555;2.034194255;-1.034194255
insCJ,2;56;6079;81;0.01332456;1.971604606;-0.971604606
insCJ,2;57;68076;864;0.012691698;1.8779614;-0.8779614
insCJ,2;12;437093;5064;0.011585635;1.714299878;-0.714299878
insCJ,2;11;197912;2096;0.010590566;1.567061711;-0.567061711
insCJ,2;82;5102;51;0.00999608;1.479097048;-0.479097048
insCJ,2;31;11814;115;0.009734214;1.440349288;-0.440349288
insCJ,2;53;1525;13;0.00852459;1.261364073;-0.261364073
insCJ,2;52;38818;186;0.004791592;0.709000819;0.290999181
insCJ,2;51;517;1;0.001934236;0.286204465;0.713795535
insCJ,2;92;417094;658;0.001577582;0.233431198;0.766568802
insCJ,2;62;10141;12;0.001183315;0.175092447;0.824907553
insCJ,2;17;40919;39;0.000953102;0.141028389;0.858971611
insCJ,2;16;558658;471;0.000843092;0.124750367;0.875249633
insCJ,2;65;1134849;828;0.000729612;0.107959088;0.892040912
insCJ,2;32;26976;19;0.00070433;0.104218063;0.895781937
insCJ,2;29;24080;14;0.000581395;0.086027738;0.913972262
insCJ,2;84;8634;5;0.000579106;0.085688967;0.914311033
insCJ,2;63;20101;6;0.000298493;0.044167268;0.955832732
insCJ,2;19;511880;129;0.000252012;0.037289666;0.962710334
insCJ,2;15;577704;133;0.000230222;0.034065378;0.965934622
insCJ,2;18;497265;107;0.000215177;0.03183925;0.96816075
insCJ,2;22;29402;3;0.000102034;0.015097719;0.984902281
insCJ,2;21;24477;1;4.08547E-05;0.006045173;0.993954827
insCJ,2;10;1;0;0;0;1
insCJ,2;14;6117;0;0;0;1
insCJ,2;23;7434;0;0;0;1
insCJ,2;27;527;0;0;0;1
insCJ,2;41;874;0;0;0;1
insCJ,2;61;17;0;0;0;1
insCJ,2;64;178;0;0;0;1
insCJ,2;69;2;0;0;0;1
insCJ,2;71;2984;0;0;0;1
insCJ,2;72;36821;0;0;0;1
insCJ,2;73;91862;0;0;0;1
insCJ,2;74;2566;0;0;0;1
insCJ,2;81;1202;0;0;0;1
insCJ,2;83;4849;0;0;0;1
insCJ,2;91;145682;0;0;0;1
insCJ,2;93;461;0;0;0;1
insCJ,2;99;1571;0;0;0;1
ageDirigeant;0;4092989;11244;0.002747137;0.406487512;0.593512488
ageDirigeant;1;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;2;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;3;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;4;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;5;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;6;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;7;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;8;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;9;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;10;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;11;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;12;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;13;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;14;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;15;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;16;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;17;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;18;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;19;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;20;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;21;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;22;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;23;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;24;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;25;7915;339;0.042830069;6.337467242;-5.337467242
ageDirigeant;26;51311;1744;0.033988813;5.029246825;-4.029246825
ageDirigeant;27;51311;1744;0.033988813;5.029246825;-4.029246825
ageDirigeant;28;51311;1744;0.033988813;5.029246825;-4.029246825
ageDirigeant;29;51311;1744;0.033988813;5.029246825;-4.029246825
ageDirigeant;30;132700;3421;0.025779955;3.814600838;-2.814600838
ageDirigeant;31;132700;3421;0.025779955;3.814600838;-2.814600838
ageDirigeant;32;132700;3421;0.025779955;3.814600838;-2.814600838
ageDirigeant;33;132700;3421;0.025779955;3.814600838;-2.814600838
ageDirigeant;34;132700;3421;0.025779955;3.814600838;-2.814600838
ageDirigeant;35;246272;4538;0.01842678;2.726568435;-1.726568435
ageDirigeant;36;246272;4538;0.01842678;2.726568435;-1.726568435
ageDirigeant;37;246272;4538;0.01842678;2.726568435;-1.726568435
ageDirigeant;38;246272;4538;0.01842678;2.726568435;-1.726568435
ageDirigeant;39;246272;4538;0.01842678;2.726568435;-1.726568435
ageDirigeant;40;339245;5421;0.015979602;2.364465057;-1.364465057
ageDirigeant;41;339245;5421;0.015979602;2.364465057;-1.364465057
ageDirigeant;42;339245;5421;0.015979602;2.364465057;-1.364465057
ageDirigeant;43;339245;5421;0.015979602;2.364465057;-1.364465057
ageDirigeant;44;339245;5421;0.015979602;2.364465057;-1.364465057
ageDirigeant;45;367968;5217;0.014177863;2.097865945;-1.097865945
ageDirigeant;46;367968;5217;0.014177863;2.097865945;-1.097865945
ageDirigeant;47;367968;5217;0.014177863;2.097865945;-1.097865945
ageDirigeant;48;367968;5217;0.014177863;2.097865945;-1.097865945
ageDirigeant;49;367968;5217;0.014177863;2.097865945;-1.097865945
ageDirigeant;50;375026;4591;0.012241818;1.811393744;-0.811393744
ageDirigeant;51;375026;4591;0.012241818;1.811393744;-0.811393744
ageDirigeant;52;375026;4591;0.012241818;1.811393744;-0.811393744
ageDirigeant;53;375026;4591;0.012241818;1.811393744;-0.811393744
ageDirigeant;54;375026;4591;0.012241818;1.811393744;-0.811393744
ageDirigeant;55;377653;3778;0.010003892;1.480253045;-0.480253045
ageDirigeant;56;377653;3778;0.010003892;1.480253045;-0.480253045
ageDirigeant;57;377653;3778;0.010003892;1.480253045;-0.480253045
ageDirigeant;58;377653;3778;0.010003892;1.480253045;-0.480253045
ageDirigeant;59;377653;3778;0.010003892;1.480253045;-0.480253045
ageDirigeant;60;232451;2003;0.00861687;1.275018479;-0.275018479
ageDirigeant;61;232451;2003;0.00861687;1.275018479;-0.275018479
ageDirigeant;62;232451;2003;0.00861687;1.275018479;-0.275018479
ageDirigeant;63;232451;2003;0.00861687;1.275018479;-0.275018479
ageDirigeant;64;232451;2003;0.00861687;1.275018479;-0.275018479
ageDirigeant;65;100941;680;0.006736609;0.996800526;0.003199474
ageDirigeant;66;100941;680;0.006736609;0.996800526;0.003199474
ageDirigeant;67;100941;680;0.006736609;0.996800526;0.003199474
ageDirigeant;68;100941;680;0.006736609;0.996800526;0.003199474
ageDirigeant;69;100941;680;0.006736609;0.996800526;0.003199474
ageDirigeant;70;55612;320;0.005754154;0.85142895;0.14857105
ageDirigeant;71;55612;320;0.005754154;0.85142895;0.14857105
ageDirigeant;72;55612;320;0.005754154;0.85142895;0.14857105
ageDirigeant;73;55612;320;0.005754154;0.85142895;0.14857105
ageDirigeant;74;55612;320;0.005754154;0.85142895;0.14857105
ageDirigeant;75;33744;164;0.004860123;0.719141306;0.280858694
ageDirigeant;76;33744;164;0.004860123;0.719141306;0.280858694
ageDirigeant;77;33744;164;0.004860123;0.719141306;0.280858694
ageDirigeant;78;33744;164;0.004860123;0.719141306;0.280858694
ageDirigeant;79;33744;164;0.004860123;0.719141306;0.280858694
ageDirigeant;80;19900;73;0.003668342;0.542796117;0.457203883
ageDirigeant;81;19900;73;0.003668342;0.542796117;0.457203883
ageDirigeant;82;19900;73;0.003668342;0.542796117;0.457203883
ageDirigeant;83;19900;73;0.003668342;0.542796117;0.457203883
ageDirigeant;84;19900;73;0.003668342;0.542796117;0.457203883
ageDirigeant;*;13522;39;0.002884189;0.426766798;0.573233202
ageEntreprise;0;398545;3931;0,009863378;1,45812286;-0.45812286
ageEntreprise;1;363230;5849;0.016102745;2.380500904;-1.380500904
ageEntreprise;2;336945;5474;0.016245975;2.401674887;-1.401674887
ageEntreprise;3;320242;4323;0.013499166;1.995608689;-0.995608689
ageEntreprise;4;311256;3186;0.010235947;1.513200512;-0.513200512
ageEntreprise;5;286481;2597;0.009065174;1.340122706;-0.340122706
ageEntreprise;6;271422;2131;0.007851243;1.16066488;-0.16066488
ageEntreprise;7;249689;1696;0.00679245;1.004141411;-0.004141411
ageEntreprise;8;299828;1471;0.004906146;0.725285383;0.274714617
ageEntreprise;9;251098;1368;0.005448072;0.805399367;0.194600633
ageEntreprise;10;224326;1088;0.004850084;0.716997635;0.283002365
ageEntreprise;11;225543;1016;0.004504684;0.665936463;0.334063537
ageEntreprise;12;219141;911;0.004157141;0.614558427;0.385441573
ageEntreprise;13;227433;890;0.00391324;0.578502136;0.421497864
ageEntreprise;14;228796;849;0.003710729;0.548564505;0.451435495
ageEntreprise;15;203213;738;0.003631657;0.536875165;0.463124835
ageEntreprise;16;195413;723;0.003699856;0.546957126;0.453042874
ageEntreprise;17;156467;621;0.003968888;0.586728635;0.413271365
ageEntreprise;18;136150;578;0.004245318;0.627593783;0.372406217
ageEntreprise;19;120966;421;0.003480317;0.514502176;0.485497824
ageEntreprise;20;110350;344;0.003117354;0.460844645;0.539155355
ageEntreprise;21;108829;314;0.00288526;0.426533798;0.573466202
ageEntreprise;22;92057;306;0.003324028;0.49139762;0.50860238
ageEntreprise;23;94394;225;0.002383626;0.3523762;0.6476238
ageEntreprise;24;61811;133;0.002151721;0.318093146;0.681906854
ageEntreprise;25;86450;215;0.002486987;0.367656207;0.632343793
ageEntreprise;26;79203;222;0.002802924;0.414361868;0.585638132
ageEntreprise;27;41020;131;0.003193564;0.472110957;0.527889043
ageEntreprise;28;37137;119;0.003204351;0.473705671;0.526294329
ageEntreprise;29;30627;110;0.003591602;0.530953718;0.469046282
ageEntreprise;30;27785;106;0.003815008;0.563980261;0.436019739
ageEntreprise;31;27100;87;0.003210332;0.474589802;0.525410198
ageEntreprise;32;26851;86;0.00320286;0.47348522;0.52651478
ageEntreprise;33;21279;48;0.002255745;0.3334713;0.6665287
ageEntreprise;34;17287;42;0.002429571;0.359168382;0.640831618
ageEntreprise;35;20082;45;0.002240813;0.331263809;0.668736191
ageEntreprise;36;24005;33;0.001374714;0.203226655;0.796773345
ageEntreprise;37;10981;36;0.00327839;0.484650929;0.515349071
ageEntreprise;38;14152;43;0.00303844;0.449178619;0.550821381
ageEntreprise;39;17017;67;0.003937239;0.582049933;0.417950067
ageEntreprise;40;31055;102;0.003284495;0.485553488;0.514446512
ageEntreprise;41;15175;43;0.002833608;0.418897912;0.581102088
ageEntreprise;42;6992;15;0.002145309;0.3171453;0.6828547
ageEntreprise;43;6310;14;0.0022187;0.327994919;0.672005081
ageEntreprise;44;7244;15;0.002070679;0.306112636;0.693887364
ageEntreprise;45;5863;13;0.002217295;0.32778713;0.67221287
ageEntreprise;46;7647;52;0.006800052;1.005265304;-0.005265304
ageEntreprise;47;9466;55;0.005810268;0.858943563;0.141056437
ageEntreprise;48;6119;35;0.005719889;0.845582587;0.154417413
ageEntreprise;49;6031;41;0.006798209;1.004992841;-0.004992841
ageEntreprise;50;4954;22;0.004440856;0.656500587;0.343499413
ageEntreprise;51;12623;11;0.000871425;0.128824523;0.871175477
ageEntreprise;*;353169;621;0.001758365;0.259942604;0.740057396
insTEFEN;11;122483;2586;0.021113134;3.12406207;-2.12406207
insTEFEN;2;348140;6830;0.019618544;2.902911041;-1.902911041
insTEFEN;3;178988;3509;0.019604666;2.900857541;-1.900857541
insTEFEN;12;77324;1239;0.016023486;2.370958447;-1.370958447
insTEFEN;1;946071;14717;0.015555915;2.301773089;-1.301773089
insTEFEN;21;22652;290;0.012802402;1.894342023;-0.894342023
insTEFEN;22;11018;103;0.009348339;1.383252313;-0.383252313
insTEFEN;31;2325;13;0.005591398;0.827346328;0.172653672
insTEFEN;0;4729670;14264;0.003015855;0.446249188;0.553750812
insTEFEN;32;4541;13;0.002862806;0.423602777;0.576397223
insTEFEN;41;2251;6;0.002665482;0.394405265;0.605594735
insTEFEN;51;492;1;0.00203252;0.300747375;0.699252625
insTEFEN;42;1121;1;0.000892061;0.131996172;0.868003828
insTEFEN;52;172;0;0;0;1
insTEFEN;53;1;0;0;0;1
insNBTOA;13;445;8;0.017977528;2.660093638;-1.660093638
insNBTOA;2;199031;2816;0.01414855;2.093528483;-1.093528483
insNBTOA;3;38973;413;0.01059708;1.56802565;-0.56802565
insNBTOA;1;3755472;38870;0.01035023;1.531499858;-0.531499858
insNBTOA;8;1595;15;0.009404389;1.391545849;-0.391545849
insNBTOA;11;743;6;0.00807537;1.194894013;-0.194894013
insNBTOA;4;14851;119;0.008012928;1.185654658;-0.185654658
insNBTOA;7;2443;19;0.007777323;1.150792658;-0.150792658
insNBTOA;20-25;949;7;0.007376185;1.091437261;-0.091437261
insNBTOA;10;869;6;0.006904488;1.021641256;-0.021641256
insNBTOA;5;7090;46;0.006488011;0.960016163;0.039983837
insNBTOA;6;3905;24;0.006145967;0.909404611;0.090595389
insNBTOA;9;1144;6;0.005244755;0.776054416;0.223945584
insNBTOA;14;412;2;0.004854369;0.718289848;0.281710152
insNBTOA;75-99;225;1;0.004444444;0.657634261;0.342365739
insNBTOA;35-49;639;2;0.00312989;0.463122719;0.536877281
insNBTOA;50-74;424;1;0.002358491;0.348980445;0.651019555
insNBTOA;15-19;1445;3;0.002076125;0.307199395;0.692800605
insNBTOA;12;626;1;0.001597444;0.236370142;0.763629858
insNBTOA;26-34;793;1;0.001261034;0.186592319;0.813407681
insNBTOA;0;2414681;1206;0.000499445;0.073901711;0.926098289
insNBTOA;100-;494;0;0;0;1
insTCA;2;21622;409;0.018915919;2.798369096;-1.798369096
insTCA;3;28973;507;0.017499051;2.588761516;-1.588761516
insTCA;1;20023;348;0.017380013;2.571151383;-1.571151383
insTCA;4;15955;207;0.012973989;1.919336348;-0.919336348
insTCA;5;10403;89;0.008555224;1.265636407;-0.265636407
insTCA;6;7600;51;0.006710526;0.992736831;0.007263169
insTCA;0;6337365;41952;0.006619786;0.979312956;0.020687044
insTCA;7;2667;7;0.002624672;0.388286754;0.611713246
insTCA;9;1314;2;0.00152207;0.225170857;0.774829143
insTCA;8;1327;0;0;0;1
insTCAEXPOR;3;5258;109;0.020730316;3.066785966;-2.066785966
insTCAEXPOR;2;12013;215;0.017897278;2.647674141;-1.647674141
insTCAEXPOR;1;10029;173;0.017249975;2.551913931;-1.551913931
insTCAEXPOR;4;5589;88;0.015745214;2.329303684;-1.329303684
insTCAEXPOR;0;6414360;42987;0.006701682;0.991428405;0.008571595
insSEXE;M;2233981;9893;0.004428417;0.655262754;0.344737246
insSEXE;F;923849;2714;0.002937710;0.434686146;0.565313854
insSEXE;*;3289419;30965;0.009413516;1.392896465;-0.392896465
insRECME;0;6445782;43572;0.006759769;1.000227591;-0.000227591
insRECME;1;1467;0;0.000000000;0;1
insMONOREG;1;78856;935;0.011857056;1.754461392;-0.754461392
insMONOREG;2;6170828;41393;0.006707852;0.992545468;0.007454532
insMONOREG;0;197565;1244;0.006296662;0.931702627;0.068297373
insRPET;11;1205539;10949;0.009082245;1.343874119;-0.343874119
insRPET;31;252996;2234;0.008830179;1.306576712;-0.306576712
insRPET;41;170366;1448;0.008499348;1.25762463;-0.25762463
insRPET;93;599741;4858;0.008100163;1.198558318;-0.198558318
insRPET;42;155599;1173;0.007538609;1.1154667;-0.1154667
insRPET;22;135577;972;0.007169358;1.060829637;-0.060829637
insRPET;4;60943;402;0.006596328;0.976040016;0.023959984
insRPET;24;214087;1391;0.006497359;0.961395827;0.038604173
insRPET;23;131429;852;0.006482588;0.959210205;0.040789795
insRPET;43;102313;659;0.006441019;0.953059456;0.046940544
insRPET;94;36450;234;0.006419753;0.949912765;0.050087235
insRPET;91;337251;2154;0.006386934;0.945056671;0.054943329
insRPET;82;667354;4078;0.0061107;0.904183032;0.095816968
insRPET;2;42948;261;0.006077117;0.899213798;0.100786202
insRPET;72;377551;2184;0.005784649;0.855938198;0.144061802
insRPET;26;164649;907;0.005508688;0.81510506;0.18489494
insRPET;74;80672;443;0.005491372;0.812542903;0.187457097
insRPET;21;136535;746;0.0054638;0.808463155;0.191536845
insRPET;54;191379;972;0.005078927;0.751514532;0.248485468
insRPET;73;335852;1699;0.005058776;0.748532806;0.251467194
insRPET;52;315413;1595;0.005056862;0.748249607;0.251750393
insRPET;83;150096;732;0.004876879;0.721618007;0.278381993
insRPET;1;63134;307;0.004862673;0.719516021;0.280483979
insRPET;3;13275;63;0.004745763;0.702217129;0.297782871
insRPET;53;314133;1445;0.004599962;0.680643473;0.319356527
insRPET;25;149961;678;0.004521176;0.668985593;0.331014407
insRPET;99;41208;134;0.003251796;0.481159052;0.518840948
insRPET;98;775;2;0.002580645;0.381850789;0.618149211
insSINGT;43;23550;425;0.018046709;2.670330198;-1.670330198
insSINGT;2;76142;1237;0.016245961;2.403877696;-1.403877696
insSINGT;1;3885595;40481;0.010418224;1.541560768;-0.541560768
insSINGT;40;13737;119;0.008662736;1.281805149;-0.281805149
insSINGT;31;35843;96;0.002678347;0.396308903;0.603691097
insSINGT;33;3315;8;0.002413273;0.357086476;0.642913524
insSINGT;52;6565;10;0.001523229;0.225388741;0.774611259
insSINGT;10;96382;127;0.001317673;0.194973117;0.805026883
insSINGT;60;216663;228;0.001052326;0.155710193;0.844289807
insSINGT;90;577496;260;0.00045022;0.066617958;0.933382042
insSINGT;70;1298907;576;0.00044345;0.065616245;0.934383755
insSINGT;34;24032;1;4.16112E-05;0.006157112;0.993842888
insSINGT;80;149852;4;2.6693E-05;0.003949703;0.996050297
insSINGT;0;1;;0;0;1
insSINGT;30;5741;0;0;0;1
insSINGT;42;33428;0;0;0;1
insORDIN;1;3412206;41477;0.012155479;1.798618445;-0.798618445
insORDIN;0;3035043;2095;0.00069027;0.102137713;0.897862287
insMODET;3;2787;130;0.046645138;6.901974209;-5.901974209
insMODET;1;991;19;0.019172553;2.836918732;-1.836918732
insMODET;2;3347;45;0.013444876;1.989407496;-0.989407496
insMODET;0;6440124;43378;0.006735585;0.996649019;0.003350981
insAUXILT;1;26364;474;0.017979062;2.66032066;-1.66032066
insAUXILT;0;6420872;43098;0.006712172;0.993184774;0.006815226
insAUXILT;*;13;0;0;0;1
insTCD;73;83653;867;0.010364243;1.533573253;-0.533573253
insTCD;44;207816;2036;0.009797128;1.449658615;-0.449658615
insTCD;52;189137;1814;0.009590931;1.419148149;-0.419148149
insTCD;43;241634;2262;0.009361265;1.385164989;-0.385164989
insTCD;62;114691;1056;0.009207348;1.362390251;-0.362390251
insTCD;41;193192;1687;0.008732246;1.292090379;-0.292090379
insTCD;51;286358;2499;0.008726838;1.291290286;-0.291290286
insTCD;72;161502;1371;0.008489059;1.256106603;-0.256106603
insTCD;80;520175;4329;0.008322199;1.231416755;-0.231416755
insTCD;42;173427;1427;0.008228246;1.21751469;-0.21751469
insTCD;61;258193;2063;0.007990147;1.182283729;-0.182283729
insTCD;31;307323;2413;0.007851674;1.161794206;-0.161794206
insTCD;32;256048;1919;0.007494688;1.108971884;-0.108971884
insTCD;71;137763;984;0.007142702;1.056889189;-0.056889189
insTCD;22;291665;2073;0.007107469;1.051675929;-0.051675929
insTCD;21;317427;2113;0.006656649;0.984969043;0.015030957
insTCD;18;197044;1301;0.006602586;0.976969555;0.023030445
insTCD;17;257376;1549;0.006018432;0.890533619;0.109466381
insTCD;15;199766;1128;0.005646607;0.83551543;0.16448457
insTCD;16;172805;968;0.00560169;0.828869199;0.171130801
insTCD;14;249738;1244;0.00498122;0.737059757;0.262940243
insTCD;0;120431;578;0.004799429;0.71016047;0.28983953
insTCD;13;342501;1623;0.004738672;0.701170482;0.298829518
insTCD;12;272656;1158;0.00424711;0.628435122;0.371564878
insTCD;11;245321;1022;0.00416597;0.616429079;0.383570921
insTCD;8;125432;481;0.003834747;0.567418744;0.432581256
insTCD;7;149718;535;0.003573385;0.528745536;0.471254464
insTCD;6;81869;265;0.003236878;0.478953484;0.521046516
insTCD;4;81356;256;0.003146664;0.465604668;0.534395332
insTCD;5;84330;243;0.002881537;0.426374401;0.573625599
insTCD;3;74476;200;0.002685429;0.397356756;0.602643244
insTCD;2;43091;94;0.00218143;0.322781198;0.677218802
insTCD;1;9335;14;0.001499732;0.221911936;0.778088064
insNATURE;91;238972;6564;0.027467653;4.064325692;-3.064325692
insNATURE;20;144873;3353;0.023144409;3.424625203;-2.424625203
insNATURE;22;10828;119;0.010990026;1.626168944;-0.626168944
insNATURE;93;160570;1367;0.008513421;1.259711389;-0.259711389
insNATURE;21;185819;1501;0.008077753;1.195246614;-0.195246614
insNATURE;92;83924;635;0.00756637;1.119578368;-0.119578368
insNATURE;99;5621113;30028;0.005342003;0.790443877;0.209556123
insNATURE;23;1135;5;0.004405286;0.651840126;0.348159874
insNATURE;*;15;0;0;0;1
insORIGINE;3;296615;3962;0.013357382;1.976461277;-0.976461277
insORIGINE;7;112298;1480;0.01317922;1.950098922;-0.950098922
insORIGINE;2;907819;9870;0.010872211;1.608736195;-0.608736195
insORIGINE;5;54475;462;0.008480955;1.254907414;-0.254907414
insORIGINE;6;1914;11;0.005747126;0.85038913;0.14961087
insORIGINE;1;4776418;27127;0.005679361;0.840361968;0.159638032
insORIGINE;8;90133;230;0.002551785;0.377581718;0.622418282
insORIGINE;0;173492;370;0.002132663;0.315565284;0.684434716
insORIGINE;4;34085;60;0.001760305;0.260468315;0.739531685
insTU;8;1084479;9960;0.009184134;1.358955201;-0.358955201
insTU;7;1259040;10827;0.008599409;1.272434856;-0.272434856
insTU;5;399066;3189;0.007991159;1.182433539;-0.182433539
insTU;6;378843;2890;0.00762849;1.128770171;-0.128770171
insTU;4;410877;2959;0.007201669;1.065614405;-0.065614405
insTU;3;331773;2090;0.006299488;0.93212079;0.06787921
insTU;2;343704;2076;0.006040081;0.893736945;0.106263055
insTU;1;375638;2186;0.005819433;0.861088098;0.138911902
insTU;0;1863829;7395;0.003967639;0.587082401;0.412917599
1 codeZone valeur NBEntreprises NbProCol Pourcentage Risque Points
2 GLOBALE TOTAL 6447249 43572 0.006758231 0.006758231 0
3 insAPEN31 DB 18973 612 0.032256364 4.729218896 -3.729218896
4 insAPEN31 FA 367665 9644 0.0262304 3.845731092 -2.845731092
5 insAPEN31 DJ 32346 786 0.024299759 3.562673018 -2.562673018
6 insAPEN31 DM 5682 132 0.023231257 3.406016148 -2.406016148
7 insAPEN31 DC 2430 55 0.022633745 3.318412852 -2.318412852
8 insAPEN31 DE 36701 740 0.020162938 2.956159228 -1.956159228
9 insAPEN31 DH 5546 111 0.020014425 2.934385137 -1.934385137
10 insAPEN31 DD 11292 225 0.019925611 2.92136384 -1.92136384
11 insAPEN31 DK 17243 334 0.019370179 2.839930026 -1.839930026
12 insAPEN31 HA 242687 4586 0.018896768 2.770521585 -1.770521585
13 insAPEN31 IA 111075 1916 0.017249606 2.529025356 -1.529025356
14 insAPEN31 DL 20515 323 0.015744577 2.308367769 -1.308367769
15 insAPEN31 GA 693458 10740 0.0154876 2.270691423 -1.270691423
16 insAPEN31 DI 9391 138 0.014694921 2.154473946 -1.154473946
17 insAPEN31 DA 69613 995 0.014293307 2.095591997 -1.095591997
18 insAPEN31 DG 4389 61 0.013898382 2.037690661 -1.037690661
19 insAPEN31 DN 33557 435 0.012963018 1.900553633 -0.900553633
20 insAPEN31 ZZ 16576 119 0.007179054 1.052546337 -0.052546337
21 insAPEN31 CB 2833 17 0.006000706 0.879784584 0.120215416
22 insAPEN31 GG 9721 52 0.005349244 0.784271442 0.215728558
23 insAPEN31 MA 70612 373 0.005282388 0.774469502 0.225530498
24 insAPEN31 FF 4750 25 0.005263158 0.77165007 0.22834993
25 insAPEN31 CA 195 1 0.005128205 0.751864171 0.248135829
26 insAPEN31 HH 3757 16 0.004258717 0.62438547 0.37561453
27 insAPEN31 JA 72234 289 0.004000886 0.586583954 0.413416046
28 insAPEN31 OA 611504 2075 0.003393273 0.497499673 0.502500327
29 insAPEN31 KA 2657556 7102 0.00267238 0.391807048 0.608192952
30 insAPEN31 BA 14187 37 0.002608021 0.382371184 0.617628816
31 insAPEN31 OO 2450 6 0.00244898 0.359053502 0.640946498
32 insAPEN31 II 1476 3 0.00203252 0.297994946 0.702005054
33 insAPEN31 KK 22395 40 0.001786113 0.261868298 0.738131702
34 insAPEN31 AA 777002 1339 0.00172329 0.252657643 0.747342357
35 insAPEN31 EA 5687 7 0.001230877 0.180463266 0.819536734
36 insAPEN31 NA 432746 238 0.000549976 0.080633943 0.919366057
37 insAPEN31 BB 81 0 0 1
38 insAPEN31 DF 149 0 0 1
39 insAPEN31 EE 79 0 0 1
40 insAPEN31 JJ 596 0 0 1
41 insAPEN31 LA 56364 0 0 1
42 insAPEN31 LL 79 0 0 1
43 insAPEN31 MM 343 0 0 1
44 insAPEN31 NN 772 0 0 1
45 insAPEN31 PA 32 0 0 1
46 insAPEN31 QA 510 0 0 1
47 insMONOACT 1 57315 535 0.00933438 1.368546272 -0.368546272
48 insMONOACT 2 6175850 41794 0.006767328 0.992181671 0.007818329
49 insMONOACT 0 214084 1243 0.005806132 0.851257436 0.148742564
50 insSAISONAT 0 6422146 43477 0.006769855 0.99255229 0.00744771
51 insSAISONAT 1 25103 95 0.003784408 0.554845387 0.445154613
52 insDEPET 93 99100 1332 0.013440969 1.988829034 -0.988829034
53 insDEPET 77 87496 937 0.010709061 1.58459497 -0.58459497
54 insDEPET 94 94293 975 0.01034011 1.530002158 -0.530002158
55 insDEPET 57 67886 694 0.010223021 1.51267675 -0.51267675
56 insDEPET 95 72827 735 0.010092411 1.493350666 -0.493350666
57 insDEPET 13 198603 1935 0.009743055 1.441657335 -0.441657335
58 insDEPET 59 165430 1504 0.009091459 1.345242092 -0.345242092
59 insDEPET 91 75252 675 0.008969861 1.327249612 -0.327249612
60 insDEPET 06 158986 1366 0.008591951 1.271331178 -0.271331178
61 insDEPET 62 87566 730 0.008336569 1.23354282 -0.23354282
62 insDEPET 54 50761 411 0.008096767 1.198059904 -0.198059904
63 insDEPET 90 9792 79 0.00806781 1.193775242 -0.193775242
64 insDEPET 42 68973 550 0.007974135 1.179914273 -0.179914273
65 insDEPET 60 52888 420 0.00794131 1.175057253 -0.175057253
66 insDEPET 92 147353 1169 0.00793333 1.173876504 -0.173876504
67 insDEPET 68 61653 481 0.007801729 1.154403789 -0.154403789
68 insDEPET 72 43306 332 0.007666374 1.134375644 -0.134375644
69 insDEPET 31 116009 868 0.007482178 1.107120578 -0.107120578
70 insDEPET 02 39818 295 0.00740871 1.096249618 -0.096249618
71 insDEPET 78 101841 754 0.007403698 1.095508047 -0.095508047
72 insDEPET 67 93946 692 0.007365934 1.089920151 -0.089920151
73 insDEPET 28 34301 252 0.007346725 1.087077834 -0.087077834
74 insDEPET 33 152528 1107 0.007257684 1.07390268 -0.07390268
75 insDEPET 84 67613 488 0.007217547 1.067963714 -0.067963714
76 insDEPET 83 126540 909 0.007183499 1.062925765 -0.062925765
77 insDEPET 66 58946 419 0.007108201 1.051784011 -0.051784011
78 insDEPET 18 27790 193 0.006944944 1.027627324 -0.027627324
79 insDEPET 69 174961 1214 0.006938689 1.026701782 -0.026701782
80 insDEPET 88 34443 238 0.006909967 1.022451853 -0.022451853
81 insDEPET 30 76395 525 0.006872177 1.0168602 -0.0168602
82 insDEPET 08 23202 157 0.006766658 1.001246731 -0.001246731
83 insDEPET 87 34338 231 0.006727241 0.995414275 0.004585725
84 insDEPET 76 86118 579 0.006723333 0.994836039 0.005163961
85 insDEPET 26 53631 358 0.006675244 0.987720376 0.012279624
86 insDEPET 34 133650 876 0.006554433 0.969844315 0.030155685
87 insDEPET 2A 17005 111 0.006527492 0.965857872 0.034142128
88 insDEPET 25 44175 286 0.00647425 0.95797981 0.04202019
89 insDEPET 38 119307 770 0.006453938 0.954974293 0.045025707
90 insDEPET 41 28978 186 0.006418662 0.949754625 0.050245375
91 insDEPET 45 49561 318 0.006416335 0.949410303 0.050589697
92 insDEPET 2B 19519 124 0.006352784 0.940006815 0.059993185
93 insDEPET 70 21399 132 0.006168513 0.912740526 0.087259474
94 insDEPET 37 49723 305 0.006133982 0.907631159 0.092368841
95 insDEPET 55 17276 105 0.006077796 0.899317376 0.100682624
96 insDEPET 27 45311 273 0.006025027 0.891509307 0.108490693
97 insDEPET 39 26947 162 0.006011801 0.889552272 0.110447728
98 insDEPET 80 42871 257 0.005994728 0.887026083 0.112973917
99 insDEPET 47 40592 242 0.005961766 0.882148698 0.117851302
100 insDEPET 82 27230 159 0.005839148 0.864005216 0.135994784
101 insDEPET 36 23734 137 0.00577231 0.854115317 0.145884683
102 insDEPET 63 65589 373 0.005686929 0.841481754 0.158518246
103 insDEPET 89 33216 188 0.005659923 0.837485697 0.162514303
104 insDEPET 52 16860 94 0.005575326 0.824968117 0.175031883
105 insDEPET 24 51134 284 0.005554034 0.821817631 0.178182369
106 insDEPET 58 22345 123 0.005504587 0.814501022 0.185498978
107 insDEPET 17 75422 415 0.005502373 0.814173445 0.185826555
108 insDEPET 71 55680 306 0.00549569 0.813184479 0.186815521
109 insDEPET 03 34938 192 0.005495449 0.813148882 0.186851118
110 insDEPET 21 53379 290 0.005432848 0.803885963 0.196114037
111 insDEPET 49 68055 368 0.005407391 0.800119144 0.199880856
112 insDEPET 11 55513 300 0.00540414 0.799638025 0.200361975
113 insDEPET 86 38412 205 0.005336874 0.789684879 0.210315121
114 insDEPET 51 65810 346 0.00525756 0.777948932 0.222051068
115 insDEPET 56 72609 378 0.005205966 0.770314771 0.229685229
116 insDEPET 07 33636 169 0.005024379 0.74344568 0.25655432
117 insDEPET 44 106703 532 0.004985802 0.73773754 0.26226246
118 insDEPET 01 51685 255 0.004933733 0.730033082 0.269966918
119 insDEPET 10 30663 149 0.004859277 0.71901592 0.28098408
120 insDEPET 14 64428 310 0.004811573 0.711957263 0.288042737
121 insDEPET 19 30160 144 0.004774536 0.706477014 0.293522986
122 insDEPET 16 39889 190 0.004763218 0.704802333 0.295197667
123 insDEPET 73 71454 339 0.004744311 0.702004723 0.297995277
124 insDEPET 81 40986 194 0.004733324 0.700378935 0.299621065
125 insDEPET 35 90680 422 0.004653727 0.688601272 0.311398728
126 insDEPET 29 86330 400 0.004633384 0.685591038 0.314408962
127 insDEPET 61 32758 149 0.004548507 0.673032089 0.326967911
128 insDEPET 74 93707 423 0.00451407 0.667936558 0.332063442
129 insDEPET 09 17626 79 0.004482015 0.663193417 0.336806583
130 insDEPET 79 37656 162 0.004302103 0.636572261 0.363427739
131 insDEPET 64 83756 359 0.00428626 0.634227986 0.365772014
132 insDEPET 23 16174 68 0.004204278 0.622097355 0.377902645
133 insDEPET 50 52775 219 0.004149692 0.614020335 0.385979665
134 insDEPET 04 22787 90 0.00394962 0.58441619 0.41558381
135 insDEPET 40 49541 192 0.003875578 0.573460278 0.426539722
136 insDEPET 43 27370 105 0.003836317 0.567650968 0.432349032
137 insDEPET 22 64491 244 0.003783474 0.559831842 0.440168158
138 insDEPET 85 64417 243 0.003772296 0.558177928 0.441822072
139 insDEPET 46 26030 95 0.003649635 0.54002805 0.45997195
140 insDEPET 53 32932 120 0.003643872 0.539175339 0.460824661
141 insDEPET 99 40894 134 0.003276764 0.484855233 0.515144767
142 insDEPET 65 34146 104 0.003045745 0.450671801 0.549328199
143 insDEPET 32 32543 96 0.002949943 0.436496261 0.563503739
144 insDEPET 15 22199 62 0.002792919 0.413261701 0.586738299
145 insDEPET 05 25212 70 0.002776456 0.410825718 0.589174282
146 insDEPET 48 12747 34 0.002667294 0.394673359 0.605326641
147 insDEPET 98 775 2 0.002580645 0.381852092 0.618147908
148 insDEPET 12 41281 104 0.002519319 0.372777775 0.627222225
149 insDEPCOMEN 75120 23391 422 0.018041127 2.669503799 -1.669503799
150 insDEPCOMEN 75110 28336 491 0.017327781 2.56395164 -1.56395164
151 insDEPCOMEN 75102 19124 292 0.015268772 2.259284889 -1.259284889
152 insDEPCOMEN 75103 14002 144 0.010284245 1.521735947 -0.521735947
153 insDEPCOMEN 75112 23538 238 0.010111309 1.496147047 -0.496147047
154 insDEPCOMEN 75119 18558 185 0.009968747 1.475052368 -0.475052368
155 insDEPCOMEN 75109 30187 288 0.009540531 1.411690247 -0.411690247
156 insDEPCOMEN 75111 32950 296 0.008983308 1.329239301 -0.329239301
157 insDEPCOMEN 75101 16952 132 0.007786692 1.15217877 -0.15217877
158 insDEPCOMEN 75118 26179 197 0.007525116 1.113473932 -0.113473932
159 insDEPCOMEN 75114 21520 154 0.007156134 1.058876561 -0.058876561
160 insDEPCOMEN 75108 66310 446 0.006725984 0.995228288 0.004771712
161 insDEPCOMEN 75117 41679 278 0.006670026 0.986948262 0.013051738
162 insDEPCOMEN 75115 36833 223 0.006054353 0.895848666 0.104151334
163 insDEPCOMEN 75113 19497 113 0.005795763 0.857585705 0.142414295
164 insDEPCOMEN 75104 10380 51 0.004913295 0.72700886 0.27299114
165 insDEPCOMEN 75105 14528 71 0.004887115 0.723135028 0.276864972
166 insDEPCOMEN 75116 48424 220 0.004543202 0.672247044 0.327752956
167 insDEPCOMEN 75106 16345 72 0.004405017 0.651800145 0.348199855
168 insDEPCOMEN 75107 18645 59 0.003164387 0.468227056 0.531772944
169 insDEPCOMEN,3 974 61141 402 0.006574966 0.972882512 0.027117488
170 insDEPCOMEN,3 972 42850 261 0.006091015 0.901273418 0.098726582
171 insDEPCOMEN,3 971 63190 307 0.004858364 0.718880828 0.281119172
172 insDEPCOMEN,3 973 13285 63 0.00474219 0.701690944 0.298309056
173 insCJ,2 54 1046180 26431 0.025264295 3.738299821 -2.738299821
174 insCJ,2 55 116455 1676 0.014391825 2.129525393 -1.129525393
175 insCJ,2 13 332350 4569 0.013747555 2.034194255 -1.034194255
176 insCJ,2 56 6079 81 0.01332456 1.971604606 -0.971604606
177 insCJ,2 57 68076 864 0.012691698 1.8779614 -0.8779614
178 insCJ,2 12 437093 5064 0.011585635 1.714299878 -0.714299878
179 insCJ,2 11 197912 2096 0.010590566 1.567061711 -0.567061711
180 insCJ,2 82 5102 51 0.00999608 1.479097048 -0.479097048
181 insCJ,2 31 11814 115 0.009734214 1.440349288 -0.440349288
182 insCJ,2 53 1525 13 0.00852459 1.261364073 -0.261364073
183 insCJ,2 52 38818 186 0.004791592 0.709000819 0.290999181
184 insCJ,2 51 517 1 0.001934236 0.286204465 0.713795535
185 insCJ,2 92 417094 658 0.001577582 0.233431198 0.766568802
186 insCJ,2 62 10141 12 0.001183315 0.175092447 0.824907553
187 insCJ,2 17 40919 39 0.000953102 0.141028389 0.858971611
188 insCJ,2 16 558658 471 0.000843092 0.124750367 0.875249633
189 insCJ,2 65 1134849 828 0.000729612 0.107959088 0.892040912
190 insCJ,2 32 26976 19 0.00070433 0.104218063 0.895781937
191 insCJ,2 29 24080 14 0.000581395 0.086027738 0.913972262
192 insCJ,2 84 8634 5 0.000579106 0.085688967 0.914311033
193 insCJ,2 63 20101 6 0.000298493 0.044167268 0.955832732
194 insCJ,2 19 511880 129 0.000252012 0.037289666 0.962710334
195 insCJ,2 15 577704 133 0.000230222 0.034065378 0.965934622
196 insCJ,2 18 497265 107 0.000215177 0.03183925 0.96816075
197 insCJ,2 22 29402 3 0.000102034 0.015097719 0.984902281
198 insCJ,2 21 24477 1 4.08547E-05 0.006045173 0.993954827
199 insCJ,2 10 1 0 0 0 1
200 insCJ,2 14 6117 0 0 0 1
201 insCJ,2 23 7434 0 0 0 1
202 insCJ,2 27 527 0 0 0 1
203 insCJ,2 41 874 0 0 0 1
204 insCJ,2 61 17 0 0 0 1
205 insCJ,2 64 178 0 0 0 1
206 insCJ,2 69 2 0 0 0 1
207 insCJ,2 71 2984 0 0 0 1
208 insCJ,2 72 36821 0 0 0 1
209 insCJ,2 73 91862 0 0 0 1
210 insCJ,2 74 2566 0 0 0 1
211 insCJ,2 81 1202 0 0 0 1
212 insCJ,2 83 4849 0 0 0 1
213 insCJ,2 91 145682 0 0 0 1
214 insCJ,2 93 461 0 0 0 1
215 insCJ,2 99 1571 0 0 0 1
216 ageDirigeant 0 4092989 11244 0.002747137 0.406487512 0.593512488
217 ageDirigeant 1 7915 339 0.042830069 6.337467242 -5.337467242
218 ageDirigeant 2 7915 339 0.042830069 6.337467242 -5.337467242
219 ageDirigeant 3 7915 339 0.042830069 6.337467242 -5.337467242
220 ageDirigeant 4 7915 339 0.042830069 6.337467242 -5.337467242
221 ageDirigeant 5 7915 339 0.042830069 6.337467242 -5.337467242
222 ageDirigeant 6 7915 339 0.042830069 6.337467242 -5.337467242
223 ageDirigeant 7 7915 339 0.042830069 6.337467242 -5.337467242
224 ageDirigeant 8 7915 339 0.042830069 6.337467242 -5.337467242
225 ageDirigeant 9 7915 339 0.042830069 6.337467242 -5.337467242
226 ageDirigeant 10 7915 339 0.042830069 6.337467242 -5.337467242
227 ageDirigeant 11 7915 339 0.042830069 6.337467242 -5.337467242
228 ageDirigeant 12 7915 339 0.042830069 6.337467242 -5.337467242
229 ageDirigeant 13 7915 339 0.042830069 6.337467242 -5.337467242
230 ageDirigeant 14 7915 339 0.042830069 6.337467242 -5.337467242
231 ageDirigeant 15 7915 339 0.042830069 6.337467242 -5.337467242
232 ageDirigeant 16 7915 339 0.042830069 6.337467242 -5.337467242
233 ageDirigeant 17 7915 339 0.042830069 6.337467242 -5.337467242
234 ageDirigeant 18 7915 339 0.042830069 6.337467242 -5.337467242
235 ageDirigeant 19 7915 339 0.042830069 6.337467242 -5.337467242
236 ageDirigeant 20 7915 339 0.042830069 6.337467242 -5.337467242
237 ageDirigeant 21 7915 339 0.042830069 6.337467242 -5.337467242
238 ageDirigeant 22 7915 339 0.042830069 6.337467242 -5.337467242
239 ageDirigeant 23 7915 339 0.042830069 6.337467242 -5.337467242
240 ageDirigeant 24 7915 339 0.042830069 6.337467242 -5.337467242
241 ageDirigeant 25 7915 339 0.042830069 6.337467242 -5.337467242
242 ageDirigeant 26 51311 1744 0.033988813 5.029246825 -4.029246825
243 ageDirigeant 27 51311 1744 0.033988813 5.029246825 -4.029246825
244 ageDirigeant 28 51311 1744 0.033988813 5.029246825 -4.029246825
245 ageDirigeant 29 51311 1744 0.033988813 5.029246825 -4.029246825
246 ageDirigeant 30 132700 3421 0.025779955 3.814600838 -2.814600838
247 ageDirigeant 31 132700 3421 0.025779955 3.814600838 -2.814600838
248 ageDirigeant 32 132700 3421 0.025779955 3.814600838 -2.814600838
249 ageDirigeant 33 132700 3421 0.025779955 3.814600838 -2.814600838
250 ageDirigeant 34 132700 3421 0.025779955 3.814600838 -2.814600838
251 ageDirigeant 35 246272 4538 0.01842678 2.726568435 -1.726568435
252 ageDirigeant 36 246272 4538 0.01842678 2.726568435 -1.726568435
253 ageDirigeant 37 246272 4538 0.01842678 2.726568435 -1.726568435
254 ageDirigeant 38 246272 4538 0.01842678 2.726568435 -1.726568435
255 ageDirigeant 39 246272 4538 0.01842678 2.726568435 -1.726568435
256 ageDirigeant 40 339245 5421 0.015979602 2.364465057 -1.364465057
257 ageDirigeant 41 339245 5421 0.015979602 2.364465057 -1.364465057
258 ageDirigeant 42 339245 5421 0.015979602 2.364465057 -1.364465057
259 ageDirigeant 43 339245 5421 0.015979602 2.364465057 -1.364465057
260 ageDirigeant 44 339245 5421 0.015979602 2.364465057 -1.364465057
261 ageDirigeant 45 367968 5217 0.014177863 2.097865945 -1.097865945
262 ageDirigeant 46 367968 5217 0.014177863 2.097865945 -1.097865945
263 ageDirigeant 47 367968 5217 0.014177863 2.097865945 -1.097865945
264 ageDirigeant 48 367968 5217 0.014177863 2.097865945 -1.097865945
265 ageDirigeant 49 367968 5217 0.014177863 2.097865945 -1.097865945
266 ageDirigeant 50 375026 4591 0.012241818 1.811393744 -0.811393744
267 ageDirigeant 51 375026 4591 0.012241818 1.811393744 -0.811393744
268 ageDirigeant 52 375026 4591 0.012241818 1.811393744 -0.811393744
269 ageDirigeant 53 375026 4591 0.012241818 1.811393744 -0.811393744
270 ageDirigeant 54 375026 4591 0.012241818 1.811393744 -0.811393744
271 ageDirigeant 55 377653 3778 0.010003892 1.480253045 -0.480253045
272 ageDirigeant 56 377653 3778 0.010003892 1.480253045 -0.480253045
273 ageDirigeant 57 377653 3778 0.010003892 1.480253045 -0.480253045
274 ageDirigeant 58 377653 3778 0.010003892 1.480253045 -0.480253045
275 ageDirigeant 59 377653 3778 0.010003892 1.480253045 -0.480253045
276 ageDirigeant 60 232451 2003 0.00861687 1.275018479 -0.275018479
277 ageDirigeant 61 232451 2003 0.00861687 1.275018479 -0.275018479
278 ageDirigeant 62 232451 2003 0.00861687 1.275018479 -0.275018479
279 ageDirigeant 63 232451 2003 0.00861687 1.275018479 -0.275018479
280 ageDirigeant 64 232451 2003 0.00861687 1.275018479 -0.275018479
281 ageDirigeant 65 100941 680 0.006736609 0.996800526 0.003199474
282 ageDirigeant 66 100941 680 0.006736609 0.996800526 0.003199474
283 ageDirigeant 67 100941 680 0.006736609 0.996800526 0.003199474
284 ageDirigeant 68 100941 680 0.006736609 0.996800526 0.003199474
285 ageDirigeant 69 100941 680 0.006736609 0.996800526 0.003199474
286 ageDirigeant 70 55612 320 0.005754154 0.85142895 0.14857105
287 ageDirigeant 71 55612 320 0.005754154 0.85142895 0.14857105
288 ageDirigeant 72 55612 320 0.005754154 0.85142895 0.14857105
289 ageDirigeant 73 55612 320 0.005754154 0.85142895 0.14857105
290 ageDirigeant 74 55612 320 0.005754154 0.85142895 0.14857105
291 ageDirigeant 75 33744 164 0.004860123 0.719141306 0.280858694
292 ageDirigeant 76 33744 164 0.004860123 0.719141306 0.280858694
293 ageDirigeant 77 33744 164 0.004860123 0.719141306 0.280858694
294 ageDirigeant 78 33744 164 0.004860123 0.719141306 0.280858694
295 ageDirigeant 79 33744 164 0.004860123 0.719141306 0.280858694
296 ageDirigeant 80 19900 73 0.003668342 0.542796117 0.457203883
297 ageDirigeant 81 19900 73 0.003668342 0.542796117 0.457203883
298 ageDirigeant 82 19900 73 0.003668342 0.542796117 0.457203883
299 ageDirigeant 83 19900 73 0.003668342 0.542796117 0.457203883
300 ageDirigeant 84 19900 73 0.003668342 0.542796117 0.457203883
301 ageDirigeant * 13522 39 0.002884189 0.426766798 0.573233202
302 ageEntreprise 0 398545 3931 0,009863378 1,45812286 -0.45812286
303 ageEntreprise 1 363230 5849 0.016102745 2.380500904 -1.380500904
304 ageEntreprise 2 336945 5474 0.016245975 2.401674887 -1.401674887
305 ageEntreprise 3 320242 4323 0.013499166 1.995608689 -0.995608689
306 ageEntreprise 4 311256 3186 0.010235947 1.513200512 -0.513200512
307 ageEntreprise 5 286481 2597 0.009065174 1.340122706 -0.340122706
308 ageEntreprise 6 271422 2131 0.007851243 1.16066488 -0.16066488
309 ageEntreprise 7 249689 1696 0.00679245 1.004141411 -0.004141411
310 ageEntreprise 8 299828 1471 0.004906146 0.725285383 0.274714617
311 ageEntreprise 9 251098 1368 0.005448072 0.805399367 0.194600633
312 ageEntreprise 10 224326 1088 0.004850084 0.716997635 0.283002365
313 ageEntreprise 11 225543 1016 0.004504684 0.665936463 0.334063537
314 ageEntreprise 12 219141 911 0.004157141 0.614558427 0.385441573
315 ageEntreprise 13 227433 890 0.00391324 0.578502136 0.421497864
316 ageEntreprise 14 228796 849 0.003710729 0.548564505 0.451435495
317 ageEntreprise 15 203213 738 0.003631657 0.536875165 0.463124835
318 ageEntreprise 16 195413 723 0.003699856 0.546957126 0.453042874
319 ageEntreprise 17 156467 621 0.003968888 0.586728635 0.413271365
320 ageEntreprise 18 136150 578 0.004245318 0.627593783 0.372406217
321 ageEntreprise 19 120966 421 0.003480317 0.514502176 0.485497824
322 ageEntreprise 20 110350 344 0.003117354 0.460844645 0.539155355
323 ageEntreprise 21 108829 314 0.00288526 0.426533798 0.573466202
324 ageEntreprise 22 92057 306 0.003324028 0.49139762 0.50860238
325 ageEntreprise 23 94394 225 0.002383626 0.3523762 0.6476238
326 ageEntreprise 24 61811 133 0.002151721 0.318093146 0.681906854
327 ageEntreprise 25 86450 215 0.002486987 0.367656207 0.632343793
328 ageEntreprise 26 79203 222 0.002802924 0.414361868 0.585638132
329 ageEntreprise 27 41020 131 0.003193564 0.472110957 0.527889043
330 ageEntreprise 28 37137 119 0.003204351 0.473705671 0.526294329
331 ageEntreprise 29 30627 110 0.003591602 0.530953718 0.469046282
332 ageEntreprise 30 27785 106 0.003815008 0.563980261 0.436019739
333 ageEntreprise 31 27100 87 0.003210332 0.474589802 0.525410198
334 ageEntreprise 32 26851 86 0.00320286 0.47348522 0.52651478
335 ageEntreprise 33 21279 48 0.002255745 0.3334713 0.6665287
336 ageEntreprise 34 17287 42 0.002429571 0.359168382 0.640831618
337 ageEntreprise 35 20082 45 0.002240813 0.331263809 0.668736191
338 ageEntreprise 36 24005 33 0.001374714 0.203226655 0.796773345
339 ageEntreprise 37 10981 36 0.00327839 0.484650929 0.515349071
340 ageEntreprise 38 14152 43 0.00303844 0.449178619 0.550821381
341 ageEntreprise 39 17017 67 0.003937239 0.582049933 0.417950067
342 ageEntreprise 40 31055 102 0.003284495 0.485553488 0.514446512
343 ageEntreprise 41 15175 43 0.002833608 0.418897912 0.581102088
344 ageEntreprise 42 6992 15 0.002145309 0.3171453 0.6828547
345 ageEntreprise 43 6310 14 0.0022187 0.327994919 0.672005081
346 ageEntreprise 44 7244 15 0.002070679 0.306112636 0.693887364
347 ageEntreprise 45 5863 13 0.002217295 0.32778713 0.67221287
348 ageEntreprise 46 7647 52 0.006800052 1.005265304 -0.005265304
349 ageEntreprise 47 9466 55 0.005810268 0.858943563 0.141056437
350 ageEntreprise 48 6119 35 0.005719889 0.845582587 0.154417413
351 ageEntreprise 49 6031 41 0.006798209 1.004992841 -0.004992841
352 ageEntreprise 50 4954 22 0.004440856 0.656500587 0.343499413
353 ageEntreprise 51 12623 11 0.000871425 0.128824523 0.871175477
354 ageEntreprise * 353169 621 0.001758365 0.259942604 0.740057396
355 insTEFEN 11 122483 2586 0.021113134 3.12406207 -2.12406207
356 insTEFEN 2 348140 6830 0.019618544 2.902911041 -1.902911041
357 insTEFEN 3 178988 3509 0.019604666 2.900857541 -1.900857541
358 insTEFEN 12 77324 1239 0.016023486 2.370958447 -1.370958447
359 insTEFEN 1 946071 14717 0.015555915 2.301773089 -1.301773089
360 insTEFEN 21 22652 290 0.012802402 1.894342023 -0.894342023
361 insTEFEN 22 11018 103 0.009348339 1.383252313 -0.383252313
362 insTEFEN 31 2325 13 0.005591398 0.827346328 0.172653672
363 insTEFEN 0 4729670 14264 0.003015855 0.446249188 0.553750812
364 insTEFEN 32 4541 13 0.002862806 0.423602777 0.576397223
365 insTEFEN 41 2251 6 0.002665482 0.394405265 0.605594735
366 insTEFEN 51 492 1 0.00203252 0.300747375 0.699252625
367 insTEFEN 42 1121 1 0.000892061 0.131996172 0.868003828
368 insTEFEN 52 172 0 0 0 1
369 insTEFEN 53 1 0 0 0 1
370 insNBTOA 13 445 8 0.017977528 2.660093638 -1.660093638
371 insNBTOA 2 199031 2816 0.01414855 2.093528483 -1.093528483
372 insNBTOA 3 38973 413 0.01059708 1.56802565 -0.56802565
373 insNBTOA 1 3755472 38870 0.01035023 1.531499858 -0.531499858
374 insNBTOA 8 1595 15 0.009404389 1.391545849 -0.391545849
375 insNBTOA 11 743 6 0.00807537 1.194894013 -0.194894013
376 insNBTOA 4 14851 119 0.008012928 1.185654658 -0.185654658
377 insNBTOA 7 2443 19 0.007777323 1.150792658 -0.150792658
378 insNBTOA 20-25 949 7 0.007376185 1.091437261 -0.091437261
379 insNBTOA 10 869 6 0.006904488 1.021641256 -0.021641256
380 insNBTOA 5 7090 46 0.006488011 0.960016163 0.039983837
381 insNBTOA 6 3905 24 0.006145967 0.909404611 0.090595389
382 insNBTOA 9 1144 6 0.005244755 0.776054416 0.223945584
383 insNBTOA 14 412 2 0.004854369 0.718289848 0.281710152
384 insNBTOA 75-99 225 1 0.004444444 0.657634261 0.342365739
385 insNBTOA 35-49 639 2 0.00312989 0.463122719 0.536877281
386 insNBTOA 50-74 424 1 0.002358491 0.348980445 0.651019555
387 insNBTOA 15-19 1445 3 0.002076125 0.307199395 0.692800605
388 insNBTOA 12 626 1 0.001597444 0.236370142 0.763629858
389 insNBTOA 26-34 793 1 0.001261034 0.186592319 0.813407681
390 insNBTOA 0 2414681 1206 0.000499445 0.073901711 0.926098289
391 insNBTOA 100- 494 0 0 0 1
392 insTCA 2 21622 409 0.018915919 2.798369096 -1.798369096
393 insTCA 3 28973 507 0.017499051 2.588761516 -1.588761516
394 insTCA 1 20023 348 0.017380013 2.571151383 -1.571151383
395 insTCA 4 15955 207 0.012973989 1.919336348 -0.919336348
396 insTCA 5 10403 89 0.008555224 1.265636407 -0.265636407
397 insTCA 6 7600 51 0.006710526 0.992736831 0.007263169
398 insTCA 0 6337365 41952 0.006619786 0.979312956 0.020687044
399 insTCA 7 2667 7 0.002624672 0.388286754 0.611713246
400 insTCA 9 1314 2 0.00152207 0.225170857 0.774829143
401 insTCA 8 1327 0 0 0 1
402 insTCAEXPOR 3 5258 109 0.020730316 3.066785966 -2.066785966
403 insTCAEXPOR 2 12013 215 0.017897278 2.647674141 -1.647674141
404 insTCAEXPOR 1 10029 173 0.017249975 2.551913931 -1.551913931
405 insTCAEXPOR 4 5589 88 0.015745214 2.329303684 -1.329303684
406 insTCAEXPOR 0 6414360 42987 0.006701682 0.991428405 0.008571595
407 insSEXE M 2233981 9893 0.004428417 0.655262754 0.344737246
408 insSEXE F 923849 2714 0.002937710 0.434686146 0.565313854
409 insSEXE * 3289419 30965 0.009413516 1.392896465 -0.392896465
410 insRECME 0 6445782 43572 0.006759769 1.000227591 -0.000227591
411 insRECME 1 1467 0 0.000000000 0 1
412 insMONOREG 1 78856 935 0.011857056 1.754461392 -0.754461392
413 insMONOREG 2 6170828 41393 0.006707852 0.992545468 0.007454532
414 insMONOREG 0 197565 1244 0.006296662 0.931702627 0.068297373
415 insRPET 11 1205539 10949 0.009082245 1.343874119 -0.343874119
416 insRPET 31 252996 2234 0.008830179 1.306576712 -0.306576712
417 insRPET 41 170366 1448 0.008499348 1.25762463 -0.25762463
418 insRPET 93 599741 4858 0.008100163 1.198558318 -0.198558318
419 insRPET 42 155599 1173 0.007538609 1.1154667 -0.1154667
420 insRPET 22 135577 972 0.007169358 1.060829637 -0.060829637
421 insRPET 4 60943 402 0.006596328 0.976040016 0.023959984
422 insRPET 24 214087 1391 0.006497359 0.961395827 0.038604173
423 insRPET 23 131429 852 0.006482588 0.959210205 0.040789795
424 insRPET 43 102313 659 0.006441019 0.953059456 0.046940544
425 insRPET 94 36450 234 0.006419753 0.949912765 0.050087235
426 insRPET 91 337251 2154 0.006386934 0.945056671 0.054943329
427 insRPET 82 667354 4078 0.0061107 0.904183032 0.095816968
428 insRPET 2 42948 261 0.006077117 0.899213798 0.100786202
429 insRPET 72 377551 2184 0.005784649 0.855938198 0.144061802
430 insRPET 26 164649 907 0.005508688 0.81510506 0.18489494
431 insRPET 74 80672 443 0.005491372 0.812542903 0.187457097
432 insRPET 21 136535 746 0.0054638 0.808463155 0.191536845
433 insRPET 54 191379 972 0.005078927 0.751514532 0.248485468
434 insRPET 73 335852 1699 0.005058776 0.748532806 0.251467194
435 insRPET 52 315413 1595 0.005056862 0.748249607 0.251750393
436 insRPET 83 150096 732 0.004876879 0.721618007 0.278381993
437 insRPET 1 63134 307 0.004862673 0.719516021 0.280483979
438 insRPET 3 13275 63 0.004745763 0.702217129 0.297782871
439 insRPET 53 314133 1445 0.004599962 0.680643473 0.319356527
440 insRPET 25 149961 678 0.004521176 0.668985593 0.331014407
441 insRPET 99 41208 134 0.003251796 0.481159052 0.518840948
442 insRPET 98 775 2 0.002580645 0.381850789 0.618149211
443 insSINGT 43 23550 425 0.018046709 2.670330198 -1.670330198
444 insSINGT 2 76142 1237 0.016245961 2.403877696 -1.403877696
445 insSINGT 1 3885595 40481 0.010418224 1.541560768 -0.541560768
446 insSINGT 40 13737 119 0.008662736 1.281805149 -0.281805149
447 insSINGT 31 35843 96 0.002678347 0.396308903 0.603691097
448 insSINGT 33 3315 8 0.002413273 0.357086476 0.642913524
449 insSINGT 52 6565 10 0.001523229 0.225388741 0.774611259
450 insSINGT 10 96382 127 0.001317673 0.194973117 0.805026883
451 insSINGT 60 216663 228 0.001052326 0.155710193 0.844289807
452 insSINGT 90 577496 260 0.00045022 0.066617958 0.933382042
453 insSINGT 70 1298907 576 0.00044345 0.065616245 0.934383755
454 insSINGT 34 24032 1 4.16112E-05 0.006157112 0.993842888
455 insSINGT 80 149852 4 2.6693E-05 0.003949703 0.996050297
456 insSINGT 0 1 0 0 1
457 insSINGT 30 5741 0 0 0 1
458 insSINGT 42 33428 0 0 0 1
459 insORDIN 1 3412206 41477 0.012155479 1.798618445 -0.798618445
460 insORDIN 0 3035043 2095 0.00069027 0.102137713 0.897862287
461 insMODET 3 2787 130 0.046645138 6.901974209 -5.901974209
462 insMODET 1 991 19 0.019172553 2.836918732 -1.836918732
463 insMODET 2 3347 45 0.013444876 1.989407496 -0.989407496
464 insMODET 0 6440124 43378 0.006735585 0.996649019 0.003350981
465 insAUXILT 1 26364 474 0.017979062 2.66032066 -1.66032066
466 insAUXILT 0 6420872 43098 0.006712172 0.993184774 0.006815226
467 insAUXILT * 13 0 0 0 1
468 insTCD 73 83653 867 0.010364243 1.533573253 -0.533573253
469 insTCD 44 207816 2036 0.009797128 1.449658615 -0.449658615
470 insTCD 52 189137 1814 0.009590931 1.419148149 -0.419148149
471 insTCD 43 241634 2262 0.009361265 1.385164989 -0.385164989
472 insTCD 62 114691 1056 0.009207348 1.362390251 -0.362390251
473 insTCD 41 193192 1687 0.008732246 1.292090379 -0.292090379
474 insTCD 51 286358 2499 0.008726838 1.291290286 -0.291290286
475 insTCD 72 161502 1371 0.008489059 1.256106603 -0.256106603
476 insTCD 80 520175 4329 0.008322199 1.231416755 -0.231416755
477 insTCD 42 173427 1427 0.008228246 1.21751469 -0.21751469
478 insTCD 61 258193 2063 0.007990147 1.182283729 -0.182283729
479 insTCD 31 307323 2413 0.007851674 1.161794206 -0.161794206
480 insTCD 32 256048 1919 0.007494688 1.108971884 -0.108971884
481 insTCD 71 137763 984 0.007142702 1.056889189 -0.056889189
482 insTCD 22 291665 2073 0.007107469 1.051675929 -0.051675929
483 insTCD 21 317427 2113 0.006656649 0.984969043 0.015030957
484 insTCD 18 197044 1301 0.006602586 0.976969555 0.023030445
485 insTCD 17 257376 1549 0.006018432 0.890533619 0.109466381
486 insTCD 15 199766 1128 0.005646607 0.83551543 0.16448457
487 insTCD 16 172805 968 0.00560169 0.828869199 0.171130801
488 insTCD 14 249738 1244 0.00498122 0.737059757 0.262940243
489 insTCD 0 120431 578 0.004799429 0.71016047 0.28983953
490 insTCD 13 342501 1623 0.004738672 0.701170482 0.298829518
491 insTCD 12 272656 1158 0.00424711 0.628435122 0.371564878
492 insTCD 11 245321 1022 0.00416597 0.616429079 0.383570921
493 insTCD 8 125432 481 0.003834747 0.567418744 0.432581256
494 insTCD 7 149718 535 0.003573385 0.528745536 0.471254464
495 insTCD 6 81869 265 0.003236878 0.478953484 0.521046516
496 insTCD 4 81356 256 0.003146664 0.465604668 0.534395332
497 insTCD 5 84330 243 0.002881537 0.426374401 0.573625599
498 insTCD 3 74476 200 0.002685429 0.397356756 0.602643244
499 insTCD 2 43091 94 0.00218143 0.322781198 0.677218802
500 insTCD 1 9335 14 0.001499732 0.221911936 0.778088064
501 insNATURE 91 238972 6564 0.027467653 4.064325692 -3.064325692
502 insNATURE 20 144873 3353 0.023144409 3.424625203 -2.424625203
503 insNATURE 22 10828 119 0.010990026 1.626168944 -0.626168944
504 insNATURE 93 160570 1367 0.008513421 1.259711389 -0.259711389
505 insNATURE 21 185819 1501 0.008077753 1.195246614 -0.195246614
506 insNATURE 92 83924 635 0.00756637 1.119578368 -0.119578368
507 insNATURE 99 5621113 30028 0.005342003 0.790443877 0.209556123
508 insNATURE 23 1135 5 0.004405286 0.651840126 0.348159874
509 insNATURE * 15 0 0 0 1
510 insORIGINE 3 296615 3962 0.013357382 1.976461277 -0.976461277
511 insORIGINE 7 112298 1480 0.01317922 1.950098922 -0.950098922
512 insORIGINE 2 907819 9870 0.010872211 1.608736195 -0.608736195
513 insORIGINE 5 54475 462 0.008480955 1.254907414 -0.254907414
514 insORIGINE 6 1914 11 0.005747126 0.85038913 0.14961087
515 insORIGINE 1 4776418 27127 0.005679361 0.840361968 0.159638032
516 insORIGINE 8 90133 230 0.002551785 0.377581718 0.622418282
517 insORIGINE 0 173492 370 0.002132663 0.315565284 0.684434716
518 insORIGINE 4 34085 60 0.001760305 0.260468315 0.739531685
519 insTU 8 1084479 9960 0.009184134 1.358955201 -0.358955201
520 insTU 7 1259040 10827 0.008599409 1.272434856 -0.272434856
521 insTU 5 399066 3189 0.007991159 1.182433539 -0.182433539
522 insTU 6 378843 2890 0.00762849 1.128770171 -0.128770171
523 insTU 4 410877 2959 0.007201669 1.065614405 -0.065614405
524 insTU 3 331773 2090 0.006299488 0.93212079 0.06787921
525 insTU 2 343704 2076 0.006040081 0.893736945 0.106263055
526 insTU 1 375638 2186 0.005819433 0.861088098 0.138911902
527 insTU 0 1863829 7395 0.003967639 0.587082401 0.412917599

View File

@ -1,194 +0,0 @@
<?php
/**
* CLASS soundex2
* soundex2 French version
* based on the algorithm described here : http://sqlpro.developpez.com/cours/soundex/ by Frédéric BROUARD
*
* author Johan Barbier <barbier_johan@hotmail.com>
*/
class soundex2 {
/**
* public sString
* main string we work on
*/
var $sString = '';
/**
* vowels replacement array
*/
var $aReplaceVoy1 = array (
'E' => 'A',
'I' => 'A',
'O' => 'A',
'U' => 'A'
);
/**
* consonnants replacement array
*/
var $aReplaceGrp1 = array (
'GUI' => 'KI',
'GUE' => 'KE',
'GA' => 'KA',
'GO' => 'KO',
'GU' => 'K',
'CA' => 'KA',
'CO' => 'KO',
'CU' => 'KU',
'Q' => 'K',
'CC' => 'K',
'CK' => 'K'
);
/**
* other replacement array
*/
var $aReplaceGrp2 = array (
'ASA' => 'AZA',
'KN' => 'NN',
'PF' => 'FF',
'PH' => 'FF',
'SCH' => 'SSS'
);
/**
* endings replacement array
*/
var $aEnd = array (
'A',
'T',
'D',
'S'
);
/**
* public function build
* core function of the class, go through the whole process
* @Param string sString : the string we want to check
*/
function build ($sString) {
/**
* let's check it's a real string...
*/
if (is_string ($sString) && !empty ($sString)) {
$this -> sString = $sString;
} else {
$this -> sString = '';
//trigger_error ('Parameter string must not be empty', E_USER_ERROR);
}
/**
* remove starting and ending spaces
*/
$this -> sString = trim ($this -> sString);
/**
* remove special french characters
*/
$this -> trimAccent ();
/**
* string to upper case
*/
$this -> sString = strtoupper ($this -> sString );
/**
* let's remove every space in the string
*/
$this -> sString = str_replace (' ', '', $this -> sString);
/**
* let's remove every '-' in the string
*/
$this -> sString = str_replace ('-', '', $this -> sString);
/**
* let's process through the first replacement array
*/
$this -> arrReplace ($this -> aReplaceGrp1);
/**
* let's process through th vowels replacement
*/
$sChar = substr ($this -> sString, 0, 1);
$this -> sString = substr ($this -> sString, 1, strlen ($this -> sString) - 1);
$this -> arrReplace ($this -> aReplaceVoy1);
$this -> sString = $sChar.$this -> sString;
/**
* let's process through the second replacement array
*/
$this -> arrReplace ($this -> aReplaceGrp2, true);
/**
* let's remove every 'H' but those prededed by a 'C' or an 'S'
*/
$this -> sString = preg_replace ('/(?<![CS])H/', '', $this -> sString);
/**
* let's remove every 'Y' but those preceded by an 'A'
*/
$this -> sString = preg_replace ('/(?<!A)Y/', '', $this -> sString);
/**
* remove endings in aEnd
*/
$length = strlen ($this -> sString) - 1;
if (in_array ($this -> sString{$length}, $this -> aEnd)) {
$this -> sString = substr ($this -> sString, 0, $length);
}
/**
* let's remove every 'A', but the one at the beginning of the string, if any.
*/
$sChar = '';
if ($this -> sString{0} === 'A') {
$sChar = 'A';
}
$this -> sString = str_replace ('A', '', $this -> sString);
$this -> sString = $sChar.$this -> sString;
/**
* let's have only 1 occurence of each letter
*/
$this -> sString = preg_replace( '/(.)\1/', '$1', $this -> sString );
/**
* let's have the final code : a 4 letters string
*/
$this -> getFinal ();
}
/**
* private function getFinal
* gets the first 4 letters, pads the string with white space if the string length < 4
*/
function getFinal () {
if (strlen ($this -> sString) < 4) {
$this -> sString = str_pad ($this -> sString, 4, ' ', STR_PAD_RIGHT);
} else {
$this -> sString = substr ($this -> sString, 0, 4);
}
}
/**
* private function trimAccent
* remove every special French letters
*/
function trimAccent () {
$this -> sString = htmlentities(strtolower($this -> sString ));
$this -> sString = preg_replace("/&(.)(acute|cedil|circ|ring|tilde|uml|grave);/", "$1", $this -> sString );
$this -> sString = preg_replace("/([^a-z0-9]+)/", "-", html_entity_decode($this -> sString ));
$this -> sString = trim($this -> sString , "-");
}
/**
* private function arrReplace
* replacement method, given an array
* @Param array tab : the replacement array to be used
* @Param bool pref : if false, just replace keys by values; if true, do the same but only with prefix
*/
function arrReplace ($tab, $pref = false) {
$fromRep = array_keys ($tab);
$toRep = array_values ($tab);
if (false === $pref) {
$this -> sString = str_replace ($fromRep, $toRep, $this -> sString);
} else {
foreach ($fromRep as $clef => $val) {
$length = strlen ($val);
if (substr ($this -> sString, 0, $length) === $val) {
$this -> sString = substr_replace ($this -> sString, $toRep[$clef], 0, $length);
}
}
}
}
}
?>

View File

@ -1,72 +0,0 @@
<?
/** TimeStamp Unix
** Si $onlyMiliSec=true, retourne juste les milisec du timestamp
**/
function microtime_float($onlyMiliSec=false) {
list($usec, $sec) = explode(' ', microtime());
if (!$onlyMiliSec)
return ((float)$usec + (float)$sec);
else
return $usec;
}
/** Fait une pause entre 0 et 15 secondes par défaut
**/
function randsleep($min_sec=0, $max_sec=15) {
sleep(rand($min_sec, $max_sec));
}
/**************Fonctions de dates/heures ****/
global $tabMois;
$tabMois=array( 1=>'Janvier',
2=>'Février',
3=>'Mars',
4=>'Avril',
5=>'Mai',
6=>'Juin',
7=>'Juillet',
8=>'Août',
9=>'Septembre',
10=>'Octobre',
11=>'Novembre',
12=>'Décembre');
function getLibelleMois($numMois) {
global $tabMois;
if ($numMois>0 && $numMois<13)
return $tabMois[$numMois];
else
return false;
}
function getNumMois($strMois) {
global $tabMois;
$mois=array_search(ucfirst(strtolower($strMois)), $tabMois);
return $mois;
}
function dateT($formatIN, $formatOUT, $date) {
switch ($formatIN) {
case 'd M Y': $tmp=explode(' ', $date); $d=$tmp[0]; $m=getNumMois($tmp[1]); $Y=$tmp[2]; break;
case 'Ymd': $d=substr($date,6,2); $m=substr($date,4,2); $Y=substr($date,0,4); break;
case 'Y-m-d': $d=substr($date,8,2); $m=substr($date,5,2); $Y=substr($date,0,4); break;
case 'd/m/Y': $d=substr($date,0,2); $m=substr($date,3,2); $Y=substr($date,6,4); break;
default: return $date;
}
if ($m*1>0 && $m*1<10) $m='0'.($m*1);
if ($d*1>0 && $d*1<10) $d='0'.($d*1);
switch ($formatOUT) {
case 'd/m/Y': return $d.'/'.$m.'/'.$Y; break;
case 'Y': return $Y; break;
case 'm': return $m; break;
case 'd': return $d; break;
case 'Ym': return $Y.$m; break;
case 'Ymd': return $Y.$m.$d; break;
case 'Y-m-d': return $Y.'-'.$m.'-'.$d; break;
case 'Y/m/d': return $Y.'/'.$m.'/'.$d; break;
default: return $date;
}
}
?>

View File

@ -1,54 +0,0 @@
<?
/** Test de la validité du siren demandé */
function valideSiren($siren, $nic='', $erreur=false) {
$lenSIREN=strlen($siren);
if (!valideData($siren, 9, 9,'N')) //Siren non précisé ou incorrect.
return $erreur;
else
{
if (!isset($nic) || trim($nic)=='')
{
$somme=0;
for ($i=0; $i<=8; $i+=2) // Traitement IMPAIR
$somme+=(integer)substr($siren,$i,1);
for ($i=1; $i<=7; $i+=2)
{ // Traitement PAIR
$var_tmp=(string)(2*((integer)substr($siren,$i,1)));
$som_tmp=0;
for($j=0;$j<strlen($var_tmp);$j++)
$som_tmp+=(integer)substr($var_tmp,$j,1);
$somme+=$som_tmp;
}
if ((integer)($somme/10)!=($somme/10))
{ // Le Siren est faux
if (substr($siren,0,3)!='200') // Les siren débutant par 200 sont toujours valides (sirens provisoires de la BDF?!)
return $erreur;
}
} else {
if (!valideData($nic,1,5,'N')) // Nic de format incorrect.
return $erreur;
$SIRET=$siren.$nic;
$somme=0;
for ($i=0; $i<=12; $i+=2)
{ // Traitement PAIR
$var_tmp=(string)(2*((integer)substr($SIRET,$i,1)));
$som_tmp=0;
for($j=0;$j<strlen($var_tmp);$j++)
$som_tmp+=(integer)substr($var_tmp,$j,1);
$somme+=$som_tmp;
}
for ($i=1; $i<=13; $i+=2) // Traitement IMPAIR
$somme+=(integer)substr($SIRET,$i,1);
if ((integer)($somme/10)!=($somme/10))// Le Siret est faux
return $erreur;
}
}
return true;
}
?>

View File

@ -1,85 +0,0 @@
<?
class MBalo {
function getLibEven($strEven) {
$even=9015;
$strEven=trim($strEven);
if (preg_match("/AUTRES OP.RATIONS . Décisions prises par des assemblées d'obligataires et homologation de résolutions/i", $strEven)) $even=9001;
elseif (preg_match("/AUTRES OP.RATIONS . Désignation de teneurs? de comptes de titres nominatifs/i", $strEven)) $even=9002;
elseif (preg_match("/AUTRES OP.RATIONS . Fusions et scissions/i", $strEven)) $even=9003;
elseif (preg_match("/AUTRES OP.RATIONS . Liquidations/i", $strEven)) $even=9004;
elseif (preg_match("/AUTRES OP.RATIONS . Offre de remboursement d'obligations/i", $strEven)) $even=9005;
elseif (preg_match("/AUTRES OP.RATIONS . Réduction de capital/i", $strEven)) $even=9006;
elseif (preg_match("/AUTRES OP.RATIONS . Regroupement d'actions/i", $strEven)) $even=9007;
elseif (preg_match("/AUTRES OP.RATIONS/i", $strEven)) $even=9000;
elseif (preg_match("/BULLETIN OFFICIEL de l'AMF/i", $strEven)) $even=9010;
elseif (preg_match("/BULLETIN OFFICIEL du CMF/i", $strEven)) $even=9011;
elseif (preg_match("/CONVOCATIONS . Assemblées? d'actionnaires et de porteurs de parts/i", $strEven)) $even=9020;
elseif (preg_match("/CONVOCATIONS . Assemblées? d'obligataires ou de porteurs de titres d'emprunt/i", $strEven)) $even=9021;
elseif (preg_match("/CONVOCATIONS . Assemblées? de porteurs de certificats d'investissement/i", $strEven)) $even=9022;
elseif (preg_match("/CONVOCATIONS . Assemblées? de porteurs de parts de fondateur/i", $strEven)) $even=9023;
elseif (preg_match("/CONVOCATIONS . Assemblées? de porteurs de titres participatifs/i", $strEven)) $even=9024;
elseif (preg_match("/MISSIONS ET COTATIONS - Organismes internationaux - Bons, obligations et autres titres/i", $strEven)) $even=9030;
elseif (preg_match("/MISSIONS ET COTATIONS . Valeurs étrangères . Actions et parts/i", $strEven)) $even=9031;
elseif (preg_match("/MISSIONS ET COTATIONS . Valeurs étrangères . Bons d'options? sur titres et sur indices/i", $strEven)) $even=9032;
elseif (preg_match("/MISSIONS ET COTATIONS . Valeurs étrangères . Bons, obligations et autres titres/i", $strEven)) $even=9033;
elseif (preg_match("/MISSIONS ET COTATIONS . Valeurs européennes . Actions et parts/i", $strEven)) $even=9034;
elseif (preg_match("/MISSIONS ET COTATIONS . Valeurs françaises . Actions et parts/i", $strEven)) $even=9035;
elseif (preg_match("/MISSIONS ET COTATIONS . Valeurs françaises . Bons d'options? sur titres et sur indices/i", $strEven)) $even=9036;
elseif (preg_match("/MISSIONS ET COTATIONS . Valeurs françaises . Bons, obligations et autres titres/i", $strEven)) $even=9037;
elseif (preg_match("/MISSIONS ET COTATIONS . Valeurs françaises . Certificats d'investissement/i", $strEven)) $even=9038;
elseif (preg_match("/PUBLICATIONS P.RIODIQUES . Entreprises d'assurances et organismes de retraites/i", $strEven)) $even=9040;
elseif (preg_match("/PUBLICATIONS P.RIODIQUES . Sociétés commerciales et industrielles/i", $strEven)) $even=9041;
elseif (preg_match("/PUBLICATIONS P.RIODIQUES . Sociétés commerciales et industrielles (Chiffres d'affaires)/i", $strEven)) $even=9042;
elseif (preg_match("/PUBLICATIONS P.RIODIQUES . Sociétés commerciales et industrielles (comptes annuels)/i", $strEven)) $even=9045;
elseif (preg_match("/PUBLICATIONS P.RIODIQUES . Sociétés commerciales et industrielles (Tableaux d'activités et résultats)/i", $strEven)) $even=9044;
elseif (preg_match("/PUBLICATIONS P.RIODIQUES . Sociétés commerciales et industrielles (Chiffres d'affaires et situations trimestrielles)/i", $strEven))$even=9043;
elseif (preg_match("/PUBLICATIONS P.RIODIQUES . Sociétés commerciales et industrielles (Comptes intermédiaires)/i", $strEven)) $even=9046;
//else/*if (preg_match("/AVIS DIVERS/i", $strEven))*/ $even=9015;
return $even;
}
}
class MBoamp {
function getCodEvenSd($codEvenBoamp, $strEvenBoamp='') {
$codEvenBoamp=str_replace('R','',$codEvenBoamp)*1;
switch ($codEvenBoamp) {
case 10: $libEvenSd='Annulation'; break;
case 11: $libEvenSd='Annulation - Rectificatif'; break;
case 20: $libEvenSd='Rectificatif'; break;
case 22: $libEvenSd='Procédures accélérées'; break;
case 30: $libEvenSd='Avis d\'appel public à la concurrence - Délai d\'urgence'; break;
case 33: $libEvenSd='Avis de mise en concurrence'; break;
case 44: $libEvenSd='Concessions'; break;
case 50: $libEvenSd='Avis d\'appel public à la concurrence'; break;
case 51: $libEvenSd='Avis informatifs'; break;
case 55: $libEvenSd='Avis d\'appel public à la concurrence'; break;
case 6 : $libEvenSd='Avis d\'attribution'; break;
case 8 : $libEvenSd='Avis d\'attribution'; break;
case 81: $libEvenSd='Avis d\'attribution - Annulation'; break;
case 82: $libEvenSd='Avis d\'attribution - Rectificatif'; break;
case 83: $libEvenSd='Avis d\'attribution - Rectificatif'; break;
case 84: $libEvenSd='Avis d\'attribution comportant des lots infructueux'; break;
case 9 : $libEvenSd='Résultat de marché'; break;
case 91: $libEvenSd='Résultat de marché - Annulation'; break;
case 92: $libEvenSd='Résultat de marché - Rectificatif'; break;
case 93: $libEvenSd='Résultat de marché Infructueux/Sans suite'; break;
case 94: $libEvenSd='Résultat de marché comportant des lots infructueux'; break;
case 96: $libEvenSd='Annulation/Rectificatif/Sans suite/Infructueux'; break;
default: $libEvenSd=$strEvenBoamp; break;
}
if ($strEvenBoamp<>'') return $libEvenSd;
return substr('95'.$codEvenBoamp.'00',0,4)*1;
}
function getLibEvenBoamp($codEvenBoamp, $strEvenBoamp='') {
return $this->getCodEvenSd($codEvenBoamp, $strEvenBoamp);
}
}
?>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,302 +0,0 @@
<?php
class ICotation {
var $reTrtAuto;
var $tabBilan;
var $tabNotation;
var $tabLibActivite;
var $tabActivite;
var $tabR;
function ICotation ($tabBilan, $retraitementAutomatique=true) {
$this->reTrtAuto = $retraitementAutomatique;
$this->tabBilan = $tabBilan;
include ('paramCotation.inc');
}
function calculProvisionsPourRisque () {
if ( !$this->reTrtAuto )
return $this->tabBilan['DP'] + $this->tabBilan['DQ'] - $this->tabBilan['X04'];
else
return (1/2*$this->tabBilan['DP'])+(1/2*$this->tabBilan['DQ']);
}
function calculEBE () {
return $this->tabBilan['FC'] + $this->tabBilan['FF'] + $this->tabBilan['FI'] + $this->tabBilan['FOB']
+ $this->tabBilan['FM'] + $this->tabBilan['FN'] - $this->tabBilan['FC'] + $this->tabBilan['FC']
- ( $this->tabBilan['FS'] + $this->tabBilan['FT'] + $this->tabBilan['FU'] + $this->tabBilan['FV'] )
- ( $this->tabBilan['FW'] - $this->tabBilan['HP'] - $this->tabBilan['HQ'] - $this->tabBilan['HP2'] - $this->tabBilan['HQ2'] )
- $this->tabBilan['FX'] - ( $this->tabBilan['FY'] + $this->tabBilan['FZ'] ) + ( $this->tabBilan['FO'] - $this->tabBilan['FOB'] ) ;
}
function calculChiffreAffaires () {
return $this->tabBilan['FC']
+ $this->tabBilan['FF']
+ $this->tabBilan['FI']
+ $this->tabBilan['FO']
- $this->tabBilan['FOB'] ;
}
function calculMargeCommerciale () {
return $this->tabBilan['FC'] - ( $this->tabBilan['FS'] + $this->tabBilan['FT'] ) ;
}
function calculProduction () {
return $this->tabBilan['FF'] + $this->tabBilan['FI'] + $this->tabBilan['FM'] + $this->tabBilan['FN'] ;
}
function calculValeurAjoutee () {
return $this->calculMargeCommerciale() + $this->calculProduction()
- ( $this->tabBilan['FU'] + $this->tabBilan['FV'] + $this->tabBilan['FW'] ) ;
}
function calculEBEnonCASA () {
return $this->calculValeurAjoutee() + $this->tabBilan['FO'] - $this->tabBilan['FX'] - ( $this->tabBilan['FY'] + $this->tabBilan['FZ'] ) ;
}
function calculFondsPropresNetsCorriges() {
return $this->tabBilan['DA'] + $this->tabBilan['DC'] + $this->tabBilan['DB'] + $this->tabBilan['DD'] + $this->tabBilan['DE'] + $this->tabBilan['DF'] + $this->tabBilan['DG'] + $this->tabBilan['DK'] - (1/3*$this->tabBilan['X01'])
+ $this->tabBilan['DH'] + $this->tabBilan['DI'] + $this->tabBilan['DJ']
- $this->tabBilan['CL'] - $this->tabBilan['AB'] + $this->tabBilan['AC'] - $this->tabBilan['AA'] - $this->tabBilan['CB'] + $this->tabBilan['CC'] - $this->tabBilan['X02'] - $this->tabBilan['CM'] - $this->tabBilan['CN']
+ $this->tabBilan['DM'] + $this->tabBilan['DN']
- $this->tabBilan['X03'] + $this->calculProvisionsPourRisque() - $this->tabBilan['RAD'] ;
}
function calculDettesFinancieresBancairesBrutes () {
return $this->tabBilan['DS'] - $this->tabBilan['CM1'] + $this->tabBilan['EI'] - $this->tabBilan['CM2']
+ $this->tabBilan['DT'] - $this->tabBilan['CM3'] + $this->tabBilan['DU'] - $this->tabBilan['EH']
+ (3/4*$this->tabBilan['YQ']) + (2/3*$this->tabBilan['YR'])
+ (3/4*$this->tabBilan['YQ2']) + (2/3*$this->tabBilan['YR2'])
+ $this->tabBilan['DV'] - $this->tabBilan['EI'] - $this->tabBilan['DVI1'] - $this->tabBilan['CM2']
+ $this->tabBilan['YS'] + $this->tabBilan['X08']
+ $this->tabBilan['EH'] + $this->tabBilan['VI1'] - ( $this->tabBilan['X20'] + $this->tabBilan['X21'] ) ;
}
function noteCapitalisation () {
if ( !$this->reTrtAuto ) {
$autresDettesExploit = $this->tabBilan['EA'] - $this->tabBilan['EAVI1'] - $this->tabBilan['EAB'] + $this->tabBilan['EB'] + $this->tabBilan['X01'] + $this->tabBilan['X04'] ;
$dettesFiscalesSociales = $this->tabBilan['DY'] - $this->tabBilan['DYA'];
} else {
$autresDettesExploit = $this->tabBilan['EA'] - $this->tabBilan['EAVI1'] - $this->tabBilan['EAB'] + $this->tabBilan['EB'] + $this->tabBilan['X01'] + 2/3*((1/2*$this->tabBilan['DP'])+(1/2*$this->tabBilan['DQ']));
$dettesFiscalesSociales = $this->tabBilan['DY'] + 1/3*((1/2*$this->tabBilan['DP'])+(1/2*$this->tabBilan['DQ'])) - $this->tabBilan['DYA'] ;
}
$numerateur = $this->calculFondsPropresNetsCorriges();
$denominateur = $numerateur + $this->tabBilan['DS'] - $this->tabBilan['CM1'] + $this->tabBilan['EI'] - $this->tabBilan['CM2'] + $this->tabBilan['DU'] - $this->tabBilan['EH']
+ $this->tabBilan['DV'] - $this->tabBilan['DVI1'] - $this->tabBilan['EI'] + $this->tabBilan['DT'] - $this->tabBilan['CM3'] + 3/4*$this->tabBilan['YQ'] + 2/3*$this->tabBilan['YR']
+ 3/4*$this->tabBilan['YQ2'] + 2/3*$this->tabBilan['YR2']
+ $this->tabBilan['DW'] + $this->tabBilan['DX'] + $dettesFiscalesSociales
+ $autresDettesExploit + $this->tabBilan['DZ'] + $this->tabBilan['DIA'] + $this->tabBilan['ED'] + $this->tabBilan['EAB'] + $this->tabBilan['DYA']
+ $this->tabBilan['EH'] + $this->tabBilan['YS'] + $this->tabBilan['VI1'];
// + $this->tabBilan['X08']
// - $this->tabBilan['X20'] + $this->tabBilan['YS'] - $this->tabBilan['X08'];
if ($denominateur==0)
return array('NUMERATEUR'=>$numerateur*100,'DENOMINATEUR'=>$denominateur,'NOTE'=>0);
return array('NUMERATEUR'=>$numerateur* 100,'DENOMINATEUR'=>$denominateur,'NOTE'=>($numerateur* 100)/$denominateur);
}
function noteLevierEndettement () {
$numerateur = $this->calculDettesFinancieresBancairesBrutes();
$denominateur = $this->calculFondsPropresNetsCorriges();
if ($denominateur==0)
return array('NUMERATEUR'=>$numerateur,'DENOMINATEUR'=>$denominateur,'NOTE'=>0);
return array('NUMERATEUR'=>$numerateur,'DENOMINATEUR'=>$denominateur,'NOTE'=>$numerateur/$denominateur);
}
function noteCapaciteRemboursement () {
$numerateur = $this->calculDettesFinancieresBancairesBrutes();
$denominateur = $this->calculEBE();
if ($denominateur==0)
return array('NUMERATEUR'=>$numerateur,'DENOMINATEUR'=>$denominateur,'NOTE'=>0);
return array('NUMERATEUR'=>$numerateur,'DENOMINATEUR'=>$denominateur,'NOTE'=>$numerateur/$denominateur);
}
function noteCouvChargesFi () {
$numerateur = $this->calculEBE();
$denominateur = $this->tabBilan['GR'] + ( 1/4*$this->tabBilan['HP'] + 1/3*$this->tabBilan['HQ'] )
+ ( 1/4*$this->tabBilan['HP2'] + 1/3*$this->tabBilan['HQ2'] )
+ $this->tabBilan['GS']
+ $this->tabBilan['GT']
- $this->tabBilan['GJ']
- $this->tabBilan['GK']
- $this->tabBilan['GL']
- $this->tabBilan['GN']
- $this->tabBilan['GO']
- $this->tabBilan['GH']
+ $this->tabBilan['GI'] ;
if ($denominateur==0)
return array('NUMERATEUR'=>$numerateur,'DENOMINATEUR'=>$denominateur,'NOTE'=>0);
return array('NUMERATEUR'=>$numerateur,'DENOMINATEUR'=>$denominateur,'NOTE'=>$numerateur/$denominateur);
}
function noteTresorerie () {
$numerateur = $this->tabBilan['CD'] - $this->tabBilan['CE'] + $this->tabBilan['CF'] - $this->tabBilan['CG']
- $this->tabBilan['EH'] - ( $this->tabBilan['YS'] + $this->tabBilan['X08'] ) ;
$denominateur = $this->calculChiffreAffaires();
if ($denominateur==0)
return array('NUMERATEUR'=>$numerateur*360,'DENOMINATEUR'=>$denominateur,'NOTE'=>0);
return array('NUMERATEUR'=>$numerateur*360,'DENOMINATEUR'=>$denominateur,'NOTE'=>$numerateur*360/$denominateur);
}
function noteMargeExploitation () {
$numerateur = $this->calculEBE();
$denominateur = $this->calculChiffreAffaires();
if ($denominateur==0)
return array('NUMERATEUR'=>$numerateur*100,'DENOMINATEUR'=>$denominateur,'NOTE'=>0);
return array('NUMERATEUR'=>$numerateur*100,'DENOMINATEUR'=>$denominateur,'NOTE'=>$numerateur*100/$denominateur);
}
function getSecteurActivite($naf) {
$nbSecteurs=count($this->tabActivite);
while (strlen($naf) > 1)
{
for ($i=1; $i<$nbSecteurs; $i++)
{
for ($j=0; isset($this->tabActivite[$i][$j]); $j++)
{
if ($this->tabActivite[$i][$j]==$naf)
// echo 'NAF '.$naf.' TROUVÉ !<br>';
return $i;
}
}
// echo 'NAF '.$naf.' non trouvé !<br>';
$naf=substr($naf,0,strlen($naf)-1);
}
return 17; // Secteur d'activité par défaut si non trouvé
}
function getBorne($note, $borne, $secteur) {
// print_array($this->tabR[$borne][$secteur],0);
for ($j=0; $j<10; $j++)
{
$tabMinMax=explode(':',$this->tabR[$borne][$secteur][$j]);
if ($tabMinMax[0]!='') $min=$tabMinMax[0];
else $min=-1E99;
if ($tabMinMax[1]!='') $max=$tabMinMax[1];
else $max=1E99;
if ( ( $note>$min && $note<=$max ) )
{
// echo "TROUVE ++++ $note > ".$tabMinMax[0]." et $note <= ". $tabMinMax[1].'<br/>';
if ($j==0) return 3;
elseif ($j<4) return $j+4;
else return $j*2+1;
}
// echo "NOK $note < ".$tabMinMax[0]." ou $note > ". $tabMinMax[1].'<br/>';
}
return 3; // On retourne la plus basse note par défaut
}
function getNoteBorne($note, $borne, $secteur, $numerateur, $denominateur) {
$noteBorneBrute=$this->getBorne($note, $borne, $secteur);
switch($borne)
{
case 1:
if ($numerateur<0) return 3;
else return $noteBorneBrute;
break;
case 2:
if ($numerateur==0) return 19;
else return $noteBorneBrute;
break;
case 3:
if ($numerateur==0 && $denominateur>0) return 19;
elseif ($denominateur<0) return 3;
else return $noteBorneBrute;
break;
case 4:
if ($note<0) return 19;
else return $noteBorneBrute;
break;
default:
return $noteBorneBrute;
break;
}
}
function getNotationFin ($coteMoy) {
if( $coteMoy > 18.5 )
return 'A';
elseif( $coteMoy > 16 )
return 'B+';
elseif( $coteMoy > 14 )
return 'B';
elseif( $coteMoy > 12.5 )
return 'C+';
elseif( $coteMoy > 11 )
return 'C';
elseif( $coteMoy > 10 )
return 'C-';
elseif( $coteMoy > 9 )
return 'D+';
elseif( $coteMoy > 8 )
return 'D';
elseif( $coteMoy > 7 )
return 'D-';
elseif( $coteMoy > 6 )
return 'E+';
elseif( $coteMoy > 4.5 )
return 'E';
elseif( $coteMoy > 3 )
return 'E-';
else
return 'E--';
}
function getInfosNotation ($notation, $csv=false) {
if ($csv) {
$str =$this->tabNotation[$notation][1].';'.
$this->tabNotation[$notation][2].';'.
$this->tabNotation[$notation][3].';'.
$this->tabNotation[$notation][4].';';
return $str;
} else {
$str ='Notation : '. $this->tabNotation[$notation][0]."\r\n";
$str.='Equivalence BDF : '. $this->tabNotation[$notation][1]."\r\n";
$str.='Grades Moody\'s : '. $this->tabNotation[$notation][2]."\r\n";
$str.='Grades S&P : '. $this->tabNotation[$notation][3]."\r\n";
$str.='Probabilité de défaillance : '. $this->tabNotation[$notation][4]." %\r\n";
return $str;
}
}
}

View File

@ -1,47 +0,0 @@
<?
function isinPoidsLettre($lettre) {
$ascii=ord($lettre);
if ($ascii>64 && $ascii<91 )
/* En ASCII : A=65 et Z=90
En ISIN... A=10 et Z=35 */
return ($ascii-55);
return false;
}
/** Test si un code ISIN donné est valable à partir de son algo de contrôle.
** @param string $isin Code ISIN à vérifier
** @return bool
**/
function isValidIsin($isin) {
$pays=substr($isin, 0,2);
$nsin=''.substr($isin, 2,9);
$clef=substr($isin,11,1)*1;
$calcul=''.isinPoidsLettre($pays[0]).isinPoidsLettre($pays[1]).$nsin;
//echo "Etape 1 = $calcul".EOL;
$sommeImpair=$sommePair=0;
for ($impair=0; $impair<12; $impair=$impair+2) {
$strImpair=''.$calcul[$impair]*2;
if (isset($strImpair[1])) $reste=$strImpair[1]*1;
else $reste=0;
$sommeImpair+=$strImpair[0]*1+$reste;
}
for ($pair=1; $pair<12; $pair=$pair+2)
$sommePair+=$calcul[$pair]*1;
$totalcalcul=$sommeImpair+$sommePair;
//echo "Etape 3 = $sommeImpair + $sommePair = $totalcalcul".EOL;
$dizSuperieur=ceil($totalcalcul/10)*10;
$delta=$dizSuperieur-$totalcalcul;
//echo "Etape 4 = $dizSuperieur - $totalcalcul = $delta".EOL;
if ($delta==$clef) return true;
return false;
}
?>

View File

@ -1,339 +0,0 @@
<?
/** Parse une page Html et retourne son contenu dans un tableau :
** "code" => Code réponse Serveur
** "header" => Headers du serveur
** "body" => Page HTML
**/
function parse_response($this_response) {
// Split response into header and body sections
list($response_headers, $response_body) = explode("\r\n\r\n", $this_response, 2);
$response_header_lines = explode("\r\n", $response_headers);
// First line of headers is the HTTP response code
$http_response_line = array_shift($response_header_lines);
if(preg_match('@^HTTP/[0-9]\.[0-9] ([0-9]{3})@',$http_response_line, $matches)) { $response_code = $matches[1]; }
// put the rest of the headers in an array
$response_header_array = array();
$nbRMID=0;
foreach($response_header_lines as $header_line)
{
list($header,$value) = explode(': ', $header_line, 2);
if ($header=='Set-cookie' && substr($value,0,5)=='RMID=' && $nbRMID<5)//{
$nbRMID++;
// echo ("Je gicle le RMID n°$nbRMID\r\n");}
else
$response_header_array[$header] .= $value."\n";
}
return array('code' => $response_code, 'header' => $response_header_array, 'body' => $response_body);
}
/** Récupère une page HTML en fonction des paramètres :
** $url Url distante de la page à récupérer
** $strCookies Chaine de caractère contenant les cookies
** $postData Tableau des données à passer en POST uniquement
** $referer Referer à indiquer lors de l'appel de la page
** $debug Activer le débogage (True/False)
**
** ... et retourne son contenu dans un tableau :
** "code" => Code réponse Serveur
** "header" => Headers du serveur
** "body" => Page HTML
**/
function getUrl($url, $strCookies='', $postData='', $referer='', $debug=false, $host='') {
$ch = curl_init();
if ($host=='')
$this_header = array('Host: '. HOST_INSEE);
else
$this_header = array('Host: '. $host);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
//curl_setopt($ch, CURLOPT_PROXY, '10.142.10.254:80');
//curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'username:password'); // Pas nécessaire en authentification NT
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//curl_setopt($ch, CURLOPT_MAXREDIRS, 1);
$user_agent = 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)';
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_REFERER, $referer);
// Add each cookie that has been returned in the response
// If cookies need to be added/deleted or value changed, then add code here
if ($strCookies!='') {
//die('"'.$strCookies.'"');
//echo $strCookies."\r\n";
$cookies = explode("\n", $strCookies);
// Create the basic header
foreach($cookies as $this_cookie) {
if (trim($this_cookie)<>'')
array_push($this_header, 'Cookie: '.$this_cookie);
}
}
if ($postData!='') {
if (is_array($postData))
$post_data=$postData;
$o="";
foreach ($post_data as $k=>$v)
{
$o.= "$k=".utf8_encode($v)."&";
}
$post_data=substr($o,0,-1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
//if in_array('',$this_header
/*array_push($this_header, "Content-type: application/x-www-form-urlencoded");
array_push($this_header, "Content-Length: 44");*/
}
curl_setopt($ch, CURLOPT_HTTPHEADER, $this_header);
//print_r($this_header);
$page=curl_exec($ch);
$response = parse_response($page);
if ($debug){
$url2=str_replace('http://', '', $url);
$url2=str_replace('/', '_', $url2);
$url2=str_replace('?', '(param)', $url2);
$url2=str_replace('&', '(et)', $url2);
$fp=fopen('/var/www/_includes/partenaires/insee/'. date('Ymd-His') .'-'. microtime_float(true) .'-'. $url2 . '.html', 'a');
fwrite($fp, $url."\r\n");
fwrite($fp, $page);
fclose($fp);
//echo strip_tags(html_entity_decode($response['body']), '<td>');
}
//print_r(curl_getinfo($ch));
curl_close($ch);
return $response;
}
function rechercheTelephone($raisonSociale='', $adresse='', $localite='', $departement='', $activite='') {
$response1=getUrl(SITE_PJ.'pj.cgi?', '', '', '', true, HOST_PJ);
//print_r($response1['header']['Set-cookie']);
$pageHtml=$response1['body'];
$SESSION_ID=getTextInHtml($pageHtml, '<input type="hidden" name="SESSION_ID" value="', ' value="', '">');
$VID=getTextInHtml($pageHtml, '<input type="hidden" name="VID" value="', ' value="', '">');
$e_cookie=getTextInHtml($pageHtml, '<noscript><img ALT="" src="http://e.pagesjaunes.fr/m/web/', 'src="', '" BORDER=0 width=1 height=1></noscript>');
$response=getUrl(SITE_PJ.'files/look2002/FR/commun/pji.css', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl(SITE_PJ.'files/look2002/FR/commun/pji_PJ.css', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl(SITE_PJ.'files/look2002/FR/commun/script_open.js', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl(SITE_PJ.'files/look2002/FR/commun/alerte.js', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl(SITE_PJ.'files/look2002/FR/commun/script_VED.js', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl(SITE_PJ.'sitecrm/popup.js', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl('http://sbx.pagesjaunes.fr/RealMedia/ads/Creatives/OasDefault/AUTOPROMO_PJ_banniere_activite/hotel_pj.swf?clickTAG=http://sbx.pagesjaunes.fr/RealMedia/ads/click_lx.ads/www.pagesjaunes.fr/GENERAL/GENERAL/PJ/1238513556/Top/OasDefault/AUTOPROMO_PJ_banniere_activite/hotel_pj.html/61633130323433353434346339306330?', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl(SITE_PJ.'files/look2002/FR/commun/script_VED.js', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl('http://sbx.pagesjaunes.fr/RealMedia/ads/Creatives/OasDefault/EDITO_HOME_RIGHT/anim_HP_v2-04-2006.swf', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl('http://sbx.pagesjaunes.fr/RealMedia/ads/Creatives/OasDefault/EDITO_HOME_RIGHT/visuels_webcam.swf', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl('http://sbx.pagesjaunes.fr/RealMedia/ads/Creatives/OasDefault/EDITO_HOME_RIGHT/visuels_photo.swf', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl('http://sbx.pagesjaunes.fr/RealMedia/ads/Creatives/OasDefault/EDITO_HOME_RIGHT/visuels_trafic.swf', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl('http://sbx.pagesjaunes.fr/RealMedia/ads/Creatives/OasDefault/Edito_webcams/new_04-2006.jpg', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl('http://e.pagesjaunes.fr/js/m.js', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response2=getUrl($e_cookie, $response1['header']['Set-cookie'], '', SITE_PJ, true, HOST_PJ);
$cookies=$response1['header']['Set-cookie'] . $response2['header']['Set-Cookie'];
$input_image=$VALID_ARR=$NUM_RUE=$NEW_DEPARTEMENT=$OBJ_GEO='';
// Requête d'interrogation
$postData=array(
'ACTIVITE_VALIDATED_ASCII'=>'',
'ID_THEME_SDE'=>'',
'LISTE_RUB_AVEC_THEME'=>'',
'input_image'=>$input_image,
'FRM_ACTIVITE'=>$activite,
'FRM_NOM'=>$raisonSociale,
'FRM_ADRESSE'=>$adresse,
'FRM_LOCALITE'=>$localite,
'FRM_DEPARTEMENT'=>$departement,
'JF_INSCRIPTIONS_REQ.x'=>'25',
'JF_INSCRIPTIONS_REQ.y'=>'4',
'faire'=>'decode_input_image',
'DEFAULT_ACTION'=>'jf_inscriptions_req',
'SESSION_ID'=>$SESSION_ID,
'VID'=>$VID,
'INFO_VILLE'=>'non',
'CODE_LOC_INFO_VILLE'=>'00000000',
'IV_ACTIVATION'=>'oui',
'lang'=>'FR',
'pays'=>'FR',
'srv'=>'PJ',
'TYPE_RECHERCHE'=>'ZZZ');
//print_r($postData);//die();
sleep(1);
$response=getUrl(SITE_PJ, $cookies, $postData, SITE_PJ, true, HOST_PJ);
$pageHtml=$response['body'];
if (count($tabNT=getTabListeNonTrouve($pageHtml))>0)
{
// Pas de réponses pour ces critères
// Il faut élargir la recherche !
$tabNTk=array_keys($tabNT);
$input_image=$tabNT[0];
$DEFAULT_ACTION='inscriptions_req';
$NEW_DEPARTEMENT=getTextInHtml($pageHtml, '<input type="hidden" name="NEW_DEPARTEMENT" value="', 'value="', '">');
$OBJ_GEO=getTextInHtml($pageHtml, '<input type=hidden name=OBJ_GEO value="', 'value="', '">');
}
elseif (count($tabGU=getTabListeGU($pageHtml))>0)
{
// Plusieurs Adresses possibles pour l'adresse donnée
// print_r($tabGU);
$input_image=getBonneAdresse($adresse, $tabGU);
$DEFAULT_ACTION='jf_inscriptions_req';
$VALID_ARR=getTextInHtml($pageHtml, '<input type=hidden name=VALID_ARR value="', 'value="', '">');
$NUM_RUE=getTextInHtml($pageHtml, '<input type=hidden name=NUM_RUE value="', 'value="', '">');
}
if ($input_image<>'') {
$CODE_LOC_INFO_VILLE=getTextInHtml($pageHtml, '<input type="hidden" name="CODE_LOC_INFO_VILLE" value="', 'value="', '">');
$postData=array(
'GEO_DEP'=>'', // New
'faire'=>'decode_input_image',
'DEFAULT_ACTION'=>$DEFAULT_ACTION,
'input_image'=>$input_image,// diff
'SESSION_ID'=>$SESSION_ID,
'VID'=>$VID,
'INFO_VILLE'=>'oui', // non dans la recherche préc.
'CODE_LOC_INFO_VILLE'=>$CODE_LOC_INFO_VILLE, // diff
'IV_ACTIVATION'=>'oui',
'lang'=>'FR',
'pays'=>'FR',
'srv'=>'PJ',
'TYPE_RECHERCHE'=>'CLOC', // ZZZ
'SAV_ADRESSE'=>$adresse, //
'SAV_LOCALITE'=>$localite, // New
'SAV_DEPARTEMENT'=>$departement, //
'FRM_NOM'=>$raisonSociale,
'FRM_ADRESSE'=>$adresse,
'FRM_LOCALITE'=>$localite,
'FRM_DEPARTEMENT'=>$departement,
'FRM_TYPE_PUB'=>'TOUS',
'RP_FORM'=>'',
'VALID_LOC'=>$CODE_LOC_INFO_VILLE,
'VALID_ARR'=>$VALID_ARR,
'NUM_RUE'=>$NUM_RUE,
'test_flash'=>'',
'ESPLUS'=>'',
'NEW_DEPARTEMENT'=>$NEW_DEPARTEMENT,
'OBJ_GEO'=>$OBJ_GEO,
);
print_r($postData);
sleep(1);
$response=getUrl(SITE_PJ, $cookies, $postData, SITE_PJ, true, HOST_PJ);
$pageHtml=$response['body'];
}
$nbReponses=trim(getTextInHtml($pageHtml, '<tr><td align="left" class=txtrequetetotal valign=middle nowrap><b>', '<b>', 'r&eacute;ponse(s)</b></td>'));
$tabRep=getTabResponses($pageHtml);
if (count($tabRep)==$nbReponses)
return $tabRep;
else
return false;
}
function getTabResponses($pageHtml) {
$tabRepTmp=explode ('class=fdinscr', $pageHtml);
$tabRep=array();
foreach($tabRepTmp as $key => $value)
{
if ($key>0) {
$raisonSociale=getTextInHtml($value, 'class=fdrsinscr', '<b>', '</b>');
$ligneAdresse=html_entity_decode(getTextInHtml($value, '<td align="left" class=txtinscr ><b>', '<b>', '|'));
$tabligneAdresse=explode('<br>', $ligneAdresse);
$ligneAdresse1=strip_tags($tabligneAdresse[0]);
$ligneAdresse2=strip_tags($tabligneAdresse[1]);
$dispoPlan =(bool)(strpos($value, '<b>Plan</b>'));
$dispoIti =(bool)(strpos($value, '<b>Itin&eacute;raire</b>'));
$dispoPhoto =(bool)(strpos($value, '<b>Photo</b>'));
$dispoWeb =(bool)(strpos($value, '<b>Site</b></a>&nbsp;&nbsp;&nbsp;'));
$lienWeb=getTextInHtml($value, '<a target="_blank" href="http://www.pagesjaunes.fr/CGI/MOD?', 'href="', '" ');
$page=getUrl($lienWeb, '', '', '', true);
$lienWeb=$page['header']['Location'];
/*echo "Enreg n°$key : RS='$raisonSociale'\r\n";
echo "Enreg n°$key : Adresse1='$ligneAdresse1'\r\n";
echo "Enreg n°$key : Adresse2='$ligneAdresse2'\r\n";
echo "Enreg n°$key : Plan ?='$dispoPlan'\r\n";
echo "Enreg n°$key : Itineraire ?='$dispoIti'\r\n";
echo "Enreg n°$key : Photo ?='$dispoPhoto'\r\n";
echo "Enreg n°$key : Web ?='$dispoWeb'\r\n";
echo "Enreg n°$key : Site WEB='$lienWeb'\r\n\r\n";*/
array_push($tabRep, array( 'raisonSociale' =>$raisonSociale,
'AdresseLigne1' =>$ligneAdresse1,
'AdresseLigne2' =>$ligneAdresse2,
'Dispo_Plan' =>$dispoPlan,
'Dispo_Iti' =>$dispoIti,
'Dispo_Photo' =>$dispoPhoto,
'Dispo_Web' =>$dispoWeb,
'LienWeb' =>$lienWeb));
}
}
return $tabRep;
}
function getBonneAdresse($adresse, $tabGU) {
// tableau de mots à vérifier
$words = array_keys($tabGU);
// aucune distance de trouvée pour le moment
$shortest = -1;
// boucle sur les des mots pour trouver le plus près
foreach ($words as $word) {
// calcule la distance avec le mot mis en entrée,
// et le mot courant
$lev = levenshtein($adresse, $word);
// cherche une correspondance exacte
if ($lev == 0) {
// le mot le plus près est celui-ci (correspondance exacte)
$closest = $word;
$shortest = 0;
// on sort de la boucle ; nous avons trouvé une correspondance exacte
break;
}
// Si la distance est plus petite que la prochaine distance trouvée
// OU, si le prochain mot le plus près n'a pas encore été trouvé
if ($lev <= $shortest || $shortest < 0) {
// définission du mot le plus près ainsi que la distance
$closest = $word;
$shortest = $lev;
}
}
/*
echo "Mot entré : $adresse\n";
if ($shortest == 0) {
echo "Correspondance exacte trouvée : $closest\n";
} else {
echo "Vous voulez dire : $closest ?\n";
}*/
return $tabGU[$closest];
}
?>

View File

@ -1,548 +0,0 @@
<?
class Insee {
}
function getDataEtablissement($pageHtml)
{
global $libelleErreur;
$responseSiege=$pageHtml;
$tabRet=array();
// On recherche si on est sur un établissement siège ou secondaire
$pos=strpos($pageHtml, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche Etablissement</B>');
if ($pos>0)
$tabRet['typeEtablissement']='secondaire';
$pos=strpos($pageHtml, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche siège</B>');
if ($pos>0)
$tabRet['typeEtablissement']='siège';
// Recherche Dernière MAJ / Activité
$pos=strpos($responseSiege, '<font face="Arial" size="2">(dernière mise à jour :');
if ($pos>0) {
$tabRet['dateMAJ']=substr($responseSiege, $pos+51, 10);
$tabRet['dateAbsActivite']='';
$tabRet['active']='O';
} else {
$tabRet['active']='N';
$tabRet['dateMAJ']='';
$pos=strpos($responseSiege, '<font face="Arial" size="2">Absence&nbsp;d\'activité notée&nbsp;le&nbsp;:&nbsp;');
if ($pos>0) $tabRet['dateAbsActivite']=substr($responseSiege, $pos+78, 10);
else {
$pos=strpos($responseSiege, '<font face="Arial" size="2">Absence&nbsp;d\'activité');
if ($pos>0) $tabRet['dateAbsActivite']='';
}
}
$pos=strpos($responseSiege, ' size="-1"> <B>n°&nbsp;SIRET&nbsp;:</B></FONT></td><td valign="top"><font face="Arial" size="-1">');
$tabRet['siret']=str_replace(' ', '', html_entity_decode(substr($responseSiege, $pos+97, 32)));
$pos=strpos($responseSiege, 'size="-1"> <B>Date&nbsp;de&nbsp;création&nbsp;:</B></FONT></td><td valign="top"><font face="Arial" size="-1">');
if ($pos>0) {
$posFin=strpos($responseSiege, '</font>', $pos+109);
$tabRet['dateCreation']=str_replace(' ', '', html_entity_decode(substr($responseSiege, $pos+109, $posFin-($pos+109))));
}
else $tabRet['dateCreation']='';
$pos=strpos($responseSiege, ' size="-1"> <B>Raison sociale et Enseigne&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$len=127;
if ($pos==0){
$pos=strpos($responseSiege, ' size="-1"> <B>Raison sociale et Enseigne&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$len=122;
if ($pos==0){
$pos=strpos($responseSiege, ' size="-1"> <B>Raison sociale et Enseigne&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$len=126;
$libelleErreur='Informations INSEE non diffusables';
}
}
if ($libelleErreur=='') {
//LARGE*DOMINIQUE MICHEL/ <BR>GERANT SARL BIMAGIQUE &nbsp;</font>
$posFin=strpos($responseSiege, '</font>', $pos+$len);
$raisonSocialeStr=trim(substr($responseSiege, $pos+$len, $posFin-($pos+$len)));
$raisonSocialeTabLigne=explode('<BR>', $raisonSocialeStr);
$tabRet['raisonSociale']=trim(str_replace(' ', '', html_entity_decode($raisonSocialeTabLigne[0])));
$tabRet['Enseigne']=trim(str_replace(' ', '', html_entity_decode($raisonSocialeTabLigne[1])));
$pos=strpos($responseSiege, ' size="-1"> <B>Activité&nbsp;principale&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$tabRet['NafCode']=substr($responseSiege, $pos+120, 4);
$tabRet['NafLib']=trim(substr($responseSiege, $pos+137, 70));
$pos=strpos($responseSiege, ' size="-1"> <B>Adresse&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$posFin=strpos($responseSiege, '</font>', $pos+103);
$AdresseStr=substr($responseSiege, $pos+103, $posFin-($pos+103));
$AdresseTabLigne=explode('<BR>', $AdresseStr);//'
$tabRet['AdresseLigne1']=str_replace('&nbsp;', '/', $AdresseTabLigne[0]);
$tabRet['AdresseLigne2']=str_replace('&nbsp;', '/', $AdresseTabLigne[1]);
$tabRet['AdresseLigne3']=str_replace('&nbsp;', '/', $AdresseTabLigne[2]);
/*
$AdresseNum=$AdresseTabLigne1[0];
$AdresseVoi=$AdresseTabLigne1[1];
$AdresseRue=$AdresseTabLigne1[2];
$AdresseCP=$AdresseTabLigne2[0];
$AdresseVille=$AdresseTabLigne2[1];
*/
$pos=strpos($responseSiege, '<font face="Arial" size="-1"><b>L\'entreprise&nbsp;est&nbsp;connue&nbsp;au&nbsp;répertoire&nbsp;comme&nbsp;');
if ($pos>0) {
$posFin=strpos($responseSiege, '</b>', $pos+106);
$tabRet['etatJuridique']=html_entity_decode(substr($responseSiege, $pos+106, $posFin-($pos+106)));
$tabRet['dateEtatJuridique']='';
} else {
$pos=strpos($responseSiege, '<font face="Arial" size="-1"><b>L\'entreprise&nbsp;est&nbsp;cessée&nbsp;le&nbsp;:&nbsp;');
$tabRet['dateEtatJuridique']=substr($responseSiege, $pos+86, 10);
$tabRet['etatJuridique']='cessée';
}
//echo 'GetDataEtab="'.$libelleErreur."\"\r\n";
return $tabRet;
}
}
function getDataEntreprise($pageHtml)
{
global $libelleErreur;
$responseEntreprise=$pageHtml;
$tabRet=array();
if ($libelleErreur=='') {
$pos=strpos($responseEntreprise, 'size="-1"> <B>Date&nbsp;de&nbsp;création&nbsp;:</B></FONT></td><td valign="top"><font face="Arial" size="-1">');
if ($pos>0)
$tabRet['dateCreationEntrep']=substr($responseEntreprise, $pos+109, 10);
else
$tabRet['dateCreationEntrep']='';
// Raison sociale et Sigle
$pos=strpos($responseEntreprise, ' size="-1"> <B>Raison sociale et Sigle&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$posFin=strpos($responseEntreprise, '</font>', $pos+123);
$raisonSocialeStr=trim(substr($responseEntreprise, $pos+123, $posFin-($pos+123)));
$raisonSocialeTabLigne=explode('<BR>', $raisonSocialeStr);
$tabRet['raisonSocialeEntrep']=trim(str_replace(' ', '', html_entity_decode($raisonSocialeTabLigne[0])));
$tabRet['sigle']=trim(str_replace(' ', '', html_entity_decode($raisonSocialeTabLigne[1])));
// Activité prinicpale Entrep
$pos=strpos($responseEntreprise, ' size="-1"> <B>Activité&nbsp;principale&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$tabRet['NafCodeEntrep']=substr($responseEntreprise, $pos+120, 4);
$tabRet['NafLibEntrep']=trim(substr($responseEntreprise, $pos+137, 70));
// Forme Juridique
$pos=strpos($responseEntreprise, ' size="-1"> <B>Forme&nbsp;juridique&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$tabRet['FJCodeEntrep']=substr($responseEntreprise, $pos+116, 4);
$tabRet['FJLibEntrep']=trim(substr($responseEntreprise, $pos+133, 70));
// Nb Etab Actifs
$pos=strpos($responseEntreprise, ' size="-1"> <B>Nb&nbsp;établissements&nbsp;actifs&nbsp;:</B></FONT></td><td valign="top"><font face="Arial" size="-1">');
$posFin=strpos($responseEntreprise, '</font>', $pos+118);
$tabRet['nbEtabActifs']=trim(str_replace(' ', '', html_entity_decode(substr($responseEntreprise, $pos+118, $posFin-($pos+118)))));
}
return $tabRet;
}
/*
* parseHtml.php
* Author: Carlos Costa Jordao
* Email: carlosjordao@yahoo.com
*
* My notation of variables:
* i_ = integer, ex: i_count
* a_ = array, a_html
* b_ = boolean,
* s_ = string
*
* What it does:
* - parses a html string and get the tags
* - exceptions: html tags like <br> <hr> </a>, etc
* - At the end, the array will look like this:
* ["IMG"][0]["SRC"] = "xxx"
* ["IMG"][1]["SRC"] = "xxx"
* ["IMG"][1]["ALT"] = "xxx"
* ["A"][0]["HREF"] = "xxx"
*
*/
function parseHtml( $s_str )
{
$i_indicatorL = 0;
$i_indicatorR = 0;
$s_tagOption = '';
$i_arrayCounter = 0;
$a_html = array();
// Search for a tag in string
while( is_int(($i_indicatorL=strpos($s_str,'<',$i_indicatorR))) ) {
// Get everything into tag...
$i_indicatorL++;
$i_indicatorR = strpos($s_str,'>', $i_indicatorL);
$s_temp = substr($s_str, $i_indicatorL, ($i_indicatorR-$i_indicatorL) );
$a_tag = explode( ' ', $s_temp );
// Here we get the tag's name
list( ,$s_tagName,, ) = each($a_tag);
$s_tagName = strtoupper($s_tagName);
// Well, I am not interesting in <br>, </font> or anything else like that...
// So, this is false for tags without options.
$b_boolOptions = is_array(($s_tagOption=each($a_tag))) && $s_tagOption[1];
if( $b_boolOptions ) {
// Without this, we will mess up the array
$i_arrayCounter = (int)count($a_html[$s_tagName]);
// get the tag options, like src="htt://". Here, s_tagTokOption is 'src' and s_tagTokValue is '"http://"'
do {
$s_tagTokOption = strtoupper(strtok($s_tagOption[1], "="));
$s_tagTokValue = trim(strtok("="));
$a_html[$s_tagName][$i_arrayCounter][$s_tagTokOption] =
$s_tagTokValue;
$b_boolOptions = is_array(($s_tagOption=each($a_tag))) &&
$s_tagOption[1];
} while( $b_boolOptions );
}
}
return $a_html;
}
function getDataEntrepriseRNCS($pageHtml) {
global $libelleErreur;
$tabRet=array();
// Liste et liens vers les Bilans
$tabRet['tabListeBilans']=getTabListeBilans($pageHtml);
$tabRet['raisonSociale']=getTextInHtml($pageHtml, '<td align="left" valign="top"><span class="boldred"><br>', '<br>', '</span>');
$tabRet['RCS']=getTextInHtml($pageHtml, '<span class="textarial">RCS ', 'RCS ', '</span>', true);
$tabRet['activite']=getTextInHtml($pageHtml, '<td width="185" align="left" valign="top" bgcolor="#FFFFFF" class="boldtextarial">Activit&eacute;</td>', 'class="basictext">', '</td>');
$tabRet['adresseSiege']=getTextInHtml($pageHtml, '<td align="left" valign="top" bgcolor="#FFFFFF" class="boldtextarial">Si&egrave;ge
social</td>', 'class="basictext">', '</td>');
print_r($tabRet);
die();
// Capital social
// Chiffre d'affaires
// Date CA
// Effectif
// Forme Juridique
// Nationalité
// Activité
// Siège social
/*
<tr>
<td bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td align="left" valign="top" bgcolor="#FFFFFF" class="boldtextarial">Si&egrave;ge
social</td>
<td bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td align="left" valign="top" bgcolor="#EBF0F5" class="basictext">75 Avenue la Grande Armee<br>
75116 PARIS 16 </td>
</tr>
</table>
<div align="center"><img src="../images/degrade580grey.jpg" width="580" height="12"><br>
<br>
</div>
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top"><img src="../images/arrowsmallblue.gif" width="9" height="10"><span class="boldtextarialblue15">Renseignements
juridiques</span></td>
<td>&nbsp;</td>
</tr>
</table>
<table width="580" border="0" align="center" cellpadding="1" cellspacing="2">
<tr align="left" valign="top">
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td width="185" bgcolor="#FFFFFF" class="boldtextarial">Forme
juridique</td>
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td width="385" bgcolor="#EBF0F5" class="basictext">SA à conseil d'administration</td>
</tr>
<tr align="left" valign="top">
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td width="185" bgcolor="#FFFFFF" class="boldtextarial">Capital social</td>
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td width="385" bgcolor="#EBF0F5" class="basictext">171.285.000,00
EURO</td>
</tr>
<tr align="left" valign="top">
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td width="185" bgcolor="#FFFFFF" class="boldtextarial">Nationalit&eacute;</td>
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td bgcolor="#EBF0F5" class="basictext">France</td>
</tr>
</table>
<div align="center"><img src="../images/degrade580grey.jpg" width="580" height="12"><br>
<br>
</div>
<div align="center">
<table width="588" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="210" align="left" valign="top"><img src="../images/arrowsmallblue.gif" width="9" height="10"><span class="boldtextarialblue15">Chiffres
cl&eacute;s</span></td>
<td width="378" align="left" valign="top" class="smalltext">au 31-12-2004</td>
</tr>
</table>
<table width="580" border="0" align="center" cellpadding="1" cellspacing="2">
<tr>
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td width="185" align="left" valign="top" bgcolor="#FFFFFF" class="boldtextarial">Chiffre
d'affaires</td>
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td width="385" align="left" valign="top" bgcolor="#EBF0F5" class="basictext">18.049.000.000
EU</td>
</tr>
<tr>
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td width="185" align="left" valign="top" bgcolor="#FFFFFF" class="boldtextarial">Effectif</td>
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td width="385" align="left" valign="top" bgcolor="#EBF0F5" class="basictext">De 5150 à 5720</td>
</tr>
</table>
<div align="center"><img src="../images/degrade580grey.jpg" width="580" height="12"><br>
<br>
<br>
</div>
</div>
<table width="600" border="0" cellspacing="2" cellpadding="0">*/
return $tabRet;
}
function getDataEcoCoface($pageHtml) {
global $libelleErreur;
$tabRet=array();
// SIREN
$pos=strpos($pageHtml, '<b><font class="nota">La forme juridique ou la date de création trop récente de l\'entreprise ne nous permettant pas d\'obtenir suffisamment d\'informations, nous vous offrons ce produit.</font></b>');
if ($pos>0) {
$tabRet['infoEco']='OUI';
$tabRet['societeInactive']=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne" > Société inactive</td>', '<td bgcolor="#FFF3DE" class="tabval" > ', '</td>');
$strCapital=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne" > Capital &nbsp (', '(', '</tr><tr>');
$tabTmp=explode('</td>', $strCapital);
$tabRet['capital_source']=str_replace(')', '', $tabTmp[0]);
$tabTmp=explode('&nbsp', $tabTmp[1]);
$tabRet['capital_montant']=str_replace(chr(160), '', trim(strip_tags($tabTmp[0])));
$tabRet['capital_devise']=trim(strip_tags($tabTmp[1]));
$tabRet['dateCreation']=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne" > Date de création</td>', '<td bgcolor="#FFF3DE" class="tabval" > ', '</td>');
$tabRet['formeJuridique']=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne" > Forme juridique</td>', '<td bgcolor="#FFF3DE" class="tabval" > ', '</td>');
$tabRet['cotationBourse']=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne" > Cotation en bourse</td>', '<td bgcolor="#FFF3DE" class="tabval" > ', '</td>');
$tabRet['effectifSociete']=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne" > Effectif société</td>', '<td bgcolor="#FFF3DE" class="tabval" > ', '</td>');
$tabRet['activite']=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne" > Activité</td>', '<td bgcolor="#FFF3DE" class="tabval" > ', '</td>');
$tabRet['sigle']=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne" > Sigle</td>', '<td bgcolor="#FFF3DE" class="tabval" > ', '</td>');
$tabRet['enseigne']=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne" > Enseigne</td>', '<td bgcolor="#FFF3DE" class="tabval" > ', '</td>');
// Dirigeants
$strDir=@getTextInHtml($pageHtml, '<td class="tabtot">IDENTITE</td>', '<td>&nbsp;</td>', '</table>');
$tabDir=explode('</tr>', $strDir);
$nbDir=1;
foreach ($tabDir as $key => $dir)
{
$tabTmp=explode('<td bgcolor="#FFF3DE" class="tabval" > ', $dir);
$typeDir=trim(strip_tags($tabTmp[0]));
$nomDir=trim(strip_tags($tabTmp[1]));
if ($typeDir<>'' && $typeDir<>'Date de création' && $typeDir<>'Forme juridique' && $typeDir<>'Cotation en bourse'
&& $typeDir<>'Effectif société' && $typeDir<>'Société inactive' && $typeDir<>'Activité'
&& $typeDir<>'Sigle' && $typeDir<>'Enseigne'
&& substr($typeDir, 0, 8) <>'Capital ' )
{
//$tabDir['Produits'].=$produit.'/';
//$produit=str_replace(' ','_',$produit);
$tabRet['Dirigeant'.$nbDir.'Type']=trim($typeDir);
$tabTmp=explode('&nbsp', $nomDir);
$tabRet['Dirigeant'.$nbDir.'Genre']=trim($tabTmp[0]);
$tabRet['Dirigeant'.$nbDir.'Prenom']=trim($tabTmp[1]);
$tabRet['Dirigeant'.$nbDir.'Nom']=trim($tabTmp[2]);
$nbDir++;
}
}
$tabRet['NbDirigeants']=$nbDir-1;
// Liens Financiers
$strTmp=@getTextInHtml($pageHtml, '<td class="tabtot">LIENS FINANCIERS</td>', '<td>&nbsp;</td>', '</table>');
if (strpos($strTmp, 'Néant')>0)
$tabRet['LiensFinanciers']='Néant';
else
$tabRet['LiensFinanciers']='Présence liens';
// ELEMENTS FINANCIERS
$strTmp=@getTextInHtml($pageHtml, '<td class="tabtot">ELEMENTS FINANCIERS</td>', '<td>&nbsp;</td>', '</table>');
if (strpos($strTmp, 'Néant')>0)
$tabRet['ElementsFinanciers']='Néant';
else
$tabRet['ElementsFinanciers']='Présence El.Fi.';
}
else
$tabRet['infoEco']='NON';
//echo $pageHtml;
//print_r($tabRet);
//die();
return $tabRet;
}
function getDataEntrepriseCoface($pageHtml) {
global $libelleErreur;
$tabRet=array();
// SIREN
$tabRet['siren']=@getTextInHtml($pageHtml, 'portail/entreprise_identite/identite.asp?nsiren=', '?nsiren=', '&IMPRESSION=OUI');
//$tabRet['siren']=@getTextInHtml($pageHtml, '<a href="http://www.coface.fr" target="_blank">&nbsp;Qui sommes nous&nbsp;</a>-<a href="javascript:;" onClick="MM_openBrWindow(\'../mod_cofacescrl/part_recherche.asp?nscrl=18452&metier=ALL&geo=ALL&idnav=168d25840396c5f38f4
$tabRet['nscrl']=@getTextInHtml($pageHtml, 'Plan du site&nbsp;</a>-<a href="http://www.coface.fr" target="_blank">&nbsp;Qui sommes nous&nbsp;</a>-<a href="javascript:;" onClick="MM_openBrWindow(\'../mod_cofacescrl/part_recherche.asp?nscrl=', '?nscrl=', '&metier=ALL&geo=ALL&idnav=');
// Raison Sociale, Adresse et lien vers Géoloc
$strRS_Adr=@getTextInHtml($pageHtml, '<td WIDTH="40%" bgcolor="#F3E5CC" class="tabligne"> <b> Raison sociale<br>', '<td WIDTH="60%" bgcolor="#FFF3DE" class="tabval"><b>', '</b></td>');
$tabRS_Adr=explode('<br>', $strRS_Adr);
$tabRet['raisonSociale']=trim($tabRS_Adr[0]);
$tabRS_Adr1=explode('&nbsp;', $tabRS_Adr[1]);
$tabRet['AdresseLigne1']=trim($tabRS_Adr1[0]);
$tabRet['AdresseLigne2']=trim($tabRS_Adr1[1]);
$tabRS_Adr1=explode('&nbsp;', $tabRS_Adr[2]);
$tabRet['codePostal']=trim($tabRS_Adr1[0]);
$tabRet['ville']=trim($tabRS_Adr1[1]);
$tabRet['UrlGeoLoc']=@getTextInHtml($pageHtml, '<td WIDTH="60%" bgcolor="#FFF3DE" class="tabval"><a href="javascript:;" onClick="MM_openBrWindow(\'', 'onClick="MM_openBrWindow(\'', '\',\'Planfax');
// Téléphone / Fax
$strTelFax=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne"><b>Téléphone<br>', '<td bgcolor="#FFF3DE" class="tabval" valign="top">', '</td>');
$tabTelFax=explode('<br>', $strTelFax);
$tabRet['tel']=trim($tabTelFax[0]);
$tabRet['fax']=trim($tabTelFax[1]);
// Adresse Internet / Email
$strInet=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne"><b>Adresse internet <br>', '<td bgcolor="#FFF3DE" class="tabval"><a class="tabval" HREF="', '</a></td>');
$tabInet=explode('<br>', $strInet);
$tabRet['web']=trim( @getTextInHtml($tabInet[0], ' target="_new">', '>', '</a>') );
$tabRet['mail']=trim( @getTextInHtml($tabInet[1], ' href="mailto:', ':', '">') );
// Bourse
$strBourse=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne"> <b>'."\r\n".' Code Sicovam<br>', '<td bgcolor="#FFF3DE" class="tabval">', '</td>');
$tabBourse=explode('<br>', $strBourse);
$tabRet['bourse_isin']=trim($tabBourse[0]);
$tabRet['bourse_marche']=trim($tabBourse[1]);
$tabRet['bourse_ville']=trim($tabBourse[2]);
// Activité
$tabRet['activite']=trim(str_replace('&nbsp;', ' ', @getTextInHtml($pageHtml, '<td WIDTH="40%" bgcolor="#F3E5CC" class="tabligne" valign="top"><b>Libellé code activité </b></td>', '<td WIDTH="60%" bgcolor="#FFF3DE" class="tabval">', '</td>')));
// Produits disponibles
$strDispos=@getTextInHtml($pageHtml, '<table border="0" cellpadding="0" cellspacing="0" width="98%"><tr><td class="normal"><b>Produits disponibles</b></td></tr><tr><td bgcolor="#E1D0B6"><img src="../images/vide.gif" border="0" height="1"><br></td></tr><tr><td><img src="../images/vide.gif" border="0" height="5"><br></td></tr></table>', '<table border="0" cellpadding="5" cellspacing="0" width="100%">', '</table>');
$tabDispos=explode('<td align="left" width="25%"', $strDispos);
$tabRet['Produits']='';
foreach ($tabDispos as $key => $produit)
{
$produit=trim(str_replace('>', '', str_replace('nowrap>', '', strip_tags($produit))));
if ($produit<>'' && $produit<>'&nbsp;') {
$tabRet['Produits'].=$produit.'/';
$produit=str_replace(' ','_',$produit);
$tabRet['Produit_'.$produit]='Oui';
}
}
// print_r($tabRet);
// die();
return $tabRet;
}
function getTabListeBilans($pageHtml) {
$tabUrl=array();
$deb=$fin=0;
while( is_int(($deb=strpos($pageHtml,'<a href="http://www.societe.com/cgi-bin/bilan?bil=',$fin))) ) {
$deb=$deb+9;
$fin = strpos($pageHtml,'</a>', $deb);
$s_temp = substr($pageHtml, $deb, ($fin-$deb));
//echo $s_temp."\r\n";
$a_temp = explode('" class="basic">', $s_temp);
$tabUrl[$a_temp[1]]=$a_temp[0];
}
return $tabUrl;
}
function getTabListeGU($pageHtml) {
$tabGU=array();
$deb=$fin=0;
/* <tr><td><img alt="" src="b.gi onMouseOver="javascript:mOvr(this);" onMouseOut="javascript:mOut(this);"><a class=txt9px href="javascript:ChoixGeo('CP_PDR_SUP_LOC_REQ')">Lancer la recherche dans toute la localit&eacute;</td></tr>
<tr><td><img src="b.gif" alt="" border=0></td><td align="left" onMouseOver="javascript:mOvr(this);" onMouseOut="javascript:mOut(this);"><a class=txt9px href="javascript:ChoixGeo('CP_INSCRIPTIONS_REQ')">Lancer la recherche sans l&#39;adresse</td></tr>
*/
while( is_int(($deb=strpos($pageHtml,'<td onMouseOver="javascript:mOvr(this);" onMouseOut="javascript:mOut(this);"><a class="txt9px" href="javascript:ChoixGeo(\'',$fin))) ) {
$deb=$deb+122;
$fin = strpos($pageHtml,'</td></tr>', $deb);
$s_temp = substr($pageHtml, $deb, ($fin-$deb));
//echo $s_temp."\r\n";
$a_temp = explode('\')">', $s_temp);
$tabGU[$a_temp[1]]=$a_temp[0];
}
return $tabGU;
}
function getTabListeNonTrouve($pageHtml) {
$tabGU=array();
$deb=$fin=0;
/* onMouseOver="javascript:mOvr(this);" onMouseOut="javascript:mOut(this);"><a class=txt9px href="javascript:ChoixGeo('CP_PDR_SUP_LOC_REQ')">Lancer la recherche dans toute la localit&eacute;</td></tr>
onMouseOver="javascript:mOvr(this);" onMouseOut="javascript:mOut(this);"><a class=txt9px href="javascript:ChoixGeo('CP_INSCRIPTIONS_REQ')">Lancer la recherche sans l&#39;adresse</td></tr>
*/
while( is_int(($deb=strpos($pageHtml,'onMouseOver="javascript:mOvr(this);" onMouseOut="javascript:mOut(this);"><a class=txt9px href="javascript:ChoixGeo(\'',$fin))) ) {
$deb=$deb+116;
$fin = strpos($pageHtml,'</td></tr>', $deb);
$s_temp = substr($pageHtml, $deb, ($fin-$deb));
//echo $s_temp."\r\n";
$a_temp = explode('\')">', $s_temp);
$tabGU[$a_temp[1]]=$a_temp[0];
}
return $tabGU;
}
/** Recherche un texte dans une page HTML
**
**/
function getTextInHtml($pageHtml, $strToFind, $strDeb, $strEnd, $include_strDeb=false, $include_strEnd=false, $ltrim=true, $rtrim=true, &$fin, $nbOcc=1) {
$tabRet=array();
$deb=$nbOccTrouve=0;
while( is_int(($deb=strpos($pageHtml,$strToFind,$fin))) ) {
$deb++;
$deb2 = strpos($pageHtml,$strDeb, $deb);
$fin = strpos($pageHtml,$strEnd, $deb2);
if (!$include_strDeb)
$deb2+=strlen($strDeb);
$s_temp = substr($pageHtml, $deb2, ($fin-$deb2));
if ($ltrim) $s_temp=ltrim($s_temp);
if ($rtrim) $s_temp=rtrim($s_temp);
if ($nbOcc==1) return $s_temp;
//echo $s_temp."\r\n";
//$a_temp = explode('" class="basic">', $s_temp);
$tabUrl[$nbOccTrouve]=$s_temp;
$nbOccTrouve++;
if ($nbOcc==$nbOccTrouve) {
// echo "j'ai trouvé le nb demandé, je sort\r\n";
break;
};
}
return $tabUrl;
/*<span class="mongrasvert">
<li>Le type de voie a été modifié<br>
<li>L'orthographe du mot directeur a été modifiée<br>
<li>Le code postal a été forcé à partir du département et de la localité<br> </span>
*/
}
?>

View File

@ -1,89 +0,0 @@
<?
//include('fonctions.php');
//include('insee.class.php');
define('HOST_NORMAD', 'www.normad.fr');
define('SITE_NORMAD', 'http://'. HOST_NORMAD .'/');
//$normad2=new Normad('SCI BRYGE', 'Kervegant', '', '', '', '29', 'SCAER');
class Normad {
/** Normalise l'adresse postale donnée en paramètre. Seule la ligne 1 qui devrait comporter la Raison Sociale ou le nom de l'expéditeur reste inchangée !
** @param $adrL1 Obligatoirement le Nom ou la Raison Sociale du destinataire
** @param $adrL2 Normalisation = Appart.,Bâtiment...
** @param $adrL3 Normalisation = Résidence,Cité...
** @param $adrL4 Normalisation = Num./Bis/Type voie/Nom voie
** @param $adrL5 Normalisation = BP,TSA,Lieu-dit...
** @param $codPos Code Postal (ou département)
** @param $ville Ville (orthographe correcte si possible si pas de CP)
** @return array
**/
function Normad ($adrL1, $adrL2, $adrL3, $adrL4, $adrL5, $codPos, $ville) {
$adrL1 =substr(trim($adrL1) , 0, 40);
$adrL2 =substr(trim($adrL2) , 0, 40);
$adrL3 =substr(trim($adrL3) , 0, 40);
$adrL4 =substr(trim($adrL4) , 0, 40);
$adrL5 =substr(trim($adrL5) , 0, 40);
$codPos=substr(trim($codPos), 0, 5);
$ville =substr(trim($ville) , 0, 33);
$postData=array( 'ad1'=>$adrL2, //htmlentities($adrL2),
'ad2'=>$adrL3, //htmlentities($adrL3),
'ad3'=>$adrL4, //htmlentities($adrL4),
'ad4'=>$adrL5, //htmlentities($adrL5),
'cod'=>$codPos,
'loc'=>htmlentities($ville),
'hiddenField'=>'GEN',);
$tabHtml=getUrl(SITE_NORMAD.'traiter_adresse.php', '', $postData, SITE_NORMAD.'validez.php', true, HOST_NORMAD);
$page=$tabHtml['body'];
$posInHtml=0;
$tabRet=array();
$retour=trim(str_replace(chr(173), '', getTextInHtml($page, '<td colspan=2><font face="Arial" size="2" color="#3F5A80"><b>', '<b>', '</b></font>', false, true, true, true, $posInHtml)));
$retour=explode('[*', $retour);
$tabRet['retour_code']=str_replace(']','',$retour[1]);
$tabRet['retour_libelle']=trim($retour[0]);
$tabRet['retour_messages']=getTextInHtml($page, '<li>', 'i>', '<br>', false, false, true, true, $posInHtml, 0);
// Récupération des Lignes d'adresse
$tabRet['ligne1']=$adrL1;
$tabRet['ligne2']=getTextInHtml($page, '<td class="gris2"><span class=grasnoir>Adresse en sortie :</span>', '<td class=gras nowrap>', '</td>', false, false, true, true, $posInHtml);
$tabRet['ligne3']=getTextInHtml($page, '<td class=pet align=right nowrap> Volet 2 : </td>', '<td class=gras nowrap>', '</td>', false, false, true, true, $posInHtml);
$tabRet['ligne4']=getTextInHtml($page, '<td class=pet align=right nowrap> Volet ', '<td class=gras nowrap>', '</td>', false, false, true, true, $posInHtml);
$tabRet['ligne5']=getTextInHtml($page, '<td class=pet align=right nowrap> Volet 4 : </td>', '<td class=gras nowrap>', '</td>', false, false, true, true, $posInHtml);
$tabRet['CP']=getTextInHtml($page, '<td class=pet align=right nowrap> CP : </td>', '<td class=gras nowrap>', '</td>', false, false, true, true, $posInHtml);
$tabRet['ville']=getTextInHtml($page, '<td class=pet align=right nowrap> Localité : </td>', '<td class=gras nowrap>', '</td>', false, false, true, true, $posInHtml);
$tabRet['ligne6']=$tabRet['CP'] .' '. $tabRet['ville'];
// Découpage de la rue
$tabRet['voie_num']=getTextInHtml($page, '<span class=pet>Numéro ', '<span class=gras>', '</span><br>', false, false, true, true, $posInHtml);
$tabRet['voie_btq']=getTextInHtml($page, '<span class=pet>Bis/Ter/Quater/...', '<span class=gras>', '</span><br>', false, false, true, true, $posInHtml);
$tabRet['voie_type']=getTextInHtml($page, '<span class=pet>Type', '<span class=gras>', '</span><br>', false, false, true, true, $posInHtml);
$tabRet['voie_denom']=getTextInHtml($page, '<span class=pet>Dénomination', '<span class=gras>', '</span><br>', false, false, true, true, $posInHtml);
$tabRet['voie_motDir']=getTextInHtml($page, 'directeur :</span> ', '<span class=gras>', '</span><br>', false, false, true, true, $posInHtml);
$tabRet['voie_matric']=getTextInHtml($page, '<span class=pet>Matricule voie :</span>', '</span>', '<br>', false, true, true, true, $posInHtml);
$tabRet['code_insee_commune']=getTextInHtml($page, '<span class=pet>Code INSEE commune :</span>', '</span>', '<br>', false, true, true, true, $posInHtml);
print_r($tabRet);
//echo "$voie_num\r\n$voie_btq\r\n$voie_type\r\n$voie_denom\r\n$voie_motDir\r\n$voie_matric\r\n$code_insee_commune\r\n";
}
/*
<td class="gris2" valign=top><span class=grasnoir>Détails :</span><br>
00441644 <br>
28074 <br>
<br>
<br>
</td>
</tr>
</table>
<hr size=1>
</td>
</tr>
<tr>
<td colspan=3><p class="gris2" align="justify">&nbsp; </p>
<p class="mongrasvert" align="right"> R&eacute;f&eacute;rentiels
d'avril 2006 </p>
*/
} ?>

View File

@ -1,170 +0,0 @@
<?PHP
$this->tabNotation['A+']=array('Exceptionnel', 'A3++', 'Aaa' ,'AAA' ,'0.001');
$this->tabNotation['A'] =array('Excellent', 'A3+', 'Aa1 Aa2 Aa3' ,'AA+ AA AA-' ,'0.01');
$this->tabNotation['B+']=array('Très bon', '3++', 'A1' ,'A+' ,'0.02');
$this->tabNotation['B'] =array('Bon', '3+', 'A2 A3' ,'A A-' ,'0.04');
$this->tabNotation['C+']=array('Assez bon', '3', 'Baa1' ,'BBB+' ,'0.15');
$this->tabNotation['C'] =array('Acceptable', '3', 'Baa2' ,'BBB' ,'0.30');
$this->tabNotation['C-']=array('Moyen', '3', 'Baa3' ,'BBB-' ,'0.60');
$this->tabNotation['D+']=array('Passable', '4+', 'Ba1' ,'BB+' ,'0.90');
$this->tabNotation['D'] =array('Médiocre', '4', 'Ba2' ,'BB' ,'1.25');
$this->tabNotation['D-']=array('Très médiocre', '4', 'Ba3' ,'BB-' ,'1.60');
$this->tabNotation['E+']=array('Mauvais (sous surveillance)', '5', 'B1 B2 B3', 'B+ B B-', '5.00');
$this->tabNotation['E'] =array('Très mauvais (sensible, sans incident)', '6', 'Caa', 'CCC', '14.00');
$this->tabNotation['E-']=array('Très mauvais (sensible avec incidents)', '8', 'Ca C', 'CC C', '17.00');
$this->tabNotation['F'] =array('En défaut, hors procédures judiciaires (douteux)', '8 9', 'D', 'D', 'Défaut');
$this->tabNotation['Z'] =array('En défaut, avec procédures judiciaires ou contentieuses (douteux)', 'P', '', '', 'Défaut');
$this->tabLibActivite[0]='';
$this->tabLibActivite[15]='Industries Alimentaires : Collecte Appro';
$this->tabLibActivite[3]='Industries Alimentaires : Collecte et 1ère transformation';
$this->tabLibActivite[5]='Industries Alimentaires : Eaux de vie et Champagne';
$this->tabLibActivite[2]='Industries Alimentaires : Autres activités';
$this->tabLibActivite[6]='Industries extractives / Production Distribution : Énergie Eau';
$this->tabLibActivite[7]='Construction - BTP';
$this->tabLibActivite[1]='Industries Manufacturières';
$this->tabLibActivite[8]='Négoce';
$this->tabLibActivite[4]='Commerce de Gros';
$this->tabLibActivite[9]='Commerce Distribution';
$this->tabLibActivite[10]='Grande Distribution';
$this->tabLibActivite[12]='Transports';
$this->tabLibActivite[13]='Media Technologie de l\'information';
$this->tabLibActivite[14]='Services';
$this->tabLibActivite[11]='Hôtellerie et Loisirs / Activités immobilières';
$this->tabLibActivite[16]='Banques. Assurances. Activités financières';
$this->tabLibActivite[17]='Agriculture. Sylviculture. Pêche. Aquaculture';
$this->tabActivite[15]=array('512A');
$this->tabActivite[3]=array('151A','151C','152','153E','155','157','159G','159J','159N','159Q');
$this->tabActivite[5]=array('159A','159F');
$this->tabActivite[2]=array('151E','151F','153A','153C','153F','154','156','158','159B','159D','159L','159S','159T');
$this->tabActivite[6]=array('11','10','12','13','14','401','402','403','410');
$this->tabActivite[7]=array('451','452','453','454','455');
$this->tabActivite[1]=array('251','252','241','242','243','245','246','247','261','262','263','264','265','266','267','268','244','297','300','311','312','313','314','315','316','321','322','323','17','18','19','20','21','271','272','273','274','275','281','282','283','284','285','286','287','291','292','293','294','295','296','341','342','343','353','351','352','354','355','223','331','332','333','334','335','361','362','363','364','365','366','231','232','233','222','371','372');
$this->tabActivite[8]=array();
$this->tabActivite[4]=array('511A','511N','511P','512C','512E','512G','512J','513','511C','515A','515C','511E','511G','511J','511L','511R','511T','511U','514','515E','515F','515H','515J','515L','515N','515Q','516','517');
$this->tabActivite[9]=array('501','502','503','504','505','521A','521B','521C','521J','522','523','524A','524C','524E','524F','524H','524J','524L','524N','524R','524T','524U','524V','524W','524X','524Y','524Z','525','526');
$this->tabActivite[10]=array('521D','521E','521F','521H','524P');
$this->tabActivite[12]=array('621','622','623','611','612','602','603','631','632','634','634B','634C','634A','641');
$this->tabActivite[13]=array('221','722','721','723','724','725','726','924','642','922','921');
$this->tabActivite[14]=array('703','712E','711','712A','713','714','712C','741A','741C','741E','741G','742','743','741J','744','745','746','747','748','900','633','801','802','803','804','851','852','853','930','911','912','913','527','950');
$this->tabActivite[11]=array('923','925','926','927','551','552','553','554','555','702');
$this->tabActivite[16]=array('651','660','672','652E','652A','652C','652F','671');
$this->tabActivite[17]=array('751','990','752','990','701');
$this->tabR[1][0]=array();
$this->tabR[1][1]=array('0:15.5','15.5:21.7','21.7:25','25:29.1','29.1:33.4','33.4:37','37:40','40:42.6','42.6:44.9','44.9:100');
$this->tabR[1][2]=array('0:18.7','18.7:22.8','22.8:25','25:27.7','27.7:30.6','30.6:33','33:35','35:36.7','36.7:38.3','38.3:100');
$this->tabR[1][3]=array('0:18.7','18.7:22.8','22.8:25','25:27.7','27.7:30.6','30.6:33','33:35','35:36.7','36.7:38.3','38.3:100');
$this->tabR[1][4]=array('0:8.7','8.7:12.8','12.8:15','15:17.7','17.7:20.6','20.6:23','23:25','25:26.7','26.7:28.3','28.3:100');
$this->tabR[1][5]=array('0:18.7','18.7:22.8','22.8:25','25:27.7','27.7:30.6','30.6:33','33:35','35:36.7','36.7:38.3','38.3:100');
$this->tabR[1][6]=array('0:20.5','20.5:26.7','26.7:30','30:34.1','34.1:38.4','38.4:42','42:45','45:47.6','47.6:49.9','49.9:100');
$this->tabR[1][7]=array('0:13.7','13.7:17.8','17.8:20','20:22.7','22.7:25.6','25.6:28','28:30','30:31.7','31.7:33.3','33.3:100');
$this->tabR[1][8]=array('0:3.7','3.7:7.8','7.8:10','10:12.7','12.7:15.6','15.6:18','18:20','20:21.7','21.7:23.3','23.3:100');
$this->tabR[1][9]=array('0:13.7','13.7:17.8','17.8:20','20:22.7','22.7:25.6','25.6:28','28:30','30:31.7','31.7:33.3','33.3:100');
$this->tabR[1][10]=array('0:5.7','5.7:9.8','9.8:12','12:14.7','14.7:17.6','17.6:20','20:22','22:23.7','23.7:25.3','25.3:100');
$this->tabR[1][11]=array('0:18.7','18.7:22.8','22.8:25','25:27.7','27.7:30.6','30.6:33','33:35','35:36.7','36.7:38.3','38.3:100');
$this->tabR[1][12]=array('0:13.7','13.7:17.8','17.8:20','20:22.7','22.7:25.6','25.6:28','28:30','30:31.7','31.7:33.3','33.3:100');
$this->tabR[1][13]=array('0:23.7','23.7:27.8','27.8:30','30:32.7','32.7:35.6','35.6:38','38:40','40:41.7','41.7:43.3','43.3:100');
$this->tabR[1][14]=array('0:18.7','18.7:22.8','22.8:25','25:27.7','27.7:30.6','30.6:33','33:35','35:36.7','36.7:38.3','38.3:100');
$this->tabR[1][15]=array('0:15.5','15.5:21.7','21.7:25','25:29.1','29.1:33.4','33.4:37','37:40','40:42.6','42.6:44.9','44.9:100');
$this->tabR[1][16]=array('0:6.8','6.8:8.9','8.9:10','10:11.4','11.4:12.8','12.8:14','14:15','15:15.9','15.9:16.6','16.6:100');
$this->tabR[1][17]=array('0:18.7','18.7:22.8','22.8:25','25:27.7','27.7:30.6','30.6:33','33:35','35:36.7','36.7:38.3','38.3:100');
$this->tabR[2][0]=array();
$this->tabR[2][1]=array('1.8:','1.6:1.8','1.5:1.6','1.4:1,5','1.2:1.4','1.0:1.2','0.9:1.0','0.8:0,9','0.7:0,8','0:0.7');
$this->tabR[2][2]=array('2.2:','1.9:2.2','1.8:1.9','1.6:1.8','1.4:1.6','1.2:1.4','1.0:1.2','0.9:1.0','0.7:0.9','0:0.7');
$this->tabR[2][3]=array('2.2:','1.9:2.2','1.8:1.9','1.6:1.8','1.4:1.6','1.2:1.4','1.0:1.2','0.9:1.0','0.7:0.9','0:0.7');
$this->tabR[2][4]=array('3.0:','2.7:3.0','2.5:2.7','2.3:2.5','2.0:2.3','1.7:2.0','1.5:1.7','1.3:1.5','1.1:1.3','0:1.1');
$this->tabR[2][5]=array('2.6:','2.4:2.6','2.2:2.4','2.0:2.2','1.7:2.0','1.5:1.7','1.3:1.5','1.1:1.3','1.0:1.1','0:1');
$this->tabR[2][6]=array('1.7:','1.6:1.7','1.5:1.6','1.4:1.5','1.2:1.4','1.1:1.2','1.0:1.1','0.9:1.0','0.8:0.9','0:0.8');
$this->tabR[2][7]=array('1.5:','1.4:1.5','1.3:1.4','1.1:1.3','1.0:1.2','0.9:1.0','0.8:0.9','0.7:0.8','0.6:0.7','0:0.6');
$this->tabR[2][8]=array('10.1:','8.8:10.1','8:8.8','7:8','5.8:7','4.8:5.8','4:4.8','3.3:4','2.8:3.3','0:2.8');
$this->tabR[2][9]=array('3:','2.7:3','2.5:2.7','2.3:2.5','2:2.3','1.7:2','1.5:1.7','1.3:1.5','1.1:1.3','0:1.1');
$this->tabR[2][10]=array('3.8:','3.3:3.8','3.0:3.3','2.6:3.0','2.2:2.6','1.8:2.2','1.5:1.8','1.2:1.5','1.0:1.2','0:1');
$this->tabR[2][11]=array('2.3:','2.1:2.3','2:2.1','1.8:2','1.6:1.8','1.5:1.6','1.3:1.5','1.2:1.3','1:1.2','0:1');
$this->tabR[2][12]=array('2.3:','2.1:2.3','2:2.1','1.8:2','1.6:1.8','1.5:1.6','1.3:1.5','1.2:1.3','1:1.2','0:1');
$this->tabR[2][13]=array('1.8:','1.6:1.8','1.5:1.6','1.4:1.5','1.2:1.4','1:1.2','0.9:1','0.8:0.9','0.7:0.8','0:0.7');
$this->tabR[2][14]=array('1.8:','1.6:1.8','1.5:1.6','1.4:1.5','1.2:1.4','1:1.2','0.9:1','0.8:0.9','0.7:0.8','0:0.7');
$this->tabR[2][15]=array('2.2:','1.9:2.2','1.7:1.9','1.5:1.7','1.2:1.5','1.0:1.2','0.8:1.0','0.7:0.8','0.5:0.7','0:0.5');
$this->tabR[2][16]=array('10.1:','8.8:10.1','8:8.8','7:8','5.8:7','4.8:5.8','4:4.8','3.3:4','2.8:3.3','0:2.8');
$this->tabR[2][17]=array('2.2:','1.9:2.2','1.8:1.9','1.6:1.8','1.4:1.6','1.2:1.4','1:1.2','0.9:1','0.7:0.9','0:0.7');
$this->tabR[3][0]=array();
$this->tabR[3][1]=array('4.4:','4:4.4','3.8:4','3.5:3.8','3.1:3.5','2.8:3.1','2.5:2.8','2.2:2.5','2:2.2','0:2');
$this->tabR[3][2]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4');
$this->tabR[3][3]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4');
$this->tabR[3][4]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4');
$this->tabR[3][5]=array('8.6:','7.9:8.6','7.5:7.9','6.9:7.5','6.2:6.9','5.6:6.2','5:5.6','4.5:5','4:4.5','0:4');
$this->tabR[3][6]=array('4.4:','4:4.4','3.8:4','3.5:3.8','3.1:3.5','2.8:3.1','2.5:2.8','2.2:2.5','2:2.2','0:2');
$this->tabR[3][7]=array('4.4:','4:4.4','3.8:4','3.5:3.8','3.1:3.5','2.8:3.1','2.5:2.8','2.2:2.5','2:2.2','0:2');
$this->tabR[3][8]=array('10.9:','9.7:10.9','9:9.7','8:9','6.8:8','5.8:6.8','5:5.8','4.3:5','3.7:4.3','0:3.7');
$this->tabR[3][9]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4');
$this->tabR[3][10]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4');
$this->tabR[3][11]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4');
$this->tabR[3][12]=array('5.9:','5.4:5.9','5:5.4','4.5:5','3.9:4.5','3.4:3.9','3:3.4','2.6:3','2.3:2.6','0:2.3');
$this->tabR[3][13]=array('4.2:','3.8:4.2','3.5:3.8','3.1:3.5','2.7:3.1','2.3:2.7','2:2.3','1.7:2','1.5:1.7','0:1.5');
$this->tabR[3][14]=array('4.2:','3.8:4.2','3.5:3.8','3.1:3.5','2.7:3.1','2.3:2.7','2:2.3','1.7:2','1.5:1.7','0:1.5');
$this->tabR[3][15]=array('6.9:','6.3:6.9','6.0:6.3','5.5:6.0','5.0:5.5','4.5:5.0','4.0:4.5','3.6:4.0','3.2:3.6','0:3.2');
$this->tabR[3][16]=array('10.9:','9.7:10.9','9:9.7','8:9','6.8:8','5.8:6.8','5:5.8','4.3:5','3.7:4.3','0:3.7');
$this->tabR[3][17]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4');
$this->tabR[4][0]=array();
$this->tabR[4][1]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][2]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][3]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][4]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][5]=array('0:1.36','1.36:1.44','1.44:1.5','1.5:1.58','1.58:1.71','1.71:1.85','1.85:2','2:2.16','2.16:2.33','2.33:');
$this->tabR[4][6]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][7]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][8]=array('0:1.1','1.1:1.2','1.2:1.3','1.3:1.4','1.4:1.6','1.6:1.8','1.8:2','2:2.2','2.2:2.5','2.5:');
$this->tabR[4][9]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][10]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][11]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][12]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][13]=array('0:2.4','2.4:2.7','2.7:3','3:3.4','3.4:4.1','4.1:5','5:6','6:7.2','7.2:8.7','8.7:');
$this->tabR[4][14]=array('0:2.4','2.4:2.7','2.7:3','3:3.4','3.4:4.1','4.1:5','5:6','6:7.2','7.2:8.7','8.7:');
$this->tabR[4][15]=array('0:2.9','2.9:3.4','3.4:3.7','3.7:4.3','4.3:5.2','5.2:6.2','6.2:7.5','7.5:9.1','9.1:10.9','10.9:');
$this->tabR[4][16]=array('0:1.1','1.1:1.2','1.2:1.3','1.3:1.4','1.4:1.6','1.6:1.8','1.8:2','2:2.2','2.2:2.5','2.5:');
$this->tabR[4][17]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[5][0]=array();
$this->tabR[5][1]=array('-99:-40','-40:-34','-34:-30','-30:-24','-24:-16','-16:-8','-8:0','0:8.1','8.1:16.1','16.1:');
$this->tabR[5][2]=array('-99:-40','-40:-34','-34:-30','-30:-24','-24:-16','-16:-8','-8:0','0:8.1','8.1:16.1','16.1:');
$this->tabR[5][3]=array('-99:-40','-40:-34','-34:-30','-30:-24','-24:-16','-16:-8','-8:0','0:8.1','8.1:16.1','16.1:');
$this->tabR[5][4]=array('-99:-16.7','-16.7:-12.7','-12.7:-10','-10:-6','-6:-0.7','-0.7:4.7','4.7:10','10:15.3','15.3:20.7','20.7:');
$this->tabR[5][5]=array('-999:-420','-420:-384','-384:-360','-360:-324','-324:-276','-276:-228','-228:-180','-180:-132','-132:-84','-84:');
$this->tabR[5][6]=array('-99:-40','-40:-34','-34:-30','-30:-24','-24:-16','-16:-8','-8:0','0:8.1','8.1:16.1','16.1:');
$this->tabR[5][7]=array('-99:-30','-30:-24','-24:-20','-20:-14','-14:-6','-6:2','2:10','10:18','18:26','26:');
$this->tabR[5][8]=array('-99:-41.7','-41.7:-34.7','-34.7:-30','-30:-23','-23:-13.7','-13.7:-4.3','-4.3:5','5:14.3','14.3:23.7','23.7:');
$this->tabR[5][9]=array('-99:-16.7','-16.7:-12.7','-12.7:-10','-10:-6','-6:-0.7','-0.7:4.7','4.7:10','10:15.3','15.3:20.7','20.7:');
$this->tabR[5][10]=array('-99:-5','-5:-2','-2:0','0:3','3:7','7:11','11:15','15:19','19:23','23:');
$this->tabR[5][11]=array('-99:-6.7','-6.7:-2.7','-2.7:0','0:4','4:9.3','9.3:14.7','14.7:20','20:25.3','25.3:30.7','30.7:');
$this->tabR[5][12]=array('-99:-6.7','-6.7:-2.7','-2.7:0','0:4','4:9.3','9.3:14.7','14.7:20','20:25.3','25.3:30.7','30.7:');
$this->tabR[5][13]=array('-99:-6.7','-6.7:-2.7','-2.7:0','0:4','4:9.3','9.3:14.7','14.7:20','20:25.3','25.3:30.7','30.7:');
$this->tabR[5][14]=array('-99:-6.7','-6.7:-2.7','-2.7:0','0:4','4:9.3','9.3:14.7','14.7:20','20:25.3','25.3:30.7','30.7:');
$this->tabR[5][15]=array('-99:-38.3','-38.3:-36.3','-36.3:-35.0','-35:-33','-33.0:-30','-30:-27.7','-27.7:-25.0','-25.0:-22.3','-22.3:-19.7','-19.7:');
$this->tabR[5][16]=array('-99:-41.7','-41.7:-34.7','-34.7:-30','-30:-23','-23:-13.7','-13.7:-4.3','-4.3:5','5:14.3','14.3:23.7','23.7:');
$this->tabR[5][17]=array(':-58.3','-58.3:53.3','-53.3:-50','-50:-45','-45:-38.3','-38.3:-31.7','-31.7:-25','-25:-18.3','-18.3:-11.7','-11.7:');
$this->tabR[6][0]=array();
$this->tabR[6][1]=array('0:6','6:6.6','6.6:7','7:7.6','7.6:8.4','8.4:9.2','9.2:10','10:10.8','10.8:11.6','11.6:');
$this->tabR[6][2]=array('0:6','6:6.6','6.6:7','7:7.6','7.6:8.4','8.4:9.2','9.2:10','10:10.8','10.8:11.6','11.6:');
$this->tabR[6][3]=array('0:1.5','1.5:2.1','2.1:2.5','2.5:3.1','3.1:3.9','3.9:4.7','4.7:5.5','5.5:6.3','6.3:7.1','7.1:');
$this->tabR[6][4]=array('0:1.8','1.8:2.2','2.2:2.5','2.5:2.9','2.9:3.4','3.4:4','4:4.5','4.5:5','5:5.6','5.6:');
$this->tabR[6][5]=array('0:6.7','6.7:7.5','7.5:8','8:8.8','8.8:9.9','9.9:10.9','10.9:12','12:13.1','13.1:14.1','14.1:');
$this->tabR[6][6]=array('0:7.7','7.7:8.5','8.5:9','9:9.8','9.8:10.9','10.9:11.9','11.9:13','13:14.1','14.1:15.1','15.1:');
$this->tabR[6][7]=array('0:3','3:3.6','3.6:4','4:4.6','4.6:5.4','5.4:6.2','6.2:7','7:7.8','7.8:8.6','8.6:');
$this->tabR[6][8]=array('0:1.3','1.3:1.7','1.7:2','2:2.4','2.4:2.9','2.9:3.5','3.5:4','4:4.5','4.5:5.1','5.1:');
$this->tabR[6][9]=array('0:1.8','1.8:2.2','2.2:2.5','2.5:2.9','2.9:3.4','3.4:4','4:4.5','4.5:5','5:5.6','5.6:');
$this->tabR[6][10]=array('0:1.3','1.3:1.7','1.7:2','2:2.4','2.4:2.9','2.9:3.5','3.5:4','4:4.5','4.5:5.1','5.1:');
$this->tabR[6][11]=array('0:8.3','8.3:9.3','9.3:10','10:11','11:12.3','12.3:13.7','13.7:15','15:16.3','16.3:17.7','17.7:');
$this->tabR[6][12]=array('0:4.7','4.7:5.5','5.5:6','6:6.8','6.8:7.9','7.9:8.9','8.9:10','10:11.1','11.1:12.1','12.1:');
$this->tabR[6][13]=array('0:3','3:4.8','4.8:6','6:7.8','7.8:10.2','10.2:12.6','12.6:15','15:17.4','17.4:19.8','19.8:');
$this->tabR[6][14]=array('0:3','3:4.8','4.8:6','6:7.8','7.8:10.2','10.2:12.6','12.6:15','15:17.4','17.4:19.8','19.8:');
$this->tabR[6][15]=array('0:2','2:2.3','2.3:2.5','2.5:2.8','2.8:3.2','3.2:3.6','3.6:4.0','4.0:4.4','4.4:4.8','4.8:');
$this->tabR[6][16]=array('0:1.7','1.7:1.9','1.9:2','2:2.2','2.2:2.5','2.5:2.7','2.7:3','3:3.3','3.3:3.5','3.5:');
$this->tabR[6][17]=array('0:4.7','4.7:5.5','5.5:6','6:6.8','6.8:7.9','7.9:8.9','8.9:10','10:11.1','11.1:12.1','12.1:');
?>

View File

@ -1,9 +0,0 @@
<?
class Rncs {
function Rncs () {}
}
?>

View File

@ -1,795 +0,0 @@
<?php
require_once 'framework/common/chiffres.php';
require_once 'framework/common/dates.php';
require_once 'Metier/bodacc/classMBodacc.php';
require_once 'Metier/insee/classMInsee.php';
require_once 'Metier/partenaires/classMRncs.php';
require_once 'Metier/partenaires/classMBilans.php';
require_once 'Metier/partenaires/classMBourse.php';
require_once 'Metier/partenaires/classMLiens.php';
require_once 'Metier/scores/classMFinancier.php';
require_once 'Metier/scores/classMSolvabilite.php';
require_once 'Metier/scores/classMScores.php';
require_once 'Metier/partenaires/classMTva.php';
require_once 'Metier/partenaires/classMMap.php';
require_once 'Metier/partenaires/classMGreffes.php';
require_once 'Metier/partenaires/classMPrivileges.php';
require_once 'Metier/scores/Variables/configMRatios.php';
require_once 'framework/mail/sendMail.php';
global $tabEvenSolib;
global $tabEven2SO;
global $tabEven2RO;
$tabEvenSolib=array(1=>'CR',
11=>'CR',
13=>'CR',
14=>'CR',
15=>'CR',
16=>'CR',
17=>'CR',
18=>'CR',
19=>'CR',
2=>'VT',
21=>'VT',
22=>'VT',
24=>'VT',
25=>'VT',
3=>'CE',
31=>'ME',
32=>'ME',
33=>'ME',
34=>'ME',
35=>'Rec',
36=>'MAF',
37=>'LG',
38=>'LG',
39=>'MD',
4=>'RD',
41=>'DIS',
42=>'FLG',
51=>'RJ',
52=>'RJ',
53=>'RA',
56=>'PIE',
57=>'SAUVJ',
58=>'SAUVP',
59=>'RR',
6=>'R&L',
61=>'LB',
62=>'LJ',
63=>'FP',
64=>'INT',
65=>'LQ',
69=>'RL',
7=>'Suite',
71=>'SRJ',
72=>'SRLJ',
73=>'SP',
74=>'AP',
75=>'MP',
76=>'EP',
77=>'PRO',
78=>'DC',
79=>'CIA',
8=>'INFR',
91=>'DC',
92=>'CP',
);
$tabEven2SO=array( // PROCOL
1010=>92, // Déclaration de cessation de paiement
1050=>7, // Homologation de la conciliation
1055=>7, // Résolution de la conciliation
1100=>57, // Jugement de sauvegarde
1101=>58, // Plan de sauvegarde
1200=>52, // Redressement Judiciaire
1201=>52, // Conversion sauvegarde en Redressement Judiciaire
1202=>75, // Renouv. Periode Observation
1203=>78, // Avis de dépot de l'état de collocation
1204=>78, // Dépôt des créances
1205=>78,
1206=>78,
1207=>53, // Règlemement amiable
1208=>78,
1209=>51, // Règlement Judiciaire
1210=>77, // Production
1211=>52, // Redressement Judiciaire par extension au(x) gérant(s)
1212=>69, // Rectif ou Annul.LJ
1214=>78, // Avis de dépôt de l'état des créances (Loi de 1985)
1215=>7, // Jugement de désignation des organes de la procédure
1216=>78, // Autre avis de dépôt
1300=>62, // Conversion Redressement Judiciaire en Liquidation
1301=>62, // Ouverture Liquidation Judiciaire
1302=>66, // Ouverture Liquidation Judiciaire Simplifiée
1303=>62, // Ouverture Liquidation Judiciaire sur résolution
1304=>62, // Réouverture Liquidation Judiciaire
1305=>62, // Liquidation Judiciaire
1306=>66, // Liquidation Judiciaire simplifiée
1307=>62, // Conversion sauvegarde en Liquidation Judiciaire
1308=>62, // Fin du régime de Liquidation Judiciaire Simplifiée
1309=>62, // Conversion Liquidation Judiciaire en Liquidation
1310=>56, // Procédure d'Insolvabilité Européenne
1311=>62, // Liquidation Judiciaire par extension au(x) gérants
1312=>62, // Liquidation Judiciaire avec continuation d'exploitation
1313=>62, // Liquidation Judiciaire sans remise des accessoires
1346=>7, // Procédure d'insolvabilité (Règlement 1346/2000 du Conseil Européen)
1400=>7, // Nomination d'un administrateur judiciaire
1401=>7, // Nomination d'un mandataire judiciaire
1402=>7, // Nomination d'un représentant des créanciers
1403=>7, // Nominnation/Remplacement de commissaire à l'exécution du plan
1404=>7, // Prolongement de la mission du commissaire à l'exécution du plan
1405=>7, // Nomination d'un juge commissaire
1406=>7, // Changement de SYNDIC
1407=>75, // Modif. de Plan
1408=>75, // Modification du plan de cession
1409=>75, // Modif. de de continuation
1410=>75, // Suite de jugement/règlement/liquidation
1411=>75, // Arrêt du plan de cession
1412=>75, // Arrêt du plan de cession partielle
1413=>75, // Arrêt du plan de continuation
1414=>75, // Arrêt du plan de redressement
1415=>75, // Prolongement du plan cession
1416=>75, // Jugement constatant la bonne exécution du plan
1417=>62, // Jugement d'extension de liquidation judiciaire
1418=>52, // Jugement d'extension d'une procédure de redressement judiciaire
1419=>57, // Jugement d'extension d'une procédure de sauvegarde
1420=>7, // Nomination d'un liquidateur judiciaire
1421=>7, // Jugement prorogeant le plan de redressement
1425=>7, // Plan de cession avec location gérance
1430=>7, // Jugement autorisant la poursuite d'activité
1431=>7, // Jugement de cessation partielle d'activité
1435=>7, // Suspension de l'exécution provisoire
1436=>7, // Suspension provisoire des poursuites
1440=>7, // Jugement accordant un délai pour déposer la liste des créances
1445=>7, // Concordat
1450=>92, //Cessation paiement
1455=>7, // Jugement arrêtant le plan d'apurement du passif
1460=>7, // Homologation du plan
1470=>7, // Fin de mission d'administrateur judiciaire
1480=>7, // Jugement ordonnant la jonction des procédures
1500=>79, // Clôture de la procédure
1501=>79, // Clôture de la procédure après cession totale
1502=>76, // Clôture de la procédure pour extinction du passif
1503=>79, // Cloture insuf.Actif
1504=>79, // Clôture sauvegarde pour absence de projet de plan
1505=>74, // Appel de jugement
1506=>59, // Rectif ou Annulation RJ
1507=>74, // Appel de jugement
1508=>7, // Extinction du plan de sauvegarde
1509=>7, // Extinction du plan de redressement
1510=>74, // Rejet du plan
1511=>7, // Résolution du plan de cession
1512=>7, // Résolution du plan de continuation
1513=>7, // Résolution du plan de sauvegarde
1515=>74, // Arrêt divers
1517=>59, // Rectification d'une erreur matérielle
1520=>7, // Ordonnance
1525=>74, // Appel du ministère public
1530=>7, // Jugement constatant l'impécuniosité de la procédure de liquidation
1540=>7, // Ordonnance statuant sur les contestations du projet de répartition
1541=>74, // Rétractation de prononcé de liquidation judiciaire sur tierce opposition
1542=>74, // Rétractation de jugement d'ouverture d'une procédure de sauvegarde sur tierce opposition
1543=>74, // Rétractation de jugement d'ouverture d'une procédure de redressement judiciaire sur tierce opposition
1544=>74, // Rétractation de jugement d'ouverture d'une procédure de liquidation judiciaire sur tierce opposition
1545=>74, // Rétractation de jugement d'ouverture sur tierce opposition
1546=>74, // Autre rétractation sur tierce opposition
1550=>7, // Suites de jugements
1580=>7, // Jugement prononçant la continuation de l'activité par apurement du passif
1600=>63, // Faillite personnelle
1601=>64, // Interdiction de gérer
1602=>7, // Jugement de réhabilitation
1603=>61, // Liquidation de Biens
1604=>8, // Banqueroute
1605=>7, // Jugement autorisant la reprise des poursuites individuelles
1610=>8, // Faillite personnelle (Loi de 1985)
1611=>8, // Interdiction de gérer (Loi de 1985)
1620=>7, // Jugement condamnant le dirigeant en comblement du passif
1650=>8, // Rétablissement Personnel
1700=>7, // Décision soumise à publicité
1900=>8, // Interdiction temporaire d'exercice de la profession de CAC
1901=>8, // Radiation de la liste des CAC
1999=>7, // Autre procédure collective
// MMD
2000=>4, // Mention d'office
2100=>39, // Chg.Capital/Cess.apport de parts
2101=>39, // Chg.Capital/Cess.apport de parts
2102=>39, // Chg.Capital/Cess.apport de parts
2200=>4, // Cessation d'activité
2201=>4, // Cessation d'activité temporaire
2202=>41, // Dissolution
2203=>41, // Dissolution de la société
2204=>41, // Cessation d'activité avec dissolution
2205=>4, // Fermeture du fonds
2206=>39, // Mise en sommeil de la société
2207=>39, // Suppression d'une branche d'activité
2208=>39, // Suppression de l'établissement principal
2209=>39, // Vente du fonds
2210=>39, // Déclaration de dissolution par l'associé unique.
2211=>39, // Clôture de la liquidation
2212=>39, // Liquidation amiable
2300=>39, // Changement d'Adresse
2301=>39, // Modification de l'adresse du siège
2302=>39, // Modification de l'enseigne
2303=>39, // Modification de la date de clôture de l'exercice
2304=>39, // Modification de la date de début d'activité
2305=>39, // Modification de la dénomination
2306=>39, // Modification de la durée de la société
2307=>39, // Modification de la forme juridique
2308=>39, // Modification du nom
2309=>39, // Modification du nom commercial
2310=>39, // Modification du pseudonyme
2311=>39, // Modification sur l'exploitation
2312=>39, // Modification(s) diverse(s)
2313=>39, // Modification de l'activité
2314=>39, // Poursuite de l'activité
2315=>39, // Modification de l'administration
2316=>39, // Mise en activité de la société
2317=>39, // Modification du sigle
2318=>39, // Modifications diverses
2319=>39, // Poursuite de l'activité malgré la perte de plus de...
2320=>39, // Reconsitution de l'actif net
2321=>39, // Reconsitution de la moitié de l'actif net
2350=>39, // Déclaration des associés (loi du 1er février 2005)
2401=>39, // Changement de régime matrimonial
2402=>39, // Changement de régime matrimonial (divorce)
2403=>39, // Changement de régime matrimonial (mariage)
2404=>39, // Changement de régime matrimonial (veuvage)
2405=>39, // Changement de régime matrimonial (contrat de maria...
2406=>39, // Reprise du fonds par le conjoint
2407=>39, // Mention du conjoint collaborateur
2408=>39, // Radiation du conjoint collaborateur
2500=>3, // Confirmation établissement principal ou secondaire
2510=>39, // L'établissement secondaire devient principal
2520=>39, // Extension de l'établissement principal
2600=>39, // Décès
2610=>39, // Décision de l'unique actionnaire
2620=>39, // Transmission universelle du patrimoine
2630=>39, // Donation/Partage
2635=>39, // Cession de parts
2639=>39, // Nantissement de parts sociales
2640=>39, // Changement de domicile personnel
2650=>39, // Changement de nationalité
2660=>39, // Réalisation de l'apport partiel d'actif
2661=>39, // Apport partiel
2700=>39, // Fusion/Absorption (entitée absorbante)
2701=>39, // Fusion/Absorption (Entitée absorbante. Entité abso...
2702=>39, // Fusion/Absorption (Entitée absorbante. Entité abso...
2703=>39, // Fusion/Absorption (Entitée absorbante. Entité abso...
2710=>39, // Projet de fusion (entitée absorbante)
2720=>39, // Fusion/Absorption (entitée absorbée)
2721=>39, // Fusion/Absorption (entitée absorbée non identifiée...
2725=>39, // Fusion/Absorption
2726=>39, // Projet de Fusion/Absorption
2730=>39, // Projet de fusion (entitée absorbée)
2740=>39, // Scission
2750=>39, // Société participation
2800=>37, // Location gérance reçue
2840=>38, // Location/Gérance
2850=>38, // Location gérance donnée : Précédent propriétaire e...
2851=>38, // Location gérance donnée : Précédent propriétaire
2860=>38, // Location gérance donnée : Précédent exploitant
2870=>38, // Location gérance donnée
2875=>38, // Gérance/Mandat
2880=>38, // Renouvellement de location gérance
2881=>38, // Changement de location gérance
2885=>42, // Fin de location gérance
2890=>38, // Location gérance relative à une branche
2891=>39, // Location gérance relative à un établissement
2892=>39, // Location gérance relative à un fond
2900=>32, // Transfert d'établissement
2901=>32, // Transfert de siège
2902=>32, // Transfert du fonds
2903=>32, // Projet de transfert du siège
2904=>32, // Transfert du siège à l'étranger
2950=>32, // Création de fonds
2980=>32, // Transfert entre tribunaux
// DEPOTS DES COMPTES
3100=>91,
3200=>91,
3300=>91,
3999=>91,
// CREATIONS
4000=>1, // Création d'entreprise
4050=>1, // Création d'entreprise sans activité
4100=>1, // Création d'entreprise sans établissement
4200=>17, // Création d'établissement
4250=>17, // Création suite à transfert
4300=>17, // Création suite à reprise d'activité
4350=>1, // Création suite à fin de location-gérance
4355=>1, // Création suite à prise en location-gérance
4360=>1, // Reprise d'activité par suite de la résolution de v
4400=>1, // Création suite à changement de FJ
4410=>1, // Création suite à héritage ou donation
4450=>1, // Création suite à reprise par le conjoint
4500=>17, // Fonds acquis dans le cadre d'une PC
4501=>17, // Fonds acquis par achat
4502=>17, // Fonds acquis par apport
4600=>1, // Immatriculation d'une société de droit européen
4999=>1, // Création
// ventes !!!
5500=>2, // Entreprise réalisant la vente
5501=>2, // Entreprise réalisant la vente : Ancien propriétair... BODA ventes 12 0000-00-00 00:00:00
5502=>2, // Entreprise réalisant la vente : Ancien propriétair... BODA ventes 12 0000-00-00 00:00:00
5503=>2, // Entreprise réalisant la vente : Ancien propriétair... BODA ventes 12 0000-00-00 00:00:00
5510=>2, // Entreprise réalisant la vente : Co-propriétaire BODA ventes 12 0000-00-00 00:00:00
5600=>2, // Entreprise réalisant l'acquisition BODA ventes 12 0000-00-00 00:00:00
5650=>2,
5700=>2, // Entreprise réalisant l'acquisition BODA ventes 12 0000-00-00 00:00:00
5999=>2,
// RADIATIONS
6000=>4, //Radiation pour cause de clôture de la liquidation (amiable/simplifié/général)
6001=>4, //Radiation pour cause de clôture de la liquidation amiable
6002=>4, //Radiation pour cause de clôture de la liquidation judiciaire pour IA
6003=>4, //Radiation pour cause de clôture de la liquidation judiciaire
6004=>4, //Radiation pour cause de clôture de la liquidation judiciaire simplifié
6005=>4, //Radiation pour clôture du plan de cession
6100=>4, //Radiation pour cause de décès
6200=>4, //Radiation pour cause de mention d'office
6201=>4, //Radiation pour cause de cessation d'activité
6300=>4, //Radiation pour cause de non-exercice
6400=>4, //Radiation pour cause de transfert
6500=>4, //Radiation pour cause de jugement de clôture du plan de cession
6600=>4, //Radiation d'un établissement
6700=>4, //Radiation
);
$tabEven2RO=array( 2305=>'a',
2308=>'a', // Chg de dénomination(RS,Ens,Sigle)
2309=>'a', // Modification du nom commercial BODB mmd 12 0000-00-00 00:00:00
2310=>'a', // Modification du pseudonyme
2300=>'b', // Changement d'Adresse
2301=>'b',
2900=>'b', // Transfert d'établissement
2901=>'b', // Transfert de siège
2902=>'b', // Transfert du fonds
2903=>'b', // Projet de transfert du siège
2904=>'b', // Transfert du siège à l'étranger
2950=>'b', // Création de fonds
2980=>'b', // Transfert entre tribunaux
2101=>'c', // Chg.Capital/Cess.apport de parts
2315=>'d', // Changement de Dirigeants
2313=>'e', // Mod Act/obj.soc./Cess./Mise somm.
2307=>'f', // Changement de Forme juridique
2318=>'g', // Opération sur Participations
2725=>'h', // Fusion Absorption
2318=>'i', // Mod.garantie financière/Caution
2401=>'j', // Changement de régime matrimonial
2319=>'k', // Non dissolution anticipée
2318=>'l', // Non dissolution anticipée
2318=>'m', // Dissolution anticipée (ou non)
2303=>'n', // Mod.date cloture exercice social
5500=>'V', // Entreprise réalisant la vente
5501=>'V', // Entreprise réalisant la vente : Ancien propriétair... BODA ventes 12 0000-00-00 00:00:00
5502=>'V', // Entreprise réalisant la vente : Ancien propriétair... BODA ventes 12 0000-00-00 00:00:00
5503=>'V', // Entreprise réalisant la vente : Ancien propriétair... BODA ventes 12 0000-00-00 00:00:00
5510=>'V', // Entreprise réalisant la vente : Co-propriétaire BODA ventes 12 0000-00-00 00:00:00
5600=>'V',
5650=>'V',
5700=>'A', // Entreprise réalisant l'acquisition BODA ventes 12 0000-00-00 00:00:00
1411=>'F', // Arrêt du plan de cession
1408=>'G', // Modification du plan de cession
1409=>'N', // Modification du plan de continuation
1414=>'M', // Arrêt du plan de redressement
);
function exporte($txt, $lon, $sep='') {
$txt=strtr(trim($txt),array('&#039;'=>"'",'&amp;'=>'&', '&sup2;'=>'²', "\r"=>'', "\n"=>'', "\t"=>''));
if ($sep=='') return sprintf("%-".$lon.'.'.$lon."s", $txt);
return trim(sprintf("%-".$lon.'.'.$lon."s", $txt)).$sep;
}
function conversionSd2So2000($nomFichierIn, $numeroAbonneBil='000960030', $nomFichierOut='', $optionFicheId='S') {
$message='';
$iDb=new WDB();
$iBodacc=new MBodacc();
$iInsee=new MInsee();
$iRncs=new MRncs();
global $tabEvenSolib;
global $tabEven2SO;
global $tabEven2RO;
$tabLignes=file($nomFichierIn);
//print_r($tabLignes);
//die();
$ligne001=$ligne100=$ligne104=$ligne999=0;
if ($nomFichierOut=='') $nomFichierOut=$nomFichierIn.'.bil';
$fp=fopen($nomFichierOut, 'w');
$dateJ=date('Ymd');
$ecrireLignePre=false;
/** Codes/Variables à gérer **/
$depPar=0;
$SOSTAE='';
$typeFicheId='I'; // Fiche Identifiant
$optExtInsee=$optScore=false;
/** Type de fiche Id **/
if (strpos($optionFicheId, 'S')==true) $typeFicheId='S'; // Fiche Standard
elseif (strpos($optionFicheId, 'C')==true) $typeFicheId='C'; // Fiche Complète
if (strpos($optionFicheId, 'E')==true) $optExtInsee=true; // Option Extension INSEE
if (strpos($optionFicheId, 'N')==true) $optScore=true; // Option Score
foreach ($tabLignes as $i=>$ligne) {
$typeLigne=substr($ligne, 0, 3)*1;
switch ($typeLigne) {
case 1: // Ligne ignorée
// Ecriture de l'entête
$ligne001++;
break;
case 100: // Structure Bodacc
case 999: // Fin
$strTxt=wordwrap($txtAnn, 39, EOL);
$tabTxt=explode(EOL, $strTxt);
foreach($tabTxt as $j=>$txt) {
$SOSEQ++;
if($j%16==0) {
// Type d'enregistrement 1=EntConf, 2=Rejet, 4=Multipropo, 5=Suivi MAJ Entrep, 7=Infos, 8=Envoi documen, 9=Annonce
$typEnr=9;
if ($j==0) $ligneTXT =initstr($SONABO, 9, '0', ALIGN_RIGHT); // Numéro d'abonné BIL ?
else $ligneTXT.=EOL.initstr($SONABO, 9, '0', ALIGN_RIGHT); // Numéro d'abonné BIL ?
$ligneTXT.=initstr($SONUME, 9, '0', ALIGN_RIGHT); // Numéro d'entreprise BIL ?
$ligneTXT.=initstr($SONUS, 9, '0', ALIGN_RIGHT); // Numéro d'UFS BIL ?
$ligneTXT.=initstr($nann, 9, '0', ALIGN_RIGHT); // Numéro d'annonce BIL ?
$ligneTXT.=initstr($siren, 9, '0', ALIGN_RIGHT); // Siren
$ligneTXT.=initstr($nic, 5, '0', ALIGN_RIGHT); // Nic
$ligneTXT.=exporte('SE', 2); // Code produit BIL ? SE, DE, DI, SJ
$ligneTXT.=initstr($SOSEQ, 5, '0', ALIGN_RIGHT); // Numéro dans la séquence
$ligneTXT.=initstr($dateJ, 8, '0', ALIGN_RIGHT); // Numéro dans la séquence
$ligneTXT.=exporte($typEnr, 1); // Type d'enregistrement 1=EntConf, 2=Rejet, 4=Multipropo, 5=Suivi MAJ Entrep, 7=Infos, 8=Envoi documen, 9=Annonce
$ligneTXT.=exporte('TXT', 3); // Structure identité
$ligneTXT.=exporte('A', 1); // Confirmation 'A'uto ou 'C' pour manuelle
$ligneTXT.=exporte($ref, 30); // Réf. Client
$ligneTXT.=exporte($SOORIG, 1); // 1:Insee actif, 2=Ufs, 3=Annonce, 4=Manuelle, 5=Asso, 7=RCS actif, 8=Insee cessa eco, 9=Insee/RCS radié
$ligneTXT.=exporte($SOJAL, 3); // 001=Bodacc A, 200=Bodacc B, 300=Bodacc C
$ligneTXT.=initstr($datePar, 8, '0', ALIGN_RIGHT); // Date de parution
$ligneTXT.=initstr(0, 5, '0', ALIGN_RIGHT); // Page
$ligneTXT.=exporte($codeEve, 2); //
$ligneTXT.=initstr($depPar, 2, '0', ALIGN_RIGHT);
$ligneTXT.=initstr($numAnn, 6, '0', ALIGN_RIGHT);
$ligneTXT.=exporte($codeRol, 1); //
$ligneTXT.=exporte('T', 1);
}
$ligneTXT.=exporte($txt, 40);
}
$codeEve=$codeRol='';
$ligneOut=$ligneID.EOL.$ligneANN.EOL.$ligneTXT;
if ($ligne100>1) $ecrireLignePre=true;
if($typeLigne==999) {
$ligne999++;
break;
}
$nann = trim(substr($ligne, 3 , 10 ))*1; // N° d'annonce
$siren = substr($ligne, 13 , 9 ); // Siren de l'entreprise concernée par l'annonce
$tabIdentite=@$iInsee->getIdentiteEntreprise($siren);
$nic = trim(substr($ligne, 22, 5 ))*1; // Nic
$ref = trim(substr($ligne, 71, 18 )); // Référence Client
$numPar = substr($ligne, 27 , 3 ); // Numéro de parution du Bodacc dans l'année
$bodacc = substr($ligne, 30 , 1 ); // Code Bodacc (A, B ou C) A, B ou C
$datePar= substr($ligne, 31 , 8 )*1; // Date de parution du Bodacc Format AAAAMMJJ
$numAnn = substr($ligne, 39 , 5 ); // Numéro de l'annonce dans le Bodacc
$typeAnn= substr($ligne, 47 , 1 ); // Type d'annonce Bodacc I=Insertion (publication d'une annonce), A=Additif (ajout à une précédente annonce), (1) R=Rectificatif (correction d'une annonce), S=Suppression d'une annonce
$corNumA= substr($ligne, 48 , 5 ); // Numéro de l'annonce corrigée Si annonce différent de Insertion
$corDate= substr($ligne, 53 , 8 ); // Date du Bodacc de l'annonce corrigée Si annonce différent de Insertion. Format AAAAMMJJ
$corPage= substr($ligne, 61 , 6 ); // Première page du Bodacc de l'annonce corrigée Si annonce différent de Insertion
$corNumP= substr($ligne, 67 , 4 ); // Numéro parution du Bodacc dans l'année de l'annonce corrigée Si annonce différent de Insertion
$numRC = trim(substr($ligne,95 , 9 )); // Numéro de RC (Registre du Commerce) de l'entreprise
$rs = trim(substr($ligne,104, 150 )); // Raison sociale de l'entreprise
$nomCom = trim(substr($ligne,254, 100 )); // Nom Commerciale
$ens = trim(substr($ligne,354, 100 )); // Enseigne
$fj = trim(substr($ligne,484, 4 ))*1; // FJ
$fjLib = trim(substr($ligne,488, 90 )); // FJ libellé
$capMnt = trim(substr($ligne,578, 15 )); // Capital
$capDev = trim(substr($ligne,593, 3 )); // Capital Devise
$adrNum = trim(substr($ligne,596, 4 )); //
$adrBtq = trim(substr($ligne,600, 1 )); // FJ libellé
$adrVoi = trim(substr($ligne,601, 5 )); // FJ libellé
$adrLib = trim(substr($ligne,606, 50 )); // FJ libellé
$adrL2 = trim(substr($ligne,656, 50 )); // FJ libellé
$adrL3 = trim(substr($ligne,706, 40 )); // FJ libellé
$adrCP = trim(substr($ligne,746, 5 ))*1; // FJ libellé
$adrVil = trim(substr($ligne,751, 45 )); // FJ libellé
if ($adrCP==0) {
$adrNum = trim(substr($ligne,796, 4 )); // FJ libellé
$adrBtq = trim(substr($ligne,800, 1 )); // FJ libellé
$adrVoi = trim(substr($ligne,801, 5 )); // FJ libellé
$adrLib = trim(substr($ligne,806, 50 )); // FJ libellé
$adrL2 = trim(substr($ligne,856, 50 )); // FJ libellé
$adrL3 = trim(substr($ligne,906, 40 )); // FJ libellé
$adrCP = trim(substr($ligne,946, 5 ))*1; // FJ libellé
$adrVil = trim(substr($ligne,951, 45 )); // FJ libellé
}
$even=array();
$even[7]= substr($ligne, 996 , 4 )*1; // Code Evènement Bodacc n°1 Cf. Table EVEN
$even[6]= substr($ligne, 1000, 4 )*1; // Code Evènement Bodacc n°2 Cf. Table EVEN
$even[5]= substr($ligne, 1004, 4 )*1; // Code Evènement Bodacc n°3 Cf. Table EVEN
$even[4]= substr($ligne, 1008, 4 )*1; // Code Evènement Bodacc n°4 Cf. Table EVEN
$even[3]= substr($ligne, 1012, 4 )*1; // Code Evènement Bodacc n°5 Cf. Table EVEN
$even[2]= substr($ligne, 1016, 4 )*1; // Code Evènement Bodacc n°6 Cf. Table EVEN
$even[1]= substr($ligne, 1020, 4 )*1; // Code Evènement Bodacc n°7 Cf. Table EVEN
$even[0]= substr($ligne, 1024, 4 )*1; // Code Evènement Bodacc n°8 Cf. Table EVEN
$txtEven='';
foreach ($even as $codeEven)
if ($codeEven<>0) {
if (@$codeEve=='') $codeEve=$tabEven2SO[$codeEven];
if (@$codeRol=='') $codeRol=$tabEven2RO[$codeEven];
$txtEven.=$iBodacc->getEvenement($codeEven).', ';
$catEven=$iBodacc->getChapitreEvenement($codeEven);
}
else
$txtEven.='';
$txtEven=substr($txtEven,0,strlen($txtEven)-2);
$dateCess= substr($ligne, 1136, 8 )*1; // Date de cessat° des paiements
$dateJuge= substr($ligne, 1144, 8 )*1; // Date de jugement
$dateEffet=substr($ligne, 1161, 8 )*1; // Date d'effet
if ($dateEffet*1==0) $dateEffet=$dateJuge;
$vteMnt=trim(substr($ligne, 1169, 15 ))*1; // Montant de la vente
$vteDev=substr($ligne, 1184, 3 ); // Devise de la vente
if ($nic*1==0) $nic=$tabIdentite['Nic'];
$SONABO=$numeroAbonneBil;
if ($tabIdentite['Actif']==1) $SOORIG=1;
elseif (!isset($tabIdentite['Actif'])) $SOORIG=3;
elseif ($tabIdentite['Actif']==0 && ($tabIdentite['EntActiveRCS']==1||$tabIdentite['EtabActifRCS']==1)) $SOORIG=7;
elseif ($tabIdentite['Actif']==0 && $tabIdentite['EntActiveRCS']==0 && $tabIdentite['EtabActifRCS']==0) $SOORIG=9;
else $SOORIG=8;
if ($tabIdentite['Civilite']==1) $SOTSEX='M';
elseif ($tabIdentite['Civilite']==2) $SOTSEX='F';
else $SOTSEX='';
$SONUME=''.preg_replace('/^0+/','', $tabIdentite['Source']).$tabIdentite['SourceId'];
$SONUS='000000000';
$SOSEQ=1;
if ($adrCP==0) {
$adrNum = $tabIdentite['AdresseNum'];
$adrBtq = $tabIdentite['AdresseBtq'];
$adrVoi = $tabIdentite['AdresseVoie'];
$adrLib = $tabIdentite['AdresseRue'];
$adrL2 = $tabIdentite['Adresse2'];
$adrL3 = '';
$adrCP = $tabIdentite['CP'];
$adrVil = $tabIdentite['Ville'];
}
$typEnr=1;
$DBILS2 =initstr($SONABO, 9, '0', ALIGN_RIGHT); // Numéro d'abonné BIL ?
$DBILS2.=initstr($SONUME, 9, '0', ALIGN_RIGHT); // Numéro d'entreprise BIL ?
$DBILS2.=initstr($SONUS, 9, '0', ALIGN_RIGHT); // Numéro d'UFS BIL ?
$DBILS2.=initstr($nann, 9, '0', ALIGN_RIGHT); // Numéro d'annonce BIL ?
$DBILS2.=initstr($siren, 9, '0', ALIGN_RIGHT); // Siren
$DBILS2.=initstr($nic, 5, '0', ALIGN_RIGHT); // Nic
$DBILS2.=exporte('SE', 2); // Code produit BIL ? SE, DE, DI, SJ
$DBILS2.=initstr($SOSEQ, 5, '0', ALIGN_RIGHT); // Numéro dans la séquence dans le groupe
$DBILS2.=initstr($dateJ, 8, '0', ALIGN_RIGHT); // Date d'envoi de l'info
$DBILS2.=exporte($typEnr, 1); // Type d'enregistrement 1=EntConf, 2=Rejet, 4=Multipropo, 5=Suivi MAJ Entrep, 7=Infos, 8=Envoi documen, 9=Annonce
$DBILS2.=exporte('ID', 3); // Structure identité
$DBILS2.=exporte('A', 1); // Confirmation 'A'uto ou 'C' pour manuelle
$DBILS2.=exporte($ref, 30); // Réf. Client
//($annonce['codePostalSiege'], 5, '0', ALIGN_RIGHT)
$DBILS2.=exporte($SOORIG, 1); // 1:Insee actif, 2=Ufs, 3=Annonce, 4=Manuelle, 5=Asso, 7=RCS actif, 8=Insee cessa eco, 9=Insee/RCS radié
$DBILS2.=exporte('', 1); // D=Siren douteux
$DBILS2.=exporte('', 9); // Témoin de MAJ
$DBILS2.=exporte($rs, 60); //
$DBILS2.=exporte(substr($rs,60),30); //
$DBILS2.=exporte($tabIdentite['Sigle'], 30); // Vide !
$DBILS2.=exporte($ens, 60); //
$DBILS2.=initstr($adrNum, 4, '0', ALIGN_RIGHT); //
$DBILS2.=exporte($adrBtq, 1); //
$DBILS2.=exporte(preg_replace('/ +/',' ',$adrVoi.' '.$adrLib), 33); //
$DBILS2.=exporte($adrVil, 32); //
$DBILS2.=initstr($adrCP, 5, '0', ALIGN_RIGHT); //
$DBILS2.=exporte(preg_replace('/ +/',' ',$adrL2.' '.$adrL3), 30); //
$DBILS2.=initstr($tabIdentite['DateCreaEn'], 8, '0', ALIGN_RIGHT); // Date créa ENT
$DBILS2.=exporte($tabIdentite['Siege'], 1); // Statut de l'établissement
$DBILS2.=initstr($tabIdentite['FJ'], 4, 0, ALIGN_RIGHT);
$DBILS2.=exporte($SOTSEX, 1); // Sexe M/F
$DBILS2.=initstr($tabIdentite['NbEtab']*1, 4, 0, ALIGN_RIGHT);
$DBILS2.=exporte($SOSTAE, 4); // NAF4 ENT
$DBILS2.=exporte('', 4); // Famille ENT
$DBILS2.=exporte($SOSTAE, 4); // NAF4 ETAB
$DBILS2.=exporte('', 4); // Famille ETAB
$DBILS2.=exporte('', 1); // Indicateur Procol
$DBILS2.=exporte('', 2); // Code monnaie
$DBILS2.=initstr(0, 13, '0', ALIGN_RIGHT); // Montant du capital
$DBILS2.=exporte('', 7); // Effectif
$DBILS2.=exporte('', 9); // Num RC
$DBILS2.=initstr(strtr($tabIdentite['Tel'],array('.'=>'','+'=>'00',' '=>'','-'=>'','/'=>'')), 10, '0', ALIGN_RIGHT);
$DBILS2.=initstr(strtr($tabIdentite['Fax'],array('.'=>'','+'=>'00',' '=>'','-'=>'','/'=>'')), 10, '0', ALIGN_RIGHT);
//5630Z5630Z RUE 00000000 00000000 2901929019
$DBILS2.=exporte($tabIdentite['Web'], 40);
$DBILS2.=exporte('', 3); // Qualité du dirigeant
$DBILS2.=exporte('', 60); // NOM, Prénom du dirigeant
$DBILS2.=initstr(0, 8, '0', ALIGN_RIGHT); // Date Naiss Diri
// $DBILS2.=exporte('', 79);
$DBILS2.=exporte('', 35); // Lieu de Naissance
if ($optScore) {
$tabTmp=$iDb->select('scores_surveillance',
'siren, actif, procol, indiScore, indiScore20, encours, indiScoreDate, dateBilan, indiScorePre, indiScore20Pre, encoursPre, indiScoreDatePre, sourceModif, nbModifs, dateUpdate',
"siren=$siren AND indiScoreDate>0", false, MYSQL_ASSOC);
if (@$tabTmp[0]['siren']*1==$siren) {
echo "$siren, parution Annonce le $datePar, calcul le ".@$tabTmp[0]['dateUpdate'].EOL;
$tabScore=$tabTmp[0];
$note=$tabScore['indiScore20'];
$encours=round($tabScore['encours']/1000);
} else {
echo "$siren, parution Annonce le $datePar, pas de calcul !".EOL;
$tabScore=@calculIndiScore($siren, $nic, false, 0, false);
$note=$tabScore['Indiscore20'];
$encours=round($tabScore['encours']/1000);
}
$encoursDev='EUR';
} else
$note=$encours=$encoursDev='';
$DBILS2.=initstr($note, 2, '0', ALIGN_RIGHT); //37 Note sur 20
$DBILS2.=initstr($encours, 7, '0', ALIGN_RIGHT); //44 Encours KE KF
$DBILS2.=exporte('', 1); //45 Code paiement
$DBILS2.=exporte('', 1); //46 Code situfi
$DBILS2.=exporte('', 1); //47 Code Avis
$DBILS2.=exporte($encoursDev,3); //47 Encours de la devise
$DBILS2.=exporte('', 6); // Code Sicovam
$DBILS2.=exporte('', 2); // Type de marché RM, CT, SM, HC, MO, NM, ML, AL, MR
$DBILS2.=exporte('', 12); // Code ISIN
$DBILS2.=exporte('', 9); // Filler Bil anciennement sur 83, 32 puis 9
$DBILS2.=exporte($tabIdentite['NafEnt'], 5);
$DBILS2.=exporte($tabIdentite['NafEtab'], 5);//
$DBILS2.=exporte('', 18); //60 Filler
$DBILS2.=exporte('', 4); // Filler RUE ?
$DBILS2.=exporte('', 5); // Nic source cible de l'étab
$DBILS2.=initstr(0, 8, '0', ALIGN_RIGHT); // Date de MAJ du capital
$DBILS2.=exporte('', 3); // Monnaie d'origine du capital
$DBILS2.=exporte('', 3); // Monnaie de livraison du capital (fin de l'ancien filler)
$DBILS2.=initstr(0, 8, '0', ALIGN_RIGHT); // Date de création de l'établissement
$DBILS2.=exporte('', 1); // Origine création
$DBILS2.=exporte('', 2); // Tr Eff Ent
$DBILS2.=exporte('', 2); // Tr Eff Etab
$DBILS2.=exporte('', 2); // NAP 40 Entrep
$DBILS2.=exporte('', 2); // NAP 40 Etab
$DBILS2.=exporte('', 5); // Act Artisanale Etab
$DBILS2.=exporte('', 1); // Modalité activité entrep
$DBILS2.=exporte('', 1); // Modalité activité etab
$DBILS2.=exporte('', 2); // Code Région Entrep
$DBILS2.=exporte('', 2); // Code Région Etab
$DBILS2.=exporte($tabIdentite['Dept'], 2); // Département du siège
$DBILS2.=exporte($tabIdentite['codeCommune'], 3); // Localité
$DBILS2.=exporte($tabIdentite['Dept'], 2); // Département de l'étab
$DBILS2.=exporte($tabIdentite['codeCommune'], 3); // Localité
$DBILS2.=exporte('', 1); // Dept Outre Mer
$DBILS2.=exporte('', 1); // Arrondissement
$DBILS2.=exporte('', 1); // Canton Dom ?
$DBILS2.=exporte('', 2); // Canton
$DBILS2.=exporte('', 8); // Code Ilot
$DBILS2.=exporte('', 2); // ZEMET
$DBILS2.=exporte('', 2); // Tranche Comm Etab
$DBILS2.=exporte('', 2); // Dept Unite urbaine
$DBILS2.=exporte('', 1); // Taille UU
$DBILS2.=exporte('', 2); // UU etab
$DBILS2.=exporte('', 5); // Code rivoli
$DBILS2.=exporte('', 2); // PPale région entrep
$DBILS2.=exporte('', 1); // Code monoreg
$DBILS2.=exporte('', 1); // Code monoact
$DBILS2.=exporte('', 1); // Code tranche CA
$DBILS2.=exporte('', 1); // Tranche part CA export
$DBILS2.=exporte('', 1); // RECME
$DBILS2.=exporte('', 1); // Ordinarité
$DBILS2.=exporte('', 2); // Code nature étab
$DBILS2.=exporte('', 2); // Sigularité étab
$ligneID=$DBILS2;
$ligne100++;
$cor='';
if ($typeAnn<>'I')
$cor=" - Annonce n°$corNumA $corNumP, page $corPage, du ".WDate::dateT('Ymd','d/M/Y',$corDate);
switch($typeAnn) {
case 'I': $cor='Insertion'.$cor; break;
case 'A': $cor='Additif'.$cor; break;
case 'R': $cor='Rectificatif'.$cor; break;
case 'S': $cor='Suppression'.$cor; break;
default: break;
}
$codeTri= substr($ligne, 89 , 6 ); // Code Tribunal Codification interne utilisée par le Bodacc
$libTri=$iBodacc->getTribunalNom($codeTri);
$SOSEQ++;
if ($bodacc=='A') $SOJAL='001';
elseif ($bodacc=='B') $SOJAL='200';
elseif ($bodacc=='C') $SOJAL='300';
else $SOJAL='999';
$DBILS2 =initstr($SONABO, 9, '0', ALIGN_RIGHT); // Numéro d'abonné BIL ?
$DBILS2.=initstr($SONUME, 9, '0', ALIGN_RIGHT); // Numéro d'entreprise BIL ?
$DBILS2.=initstr($SONUS, 9, '0', ALIGN_RIGHT); // Numéro d'UFS BIL ?
$DBILS2.=initstr($nann, 9, '0', ALIGN_RIGHT); // Numéro d'annonce BIL ?
$DBILS2.=initstr($siren, 9, '0', ALIGN_RIGHT); // Siren
$DBILS2.=initstr($nic, 5, '0', ALIGN_RIGHT); // Nic
$DBILS2.=exporte('SE', 2); // Code produit BIL ? SE, DE, DI, SJ
$DBILS2.=initstr($SOSEQ, 5, '0', ALIGN_RIGHT); // Numéro dans la séquence
$DBILS2.=initstr($dateJ, 8, '0', ALIGN_RIGHT); // Numéro dans la séquence
$DBILS2.=exporte('9', 1); // Type d'enregistrement 1=EntConf, 2=Rejet, 4=Multipropo, 5=Suivi MAJ Entrep, 7=Infos, 8=Envoi documen, 9=Annonce
$DBILS2.=exporte('ANN', 3); // Structure identité
$DBILS2.=exporte('A', 1); // Confirmation 'A'uto ou 'C' pour manuelle
$DBILS2.=exporte($ref, 30); // Réf. Client
//($annonce['codePostalSiege'], 5, '0', ALIGN_RIGHT)
$DBILS2.=exporte($SOORIG, 1); // 1:Insee actif, 2=Ufs, 3=Annonce, 4=Manuelle, 5=Asso, 7=RCS actif, 8=Insee cessa eco, 9=Insee/RCS radié
$DBILS2.=exporte($SOJAL, 3); // 001=Bodacc A, 200=Bodacc B, 300=Bodacc C
$DBILS2.=initstr($datePar, 8, '0', ALIGN_RIGHT); // Date de parution
$DBILS2.=initstr(0, 5, '0', ALIGN_RIGHT); // Page
if ($codeEve=='') {
$message.="Siren : $siren, Bodacc $bodacc, code évènement non géré : '$codeEven'".EOL;
/*$nann = trim(substr($ligne, 3 , 10 ))*1; // N° d'annonce
$siren = substr($ligne, 13 , 9 ); // Siren de l'entreprise concernée par l'annonce
$tabIdentite=@$iInsee->getIdentiteEntreprise($siren);
$nic = trim(substr($ligne, 22, 5 ))*1; // Nic
$ref = trim(substr($ligne, 71, 18 )); // Référence Client
$numPar = substr($ligne, 27 , 3 ); // Numéro de parution du Bodacc dans l'année
= substr($ligne, 30 , 1 ); // Code Bodacc (A, B ou C) A, B ou C
$datePar= substr($ligne, 31 , 8 )*1; // Date de parution du Bodacc Format AAAAMMJJ
$numAnn*/
sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Annonces Legales SOFID (ERREUR)", $message);
return $message;
}
$DBILS2.=exporte($codeEve, 2); //
$DBILS2.=initstr($depPar, 2, '0', ALIGN_RIGHT);
$DBILS2.=initstr($numAnn, 6, '0', ALIGN_RIGHT);
$DBILS2.=exporte($codeRol, 1); //
$DBILS2.=exporte($tabEvenSolib[$codeEve], 5);
$DBILS2.=exporte($codeTri, 6); //
$DBILS2.=exporte($numPar, 3); //
$DBILS2.=initstr($dateJuge, 8, '0', ALIGN_RIGHT); // Date de jugement
$DBILS2.=initstr($dateEffet, 8, '0', ALIGN_RIGHT); // Date d'effet
$DBILS2.=initstr($dateCess, 8, '0', ALIGN_RIGHT); // Date de cessat° des paiements
$DBILS2.=exporte($vteDev, 2); // Devise de la vente
$DBILS2.=initstr($vteMnt, 11, '0', ALIGN_RIGHT); // Montant de la vente
$DBILS2.=exporte('', 33); // Particularité
$DBILS2.=exporte('', 4); // Code rubrique du Bodacc A1xx
$DBILS2.=exporte('', 6); // Code lib injecté
$tabJuge=$iRncs->getIntervenants($siren);
foreach ($tabJuge as $iDepot=>$depot) {
$DBILS2.=exporte($depot['admid'], 5); // Mot clé Nom
$DBILS2.=exporte($depot['admtype'], 1); // Type officier ministeriel
$DBILS2.=initstr($depot['admid'], 7, '0', ALIGN_RIGHT); // Code Bil
$DBILS2.=exporte($depot['admnom'], 30); // Nom syndic
$DBILS2.=initstr($depot['admadrNum'], 4, '0', ALIGN_RIGHT); // N° rue
$DBILS2.=exporte($depot['admadrInd'], 1); // Bis
$DBILS2.=exporte($depot['admadrType'], 3); // Type Voie
$DBILS2.=exporte($depot['admadrVoie'], 33); // Lib Voie
$DBILS2.=exporte($depot['admadr2'], 32); // Lieu
$DBILS2.=exporte($depot['admadrCP'], 5); // CP
$DBILS2.=exporte($depot['admadrVille'], 32); // Ville
$DBILS2.=exporte('', 10); // Tel
if ($iDepot==1) break;
}
$ligneANN=$DBILS2;
$txtAnn='';
//if ($ligne100>1) $ecrireLignePre=true;
break;
case 104: // Annonce
$ligne104++;
$txtAnn=trim($txtAnn.' '.trim(substr($ligne, 89 , 1910))); // Texte Annonce
break;
default: // Ligne non gérée
break;
}
if ($ecrireLignePre) {
fwrite($fp, $ligneOut.EOL);
$ecrireLignePre=false;
}
}
fclose($fp);
return true;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,456 +0,0 @@
<?
require_once 'framework/common/curl.php';
define('HOST_INSEE', 'avis-situation-sirene.insee.fr');
define('SITE_INSEE', 'http://'. HOST_INSEE .'/');
class MSirene {
private $response1;
function __construct() {
/** Etape de connexion au site de l'INSEE pour simuler correctement un utilisateur WEB
**/
$this->response1=getUrl(SITE_INSEE,'','','',false,HOST_INSEE);
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'SIRENET_Script/Accueil/script_page_accueil.asp',false, HOST_INSEE);
$response=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren',false, HOST_INSEE);
$response=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren',false, HOST_INSEE);
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_haut.asp?grille=siren&action=nouvelle', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren',false, HOST_INSEE);
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren',false, HOST_INSEE);
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_bas.asp?grille=siren&action=nouvelle', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren',false, HOST_INSEE);
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_haut.asp?grille=siren&action=nouvelle', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle',false, HOST_INSEE);
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_bas.asp?grille=siren&action=nouvelle', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle',false, HOST_INSEE);
//sleep(1);
}
/**
* Récupère les informations relatives à un établissement et son entreprise (par défaut le siège si pas de NIC)
*
* @param unknown_type $sirenLu
* @param unknown_type $nicLu
*/
function getInfoEtab($sirenLu, $nicLu='') //if ($argv[1]=='id' || $argv[1]=='pj')
{
$tabRet=array();
/** Paramètre de requête "option" à l'insee :
** 1: Fiche du siège + Données entreprises
** 2: Tous les établissements de l'entreprise
** 3: Un établissement particulier
** 4: Département
**/
if ($nicLu<>'') $option=3;
else $option=1;
// Requête d'interrogation
$postData=array('siren'=>$sirenLu,
'option'=>$option,
'nic'=>$nicLu,
'dep'=>'',
'listeDep'=>'');
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false', $this->response1["header"]["Set-Cookie"], $postData, SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle',false, HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/question.asp?action=nouveau', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false',false,HOST_INSEE);
if ($responseQ['code']==302)
{
//$libelleErreur='Erreur INSEE inconnue 1';
// Siren Invalide ou autre erreur non répertoriée !
$header=$responseQ['header'];
if (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur')
{
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false',false,HOST_INSEE);
$responseErreur=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Erreur_principal.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur',false,HOST_INSEE);
$pos=strpos($responseErreur['body'], '<td valign=top bgcolor="#FFCC33"><font face=Arial size=2><b>');
if ($pos>0){
$posFin=strpos($responseErreur['body'], '</b></font></td>', $pos+60);
$libelleErreur=trim(substr($responseErreur['body'], $pos+60, $posFin-($pos+60)));
} else
$tabRet['erreur']='Erreur INSEE inconnue';
}
else
{ if (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege')
// L'établissement demandé est un siège !
$option=1;
if ($option==3)
{
// On déroule les URLs d'appels établissement
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false',false,HOST_INSEE);
//sleep(1);
// Frames réponse niveau Etab
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement',false,HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement',false,HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement',false,HOST_INSEE);
$responseEtab=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=etablissement', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement', false,HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=etablissement', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement',false,HOST_INSEE);
$responseEtab=$responseEtab['body'];
// On recherche si on est bien sur un fiche établissement
$pos=strpos($responseEtab, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche Etablissement</B>');
if ($pos<1)
$tabRet['erreur']='Erreur SCRIPT Fiche Etablissement non trouvée';
$responseSiege=$responseEtab;
}
else
{
// On déroule les URLs d'appels Sièges
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false',false,HOST_INSEE);
//sleep(1);
// Frames réponse niveau sièges
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege',false,HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege',false,HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege',false,HOST_INSEE);
$responseSiege=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=siege', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege', false,HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=siege', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege',false,HOST_INSEE);
$responseSiege=$responseSiege['body'];//strip_tags(html_entity_decode(), '<td>');
// On recherche si on est bien sur un fiche siège
$pos=strpos($responseSiege, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche siège</B>');
if ($pos<1)
$tabRet['erreur']='Erreur SCRIPT Fiche Siège non trouvée';
}
// Niveau entreprise
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=siege',false,HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail',false,HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=entreprise',false,HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail',false,HOST_INSEE);
$responseEntreprise=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=entreprise', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail', false,HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=entreprise', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail',false,HOST_INSEE);
$responseEntreprise=$responseEntreprise['body'];
$pos=strpos($responseEntreprise, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche Entreprise</B>');
if ($pos<1) {
$tabRet['erreur']='Erreur SCRIPT Fiche Entreprise non trouvée';
}
/** Recherche des données établissement
**/
$tabRet['etablissement']=$this->getDataEtablissement($responseSiege);
/** Recherche des données entreprise
**/
$tabRet['entreprise']=$this->getDataEntreprise($responseEntreprise);
return $tabRet;
}
}
}
/**
* Récupère la liste de tous les établissements d'une entreprise
*
* @param unknown_type $sirenLu
*/
function getListeEtabs($sirenLu)
{
// Requête d'interrogation
$postData=array('siren'=>$sirenLu,
'option'=>2,
'nic'=>'',
'dep'=>'',
'listeDep'=>'');
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false', $this->response1["header"]["Set-Cookie"], $postData, SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle', false, HOST_INSEE);
$action='nouveau';
$referer=SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false';
$nbRepTot=$pageCour=$nbTotPage=$nbRepParPage=$numEtab=0;
$tabInfoEtab=array();
$tabRet=array();
while(true)
{
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/question.asp?action='.$action, $this->response1["header"]["Set-Cookie"], '', $referer, false, HOST_INSEE);
if ($responseQ['code']==302)
{
//$libelleErreur='Erreur INSEE inconnue 1';
// Siren Invalide ou autre erreur non répertoriée !
$header=$responseQ['header'];
if (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur')
{
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false', false, HOST_INSEE);
$responseErreur=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Erreur_principal.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur', false, HOST_INSEE);
$pos=strpos($responseErreur['body'], '<td valign=top bgcolor="#FFCC33"><font face=Arial size=2><b>');
if ($pos>0){
$posFin=strpos($responseErreur['body'], '</b></font></td>', $pos+60);
$libelleErreur=trim(substr($responseErreur['body'], $pos+60, $posFin-($pos+60)));
} else
$libelleErreur='Erreur INSEE inconnue';
}
// On déroule les URLs d'appels liste des établissements
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false', false, HOST_INSEE);
//sleep(1);
// Frames réponse niveau Etab
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste', false, HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste', false, HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste', false, HOST_INSEE);
$responseListe=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Liste_principal.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste', false, HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Liste_bas.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste', false, HOST_INSEE);
$responseListe=$responseListe['body'];
$pos=strpos($responseListe, 'Nombre total de réponses&nbsp;:&nbsp;'."\r\n\t\t\t".'<font face="Arial" size="2"><b>');
if ($pos>0) {
$posFin=strpos($responseListe, '</b></font>', $pos+73);
$nbRepTot=trim(substr($responseListe, $pos+73, $posFin-($pos+73)));
}
$pos=strpos($responseListe, '&nbsp;-&nbsp;Affichage de la page&nbsp;'."\r\n\t\t\t".'<font face="Arial" size="2"><b>');
if ($pos>0) {
$posFin=strpos($responseListe, '&nbsp;-&nbsp;</b></font>', $pos+75);
$strPages=trim(substr($responseListe, $pos+75, $posFin-($pos+75)));
$tabPages=explode('&nbsp;/&nbsp;', $strPages);
$pageCour=$tabPages[0];
$nbTotPage=$tabPages[1];
}
$pos=strpos($responseListe, '&nbsp;-&nbsp;</b></font>'."\r\n\t\t\t".'<font face="Arial" size="2"><b>');
if ($pos>0) {
$posFin=strpos($responseListe, '</b></font>', $pos+60);
$nbRepParPage=trim(substr($responseListe, $pos+60, $posFin-($pos+60)));
}
/* TODO = Récupérer les infos étab + entrep pour chaque ligne du tableau !!!*
*/
if ($libelleErreur=='Erreur SCRIPT Inconnue')
$libelleErreur='';
for ($i=1;$i<11; $i++)
{
if ($numEtab==$nbRepTot)
break; // Il n'y a pas plus d'établissement à récupérer ! On sort...
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/question.asp?action=detail&numtableau='.$i, $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Liste_principal.asp', false, HOST_INSEE);
if ($responseQ['code']==302)
{
// Siren Invalide ou autre erreur non répertoriée !
$header=$responseQ['header'];
if (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=siege&numtableau='.$i)
{
// On déroule les URLs d'appels fiche siège
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege&numtableau='.$i, $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false', false, HOST_INSEE);
//sleep(1);
// Frames réponse niveau Etab
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege', false, HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege', false, HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege', false, HOST_INSEE);
$responseEtab=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=siege&numtableau='.$i.'&origine=liste', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=siege&numtableau='.$i, false, HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=siege&numtableau='.$i.'&origine=liste', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=siege&numtableau='.$i, false, HOST_INSEE);
$responseEtab=$responseEtab['body'];
// Récupération de la fiche entreprise INSEE
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i, $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=siege&numtableau='.$i.'&origine=liste', false, HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i, false, HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i, false, HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i, false, HOST_INSEE);
$responseEntreprise=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=entreprise&numtableau='.$i.'&origine=liste', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/Frame_Reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i, false, HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=entreprise&numtableau='.$i.'&origine=liste', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/Frame_Reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i, false, HOST_INSEE);
$responseEntreprise=$responseEntreprise['body'];
}
elseif (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=etablissement&numtableau='.$i)
{
// On déroule les URLs d'appels établissement
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement&numtableau='.$i, $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false', false, HOST_INSEE);
//sleep(1);
// Frames réponse niveau Etab
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement', false, HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement', false, HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement', false, HOST_INSEE);
$responseEtab=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=etablissement&numtableau='.$i.'&origine=liste', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=etablissement&numtableau='.$i, false, HOST_INSEE);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=etablissement&numtableau='.$i.'&origine=liste', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=etablissement&numtableau='.$i, false, HOST_INSEE);
$responseEtab=$responseEtab['body'];
}
$tabRet['etablissements'][$numEtab]=$this->getDataEtablissement($responseEtab);
$tabRet['entreprise']=$this->getDataEntreprise($responseEntreprise);
if ($libelleErreur<>'' && $tabInfoEtab['siret'] =='') $siret=$sirenLu . $nicLu;
else $siret=$tabInfoEtab['siret'];
/*$str= date('d/m/Y à H:i:s') .';'.
$libelleErreur .';'.
// Siège
$siret .';'.
$tabInfoEtab['active'] .';'.
$tabInfoEtab['dateAbsActivite'] .';'.
$tabInfoEtab['typeEtablissement'] .';'.
$tabInfoEtab['dateMAJ'] .';'.
$tabInfoEtab['dateCreation'] .';'.
$tabInfoEtab['raisonSociale'] .';'.
$tabInfoEtab['Enseigne'] .';'.
$tabInfoEtab['NafCode'] .';'.
$tabInfoEtab['NafLib'] .';'.
$tabInfoEtab['AdresseLigne1'] .';'.
$tabInfoEtab['AdresseLigne2'] .';'.
$tabInfoEtab['AdresseLigne3'] .';'.
$tabInfoEtab['etatJuridique'] .';'.
$tabInfoEtab['dateEtatJuridique'] .';'.
// Entreprise
$tabInfoEntrep['dateCreationEntrep'] .';'.
$tabInfoEntrep['raisonSocialeEntrep'] .';'.
$tabInfoEntrep['sigle'] .';'.
$tabInfoEntrep['NafCodeEntrep'] .';'.
$tabInfoEntrep['NafLibEntrep'] .';'.
$tabInfoEntrep['FJCodeEntrep'] .';'.
$tabInfoEntrep['FJLibEntrep'] .';'.
$tabInfoEntrep['nbEtabActifs'] .';';
*/
//fwrite($fpOUT, $str."\r\n");
$numEtab++;
$num=$key+1;
$typeEtablissement=$tabInfoEtab['typeEtablissement'];
//echo "Question $num/$nbLignes : Demande=$sirenLu$nicLu Etablissement $numEtab/$nbRepTot $typeEtablissement=$siret $libelleErreur\r\n";
flush();
sleep(1);
}//end for
}//end if
if ($pageCour==$nbTotPage) {
// On sort de la boucle de passage à la page de liste suivante car il n'y a plus d'autres pages
break;
} else {
$action='listeplus';
$referer=SITE_INSEE .'REPERTOIRE/Reponse/Liste_principal.asp';
}
}
} //Fin While
return $tabRet;
}
private function getDataEtablissement($pageHtml)
{
global $libelleErreur;
$responseSiege=$pageHtml;
$tabRet=array();
// On recherche si on est sur un établissement siège ou secondaire
$pos=strpos($pageHtml, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche Etablissement</B>');
if ($pos>0)
$tabRet['typeEtablissement']='secondaire';
$pos=strpos($pageHtml, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche siège</B>');
if ($pos>0)
$tabRet['typeEtablissement']='siège';
// Recherche Dernière MAJ / Activité
$pos=strpos($responseSiege, '<font face="Arial" size="2">(dernière mise à jour :');
if ($pos>0) {
$tabRet['dateMAJ']=substr($responseSiege, $pos+51, 10);
$tabRet['dateAbsActivite']='';
$tabRet['active']='O';
} else {
$tabRet['active']='N';
$tabRet['dateMAJ']='';
$pos=strpos($responseSiege, '<font face="Arial" size="2">Absence&nbsp;d\'activité notée&nbsp;le&nbsp;:&nbsp;');
if ($pos>0) $tabRet['dateAbsActivite']=substr($responseSiege, $pos+78, 10);
else {
$pos=strpos($responseSiege, '<font face="Arial" size="2">Absence&nbsp;d\'activité');
if ($pos>0) $tabRet['dateAbsActivite']='';
}
}
$pos=strpos($responseSiege, ' size="-1"> <B>n°&nbsp;SIRET&nbsp;:</B></FONT></td><td valign="top"><font face="Arial" size="-1">');
$tabRet['siret']=str_replace(' ', '', html_entity_decode(substr($responseSiege, $pos+97, 32)));
$pos=strpos($responseSiege, 'size="-1"> <B>Date&nbsp;de&nbsp;création&nbsp;:</B></FONT></td><td valign="top"><font face="Arial" size="-1">');
if ($pos>0) {
$posFin=strpos($responseSiege, '</font>', $pos+109);
$tabRet['dateCreation']=str_replace(' ', '', html_entity_decode(substr($responseSiege, $pos+109, $posFin-($pos+109))));
}
else $tabRet['dateCreation']='';
$pos=strpos($responseSiege, ' size="-1"> <B>Raison sociale et Enseigne&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$len=127;
if ($pos==0){
$pos=strpos($responseSiege, ' size="-1"> <B>Raison sociale et Enseigne&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$len=122;
if ($pos==0){
$pos=strpos($responseSiege, ' size="-1"> <B>Raison sociale et Enseigne&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$len=126;
$libelleErreur='Informations INSEE non diffusables';
}
}
if ($libelleErreur=='') {
//LARGE*DOMINIQUE MICHEL/ <BR>GERANT SARL BIMAGIQUE &nbsp;</font>
$posFin=strpos($responseSiege, '</font>', $pos+$len);
$raisonSocialeStr=trim(substr($responseSiege, $pos+$len, $posFin-($pos+$len)));
$raisonSocialeTabLigne=explode('<BR>', $raisonSocialeStr);
$tabRet['raisonSociale']=trim(str_replace(' ', '', html_entity_decode($raisonSocialeTabLigne[0])));
$tabRet['Enseigne']=trim(str_replace(' ', '', html_entity_decode(@$raisonSocialeTabLigne[1])));
$pos=strpos($responseSiege, ' size="-1"> <B>Activité&nbsp;principale&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$tabRet['NafCode']=substr($responseSiege, $pos+120, 4);
$tabRet['NafLib']=trim(substr($responseSiege, $pos+137, 70));
$pos=strpos($responseSiege, ' size="-1"> <B>Adresse&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$posFin=strpos($responseSiege, '</font>', $pos+103);
$AdresseStr=substr($responseSiege, $pos+103, $posFin-($pos+103));
$AdresseTabLigne=explode('<BR>', $AdresseStr);//'
$tabRet['AdresseLigne1']=str_replace('&nbsp;', '/', $AdresseTabLigne[0]);
$tabRet['AdresseLigne2']=str_replace('&nbsp;', '/', $AdresseTabLigne[1]);
$tabRet['AdresseLigne3']=str_replace('&nbsp;', '/', $AdresseTabLigne[2]);
/*
$AdresseNum=$AdresseTabLigne1[0];
$AdresseVoi=$AdresseTabLigne1[1];
$AdresseRue=$AdresseTabLigne1[2];
$AdresseCP=$AdresseTabLigne2[0];
$AdresseVille=$AdresseTabLigne2[1];
*/
$pos=strpos($responseSiege, '<font face="Arial" size="-1"><b>L\'entreprise&nbsp;est&nbsp;connue&nbsp;au&nbsp;répertoire&nbsp;comme&nbsp;');
if ($pos>0) {
$posFin=strpos($responseSiege, '</b>', $pos+106);
$tabRet['etatJuridique']=html_entity_decode(substr($responseSiege, $pos+106, $posFin-($pos+106)));
$tabRet['dateEtatJuridique']='';
} else {
$pos=strpos($responseSiege, '<font face="Arial" size="-1"><b>L\'entreprise&nbsp;est&nbsp;cessée&nbsp;le&nbsp;:&nbsp;');
$tabRet['dateEtatJuridique']=substr($responseSiege, $pos+86, 10);
$tabRet['etatJuridique']='cessée';
}
//echo 'GetDataEtab="'.$libelleErreur."\"\r\n";
return $tabRet;
}
}
private function getDataEntreprise($pageHtml)
{
global $libelleErreur;
$responseEntreprise=$pageHtml;
$tabRet=array();
if ($libelleErreur=='') {
$pos=strpos($responseEntreprise, 'size="-1"> <B>Date&nbsp;de&nbsp;création&nbsp;:</B></FONT></td><td valign="top"><font face="Arial" size="-1">');
if ($pos>0)
$tabRet['dateCreationEntrep']=substr($responseEntreprise, $pos+109, 10);
else
$tabRet['$dateCreationEntrep']='';
// Raison sociale et Sigle
$pos=strpos($responseEntreprise, ' size="-1"> <B>Raison sociale et Sigle&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$posFin=strpos($responseEntreprise, '</font>', $pos+123);
$raisonSocialeStr=trim(substr($responseEntreprise, $pos+123, $posFin-($pos+123)));
$raisonSocialeTabLigne=explode('<BR>', $raisonSocialeStr);
$tabRet['raisonSocialeEntrep']=trim(str_replace(' ', '', html_entity_decode($raisonSocialeTabLigne[0])));
$tabRet['sigle']=trim(str_replace(' ', '', html_entity_decode(@$raisonSocialeTabLigne[1])));
// Activité prinicpale Entrep
$pos=strpos($responseEntreprise, ' size="-1"> <B>Activité&nbsp;principale&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$tabRet['NafCodeEntrep']=substr($responseEntreprise, $pos+120, 4);
$tabRet['NafLibEntrep']=trim(substr($responseEntreprise, $pos+137, 70));
// Forme Juridique
$pos=strpos($responseEntreprise, ' size="-1"> <B>Forme&nbsp;juridique&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$tabRet['FJCodeEntrep']=substr($responseEntreprise, $pos+116, 4);
$tabRet['FJLibEntrep']=trim(substr($responseEntreprise, $pos+133, 70));
// Nb Etab Actifs
$tabRet['nbEtabActifs']=trim(str_replace(' ', '', html_entity_decode(@getTextInHtml($responseEntreprise, '<B>Nb&nbsp;établissements&nbsp;actifs&nbsp;:</B>', '<font face="Arial" size="-1">', '</font>'))));
}
return $tabRet;
}
}
?>

View File

@ -1,194 +0,0 @@
<?php
ini_set('soap.wsdl_cache_enabled', 0);
ini_set('default_socket_timeout', 30);
class MAmabis {
private $client;
function __construct()
{
$this->client = new SoapClient(null, array(
'location' => 'http://sw2.amabis.com:5100/',
'uri' => 'http://www.amabis.com/ns.xsd',
'connection_timeout' => 2,
'soap_version' => SOAP_1_1,
'trace' => 1,
'style' => SOAP_RPC,
'use' => SOAP_ENCODED,
));
}
function getZonage($adrNum, $adrIndRep, $adrTypeVoie, $adrLibVoie, $cp, $ville='', $codeRivoli='', $rnvp=false, $raisonSociale='TEST', $debug=false) {
$tabRep=array();
if (!$rnvp) {
if ($cp<10000) $cp='0'.$cp;
$dep2=substr($cp,0,2)*1;
$dep3=substr($cp,0,3)*1;
switch ($dep2) {
case 0:
case 5:
case 9:
case 15:
case 19:
case 23:
case 32:
case 46:
case 48:
case 82:
case 97: // DOM
case 98: // TOM
case 99: // Etranger
return $tabRep;
break;
default:
//if ($dep3==975) return $tabRep;
break;
}
}
$iDb=new WDB();
$adresse=addslashes(trim(preg_replace('/ +/',' ', "$adrNum $adrIndRep $adrTypeVoie $adrLibVoie")));
$ville=addslashes($ville);
$ret=$iDb->select( 'zonage', 'zus, zru, zfu, cucs', "address='$adresse' AND adr_cp='$cp' AND adr_ville='$ville'",false, MYSQL_ASSOC);
if (count($ret)>0) {
$zones=$ret[0];
$tabRep['ZUS']=$tabRep['ZFU']=$tabRep['ZRU']=$tabRep['CUCS']='NON';
if (trim($zones['zus'])<>'') {
if (trim($zones['zus'])=='NSP') $tabRep['ZUS']='NSP';
else $tabRep['ZUS']='OUI';
$tabRep['NZUS']=$zones['zus'];
}
if (trim($zones['zru'])<>'') {
if (trim($zones['zru'])=='NSP') $tabRep['ZRU']='NSP';
else $tabRep['ZRU']='OUI';
$tabRep['NZRU']=$zones['zru'];
}
if (trim($zones['zfu'])<>'') {
if (trim($zones['zfu'])=='NSP') $tabRep['ZFU']='NSP';
else $tabRep['ZFU']='OUI';
$tabRep['NZFU']=$zones['zfu'];
}
if (trim($zones['cucs'])<>'') {
if (trim($zones['cucs'])=='NSP') $tabRep['CUCS']='NSP';
else $tabRep['CUCS']='OUI';
$tabRep['NCUCS']=$zones['cucs'];
}
//return $tabRep;
} else {
try {
if (trim($raisonSociale)=='') $raisonSociale='TEST'; // Le RNVP ne fonctionne pas sans la Raison Sociale qui est la 1ère ligne d'adresse
$rep=$this->client->zonage( new SoapParam(strtr("$raisonSociale:$adresse:$cp:$ville",
'¿°ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ??',
' aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr'),'adresse'),
new SoapParam(':','separateur'),
new SoapParam('type=M','options')
);
/*$rep=$this->client->zonage( "<adresse></adresse>".
"<separateur>:</separateur>".
"<options>type=M</options>");*/
/** Découpage des ZFU, CUCS etcs...
**/
$fp=fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s').' - '.implode("\n", $rep)."\n============================================================================\n");
fclose($fp);
$tabZones=explode(',',$rep['zonage']); // ZUS=OUI,NZUS=1127020,ZFU=OUI,NZFU=11270ZF,CUCS=OUI,NCUCS=1127020
foreach ($tabZones as $zone) {
$tabTmp=explode('=',$zone);
if (trim($tabTmp[0])<>'')
$tabRep[$tabTmp[0]]=$tabTmp[1];
}
if ($tabRep['ZUS']=='NSP') $tabRep['NZUS']='NSP';
if ($tabRep['ZRU']=='NSP') $tabRep['NZRU']='NSP';
if ($tabRep['ZFU']=='NSP') $tabRep['NZFU']='NSP';
if ($tabRep['CUCS']=='NSP') $tabRep['NCUCS']='NSP';
$adresse=stripslashes(trim(preg_replace('/ +/',' ', "$adrNum $adrIndRep $adrTypeVoie $adrLibVoie")));
$ville=stripslashes($ville);
$tabInsert=array( 'address'=>$adresse,
'adr_cp'=>$cp,
'adr_ville'=>$ville,
'zus'=>$tabRep['NZUS'],
'zru'=>$tabRep['NZRU'],
'zfu'=>$tabRep['NZFU'],
'cucs'=>$tabRep['NCUCS'],
'adrNum'=>$adrNum,
'adrIndRep'=>$adrIndRep,
'adrTypeVoie'=>$adrTypeVoie,
'adrLibVoie'=>$adrLibVoie,
'rivoli'=>$codeRivoli,
);
$iDb->insert('zonage', $tabInsert);
/** Autres Informations de la RNVP
**/
if ($rnvp || $debug) {
$tabRepTmp=array();
$tabZones=explode(',',$rep['objdesc']);
foreach ($tabZones as $zone) {
$tabTmp=explode('=',$zone);
if (trim($tabTmp[0])<>'')
$tabRepTmp[$tabTmp[0]]=$tabTmp[1];
}
if (!$debug) {
$tabRep['ADR1']=@$tabRepTmp['ADR1'];
$tabRep['ADR2']=@$tabRepTmp['ADR2'];
$tabRep['ADR3']=@$tabRepTmp['ADR3'];
$tabRep['ADR4']=@$tabRepTmp['ADR4'];
$tabRep['ADR5']=@$tabRepTmp['ADR5'];
$tabRep['ADR6']=@$tabRepTmp['ADR6'];
$tabRep['ADR7']=@$tabRepTmp['ADR7'];
} else {
$tabRep=array_merge($tabRep, $tabRepTmp);
}
}
} catch (SoapFault $fault) {
echo 'ERREUR SOAP :'.EOL;
print_r($fault);
echo $this->client->__getLastRequest()."\n";
echo $this->client->__getLastResponse()."\n";
$fp=fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s').' - ERREUR SOAP : Requete = '.$this->client->__getLastRequest()."\n Reponse = ".$this->client->__getLastResponse()."\n============================================================================\n");
fclose($fp);
}
//return $tabRep;
}
$codeInsee=substr($codeRivoli,0,5);
$ret=$iDb->select( 'zonageInsee', 'typeZone, arreteDate, decretDate, decretNum, decretModifieDate, decretModifieNum, dateDebut, dateFin', "codeInsee='$codeInsee'",false, MYSQL_ASSOC);
$tabRep['ZRR']=$tabRep['AFR']='NON';
foreach ($ret as $zones)
switch ($zones['typeZone']) {
case 'ZRR': $tabRep['ZRR']='OUI'; $tabRep['NZRR']=$codeInsee; break;
case 'ZAFR': $tabRep['AFR']='OUI'; $tabRep['NAFR']=$codeInsee; break;
default: break;
}
return $tabRep;
}
function searchByTelFax($tel) {
return $this->getTelFax('','','','',$tel);
}
function getTelFax($nom, $cp, $ville='', $prenom='', $tel='') {
if (trim($tel)<>'')
$query="<telep>$tel</telep><scoremini>10</scoremini><distinction>30</distinction>";
elseif (trim($prenom)=='')
$query="<rs>$nom</rs><cpville>$cp $ville</cpville><scoremini>90</scoremini><distinction>30</distinction>";
else
$query="<nom>$nom</nom><prenom>$prenom</prenom><cpville>$cp $ville</cpville><scoremini>90</scoremini><distinction>30</distinction>";
$rep=$this->client->rechtel($query);
$fp=fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s')." - $query - ".implode("\n", $rep)."\n============================================================================\n");
fwrite($fp, "Requête : ".$this->client->__getLastRequest()."\n");
fwrite($fp, "Réponse : ".$this->client->__getLastResponse()."\n");
fclose($fp);
}
}
?>

View File

@ -1,308 +0,0 @@
<?
define ('ARTISANAT_DISPO_WEB', 1);
include_once(FWK_PATH.'common/curl.php');
class MArtisanat {
public $body = '';
public $header = '';
public $codeRetour = 0;
public $referer='';
public $libErreur='';
public $cookie='';
public $iDb;
public $enCache=false;
function __construct() {
$this->iDb=new WDB();
}
function getIdentite($siren, $refresh=false) {
$siren=$siren*1;
$res=$this->iDb->select('artisanat', 'id, siren, actif, numRM, denomination, sigle, nomCommercial, enseigne, fj, effectif, aprm, debutActivite, activite, adresse, cp, ville, cessation, radiation, nbInscriptions, nom, prenom, nomUsage, dateNaiss, lieuNaiss, natio, qualite, qualif, dateQualif, dateFctDeb, dateFctFin, IF(dateInsert>dateUpdate,dateInsert,dateUpdate) AS dateUpdate', "siren=$siren", false, MYSQL_ASSOC);
if (count($res)>0 && !$refresh) {
$this->enCache=true;
$tabInsert=$res[0];
} elseif (ARTISANAT_DISPO_WEB) {
$this->enCache=false;
$url='http://www.cma-paris.fr/CMP/rm_recherche.php?dom=Gerer&fonction=recherche';
$page=getUrl($url, '', '', $this->referer, false, 'www.cma-paris.fr', false, '', '', 21);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'200') {
$this->libErreur='Erreur Artisanat 200a !';
return false;
}
$this->cookie=$page['header']['Set-Cookie'];
$this->referer=$url;
$url='http://www.cma-paris.fr/CMP/rm_recherche.php?dom=Gerer&fonction=cherche';
$postData=array( 'siren_op'=>'%3D',
'siren'=>$siren,
'den_rent_op'=>'%25',
'den_rent'=>'',
'adresse_op'=>'contient',
'adresse'=>'',
'bde_rent_op'=>'%25',
'bde_rent'=>'',
'nom_rdir_op'=>'%25',
'nom_rdir'=>'',
'pren_rdir_op'=>'%25',
'pren_rdir'=>'',
'table'=>'rentreprise',//'rentrad',
'x'=>56,
'y'=>14,
);
randsleep(1,2);
$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.cma-paris.fr', false, '', '', 21);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'200') {
$this->libErreur='Erreur Artisanat 200b !';
return false;
}
$this->referer=$url;
if (preg_match('/<span.class="rouge">aucune.entreprise.ne.correspond(?:.*)vos.crit(?:.*)de.recherche<\/span>/Uis', $this->body, $matches)) {
$url='http://www.cma-paris.fr/CMP/rm_recherche.php?dom=Gerer&fonction=cherche';
$postData=array( 'siren_op'=>'%3D',
'siren'=>$siren,
'den_rent_op'=>'%25',
'den_rent'=>'',
'adresse_op'=>'contient',
'adresse'=>'',
'bde_rent_op'=>'%25',
'bde_rent'=>'',
'nom_rdir_op'=>'%25',
'nom_rdir'=>'',
'pren_rdir_op'=>'%25',
'pren_rdir'=>'',
'table'=>'rentrad',
'x'=>56,
'y'=>14,
);
randsleep(1,2);
$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.cma-paris.fr', false, '', '', 21);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'200') {
$this->libErreur='Erreur Artisanat 200c !';
return false;
}
$this->referer=$url;
}
/** Gestion des multi-inscriptions au RM **/
if (preg_match('/<b class="gris">(.*)entreprises.correspondent(?:.*)vos.crit(?:.*)de.recherche<\/span>/Uis', $this->body, $matches))
{
$nbRep=trim($matches[1])*1;
$iRadMax=-1;
if (preg_match_all('/<a class="turquoise" href="(rm\.php\?dom=Gerer&amp;fonction=dossier&amp;(.*))">/Uis', $this->body, $matches)) {
$tabUrls=array_unique($matches[1]);
$anRadMax=0;
// Recherche de la dernière inscription
foreach ($tabUrls as $iUrl=>$url) {
// On prend la dernière inscription
$tabTmp=explode('&amp;',$url);
if (substr($tabTmp[3],0,8)=='an_rera=') {
$anRad=substr($tabTmp[3],8);
if ($anRad>$anRadMax) {
$anRadMax=$anRad;
$iRadMax=$iUrl;
}
}
}
}
if ($iRadMax==-1) die('$iRadMax==-1 Cas impossible !'.EOL.print_r($tabUrls,true).EOL.print_r($matches,true));
// Accès à la dernière fiche
$url='http://www.cma-paris.fr/CMP/'.strtr(trim($tabUrls[$iRadMax]),array('&amp;'=>'&'));
randsleep(1,2);
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.cma-paris.fr', false, '', '', 21);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'200') {
$this->libErreur='Erreur Artisanat 200c !';
return false;
}
$this->referer=$url;
}
$tabInsert=array();
if (preg_match('/n&deg; d\'identification \(SIREN\)<\/span><\/td>(?:.*)<td align="left" nowrap>(.*)&nbsp;<\/td>((?:.*)n&deg; de gestion rm<\/span><\/td>(?:.*)<td align="left" nowrap>(.*)<\/td>)?/Uis', $this->body, $matches)) {
$sirenLu=$matches[1]*1;
if ($siren==$sirenLu) {
$tabInsert['siren']=$matches[1];
$tabInsert['numRM']=@$matches[2];
} else {
$this->libErreur='Erreur Siren $sirenLu<>$siren !';
return false;
}
} elseif (preg_match('/<span class="rouge">aucune entreprise ne correspond &agrave; vos crit&egrave;res de recherche<\/span>/Uis', $this->body, $matches)) {
$this->libErreur='Erreur Artisan absent de la base Artisanat !';
// die($this->body);
return false;
} else {
$this->libErreur='Erreur Siren absent dans la page !';
return false;
}
$actif=null;
if (preg_match("/Renseignements.relatif(?:.*)entreprise(.*)<\/b>/Uis", $this->body, $matches)) {
switch (trim(strtr($matches[1],array(chr(160)=>'')))) {
case 'en activit&eacute;': $actif=1; break;
case 'radi&eacute;e': $actif=0; break;
default: print_r($matches);die(); break;
}
//die(EOL.'$actif='.$actif.EOL.print_r($matches));
}
$tabInsert['actif']=$actif;
if ($actif===null) {
//die("siren=$siren".EOL."sirenLu=$sirenLu".EOL.$this->body);
$this->libErreur='Erreur Actif/Radié non trouvé !';
return false;
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">d&eacute;nomination<\/span><\/td>(?:.*)<td align="left" colspan="5">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['denomination']=$matches[1];
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">d&eacute;nomination<\/span><\/td>(?:.*)<td align="left" colspan="5">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['denomination']=$matches[1];
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">sigle<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['sigle']=$matches[1];
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">&nbsp;nom&nbsp;commercial<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['nomCommercial']=$matches[1];
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">enseigne<\/span><\/td>(?:.*)<td align="left" colspan="4">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['enseigne']=$matches[1];
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">forme&nbsp;juridique<\/span><\/td>(?:.*)<td align="left" colspan="5">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['fj']=$matches[1];
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">effectif<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['effectif']=$matches[1];
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">code APRM<\/span><\/td>(?:.*)<td align="left">(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['aprm']=$matches[1];
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">d&eacute;but&nbsp;d\'activit&eacute;<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['debutActivite']=WDate::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches[1]),chr(160),' ')));
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">&nbsp;activit&eacute;\(s\) exerc&eacute;e\(s\) donnant lieu &agrave; immatriculation<\/span>(?:.*)<td colspan="5">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['activite']=trim($matches[1]);
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">adresse&nbsp;de&nbsp;l\'entreprise<\/span><\/td>(?:.*)<td align="left" colspan="5">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['adresse']=trim($matches[1]);
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">code postal<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['cp']=trim($matches[1]);
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">ville<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['ville']=trim($matches[1]);
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">cessation d\'activit&eacute;<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['cessation']=WDate::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches[1]),chr(160),' ')));
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">radiation du RM<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['radiation']=WDate::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches[1]),chr(160),' ')));
$tabEtabs=array();
if (preg_match('/<!--deb Etablissements secondaires-->(?:.*)<b class="gris">Aucune inscription compl&eacute;mentaire<\/b>(?:.*)<!--fin Etablissements secondaires-->/Uis', $this->body, $matches))
$tabInsert['nbInscriptions']=0;
elseif (preg_match('/<!--deb Etablissements secondaires-->(?:.*)<b class="gris">Inscription compl&eacute;mentaire<\/b>(.*)<!--fin Etablissements secondaires-->/Uis', $this->body, $matches)) {
$tabInsert['nbInscriptions']=0;
if (preg_match_all('/<tr>(?:.*)<td><img alt="" src="inter\/pixtrans\.gif" width="30" height="1"><\/td>(?:.*)<td nowrap>(?:.*)<!-- adresse -->(.*)<\/td>(?:.*)<td nowrap>(?:.*)<!-- code postal et ville -->(.*)<\/td>(?:.*)<td nowrap>(?:.*)<!-- enseigne -->(.*)<\/td>(?:.*)<td>(?:.*)<!-- debut activite -->(.*)<\/td>(?:.*)<td>(?:.*)<!-- fin activite -->(.*)<\/td>(?:.*)<\/tr>/Uis', $matches[1], $matches2)) {
foreach ($matches2[1] as $i=>$adresse) {
$tabEtabs[$i]['siren'] =$siren;
$tabEtabs[$i]['num'] =$i;
$tabEtabs[$i]['adresse'] =trim(strtr(html_entity_decode($adresse),chr(160),' '));
$tabEtabs[$i]['cpVille'] =trim(strtr(html_entity_decode($matches2[2][$i]),chr(160),' '));
$tabEtabs[$i]['enseigne']=trim(strtr(html_entity_decode($matches2[3][$i]),chr(160),' '));
$tabEtabs[$i]['actDeb'] =WDate::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches2[4][$i]),chr(160),' ')));
$tabEtabs[$i]['actFin'] =WDate::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches2[5][$i]),chr(160),' ')));
$tabInsert['nbInscriptions']++;
}
}
}
/** Informations sur la Personne Physique **/
if (preg_match('/<a class="turquoise" href="(rm\.php\?dom=Gerer&amp;fonction=dirigeant&amp;dept_re(.*))" onclick="window\.open\(this\.href/Uis', $this->body, $matches)) {
$urlDir='http://www.cma-paris.fr/CMP/'.strtr(trim($matches[1]),array('&amp;'=>'&'));
//die($urlDir);
randsleep(1,2);
$page=getUrl($urlDir, $this->cookie, '', $this->referer, false, 'www.cma-paris.fr', false, '', '', 21);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'200') {
$this->libErreur='Erreur Artisanat 200d !';
return false;
}
$this->referer=$url;
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">nom<\/span><\/td>(?:.*)<td align="left" nowrap>(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['nom']=trim(strtr(html_entity_decode($matches[1]),chr(160),' '));
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">pr&eacute;nom<\/span><\/td>(?:.*)<td align="left" nowrap>(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['prenom']=trim(strtr(html_entity_decode($matches[1]),chr(160),' '));
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">nom d\'usage<\/span><\/td>(?:.*)<td align="left" nowrap>(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['nomUsage']=trim(strtr(html_entity_decode($matches[1]),chr(160),' '));
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"(?:.*)<span class="turquoise">&nbsp;date&nbsp;de&nbsp;naissance<\/span><\/td>(?:.*)-->(?:.*)<td(?: +)align="left">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['dateNaiss']=WDate::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches[1]),chr(160),' ')));
// if (preg_match('/date&nbsp;de&nbsp;naissance(.*)<td background="inter\/pix3_turquoise\.gif" align="right"/Uis', $this->body, $matches))
// die(print_r($matches));
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">&nbsp;lieu&nbsp;de&nbsp;naissance<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['lieuNaiss']=trim(strtr(html_entity_decode($matches[1]),chr(160),' '));
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">nationalit&eacute;<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['natio']=trim(strtr(html_entity_decode($matches[1]),chr(160),' '));
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">qualit&eacute;<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['qualite']=trim(strtr(html_entity_decode($matches[1]),chr(160),' '));
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right" nowrap><span class="turquoise">qualification&nbsp;artisanale<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['qualif']=trim(strtr(html_entity_decode($matches[1]),chr(160),' '));
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">date&nbsp;d\'obtention<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['datequalif']=WDate::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches[1]),chr(160),' ')));
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">prise de fonction<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['dateFctDeb']=WDate::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches[1]),chr(160),' ')));
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">fin de fonction<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['dateFctFin']=WDate::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches[1]),chr(160),' ')));
}
// Insertion en base de données
$tabInsert['dateInsert']=date('Y-m-d H:i:s');
$id=$this->iDb->insert('artisanat', $tabInsert, true);
$tabInsert['id']=$id;
foreach ($tabEtabs as $tabInsert2) {
$tabInsert2['dateInsert']=$tabInsert['dateInsert'];
$id2=$this->iDb->insert('artisanat_etab', $tabInsert2, true);
}
$tabInsert['dateUpdate']=substr($tabInsert['dateInsert'],0,10);
unset($tabInsert['dateInsert']);
/*
$tabRet=array( 'id' => $id,// A calculer après insert
'Pertinence' => 100,
'Siret' => $siren.'00000',
'Siege' => $siege,
'Nom' => $nom,
'Nom2' => $nomCom,
'Sigle' => '',//prepareString($etab['Sigle']),
'Enseigne' => $ens,
'Adresse' => $adr,
'Adresse2' => $adr2,//prepareString($etab['Adresse2']),
'CP' => $cp,
'Ville' => $ville,
'Tel' => '',//$etab['Tel'],
'Fax' => '',//$etab['Fax'],
'FJ' => $cj,
'FJLib' => $cjLib,
'Siren' => $siren,
'Nic' => '00000',
'Actif' => 0,
'NafEtab' => $naf,
'NafEtabLib' => $nafLib,
'NafEnt' => $naf,
'NafEntLib' => $nafLib,
'NumRC' => $numRC,
'NumRC2' => $numRC2,
'NumGreffe' => $greffe_num,
'DateCreation' => $dateCre,
'DateRadiation' => $dateRad,
'DateCloture' => $dateCloture,
'DateUpdate' => substr($dateInsert,0,10),
);
return $tabRet;
*/
}
return $tabInsert;
}
}
?>

View File

@ -1,135 +0,0 @@
<?
require_once 'framework/common/dates.php';
class MBanques {
public $tabActivite=array( 0=>'établissements et services autorisés à effectuer des opérations de banque',
1=>'banques',
2=>'banques mutualistes ou coopératives',
4=>'caisses de crédit municipal',
5=>'sociétés financières 5', // la distinction entre les codes 5 et 6 ne concerne que les
6=>'sociétés financières 6', // applications internes à la Banque de France
7=>'institutions financières spécialisées',
9=>'entreprises d\'investissement');
public $tabNatureGuichet=array( 1=>'Guichet permanent de plein exercice domiciliataire (ouvert au public)',
2=>'Identifiant de domiciliation (adresse active 5 jours par semaine)',
3=>'Guichet permanent non domiciliataire (ouvert au public)',
4=>'Libre Prestation de services (LPS)',
'A'=>'Guichet fictif',
'P'=>'Guichet fictif');
public $tabOrgane=array( 0=>'Association française des établissements de crédit et des entreprises d\'investissement',
11=>'Association française des sociétés financières',
12=>'Groupement des institutions financières spécialisées',
13=>'Conférence permanente des caisses de crédit municipal',
14=>'Association française des entreprises d\'investissement',
15=>'Association française des entreprises d\'investissement-courtiers',
16=>'Association française des fonds et sociétés d\'investissements et de gestion d\'actifs financiers',
17=>'Association française des intermédiaires transmetteurs d\'ordres ',
18=>'Fédération bancaire française',
19=>'Ass Franc Marchés Financiers',
20=>'Caisse nationale de crédit agricole',
21=>'Chambre syndicale des banques populaires',
22=>'Confédération nationale du crédit mutuel',
23=>'Caisse centrale de crédit coopératif',
25=>'Caisse nationale des caisses d\'épargne et de prévoyance',
27=>'Chambre syndicale des SACI',
28=>'Double affiliation CNCE-BFBP',
29=>'Crédit Immobilier France Développement',
30=>'BPCE',
98=>'non concerné',
99=>'en instance d\'adhésion');
private $iDb;
function __construct() {
$this->iDb=new WDB('insee');
}
function __destruct() {}
function getInfoBanque($codeBanque) {
$ret=$this->iDb->select( 'BDF_Etabs',
'bdfFibCodeEtab, bdfFibCodeSituation, bdfFibDenom40, bdfFibDenom10, bdfFibCodeActivite, bdfFibCodeOrganeRepr, bdfFibDateAgrement, bdfFibDateRetraitAgr, bdfFibDateFinDiffus, bdfFibAdresse1, bdfFibAdresse2, bdfFibAdresse3, CP, Ville, bdfFibCodeEtabAbsorb, bdfFibOptionIdInvar, bdfFibDateOptIdInvar',
"bdfFibCodeEtab=$codeBanque",false, MYSQL_ASSOC);
//echo mysql_error();
$tabRet=$ret[0];
return $tabRet;
}
function getInfoGuichet($codeBanque, $codeGuichet) {
$tabBanque=$this->getInfoBanque($codeBanque);
$tabTel=$this->getTelGuichet($codeBanque,$codeGuichet);
$ret=$this->iDb->select( 'BDF_Guichets',
'bdfFibCodeEtab, bdfFibCodeGuichet, bdfFibCodeSituation AS guichetCodeSituation, bdfFibDenom40 AS guichetDenom40, bdfFibDenom20 AS guichetDenom20, bdfFibCodeEtabCible, bdfFibCodeGuichetRepr, bdfFibCodeGeoInsee, bdfFibCodeLocalite1, bdfFibCodeLocalite2, bdfFibComptoirBDF, bdfFibAdresse1 AS guichetAdresse1, bdfFibAdresse2 AS guichetAdresse2, bdfFibAdresse3 AS guichetAdresse3, CP AS guichetCP, Ville AS guichetVille, bdfFibAdresseSWIFT, bdfFibDateOuverture, bdfFibDateFermeture, bdfFibDateFinDiffus, bdfFibCodeRoutage, bdfFibLibelleRIB, bdfFibNatureGuichet, bdfFibCodeAchOperBDF, bdfFibNomComptoirBDF',
"bdfFibCodeEtab=$codeBanque AND bdfFibCodeGuichet=$codeGuichet",false, MYSQL_ASSOC);
//echo mysql_error();
if (isset($ret[0]))
$tabRet=@$ret[0];
else
$tabRet=array();
return array_merge($tabRet, $tabBanque, $tabTel);
}
function getTelGuichet($codeBanque, $codeGuichet) {
$ret=$this->iDb->select( 'Mandel_banques',
'Tel, Fax',
"CodeB=$codeBanque AND CodeG=$codeGuichet",false, MYSQL_ASSOC);
if (isset($ret[0]))
return $ret[0];
else
return array();
}
function getListeBanques($siren) {
$tabRet=array();
if ($siren*1>1000) {
$res=$this->iDb->select('banques', 'codeBanque, codeGuichet, libBanqueGuichet, precis, dateSource*1 AS dateSource', "siren=$siren", false, MYSQL_ASSOC);
$tmp=$this->iDb->select('fedRib', "codeBanque, codeGuichet, CONCAT(libBanque,' ',libGuichet) AS libBanqueGuichet, 0 AS precis, IF (dateInfo='0000-00-00', dateDispo*1, dateInfo*1) AS dateSource", "siren=$siren", false, MYSQL_ASSOC);
$res=array_merge($res, $tmp);
foreach ($res as $tabBanque) {
$dateSource=$tabBanque['dateSource'];
$codBanque=$tabBanque['codeBanque'];
$codGuichet=$tabBanque['codeGuichet'];
$libBanque=trim($tabBanque['libBanqueGuichet']);
$found=false;
$adrBanque1=$adrBanque2=$adrBanqueCP=$adrBanqueVille='';
if ($codBanque>0 && $codGuichet>0 && $dateSource>(date('Y')-4)*10000+101 && $dateSource<date('Ymd')) {
$tmp=$this->iDb->select('insee.BDF_Etabs b, insee.BDF_Guichets g', 'g.bdfFibCodeEtab AS banque, g.bdfFibCodeGuichet AS guichet, b.bdfFibDenom40 AS nomBanque, b.bdfFibDenom10 AS sigleBanque, g.bdfFibDenom20 AS nomGuichet, g.bdfFibAdresse1 AS adresse1, g.bdfFibAdresse2 AS adresse2, g.bdfFibAdresse3 AS adresse3, g.CP, g.Ville', "g.bdfFibCodeEtab=$codBanque AND g.bdfFibCodeGuichet=$codGuichet AND b.bdfFibCodeEtab=g.bdfFibCodeEtab", false, MYSQL_ASSOC);
if (isset($tmp[0])) {
$libBanque=trim($tmp[0]['nomBanque'].' '.$tmp[0]['nomGuichet']);
$adrBanque1=$tmp[0]['adresse1'];
$adrBanque2=trim($tmp[0]['adresse2'].' '.$tmp[0]['adresse3']);
$adrBanqueCP=$tmp[0]['CP'];
$adrBanqueVille=$tmp[0]['Ville'];
$found=true;
};
}
if (!$found && $codBanque>0 && $dateSource>(date('Y')-4)*10000+101 && $dateSource<date('Ymd')) {
$tmp=$this->iDb->select('insee.BDF_Etabs', "bdfFibCodeEtab AS banque, '' AS guichet, bdfFibDenom40 AS nomBanque, '' AS nomGuichet, '' AS adresse1, '' AS adresse2, '' AS adresse3, '' AS CP, '' AS Ville", "bdfFibCodeEtab=$codBanque", false, MYSQL_ASSOC);
if (isset($tmp[0])) {
$libBanque=trim($tmp[0]['nomBanque'].' '.$tmp[0]['nomGuichet']);
$adrBanque1=$tmp[0]['adresse1'];
$adrBanque2=trim($tmp[0]['adresse2'].' '.$tmp[0]['adresse3']);
$adrBanqueCP=$tmp[0]['CP'];
$adrBanqueVille=$tmp[0]['Ville'];
} else continue;
} else continue;
$tabRet[]=array('codeBanque' => $codBanque,
'codeGuichet' => $codGuichet,
'libBanque' => $libBanque,
'adresse1' => $adrBanque1,
'adresse2' => $adrBanque2,
'cp' => $adrBanqueCP,
'ville' => $adrBanqueVille,
);
}
}
return $tabRet;
}
}
?>

View File

@ -1,991 +0,0 @@
<?php
require_once 'framework/common/curl.php';
require_once 'framework/common/dates.php';
//require_once 'Metier/partenaires/classMEuridile.php';
//require_once 'Metier/partenaires/classMRncsFlux.php';
require_once 'Metier/partenaires/classMGreffes.php';
define ('ECART_CTRL_MAX', 5); // Ecart maximal acceptable dans la saisie +/-5 entre les calculs et la saisie !
global $tabCtrl;
$tabCtrl=array(
/** Bilans Réel Normal **/
'S'=>array(
// Actif Simplifié
'010-012=013'=>'Fonds commercial (Brut,Amor/Prov et Net incohérents)',
'014-016=017'=>'Immos incorpo. autres (Brut,Amor/Prov et Net incohérents)',
'028-030=031'=>'Immos corpo. (Brut,Amor/Prov et Net incohérents)',
'040-042=043'=>'Immos finan. (Brut,Amor/Prov et Net incohérents)',
'044-048=049'=>'Total (I) Actif Immos (Brut,Amor/Prov et Net incohérents)',
'010+014+028+040=044'=>'Total Actif immobilisé Brut',
'012+016+030+042=048'=>'Total Actif immobilisé Amor/Prov',
'013+017+031+043=049'=>'Total Actif immobilisé Net',
'050-052=053'=>'Stocks MP (Brut,Amor/Prov et Net incohérents)',
'060-062=063'=>'Stocks Marchandises (Brut,Amor/Prov et Net incohérents)',
'064-066=067'=>'Avances et acomptes/cmds (Brut,Amor/Prov et Net incohérents)',
'068-070=071'=>'Créances clients et CR (Brut,Amor/Prov et Net incohérents)',
'072-074=075'=>'Autres créances (Brut,Amor/Prov et Net incohérents)',
'080-082=083'=>'VMP (Brut,Amor/Prov et Net incohérents)',
'084-086=087'=>'Disponibilités (Brut,Amor/Prov et Net incohérents)',
'088-090=091'=>' (Brut,Amor/Prov et Net incohérents)',
'092-094=095'=>'Ch. constatées d\'avance (Brut,Amor/Prov et Net incohérents)',
'096-098=099'=>'Total (II) Actif Circulant (Brut,Amor/Prov et Net incohérents)',
'110-112=113'=>'Total ACTIF (Brut,Amor/Prov et Net incohérents)',
'050+060+064+068+072+080+084+088+092=096'=>'Total Actif circulant Brut',
'052+062+066+070+074+082+086+090+094=098'=>'Total Actif circulant Amor/Prov',
'053+063+067+071+075+083+087+091+092=099'=>'Total Actif circulant Net',
'044+096=110'=>'Total ACTIF Brut',
'048+098=112'=>'Total ACTIF Amor/Prov',
'049+099=113'=>'Total ACTIF Net',
// Passif Simplifié
'120+124+126+130+132+134+136+140=142'=>'Total Capitaux Propres',
'156+164+166+172+174=176'=>'Total Dettes',
'142+154+176=180'=>'Total Passif',
'113=180'=>'Actif=Passif',
// CDR Simplifié
'210+214+218+222+224+226+230=232'=>'Total des produits d\'exploitation',
'234+236+238+240+242+244+250+252+254+256+262=264'=>'Total des charges d\'exploitation',
'210+214+218+222+224+226+230=232'=>'Total des produits d\'exploitation',
'232-264=270'=>'Résultat d\'exploitation',
'232+280+290-264-294-300-306=310'=>'Résultat d\'exploitation',
),
'N'=>array(
// Actif immobilisé
'AA=AA2'=>'Capital souscrit non appelé',
'AB-AC=AC1'=>'Frais d\'étab. (Brut,Amor/Prov et Net incohérents)',
'AD-AE=AE1'=>'Frais de R&D (Brut,Amor/Prov et Net incohérents)',
'AF-AG=AG1'=>'Brevets (Brut,Amor/Prov et Net incohérents)',
'AH-AI=AI1'=>'Fonds commercial (Brut,Amor/Prov et Net incohérents)',
'AJ-AK=AK1'=>'Autres immo inc. (Brut,Amor/Prov et Net incohérents)',
'AL-AM=AM1'=>'Acomptes immo inc. (Brut,Amor/Prov et Net incohérents)',
'AN-AO=AO1'=>'Terrains (Brut,Amor/Prov et Net incohérents)',
'AP-AQ=AQ1'=>'Constructions (Brut,Amor/Prov et Net incohérents)',
'AR-AS=AS1'=>'Installations (Brut,Amor/Prov et Net incohérents)',
'AT-AU=AU1'=>'Autres immo corp. (Brut,Amor/Prov et Net incohérents)',
'AV-AW=AW1'=>'Immos en cours (Brut,Amor/Prov et Net incohérents)',
'AX-AY=AY1'=>'Acomptes immo corp. (Brut,Amor/Prov et Net incohérents)',
'CS-CT=CT1'=>'Immo Fi participations/équiv. (Brut,Amor/Prov et Net incohérents)',
'CU-CV=CV1'=>'Autres participations (Brut,Amor/Prov et Net incohérents)',
'BB-BC=BC1'=>'Créances rattachées à des particip. (Brut,Amor/Prov et Net incohérents)',
'BD-BE=BE1'=>'Autres titres immo. (Brut,Amor/Prov et Net incohérents)',
'BF-BG=BG1'=>'Prêts (Brut,Amor/Prov et Net incohérents)',
'BH-BI=BI1'=>'Autres Immo Financières (Brut,Amor/Prov et Net incohérents)',
'BJ-BK=BK1'=>'Total de l\'Actif Immobilisé (Brut,Amor/Prov et Net incohérents)',
'AB+AD+AF+AH+AJ+AL+AN+AP+AR+AT+AV+AX+CS+CU+BB+BD+BF+BH=BJ'=>'Total des Immobilisations (Brut)',
'AC+AE+AG+AI+AK+AM+AO+AQ+AS+AU+AW+AY+CT+CV+BC+BE+BG+BI=BK'=>'Total des Immobilisations (Amor.)',
'AC1+AE1+AG1+AI1+AK1+AM1+AO1+AQ1+AS1+AU1+AW1+AY1+CT1+CV1+BC1+BE1+BG1+BI1=BK1'=>'Total des Immobilisations (Net)',
// Actif circulant
'BL-BM=BM1'=>'Stocks de MP (Brut,Amor/Prov et Net incohérents)',
'BN-BO=BO1'=>'Stocks en cours de prod. biens (Brut,Amor/Prov et Net incohérents)',
'BP-BQ=BQ1'=>'Stocks en cours de prod. services (Brut,Amor/Prov et Net incohérents)',
'BR-BS=BS1'=>'Stocks produits finis (Brut,Amor/Prov et Net incohérents)',
'BT-BU=BU1'=>'Stocks de marchandises (Brut,Amor/Prov et Net incohérents)',
'BV-BW=BW1'=>'Avances et acomptes/cmds (Brut,Amor/Prov et Net incohérents)',
'BX-BY=BY1'=>'Créances clients (Brut,Amor/Prov et Net incohérents)',
'BZ-CA=CA1'=>'Autres créances (Brut,Amor/Prov et Net incohérents)',
'CB-CC=CC1'=>'Capital souscrit appelé non versé (Brut,Amor/Prov et Net incohérents)',
'CD-CE=CE1'=>'VMP (Brut,Amor/Prov et Net incohérents)',
'CF-CG=CG1'=>'Disponibilités (Brut,Amor/Prov et Net incohérents)',
'CH-CI=CI1'=>'Charges Const. d\'avance(Brut,Amor/Prov et Net incohérents)',
'CJ-CK=CK1'=>'Total de l\'Actif Circulant (Brut,Amor/Prov et Net incohérents)',
'BL+BN+BP+BR+BT+BV+BX+BZ+CB+CD+CF+CH=CJ'=>'Total l\'Actif Circulant (Brut)',
'BM+BO+BQ+BS+BU+BW+BY+CA+CC+CE+CG+CI=CK'=>'Total l\'Actif Circulant (Amor.)',
'BM1+BO1+BQ1+BS1+BU1+BW1+BY1+CA1+CC1+CE1+CG1+CI1=CK1'=>'Total l\'Actif Circulant (Net)',
'CL=CL2'=>'Charges / plus. ex. (Brut<>Net)',
'CM=CM2'=>'Primes de Rbt obligations (Brut<>Net)',
'CN=CN2'=>'Ecarts de conversion d\'actif (Brut<>Net)',
'CO-1A=1A1'=>'Total Actif (Brut,Amor/Prov et Net incohérents)',
'AA+BJ+CJ+CL+CM+CN=CO'=>'Total Actif Brut',
'BK+CK=1A'=>'Total Actif (Amor.)',
'AA2+BK1+CK1+CL2+CM2+CN2=1A1'=>'Total Actif Net',
// PASSIF
'DA+DB+DC+DD+DE+DF+DG+DH+DI+DJ+DK=DL'=>'Passif : s/total I (Capitaux Propres)',
'DM+DN=DO'=>'Passif : s/total II (Autres fonds propres)',
'DP+DQ=DR'=>'Passif : s/total III (Provisions)',
'DS+DT+DU+DV+DW+DX+DY+DZ+EA+EB=EC'=>'Passif : s/total IV (Dettes+Cpt régul. PCA)',
'DL+DO+DR+EC+ED=EE'=>'Total Passif',
'EE=1A1'=>'Total Actif=Total Passif',
// CDR
'FA+FB=FC'=>'Total Ventes de marchandises',
'FD+FE=FF'=>'Total Production vendue de biens',
'FG+FH=FI'=>'Total Production vendue de services',
'FJ+FK=FL'=>'Total Chiffe d\'Affaires France+Export',
'FA+FD+FG=FJ'=>'Total C.A. France',
'FB+FE+FH=FK'=>'Total C.A. Export',
'FC+FF+FI=FL'=>'Total C.A. Total (Vtes+Biens+Services)',
'FL+FM+FN+FO+FP+FQ=FR'=>'Total I : Produits d\'Exploitation',
'FS+FT+FU+FV+FW+FX+FY+FZ+GA+GB+GC+GD+GE=GF'=>'Total II :Charges d\'Exploitation',
'FR-GF=GG'=>'1 - Résultat d\'Exploitation',
'GJ+GK+GL+GM+GN+GO=GP'=>'Total V : Produits Financiers',
'GQ+GR+GS+GT=GU'=>'Total VI : Charges Financières',
'GP-GU=GV'=>'2 - Résultat Financier',
'GG+GH-GI+GV=GW'=>'3 - R.C.A.I.',
'HA+HB+HC=HD'=>'Total VII : Produits Exceptionnels',
'HE+HF+HG=HH'=>'Total VIII : Charges Exceptionnels',
'HD-HH=HI'=>'4 - Résultat Exceptionnel',
'FR+GH+GP+HD=HL'=>'CDR : Total des Produits',
'GF+GI+GU+HH+HJ+HK=HM'=>'CDR : Total des Charges',
'HL-HM=HN'=>'5 - Résultat de l\'exercice',
// Immobilisations
/* 'LY+MB+ME+MH+MK+MN+MQ+MT+MW+NA+NE=NH'=>'2054: Immos Total III Brut fin ex. incohérent',
'0V+0Y+2C+2F=NK'=>'2054: Immos Total IV Brut fin ex. incohérent',
'LU+LW+NH+NK=0L'=>'2054: Immos Total Général Brut fin ex. incohérent',
'0L=BJ'=>'Immos Total Général Brut du 2054 <> BJ du 2050',*/
),
);
$tabLibCodeCtrl=array(
'_0'=>'-',
'_1'=>'Corrigé',
'_3'=>'Capital',
'_5'=>'Calculs', // Anciennement 2 mais maintenant >=5 correspond à une erreur grave
'_7'=>'Effectif',
'_9'=>'Unité',
);
$tabLibCodeSaisie=array(
// Code Saisie Bilans par Infogreffe
'_00'=>'Bilan saisi sans anomalie',
'_01'=>'Bilan saisi avec des incohérences comptables à la source du document (issues du remettant)',
'_02'=>'Bilan avec Actif, Passif ou Compte de Résultat nul',
'_03'=>'Bilan incomplet (des pages manquent)',
'_04'=>'Bilan complet non détaillé (seuls les totaux et sous totaux sont renseignés)',
'_05'=>'Bilan reçu en double exemplaire',
'_06'=>'Bilan intermédiaire - Situation provisoire',
'_07'=>'Bilan illisible',
'_A7'=>'Bilan illisible, présentant un cadre gris très foncés (dans lesquels sont inscrits en général les totaux)',
'_B7'=>'Bilan manuscrits',
'_C7'=>'Bilan illisible, présentant des caractères trop gras',
'_D7'=>'Bilan scanné en biais ou qui présentent des pages rognées',
'_E7'=>'Bilan numérisés trop clairement (comme une imprimante dont la cartouche est presque vide)',
'_F7'=>'Bilan illisible',
'_08'=>'Bilan consolidé',
'_09'=>'Déclaration d\'impôts',
'_10'=>'Document autre que bilan',
'_11'=>'Bilan de clôture de liquidation',
'_12'=>'Bilan de Société financière',
'_13'=>'Bilan de Société d\'assurance',
'_14'=>'Bilan de Société immobilière',
'_15'=>'Bilan de Société étrangère',
// Codes saisie de Bilans spécifique às S&D
'_70'=>'Document relatif à une autre société',
);
class MBilans {
public $siren;
public $dernierExerciceDepose=0;
public $dernierExerciceDeposeLe=0;
// public $rncs;
public $igreffe;
private $tabBS2BN=array('AH'=>'010',
'AI'=>'012',
'AI1'=>'013',
'AJ'=>'014',
'AK'=>'016',
'AK1'=>'017',
'AT'=>'028',
'AU'=>'030',
'AU1'=>'031',
'BH'=>'040',
'BI'=>'042',
'BI1'=>'043',
'BJ'=>'044',
'BK'=>'048',
'BK1'=>'049',
'BL'=>'050',
'BM'=>'052',
'BM1'=>'053',
'BT'=>'060',
'BU'=>'062',
'BU1'=>'063',
'BV'=>'064',
'BW'=>'066',
'BW1'=>'067',
'BX'=>'068',
'BY'=>'070',
'BY1'=>'071',
'BZ'=>'072',
'CA'=>'074',
'CA1'=>'075',
'CD'=>'080',
'CE'=>'082',
'CE1'=>'083',
'CF'=>'084',
'CG'=>'086',
'CG1'=>'087',
'CH'=>'092',
'CI'=>'094',
'CI1'=>'095',
'CJ'=>'096',
'CK'=>'098',
'CK1'=>'099',
'CO'=>'110',
'1A'=>'112',
'1A1'=>'113',
'DA'=>'120',
'DC'=>'124',
'DD'=>'126',
'DF'=>'130',
'DG'=>'132',
'DH'=>'134',
'DI'=>'136',
'DK'=>'140',
'DL'=>'142',
'DR'=>'154',
'DP'=>'154',
'DU'=>'156',
'DV'=>'169',
'DW'=>'164',
'DX'=>'166',
'EA'=>'172-169',
'EB'=>'174',
'EC'=>'176',
'EE'=>'180',
'EH'=>'156-195',
'FA'=>'210-209',
'FB'=>'209',
'FC'=>'210',
'FD'=>'214-215',
'FE'=>'215',
'FF'=>'214',
'FH'=>'217',
'FI'=>'218',
'FK'=>'209+215+217',
'FL'=>'210+214+218',
'FM'=>'222',
'FN'=>'224',
'FO'=>'226',
'FQ'=>'230',
'FR'=>'232',
'FS'=>'234',
'FT'=>'236',
'FU'=>'238',
'FV'=>'240',
'FW'=>'242',
'FX'=>'244',
'FY'=>'250',
'FZ'=>'252',
'GA'=>'254',
'GE'=>'262',
'GF'=>'264',
'GG'=>'270',
'GP'=>'280',
'GU'=>'294',
'GW'=>'270+280+294',
'HD'=>'290',
'HH'=>'300',
'HI'=>'290-300',
'HK'=>'306',
'HL'=>'232+280+290',
'HM'=>'264+294+300+306',
'HN'=>'310',
'YY'=>'374',
'YZ'=>'378',
'YP'=>'376',
);
function __construct($siren) {
$this->siren=$siren;
//$this->rncs=new MRncsFlux();
$this->igreffe=new MGreffes();
}
function __destruct() {}
/** Liste les bilans disponibles au format numérique (et non PDF image) pour une entreprise
**
** @param $accesPartenaire bool Accès autorisé aux partenaires distant si le bilan est absenr
** @param $nbMaxBilans int Nombre de bilans maximums retournés
**/
function listeBilans($accesPartenaire=false, $nbMaxBilans=0) {
$iDb2=new WDB();
if ($nbMaxBilans>0) $limit="LIMIT 0, $nbMaxBilans";
else $limit='';
$ret=$iDb2->select( 'bilans',
'typeBilan, dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaieOrigine, dateInsert, partenaire',
"siren='$this->siren' ORDER BY dateExercice DESC $limit",false, MYSQL_ASSOC);
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "listeBilans sur $this->siren en base", print_r($ret, true));
$tabRet=array();
$iDb=new WDB('jo');
$ret2=$iDb->select( 'bodacc_detail',
'Bodacc_Date_Parution, dateEffet, typeEven',
"siren='$this->siren' AND Rubrique='comptes' ORDER BY dateEffet DESC",false, MYSQL_ASSOC);
$dateDerDepot=WDate::dateT('Y-m-d','Ymd',@$ret2[0]['dateEffet'])*1;
$dateDerExercice=$ret[0]['dateExercice']*1;
if ($dateDerDepot<>0) {
$this->dernierExerciceDepose = WDate::dateT('Y-m-d','d/m/Y',@$ret2[0]['dateEffet']);
$this->dernierExerciceDeposeLe = WDate::dateT('Y-m-d','d/m/Y',@$ret2[0]['Bodacc_Date_Parution']);
}
if ($accesPartenaire)
$tabRet=$tabRet2=$this->igreffe->getListeBilans($this->siren);
else
$tabRet=$tabRet2=array();
if ($ENV=='PRD') { // A supprimer le jour ou on vire l'ancien serveur car curl plantait sur Infogreffe !!!
$tabRefXml=$tabRefPdf=array();
// Tableau des références de bilans XML Infogreffe
foreach ($tabRet as $idxTmp=>$bilanTmp) {
if ((substr($idxTmp,-4)*1)>(date(Y)-4))
$tabRefXml[]=$bilanTmp['ref'];
}
$tabImg=$this->igreffe->getBilansImages($this->siren);
// Tableau des références de bilans PDF Infogreffe
foreach ($tabImg as $idxTmp=>$bilanTmp) {
if ($bilanTmp['annee']>(date(Y)-4))
$tabRefPdf[]=$bilanTmp['ref'];
}
$tabDiff=array_diff($tabRefPdf, $tabRefXml);
if (count($tabDiff)>0) {
$strMillesimes='';
foreach ($tabDiff as $value) {
$tabTmp=explode('-',$value);
$strMillesimes.=$tabTmp[0].', ';
}
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Bilans non saisit sur $this->siren pour $strMillesimes",
'Différence :'.EOL.print_r($tabDiff,true) .EOL.
'Liste XML:'.EOL.print_r($tabRefXml, true) .EOL.
'Liste PDF:'.EOL.print_r($tabRefPdf,true) .EOL
);
}
}
$tabTri=array();
foreach ($tabRet as $millesime=>$bil) {
$typeBilan=substr($millesime,0,1);
$dateExercice=WDate::dateT('d/m/Y','Ymd',substr($millesime,1,10));
$tabTri[''.$dateExercice.'-'.$typeBilan]=$millesime;
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "listeBilans sur $this->siren après accès partenaire", print_r($tabRet2, true));
foreach ($ret as $i=>$bil) {
$millesime=WDate::dateT('Ymd','d/m/Y',$bil['dateExercice']);
$tabRet[''.$bil['typeBilan'].$millesime]=array(
'dateProvPartenaire'=>$bil['dateProvPartenaire'],
'dateInsert' =>strtr($bil['dateInsert'],
array(' '=>'',':'=>'','-'=>'')),
'typeBilan' =>$bil['typeBilan'], // NEW
'dureeExercice' =>$bil['dureeExercice'],// NEW
'dateExercice' =>$bil['dateExercice'],
'millesime' =>substr($bil['dateExercice'],0,4),
'dateExercicePre' =>$bil['dateExercicePre'],
'dureeExercicePre' =>$bil['dureeExercicePre'],
'monnaie' =>$bil['monnaieOrigine'],
'source' =>$bil['partenaire'],
);
$tabTri[''.$bil['dateExercice'].'-'.$bil['typeBilan']]=$bil['typeBilan'].$millesime;
}
krsort($tabTri);
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "listeBilans sur $this->siren avant le tri", print_r($tabTri, true));
$exercicePre=$typePre=$tmpPre=false;
$refPre='';
$strInfos='';
foreach ($tabTri as $tmp=>$typeMillesime) {
$exercice=substr($tmp,0,8);
$type=substr($tmp,9,1);
$ref=$tabRet[''.$typeMillesime]['ref'];
if ($exercice==$exercicePre && $type=='N' && $typePre=='S' && $refPre=='') {
// Suppression du bilan RN de la liste si Réel Normal et Réel Simplifiés présents en base
unset($tabTri[$tmp]);
$strInfos.="Suppression de '$tmp'".EOL;
}
elseif ($exercice==$exercicePre && $type=='N' && $typePre=='S' && $refPre<>'') {
// Suppression du bilan RS de la liste si Réel Normal Présent en base et réel simplifié non encore en base
if ($tmpPre<>false) {
unset($tabTri[$tmpPre]);
$strInfos.="Suppression de '$tmpPre'".EOL;
}
}
$exercicePre=$exercice;
$typePre=$type;
$refPre=@trim($ref);
$tmpPre=$tmp;
}
krsort($tabTri);
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "listeBilans sur $this->siren après le tri", print_r($tabTri, true).EOL.$strInfos.EOL);
$tabRet3=array();
foreach ($tabTri as $tmp=>$typeMillesime)
$tabRet3[''.$typeMillesime]=$tabRet[''.$typeMillesime];
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "listeBilans sur $this->siren après le tri / retour", print_r($tabRet3, true));
return $tabRet3;
}
/** Retourne un bilan disponible au format numérique pour une entreprise
**
** @param $millesime date Date de cloture du bilan au format d/m/Y
** @param $typeBilan enum Type de bilan (N=Réel Normal, S=Réel Simplifié, C=Consolidé, A=Assurance, B=Banque)
** @param $refPart string Référence du bilan chez le partenaire (si $accesPartenaire=true)
** @param $accesPartenaire bool Accès autorisé aux partenaires distant si le bilan est absenr
**/
function getBilan($millesime='', $typeBilan='N', $refPart=0, $accesPartenaire=false)
{
$millesimeDB=WDate::dateT('d/m/Y','Ymd',$millesime);
$iDb2=new WDB();
if ($accesPartenaire)
// On ne veut pas de bilans "Téléchargés" directement sur Internet
$strSansBilansWeb=' AND partenaire<>7 ';
else
$strSansBilansWeb='';
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes, partenaire, id, confidentiel, dateInsert', "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$millesimeDB' $strSansBilansWeb", true, MYSQL_ASSOC);
$bilan=$ret[0];
if (count($ret)==0 && $accesPartenaire) {
if ($refPart=='' || $refPart==0) {
$tabTmp=$this->igreffe->getListeBilans($this->siren);
foreach ($tabTmp as $idx=>$bil) {
$typeBil=substr($idx,0,1);
$millBil=substr($idx,1,10);
if ($typeBil==$typeBilan && $millBil==$millesime) {
$refPart=$bil['ref'];
break;
}
}
}
$tabBilan=$this->igreffe->getBilan($this->siren, $refPart);
if ($tabBilan)
{
$strPostes='';
foreach ($tabBilan['POSTES'] as $poste=>$valeur)
$strPostes.="$poste=$valeur;";
$tabInsert=array(
'siren' =>$this->siren,
'dateProvPartenaire'=>$tabBilan['DATE_FRAICHE_BILAN'],
'dateExercice' =>WDate::dateT('d/m/Y','Ymd',$tabBilan['DATE_CLOTURE']),
'dateExercicePre' =>WDate::dateT('d/m/Y','Ymd',$tabBilan['DATE_CLOTURE_PRE']),
'dureeExercice' =>$tabBilan['DUREE_MOIS'],
'dureeExercicePre' =>$tabBilan['DUREE_MOIS_PRE'],
'monnaie' =>$tabBilan['MONNAIE'],
'typeBilan' =>$tabBilan['TYPE_BILAN'],
'monnaieOrigine' =>$tabBilan['MONNAIE_ORI'],
'unite' =>$tabBilan['MONNAIE_LIV_UNITE'],
'postes' =>$strPostes,
'partenaire' =>$tabBilan['SOURCE'],
);
if (!$iDb2->insert('bilans', $tabInsert, true))
$iDb2->update('bilans', $tabInsert, "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$millesimeDB'");
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes, partenaire, id, confidentiel, dateInsert', "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$millesimeDB'", true);
$bilan=$ret[0];
}
}
$tabBilan=$tabBilanPre=$bilanPre=array();
$tabBilan['SIREN'] = $this->siren;
$tabBilan['DATE_FRAICHE_BILAN'] = $bilan['dateProvPartenaire']; // SSAAMMJJ
$tabBilan['DATE_CLOTURE'] = $bilan['dateExercice']; // SSAAMMJJ
$tabBilan['DATE_CLOTURE_PRE'] = $bilan['dateExercicePre']; // SSAAMMJJ
$tabBilan['DUREE_MOIS'] = $bilan['dureeExercice'];
$tabBilan['DUREE_MOIS_PRE'] = $bilan['dureeExercicePre'];
$tabBilan['MONNAIE'] = $bilan['monnaie'];
$tabBilan['CONSOLIDE'] = $bilan['typeBilan']; // C = Bilan consolidé
$tabBilan['MONNAIE_ORI'] = $bilan['monnaieOrigine'];
$tabBilan['MONNAIE_LIV_UNITE'] = $bilan['unite'];
$tabBilan['SOURCE'] = $bilan['partenaire'];
$tabBilan['ID_BILAN_SD'] = $bilan['id'];
$tabBilan['DATE_BILAN_SD'] = $bilan['dateInsert'];
$tabBilan['TOP_CONFIDENTIEL'] = $bilan['confidentiel'];
// Devise et Unité
if ($bilan['monnaie']=='EUR') $monnaie='&euro;'; else $monnaie=$bilan['monnaie'];
switch (strtoupper($bilan['unite'])) {
case 'K': $unite='K'; break;
case 'U':
case ' ':
case '' : $unite=''; break;
case 'M': $unite='M'; break;
default: die('Unite Bilan ('. $bilan['unite'] .') non prise en charge !'); break;
}
$tabBilan['devise'] = /*$unite.*/$monnaie;
/** Remplissage du tableau des postes du Bilan avec prise en compte de l'unité de la monnaie
**/
$tabTmp=explode(';', $bilan['postes']);
foreach ($tabTmp as $i=>$strTmp) {
$tabTmp2=explode('=', $strTmp);
if (isset($tabTmp2[1])) {
if ( ($unite=='K' || $unite=='M') && !in_array(array(
'YP', 'YP1', '376', // Effectifs 2033 et 2050
'M2G', 'M2H', // Autres effectifs
'ZK', 'ZK1', // Taux
'IJ', 'JG', 'JH', 'JJ', 'ZR', // pour holding/ste mere
'XP' // Numero de centre de gestion agréé
) , $tabTmp2[0]) )
{
if ($unite=='K') {
$tabBilan[$tabTmp2[0]]=$tabTmp2[1]*1000;
} else if ($unite=='M') {
$tabBilan[$tabTmp2[0]]=$tabTmp2[1]*1000000;
}
} else {
$tabBilan[$tabTmp2[0]]=$tabTmp2[1];
}
}
}
/** Calcul des valeures NET si l'information est absente en base
**/
if ($tabBilan['CONSOLIDE']=='N' || $tabBilan['CONSOLIDE']=='C') {
if (!isset($tabBilan['AA2']) && isset($tabBilan['AA'])) $tabBilan['AA2']=$tabBilan['AA'];
if (!isset($tabBilan['AC1']) && (isset($tabBilan['AB'])||isset($tabBilan['AC']))) $tabBilan['AC1']=$tabBilan['AB']-$tabBilan['AC'];
if (!isset($tabBilan['AE1']) && (isset($tabBilan['AD'])||isset($tabBilan['AE']))) $tabBilan['AE1']=$tabBilan['AD']-$tabBilan['AE'];
if (!isset($tabBilan['AG1']) && (isset($tabBilan['AF'])||isset($tabBilan['AG']))) $tabBilan['AG1']=$tabBilan['AF']-$tabBilan['AG'];
if (!isset($tabBilan['AI1']) && (isset($tabBilan['AH'])||isset($tabBilan['AI']))) $tabBilan['AI1']=$tabBilan['AH']-$tabBilan['AI'];
if (!isset($tabBilan['AK1']) && (isset($tabBilan['AJ'])||isset($tabBilan['AK']))) $tabBilan['AK1']=$tabBilan['AJ']-$tabBilan['AK'];
if (!isset($tabBilan['AM1']) && (isset($tabBilan['AL'])||isset($tabBilan['AM']))) $tabBilan['AM1']=$tabBilan['AL']-$tabBilan['AM'];
if (!isset($tabBilan['AO1']) && (isset($tabBilan['AN'])||isset($tabBilan['AO']))) $tabBilan['AO1']=$tabBilan['AN']-$tabBilan['AO'];
if (!isset($tabBilan['AQ1']) && (isset($tabBilan['AP'])||isset($tabBilan['AQ']))) $tabBilan['AQ1']=$tabBilan['AP']-$tabBilan['AQ'];
if (!isset($tabBilan['AS1']) && (isset($tabBilan['AR'])||isset($tabBilan['AS']))) $tabBilan['AS1']=$tabBilan['AR']-$tabBilan['AS'];
if (!isset($tabBilan['AU1']) && (isset($tabBilan['AT'])||isset($tabBilan['AU']))) $tabBilan['AU1']=$tabBilan['AT']-$tabBilan['AU'];
if (!isset($tabBilan['AW1']) && (isset($tabBilan['AV'])||isset($tabBilan['AW']))) $tabBilan['AW1']=$tabBilan['AV']-$tabBilan['AW'];
if (!isset($tabBilan['AY1']) && (isset($tabBilan['AX'])||isset($tabBilan['AY']))) $tabBilan['AY1']=$tabBilan['AX']-$tabBilan['AY'];
if (!isset($tabBilan['CT1']) && (isset($tabBilan['CS'])||isset($tabBilan['CT']))) $tabBilan['CT1']=$tabBilan['CS']-$tabBilan['CT'];
if (!isset($tabBilan['CV1']) && (isset($tabBilan['CU'])||isset($tabBilan['CV']))) $tabBilan['CV1']=$tabBilan['CU']-$tabBilan['CV'];
if (!isset($tabBilan['BC1']) && (isset($tabBilan['BB'])||isset($tabBilan['BC']))) $tabBilan['BC1']=$tabBilan['BB']-$tabBilan['BC'];
if (!isset($tabBilan['BE1']) && (isset($tabBilan['BD'])||isset($tabBilan['BE']))) $tabBilan['BE1']=$tabBilan['BD']-$tabBilan['BE'];
if (!isset($tabBilan['BG1']) && (isset($tabBilan['BF'])||isset($tabBilan['BG']))) $tabBilan['BG1']=$tabBilan['BF']-$tabBilan['BG'];
if (!isset($tabBilan['BI1']) && (isset($tabBilan['BH'])||isset($tabBilan['BI']))) $tabBilan['BI1']=$tabBilan['BH']-$tabBilan['BI'];
if (!isset($tabBilan['BK1']) && (isset($tabBilan['BJ'])||isset($tabBilan['BK']))) $tabBilan['BK1']=$tabBilan['BJ']-$tabBilan['BK'];
if (!isset($tabBilan['BM1']) && (isset($tabBilan['BL'])||isset($tabBilan['BM']))) $tabBilan['BM1']=$tabBilan['BL']-$tabBilan['BM'];
if (!isset($tabBilan['BO1']) && (isset($tabBilan['BN'])||isset($tabBilan['BO']))) $tabBilan['BO1']=$tabBilan['BN']-$tabBilan['BO'];
if (!isset($tabBilan['BQ1']) && (isset($tabBilan['BP'])||isset($tabBilan['BQ']))) $tabBilan['BQ1']=$tabBilan['BP']-$tabBilan['BQ'];
if (!isset($tabBilan['BS1']) && (isset($tabBilan['BR'])||isset($tabBilan['BS']))) $tabBilan['BS1']=$tabBilan['BR']-$tabBilan['BS'];
if (!isset($tabBilan['BU1']) && (isset($tabBilan['BT'])||isset($tabBilan['BU']))) $tabBilan['BU1']=$tabBilan['BT']-$tabBilan['BU'];
if (!isset($tabBilan['BW1']) && (isset($tabBilan['BV'])||isset($tabBilan['BW']))) $tabBilan['BW1']=$tabBilan['BV']-$tabBilan['BW'];
if (!isset($tabBilan['BY1']) && (isset($tabBilan['BX'])||isset($tabBilan['BY']))) $tabBilan['BY1']=$tabBilan['BX']-$tabBilan['BY'];
if (!isset($tabBilan['CA1']) && (isset($tabBilan['BZ'])||isset($tabBilan['CA']))) $tabBilan['CA1']=$tabBilan['BZ']-$tabBilan['CA'];
if (!isset($tabBilan['CC1']) && (isset($tabBilan['CB'])||isset($tabBilan['CC']))) $tabBilan['CC1']=$tabBilan['CB']-$tabBilan['CC'];
if (!isset($tabBilan['CE1']) && (isset($tabBilan['CD'])||isset($tabBilan['CE']))) $tabBilan['CE1']=$tabBilan['CD']-$tabBilan['CE'];
if (!isset($tabBilan['CG1']) && (isset($tabBilan['CF'])||isset($tabBilan['CG']))) $tabBilan['CG1']=$tabBilan['CF']-$tabBilan['CG'];
if (!isset($tabBilan['CI1']) && (isset($tabBilan['CH'])||isset($tabBilan['CI']))) $tabBilan['CI1']=$tabBilan['CH']-$tabBilan['CI'];
if (!isset($tabBilan['CK1']) && (isset($tabBilan['CJ'])||isset($tabBilan['CK']))) $tabBilan['CK1']=$tabBilan['CJ']-$tabBilan['CK'];
if (!isset($tabBilan['CL2']) && isset($tabBilan['CL'])) $tabBilan['CL2']=$tabBilan['CL'];
if (!isset($tabBilan['CM2']) && isset($tabBilan['CM'])) $tabBilan['CM2']=$tabBilan['CM'];
if (!isset($tabBilan['CN2']) && isset($tabBilan['CN'])) $tabBilan['CN2']=$tabBilan['CN'];
if (!isset($tabBilan['1A1']) && (isset($tabBilan['CO'])||isset($tabBilan['1A']))) $tabBilan['1A1']=$tabBilan['CO']-$tabBilan['1A'];
} elseif ($tabBilan['CONSOLIDE']=='S') {
//if (!isset($tabBilan['AC1']) && (isset($tabBilan['AB'])||isset($tabBilan['AC']))) $tabBilan['AC1']=$tabBilan['AB']-$tabBilan['AC'];
if (!isset($tabBilan['013']) && (isset($tabBilan['010'])||isset($tabBilan['012']))) $tabBilan['013']=$tabBilan['010']-$tabBilan['012'];
if (!isset($tabBilan['017']) && (isset($tabBilan['014'])||isset($tabBilan['016']))) $tabBilan['017']=$tabBilan['014']-$tabBilan['016'];
if (!isset($tabBilan['031']) && (isset($tabBilan['028'])||isset($tabBilan['030']))) $tabBilan['031']=$tabBilan['028']-$tabBilan['030'];
if (!isset($tabBilan['043']) && (isset($tabBilan['040'])||isset($tabBilan['042']))) $tabBilan['043']=$tabBilan['040']-$tabBilan['042'];
if (!isset($tabBilan['049']) && (isset($tabBilan['044'])||isset($tabBilan['048']))) $tabBilan['049']=$tabBilan['044']-$tabBilan['048'];
if (!isset($tabBilan['053']) && (isset($tabBilan['050'])||isset($tabBilan['052']))) $tabBilan['053']=$tabBilan['050']-$tabBilan['052'];
if (!isset($tabBilan['063']) && (isset($tabBilan['060'])||isset($tabBilan['062']))) $tabBilan['063']=$tabBilan['060']-$tabBilan['062'];
if (!isset($tabBilan['067']) && (isset($tabBilan['064'])||isset($tabBilan['066']))) $tabBilan['067']=$tabBilan['064']-$tabBilan['066'];
if (!isset($tabBilan['071']) && (isset($tabBilan['068'])||isset($tabBilan['070']))) $tabBilan['071']=$tabBilan['068']-$tabBilan['070'];
if (!isset($tabBilan['075']) && (isset($tabBilan['072'])||isset($tabBilan['074']))) $tabBilan['075']=$tabBilan['072']-$tabBilan['074'];
if (!isset($tabBilan['083']) && (isset($tabBilan['080'])||isset($tabBilan['082']))) $tabBilan['083']=$tabBilan['080']-$tabBilan['082'];
if (!isset($tabBilan['087']) && (isset($tabBilan['084'])||isset($tabBilan['086']))) $tabBilan['087']=$tabBilan['084']-$tabBilan['086'];
if (!isset($tabBilan['091']) && (isset($tabBilan['088'])||isset($tabBilan['090']))) $tabBilan['091']=$tabBilan['088']-$tabBilan['090'];
if (!isset($tabBilan['095']) && (isset($tabBilan['092'])||isset($tabBilan['094']))) $tabBilan['095']=$tabBilan['092']-$tabBilan['094'];
if (!isset($tabBilan['099']) && (isset($tabBilan['096'])||isset($tabBilan['098']))) $tabBilan['099']=$tabBilan['096']-$tabBilan['098'];
if (!isset($tabBilan['113']) && (isset($tabBilan['110'])||isset($tabBilan['112']))) $tabBilan['113']=$tabBilan['110']-$tabBilan['112'];
}
/** Y a t'il suffisament d'informations sur le bilan précédent
**/
if ($bilan['dateExercicePre']*1==0 || $bilan['dureeExercicePre']*1==0 ||
(($tabBilan['FL1']*1==0 || $tabBilan['EE1']*1==0) && ($tabBilan['CONSOLIDE']=='N' || $tabBilan['CONSOLIDE']=='C')) || // Réel Normal ou Consolidé
(($tabBilan['NA3']*1==0 || $tabBilan['NP3']*1==0) && ($tabBilan['CONSOLIDE']=='A' || $tabBilan['CONSOLIDE']=='B')) || // Banque ou Assurance
(($tabBilan['N15']*1==0 || $tabBilan['N32']*1==0) && $tabBilan['CONSOLIDE']=='S') // Réel Simplifié
) {
/** Il n'y a aucune information sur le bilan précédent **/
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes', "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice<'$millesimeDB' ORDER BY dateExercice DESC LIMIT 0,1", true);
$bilanPre=$ret[0];
$tabBilan['DATE_CLOTURE_PRE'] = $bilanPre['dateExercice']; // SSAAMMJJ
$tabBilan['DUREE_MOIS_PRE'] = $bilanPre['dureeExercice'];
if ($bilanPre['monnaie']=='EUR') $monnaiePre='&euro;'; else $monnaiePre=$bilanPre['monnaie'];
switch (strtoupper($bilanPre['unite'])) {
case 'K': $unitePre='K'; break;
case 'U':
case ' ':
case '' : $unitePre=''; break;
case 'M': $unitePre='M'; break;
default: die('Unite Bilan ('. $bilanPre['unite'] .') non prise en charge !'); break;
}
$tabBilanPre['devise'] = /*$unite.*/$monnaiePre;
$tabTmp=explode(';', $bilanPre['postes']);
foreach ($tabTmp as $i=>$strTmp) {
$tabTmp2=explode('=', $strTmp);
if (isset($tabTmp2[1])) {
if ( ($unite=='K' || $unite=='M') && !in_array(array(
'YP', 'YP1', '376', // Effectifs 2033 et 2050
'M2G', 'M2H', // Autres effectifs
'ZK', 'ZK1', // Taux
'IJ', 'JG', 'JH', 'JJ', 'ZR', // pour holding/ste mere
'XP' // Numero de centre de gestion agréé
) , $tabTmp2[0]) )
{
if ($unite=='K') {
$tabBilanPre[$tabTmp2[0]]=$tabTmp2[1]*1000;
} else if ($unite=='M') {
$tabBilanPre[$tabTmp2[0]]=$tabTmp2[1]*1000000;
}
} else {
$tabBilanPre[$tabTmp2[0]]=$tabTmp2[1];
}
}
}
/** Calcul des valeures NET N-1 si l'information est absente du bilan N-1 en base **/
if ($tabBilan['CONSOLIDE']=='N' || $tabBilan['CONSOLIDE']=='C') {
if (!isset($tabBilanPre['AA2']) && isset($tabBilanPre['AA'])) $tabBilanPre['AA2']=$tabBilanPre['AA'];
if (!isset($tabBilanPre['AC1']) && (isset($tabBilanPre['AB'])||isset($tabBilanPre['AC']))) $tabBilanPre['AC1']=$tabBilanPre['AB']-$tabBilanPre['AC'];
if (!isset($tabBilanPre['AE1']) && (isset($tabBilanPre['AD'])||isset($tabBilanPre['AE']))) $tabBilanPre['AE1']=$tabBilanPre['AD']-$tabBilanPre['AE'];
if (!isset($tabBilanPre['AG1']) && (isset($tabBilanPre['AF'])||isset($tabBilanPre['AG']))) $tabBilanPre['AG1']=$tabBilanPre['AF']-$tabBilanPre['AG'];
if (!isset($tabBilanPre['AI1']) && (isset($tabBilanPre['AH'])||isset($tabBilanPre['AI']))) $tabBilanPre['AI1']=$tabBilanPre['AH']-$tabBilanPre['AI'];
if (!isset($tabBilanPre['AK1']) && (isset($tabBilanPre['AJ'])||isset($tabBilanPre['AK']))) $tabBilanPre['AK1']=$tabBilanPre['AJ']-$tabBilanPre['AK'];
if (!isset($tabBilanPre['AM1']) && (isset($tabBilanPre['AL'])||isset($tabBilanPre['AM']))) $tabBilanPre['AM1']=$tabBilanPre['AL']-$tabBilanPre['AM'];
if (!isset($tabBilanPre['AO1']) && (isset($tabBilanPre['AN'])||isset($tabBilanPre['AO']))) $tabBilanPre['AO1']=$tabBilanPre['AN']-$tabBilanPre['AO'];
if (!isset($tabBilanPre['AQ1']) && (isset($tabBilanPre['AP'])||isset($tabBilanPre['AQ']))) $tabBilanPre['AQ1']=$tabBilanPre['AP']-$tabBilanPre['AQ'];
if (!isset($tabBilanPre['AS1']) && (isset($tabBilanPre['AR'])||isset($tabBilanPre['AS']))) $tabBilanPre['AS1']=$tabBilanPre['AR']-$tabBilanPre['AS'];
if (!isset($tabBilanPre['AU1']) && (isset($tabBilanPre['AT'])||isset($tabBilanPre['AU']))) $tabBilanPre['AU1']=$tabBilanPre['AT']-$tabBilanPre['AU'];
if (!isset($tabBilanPre['AW1']) && (isset($tabBilanPre['AV'])||isset($tabBilanPre['AW']))) $tabBilanPre['AW1']=$tabBilanPre['AV']-$tabBilanPre['AW'];
if (!isset($tabBilanPre['AY1']) && (isset($tabBilanPre['AX'])||isset($tabBilanPre['AY']))) $tabBilanPre['AY1']=$tabBilanPre['AX']-$tabBilanPre['AY'];
if (!isset($tabBilanPre['CT1']) && (isset($tabBilanPre['CS'])||isset($tabBilanPre['CT']))) $tabBilanPre['CT1']=$tabBilanPre['CS']-$tabBilanPre['CT'];
if (!isset($tabBilanPre['CV1']) && (isset($tabBilanPre['CU'])||isset($tabBilanPre['CV']))) $tabBilanPre['CV1']=$tabBilanPre['CU']-$tabBilanPre['CV'];
if (!isset($tabBilanPre['BC1']) && (isset($tabBilanPre['BB'])||isset($tabBilanPre['BC']))) $tabBilanPre['BC1']=$tabBilanPre['BB']-$tabBilanPre['BC'];
if (!isset($tabBilanPre['BE1']) && (isset($tabBilanPre['BD'])||isset($tabBilanPre['BE']))) $tabBilanPre['BE1']=$tabBilanPre['BD']-$tabBilanPre['BE'];
if (!isset($tabBilanPre['BG1']) && (isset($tabBilanPre['BF'])||isset($tabBilanPre['BG']))) $tabBilanPre['BG1']=$tabBilanPre['BF']-$tabBilanPre['BG'];
if (!isset($tabBilanPre['BI1']) && (isset($tabBilanPre['BH'])||isset($tabBilanPre['BI']))) $tabBilanPre['BI1']=$tabBilanPre['BH']-$tabBilanPre['BI'];
if (!isset($tabBilanPre['BK1']) && (isset($tabBilanPre['BJ'])||isset($tabBilanPre['BK']))) $tabBilanPre['BK1']=$tabBilanPre['BJ']-$tabBilanPre['BK'];
if (!isset($tabBilanPre['BM1']) && (isset($tabBilanPre['BL'])||isset($tabBilanPre['BM']))) $tabBilanPre['BM1']=$tabBilanPre['BL']-$tabBilanPre['BM'];
if (!isset($tabBilanPre['BO1']) && (isset($tabBilanPre['BN'])||isset($tabBilanPre['BO']))) $tabBilanPre['BO1']=$tabBilanPre['BN']-$tabBilanPre['BO'];
if (!isset($tabBilanPre['BQ1']) && (isset($tabBilanPre['BP'])||isset($tabBilanPre['BQ']))) $tabBilanPre['BQ1']=$tabBilanPre['BP']-$tabBilanPre['BQ'];
if (!isset($tabBilanPre['BS1']) && (isset($tabBilanPre['BR'])||isset($tabBilanPre['BS']))) $tabBilanPre['BS1']=$tabBilanPre['BR']-$tabBilanPre['BS'];
if (!isset($tabBilanPre['BU1']) && (isset($tabBilanPre['BT'])||isset($tabBilanPre['BU']))) $tabBilanPre['BU1']=$tabBilanPre['BT']-$tabBilanPre['BU'];
if (!isset($tabBilanPre['BW1']) && (isset($tabBilanPre['BV'])||isset($tabBilanPre['BW']))) $tabBilanPre['BW1']=$tabBilanPre['BV']-$tabBilanPre['BW'];
if (!isset($tabBilanPre['BY1']) && (isset($tabBilanPre['BX'])||isset($tabBilanPre['BY']))) $tabBilanPre['BY1']=$tabBilanPre['BX']-$tabBilanPre['BY'];
if (!isset($tabBilanPre['CA1']) && (isset($tabBilanPre['BZ'])||isset($tabBilanPre['CA']))) $tabBilanPre['CA1']=$tabBilanPre['BZ']-$tabBilanPre['CA'];
if (!isset($tabBilanPre['CC1']) && (isset($tabBilanPre['CB'])||isset($tabBilanPre['CC']))) $tabBilanPre['CC1']=$tabBilanPre['CB']-$tabBilanPre['CC'];
if (!isset($tabBilanPre['CE1']) && (isset($tabBilanPre['CD'])||isset($tabBilanPre['CE']))) $tabBilanPre['CE1']=$tabBilanPre['CD']-$tabBilanPre['CE'];
if (!isset($tabBilanPre['CG1']) && (isset($tabBilanPre['CF'])||isset($tabBilanPre['CG']))) $tabBilanPre['CG1']=$tabBilanPre['CF']-$tabBilanPre['CG'];
if (!isset($tabBilanPre['CI1']) && (isset($tabBilanPre['CH'])||isset($tabBilanPre['CI']))) $tabBilanPre['CI1']=$tabBilanPre['CH']-$tabBilanPre['CI'];
if (!isset($tabBilanPre['CK1']) && (isset($tabBilanPre['CJ'])||isset($tabBilanPre['CK']))) $tabBilanPre['CK1']=$tabBilanPre['CJ']-$tabBilanPre['CK'];
if (!isset($tabBilanPre['CL2']) && isset($tabBilanPre['CL'])) $tabBilanPre['CL2']=$tabBilanPre['CL'];
if (!isset($tabBilanPre['CM2']) && isset($tabBilanPre['CM'])) $tabBilanPre['CM2']=$tabBilanPre['CM'];
if (!isset($tabBilanPre['CN2']) && isset($tabBilanPre['CN'])) $tabBilanPre['CN2']=$tabBilanPre['CN'];
if (!isset($tabBilanPre['1A1']) && (isset($tabBilanPre['CO'])||isset($tabBilanPre['1A']))) $tabBilanPre['1A1']=$tabBilanPre['CO']-$tabBilanPre['1A'];
/** Reprises des valeures N-1 si l'information est absente en base **/
// Actif
if (!isset($tabBilan['AA3']) && isset($tabBilanPre['AA2'])) $tabBilan['AA3']=$tabBilanPre['AA2'];
if (!isset($tabBilan['AC2']) && isset($tabBilanPre['AC1'])) $tabBilan['AC2']=$tabBilanPre['AC1'];
if (!isset($tabBilan['AE2']) && isset($tabBilanPre['AE1'])) $tabBilan['AE2']=$tabBilanPre['AE1'];
if (!isset($tabBilan['AG2']) && isset($tabBilanPre['AG1'])) $tabBilan['AG2']=$tabBilanPre['AG1'];
if (!isset($tabBilan['AI2']) && isset($tabBilanPre['AI1'])) $tabBilan['AI2']=$tabBilanPre['AI1'];
if (!isset($tabBilan['AK2']) && isset($tabBilanPre['AK1'])) $tabBilan['AK2']=$tabBilanPre['AK1'];
if (!isset($tabBilan['AM2']) && isset($tabBilanPre['AM1'])) $tabBilan['AM2']=$tabBilanPre['AM1'];
if (!isset($tabBilan['AO2']) && isset($tabBilanPre['AO1'])) $tabBilan['AO2']=$tabBilanPre['AO1'];
if (!isset($tabBilan['AQ2']) && isset($tabBilanPre['AQ1'])) $tabBilan['AQ2']=$tabBilanPre['AQ1'];
if (!isset($tabBilan['AS2']) && isset($tabBilanPre['AS1'])) $tabBilan['AS2']=$tabBilanPre['AS1'];
if (!isset($tabBilan['AU2']) && isset($tabBilanPre['AU1'])) $tabBilan['AU2']=$tabBilanPre['AU1'];
if (!isset($tabBilan['AW2']) && isset($tabBilanPre['AW1'])) $tabBilan['AW2']=$tabBilanPre['AW1'];
if (!isset($tabBilan['AY2']) && isset($tabBilanPre['AY1'])) $tabBilan['AY2']=$tabBilanPre['AY1'];
if (!isset($tabBilan['CT2']) && isset($tabBilanPre['CT1'])) $tabBilan['CT2']=$tabBilanPre['CT1'];
if (!isset($tabBilan['CV2']) && isset($tabBilanPre['CV1'])) $tabBilan['CV2']=$tabBilanPre['CV1'];
if (!isset($tabBilan['BC2']) && isset($tabBilanPre['BC1'])) $tabBilan['BC2']=$tabBilanPre['BC1'];
if (!isset($tabBilan['BE2']) && isset($tabBilanPre['BE1'])) $tabBilan['BE2']=$tabBilanPre['BE1'];
if (!isset($tabBilan['BG2']) && isset($tabBilanPre['BG1'])) $tabBilan['BG2']=$tabBilanPre['BG1'];
if (!isset($tabBilan['BI2']) && isset($tabBilanPre['BI1'])) $tabBilan['BI2']=$tabBilanPre['BI1'];
if (!isset($tabBilan['BK2']) && isset($tabBilanPre['BK1'])) $tabBilan['BK2']=$tabBilanPre['BK1'];
if (!isset($tabBilan['BM2']) && isset($tabBilanPre['BM1'])) $tabBilan['BM2']=$tabBilanPre['BM1'];
if (!isset($tabBilan['BO2']) && isset($tabBilanPre['BO1'])) $tabBilan['BO2']=$tabBilanPre['BO1'];
if (!isset($tabBilan['BQ2']) && isset($tabBilanPre['BQ1'])) $tabBilan['BQ2']=$tabBilanPre['BQ1'];
if (!isset($tabBilan['BS2']) && isset($tabBilanPre['BS1'])) $tabBilan['BS2']=$tabBilanPre['BS1'];
if (!isset($tabBilan['BU2']) && isset($tabBilanPre['BU1'])) $tabBilan['BU2']=$tabBilanPre['BU1'];
if (!isset($tabBilan['BW2']) && isset($tabBilanPre['BW1'])) $tabBilan['BW2']=$tabBilanPre['BW1'];
if (!isset($tabBilan['BY2']) && isset($tabBilanPre['BY1'])) $tabBilan['BY2']=$tabBilanPre['BY1'];
if (!isset($tabBilan['CA2']) && isset($tabBilanPre['CA1'])) $tabBilan['CA2']=$tabBilanPre['CA1'];
if (!isset($tabBilan['CC2']) && isset($tabBilanPre['CC1'])) $tabBilan['CC2']=$tabBilanPre['CC1'];
if (!isset($tabBilan['CE2']) && isset($tabBilanPre['CE1'])) $tabBilan['CE2']=$tabBilanPre['CE1'];
if (!isset($tabBilan['CG2']) && isset($tabBilanPre['CG1'])) $tabBilan['CG2']=$tabBilanPre['CG1'];
if (!isset($tabBilan['CI2']) && isset($tabBilanPre['CI1'])) $tabBilan['CI2']=$tabBilanPre['CI1'];
if (!isset($tabBilan['CK2']) && isset($tabBilanPre['CK1'])) $tabBilan['CK2']=$tabBilanPre['CK1'];
if (!isset($tabBilan['CL3']) && isset($tabBilanPre['CL2'])) $tabBilan['CL3']=$tabBilanPre['CL2'];
if (!isset($tabBilan['CM3']) && isset($tabBilanPre['CM2'])) $tabBilan['CM3']=$tabBilanPre['CM2'];
if (!isset($tabBilan['CN3']) && isset($tabBilanPre['CN2'])) $tabBilan['CN3']=$tabBilanPre['CN2'];
if (!isset($tabBilan['1A2']) && isset($tabBilanPre['1A1'])) $tabBilan['1A2']=$tabBilanPre['1A1'];
// Passif
if (!isset($tabBilan['DA1']) && isset($tabBilanPre['DA'])) $tabBilan['DA1']=$tabBilanPre['DA'];
if (!isset($tabBilan['DB1']) && isset($tabBilanPre['DB'])) $tabBilan['DB1']=$tabBilanPre['DB'];
if (!isset($tabBilan['DC1']) && isset($tabBilanPre['DC'])) $tabBilan['DC1']=$tabBilanPre['DC'];
if (!isset($tabBilan['DD1']) && isset($tabBilanPre['DD'])) $tabBilan['DD1']=$tabBilanPre['DD'];
if (!isset($tabBilan['DE1']) && isset($tabBilanPre['DE'])) $tabBilan['DE1']=$tabBilanPre['DE'];
if (!isset($tabBilan['DF1']) && isset($tabBilanPre['DF'])) $tabBilan['DF1']=$tabBilanPre['DF'];
if (!isset($tabBilan['DG1']) && isset($tabBilanPre['DG'])) $tabBilan['DG1']=$tabBilanPre['DG'];
if (!isset($tabBilan['DH1']) && isset($tabBilanPre['DH'])) $tabBilan['DH1']=$tabBilanPre['DH'];
if (!isset($tabBilan['DI1']) && isset($tabBilanPre['DI'])) $tabBilan['DI1']=$tabBilanPre['DI'];
if (!isset($tabBilan['DJ1']) && isset($tabBilanPre['DJ'])) $tabBilan['DJ1']=$tabBilanPre['DJ'];
if (!isset($tabBilan['DK1']) && isset($tabBilanPre['DK'])) $tabBilan['DK1']=$tabBilanPre['DK'];
if (!isset($tabBilan['DL1']) && isset($tabBilanPre['DL'])) $tabBilan['DL1']=$tabBilanPre['DL'];
if (!isset($tabBilan['DM1']) && isset($tabBilanPre['DM'])) $tabBilan['DM1']=$tabBilanPre['DM'];
if (!isset($tabBilan['DN1']) && isset($tabBilanPre['DN'])) $tabBilan['DN1']=$tabBilanPre['DN'];
if (!isset($tabBilan['DO1']) && isset($tabBilanPre['DO'])) $tabBilan['DO1']=$tabBilanPre['DO'];
if (!isset($tabBilan['DP1']) && isset($tabBilanPre['DP'])) $tabBilan['DP1']=$tabBilanPre['DP'];
if (!isset($tabBilan['DQ1']) && isset($tabBilanPre['DQ'])) $tabBilan['DQ1']=$tabBilanPre['DQ'];
if (!isset($tabBilan['DR1']) && isset($tabBilanPre['DR'])) $tabBilan['DR1']=$tabBilanPre['DR'];
if (!isset($tabBilan['DS1']) && isset($tabBilanPre['DS'])) $tabBilan['DS1']=$tabBilanPre['DS'];
if (!isset($tabBilan['DT1']) && isset($tabBilanPre['DT'])) $tabBilan['DT1']=$tabBilanPre['DT'];
if (!isset($tabBilan['DU1']) && isset($tabBilanPre['DU'])) $tabBilan['DU1']=$tabBilanPre['DU'];
if (!isset($tabBilan['DV1']) && isset($tabBilanPre['DV'])) $tabBilan['DV1']=$tabBilanPre['DV'];
if (!isset($tabBilan['DW1']) && isset($tabBilanPre['DW'])) $tabBilan['DW1']=$tabBilanPre['DW'];
if (!isset($tabBilan['DX1']) && isset($tabBilanPre['DX'])) $tabBilan['DX1']=$tabBilanPre['DX'];
if (!isset($tabBilan['DY1']) && isset($tabBilanPre['DY'])) $tabBilan['DY1']=$tabBilanPre['DY'];
if (!isset($tabBilan['DZ1']) && isset($tabBilanPre['DZ'])) $tabBilan['DZ1']=$tabBilanPre['DZ'];
if (!isset($tabBilan['EA1']) && isset($tabBilanPre['EA'])) $tabBilan['EA1']=$tabBilanPre['EA'];
if (!isset($tabBilan['EB1']) && isset($tabBilanPre['EB'])) $tabBilan['EB1']=$tabBilanPre['EB'];
if (!isset($tabBilan['EC1']) && isset($tabBilanPre['EC'])) $tabBilan['EC1']=$tabBilanPre['EC'];
if (!isset($tabBilan['ED1']) && isset($tabBilanPre['ED'])) $tabBilan['ED1']=$tabBilanPre['ED'];
if (!isset($tabBilan['EE1']) && isset($tabBilanPre['EE'])) $tabBilan['EE1']=$tabBilanPre['EE'];
if (!isset($tabBilan['1B1']) && isset($tabBilanPre['1B'])) $tabBilan['1B1']=$tabBilanPre['1B'];
if (!isset($tabBilan['1C1']) && isset($tabBilanPre['1C'])) $tabBilan['1C1']=$tabBilanPre['1C'];
if (!isset($tabBilan['1D1']) && isset($tabBilanPre['1D'])) $tabBilan['1D1']=$tabBilanPre['1D'];
if (!isset($tabBilan['1E1']) && isset($tabBilanPre['1E'])) $tabBilan['1E1']=$tabBilanPre['1E'];
if (!isset($tabBilan['EF1']) && isset($tabBilanPre['EF'])) $tabBilan['EF1']=$tabBilanPre['EF'];
if (!isset($tabBilan['EG1']) && isset($tabBilanPre['EG'])) $tabBilan['EG1']=$tabBilanPre['EG'];
if (!isset($tabBilan['EH1']) && isset($tabBilanPre['EH'])) $tabBilan['EH1']=$tabBilanPre['EH'];
// Compte de Résultats
if (!isset($tabBilan['FC1']) && isset($tabBilanPre['FC'])) $tabBilan['FC1']=$tabBilanPre['FC'];
if (!isset($tabBilan['FF1']) && isset($tabBilanPre['FF'])) $tabBilan['FF1']=$tabBilanPre['FF'];
if (!isset($tabBilan['FI1']) && isset($tabBilanPre['FI'])) $tabBilan['FI1']=$tabBilanPre['FI'];
if (!isset($tabBilan['FL1']) && isset($tabBilanPre['FL'])) $tabBilan['FL1']=$tabBilanPre['FL'];
if (!isset($tabBilan['FM1']) && isset($tabBilanPre['FM'])) $tabBilan['FM1']=$tabBilanPre['FM'];
if (!isset($tabBilan['FN1']) && isset($tabBilanPre['FN'])) $tabBilan['FN1']=$tabBilanPre['FN'];
if (!isset($tabBilan['FO1']) && isset($tabBilanPre['FO'])) $tabBilan['FO1']=$tabBilanPre['FO'];
if (!isset($tabBilan['FP1']) && isset($tabBilanPre['FP'])) $tabBilan['FP1']=$tabBilanPre['FP'];
if (!isset($tabBilan['FQ1']) && isset($tabBilanPre['FQ'])) $tabBilan['FQ1']=$tabBilanPre['FQ'];
if (!isset($tabBilan['FR1']) && isset($tabBilanPre['FR'])) $tabBilan['FR1']=$tabBilanPre['FR'];
if (!isset($tabBilan['FS1']) && isset($tabBilanPre['FS'])) $tabBilan['FS1']=$tabBilanPre['FS'];
if (!isset($tabBilan['FT1']) && isset($tabBilanPre['FT'])) $tabBilan['FT1']=$tabBilanPre['FT'];
if (!isset($tabBilan['FU1']) && isset($tabBilanPre['FU'])) $tabBilan['FU1']=$tabBilanPre['FU'];
if (!isset($tabBilan['FV1']) && isset($tabBilanPre['FV'])) $tabBilan['FV1']=$tabBilanPre['FV'];
if (!isset($tabBilan['FW1']) && isset($tabBilanPre['FW'])) $tabBilan['FW1']=$tabBilanPre['FW'];
if (!isset($tabBilan['FX1']) && isset($tabBilanPre['FX'])) $tabBilan['FX1']=$tabBilanPre['FX'];
if (!isset($tabBilan['FY1']) && isset($tabBilanPre['FY'])) $tabBilan['FY1']=$tabBilanPre['FY'];
if (!isset($tabBilan['FZ1']) && isset($tabBilanPre['FZ'])) $tabBilan['FZ1']=$tabBilanPre['FZ'];
if (!isset($tabBilan['GA1']) && isset($tabBilanPre['GA'])) $tabBilan['GA1']=$tabBilanPre['GA'];
if (!isset($tabBilan['GB1']) && isset($tabBilanPre['GB'])) $tabBilan['GB1']=$tabBilanPre['GB'];
if (!isset($tabBilan['GC1']) && isset($tabBilanPre['GC'])) $tabBilan['GC1']=$tabBilanPre['GC'];
if (!isset($tabBilan['GD1']) && isset($tabBilanPre['GD'])) $tabBilan['GD1']=$tabBilanPre['GD'];
if (!isset($tabBilan['GE1']) && isset($tabBilanPre['GE'])) $tabBilan['GE1']=$tabBilanPre['GE'];
if (!isset($tabBilan['GF1']) && isset($tabBilanPre['GF'])) $tabBilan['GF1']=$tabBilanPre['GF'];
if (!isset($tabBilan['GG1']) && isset($tabBilanPre['GG'])) $tabBilan['GG1']=$tabBilanPre['GG'];
if (!isset($tabBilan['GH1']) && isset($tabBilanPre['GH'])) $tabBilan['GH1']=$tabBilanPre['GH'];
if (!isset($tabBilan['GI1']) && isset($tabBilanPre['GI'])) $tabBilan['GI1']=$tabBilanPre['GI'];
if (!isset($tabBilan['GJ1']) && isset($tabBilanPre['GJ'])) $tabBilan['GJ1']=$tabBilanPre['GJ'];
if (!isset($tabBilan['GK1']) && isset($tabBilanPre['GK'])) $tabBilan['GK1']=$tabBilanPre['GK'];
if (!isset($tabBilan['GL1']) && isset($tabBilanPre['GL'])) $tabBilan['GL1']=$tabBilanPre['GL'];
if (!isset($tabBilan['GM1']) && isset($tabBilanPre['GM'])) $tabBilan['GM1']=$tabBilanPre['GM'];
if (!isset($tabBilan['GN1']) && isset($tabBilanPre['GN'])) $tabBilan['GN1']=$tabBilanPre['GN'];
if (!isset($tabBilan['GO1']) && isset($tabBilanPre['GO'])) $tabBilan['GO1']=$tabBilanPre['GO'];
if (!isset($tabBilan['GP1']) && isset($tabBilanPre['GP'])) $tabBilan['GP1']=$tabBilanPre['GP'];
if (!isset($tabBilan['GQ1']) && isset($tabBilanPre['GQ'])) $tabBilan['GQ1']=$tabBilanPre['GQ'];
if (!isset($tabBilan['GR1']) && isset($tabBilanPre['GR'])) $tabBilan['GR1']=$tabBilanPre['GR'];
if (!isset($tabBilan['GS1']) && isset($tabBilanPre['GS'])) $tabBilan['GS1']=$tabBilanPre['GS'];
if (!isset($tabBilan['GT1']) && isset($tabBilanPre['GT'])) $tabBilan['GT1']=$tabBilanPre['GT'];
if (!isset($tabBilan['GU1']) && isset($tabBilanPre['GU'])) $tabBilan['GU1']=$tabBilanPre['GU'];
if (!isset($tabBilan['GV1']) && isset($tabBilanPre['GV'])) $tabBilan['GV1']=$tabBilanPre['GV'];
if (!isset($tabBilan['GW1']) && isset($tabBilanPre['GW'])) $tabBilan['GW1']=$tabBilanPre['GW'];
if (!isset($tabBilan['HA1']) && isset($tabBilanPre['HA'])) $tabBilan['HA1']=$tabBilanPre['HA'];
if (!isset($tabBilan['HB1']) && isset($tabBilanPre['HB'])) $tabBilan['HB1']=$tabBilanPre['HB'];
if (!isset($tabBilan['HC1']) && isset($tabBilanPre['HC'])) $tabBilan['HC1']=$tabBilanPre['HC'];
if (!isset($tabBilan['HD1']) && isset($tabBilanPre['HD'])) $tabBilan['HD1']=$tabBilanPre['HD'];
if (!isset($tabBilan['HE1']) && isset($tabBilanPre['HE'])) $tabBilan['HE1']=$tabBilanPre['HE'];
if (!isset($tabBilan['HF1']) && isset($tabBilanPre['HF'])) $tabBilan['HF1']=$tabBilanPre['HF'];
if (!isset($tabBilan['HG1']) && isset($tabBilanPre['HG'])) $tabBilan['HG1']=$tabBilanPre['HG'];
if (!isset($tabBilan['HH1']) && isset($tabBilanPre['HH'])) $tabBilan['HH1']=$tabBilanPre['HH'];
if (!isset($tabBilan['HI1']) && isset($tabBilanPre['HI'])) $tabBilan['HI1']=$tabBilanPre['HI'];
if (!isset($tabBilan['HJ1']) && isset($tabBilanPre['HJ'])) $tabBilan['HJ1']=$tabBilanPre['HJ'];
if (!isset($tabBilan['HK1']) && isset($tabBilanPre['HK'])) $tabBilan['HK1']=$tabBilanPre['HK'];
if (!isset($tabBilan['HL1']) && isset($tabBilanPre['HL'])) $tabBilan['HL1']=$tabBilanPre['HL'];
if (!isset($tabBilan['HM1']) && isset($tabBilanPre['HM'])) $tabBilan['HM1']=$tabBilanPre['HM'];
if (!isset($tabBilan['HN1']) && isset($tabBilanPre['HN'])) $tabBilan['HN1']=$tabBilanPre['HN'];
if (!isset($tabBilan['HO1']) && isset($tabBilanPre['HO'])) $tabBilan['HO1']=$tabBilanPre['HO'];
if (!isset($tabBilan['HY1']) && isset($tabBilanPre['HY'])) $tabBilan['HY1']=$tabBilanPre['HY'];
if (!isset($tabBilan['1G1']) && isset($tabBilanPre['1G'])) $tabBilan['1G1']=$tabBilanPre['1G'];
if (!isset($tabBilan['HP1']) && isset($tabBilanPre['HP'])) $tabBilan['HP1']=$tabBilanPre['HP'];
if (!isset($tabBilan['HQ1']) && isset($tabBilanPre['HQ'])) $tabBilan['HQ1']=$tabBilanPre['HQ'];
if (!isset($tabBilan['1H1']) && isset($tabBilanPre['1H'])) $tabBilan['1H1']=$tabBilanPre['1H'];
if (!isset($tabBilan['1J1']) && isset($tabBilanPre['1J'])) $tabBilan['1J1']=$tabBilanPre['1J'];
if (!isset($tabBilan['1K1']) && isset($tabBilanPre['1K'])) $tabBilan['1K1']=$tabBilanPre['1K'];
if (!isset($tabBilan['HX1']) && isset($tabBilanPre['HX'])) $tabBilan['HX1']=$tabBilanPre['HX'];
if (!isset($tabBilan['A11']) && isset($tabBilanPre['A1'])) $tabBilan['A11']=$tabBilanPre['A1'];
if (!isset($tabBilan['A21']) && isset($tabBilanPre['A2'])) $tabBilan['A21']=$tabBilanPre['A2'];
if (!isset($tabBilan['A31']) && isset($tabBilanPre['A3'])) $tabBilan['A31']=$tabBilanPre['A3'];
if (!isset($tabBilan['A41']) && isset($tabBilanPre['A4'])) $tabBilan['A41']=$tabBilanPre['A4'];
} elseif ($tabBilan['CONSOLIDE']=='S') {
// Calcul des chiffres net N-1 si absent 2033
if (!isset($tabBilanPre['013']) && (isset($tabBilanPre['010'])||isset($tabBilanPre['012'])))$tabBilanPre['013']=$tabBilanPre['010']-$tabBilanPre['012'];
if (!isset($tabBilanPre['017']) && (isset($tabBilanPre['014'])||isset($tabBilanPre['016'])))$tabBilanPre['017']=$tabBilanPre['014']-$tabBilanPre['016'];
if (!isset($tabBilanPre['031']) && (isset($tabBilanPre['028'])||isset($tabBilanPre['030'])))$tabBilanPre['031']=$tabBilanPre['028']-$tabBilanPre['030'];
if (!isset($tabBilanPre['043']) && (isset($tabBilanPre['040'])||isset($tabBilanPre['042'])))$tabBilanPre['043']=$tabBilanPre['040']-$tabBilanPre['042'];
if (!isset($tabBilanPre['049']) && (isset($tabBilanPre['044'])||isset($tabBilanPre['048'])))$tabBilanPre['049']=$tabBilanPre['044']-$tabBilanPre['048'];
if (!isset($tabBilanPre['053']) && (isset($tabBilanPre['050'])||isset($tabBilanPre['052'])))$tabBilanPre['053']=$tabBilanPre['050']-$tabBilanPre['052'];
if (!isset($tabBilanPre['063']) && (isset($tabBilanPre['060'])||isset($tabBilanPre['062'])))$tabBilanPre['063']=$tabBilanPre['060']-$tabBilanPre['062'];
if (!isset($tabBilanPre['067']) && (isset($tabBilanPre['064'])||isset($tabBilanPre['066'])))$tabBilanPre['067']=$tabBilanPre['064']-$tabBilanPre['066'];
if (!isset($tabBilanPre['071']) && (isset($tabBilanPre['068'])||isset($tabBilanPre['070'])))$tabBilanPre['071']=$tabBilanPre['068']-$tabBilanPre['070'];
if (!isset($tabBilanPre['075']) && (isset($tabBilanPre['072'])||isset($tabBilanPre['074'])))$tabBilanPre['075']=$tabBilanPre['072']-$tabBilanPre['074'];
if (!isset($tabBilanPre['083']) && (isset($tabBilanPre['080'])||isset($tabBilanPre['082'])))$tabBilanPre['083']=$tabBilanPre['080']-$tabBilanPre['082'];
if (!isset($tabBilanPre['087']) && (isset($tabBilanPre['084'])||isset($tabBilanPre['086'])))$tabBilanPre['087']=$tabBilanPre['084']-$tabBilanPre['086'];
if (!isset($tabBilanPre['091']) && (isset($tabBilanPre['088'])||isset($tabBilanPre['090'])))$tabBilanPre['091']=$tabBilanPre['088']-$tabBilanPre['090'];
if (!isset($tabBilanPre['095']) && (isset($tabBilanPre['092'])||isset($tabBilanPre['094'])))$tabBilanPre['095']=$tabBilanPre['092']-$tabBilanPre['094'];
if (!isset($tabBilanPre['099']) && (isset($tabBilanPre['096'])||isset($tabBilanPre['098'])))$tabBilanPre['099']=$tabBilanPre['096']-$tabBilanPre['098'];
if (!isset($tabBilanPre['113']) && (isset($tabBilanPre['110'])||isset($tabBilanPre['112'])))$tabBilanPre['113']=$tabBilanPre['110']-$tabBilanPre['112'];
// Récupération des chiffres N-1 si absent du bilan N
// ACTIF 2033
if (!isset($tabBilan['N00']) && isset($tabBilanPre['013'])) $tabBilan['N00']=$tabBilanPre['013'];
if (!isset($tabBilan['N01']) && isset($tabBilanPre['017'])) $tabBilan['N01']=$tabBilanPre['017'];
if (!isset($tabBilan['N02']) && isset($tabBilanPre['031'])) $tabBilan['N02']=$tabBilanPre['031'];
if (!isset($tabBilan['N03']) && isset($tabBilanPre['043'])) $tabBilan['N03']=$tabBilanPre['043'];
if (!isset($tabBilan['N04']) && isset($tabBilanPre['049'])) $tabBilan['N04']=$tabBilanPre['049'];
if (!isset($tabBilan['N05']) && isset($tabBilanPre['053'])) $tabBilan['N05']=$tabBilanPre['053'];
if (!isset($tabBilan['N06']) && isset($tabBilanPre['063'])) $tabBilan['N06']=$tabBilanPre['063'];
if (!isset($tabBilan['N07']) && isset($tabBilanPre['067'])) $tabBilan['N07']=$tabBilanPre['067'];
if (!isset($tabBilan['N08']) && isset($tabBilanPre['071'])) $tabBilan['N08']=$tabBilanPre['071'];
if (!isset($tabBilan['N09']) && isset($tabBilanPre['075'])) $tabBilan['N09']=$tabBilanPre['075'];
if (!isset($tabBilan['N10']) && isset($tabBilanPre['083'])) $tabBilan['N10']=$tabBilanPre['083'];
if (!isset($tabBilan['N11']) && isset($tabBilanPre['087'])) $tabBilan['N11']=$tabBilanPre['087'];
if (!isset($tabBilan['N12']) && isset($tabBilanPre['091'])) $tabBilan['N12']=$tabBilanPre['091'];
if (!isset($tabBilan['N13']) && isset($tabBilanPre['095'])) $tabBilan['N13']=$tabBilanPre['095'];
if (!isset($tabBilan['N14']) && isset($tabBilanPre['099'])) $tabBilan['N14']=$tabBilanPre['099'];
if (!isset($tabBilan['N15']) && isset($tabBilanPre['113'])) $tabBilan['N15']=$tabBilanPre['113'];
// PASSIF 2033
if (!isset($tabBilan['N16']) && isset($tabBilanPre['120'])) $tabBilan['N16']=$tabBilanPre['120'];
if (!isset($tabBilan['N17']) && isset($tabBilanPre['124'])) $tabBilan['N17']=$tabBilanPre['124'];
if (!isset($tabBilan['N18']) && isset($tabBilanPre['126'])) $tabBilan['N18']=$tabBilanPre['126'];
if (!isset($tabBilan['N19']) && isset($tabBilanPre['130'])) $tabBilan['N19']=$tabBilanPre['130'];
if (!isset($tabBilan['N20']) && isset($tabBilanPre['132'])) $tabBilan['N20']=$tabBilanPre['132'];
if (!isset($tabBilan['N21']) && isset($tabBilanPre['134'])) $tabBilan['N21']=$tabBilanPre['134'];
if (!isset($tabBilan['N22']) && isset($tabBilanPre['136'])) $tabBilan['N22']=$tabBilanPre['136'];
if (!isset($tabBilan['N23']) && isset($tabBilanPre['140'])) $tabBilan['N23']=$tabBilanPre['140'];
if (!isset($tabBilan['N24']) && isset($tabBilanPre['142'])) $tabBilan['N24']=$tabBilanPre['142'];
if (!isset($tabBilan['N25']) && isset($tabBilanPre['154'])) $tabBilan['N25']=$tabBilanPre['154'];
if (!isset($tabBilan['N26']) && isset($tabBilanPre['156'])) $tabBilan['N26']=$tabBilanPre['156'];
if (!isset($tabBilan['N27']) && isset($tabBilanPre['164'])) $tabBilan['N27']=$tabBilanPre['164'];
if (!isset($tabBilan['N28']) && isset($tabBilanPre['166'])) $tabBilan['N28']=$tabBilanPre['166'];
if (!isset($tabBilan['N29']) && isset($tabBilanPre['172'])) $tabBilan['N29']=$tabBilanPre['172'];
if (!isset($tabBilan['N30']) && isset($tabBilanPre['174'])) $tabBilan['N30']=$tabBilanPre['174'];
if (!isset($tabBilan['N31']) && isset($tabBilanPre['176'])) $tabBilan['N31']=$tabBilanPre['176'];
if (!isset($tabBilan['N32']) && isset($tabBilanPre['180'])) $tabBilan['N32']=$tabBilanPre['180'];
// COMPTE DE RESULTAT 2033
if (!isset($tabBilan['N33']) && isset($tabBilanPre['210'])) $tabBilan['N33']=$tabBilanPre['210'];
if (!isset($tabBilan['N34']) && isset($tabBilanPre['214'])) $tabBilan['N34']=$tabBilanPre['214'];
if (!isset($tabBilan['N35']) && isset($tabBilanPre['218'])) $tabBilan['N35']=$tabBilanPre['218'];
if (!isset($tabBilan['N36']) && isset($tabBilanPre['222'])) $tabBilan['N36']=$tabBilanPre['222'];
if (!isset($tabBilan['N37']) && isset($tabBilanPre['224'])) $tabBilan['N37']=$tabBilanPre['224'];
if (!isset($tabBilan['N38']) && isset($tabBilanPre['226'])) $tabBilan['N38']=$tabBilanPre['226'];
if (!isset($tabBilan['N39']) && isset($tabBilanPre['230'])) $tabBilan['N39']=$tabBilanPre['230'];
if (!isset($tabBilan['N40']) && isset($tabBilanPre['232'])) $tabBilan['N40']=$tabBilanPre['232'];
if (!isset($tabBilan['N41']) && isset($tabBilanPre['234'])) $tabBilan['N41']=$tabBilanPre['234'];
if (!isset($tabBilan['N42']) && isset($tabBilanPre['236'])) $tabBilan['N42']=$tabBilanPre['236'];
if (!isset($tabBilan['N43']) && isset($tabBilanPre['238'])) $tabBilan['N43']=$tabBilanPre['238'];
if (!isset($tabBilan['N44']) && isset($tabBilanPre['240'])) $tabBilan['N44']=$tabBilanPre['240'];
if (!isset($tabBilan['N45']) && isset($tabBilanPre['242'])) $tabBilan['N45']=$tabBilanPre['242'];
if (!isset($tabBilan['N46']) && isset($tabBilanPre['244'])) $tabBilan['N46']=$tabBilanPre['244'];
if (!isset($tabBilan['N47']) && isset($tabBilanPre['250'])) $tabBilan['N47']=$tabBilanPre['250'];
if (!isset($tabBilan['N48']) && isset($tabBilanPre['252'])) $tabBilan['N48']=$tabBilanPre['252'];
if (!isset($tabBilan['N49']) && isset($tabBilanPre['254'])) $tabBilan['N49']=$tabBilanPre['254'];
if (!isset($tabBilan['N50']) && isset($tabBilanPre['256'])) $tabBilan['N50']=$tabBilanPre['256'];
if (!isset($tabBilan['N51']) && isset($tabBilanPre['262'])) $tabBilan['N51']=$tabBilanPre['262'];
if (!isset($tabBilan['N52']) && isset($tabBilanPre['264'])) $tabBilan['N52']=$tabBilanPre['264'];
if (!isset($tabBilan['N53']) && isset($tabBilanPre['270'])) $tabBilan['N53']=$tabBilanPre['270'];
if (!isset($tabBilan['N54']) && isset($tabBilanPre['280'])) $tabBilan['N54']=$tabBilanPre['280'];
if (!isset($tabBilan['N55']) && isset($tabBilanPre['290'])) $tabBilan['N55']=$tabBilanPre['290'];
if (!isset($tabBilan['N56']) && isset($tabBilanPre['294'])) $tabBilan['N56']=$tabBilanPre['294'];
if (!isset($tabBilan['N57']) && isset($tabBilanPre['300'])) $tabBilan['N57']=$tabBilanPre['300'];
if (!isset($tabBilan['N58']) && isset($tabBilanPre['306'])) $tabBilan['N58']=$tabBilanPre['306'];
if (!isset($tabBilan['N59']) && isset($tabBilanPre['310'])) $tabBilan['N59']=$tabBilanPre['310'];
} elseif ($tabBilan['CONSOLIDE']=='A' || $tabBilan['CONSOLIDE']=='B') {
// BANQUES
if (!isset($tabBilan['NA1']) && isset($tabBilanPre['AA1'])) $tabBilan['NA1']=$tabBilanPre['AA1'];
if (!isset($tabBilan['NA2']) && isset($tabBilanPre['AA2'])) $tabBilan['NA2']=$tabBilanPre['AA2'];
if (!isset($tabBilan['NA3']) && isset($tabBilanPre['AA3'])) $tabBilan['NA3']=$tabBilanPre['AA3'];
if (!isset($tabBilan['NP1']) && isset($tabBilanPre['AP1'])) $tabBilan['NP1']=$tabBilanPre['AP1'];
if (!isset($tabBilan['NP2']) && isset($tabBilanPre['AP2'])) $tabBilan['NP2']=$tabBilanPre['AP2'];
if (!isset($tabBilan['NP3']) && isset($tabBilanPre['AP3'])) $tabBilan['NP3']=$tabBilanPre['AP3'];
if (!isset($tabBilan['NP4']) && isset($tabBilanPre['AP4'])) $tabBilan['NP4']=$tabBilanPre['AP4'];
if (!isset($tabBilan['NP5']) && isset($tabBilanPre['AP5'])) $tabBilan['NP5']=$tabBilanPre['AP5'];
if (!isset($tabBilan['NP6']) && isset($tabBilanPre['AP6'])) $tabBilan['NP6']=$tabBilanPre['AP6'];
if (!isset($tabBilan['NP7']) && isset($tabBilanPre['AP7'])) $tabBilan['NP7']=$tabBilanPre['AP7'];
if (!isset($tabBilan['NP8']) && isset($tabBilanPre['AP8'])) $tabBilan['NP8']=$tabBilanPre['AP8'];
if (!isset($tabBilan['NP9']) && isset($tabBilanPre['AP9'])) $tabBilan['NP9']=$tabBilanPre['AP9'];
if (!isset($tabBilan['NR1']) && isset($tabBilanPre['AR1'])) $tabBilan['NR1']=$tabBilanPre['AR1'];
if (!isset($tabBilan['NR2']) && isset($tabBilanPre['AR2'])) $tabBilan['NR2']=$tabBilanPre['AR2'];
if (!isset($tabBilan['NR3']) && isset($tabBilanPre['AR3'])) $tabBilan['NR3']=$tabBilanPre['AR3'];
// ASSURANCE
if (!isset($tabBilan['NR4']) && isset($tabBilanPre['AR4'])) $tabBilan['AR4']=$tabBilanPre['AR4'];
}
}
return $tabBilan;
}
/** Conversion des bilans Simplifiés en Réels Normal
** @param $bilanRS array Bilan au format réel simplifé (2033)
** @return array Bilan au format réel Normal (2050)
*/
function bilanSimplifie2Normal($bilanRS) {
$bilanRN=array();
foreach ($this->tabBS2BN as $posteRN => $formule) {
if (preg_match('/\+|\-/', $formule)) {
$tabTmp=preg_split('/\+|\-/', $formule, -1, PREG_SPLIT_OFFSET_CAPTURE);
//$bilanRN[$posteRN]=0;
$scalc='';
foreach ($tabTmp as $i=>$tab) {
if ($i==0) {
$bilanRN[$posteRN]=$bilanRS[$tab[0]];
$scalc.=$bilanRS[$tab[0]];
}
else {
$signe=$formule[$tab[1]-1];
$scalc.=$signe;
if ($signe=='+') $bilanRN[$posteRN]+=$bilanRS[$tab[0]];
elseif ($signe=='-') $bilanRN[$posteRN]-=$bilanRS[$tab[0]];
$scalc.=$bilanRS[$tab[0]];
}
}
$bilanRN[$posteRN]=$bilanRN[$posteRN];
}
else $bilanRN[$posteRN]=$bilanRS[$formule];
}
if ($bilanRS['240']<>0) {
$bilanRN['BL']=$bilanRS['050'];
$bilanRN['BM']=$bilanRS['052'];
} else {
$bilanRN['BN']=$bilanRS['050'];
$bilanRN['BO']=$bilanRS['052'];
}
if ($bilanRS['070']<>0 || $bilanRS['074']<>0 || $bilanRS['052']<>0 || $bilanRS['062']<>0)
$bilanRN['GC']=$bilanRS['256'];
elseif ($bilanRS['070']==0 && $bilanRS['074']==0 && $bilanRS['052']==0 && $bilanRS['062']==0 && $bilanRS['254']<>0)
$bilanRN['GD']=$bilanRS['256'];
if ($bilanRS['584']<>0) {
$bilanRN['HB']=$bilanRS['584'];
$bilanRN['HA']=$bilanRS['290']-$bilanRS['584'];
} else
$bilanRN['HA']=$bilanRS['290'];
if ($bilanRS['582']<>0) {
$bilanRN['HF']=$bilanRS['582'];
$bilanRN['HE']=$bilanRS['582']-$bilanRS['300'];
} else
$bilanRN['HE']=$bilanRS['300'];
return $bilanRN;
}
}
?>

View File

@ -1,287 +0,0 @@
<?
require_once 'framework/common/curl.php';
class MBilans {
private $body = '';
private $header = '';
private $codeRetour = 0;
private $cookie='';
private $reference = 0;
private $timeOut=0;
private $url='';
private $referer='';
private $curPage='';
public $siren;
public $dernierExerciceDepose=0;
public $dernierExerciceDeposeLe=0;
function __construct($siren) {
$this->partGetSession();
$this->siren=$siren;
}
function __destruct() {
$this->partSaveSession();
}
function listeBilans($uniquementEnBase=true) {
//if ($siren<>0) $this->siren=$siren;
$iDb2=new WDB('insee');
$ret=$iDb2->select( 'bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaieOrigine',
"siren='$this->siren' ORDER BY dateExercice DESC");
// if (count($ret)==0) return array(); // Pas de bilan disponible !
// else {
$tabRet=array();
if (!$uniquementEnBase) {
$iDb=new WDB('jo');
$ret2=$iDb->select( 'bodacc_detail', 'Bodacc_Date_Parution, dateEffet, Bodacc_Num, Bodacc_Date_Parution, Num_Annonce, RC, raisonSociale, FJ, adrSiegeNum, adrSiegeIndRep, adrSiegeTypVoie, adrSiegeLibVoie, adrSiegeComp1, adrSiegeComp2, codePostalSiege, villeSiege', "siren='$this->siren' AND Rubrique='comptes' ORDER BY dateEffet DESC");
$dateDerDepot=WDate::dateT('Y-m-d','Ymd',@$ret2[0]['dateEffet'])*1;
$dateDerExercice=$ret[0]['dateExercice']*1;
if ($dateDerDepot<>0) {
$this->dernierExerciceDepose = WDate::dateT('Y-m-d','d/m/Y',@$ret2[0]['dateEffet']);
$this->dernierExerciceDeposeLe = WDate::dateT('Y-m-d','d/m/Y',@$ret2[0]['Bodacc_Date_Parution']);
}
echo date('Y/m/d - H:i:s') ." - Dernier depot le ". $ret2[0]['Bodacc_Date_Parution'] .", dernier en base = $dateDerExercice !<br/>\n";
if ( $dateDerDepot>$dateDerExercice ||
( $dateDerDepot==0 && $dateDerExercice<date('Ymd', mktime(0,0,0, date('m')-16, date('d'), date('Y'))) ) ) {
$tabRet=$this->partListeBilans();
}
}
foreach ($ret as $i=>$bil) {
$tabRet[$bil['dateExercice']]=array('dateProvPartenaire'=>$bil['dateProvPartenaire'],
'dureeExercice' =>$bil['dureeExercice'],
'dateExercicePre' =>$bil['dateExercicePre'],
'dureeExercicePre' =>$bil['dureeExercicePre'],
'monnaie' =>$bil['monnaieOrigine'],
'source' =>1,
);
}
return $tabRet;
// }
}
function getBilan($millesime='', $source=1) {
$iDb2=new WDB('insee');
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes', "siren='$this->siren' AND dateExercice='$millesime'", true);
/*echo $this->siren.'<br/>';
echo $millesime.'<br/>';
print_r($ret[0]);die();*/
$bilan=$ret[0];
if (count($ret)==0) {
$tabBilan=$this->partGetBilan(WDate::dateT('Ymd','d/m/Y',$millesime));
if ($tabBilan) {
$tabInsert=array( 'siren' =>$this->siren,
'dateProvPartenaire'=>$tabBilan['DATE_FRAICHE_BILAN'],
'dateExercice' =>$tabBilan['DATE_CLOTURE'],
'dateExercicePre' =>$tabBilan['DATE_CLOTURE_PRE'],
'dureeExercice' =>$tabBilan['DUREE_MOIS'],
'dureeExercicePre' =>$tabBilan['DUREE_MOIS_PRE'],
'monnaie' =>$tabBilan['MONNAIE'],
'typeBilan' =>$tabBilan['CONSOLIDE'],
'monnaieOrigine' =>$tabBilan['MONNAIE_ORI'],
'unite' =>$tabBilan['MONNAIE_LIV_UNITE'],
'postes' =>$tabBilan['POSTES'],
'partenaire' =>1,
);
$iDb2->insert('bilans', $tabInsert);
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes', "siren='$this->siren' AND dateExercice='$millesime'");
$bilan=$ret[0];
}
}
$tabBilan=array();
$tabBilan['SIREN'] = $this->siren;
$tabBilan['DATE_FRAICHE_BILAN'] = $bilan['dateProvPartenaire']; // SSAAMMJJ
$tabBilan['DATE_CLOTURE'] = $bilan['dateExercice']; // SSAAMMJJ
$tabBilan['DATE_CLOTURE_PRE'] = $bilan['dateExercicePre']; // SSAAMMJJ
$tabBilan['DUREE_MOIS'] = $bilan['dureeExercice'];
$tabBilan['DUREE_MOIS_PRE'] = $bilan['dureeExercicePre'];
$tabBilan['MONNAIE'] = $bilan['monnaie'];
$tabBilan['CONSOLIDE'] = $bilan['typeBilan']; // C = Bilan consolidé
$tabBilan['MONNAIE_ORI'] = $bilan['monnaieOrigine'];
$tabBilan['MONNAIE_LIV_UNITE'] = $bilan['unite'];
if ($bilan['monnaie']=='EUR') $monnaie='&euro;'; else $monnaie=$bilan['monnaie'];
switch (strtoupper($bilan['unite'])) {
case 'K': $unite='K'; break;
case 'U':
case ' ':
case '' : $unite=''; break;
case 'M': $unite='M'; break;
default: die('Unite Bilan ('. $bilan['unite'] .') non prise en charge !'); break;
}
$tabBilan['devise'] = /*$unite.*/$monnaie;
$tabTmp=explode(';', $bilan['postes']);
foreach ($tabTmp as $i=>$strTmp) {
$tabTmp2=explode('=', $strTmp);
if (isset($tabTmp2[1]))
if ($unite=='K' && $tabTmp2[0]<>'YP') $tabBilan[$tabTmp2[0]]=$tabTmp2[1]*1000;
elseif ($unite=='M' && $tabTmp2[0]<>'YP') $tabBilan[$tabTmp2[0]]=$tabTmp2[1]*1000000;
else $tabBilan[$tabTmp2[0]]=$tabTmp2[1];
}
return $tabBilan;
}
private function partConnection() {
if (!$this->cookie || time()>$this->timeOut) {
$this->timeOut=time()+600;
/** Recherche de machine dispo **/
$this->referer='http://hyperbil.bil.fr/';
$page=getUrl($this->referer, '', '', '', false, 'hyperbil.bil.fr');
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
/** Redirection sur la bonne machine**/
$this->url=trim(str_replace('https://', 'http://', $this->header['Location']));
if (substr($this->url,-1)=='/') $this->url=substr($this->url, 0, strlen($this->url)-1);
$this->domaine=str_replace('/', '', str_replace('http:/', '', $this->url));
//echo "Redirection sur $this->url<br/>Domaine = $this->domaine<br/>Referer = $this->referer<br/>";
$page=getUrl($this->url, '', '', $this->referer, false, $this->domaine);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
/** Connexion LOGIN PASSWORD **/
//print_r($this->header);
$this->cookie=$this->header['Set-Cookie'];
$postData=array('rq'=>'hbilabon', 'QPABO'=>'101001002', 'QPPAS'=>'otY66');
$urlConn=$this->url.'/cgi-bin/h2r';
//echo "Connexion à $urlConn<br/>";
$page=getUrl($urlConn, $this->cookie, $postData, $this->url, false, $this->domaine);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
$this->cookie=$this->header['Set-Cookie'];
/** Base entreprise **/
// print_r($this->header);
$urlEntrep=$this->url.'/cgi-bin/h2r?rq=hbilcrit&QPABO=101001002';///cgi-bin/h2r?rq=hbilcrit"
sleep(1);
$page=getUrl($urlEntrep, $this->cookie, '', $this->url, false, $this->domaine);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
}
}
private function partVitrine() {
//echo "Recherche du siren $this->siren<br/>\n";
$this->partConnection();
/** Liste des établissements **/
$urlEntrep=$this->url .'/cgi-bin/h2r?rq=hbilentl&QEREC=B&QESIR='.$this->siren
.'&QENOM=&QEPRN=&QENAIA=&QENAIM=&QECP=&QESIEG=A&QEVIL=&QENRU=&QERUE=&QEAPE=&QETEL=&QENAOB&wi=1';
/* QESIEG :
"" = Tous les étab
"A" = Dernier Si&egrave;ge Actif connu
"S" = Historique des Si&egrave;ges
"E" = Historique des &eacute;tablissements secondaires
*/
//sleep(1);
$page=getUrl($urlEntrep, $this->cookie, '', $this->url, false, $this->domaine);
$bil=$page['body'];
preg_match_all('/"\/cgi-bin\/h2r\?rq=hbiliden&QINUME=(\d*)&QISIR=(\d*)&(.*)"/', $bil, $matches);
//print_r($matches);
/** Fiche d'identité du siège **/
$urlEntrep=$url. str_replace('"', '', $matches[0][0]);
sleep(1);
$page=getUrl($urlEntrep, $this->cookie, '', $this->url, false, $this->domaine);
$bil=$page['body'];
$this->reference=$matches[1][0];
//echo "QINUME = $this->reference<br/>\n";
}
private function partListeBilans() {
$this->partVitrine();
$urlEntrep=$this->url."/cgi-bin/h2r?rq=hbilbill&QINUME=$this->reference&QISIR=$this->siren&wi=1&wc=N";
$page=getUrl($urlEntrep, $this->cookie, '', $this->url, false, $this->domaine);
echo date('Y/m/d - H:i:s') ." - Liste des bilans de notre partenaire : $urlEntrep<br/>\n";
$tabRet=array();
if (preg_match_all("/NAME=\"QBDTCN\" VALUE=\"(.*)\"><B>(?:.*)Dur&eacute;e : <B>(.*) mois/i", $page['body'], $matches)) {
foreach ($matches[1] as $num=>$millesime) {
$millesime=WDate::dateT('d/m/Y','Ymd',$millesime);
$tabRet[$millesime]=array( 'dateProvPartenaire'=>date('Ymd'),
'dureeExercice' =>$matches[2][$num],
'dateExercicePre' =>WDate::dateT('d/m/Y','Ymd',$matches[1][$num+1]),
'dureeExercicePre' =>$matches[2][$num+1],
'monnaie' =>'EUR',
'source' =>0,
);
}
}
return $tabRet;
}
private function partGetBilan($millesime) {
$this->partConnection();
$urlEntrep=$this->url."/cgi-bin/h2r?rq=hbilsobi&QINUME=$this->reference&QISIR=$this->siren&wi=1&wc=N&QIMONN=EU&QIDLIM=".urlencode($millesime);
$page=getUrl($urlEntrep, $this->cookie, '', $this->url, false, $this->domaine);
echo date('Y/m/d - H:i:s') ." - Bilan $millesime de notre partenaire : $urlEntrep<br/>\n";
$bil=strip_tags($page['body']);
$fcontents=explode("\n",$bil);
$tabBilan=array();
$i=1;
$tabBilan['SIRET'] =substr($fcontents[1], 36, 14);
$tabBilan['DATE_FRAICHE_BILAN'] =trim(substr($fcontents[1], 57, 8)); // SSAAMMJJ
if ($tabBilan['DATE_FRAICHE_BILAN']=='') return false;
$tabBilan['DATE_CLOTURE'] =trim(substr($fcontents[1], 101, 8)); // SSAAMMJJ
$tabBilan['DATE_CLOTURE_PRE'] =trim(substr($fcontents[1], 109, 8)); // SSAAMMJJ
$tabBilan['DUREE_MOIS'] =trim(substr($fcontents[1], 117, 2));
$tabBilan['DUREE_MOIS_PRE'] =trim(substr($fcontents[1], 119, 2));
$type =trim(substr($fcontents[1], 123, 1)); // C = Bilan consolidé
if ($type=='') $tabBilan['CONSOLIDE']='N';
elseif ($type=='C') $tabBilan['CONSOLIDE']='C';
else { $tabBilan['CONSOLIDE']=$type;
echo ("Type de bilan inconnu en provenance de notre partenaire B='$type' !");
}
$tabBilan['MONNAIE_ORI'] =trim(substr($fcontents[1], 793, 3));
$tabBilan['MONNAIE_UNITE'] =trim(substr($fcontents[1], 796, 1));
$tabBilan['MONNAIE'] =trim(substr($fcontents[1], 797, 3));
$tabBilan['POSTES'] ='';
while (substr($fcontents[$i], 65, 1)=='7') {
for ($j=0; $j<30; $j++)
{
$code =rtrim(substr($fcontents[$i], 124+$j*20, 4));
if ($code!='')
{
$colonneLiasse=(int)substr($code,2,1);
$signe =substr($fcontents[$i], 128+$j*20, 1);
$valeur =(double)substr($fcontents[$i], 129+$j*20, 15);
if ($signe=='-')
$valeur*=-1;
$tabBilan['POSTES'].="$code=$valeur;";
//$tabBilan['POSTES'][$code]=$valeur;
}
}
$i++;
}
return $tabBilan;
}
private function partSaveSession() {
$fp=fopen('/tmp/php_bil_session.id', 'w');
fwrite($fp,$this->cookie.'^'.$this->timeOut.'^'.$this->url.'^'.$this->siren.'^'.$this->reference);
fclose($fp);
}
private function partGetSession() {
$strTmp=file_get_contents('/tmp/php_bil_session.id');
$tabTmp=explode('^', $strTmp);
$this->cookie=$tabTmp[0];
$this->timeOut=$tabTmp[1];
$this->url=$tabTmp[2];
$this->siren=$tabTmp[3];
$this->reference=$tabTmp[4];
}
}
?>

View File

@ -1,169 +0,0 @@
<?php
require_once 'framework/common/curl.php';
class MBourse
{
var $siren=false;
public function __construct($siren=0) {
$this->siren=$siren;
}
public function getLibSource($source) {
switch ($source) {
case 'B': return 'Business Wire'; break;
case 'H': return 'Hugin'; break;
case 'A': return 'ActusNews'; break;
case 'D': return 'DiRelease'; break;
case 'E': return 'Les Echos'; break;
default: return 'N/C'; break;
}
}
/** Vérifie la validité de la structure d'un code ISIN
**
** @param string $isin
** @return bool
**/
function isIsin($isin) {
if (strlen(trim($isin))) {
$cle = substr($isin, -1);
$isinLeft = substr($isin, 0, strlen($isin)-1);
$letter2number = array('A'=>10, 'B'=>11, 'C'=>12, 'D'=>13, 'E'=>14, 'F'=>15, 'G'=>16, 'H'=>17, 'I'=>18, 'J'=>19, 'K'=>20, 'L'=>21, 'M'=>22, 'N'=>23, 'O'=>24, 'P'=>25, 'Q'=>26, 'R'=>27, 'S'=>28, 'T'=>29, 'U'=>30, 'V'=>31, 'W'=>32, 'X'=>33, 'Y'=>34, 'Z'=>35);
$isinConvertion = strtr($isinLeft, $letter2number);
$sum = '';
$sumFinal = 0;
for($i=0; $i<strlen($isinConvertion); ++$i) $sum .= (($i % 2) ? 1 : 2)*$isinConvertion[$i];
for($i=0; $i<strlen($sum); ++$i) $sumFinal += $sum[$i];
if ($sumFinal % 10){
$cleVerif = ((int)($sumFinal/10) + 1)*10-$sumFinal;
} else {
$cleVerif = 0;
}
if ($cle == $cleVerif) {
return true;
} else
return false;
} else return false;
}
/** Obtenir le code ISIN à partir d'un siren
**
** @param integer $siren
** @return string
**/
function getCodeIsin($siren=false) {
$iDb=new WDB();
if (!$siren)
$siren=$this->siren;
$tabTmp=$iDb->select('infos_entrep', 'isin', "siren=$siren AND isin<>''", false, MYSQL_ASSOC);
return trim(@$tabTmp[0]['isin']);
}
/** Obtenir le SIREN à partir d'un code ISIN
**
** @param string $isin Code ISIN
** @return integer
**/
function getCodeSiren($isin) {
$iDb=new WDB();
$tabTmp=$iDb->select('infos_entrep', 'siren', "isin='$isin' AND siren<>0", false, MYSQL_ASSOC);
return trim($tabTmp[0]['siren']);
}
/** A partir d'un siren, récupère les informations règlementés
**
** @param integer $siren
** @param integer $id
** @return unknown
**/
function getInfosReg($siren=false, $id=null)
{
if (!$siren) $siren = $this->siren;
$isin = $this->getCodeIsin($siren);
$tabRet=array();
if ($isin!='') {
$iDb = new WDB('presse');
$sqlID = '';
if (null !== $id) {
$sqlID=" AND id=$id ";
}
$bodacc=$iDb->select(
'articles',
'id, companyName, companyIsin, companySiren, companyWebSite, pressReleaseDate, pressReleaseTitle, '.
'pressReleaseText, pressReleaseHtml, pressReleaseAttachments, pressReleaseUrl, source, dateInsert',
"companyIsin='$isin' $sqlID ORDER BY pressReleaseDate DESC", true, MYSQL_ASSOC);
if (count($bodacc)>0) {
foreach ($bodacc as $k=>$ann) {
if ($id)
$tabRet[$k]=array(
'id'=>$ann['id'],
'source'=>$this->getLibSource($ann['source']),
'DateParution'=>$ann['pressReleaseDate'],
'raisonSociale'=>$ann['companyName'],
'titre'=>$ann['pressReleaseTitle'],
'communique'=>$ann['pressReleaseText'],
'communiqueHtml'=>$ann['pressReleaseHtml'],
'pj'=>$ann['pressReleaseAttachments'],
'url'=>$ann['pressReleaseUrl'],
'dateInsertionSD'=>$ann['dateInsert'],
);
else
$tabRet[$k]=array(
'id'=>$ann['id'],
'source'=>$this->getLibSource($ann['source']),
'DateParution'=>$ann['pressReleaseDate'],
'raisonSociale'=>$ann['companyName'],
'titre'=>$ann['pressReleaseTitle'],
'pj'=>$ann['pressReleaseAttachments'],
'url'=>$ann['pressReleaseUrl'],
'dateInsertionSD'=>$ann['dateInsert'],
);
}
}
}
return $tabRet;
}
/** A partir d'un siren, récupère les informations boursières
**
** @param integer $siren
** @return unknown
**/
function getInfosBourse($siren=false) {
global $timer;
$iDb=new WDB('sdv1');
if (!$siren)
$siren=$this->siren;
$isin=$this->getCodeIsin($siren);
$timer['infosBoursieres-getCodeIsin']=microtime(true);
$tabRet=array();
if ($isin<>'') {
$tabRes=$iDb->select( 'bourse_isin b, bourse_cours c',
'siren, raisonSociale, adresse, effectif, code_sicovam, code_mnemo, code_bloomberg, code_datastream, code_isin, logo, code_ric, '.
'dateIntroduction, dateDerAG, dateRadiation, autre_isin, eligibleSRD, eligiblePEA, nombreTitres, tel1, tel2, fax1, fax2, web, mail, '.
'marche, placeCotation, description, secteur, activite, activiteDet, dirigeants, actionnaires, chiffresTrim, '.
'c.autre, c.`date`, c.`heure`, c.`open` , c.`high` , c.`low` , c.`close` , c.`volume`',
"code_isin='$isin' /*OR siren=$siren)*/ AND b.code_isin=c.isin AND c.autre IN('','e','f','g','m','s','u') ORDER BY c.`date` DESC, c.`heure` DESC LIMIT 0,1", false, MYSQL_ASSOC);
$tabRet=$tabRes[0];
$timer['infosBoursieres-infosIsin']=microtime(true);
$tabRes=$iDb->select( 'bourse_cours',
'min(close) AS coursMin, avg(close) AS coursMoy, max(close) AS coursMax',
"isin='$isin' GROUP BY isin", false, MYSQL_ASSOC);
$tabTmp=$tabRes[0];
$tabRet['coursMin']=$tabTmp['coursMin'];
$tabRet['coursMoy']=$tabTmp['coursMoy'];
$tabRet['coursMax']=$tabTmp['coursMax'];
$timer['infosBoursieres-derniersCours']=microtime(true);
}
return $tabRet;
}
}

View File

@ -1,266 +0,0 @@
<?php
class MCadastre {
var $siren=false;
var $iDb;
/** Droits des locaux **/
private static $tabCodeDroit=array(
'P'=>'Propriétaire',
'U'=>'Usufruitier', // (associé avec N)
'N'=>'Nu-propriétaire', // (associé avec U)
'B'=>'Bailleur à construction', // (associé avec R)
'R'=>'Preneur à construction', // (associé avec B)
'F'=>'Foncier', // (associé avec D ou T)
'T'=>'Tenuyer', // (associé avec F)
'D'=>'Domanier', // (associé avec F)
'V'=>'Bailleur d\'un bail à réhabilitation', // (associé avec W)
'W'=>'Preneur d\'un bail à réhabilitation', // (associé avec V)
'A'=>'Locataire-Attributaire', // (associé avec P)
'E'=>'Emphytéote', // (associé avec P)
'K'=>'Antichrésiste', // (associé avec P)
'L'=>'Fonctionnaire logé',
'G'=>'Gérant, mandataire, gestionnaire',
'S'=>'Syndic de copropriété',
'H'=>'Associé dans une société en transparence fiscale',// (associé avec P)
'O'=>'Autorisation d\'occupation temporaire (70 ans)',
'J'=>'Jeune agriculteur',
'Q'=>'Gestionnaire taxe sur les bureaux (Ile-de-France)',
'X'=>'La Poste Occupant et propriétaire',
'Y'=>'La Poste Occupant et non propriétaire',
'C'=>'Fiduciaire',
);
/** Nature des locaux **/
private static $tabNatureLoc=array(
'AP'=>'Appartement',
'AT'=>'Antenne téléphone',
'AU'=>'Autoroute',
'CA'=>'Commerce sans boutique',
'CB'=>'Local divers',
'CD'=>'Dépendance commerciale',
'CH'=>'Chantier',
'CM'=>'Commerce avec boutique',
'DC'=>'Dépendance lieux communs',
'DE'=>'Dépendance bâtie isolée',
'LC'=>'Local commun',
'MA'=>'Maison',
'ME'=>'Maison exceptionnelle',
'MP'=>'Maison partagée par une limite territoriale',
'SM'=>'Sol de maison',
'U' =>'Etablissement industriel',
'U1'=>'Gare',
'U2'=>'Gare - Triage',
'U3'=>'Gare - Atelier matériel',
'U4'=>'Gare - Atelier magasin',
'U5'=>'Gare - Dépôt Titulaire',
'U6'=>'Gare - Dépôt Réel',
'U7'=>'Gare - Matériel transport',
'U8'=>'Gare - Entretien matériel roulant',
'U9'=>'Gare - Station usine',
'UE'=>'Transformateur électrique',
'UG'=>'Appareil à gaz',
'UN'=>'Usine nucléaire',
'US'=>'Etablissement industriel',
);
/** Code Affectation des PEV (Partie d'EValuation) **/
private static $tabCodePEV=array(
'B'=>'Bâtiment industriel',
'C'=>'Commerce',
'H'=>'Habitation',
'K'=>'Locaux administratifs non passibles de la Taxe d\'Habitation',
'L'=>'Hôtel',
'P'=>'Professionnel',
'S'=>'Biens divers passibles de la Taxe d\'Habitation',
'T'=>'Terrain industriel',
);
/** Code Groupes Personnes Morales **/
private static $tabGrpPerMor=array(
0=>'Personne morale', // non remarquable
1=>'Etat',
2=>'Région',
3=>'Département',
4=>'Commune',
5=>'Office HLM',
6=>'Personne morale représentant des sociétés',
7=>'Copropriétaire',
8=>'Associé',
9=>'Etablissement public ou organismes assimilés',
);
/** Nature des parcelles (cultures) **/
private static $tabNaturePar=array(
'AB'=>'Terrains à batir',
'AG'=>'Terrains d\'agrément',
'B' =>'Bois',
'BF'=>'Futaies feuillues',
'BM'=>'Futaies mixtes',
'BO'=>'Oseraies',
'BP'=>'Peupleraies',
'BR'=>'Futaies résineuses',
'BS'=>'Taillies sous futaies',
'BT'=>'Taillies simples',
'CA'=>'Carrières',
'CH'=>'Chemins de fer, Canaux de Navigation',
'E' =>'Eaux',
'J' =>'Jardins',
'L' =>'Landes',
'LB'=>'Landes Boisées',
'P' =>'Prés',
'PA'=>'Pâtures ou Pâturages',
'PC'=>'Pacages ou Pâtis',
'PE'=>'Prés d\'embouche',
'PH'=>'Herbages',
'PP'=>'Prés, Pâtures ou Herbages plantes',
'S' =>'Sols',
'T' =>'Terre',
'TP'=>'Terres plantées',
'VE'=>'Vergers',
'VI'=>'Vignes',
);
public function __construct($siren=0) {
$this->siren=$siren;
$this->iDb=new WDb('sdv1');
}
function getLocaux($siren=false) {
if (!$siren)
$siren=$this->siren;
$tabTmp=$this->iDb->select(
'cad_perloc l, cad_permor e',
'e.INTCIF, e.DNUPER, e.CCOGRM, e.DDENPM, e.DSIPMO, e.DFORME, e.FILLER, e.DSIREN, e.DLIGN3, e.DLIGN4, e.DLIGN5, e.DLIGN6, e.CCODEP, e.CCOCOM,
l.CCODRO, l.CCOCOM, l.CCOPRF, l.CCOSEC, l.DNUPLA, l.DNUBAT, l.DESC, l.DNIV, l.DPOR, l.CCONLC, l.CCOAFF0, l.DSUPOD0, l.CCOAFF1, l.DSUPOD1, l.CCOAFF2, l.DSUPOD2, l.CCOAFF3, l.DSUPOD3, l.CCOAFF4, l.DSUPOD4, l.CCOAFF5, l.DSUPOD5, l.CCOAFF6, l.DSUPOD6, l.CCOAFF7, l.DSUPOD7, l.CCOAFF8, l.DSUPOD8, l.CCOAFF9, l.DSUPOD9, l.CCODEP, l.DLICOM, l.CCORIV, l.CNAVOI, l.DLIVOI, l.DNUVOI, l.DLTNUV',
"e.DSIREN=$siren AND e.INTCIF=l.INTCIF AND e.DNUPER=l.DNUPER", false, MYSQL_ASSOC);
$tabRet=array();
foreach ($tabTmp as $i=>$loc) {
$tabLoc=array( 'idCentre'=>$loc['INTCIF'],
'idPmMajic'=>$loc['DNUPER'],
'pmGroupe'=>trim($loc['CCOGRM']),
'pmGroupeLib'=>self::$tabGrpPerMor[trim($loc['CCOGRM'])],
'pmNom'=>trim($loc['DDENPM']),
'pmSigle'=>trim($loc['DSIPMO']),
'pmFJ'=>$loc['DFORME'], // $loc['FILLER'],
'siren'=>trim($loc['DSIREN']),
'pmAdrL3'=>trim($loc['DLIGN3']),
'pmAdrL4'=>trim($loc['DLIGN4']),
'pmAdrL5'=>trim($loc['DLIGN5']),
'pmAdrL6'=>trim($loc['DLIGN6']),
'pmAdrDep'=>trim($loc['CCODEP']),
'pmAdrCom'=>trim($loc['CCOCOM']),
'localDroit'=>trim($loc['CCODRO']),
'localDroitLib'=>self::$tabCodeDroit[trim($loc['CCODRO'])],
'localDep'=>trim($loc['CCODEP']),
'localCom'=>trim($loc['CCOCOM']),
'localComLib'=>trim($loc['DLICOM']),
'localComAbs'=>trim($loc['CCOPRF']),
'localRivoli'=>trim($loc['CCORIV']),
'localNumVoie'=>trim($loc['DNUVOI']),
'localIndVoie'=>trim($loc['DLTNUV']),
'localTypVoie'=>trim($loc['CNAVOI']),
'localLibVoie'=>trim($loc['DLIVOI']),
'localSection'=>trim($loc['CCOSEC']),
'localNumPlan'=>trim($loc['DNUPLA']),
'localNumBat'=>trim($loc['DNUBAT']),
'localEntEsc'=>trim($loc['DESC']),
'localNumPlan'=>trim($loc['DNIV']),
'localNumBat'=>trim($loc['DPOR']),
'localEntEsc'=>trim($loc['CCONLC']),
'localPEV'=>array(),
);
$surface=0;
for($j=0;$j<10;$j++) {
$pevCode=trim($loc['CCOAFF'.$j]);
$pevSurf=trim($loc['DSUPOD'.$j])*1;
if ($pevCode<>'' && $pevSurf>0) {
$tabLoc['localPEV'][$j]=array( 'pevCode'=>$pevCode,
'pevType'=>self::$tabCodePEV[$pevCode],
'pevSurface'=>$pevSurf,
);
$surface+=$pevSurf;
}
}
$tabLoc['localSurface']=$surface;
$tabRet[]=$tabLoc;
/*CADBAT_NB_TOT nombre Cadastre nombre de postes BATIMENT du SIREN toutes addresses
CADTER_NB_TOT nombre Cadastre nombre de postes TERRAIN du SIREN toutes addresses
CADBAT_NB_PROP nombre Cadastre nombre de postes BATIMENT à l'adresse dont elle est propriétaire
CADTER_NB_PROP nombre Cadastre nombre de postes TERRAIN à l'adresse dont elle est propriétaire
CADBAT_NB_NONPROP nombre Cadastre nombre de postes BATIMENT à l'adresse dont elle n'est pas propriétaire
CADTER_NB_NONPROP nombre Cadastre nombre de postes TERRAINS à l'adresse dont elle n'est pas propriétaire
CADBAT_SURF_CUM nombre Cadastre Cumul Surfaces des batiments à l'addresse
CADBAT_SURF_TOT nombre Cadastre Surface totale des batiments du SIREN
CADTER_SURF_CUM nombre Cadastre Cumul Surfaces des terrains à l'addresse
CADTER_SURF_TOT nombre Cadastre Surface totale des terrains du SIREN
*/
}
return $tabRet;
}
function getParcelles($siren=false) {
if (!$siren)
$siren=$this->siren;
$tabTmp=$this->iDb->select(
'cad_perpar p, cad_permor e',
'e.INTCIF, e.DNUPER, e.CCOGRM, e.DDENPM, e.DSIPMO, e.DFORME, e.FILLER, e.DSIREN, e.DLIGN3, e.DLIGN4, e.DLIGN5, e.DLIGN6, e.CCODEP, e.CCOCOM,
p.CCODRO, p.CCOCOM, p.CCOPRF, p.CCOSEC, p.DNUPLA, p.DCNPAR, p.DSGRPF0, p.DCNSUF0, p.DSGRPF1, p.DCNSUF1, p.DSGRPF2, p.DCNSUF2, p.DSGRPF3, p.DCNSUF3, p.DSGRPF4, p.DCNSUF4, p.DSGRPF5, p.DCNSUF5, p.DSGRPF6, p.DCNSUF6, p.DSGRPF7, p.DCNSUF7, p.DSGRPF8, p.DCNSUF8, p.DSGRPF9, p.DCNSUF9, p.CCODEP, p.DLICOM, p.CCORIV, p.CNAVOI, p.DLIVOI, p.DNUVOI, p.DLTNUV',
"e.DSIREN=$siren AND e.INTCIF=p.INTCIF AND e.DNUPER=p.DNUPER", false, MYSQL_ASSOC);
$tabRet=array();
foreach ($tabTmp as $i=>$loc) {
$tabLoc=array( 'idCentre'=>$loc['INTCIF'],
'idPmMajic'=>$loc['DNUPER'],
'pmGroupe'=>trim($loc['CCOGRM']),
'pmGroupeLib'=>self::$tabGrpPerMor[trim($loc['CCOGRM'])],
'pmNom'=>trim($loc['DDENPM']),
'pmSigle'=>trim($loc['DSIPMO']),
'pmFJ'=>$loc['DFORME'], // $loc['FILLER'],
'siren'=>trim($loc['DSIREN']),
'pmAdrL3'=>trim($loc['DLIGN3']),
'pmAdrL4'=>trim($loc['DLIGN4']),
'pmAdrL5'=>trim($loc['DLIGN5']),
'pmAdrL6'=>trim($loc['DLIGN6']),
'pmAdrDep'=>trim($loc['CCODEP']),
'pmAdrCom'=>trim($loc['CCOCOM']),
'parcelDroit'=>trim($loc['CCODRO']),
'parcelDroitLib'=>self::$tabCodeDroit[trim($loc['CCODRO'])],
'parcelDep'=>trim($loc['CCODEP']),
'parcelCom'=>trim($loc['CCOCOM']),
'parcelComLib'=>trim($loc['DLICOM']),
'parcelComAbs'=>trim($loc['CCOPRF']),
'parcelRivoli'=>trim($loc['CCORIV']),
'parcellNumVoie'=>trim($loc['DNUVOI']),
'parcelIndVoie'=>trim($loc['DLTNUV']),
'parcelTypVoie'=>trim($loc['CNAVOI']),
'parcelLibVoie'=>trim($loc['DLIVOI']),
'parcelSection'=>trim($loc['CCOSEC']),
'parcelNumPlan'=>trim($loc['DNUPLA']),
'parcelSurface'=>trim($loc['DCNPAR'])*1,
'parcelTer'=>array(),
);
$surface=0;
for($j=0;$j<10;$j++) {
$pevCode=trim($loc['DSGRPF'.$j]);
$pevSurf=trim($loc['DCNSUF'.$j])*1;
if ($pevCode<>'' && $pevSurf>0) {
$tabLoc['parcelTer'][$j]=array( 'terCode'=>$pevCode,
'terType'=>self::$tabCodePEV[$pevCode],
'terSurface'=>$pevSurf,
);
$surface+=$pevSurf;
}
}
$tabLoc['parcelSurfaceCalc']=$surface;
$tabRet[]=$tabLoc;
}
return $tabRet;
}
}
?>

View File

@ -1,391 +0,0 @@
<?
require_once 'framework/common/curl.php';
class MCoface {
public $body = '';
public $header = '';
public $codeRetour = 0;
public $nscrl = 0; // Numéro interne SCRL
public $rcsVille='';
public $rcsType='';
public $rSocAdrCPVille=''; // RaisonSocialeAdresseVille (utile pour le débug)
public $raisonSociale=''; // Raison Sociale
public $adresse=''; // Adresse complète (avec CP et Cille)
public $sigle='';
public $enseigne='';
public $nbEtab='';
public $adrNumVoie;
public $adrIndRep;
public $adrTypeVoie;
public $adrLibVoie;
public $adrCP;
public $adrVille;
public $tel='';
public $fax='';
public $web='';
public $mail='';
public $activite=''; // Activité Déclarée au bodacc
public $naf=''; // NAF
public $nafLib='';
public $bourseIsin='';
public $bourseMarche='';
public $bourseVille='';
public $tabInfos=array();
public $tabBilans=array();
public $infoEco=false;
public $capitalType='';
public $capitalMontant='';
public $capitalDevise ='';
public $steInactive = '';
public $dateCreation=''; // Notion INSEE
public $dateImmatriculation=''; // Notion Greffe et RNCS uniquement
public $fj='';
public $nationalite='';
public $enBourse='';
public $effectif='';
public $tabDirigeants=array();
public $strLiensFi='';
public $strElemsFi='';
public $derExerciceAnnee='';
public $derExerciceDuree='';
public $derExerciceDClot='';
public $derExerciceCA='';
public $derExerciceResultat='';
public $derExerciceDevise='';
public $dateFermeture='';
public $score_pouey='';
public $score_conan='';
public $score_afdcc='';
public $vigilance='';
public $tabJug=array();
public $tabAct=array();
public $tabFil=array();
public $tabEtab=array();
function __construct($siren) {
// $iDb=new WDB();
$referer='';
$url='http://www.cofacerating.fr/portail/entreprise_identite/identite.asp?ip=pagespro&lg=fr&nsiren='.$siren;
$page=getUrl($url, '', '', $referer, false, 'www.cofacerating.fr', '', 10);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
$this->nscrl=@getTextInHtml($this->body, '&nscrl=', '=','&');
$this->rSocAdrCPVille=trim(str_replace(chr(160), ' ', html_entity_decode(utf8_encode(@getTextInHtml($this->body, '<td WIDTH="40%" bgcolor="#F3E5CC" class="tabligne"> <b> Raison sociale<br>', '<td WIDTH="60%" bgcolor="#FFF3DE" class="tabval"><b>','</tr>')))));
$tmp=explode('<br>', $this->rSocAdrCPVille);
$this->raisonSociale=trim($tmp[0]);
unset($tmp[0]);
$this->adresse=trim(strip_tags(implode(',', $tmp)));
$this->tel=trim(@getTextInHtml($this->body, '<td bgcolor="#F3E5CC" class="tabligne"><b>Téléphone<br>', '<td bgcolor="#FFF3DE" class="tabval" valign="top">', '<br>'));
$this->fax=trim(@getTextInHtml($this->body, 'Télécopie</b></td>', '<br>', '</td>'));
$this->web=trim(@getTextInHtml($this->body, '<td bgcolor="#F3E5CC" class="tabligne"><b>Adresse internet <br>', ' class="tabval"><a class="tabval" HREF="', '" target="_new">'));
$this->mail=trim(@getTextInHtml($this->body, '<a class="tabval" href="mailto:', ':', '">'));
$bourse=trim(@getTextInHtml($this->body, 'Ville Bourse</b></td>', 'class="tabval">', '</td>'));
$tmp=explode('<br>', $bourse);
$this->bourseIsin=trim($tmp[0]);
$this->bourseMarche=trim($tmp[1]);
$this->bourseVille=trim($tmp[2]);
$infosDispo=trim(@getTextInHtml($this->body, '<b>Liste Produits</b><br></td>', '<br></td><td class="menu3"><img src="../images/vide.gif" border="0"><br></td><td colspan="2" class="menu3">', 'Un secteur ou une région en France</a><br></td>'));
$tabTmp=explode('<a href="', $infosDispo);
foreach ($tabTmp as $k=>$lien) {
preg_match('/^(.*)">(.*)<\/a>/i', $lien, $matches);
if ($matches[2]<>'') $this->tabInfos[$matches[2]]=$matches[1];
if (substr($matches[2], 0, 12)=='rapport éco.') $this->infoEco='http://www.cofacerating.fr/portail/entreprise_identite/'.$matches[1];//ip=pagespro&
elseif (substr($matches[2], 0, 6)=='bilan ') $this->tabBilans[]=substr($matches[2], 6,strlen($matches[2])-6);
}
$this->activite=trim(str_replace(chr(160), ' ', html_entity_decode(utf8_encode(@getTextInHtml($this->body, '<td WIDTH="40%" bgcolor="#F3E5CC" class="tabligne" valign="top"><b>Libellé code activité </b></td>', '<td WIDTH="60%" bgcolor="#FFF3DE" class="tabval">', '</td>')))));
$this->naf=trim(@getTextInHtml($this->body, '<a href="../chaineeco_dynaeco/DynaEco.asp?cnaf=', 'cnaf=', '&'));
/**
** Recherche du NIC sur Société .com
**/
/*
$refererS='http://www.societe.com/';
$urlS='http://www.societe.com/cgi-bin/recherche?rncs='.$siren.'&vu=1';
$page=getUrl($urlS, '', '', $refererS, false, 'www.societe.com');
$ste=$page['body'];
$this->nic=trim(@getTextInHtml($ste, 'SIRET</div><div class="ficheAltCol2 size11">', $siren, '</div>'));
$strTmp=trim(@getTextInHtml($ste, '<b><span class="size10">RCS', 'RCS ', ' '.substr($siren,0,3)));
$tabTmp=explode(' ', $strTmp);
$this->rcsVille=$tabTmp[0];//<td class="txtBlanc" align="left"><b><span class="size10">RCS Paris B 552 144 503<br></span></b></td>
$this->rcsType=$tabTmp[1];
$strTmp=trim(@getTextInHtml($ste, '<div class="ficheAltCol1 size11">Code activité</div>', '<div class="ficheAltCol2 size11">', '</div>'));
$tabTmp=explode(' - ', $strTmp);
$this->naf=$tabTmp[0];
$this->nafLib=$tabTmp[1];
// <div class="ficheAltCol1 size11">Siège social</div><div class="ficheAltCol2 size11">75 Avenue la Grande Armee - 75116 PARIS 16</div>
$strTmp=trim(@getTextInHtml($ste, '<div class="ficheAltCol1 size11">Capital social', '<div class="ficheAltCol2 size11">', '</div>'));
$this->capitalType='social';
$tabTmp=explode(' ', $strTmp);
$this->capitalMontant=str_replace(',', '.', str_replace('.', '', $tabTmp[0]));
$this->capitalDevise =$tabTmp[1];
$this->fj=trim(@getTextInHtml($ste, '<div class="ficheAltCol1 size11">Forme juridique', '<div class="ficheAltCol2 size11">', '</div>'));
$this->nationalite=trim(@getTextInHtml($ste, '<div class="ficheAltCol1 size11">Nationalit&eacute;</div>', '<div class="ficheAltCol2 size11">', '</div>'));
$strTmp=trim(@getTextInHtml($ste, '&nbsp;DIRIGEANT(S)&nbsp;</span></span></div>', '<div class="ficheCadre" style="min-height:85px;">', '<div class="spacer"></div>'));
$tabTmp=explode('<div class="h1bleu2"></div>', $strTmp);
foreach ($tabTmp as $k=>$dir) {
if (trim($dir)=='') break;
$tabTmp1=explode('</div><div class="ficheAltCol2 size11">', $dir);
$tabTmp2=explode('représenté par', $tabTmp1[1]);
if (isset($tabTmp2[1]) && $tabTmp2[1]<>'') {
$soc=trim($tabTmp2[0]);
$diri=trim($tabTmp2[1]);
} else {
$soc='';
$diri=trim($tabTmp1[1]);
}
preg_match("/^(Mme|M\.|Mlle|Mle|M) ([A-Z\s]*) ([A-Z][a-z\s]*)/", $diri, $matches);
//print_r($matches);
$this->tabDirigeants[]=array('FONCTION'=>trim(strip_tags($tabTmp1[0])), 'SOCIETE'=>$soc, 'GENRE'=>$matches[1], 'PRENOM'=>trim($matches[3]), 'NOM'=>trim($matches[2]));
}
$this->dateImmatriculation=trim(@getTextInHtml($ste, '<div class="ficheAltCol1 size11"> Immatriculation', '<div class="ficheAltCol2 size11">', '</div>'));
//06-03-2007</div>
/* Date Creation = ""
En bourse = ""
Effectif societe = ""
Dirigeants :
**/
$urlRacine='http://infobilan.decideur.com/';
$tabPost=array( 'choix'=>'1',
'pagePrecedente'=>'recherche_entreprise.html',
'nomsocRech'=>'',
'cpRech'=>'',
'villeRech'=>'',
'nomdirRech'=>'',
'predirRech'=>'',
'sirenRech'=>$siren,
'telRech'=>'',);
// 'Rechercher'=>'',
$url=$urlRacine.'liste_result.html';
$referer=$urlRacine.'recherche_entreprise.html';
$page=getUrl($url,'', $tabPost, $referer, false, 'infobilan.decideur.com');
$this->body=$page['body'];
$strCookie=$page['header']['Set-Cookie'];
$refererInfoD=$url;
if(preg_match_all('/<a href="choix_pdt\.html\?(.*)" class="tt1">(.*)<\/a><\/span><br>/i', $page['body'], $matches))
$urlInfoD=$urlRacine.'choix_pdt.html?'.$matches[1][0];
else
$urlInfoD='';
$page=getUrl($this->infoEco, '', '', $url, false, 'www.cofacerating.fr');
if (strpos($page['body'], '<b>Choix du mode de paiement</b>')===false) { // Le rapport éco. est cadeau !!!
$this->infoEco=true;
$eco=$page['body'];
//die ($eco);
$strTmp=strip_tags(@getTextInHtml($eco, ' class="tabligne" > Capital &nbsp (', '(', '</tr><tr>'));
$tabTmp=explode(')', $strTmp);
$this->capitalType=$tabTmp[0];
$tabTmp=explode('&nbsp', $tabTmp[1]);
$this->capitalMontant=trim(str_replace(chr(160), '', $tabTmp[0]));
$this->capitalDevise =trim(str_replace(chr(160), '', $tabTmp[1]));
$this->steInactive=trim(@getTextInHtml($eco, ' class="tabligne" > Société inactive</td>', 'class="tabval" >', '</td>'));
$this->dateCreation=trim(@getTextInHtml($eco, ' class="tabligne" > Date de création</td>', 'class="tabval" >', '</td>'));
$this->fj=trim(@getTextInHtml($eco, ' class="tabligne" > Forme juridique</td>', 'class="tabval" >', '</td>'));
$this->effectif=trim(@getTextInHtml($eco, ' class="tabligne" > Effectif', 'class="tabval" >', '</td>'));
if (count($this->tabDirigeants)==0) { // Si il y a déjà des dirigeants on garde ceux de Société.com !!!
$strTmp=trim(@getTextInHtml($eco, ' class="tabligne" > Cotation en bourse</td>', '<td bgcolor="#F3E5CC" class="tabligne" >', '<td bgcolor="#F3E5CC" class="tabligne" > Effectif'));
$tabTmp=explode('<td bgcolor="#F3E5CC" class="tabligne" >', $strTmp);
foreach ($tabTmp as $k=>$dir) {
$tabTmp1=explode('<td bgcolor="#FFF3DE" class="tabval" >', $dir);
$tabTmp2=explode('&nbsp', trim(strip_tags($tabTmp1[1])));
$this->tabDirigeants[]=array('FONCTION'=>trim(strip_tags($tabTmp1[0])), 'GENRE'=>trim($tabTmp2[0]), 'PRENOM'=>trim($tabTmp2[1]), 'NOM'=>trim($tabTmp2[2]));
}
}
$this->strLiensFi=trim(strip_tags(@getTextInHtml($eco, '<td class="tabtot">LIENS FINANCIERS</td>', '<tr>', '</td></tr>')));
$this->strElemsFi=trim(strip_tags(@getTextInHtml($eco, '<td class="tabtot">ELEMENTS FINANCIERS</td>', '<tr>', '</td></tr>')));
}
$refererP='http://www.score3.fr/';
$urlP='http://www.score3.fr/entreprise.shtml?siren='.$siren;
$page=getUrl($urlP, '', '', $refererP, false, 'www.score3.fr');
$pou=$page['body'];
$fp=fopen('./pouet.html', 'w');
fwrite($fp, $pou);
fclose($fp);
if ($urlInfoD<>'') {
$page=getUrl($urlInfoD,$strCookie,'', $refererInfoD, false, 'infobilan.decideur.com');
$referer=$urlInfoD;
if ($this->nscrl==0) $this->nscrl=@getTextInHtml($url, 'nscrlP=', '=','&');
$url=$urlRacine.'fiche_ident.html';
$page=getUrl($url,$strCookie,'', $referer, false, 'infobilan.decideur.com');
$this->body=$page['body'];
if ($this->raisonSociale=='')
$this->raisonSociale=trim(@getTextInHtml($this->body, '<span class="libelle2">Soci&eacute;t&eacute;', ' :', '</span>'));
if ($this->adresse=='')
$this->adresse=trim(@getTextInHtml($this->body, '<span class="libelle2">Adresse</span> <strong>:', '</strong>', '</td>'));
if ($this->tel=='')
$this->tel=trim(@getTextInHtml($this->body, '<td valign="top"><span class="libelle2">T&eacute;l', '</span>', '<br>'));
if ($this->fax=='')
$this->fax=trim(@getTextInHtml($this->body, '<span class="libelle2">Fax</span>', ' :', '<br>'));
if ($this->web=='')
$this->web=trim(@getTextInHtml($this->body, '<span class="libelle2">Site Web</span>', '<a href="', '" target="_blank">'));
if ($this->mail=='')
$this->mail=trim(@getTextInHtml($this->body, '<span class="libelle2">E-mail</span>', '<a href="mailto:', '">'));
if ($this->naf=='')
$this->naf=trim(@getTextInHtml($this->body, '<span class="libelle2">Code NAF</span>', ' :', '</td>'));
if(preg_match('/<td valign="top"><span class="libelle2">Capital social<\/span> : (\d*)(.*)<br>/isU', $this->body, $matches)
&& ($this->capitalMontant=='' || $this->capitalDevise=='')) {
$this->capitalMontant=trim($matches[1]);
$this->capitalDevise=trim($matches[2]);
}
if ($this->fj=='')
$this->fj=trim(@getTextInHtml($this->body, '<span class="libelle2">Forme juridique</span>', ' :', '<br>'));
if ($this->nationalite=='')
$this->nationalite=trim(@getTextInHtml($this->body, '<span class="libelle2">Nationalit&eacute;</span>', ' :', '</td>'));
if ($this->effectif=='')
$this->effectif=trim(@getTextInHtml($this->body, '<td valign="top"><span class="libelle2">Effectif</span>', ' :', '<br>'));
if ($this->activite=='')
$this->activite=trim(@getTextInHtml($this->body, '<span class="libelle2">Activit&eacute;</span>', ' :', '<br>'));
/** Actionnaires **/
$strTmp=trim(@getTextInHtml($this->body, 'ACTIONNAIRES<br>', '</div></h1>', '<h1>'));
if(preg_match_all('/<p><span class="libelle2">(.*)<\/span> - <span class="libelle2">Participation<\/span> : (.*) %<br>(.*)<\/p>/isU', $strTmp, $matches)) {
foreach ($matches[1] as $i=>$nom) {
$this->tabAct[$i]['nom']=trim($nom);
$this->tabAct[$i]['pct']=trim($matches[2][$i]);
$this->tabAct[$i]['rcs']=trim(str_replace('RCS : ','',strip_tags($matches[3][$i])));
}
}
/** Filiales **/
$strTmp=trim(@getTextInHtml($this->body, 'FILIALES<br>', '</div></h1>', '<h1>'));
if(preg_match_all('/<p><span class="libelle2">(.*)<\/span> - <span class="libelle2">Participation<\/span> :(.*)%<br>(.*)<\/p>/isU', $strTmp, $matches)) {
foreach ($matches[1] as $i=>$nom) {
$this->tabFil[$i]['nom']=trim($nom);
$this->tabFil[$i]['pct']=trim($matches[2][$i]);
$this->tabFil[$i]['rcs']=trim(str_replace('RCS :','',strip_tags($matches[3][$i])));
}
}
/** CA et Résultat **/
$strTmp=trim(@getTextInHtml($this->body, '<h1>PRINCIPAUX ELEMENTS FINANCIERS<br>', '</div></h1>', '</p>'));
if(preg_match('/<p><span class="libelle2">CA (.*)<\/span>(.*)<br>/isU', $strTmp, $matches)) {
$this->derExerciceAnnee=trim($matches[1]);
$this->derExerciceCA=trim(str_replace(':',' ', $matches[2]));
}
if(preg_match('/<span class="libelle2">R&eacute;sultat(.*)<\/span>(.*)$/isU', $strTmp, $matches)) {
$this->derExerciceResultat=trim(str_replace(':',' ', $matches[2]));
}
$infoBilan=print_r($page, true);
$fp=fopen('./infobilan.html', 'w');
fwrite($fp, $infoBilan);
fclose($fp);
}
if ($this->nbEtab=='' || $this->nbEtab=='0') {
$this->nbEtab=trim(strip_tags(str_replace('afficher la liste...', '', @getTextInHtml($pou, '<tr><td class="ligne1_2">Etablissements </td>', '<td class="ligne2_2">', '</td></tr>'))));
$urlPEtab='http://www.score3.fr/etablissements.shtml?page=1&siren='.$siren;
$refererPEtab=$urlP;
$page=getUrl($urlPEtab, '', '', $refererPEtab, false, 'www.score3.fr');
$pou2=$page['body'];
if(preg_match_all('/<tr bgcolor="(?:\S*)"><td class="ligne1b" align="center" width="10%">(\d*)<\/td><td class="ligne2" height="50"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td class="infos">(.*)<\/td><\/tr><\/table>/isU', $pou2, $matches)) {
foreach ($matches[1] as $i=>$nic) {
$strEtab=$matches[2][$i];
$this->tabEtab[$i]['siren']=$siren;
$this->tabEtab[$i]['nic']=$nic;
$this->tabEtab[$i]['siret']=$siren.$nic;
$this->tabEtab[$i]['enseigne']=trim(str_replace(chr(160),' ',utf8_decode(strip_tags(@getTextInHtml($strEtab, '<span class="titre3">', '">', '</span>')))));
$this->tabEtab[$i]['adresse']=trim(str_replace(chr(160),' ',utf8_decode(strip_tags(@getTextInHtml($strEtab, '<span class="infos">', '">', '<br>')))));
$strTmp=trim(str_replace(chr(160),' ',utf8_decode(strip_tags(@getTextInHtml($strEtab, '<span class="infos">', '<br>', '</span>')))));
$tabTmp=explode(' ', $strTmp);
$this->tabEtab[$i]['cp']=$tabTmp[0];
unset($tabTmp[0]);
$this->tabEtab[$i]['ville']=implode(' ',$tabTmp);
$strTmp=trim(strip_tags(@getTextInHtml($strEtab, '<td class="infos" align="right" valign="top">', '">', ')')));
$tabTmp=explode('(', $strTmp);
$this->tabEtab[$i]['naf_code']=$tabTmp[1];
$this->tabEtab[$i]['naf_lib']=trim(str_replace(chr(160),' ',utf8_decode($tabTmp[0])));
if (preg_match('/<br>T.l\.(.*)$/i',$strEtab,$matches2))
$this->tabEtab[$i]['tel']=trim(str_replace(chr(160),' ',utf8_decode($matches2[1])));
else $this->tabEtab[$i]['tel']='';
}
}
$this->nbEtab=count($this->tabEtab);
$fp=fopen('./pouet_etab.html', 'w');
fwrite($fp, $pou2);
fclose($fp);
}
if ($this->effectif=='' || $this->effectif=='0' || $this->effectif=='NC')
$this->effectif=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Effectifs</td>', '<td class="ligne2_2">', '</td></tr>'));
if ($this->dateImmatriculation=='' || $this->dateImmatriculation=='0')
$this->dateImmatriculation=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Date d\'immatriculation</td>', '<td class="ligne2_2">', '</td></tr>'));
if ($this->dateFermeture=='' || $this->dateFermeture=='0')
$this->dateFermeture=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Date de fin d\'exploitation</td>', '<td class="ligne2_2">', '</td></tr>'));
if ($this->tel=='' || $this->tel=='0')
$this->tel=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Téléphone</td>', '<td class="ligne2_2">', '</td></tr>'));
if ($this->fax=='' || $this->fax=='0')
$this->fax=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Fax</td>', '<td class="ligne2_2">', '</td></tr>'));
$strTmp=trim(@getTextInHtml($pou, 'Procédures collectives</td></tr>', '</table></td>', '</td><td background'));
if(preg_match_all('/<tr><td class="ligne1_2">(.*)<\/td><td class="ligne2_2">(.*)<\/td><\/tr>/isU', $strTmp, $matches)) {
foreach ($matches[1] as $i=>$jug) {
$this->tabJug[$i]['date']=$matches[1][$i];
$this->tabJug[$i]['juge']=$matches[2][$i];
}
}
$this->score_pouey=trim(@getTextInHtml($pou, '<param name="movie" value="cadran.swf?rotation=', '&amp;type=pouey&amp;valeur=', '">'));
$this->score_conan=trim(@getTextInHtml($pou, '<param name="movie" value="cadran.swf?rotation=', '&amp;type=ch&amp;valeur=', '">'));
$this->score_afdcc=trim(@getTextInHtml($pou, '<param name="movie" value="cadran.swf?rotation=', '&amp;type=afdcc&amp;valeur=', '">'));
$this->vigilance =trim(@getTextInHtml($pou, '<param name="movie" value="vigilance.swf', 'degre=', '">'));
if(preg_match('/Date de l\'exercice<\/td><td class="ligne2_2">(.*) sur (\d*) mois<\/td><\/tr>/isU', $pou, $matches)) {
$this->derExerciceDClot=trim($matches[1]);
$this->derExerciceDuree=trim($matches[2]);
}
/* Siret SIEGE
2 Fonction, Nom Prénoù ET Date NAissance du PP
5 Liste des actes
*/
if ($this->codeRetour==200)
return true;
return false;
}
}
?>

View File

@ -1,282 +0,0 @@
<?
define('CREDITSAFE_WS_URL', 'https://www.creditsafe.fr/getdata/service/CSFRServices.asmx');
define('CREDITSAFE_WS_URI', 'https://www.creditsafe.fr/getdata/service/');
define('CREDITSAFE_WS_USER', 'scores_decisions');
define('CREDITSAFE_WS_PASS', 'yoann1306');
define('CREDITSAFE_WS_REF', 'ref');
if (!$_SESSION['connected']) die();
function formatPct($pct) {
$pct=round($pct/10,0)*10;
if ($pct==0) $pct=10;
return $pct;
}
$siret=trim(preg_replace('/[^0-9]/', '', $_REQUEST['siret']));
if (strlen($siret)<>9 && strlen($siret)<>14) die('Paramètres incorrects !');
if (strlen($siret)==9) $siret=$tabInfo['entrep']['siret'];
$id=trim(preg_replace('/[^0-9]/', '', $_REQUEST['id']))*1; // Si id=0 alors non communiqué
if (($siret*1)==0 && $id==0) die('Paramètres incorrects !');
$siren=substr($siret,0,9);
$action=$_REQUEST['action'];
if ($action<>'' && $action<>'commande') die('Paramètres incorrects !');
$raisonSociale=$tabInfo['entrep']['raisonSociale'];
require_once 'Metier/partenaires/classMTva.php';
require_once 'Metier/partenaires/classMMap.php';
require_once 'Metier/partenaires/classMCoface.php';
require_once 'framework/common/dates.php';
/** Utilisation du WS **/
$client = new SoapClient(null, array( 'trace' => 1,
'soap_version' => SOAP_1_1,
'location' => WEBSERVICE_URL,
'uri' => WEBSERVICE_URI,
'login' => $_SESSION['tabInfo']['login'],
'password' => $_SESSION['tabInfo']['password']));
/*$client = new SoapClient('https://www.creditsafe.fr/getdata/service/CSFRServices.asmx?WSDL',
array( 'location' => CREDITSAFE_WS_URL,
'uri' => CREDITSAFE_WS_URI,
'soap_version' => SOAP_1_1,
'trace' => 1,
//'style' => SOAP_RPC,
//'use' => SOAP_ENCODED,
));
*/
$req='<xmlrequest>'.
'<header>'.
'<username>'.CREDITSAFE_WS_USER.'</username>'.
'<password>'.CREDITSAFE_WS_PASS.'</password>'.
//'<operation>getcompanyinformation</operation>'.
'<operation>getratinglimit</operation>'.
'<country>FR</country>'.
'<language>FR</language>'.
'<chargereference>'.CREDITSAFE_WS_REF.'</chargereference>'.
'</header>'.
'<body>'.
//'<package>standard</package>'.
'<package>ratinglimit</package>'.
"<companynumber>$siret</companynumber>".
'</body>'.
'</xmlrequest>';
$success=true;
$date=date('Ymd');
$fichier="$siret-$date.xml";
if (!file_exists('/var/www/site_extranet/www/creditsafe/xml/'.$fichier)) {
/* try {
$O=$client->GetData('<RequestXmlString><xmlrequest>'.
'<header>'.
'<username>'.CREDITSAFE_WS_USER.'</username>'.
'<password>'.CREDITSAFE_WS_PASS.'</password>'.
'<operation>getcompanyinformation</operation>'.
'<country>FR</country>'.
'<language>FR</language>'.
'<chargereference>'.CREDITSAFE_WS_REF.'</chargereference>'.
'</header>'.
'<body>'.
'<package>standard</package>'.
"<companynumber>$siret</companynumber>".
'</body>'.
'</xmlrequest></RequestXmlString>');
//die(print_r($O));
$xml=implode('', (array)$O);
}
catch (SoapFault $soapFault) {// echo "ERROR :\n", var_dump($soapFault), "\n"; echo "Request :\n", $client->__getLastRequest(), "\n";
$success=false;
$response=$client->__getLastResponse();
$response=str_replace("<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'><SOAP-ENV:Body><ns0:getProduitsWebServicesXMLResponse xmlns:ns0='urn:local' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'><return xsi:type='xsd:string'>",'', $response);
$xml=str_replace('</return></ns0:getProduitsWebServicesXMLResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>','', $response);
}*/
//https://www.creditsafe.fr/getdata/service/CSFRServices.asmx/GetData
//$url='https://www.creditsafe.fr/getdata/service/CSFRServices.asmx/GetData?RequestXmlString='.$req;
$url='https://www.creditsafe.fr/getdata/service/CSFRServices.asmx/GetData?RequestXmlStr='.$req;//.'&RequestXmlString='.$req;
//requestXmlStr.
$referer=$cookie='';
$page=getUrl($url, $cookie, '', $referer, false, '', '');
$referer=$url;
$xml=html_entity_decode($page['body'], ENT_QUOTES, 'UTF-8');
/** Enregistrement du fichier XML en provenance des greffes
**/
$fp=@fopen('/var/www/site_extranet/www/creditsafe/xml/'.$fichier, 'w');
@fwrite($fp, $xml);
@fclose($fp);
$O = $client->setLog('scorecsf', $siret);
} else {
/** Lecture du fichier XML en provenance des greffes
**/
$xml=file_get_contents('/var/www/site_extranet/www/creditsafe/xml/'.$fichier);
$O = $client->setLog('scorecsf', $siret, 0, 'local');
}
/*<>100</rating>
2000000</creditlimit>*/
$dom_object = new DomDocument2();
$dom_object->load('/var/www/site_extranet/www/creditsafe/xml/'.$fichier);
/* create DOMXPath object with our DOMObject
$xpath = new Domxpath($dom_object);
$result = $xpath->query("//liste_depot_acte/depot_acte/.");
foreach ($result as $annonce) {
// N° Gestion
$title = $xpath->query ("num_gest/greffe", $annonce);
$num_gest_greffe=$title->item(0)->nodeValue;
*/
$companyname=$dom_object->getValueFromTag('companyname');
$rating=$dom_object->getValueFromTag('rating');
$ratingdesc1=str_replace('?',"'",$dom_object->getValueFromTag('ratingdesc1'));
$ratingdesc2=str_replace('?',"'",$dom_object->getValueFromTag('ratingdesc2'));
$creditlimit=$dom_object->getValueFromTag('creditlimit');
$libelle='';
if (strtoupper($creditlimit)<>strtolower($creditlimit) || $creditlimit=='')
$strCreditlimit=$creditlimit;
else
$strCreditlimit=number_format($creditlimit,null,null,' '). ' &euro;';
if ($rating>=40) {
$fontColor='green';
$imgFeux='<img src="/creditsafe/img/feux_vert.png"/>';
if ($rating>=71) $libelle='Très bonne cote de crédit/solvabilité';
elseif ($rating>=51) $libelle='Bonne cote de crédit/solvabilité';
else $libelle='Solvable';
} elseif ($rating>=20) {
$fontColor='yellow';//#f2be2c';
$imgFeux='<img src="/creditsafe/img/feux_orange.png"/>';
$libelle='Précautions recommandées';
} elseif (strtoupper($rating)<>strtolower($rating)) {
$fontColor='black';
$imgFeux='&nbsp;';
}
elseif ($rating=='') {
$fontColor='black';
$imgFeux='&nbsp;';
}
else {
$fontColor='red';
$imgFeux='<img src="/creditsafe/img/feux_rouge.png"/>';
if ($rating==0) $libelle='Entreprise en situation de défaillance et ayant un très fort risque de radiation';
else $libelle='Avertissement - Crédit à votre discrétion';
}
?><table width="580" border="0" align="left" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><img src="./img/rub_evaluation.png" width="577" height="36"></td>
</tr>
<tr>
<td width="30">&nbsp;</td>
<td width="200" class="StyleInfoLib">Num&eacute;ro identifiant Siren</td>
<td width="350" class="StyleInfoData"><?=substr($siret,0,3).' '.substr($siret,3,3).' '.substr($siret,6,3)?></td>
</tr>
<tr>
<td width="30">&nbsp;</td>
<td width="200" class="StyleInfoLib">Raison Sociale</td>
<td width="350" class="StyleInfoData"><?if ($companyname<>'') echo $companyname;
else echo $raisonSociale;
?></td>
</tr>
<? if ($etab['NumRC']*1<>0) { ?>
<tr>
<td width="30">&nbsp;</td>
<td width="200" class="StyleInfoLib">Num&eacute;ro R.C.</td>
<td width="350" class="StyleInfoData"><?=$etab['NumRC']?></td>
</tr>
<? } ?>
<tr>
<td colspan="3">&nbsp;</td>
</tr>
<tr>
<td colspan="3"><img src="./img/srub_scorescf.png" width="576" height="27"></td>
</tr>
<!--#a5a5a5; }
.grey_gradiant .v20 { background: #bcbcbc; }
.grey_gradiant .v10 { background: #c8c8c8;-->
<tr><td colspan="3">
<table cellspacing="0">
<tr>
<td width="20">&nbsp;</td>
<td width="10" bgcolor="#bebebe">&nbsp;</td>
<td width="200" bgcolor="#bebebe"><font size="2"><b>Note &agrave; ce jour [0 - 100]</b></font></td>
<td width="250" bgcolor="#bebebe"><font color="<?=$fontColor?>" size="2"><?=$rating;?></font></td>
<td width="100" bgcolor="#bebebe"><?=$imgFeux?></td>
</tr>
<tr>
<td width="20">&nbsp;</td>
<td width="10" bgcolor="#e7e7e7">&nbsp;</td>
<td width="200" bgcolor="#e7e7e7"><font size="2"><b>Limite &agrave; ce jour [&euro;]</b></font></td>
<td width="350" colspan="2" bgcolor="#e7e7e7"><font size="2"><?=$strCreditlimit?></font></td>
</tr>
<tr>
<td width="20">&nbsp;</td>
<td width="10" bgcolor="#bebebe">&nbsp;</td>
<td width="200" bgcolor="#bebebe"><font size="2"><b>Informations compl&eacute;mentaires</b></font></td>
<td width="350" colspan="2" bgcolor="#bebebe"><font color="<?=$fontColor?>" size="2"><?=$libelle.'<br/>'.$ratingdesc1; if (trim($ratingdesc2)<>'') echo '<br/>'.$ratingdesc2;?></font></td>
</tr>
<!-- <tr>
<td colspan="5" align="right"><img src="/creditsafe/img/logo_creditsafe.png"/></td>
</tr>-->
</table>
</td>
</tr>
<?
if ($action<>'commande') {
?>
<tr>
<td width="30">&nbsp;</td>
<td width="550" colspan="2" class="StyleInfoData"><br/><br/><form action="./?page=scorescf&action=commande&siret=<?=$siret?>&id=<?=$id?>" method="POST"><input type="checkbox"/> Mettre cette entreprise sous surveillance scoring partenaire<br/><br/>Adresse email du destinataire <input name="email" type="text" value="<? if ($_SESSION['tabInfo']['login']<>'testreunica' && $_SESSION['tabInfo']['login']<>'reunicacsf') echo $tabInfo['email']?>" size="20"/>&nbsp;&nbsp;&nbsp;<input class="imgButton" type="image" src="./img/boutton_valider_off.gif" name="submit" onmouseover="this.src='./img/boutton_valider_on.gif'" onmouseout="this.src='./img/boutton_valider_off.gif'" title="Surveiller le score partenaire de cette entreprise..."></form></td>
</tr>
</table>
<?
} else {
if (preg_match('#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#',$_REQUEST['email'])) {
$message='Entreprise mise sous surveillance scoring partenaire !';
mail( 'contact@scores-decisions.com',"Demande de surveillance score CreditSafe pour $siren à ".$_REQUEST['email'],
'REQUEST='.EOL.print_r($_REQUEST,true).'EOL'.
'SERVER='.EOL.print_r($_SERVER,true).'EOL'.
'SESSION='.EOL.print_r($_SESSION,true).'EOL'.
'ENV='.EOL.print_r($_ENV,true).'EOL'.
'tabInfo='.print_r($tabInfo,true));
$fp=fopen(PATH_LOGS.'surveillance_scf.csv', 'a');
fwrite($fp, date('Y/m/d H:i:s').";$siren;".$_REQUEST['email'].';'.$tabInfo['login'].';'.$tabInfo['email'].';'.$tabInfo['ip']."\n");
fclose($fp);
} else {
$message="ERREUR : Veuillez saisir une adresse email valide pour la mise sous surveillance";
}
?>
<tr>
<td width="30">&nbsp;</td>
<td width="550" colspan="2" class="StyleInfoData"><br/><br/><h3><?=$message;?></h3></td>
</tr>
<?php
}
class DomDocument2 extends DOMDocument {
function getValueFromTag($tagName) {
$items=$this->getElementsByTagName($tagName);
foreach ($items as $item) {
return utf8_decode($item->nodeValue);
}
}
}
?>

View File

@ -1,123 +0,0 @@
<?
require_once 'framework/common/curl.php';
require_once 'framework/common/dates.php';
require_once 'Metier/partenaires/classMEuridile.php';
class MBilans {
public $siren;
function __construct($siren) {
$this->siren=$siren;
}
function __destruct() {}
/** Adapter cette classe pour qu'elle utilise la classe MEuridile et la base Bilans Local **/
/** Liste des dirigeants actifs
**/
function listeDirigeants() {
$iDb2=new WDB('jo');
$ret=$iDb2->select( 'bilans',
'typeBilan, dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaieOrigine',
"siren='$this->siren' ORDER BY dateExercice DESC");
$tabRet=array();
$iDb=new WDB('jo');
$ret2=$iDb->select( 'bodacc_detail',
'Bodacc_Date_Parution, dateEffet, typeEven',
//Num_Annonce, RC, raisonSociale, FJ, adrSiegeNum, adrSiegeIndRep, adrSiegeTypVoie, adrSiegeLibVoie, adrSiegeComp1, adrSiegeComp2, codePostalSiege, villeSiege, Bodacc_Num
"siren='$this->siren' AND Rubrique='comptes' ORDER BY dateEffet DESC");
$dateDerDepot=WDate::dateT('Y-m-d','Ymd',@$ret2[0]['dateEffet'])*1;
$dateDerExercice=$ret[0]['dateExercice']*1;
if ($dateDerDepot<>0) {
$this->dernierExerciceDepose = WDate::dateT('Y-m-d','d/m/Y',@$ret2[0]['dateEffet']);
$this->dernierExerciceDeposeLe = WDate::dateT('Y-m-d','d/m/Y',@$ret2[0]['Bodacc_Date_Parution']);
}
/*
//echo date('Y/m/d - H:i:s') ." - Dernier depot le ". $ret2[0]['Bodacc_Date_Parution'] .", dernier en base = $dateDerExercice !<br/>\n";
if ( $dateDerDepot>$dateDerExercice ||
( $dateDerDepot==0 && $dateDerExercice<date('Ymd', mktime(0,0,0, date('m')-18, date('d'), date('Y'))) ) ) {*/
$rncs=new MEuridile();
$tabRet=$rncs->listBilans($this->siren);
//}
foreach ($ret as $i=>$bil) {
$millesime=WDate::dateT('Ymd','d/m/Y',$bil['dateExercice']);
$tabRet[$bil['typeBilan'].$millesime]=array(
'dateProvPartenaire'=>$bil['dateProvPartenaire'],
'dureeExercice' =>$bil['dureeExercice'],
'dateExercicePre' =>$bil['dateExercicePre'],
'dureeExercicePre' =>$bil['dureeExercicePre'],
'monnaie' =>$bil['monnaieOrigine'],
'source' =>1,
);
}
return $tabRet;
}
function getBilan($millesime='', $typeBilan='N', $refPart=0) {
$millesime=WDate::dateT('d/m/Y','Ymd',$millesime);
$iDb2=new WDB('insee');
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes', "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$millesime'", true);
$bilan=$ret[0];
if (count($ret)==0) {
$rncs=new MEuridile($this->siren);
$tabBilan=$rncs->getBilan($refPart);
if ($tabBilan) {
$strPostes='';
foreach ($tabBilan['POSTES'] as $poste=>$valeur)
$strPostes.="$poste=$valeur;";
$tabInsert=array( 'siren' =>$this->siren,
'dateProvPartenaire'=>$tabBilan['DATE_FRAICHE_BILAN'],
'dateExercice' =>WDate::dateT('d/m/Y','Ymd',$tabBilan['DATE_CLOTURE']),
'dateExercicePre' =>WDate::dateT('d/m/Y','Ymd',$tabBilan['DATE_CLOTURE_PRE']),
'dureeExercice' =>$tabBilan['DUREE_MOIS'],
'dureeExercicePre' =>$tabBilan['DUREE_MOIS_PRE'],
'monnaie' =>$tabBilan['MONNAIE'],
'typeBilan' =>$tabBilan['TYPE_BILAN'],
'monnaieOrigine' =>$tabBilan['MONNAIE_ORI'],
'unite' =>$tabBilan['MONNAIE_LIV_UNITE'],
'postes' =>$strPostes,
'partenaire' =>2,
);
$iDb2->insert('bilans', $tabInsert);
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes', "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$millesime'");
$bilan=$ret[0];
}
}
$tabBilan=array();
$tabBilan['SIREN'] = $this->siren;
$tabBilan['DATE_FRAICHE_BILAN'] = $bilan['dateProvPartenaire']; // SSAAMMJJ
$tabBilan['DATE_CLOTURE'] = $bilan['dateExercice']; // SSAAMMJJ
$tabBilan['DATE_CLOTURE_PRE'] = $bilan['dateExercicePre']; // SSAAMMJJ
$tabBilan['DUREE_MOIS'] = $bilan['dureeExercice'];
$tabBilan['DUREE_MOIS_PRE'] = $bilan['dureeExercicePre'];
$tabBilan['MONNAIE'] = $bilan['monnaie'];
$tabBilan['CONSOLIDE'] = $bilan['typeBilan']; // C = Bilan consolidé
$tabBilan['MONNAIE_ORI'] = $bilan['monnaieOrigine'];
$tabBilan['MONNAIE_LIV_UNITE'] = $bilan['unite'];
if ($bilan['monnaie']=='EUR') $monnaie='&euro;'; else $monnaie=$bilan['monnaie'];
switch (strtoupper($bilan['unite'])) {
case 'K': $unite='K'; break;
case 'U':
case ' ':
case '' : $unite=''; break;
case 'M': $unite='M'; break;
default: die('Unite Bilan ('. $bilan['unite'] .') non prise en charge !'); break;
}
$tabBilan['devise'] = /*$unite.*/$monnaie;
$tabTmp=explode(';', $bilan['postes']);
foreach ($tabTmp as $i=>$strTmp) {
$tabTmp2=explode('=', $strTmp);
if (isset($tabTmp2[1]))
if ($unite=='K' && $tabTmp2[0]<>'YP' && $tabTmp2[0]<>'YP1') $tabBilan[$tabTmp2[0]]=$tabTmp2[1]*1000;
elseif ($unite=='M' && $tabTmp2[0]<>'YP' && $tabTmp2[0]<>'YP1') $tabBilan[$tabTmp2[0]]=$tabTmp2[1]*1000000;
else $tabBilan[$tabTmp2[0]]=$tabTmp2[1];
}
return $tabBilan;
}
}
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,398 +0,0 @@
<?
/*
2. Concernant la date de fin de CS, devons nous comprendre les cas suivants de la sorte :
A. 026 820 043 I 2009-10-31 La CS était valide jusq'au 31/10/2009... L'entreprise n'a plus de CS ? ou la CS est encore à prendre en compte ?
Lorsqu'une cs manuelle arrive à échéance, elle est soumise à l'examen de l'analyste chaque mois. Si l'analyste n'intervient pas l'acheteur reste en cs.
B. 077 250 025 I 0000-00-00 La CS I n'est plus à prendre en compte ou au contraire, elle n'a pas de date de fin ?
L'acheteur a été sorti de cs entre le traitement de fin de mois et l'extraction ( qui a été déclenchée tardivement à la main ). L'acheteur n'est donc plus en cs.
C. 067 103 598 I 2999-12-31 La CS I n'a pas de date de fin sauf changement ultérieur de CS
Ce cas fait partie des nettoyages à faire par le Crédit ( échéance illimitée sur une cs qui ne le justifie pas ).
D. 067 200 329 I 2010-06-30 La CS est valide jusq'au 30/06/2010... Quid après ?
Cette cs ayant été positionnée par l'analyste, elle sera de nouveau soumise à son examen.
3. Globalement, j'ai l'impression que la CS "Paiements" à une durée de 6-12 mois et la CS "Privilèges" de 12-24 mois ?
La cs paiement a une durée de 6 ou 12 mois pour les cas graves.
La cs privilège a une durée de 27 mois ( sauf bien sur les cs manuelles qui sont à la convenance de l'analyste, en général 12 mois ).
*/
class MFacto {
public $risqueImpaye=false; // Y a t'il un risque d'impayé ?
public $risqueImpayeMois=0;
public $profilPayeur=0; // 0:N/D, 1:Excellent, 2=Bon, 3=Normal, 4=Lent, 5=Mauvais ou Défaut
private $typeFlux = 0; // Type de flux en chargement 0:Acheteur, 1=CS, 2=Paiements
private $iDb;
public $DELAIPAY=0;
public $DELAIPAYp='';
public $DELAIPAY_MMAA='';
private $tabInfoCS=array(
'_00'=>array('risque'=>0,'type'=>'OK', 'libInt'=>'Néant', 'libExt'=>'Aucune difficulté significative ne nous a été signalée'),
'_10'=>array('risque'=>3,'type'=>'IP', 'libInt'=>'Impayé BDF', 'libExt'=>"A surveiller. Présence d'impayé(s)"),
'_11'=>array('risque'=>3,'type'=>'IP', 'libInt'=>'Retard de paiement - Prorogation', 'libExt'=>'A suivre. Retard(s) de paiement(s) signalé(s)'),
'_12'=>array('risque'=>3,'type'=>'IP', 'libInt'=>'Impayé Groupe Facto', 'libExt'=>"A surveiller. Présence d'impayé(s)"),
'_13'=>array('risque'=>3,'type'=>'IP', 'libInt'=>'Impayé BDF (sup. à limite)', 'libExt'=>"A surveiller. Présence d'impayé(s)"),
'_15'=>array('risque'=>3,'type'=>'PR', 'libInt'=>'PRIVILEGES URSSAF', 'libExt'=>'A surveiller. Présence de privilèges'),
'_16'=>array('risque'=>3,'type'=>'PR', 'libInt'=>'AUTRES PRIVILEGES', 'libExt'=>'A surveiller. Présence de Privilèges'),
'_20'=>array('risque'=>4,'type'=>'BL', 'libInt'=>'LIQUIDATION JUDICIAIRE', 'libExt'=>'Liquidation Judiciaire'),
'_21'=>array('risque'=>1,'type'=>'BC', 'libInt'=>'CESSATION D\'ACTIVITE', 'libExt'=>'A suivre. Informations terrain. Risque de fermeture'),
'_22'=>array('risque'=>1,'type'=>'BD', 'libInt'=>'RADIATION RCS', 'libExt'=>'Radiation du RCS'),
'_23'=>array('risque'=>1,'type'=>'BG', 'libInt'=>'LOCATION GERANCE', 'libExt'=>'Prise en location Gérance'),
'_24'=>array('risque'=>2,'type'=>'RG', 'libInt'=>'GROUPE EN DIFFICULTE', 'libExt'=>'A suivre. Entreprise(s) du groupe à suivre'),
'_25'=>array('risque'=>2,'type'=>'DEF', 'libInt'=>'INFORMATIONS NEGATIVES', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_26'=>array('risque'=>4,'type'=>'BP', 'libInt'=>'PLAN DE CESSION / DE REDRESSEMENT ', 'libExt'=>'Plan de cession/redressement'),
'_27'=>array('risque'=>4,'type'=>'BR', 'libInt'=>'REDRESSEMENT JUDICIAIRE', 'libExt'=>'Redressement Judiciaire'),
'_28'=>array('risque'=>4,'type'=>'BH', 'libInt'=>'HOMOLOGATION CONCILIATION / REG.AMIABLE', 'libExt'=>'Conciliation, Homologation ou règlement amiable'),
'_29'=>array('risque'=>1,'type'=>'BF', 'libInt'=>'FUSION - ABSORPTION', 'libExt'=>'Fusion/Absorption'),
'_30'=>array('risque'=>3,'type'=>'IP', 'libInt'=>'MAUVAISE COTE BDF : .8 ou .9', 'libExt'=>"Présence d'impayé(s)"),
'_31'=>array('risque'=>1,'type'=>'TC', 'libInt'=>'CESSATION ANNONCEE', 'libExt'=>'Fin d\'activité programmée'),
'_33'=>array('risque'=>4,'type'=>'BS', 'libInt'=>'PROCEDURE DE SAUVEGARDE JUGEMENT', 'libExt'=>'Procédure de Sauvegarde'),
'_34'=>array('risque'=>4,'type'=>'BV', 'libInt'=>'PLAN DE SAUVEGARDE', 'libExt'=>'Plan de sauvegarde'),
'_35'=>array('risque'=>2,'type'=>'DEF', 'libInt'=>'ANALYSE FINANCIERE NEGATIVE', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_36'=>array('risque'=>2,'type'=>'DEF', 'libInt'=>'BILAN NEGATIF', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_37'=>array('risque'=>2,'type'=>'DEF', 'libInt'=>'TRESORERIE SERREE', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_39'=>array('risque'=>2,'type'=>'DEF', 'libInt'=>'PREVISIONS NEGATIVES', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_43'=>array('risque'=>2,'type'=>'LC', 'libInt'=>'LC SFAC', 'libExt'=>"A suivre. Garantie d'assurance crédit limitée"),
'_45'=>array('risque'=>2,'type'=>'LC', 'libInt'=>'REFUS SFAC DOM-TOM', 'libExt'=>"A suivre. Garantie d'assurance crédit limitée"),
//'_47'=>array('risque'=>2,'type'=>'LC', 'libInt'=>'LISTE CONFIDENTIELLE LEASER', 'libExt'=>"A suivre. Garantie d'assurance crédit limitée"),
'_50'=>array('risque'=>2,'type'=>'KO', 'libInt'=>'LIENS AVEC UNE ORGANISATION TERRORISTE', 'libExt'=>'Attention, liens internationaux très risqués'),
//Nouveaux regroupements GE
'_I' =>array('risque'=>3,'type'=>'IP', 'libInt'=>'Impayés', 'libExt'=>"A surveiller. Présence d'impayé(s) dans les 12 derniers mois"),
'_P' =>array('risque'=>3,'type'=>'PR', 'libInt'=>'PRIVILEGES', 'libExt'=>'A surveiller. Présence de privilèges dans les 24 derniers mois'),
'_D' =>array('risque'=>2,'type'=>'DEF', 'libInt'=>'PREVISIONS NEGATIVES', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_T' =>array('risque'=>2,'type'=>'LC', 'libInt'=>'LC Quelconque', 'libExt'=>"Nombreuses demandes d'avis de crédit"),
);
private $tabTranches=array( 0=>6,
30=>36,
60=>66,
90=>96,
120=>126,
150=>156,
180=>999);
private $tabMontants=array( 1=>500,
2=>2000,
10=>10000,
20=>20000,
50=>50000,
100=>100000,
200=>200000,
999=>999999);
// private $siren=0;
// private $tabPaiements=array();
function __construct() {
$this->iDb=new WDB('sdv1');
}
function __destruct() {
}
public function setTypeFic($typeFic) {
$this->typeFlux=$typeFic;
}
public function readFic($a) {
switch ($this->typeFlux) {
case 0: // Acheteur
$tab=array( 'NUMACH'=> trim(substr($a, 0, 6)),
'SIRENE'=> trim(substr($a, 6, 9)),
'RAISOC'=> trim(substr($a, 15, 35)),
'NUMVOI'=> trim(substr($a, 50, 4)),
'TYPVOI'=> trim(substr($a, 54, 3)),
'LIBVOI'=> trim(substr($a, 57, 30)),
'VILLE' => trim(substr($a, 87, 26)),
'CODPOS'=> trim(substr($a,113, 5)),
'FILLER'=> trim(substr($a,118, 2)));
break;
case 1: // CS
/*$tab=array( 'DATMAJ1'=> WDate::dateT('ymd','Y-m-d', substr($a, 0, 6)),
'NUMGFH'=> trim(substr($a, 6, 6)),
'CSAVAN'=> trim(substr($a, 12, 2)),
'CSAPRE'=> trim(substr($a, 14, 2)),
'INDAUT'=> trim(substr($a, 16, 1)),
'CODUTI'=> trim(substr($a, 17, 6)),
'INIMAJ'=> trim(substr($a, 23, 3)),
'ANAACH'=> trim(substr($a, 25, 2)),
'ANAPOR'=> trim(substr($a, 27, 2)));*/
$tab=array( 'siren' => trim(substr($a, 0, 9)),
'cs' => trim(substr($a, 9, 2)),
'dateFin'=> trim(substr($a, 11, 8)));
break;
case 2: // Paiements
$tab=array( 'NUMACH'=> trim(substr($a, 0, 6)),
'DATPIE'=> substr($a, 6, 8),
'DATECH'=> substr($a, 14, 8),
'DATPAI'=> substr($a, 22, 8),
'MNTPIE'=> trim(substr($a, 30, 13)),
'MNTFRF'=> trim(substr($a, 43, 13)),
'MNTLIT'=> trim(substr($a, 56, 13)),
'CODDEV'=> trim(substr($a, 69, 3)));
break;
}
return $tab;
}
public function getCoteSpeciale($siren) {
$ret=$this->iDb->select( 'ge_cs2',
'siren, cs, dateFin, dateInsert, dateConf',
"siren=$siren AND (dateSuppr=0 OR dateConf>dateSuppr) AND (dateFin=0 OR dateFin>NOW()) AND cs NOT IN (20,22,27,33,34) ORDER BY dateConf DESC, dateInsert DESC", false, MYSQL_ASSOC);
$tabRet=array();
foreach ($ret as $i=>$tabCS) {
$dateEven=$tabCS['dateConf'];
if ($dateEven=='0000-00-00') $dateEven=$tabCS['dateInsert'];
$tabRet[]=array('DateEven' => $dateEven,
'DateFin' => $tabCS['dateFin'],
'CoteCS' => $tabCS['cs'],
// 'CoteCSpre' => $tabCS['CSAVAN'],
'LibCS' => $this->tabInfoCS['_'.$tabCS['cs']]['libExt'],
// 'LibCSpre' => $this->tabInfoCS[$tabCS['CSAVAN']*1]['libExt'],
'NivRisque' => $this->tabInfoCS['_'.$tabCS['cs']]['risque'],
//'NivRisquePre' => $this->tabInfoCS[$tabCS['CSAVAN']*1]['risque'],
'CodeRisque' => $this->tabInfoCS['_'.$tabCS['cs']]['type'],
);
}
return $tabRet;
}
public function getCoteSpecialeOld($siren) {
$ret=$this->iDb->select( 'ge_cs c LEFT JOIN ge_acheteurs a ON a.NUMACH=c.NUMGFH',
'DATMAJ1, NUMGFH, CSAVAN, CSAPRE, SIRENE',
"a.SIRENE=$siren ORDER BY a.SIRENE ASC, c.DATMAJ1 DESC", false, MYSQL_ASSOC);
$tabRet=array();
foreach ($ret as $i=>$tabCS) {
$tabRet[]=array('DateEven' => $tabCS['DATMAJ1'],
'CoteCS' => $tabCS['CSAPRE'],
'CoteCSpre' => $tabCS['CSAVAN'],
'LibCS' => $this->tabInfoCS[$tabCS['CSAPRE']*1]['libExt'],
'LibCSpre' => $this->tabInfoCS[$tabCS['CSAVAN']*1]['libExt'],
'NivRisque' => $this->tabInfoCS[$tabCS['CSAPRE']*1]['risque'],
'NivRisquePre' => $this->tabInfoCS[$tabCS['CSAVAN']*1]['risque'],
'CodeRisque' => $this->tabInfoCS[$tabCS['CSAPRE']*1]['type'],
);
}
return $tabRet;
}
public function getPaiements($siren, $echelle='mois') {
if ($echelle=='jour')
$strGroupBy="GROUP BY p.DATPIE ";
elseif ($echelle=='' || $echelle=='mois')
$strGroupBy="GROUP BY mois HAVING nbPieces>2 ";
elseif ($echelle=='trim')
$strGroupBy="GROUP BY trimestre HAVING nbPieces>2 ";
else // En mois par défaut
$strGroupBy="GROUP BY mois HAVING nbPieces>2 ";
$ret=$this->iDb->select( 'ge_paiements p LEFT JOIN ge_acheteurs a ON a.NUMACH=p.NUMACH',
"p.NUMACH, DATE_FORMAT(p.DATPIE, '%Y-%m') AS mois,
CONCAT(DATE_FORMAT(p.DATPIE,'%Y'),'-',IF(DATE_FORMAT(p.DATPIE,'%m')<4,1,IF(DATE_FORMAT(p.DATPIE,'%m')<7,2,IF(DATE_FORMAT(p.DATPIE,'%m')<10,3,4)))) AS trimestre,
count(*) AS nbPieces,
AVG(DATEDIFF(NOW(), p.DATECH)) AS nbJourRetard, AVG(DATEDIFF(p.DATPAI, p.DATECH)) AS nbJourPaiement,
ROUND(AVG(DATEDIFF(NOW(), p.DATECH) - DATEDIFF(p.DATPAI, p.DATECH))) AS nbJourMoyens,
IF(AVG(DATEDIFF(NOW(), p.DATECH) - DATEDIFF( p.DATPAI, p.DATECH ) ) <6, 0, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <36, 30, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <66, 60, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <96, 90, 120 ) ) ) ) AS nbJours,
SUM(p.MNTPIE) AS mtPieces, SUM(p.MNTFRF) AS mtPaiements, SUM(p.MNTLIT) AS mtLitiges,
p.CODDEV, a.SIRENE, a.RAISOC, a.CODPOS, a.VILLE",
"a.SIRENE=$siren AND DATEDIFF(NOW(),p.DATECH)<736 AND p.DATECH<NOW() $strGroupBy ORDER BY p.DATPIE DESC", false, MYSQL_ASSOC);
$tabRet=array();
foreach ($ret as $i=>$tabPai) {
$nbJoursMoyen=$tabPai['nbJourRetard']-$tabPai['nbJourPaiement'];
if ($nbJoursMoyen<6) $tranche=0;
elseif ($nbJoursMoyen<36) $tranche=30;
elseif ($nbJoursMoyen<66) $tranche=60;
elseif ($nbJoursMoyen<96) $tranche=90;
elseif ($nbJoursMoyen<126) $tranche=120;
elseif ($nbJoursMoyen<156) $tranche=150;
else $tranche=180;
$tabRet[]=array('trimestre' => $tabPai['trimestre'],
'mois' => $tabPai['mois'],
'nbPieces' => $tabPai['nbPieces'],
'nbJourRetard' => $tabPai['nbJourRetard'],
'nbJourPaiement'=> $tabPai['nbJourPaiement'],
'nbJourMoyen' => $nbJoursMoyen,
'nbJourMoyen2' => $tabPai['nbJourMoyens'],
'tranchePaiement'=>$tranche,
'tranchePaie90' =>$tabPai['nbJours'],
'mtPieces' => $tabPai['mtPieces'],
'mtPaiements' => $tabPai['mtPaiements'],
'mtLitiges' => $tabPai['mtLitiges'],
'devise' => $tabPai['CODDEV'],
);
}
//$this->tabPaiements=$tabRet;
/*@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Paiements", "SELECT p.NUMACH, DATE_FORMAT(p.DATPIE, '%Y-%m') AS mois,
CONCAT(DATE_FORMAT(p.DATPIE,'%Y'),'-',IF(DATE_FORMAT(p.DATPIE,'%m')<4,1,IF(DATE_FORMAT(p.DATPIE,'%m')<7,2,IF(DATE_FORMAT(p.DATPIE,'%m')<10,3,4)))) AS trimestre,
count(*) AS nbPieces,
AVG(DATEDIFF(NOW(), p.DATECH)) AS nbJourRetard, AVG(DATEDIFF(p.DATPAI, p.DATECH)) AS nbJourPaiement,
ROUND(AVG(DATEDIFF(NOW(), p.DATECH) - DATEDIFF(p.DATPAI, p.DATECH))) AS nbJourMoyens,
IF(AVG(DATEDIFF(NOW(), p.DATECH) - DATEDIFF( p.DATPAI, p.DATECH ) ) <6, 0, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <36, 30, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <66, 60, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <96, 90, 120 ) ) ) ) AS nbJours,
SUM(p.MNTPIE) AS mtPieces, SUM(p.MNTFRF) AS mtPaiements, SUM(p.MNTLIT) AS mtLitiges,
p.CODDEV, a.SIRENE, a.RAISOC, a.CODPOS, a.VILLE
FROM ge_paiements p LEFT JOIN ge_acheteurs a ON a.NUMACH=p.NUMACH
WHERE a.SIRENE=$siren AND DATEDIFF(NOW(),p.DATECH)<736 AND p.DATECH<NOW() $strGroupBy ORDER BY p.DATPIE DESC".EOL.EOL.print_r($tabRet, true).EOL);
*/
return $tabRet;
}
public function getProfilPayeur($siren) {
if ($siren<1000) return '';
$libProfil='';
/*if ($this->siren==$siren)
$tabPaie=$this->tabPaiements;
else*/
$tabPaie=$this->getPaiements($siren);
if (count($tabPaie)>=3) {
$tabProfil=array();
$paie_min=180;
$paie_max=$totFactures=$totPaiements=$totLitiges=0;
foreach ($tabPaie as $i=>$tabPai) {
if ($i==0) { $this->risqueImpayeMois=$tabPai['mois'];
// Dernier délai de paiement en jour
$this->DELAIPAY=$tabPai['tranchePaiement'];
} elseif ($this->DELAIPAYp=='' && $tabPai['tranchePaiement']<>$this->DELAIPAY ) {
$this->DELAIPAYp=$tabPai['tranchePaiement'];
$this->DELAIPAY_MMAA=$tabPai['mois'];
}
$tabProfil[$i]=$tabPai['tranchePaiement'];
$totFactures+=$tabPai['mtPieces'];
$totPaiements+=$tabPai['mtPaiements'];
$totLitiges+=$tabPai['mtLitiges'];
if ($tabPai['tranchePaiement']<$paie_min) $paie_min=$tabPai['tranchePaiement'];
if ($tabPai['tranchePaiement']>$paie_max) $paie_max=$tabPai['tranchePaiement'];
}
$tauxLitige=$totLitiges/$totFactures;
if ($tauxLitige>=0.5) $libProfil.='Litiges très importants. ';
elseif ($tauxLitige>0.25) $libProfil.='Litiges importants. ';
elseif ($tauxLitige>0.05) $libProfil.='Présence de litiges. ';
if ($tabProfil[0]==$tabProfil[1] && $tabProfil[1]==$tabProfil[2]) {
if ($tranche=0) { $libProfil.='Paiements à échéance'; $this->profilPayeur=1; }
elseif ($tranche<=30) { $libProfil.='Paiements à 30 jours maximum'; $this->profilPayeur=2; }
elseif ($tranche<=60) { $libProfil.='Paiements à 60 jours maximum'; $this->profilPayeur=3; }
elseif ($tranche<=90) { $libProfil.='Paiements à 90 jours maximum'; $this->profilPayeur=4; $this->risqueImpaye=true;}
else { $libProfil.='Paiements à plus de 90 jours'; $this->profilPayeur=4; $this->risqueImpaye=true;}
} elseif ( ($tabProfil[0]<>$tabProfil[1] && $tabProfil[1]==$tabProfil[2]) ||
($tabProfil[0]==$tabProfil[1] && $tabProfil[1]<>$tabProfil[2]) ) {
// Récent changement de profil payeur
$tranche=$tabProfil[0];
$tr_prec=$tabProfil[1];
$tr_prec2=$tabProfil[2];
if ($tranche<$tr_prec) $libProfil.='Amélioration des délais. ';
elseif ($tranche==$tr_prec && $tr_prec<$tr_prec2) $libProfil.='Amélioration des délais. ';
else { $this->risqueImpaye=true; $libProfil.='Allongement des délais. '; }
if ($tranche=0) { $libProfil.='Paiements à échéance'; $this->profilPayeur=1; }
elseif ($tranche<=30) { $libProfil.='Paiements à 30 jours maximum'; $this->profilPayeur=2; }
elseif ($tranche<=60) { $libProfil.='Paiements à 60 jours maximum'; $this->profilPayeur=3; }
elseif ($tranche<=90) { $libProfil.='Paiements à 90 jours maximum'; $this->profilPayeur=4; $this->risqueImpaye=true;}
else { $libProfil.='Paiements à plus de 90 jours'; $this->profilPayeur=4; $this->risqueImpaye=true;}
} else {
if ($paie_max<=30) $this->profilPayeur=1;
elseif ($paie_max<=60) $this->profilPayeur=2;
elseif ($paie_max<=90) $this->profilPayeur=3;
elseif ($paie_max>90) $this->profilPayeur=4;
$libProfil.="Paiements entre $paie_min et $paie_max jour(s)";
}
}
if (trim($libProfil)=='' && $siren<>552100554 && $siren<>552144503 && $siren<>479974115
&& $siren<>0 && $siren<>494967938 ) {
$ret=$this->iDb->select('jo.surveillances_listes',
'ref, dateAjout, dateConf, dateSuppr, dateDerEnvoi',
"idClient='SURBODPRDFTSRECOCASH' AND siren=$siren AND dateSuppr=0
AND ABS(DATEDIFF(dateAjout, NOW()))<365
ORDER BY dateConf DESC, dateAjout DESC", false, MYSQL_ASSOC);
foreach ($ret as $i=>$tabCS) {
$dateMAJ=WDate::dateT('Y-m-d', 'M Y', $tabCS['dateAjout']);
$libProfil="En date du $dateMAJ : Contentieux importants.";
$this->risqueImpaye=true;
$this->risqueImpayeMois=WDate::dateT('Y-m', 'Ym', $tabCS['dateAjout']);
$this->profilPayeur=4;
break;
}
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Paiements", $libProfil.EOL.'Profil payeur = '. $this->profilPayeur .EOL.print_r($tabPaie, true).EOL);
return $libProfil;
}
public function getTabPaiements($siren) {
if ($siren<1000) return false;
$tabNbr=array(); // Tableau de travail du nombre de factures par trimestre et par tranches de délais de paiements
$tabMtAn=array(); // Tableau de travail du nombre de factures par montant et par tranches de délais de paiements
$tabNbr2=array(); // Tableau retour du nombre de factures par trimestre et par tranches de délais de paiements
$tabMtAn2=array(); // Tableau retour du nombre de factures par montant et par tranches de délais de paiements
$tabPaie=$this->getPaiements($siren, 'jour');
foreach ($tabPaie as $i=>$tabPai) {
@$tabNbr[$tabPai['trimestre']]['d='.$tabPai['tranchePaiement']]+=$tabPai['nbPieces'];
@$tabNbr[$tabPai['trimestre']]['all']+=$tabPai['nbPieces'];
$mt=$tabPai['mtPieces']/$tabPai['nbPieces'];
// echo "$i\t".$tabPai['trimestre']." (".$tabPai['tranchePaiement']." j)\t$mt=".$tabPai['mtPieces'].'/'.$tabPai['nbPieces'].EOL;
if ($mt<500) { @$tabMtAn[1]['d='.$tabPai['tranchePaiement']]++; @$tabMtAn[1]['all']++; }
elseif ($mt<2000) { @$tabMtAn[2]['d='.$tabPai['tranchePaiement']]++; @$tabMtAn[2]['all']++; }
elseif ($mt<10000) { @$tabMtAn[10]['d='.$tabPai['tranchePaiement']]++; @$tabMtAn[10]['all']++; }
elseif ($mt<20000) { @$tabMtAn[20]['d='.$tabPai['tranchePaiement']]++; @$tabMtAn[20]['all']++; }
elseif ($mt<50000) { @$tabMtAn[50]['d='.$tabPai['tranchePaiement']]++; @$tabMtAn[50]['all']++; }
elseif ($mt<100000) { @$tabMtAn[100]['d='.$tabPai['tranchePaiement']]++; @$tabMtAn[100]['all']++; }
elseif ($mt<200000) { @$tabMtAn[200]['d='.$tabPai['tranchePaiement']]++; @$tabMtAn[200]['all']++; }
else { @$tabMtAn[999]['d='.$tabPai['tranchePaiement']]++; @$tabMtAn[999]['all']++; }
//@$tabMtAn['all'][$tabPai['tranchePaiement']]++;
}
// Recalcul des délais par Trimestre
foreach ($tabNbr as $trim=>$tabTranche) {
ksort($tabTranche);
// Initialisation des tranches à 0
foreach ($this->tabTranches as $tranche=>$vide)
$tabNbr2[$trim]['nb']=$tabNbr2[$trim]['d='.$tranche]=0;
foreach ($tabTranche as $tranche=>$mt3) {
$tranche=str_replace('d=','',$tranche);
if ($tranche=='all') $tabNbr2[$trim]['nb']=$mt3;
else $tabNbr2[$trim]['d='.$tranche]=round(($mt3/$tabNbr2[$trim]['nb'])*100,1);
}
}
// Initialisation des tranches à 0 par Montants
foreach ($this->tabMontants as $mt=>$vide) {
$tabMtAn2['_'.$mt]['nb']=0;
foreach ($this->tabTranches as $tranche=>$vide)
$tabMtAn2['_'.$mt]['d='.$tranche]=0;
}
// Recalcul des délais par Montants
ksort($tabMtAn);
foreach ($tabMtAn as $mt=>$tabTranche) {
ksort($tabTranche);
foreach ($tabTranche as $tranche=>$mt2) {
$tranche=str_replace('d=','',$tranche);
if ($tranche=='all') $tabMtAn2['_'.$mt]['nb']=$mt2;
else $tabMtAn2['_'.$mt]['d='.$tranche]=round(($mt2/$tabMtAn2['_'.$mt]['nb'])*100,1);
}
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Tableaux des Paiements", 'Paiements par montants :'.EOL.print_r($tabMtAn2, true).EOL.EOL.'Paiements par trimestres :'.EOL.print_r($tabNbr2, true).EOL.print_r($tabNbr, true).EOL.print_r($tabMtAn, true).EOL);
return array('parMont'=>$tabMtAn2,
'parTrim'=>$tabNbr2);
}
public function getLibInfoCS($cs) {
return array( 'CoteCS' => $cs,
'LibCS' => $this->tabInfoCS["_$cs"]['libExt'],
'NivRisque' => $this->tabInfoCS["_$cs"]['risque'],
'CodeRisque' => $this->tabInfoCS["_$cs"]['type'],
);
}
}
?>

View File

@ -1,52 +0,0 @@
<?
class MFedaso {
private $tabCodeRetour=array(0 => 'Traitement OK',
100 => 'Document illisible',
101 => 'Document partiellement lisible',
102 => 'Document inattendu',
103 => 'Page blanche',
104 => 'Fichier absent',
105 => 'page partiellement scannée',
106 => 'Document complémentaire concernant une autre société',
107 => 'Page(s) manquante(s)',//NEW
108 => 'Document(s) non Francophone',
200 => 'Aucune information dirigeants',
210 => 'Aucune information actionnaire',
211 => 'Aucune information capitalistique',
220 => 'Aucune information RIB',
221 => 'Code guichet inconnu',
250 => 'Raison Sociale absente',//NEW
251 => 'Raison Sociale en double : entête retenue',//NEW
252 => 'Raison Sociale en double : entête non retenue',//NEW
300 => 'Code pays absent du réferentiel',
301 => 'Code devise absent du référentiel',
201 => 'Code fonction inexistant',
);
public function getRefCodeRetour($sep=',', $eol=EOL) {
$str='codRetour'.$sep.'libRetour'.$eol;
foreach ($this->tabCodeRetour as $key=>$value)
$str.=$key.$sep.$value.$eol;
return $str;
}
public function getRefCodeVoie($sep=',', $eol=EOL) {
$row = 1;
$handle = fopen(DOC_WEB_LOCAL.'tables/voies.csv', 'r');
if (!$handle) die('Impossible d\'ouvrir le fichier de configuration des voies INSEE');
$tabTmp=array();
while (($data = fgetcsv($handle, 1000, ';')) !== FALSE) {
if ($row==1)
$str='codVoie'.$sep.'libVoie'.$eol;
elseif (substr($data[0],0,1)<>'#' && $data[2]==1) // Ligne en commentaires CSV
$str.=$data[0].$sep.$data[1].$eol;
$row++;
}
fclose($handle);
return $str;
}
}
?>

View File

@ -1,355 +0,0 @@
<?
require_once 'framework/common/curl.php';
class MGlobal {
function __construct($siren) {
$timeout=5;
$c_cof = curl_init();
$c_soc = curl_init();
$c_pou = curl_init();
// Définit l'URL ainsi que d'autres options
curl_setopt($c_cof, CURLOPT_URL, 'http://www.cofacerating.fr/portail/entreprise_identite/identite.asp?ip=pagespro&lg=fr&nsiren='.$siren);
curl_setopt($c_cof, CURLOPT_HEADER, 0);
curl_setopt($c_cof, CURLOPT_TIMEOUT, $timeout);
curl_setopt($c_cof, CURLOPT_REFERER, '');
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);
// Création du gestionnaire multiple
$mh = curl_multi_init();
// Ajoute les deux gestionnaires
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
$running=null;
// Exécute le gestionnaire
do {
curl_multi_exec($mh,$running);
} while($running > 0);
// Ferme tous les gestionnaires
curl_multi_remove_handle($ch1);
curl_multi_remove_handle($ch2);
curl_multi_close($mh);
// $iDb=new WDB();
$referer='';
$url='http://www.cofacerating.fr/portail/entreprise_identite/identite.asp?ip=pagespro&lg=fr&nsiren='.$siren;
$page=getUrl($url, '', '', $referer, false, 'www.cofacerating.fr', '', 10);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
$this->nscrl=@getTextInHtml($this->body, '&nscrl=', '=','&');
$this->rSocAdrCPVille=trim(str_replace(chr(160), ' ', html_entity_decode(utf8_encode(@getTextInHtml($this->body, '<td WIDTH="40%" bgcolor="#F3E5CC" class="tabligne"> <b> Raison sociale<br>', '<td WIDTH="60%" bgcolor="#FFF3DE" class="tabval"><b>','</tr>')))));
$tmp=explode('<br>', $this->rSocAdrCPVille);
$this->raisonSociale=trim($tmp[0]);
unset($tmp[0]);
$this->adresse=trim(strip_tags(implode(',', $tmp)));
$this->tel=trim(@getTextInHtml($this->body, '<td bgcolor="#F3E5CC" class="tabligne"><b>Téléphone<br>', '<td bgcolor="#FFF3DE" class="tabval" valign="top">', '<br>'));
$this->fax=trim(@getTextInHtml($this->body, 'Télécopie</b></td>', '<br>', '</td>'));
$this->web=trim(@getTextInHtml($this->body, '<td bgcolor="#F3E5CC" class="tabligne"><b>Adresse internet <br>', ' class="tabval"><a class="tabval" HREF="', '" target="_new">'));
$this->mail=trim(@getTextInHtml($this->body, '<a class="tabval" href="mailto:', ':', '">'));
$bourse=trim(@getTextInHtml($this->body, 'Ville Bourse</b></td>', 'class="tabval">', '</td>'));
$tmp=explode('<br>', $bourse);
$this->bourseIsin=trim($tmp[0]);
$this->bourseMarche=trim($tmp[1]);
$this->bourseVille=trim($tmp[2]);
$infosDispo=trim(@getTextInHtml($this->body, '<b>Liste Produits</b><br></td>', '<br></td><td class="menu3"><img src="../images/vide.gif" border="0"><br></td><td colspan="2" class="menu3">', 'Un secteur ou une région en France</a><br></td>'));
$tabTmp=explode('<a href="', $infosDispo);
foreach ($tabTmp as $k=>$lien) {
preg_match('/^(.*)">(.*)<\/a>/i', $lien, $matches);
if ($matches[2]<>'') $this->tabInfos[$matches[2]]=$matches[1];
if (substr($matches[2], 0, 12)=='rapport éco.') $this->infoEco='http://www.cofacerating.fr/portail/entreprise_identite/'.$matches[1];//ip=pagespro&
elseif (substr($matches[2], 0, 6)=='bilan ') $this->tabBilans[]=substr($matches[2], 6,strlen($matches[2])-6);
}
$this->activite=trim(str_replace(chr(160), ' ', html_entity_decode(utf8_encode(@getTextInHtml($this->body, '<td WIDTH="40%" bgcolor="#F3E5CC" class="tabligne" valign="top"><b>Libellé code activité </b></td>', '<td WIDTH="60%" bgcolor="#FFF3DE" class="tabval">', '</td>')))));
$this->naf=trim(@getTextInHtml($this->body, '<a href="../chaineeco_dynaeco/DynaEco.asp?cnaf=', 'cnaf=', '&'));
/**
** Recherche du NIC sur Société .com
**/
/*
$refererS='http://www.societe.com/';
$urlS='http://www.societe.com/cgi-bin/recherche?rncs='.$siren.'&vu=1';
$page=getUrl($urlS, '', '', $refererS, false, 'www.societe.com');
$ste=$page['body'];
$this->nic=trim(@getTextInHtml($ste, 'SIRET</div><div class="ficheAltCol2 size11">', $siren, '</div>'));
$strTmp=trim(@getTextInHtml($ste, '<b><span class="size10">RCS', 'RCS ', ' '.substr($siren,0,3)));
$tabTmp=explode(' ', $strTmp);
$this->rcsVille=$tabTmp[0];//<td class="txtBlanc" align="left"><b><span class="size10">RCS Paris B 552 144 503<br></span></b></td>
$this->rcsType=$tabTmp[1];
$strTmp=trim(@getTextInHtml($ste, '<div class="ficheAltCol1 size11">Code activité</div>', '<div class="ficheAltCol2 size11">', '</div>'));
$tabTmp=explode(' - ', $strTmp);
$this->naf=$tabTmp[0];
$this->nafLib=$tabTmp[1];
// <div class="ficheAltCol1 size11">Siège social</div><div class="ficheAltCol2 size11">75 Avenue la Grande Armee - 75116 PARIS 16</div>
$strTmp=trim(@getTextInHtml($ste, '<div class="ficheAltCol1 size11">Capital social', '<div class="ficheAltCol2 size11">', '</div>'));
$this->capitalType='social';
$tabTmp=explode(' ', $strTmp);
$this->capitalMontant=str_replace(',', '.', str_replace('.', '', $tabTmp[0]));
$this->capitalDevise =$tabTmp[1];
$this->fj=trim(@getTextInHtml($ste, '<div class="ficheAltCol1 size11">Forme juridique', '<div class="ficheAltCol2 size11">', '</div>'));
$this->nationalite=trim(@getTextInHtml($ste, '<div class="ficheAltCol1 size11">Nationalit&eacute;</div>', '<div class="ficheAltCol2 size11">', '</div>'));
$strTmp=trim(@getTextInHtml($ste, '&nbsp;DIRIGEANT(S)&nbsp;</span></span></div>', '<div class="ficheCadre" style="min-height:85px;">', '<div class="spacer"></div>'));
$tabTmp=explode('<div class="h1bleu2"></div>', $strTmp);
foreach ($tabTmp as $k=>$dir) {
if (trim($dir)=='') break;
$tabTmp1=explode('</div><div class="ficheAltCol2 size11">', $dir);
$tabTmp2=explode('représenté par', $tabTmp1[1]);
if (isset($tabTmp2[1]) && $tabTmp2[1]<>'') {
$soc=trim($tabTmp2[0]);
$diri=trim($tabTmp2[1]);
} else {
$soc='';
$diri=trim($tabTmp1[1]);
}
preg_match("/^(Mme|M\.|Mlle|Mle|M) ([A-Z\s]*) ([A-Z][a-z\s]*)/", $diri, $matches);
//print_r($matches);
$this->tabDirigeants[]=array('FONCTION'=>trim(strip_tags($tabTmp1[0])), 'SOCIETE'=>$soc, 'GENRE'=>$matches[1], 'PRENOM'=>trim($matches[3]), 'NOM'=>trim($matches[2]));
}
$this->dateImmatriculation=trim(@getTextInHtml($ste, '<div class="ficheAltCol1 size11"> Immatriculation', '<div class="ficheAltCol2 size11">', '</div>'));
//06-03-2007</div>
/* Date Creation = ""
En bourse = ""
Effectif societe = ""
Dirigeants :
**/
$urlRacine='http://infobilan.decideur.com/';
$tabPost=array( 'choix'=>'1',
'pagePrecedente'=>'recherche_entreprise.html',
'nomsocRech'=>'',
'cpRech'=>'',
'villeRech'=>'',
'nomdirRech'=>'',
'predirRech'=>'',
'sirenRech'=>$siren,
'telRech'=>'',
'Rechercher.x'=>round(79),
'Rechercher.y'=>round(19),);
$url=$urlRacine.'liste_result.html';
$referer=$urlRacine.'recherche_entreprise.html';
$page=getUrl($url,'', $tabPost, $referer, false, 'infobilan.decideur.com');
$this->body=$page['body'];
$strCookie=$page['header']['Set-Cookie'];
$refererInfoD=$url;
if(preg_match_all('/<a href="choix_pdt\.html\?(.*)" class="tt1">(.*)<\/a><\/span><br>/i', $page['body'], $matches))
$urlInfoD=$urlRacine.'choix_pdt.html?'.$matches[1][0];
else
$urlInfoD='';
$page=getUrl($this->infoEco, '', '', $url, false, 'www.cofacerating.fr');
if (strpos($page['body'], '<b>Choix du mode de paiement</b>')===false) { // Le rapport éco. est cadeau !!!
$this->infoEco=true;
$eco=$page['body'];
//die ($eco);
$strTmp=strip_tags(@getTextInHtml($eco, ' class="tabligne" > Capital &nbsp (', '(', '</tr><tr>'));
$tabTmp=explode(')', $strTmp);
$this->capitalType=$tabTmp[0];
$tabTmp=explode('&nbsp', $tabTmp[1]);
$this->capitalMontant=trim(str_replace(chr(160), '', $tabTmp[0]));
$this->capitalDevise =trim(str_replace(chr(160), '', $tabTmp[1]));
$this->steInactive=trim(@getTextInHtml($eco, ' class="tabligne" > Société inactive</td>', 'class="tabval" >', '</td>'));
$this->dateCreation=trim(@getTextInHtml($eco, ' class="tabligne" > Date de création</td>', 'class="tabval" >', '</td>'));
$this->fj=trim(@getTextInHtml($eco, ' class="tabligne" > Forme juridique</td>', 'class="tabval" >', '</td>'));
$this->effectif=trim(@getTextInHtml($eco, ' class="tabligne" > Effectif', 'class="tabval" >', '</td>'));
if (count($this->tabDirigeants)==0) { // Si il y a déjà des dirigeants on garde ceux de Société.com !!!
$strTmp=trim(@getTextInHtml($eco, ' class="tabligne" > Cotation en bourse</td>', '<td bgcolor="#F3E5CC" class="tabligne" >', '<td bgcolor="#F3E5CC" class="tabligne" > Effectif'));
$tabTmp=explode('<td bgcolor="#F3E5CC" class="tabligne" >', $strTmp);
foreach ($tabTmp as $k=>$dir) {
$tabTmp1=explode('<td bgcolor="#FFF3DE" class="tabval" >', $dir);
$tabTmp2=explode('&nbsp', trim(strip_tags($tabTmp1[1])));
$this->tabDirigeants[]=array('FONCTION'=>trim(strip_tags($tabTmp1[0])), 'GENRE'=>trim($tabTmp2[0]), 'PRENOM'=>trim($tabTmp2[1]), 'NOM'=>trim($tabTmp2[2]));
}
}
$this->strLiensFi=trim(strip_tags(@getTextInHtml($eco, '<td class="tabtot">LIENS FINANCIERS</td>', '<tr>', '</td></tr>')));
$this->strElemsFi=trim(strip_tags(@getTextInHtml($eco, '<td class="tabtot">ELEMENTS FINANCIERS</td>', '<tr>', '</td></tr>')));
}
$refererP='http://www.score3.fr/';
$urlP='http://www.score3.fr/entreprise.shtml?siren='.$siren;
$page=getUrl($urlP, '', '', $refererP, false, 'www.score3.fr');
$pou=$page['body'];
$fp=fopen('./pouet.html', 'w');
fwrite($fp, $pou);
fclose($fp);
if ($urlInfoD<>'') {
$page=getUrl($urlInfoD,$strCookie,'', $refererInfoD, false, 'infobilan.decideur.com');
$referer=$urlInfoD;
if ($this->nscrl==0) $this->nscrl=@getTextInHtml($url, 'nscrlP=', '=','&');
$url=$urlRacine.'fiche_ident.html';
$page=getUrl($url,$strCookie,'', $referer, false, 'infobilan.decideur.com');
$this->body=$page['body'];
if ($this->raisonSociale=='')
$this->raisonSociale=trim(@getTextInHtml($this->body, '<span class="libelle2">Soci&eacute;t&eacute;', ' :', '</span>'));
if ($this->adresse=='')
$this->adresse=trim(@getTextInHtml($this->body, '<span class="libelle2">Adresse</span> <strong>:', '</strong>', '</td>'));
if ($this->tel=='')
$this->tel=trim(@getTextInHtml($this->body, '<td valign="top"><span class="libelle2">T&eacute;l', '</span>', '<br>'));
if ($this->fax=='')
$this->fax=trim(@getTextInHtml($this->body, '<span class="libelle2">Fax</span>', ' :', '<br>'));
if ($this->web=='')
$this->web=trim(@getTextInHtml($this->body, '<span class="libelle2">Site Web</span>', '<a href="', '" target="_blank">'));
if ($this->mail=='')
$this->mail=trim(@getTextInHtml($this->body, '<span class="libelle2">E-mail</span>', '<a href="mailto:', '">'));
if ($this->naf=='')
$this->naf=trim(@getTextInHtml($this->body, '<span class="libelle2">Code NAF</span>', ' :', '</td>'));
if(preg_match('/<td valign="top"><span class="libelle2">Capital social<\/span> : (\d*)(.*)<br>/isU', $this->body, $matches)
&& ($this->capitalMontant=='' || $this->capitalDevise=='')) {
$this->capitalMontant=trim($matches[1]);
$this->capitalDevise=trim($matches[2]);
}
if ($this->fj=='')
$this->fj=trim(@getTextInHtml($this->body, '<span class="libelle2">Forme juridique</span>', ' :', '<br>'));
if ($this->nationalite=='')
$this->nationalite=trim(@getTextInHtml($this->body, '<span class="libelle2">Nationalit&eacute;</span>', ' :', '</td>'));
if ($this->effectif=='')
$this->effectif=trim(@getTextInHtml($this->body, '<td valign="top"><span class="libelle2">Effectif</span>', ' :', '<br>'));
if ($this->activite=='')
$this->activite=trim(@getTextInHtml($this->body, '<span class="libelle2">Activit&eacute;</span>', ' :', '<br>'));
/** Actionnaires **/
$strTmp=trim(@getTextInHtml($this->body, 'ACTIONNAIRES<br>', '</div></h1>', '<h1>'));
if(preg_match_all('/<p><span class="libelle2">(.*)<\/span> - <span class="libelle2">Participation<\/span> : (.*) %<br>(.*)<\/p>/isU', $strTmp, $matches)) {
foreach ($matches[1] as $i=>$nom) {
$this->tabAct[$i]['nom']=trim($nom);
$this->tabAct[$i]['pct']=trim($matches[2][$i]);
$this->tabAct[$i]['rcs']=trim(str_replace('RCS : ','',strip_tags($matches[3][$i])));
}
}
/** Filiales **/
$strTmp=trim(@getTextInHtml($this->body, 'FILIALES<br>', '</div></h1>', '<h1>'));
if(preg_match_all('/<p><span class="libelle2">(.*)<\/span> - <span class="libelle2">Participation<\/span> :(.*)%<br>(.*)<\/p>/isU', $strTmp, $matches)) {
foreach ($matches[1] as $i=>$nom) {
$this->tabFil[$i]['nom']=trim($nom);
$this->tabFil[$i]['pct']=trim($matches[2][$i]);
$this->tabFil[$i]['rcs']=trim(str_replace('RCS :','',strip_tags($matches[3][$i])));
}
}
/** CA et Résultat **/
$strTmp=trim(@getTextInHtml($this->body, '<h1>PRINCIPAUX ELEMENTS FINANCIERS<br>', '</div></h1>', '</p>'));
if(preg_match('/<p><span class="libelle2">CA (.*)<\/span>(.*)<br>/isU', $strTmp, $matches)) {
$this->derExerciceAnnee=trim($matches[1]);
$this->derExerciceCA=trim(str_replace(':',' ', $matches[2]));
}
if(preg_match('/<span class="libelle2">R&eacute;sultat(.*)<\/span>(.*)$/isU', $strTmp, $matches)) {
$this->derExerciceResultat=trim(str_replace(':',' ', $matches[2]));
}
$infoBilan=print_r($page, true);
$fp=fopen('./infobilan.html', 'w');
fwrite($fp, $infoBilan);
fclose($fp);
}
if ($this->nbEtab=='' || $this->nbEtab=='0') {
$this->nbEtab=trim(strip_tags(str_replace('afficher la liste...', '', @getTextInHtml($pou, '<tr><td class="ligne1_2">Etablissements </td>', '<td class="ligne2_2">', '</td></tr>'))));
$urlPEtab='http://www.score3.fr/etablissements.shtml?page=1&siren='.$siren;
$refererPEtab=$urlP;
$page=getUrl($urlPEtab, '', '', $refererPEtab, false, 'www.score3.fr');
$pou2=$page['body'];
if(preg_match_all('/<tr bgcolor="(?:\S*)"><td class="ligne1b" align="center" width="10%">(\d*)<\/td><td class="ligne2" height="50"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td class="infos">(.*)<\/td><\/tr><\/table>/isU', $pou2, $matches)) {
foreach ($matches[1] as $i=>$nic) {
$strEtab=$matches[2][$i];
$this->tabEtab[$i]['siren']=$siren;
$this->tabEtab[$i]['nic']=$nic;
$this->tabEtab[$i]['siret']=$siren.$nic;
$this->tabEtab[$i]['enseigne']=trim(str_replace(chr(160),' ',utf8_decode(strip_tags(@getTextInHtml($strEtab, '<span class="titre3">', '">', '</span>')))));
$this->tabEtab[$i]['adresse']=trim(str_replace(chr(160),' ',utf8_decode(strip_tags(@getTextInHtml($strEtab, '<span class="infos">', '">', '<br>')))));
$strTmp=trim(str_replace(chr(160),' ',utf8_decode(strip_tags(@getTextInHtml($strEtab, '<span class="infos">', '<br>', '</span>')))));
$tabTmp=explode(' ', $strTmp);
$this->tabEtab[$i]['cp']=$tabTmp[0];
unset($tabTmp[0]);
$this->tabEtab[$i]['ville']=implode(' ',$tabTmp);
$strTmp=trim(strip_tags(@getTextInHtml($strEtab, '<td class="infos" align="right" valign="top">', '">', ')')));
$tabTmp=explode('(', $strTmp);
$this->tabEtab[$i]['naf_code']=$tabTmp[1];
$this->tabEtab[$i]['naf_lib']=trim(str_replace(chr(160),' ',utf8_decode($tabTmp[0])));
if (preg_match('/<br>T.l\.(.*)$/i',$strEtab,$matches2))
$this->tabEtab[$i]['tel']=trim(str_replace(chr(160),' ',utf8_decode($matches2[1])));
else $this->tabEtab[$i]['tel']='';
}
}
$this->nbEtab=count($this->tabEtab);
$fp=fopen('./pouet_etab.html', 'w');
fwrite($fp, $pou2);
fclose($fp);
}
if ($this->effectif=='' || $this->effectif=='0' || $this->effectif=='NC')
$this->effectif=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Effectifs</td>', '<td class="ligne2_2">', '</td></tr>'));
if ($this->dateImmatriculation=='' || $this->dateImmatriculation=='0')
$this->dateImmatriculation=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Date d\'immatriculation</td>', '<td class="ligne2_2">', '</td></tr>'));
if ($this->dateFermeture=='' || $this->dateFermeture=='0')
$this->dateFermeture=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Date de fin d\'exploitation</td>', '<td class="ligne2_2">', '</td></tr>'));
if ($this->tel=='' || $this->tel=='0')
$this->tel=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Téléphone</td>', '<td class="ligne2_2">', '</td></tr>'));
if ($this->fax=='' || $this->fax=='0')
$this->fax=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Fax</td>', '<td class="ligne2_2">', '</td></tr>'));
$strTmp=trim(@getTextInHtml($pou, 'Procédures collectives</td></tr>', '</table></td>', '</td><td background'));
if(preg_match_all('/<tr><td class="ligne1_2">(.*)<\/td><td class="ligne2_2">(.*)<\/td><\/tr>/isU', $strTmp, $matches)) {
foreach ($matches[1] as $i=>$jug) {
$this->tabJug[$i]['date']=$matches[1][$i];
$this->tabJug[$i]['juge']=$matches[2][$i];
}
}
$this->score_pouey=trim(@getTextInHtml($pou, '<param name="movie" value="cadran.swf?rotation=', '&amp;type=pouey&amp;valeur=', '">'));
$this->score_conan=trim(@getTextInHtml($pou, '<param name="movie" value="cadran.swf?rotation=', '&amp;type=ch&amp;valeur=', '">'));
$this->score_afdcc=trim(@getTextInHtml($pou, '<param name="movie" value="cadran.swf?rotation=', '&amp;type=afdcc&amp;valeur=', '">'));
$this->vigilance =trim(@getTextInHtml($pou, '<param name="movie" value="vigilance.swf', 'degre=', '">'));
if(preg_match('/Date de l\'exercice<\/td><td class="ligne2_2">(.*) sur (\d*) mois<\/td><\/tr>/isU', $pou, $matches)) {
$this->derExerciceDClot=trim($matches[1]);
$this->derExerciceDuree=trim($matches[2]);
}
/* Siret SIEGE
2 Fonction, Nom Prénoù ET Date NAissance du PP
5 Liste des actes
*/
if ($this->codeRetour==200)
return true;
return false;
}
}
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,365 +0,0 @@
<?php
require_once 'framework/common/curl.php';
/** @todo A faire et sortir du coup la méthode de commande d'enquêtes du WS **/
class MIntersud {
private $body = '';
private $header = '';
private $codeRetour = 0;
private $cookie=false;
private $reference = 0;
private $timeOut=0;
private $url='';
private $urlRacine='http://www.intersud.fr';
private $referer='';
private $curPage='';
public $siren;
function __construct() {
$this->partGetSession();
$this->partConnection();
}
function __destruct() {
$this->partSaveSession();
}
function getInfosDisponbiles($siren) {
$this->siren=$siren;
$this->partConnection();
return $this->partVitrine(true);
}
private function partConnection() {
if (!$this->wrncsrv2 || time()>$this->timeOut) {
$this->timeOut=time()+900;
$this->url=$this->urlRacine.'/index.ow';
$page=getUrl($this->url, '', '', $this->urlRacine, false, 'www.euridile.com');
$this->referer=$this->url;
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
//echo date('Y/m/d - H:i:s') ." - Initialisation URL = $this->url (Code retour = $this->codeRetour)<br/>".EOL;
$fp=fopen('./euridile_connexion1.log', 'w');
fwrite($fp,print_r($page,true));
fclose($fp);
if (preg_match('/<META HTTP-EQUIV="Refresh" CONTENT="0; URL=(.*)">/i', $this->body, $matches))
$this->url=$this->urlRacine.'/'.$matches[1];
else debugLog('E',"Erreur de communication - Redirection impossible sur ".$this->url,__LINE__,__FILE__,__FUNCTION__,__CLASS__);
debugLog('I','Redirection trouv<75>e sur la page '.$this->url,__LINE__,__FILE__,__FUNCTION__,__CLASS__);
if (preg_match('/\.ow\?WRNCSRV2=(.*)$/i', $matches[1], $matches)) {
$this->wrncsrv2=$matches[1];
debugLog('I','Session partenaire WRNCSRV2='.$this->wrncsrv2,__LINE__,__FILE__,__FUNCTION__,__CLASS__);
}
else debugLog('E','Impossible d\'identifier le num<75>ro de session partenaire',__LINE__,__FILE__,__FUNCTION__,__CLASS__);
$page=getUrl($this->url, '', '',$this->referer, false, 'www.euridile.com');
$this->referer=$this->url;
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
debugLog('D',"Page d'accueil URL = $this->url (Code retour = $this->codeRetour)",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
$fp=fopen('./euridile_connexion2.log', 'w');
fwrite($fp,print_r($page,true));
fclose($fp);
if (preg_match('/<form method="POST" name="abonnement" ACTION="(.*)" /i', $this->body, $matches)) {
$postData=array('IDENT'=>'OK',
'MDP'=>'3180',
'cliref'=>'K5K3X5',
'PASS'=>'3180',
'WRNCSRV2'=>$this->wrncsrv2);
/** @todo Fair une fonction qui g<EFBFBD>re les URL commen<EFBFBD>ant par ./ ou ../ ou / afin de pouvoir les concatener
**/
$this->url=$this->urlRacine.str_replace('..','',$matches[1]);
debugLog('D',"Authentification possible vers $this->url",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
}
else debugLog('E',"Authentification impossible car formulaire indisponible",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
sleep(1);
$page=getUrl($this->url,'', $postData, $this->referer, false, 'www.euridile.com');
$this->referer=$this->url;
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
//echo date('Y/m/d - H:i:s') ." - Apr<70>s authentification = $this->url (Code retour = $this->codeRetour)<br/>".EOL;
$fp=fopen('./euridile_connexion3.log', 'w');
fwrite($fp,print_r($page,true));
fclose($fp);
if(preg_match('/\/'.$this->weur.'\/iden_evaluation_type_(.*)/i', $this->body, $matches))
{ $tabTmp=explode('"', $matches[0]);
$this->url=$this->urlRacine.$tabTmp[0];
debugLog('D',"Page de recherche recherche trouv<75>e = $this->url>",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
} else debugLog('E',"Erreur de communication - Recherche introuvable !",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
$this->curPage='recherche';
} //else echo date('Y/m/d - H:i:s') ." - Deja connecte !<br/>".EOL;
return true;
}
private function partIdentite() {
if ($this->curPage<>'vitrine')
$this->partVitrine();
$iDb=new WDB('jo');
$ret=$iDb->select( 'rncs_entrep',
'siren, rcs, nom, adresse1, adresse2, adresse3, cp, ville, naiss_date, naiss_lieu, sexe, enseigne, sigle, '.
'fj_lib, naf_code, naf_lib, date_crea, date_imma, greffe, num_gestion, capital_mnt, capital_dev, nationalite, '.
'nb_etab, indRadiation, date_radiation, indProcol, dateUpdate, procedures, dirigeants, etablissements',
"siren=$this->siren ORDER BY dateUpdate DESC LIMIT 0,1", false, MYSQL_ASSOC);
if (count($ret)) {
/** On v<EFBFBD>rifie qu'aucune annonce n'a <EFBFBD>t<EFBFBD> publi<EFBFBD> depuis au bodacc
**/
$tabRet=$ret[0];
$ret=$iDb->select( 'bodacc_detail', 'count(*)',
"siren=$this->siren AND Bodacc_Date_Parution>='".$tabRet['dateUpdate']."'");
if ($ret[0][0]==0) {
$tabRet['procedures']=unserialize($tabRet['procedures']);
$tabRet['dirigeants']=unserialize($tabRet['dirigeants']);
$tabRet['etablissements']=unserialize($tabRet['etablissements']);
return $tabRet;
}
}
$url=$this->urlRacine.'/'.$this->weur.'/paie_abonnes_livraison_directe_informations.ow?flag_type_acces_direct_infos=FIC&WRNCSRV2='.$this->wrncsrv2;
$page=getUrl($url, '', '', $this->referer, false, 'www.euridile.com');
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
//echo date('Y/m/d - H:i:s') ." - Fiche d'identit<69> = $url (Code retour = $this->codeRetour)<br/>".EOL;
//$this->curPage='vitrine';
$tabRet=array();
/**@todo Traiter le cas donn<EFBFBD>es provisoires :
<TR><TD bgcolor='#fff0d0'><FONT COLOR=#100070 FACE=ARIAL SIZE=2><B><!-- Donn<6E>es provisoires --> En cours d'immatriculation, donn<6E>es provisoires</B></FONT></TD></TR><TR><TD bgcolor=#fff0d0><FONT COLOR=#100070 FACE=ARIAL SIZE=2>Nombre d'<27>tablissements : <FONT COLOR=#100070 FACE=ARIAL SIZE=2><B></B></TD></TR>
</TABLE>
*/
// Identit<69>
$tabRet['siren']=$this->siren;
$tabRet['codeRetour']=$this->codeRetour;
$tabRet['rcs']=@getTextInHtml($this->body, 'FACE="ARIAL,HELVETICA" SIZE=2>RCS : ', '<b>','</b>');
$strTmp=@getTextInHtml($this->body, 'FACE="ARIAL,HELVETICA" SIZE=2>RCS : <b>', 'FACE="ARIAL,HELVETICA" SIZE=2><b>', '<img src=\'images/rouge.gif\'');
$tabTmp=explode('</TD>', $strTmp);
$tabRet['nom']=strip_tags($tabTmp[0]);
// ... adresse
for ($i=1; $i<5; $i++) {
if (strpos($tabTmp[$i], 'Nom commercial - Enseigne :')===false &&
strpos($tabTmp[$i], 'Sigle :')===false ) {
$ligne=trim(strip_tags($tabTmp[$i]));
if (preg_match("/^([0-9]{5,5})([\D]*)/i", $ligne, $matches)) {
$tabRet['cp']=trim($matches[1]);
$tabRet['ville']=trim($matches[2]);
break;
} else $tabRet['adresse'.$i]=$ligne;
}
}
$pp_nais=trim(strip_tags(@getTextInHtml($this->body, 'FACE=\'ARIAL,HELVETICA\' SIZE=2>Date et lieu de naissance :', '<B>','</B>')));
$tabTmp=explode(' <20> ', $pp_nais);
$tabRet['naiss_date']=trim(str_replace('N<>(e) le ', '', strip_tags($tabTmp[0])));
$tabRet['naiss_lieu']=trim(strip_tags($tabTmp[1]));
$tabRet['sexe']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=\'ARIAL,HELVETICA\' SIZE=2>Sexe :', '<B>','</B>')));
$tabRet['enseigne']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Nom commercial - Enseigne :', '<B>','</B>')));
$tabRet['sigle']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Sigle :', '<B>','</B>')));
$tabRet['fj_lib']=@getTextInHtml($this->body, 'FACE=\'ARIAL,HELVETICA\' SIZE=2>Forme juridique :', '<B>','</B>');
$strTmp=@getTextInHtml($this->body, 'FACE=\'ARIAL,HELVETICA\' SIZE=2>Activit&eacute; :', '<B>','</B>');
$tabTmp=explode(' - ', $strTmp);
$tabRet['naf_code']=$tabTmp[0];
$tabRet['naf_lib']=$tabTmp[1];
$tabRet['date_crea']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Date de cr&eacute;ation :', '<B>','</B>')));
$tabRet['date_imma']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Date d\'immatriculation :', '<B>','</B>')));
$tabRet['greffe']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Greffe :', '<B>','</B>')));
$tabRet['num_gestion']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>N<>de gestion :', '<B>','</B>')));
$strTmp=@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Capital :', '<B>','</B>');
if (preg_match('/([0-9\.,\s]*)([\D]*)/i', $strTmp, $matches)) {
$tabRet['capital_mnt']=trim(str_replace(' ','',str_replace(',','.',$matches[1])));
$tabRet['capital_dev']=$matches[2];
}
else {
$tabRet['capital_mnt']=0;
$tabRet['capital_dev']='';
}
$tabRet['nationalite']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Nationalit&eacute; :', '<B>','</B>')));
$tabRet['nb_etab']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Nombre d\'<27>tablissements :', '<B>','</B>')));
if (strpos($this->body,'FACE=ARIAL SIZE=2><B>Radiation</B>')>0) {
$tabRet['indRadiation']=true;
$tabRet['date_radiation']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Entreprise radi<64>e le :', '<B>','</B>')));
} else
$tabRet['indRadiation']=false;
// Proc<6F>dures collectives
if (strpos($this->body,'FACE=ARIAL SIZE=2><B>Les proc<6F>dures collectives</B>')>0) {
$tabRet['indProcol']=true;
$strTmp=@getTextInHtml($this->body, '<B>Les proc<6F>dures collectives</B></FONT>', "<img src='./images/rouge.gif' width=4 height=4 border='0'>",
'</TABLE>');
$tabTmp=explode("<img src='./images/rouge.gif' width=4 height=4 border='0'>", $strTmp);
foreach ($tabTmp as $nproc=>$proc) {
$tabTmp2=explode('</TD></TR>', $proc);
$tabTmp3=explode(' du ', $tabTmp2[0]);
$tabTmp2=explode('<TD WIDTH=99% ALIGN=LEFT BGCOLOR=#fff0d0 colspan=2><FONT COLOR=#100070 FACE=ARIAL SIZE=2>', $proc);
$tabInter=array();
for($nInter=1; isset($tabTmp2[$nInter]); $nInter++) {
$tabTmp4=explode('</TD></TR>', $tabTmp2[$nInter]);
$tabInter[]=array( 'type'=>trim(strip_tags($tabTmp4[0])),
'nom'=>trim(str_replace('&#160;','',strip_tags($tabTmp4[1]))),
'adresse'=>trim(str_replace('&#160;','',strip_tags($tabTmp4[2]))),
'cpVille'=>trim(str_replace('&#160;','',strip_tags($tabTmp4[3]))));
}
$tabRet['procedures'][$nproc]=array('type'=>trim(strip_tags($tabTmp3[0])),
'date'=>trim(strip_tags($tabTmp3[1])),
'intervenant'=>$tabInter);
}
}
else $tabRet['indProcol']=false;
// Dirigeants
$strTmp=@getTextInHtml($this->body, '<B>Les dirigeants</B></FONT>', "<img src='./images/rouge.gif' width=4 height=4 border='0'>",'</TABLE>');
$tabTmp=explode("<img src='./images/rouge.gif' width=4 height=4 border='0'>", $strTmp);
foreach ($tabTmp as $ndir=>$dir) {
$tabTmp2=explode('</TD>', $dir);
$tabTmp3=explode('</B>&#160;', $tabTmp2[1]);
$nom=trim(strip_tags($tabTmp3[0]));
$prenom=trim(strip_tags($tabTmp3[1]));
$naiss=trim(strip_tags($tabTmp2[3]));
if (strpos($naiss, 'N<>(e) le')===false) {
$fonction=$naiss;
} else {
$tabTmp3=explode(' <20> ', $naiss);
$naiss_date=trim(str_replace('N<>(e) le ', '', strip_tags($tabTmp3[0])));
$naiss=trim(strip_tags($tabTmp3[1]));
$tabTmp3=explode('(', $naiss);
$naiss_ville=trim(strip_tags($tabTmp3[0]));
$naiss_depPays=trim(str_replace(')','', strip_tags($tabTmp3[1])));
$fonction=trim(strip_tags($tabTmp2[5]));
}
$tabTmp=explode('&#160;n<>e&#160;', $prenom);
$prenom=$tabTmp[0];
$naiss_nom=$tabTmp[1];
$tabRet['dirigeants'][$ndir]=array( 'nom'=>$nom,
'prenom'=>$prenom,
'naiss_nom'=>$naiss_nom,
'naiss_date'=>$naiss_date,
'naiss_ville'=>$naiss_ville,
'naiss_depPays'=>$naiss_depPays,
'fonction'=>$fonction);
}
// Dirigeants - Administrateurs
$strTmp=trim(@getTextInHtml($this->body, '<B>Les administrateurs</B></FONT>', "<img src='./images/rouge.gif' width=4 height=4 border='0'>",'</TABLE>'));
if ($strTmp<>'') {
$tabTmp=explode("<img src='./images/rouge.gif' width=4 height=4 border='0'>", $strTmp);
foreach ($tabTmp as $nadm=>$dir) {
$tabTmp2=explode('</TD>', $dir);
$tabTmp3=explode('</B>&#160;', $tabTmp2[1]);
$nom=trim(strip_tags($tabTmp3[0]));
$prenom=trim(strip_tags($tabTmp3[1]));
$naiss=trim(strip_tags($tabTmp2[3]));
if (strpos($naiss, 'N<>(e) le')===false) {
$naiss_date=$naiss_ville=$naiss_depPays='';
$fonction=$naiss;
} else {
$tabTmp3=explode(' <20> ', $naiss);
$naiss_date=trim(str_replace('N<>(e) le ', '', strip_tags($tabTmp3[0])));
$naiss=trim(strip_tags($tabTmp3[1]));
$tabTmp3=explode('(', $naiss);
$naiss_ville=trim(strip_tags($tabTmp3[0]));
$naiss_depPays=trim(str_replace(')','', strip_tags($tabTmp3[1])));
$fonction=trim(strip_tags($tabTmp2[5]));
}
$tabTmp=explode('&#160;n<>e&#160;', $prenom);
$prenom=$tabTmp[0];
$naiss_nom=$tabTmp[1];
$tabRet['dirigeants'][$nadm+$ndir+1]=array( 'nom'=>$nom,
'prenom'=>$prenom,
'naiss_nom'=>$naiss_nom,
'naiss_date'=>$naiss_date,
'naiss_ville'=>$naiss_ville,
'naiss_depPays'=>$naiss_depPays,
'fonction'=>$fonction);
}
}
// Etablissements
$strTmp=@getTextInHtml($this->body, '<B>Les <20>tablissements</B></FONT>', "<img src='./images/rouge.gif' width=4 height=4 border='0'>",'</TABLE>');
$tabTmp=explode("<img src='./images/rouge.gif' width=4 height=4 border='0'>", $strTmp);
foreach ($tabTmp as $netab=>$dir) {
$cp=$ville=$ensEtab=''; $j=0;
$tabTmp2=explode('</TD>', $dir);
for($i=1; $i<=9; $i=$i+2) {
$next=$i+2;
$strTmp=trim(strip_tags($tabTmp2[$i]));
if (preg_match("/^([0-9]{5,5})([\D]*)/i", $strTmp, $matches)) {
$adresse[$j]='';
$cp=trim($matches[1]);
$ville=trim($matches[2]);
break;
} else
$adresse[$j]=$strTmp;
$j++;
}
/** Gestion des cas o<> la 1<>re ligne d'adresse contient l'enseigne de l'<27>tablissement */
if (strtoupper($adresse[0])==strtoupper($tabRet['enseigne'])) {
$ensEtab=$adresse[0];
array_shift($adresse);
}
$strTmp=trim(strip_tags($tabTmp2[$next]));
$tabTmp3=explode(' - ', $strTmp);
$tabRet['etablissements'][$netab]=array( 'enseigne'=>$ensEtab,
'adresse1'=>$adresse[0],
'adresse2'=>$adresse[1],
'adresse3'=>$adresse[2],
'cp'=>$cp,
'ville'=>$ville,
'naf_code'=>$tabTmp3[0],
'naf_lib'=>$tabTmp3[1]);
}
$fp=fopen('./euridile_identite.log', 'w');
fwrite($fp,print_r($page,true));
fclose($fp);
$tabInsert=$tabRet;
$tabInsert['procedures']=serialize($tabRet['procedures']);
$tabInsert['dirigeants']=serialize($tabRet['dirigeants']);
$tabInsert['etablissements']=serialize($tabRet['etablissements']);
$iDb->insert( 'rncs_entrep', $tabInsert);
return $tabRet;
}
private function partSaveSession() {
$fp=fopen('/tmp/php_rncs_session.id', 'w');
fwrite($fp,$this->wrncsrv2.'^'.$this->timeOut.'^'.$this->curPage.'^'.$this->siren.'^'.$this->url.'^'.$this->referer);
fclose($fp);
}
private function partGetSession() {
$strTmp=@file_get_contents('/tmp/php_rncs_session.id');
if ($strTmp) {
$tabTmp=explode('^', $strTmp);
$this->wrncsrv2=$tabTmp[0];
$this->timeOut=$tabTmp[1];
$this->curPage=$tabTmp[2];
$this->siren=$tabTmp[3];
$this->url=$tabTmp[4];
$this->referer=$tabTmp[5];
} else $this->timeOut=0;
}
private function logEuridileError($message) {
$fp=fopen('./euridile_error.log', 'w');
fwrite($fp,date('Y/m/d H:i:s')." - Erreur : $message (".$this->wrncsrv2.'^'.$this->timeOut.'^'.$this->curPage.'^'.$this->siren.'^'.$this->url.'^'.$this->referer.')'.EOL);
fwrite($fp,$this->body.EOL.'-------------------------------------------------------------------------------------'.EOL);
fclose($fp);
}
}
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,351 +0,0 @@
<?php
class MLiens2
{
/**
* Company Reference id
* @var int
*/
protected $idRef = null;
/**
* Company SIREN
* @var string
*/
protected $siren = null;
/**
* @var Zend_Db_Adapter_Abstract
*/
protected $db;
/**
* Array to list id find during list of childrens
* @var array
*/
protected $findId = array();
protected $_schema = 'jo';
/**
*
* @param string $id
* @param string $type ref|siren
* @throws SoapFault
*/
public function __construct($id, $type = 'ref')
{
//Get defaut database adapter
$this->db = Zend_Db_Table_Abstract::getDefaultAdapter();
//Get Id
if ( $type == 'siren' ) {
$this->siren = $id;
$refM = new Application_Model_JoLiensRef();
$sql = $refM->select()->where('siren=?', $id);
$result = $refM->fetchRow($sql);
if ( $result !== null ) {
$this->idRef = $result->id;
}
} else {
$this->idRef = $id;
}
}
/**
* Retourne les actionnaires
* @param int $id
* @param boolean $actif
* @return array Tableau d'actionnaires
*/
public function getActionnaires($id = null, $actif = null)
{
if ( null === $id ) {
$id = $this->idRef;
}
$liens = array();
if ( null === $id ) {
return $liens;
}
try {
$sql = $this->db->select()
->from(array('l'=>$this->_schema.'.liens2'),
array('id', 'idAct', 'PDetention', 'Pvote', 'MajMin', 'idPar',
'dateEffetLien', 'dateInsert', 'dateUpdate'))
->where('idPar=?', $id)
->join(array('r'=>$this->_schema.'.liensRef'), 'l.idAct=r.id',
array('LPAD(siren, 9, 000000000) AS siren','PpPm', 'RS', 'civilite', 'nom', 'prenom', 'nom_usage',
'naissance_date', 'naissance_dept_pays', 'naissance_lieu', 'nat',
'adresse_num', 'adresse_btq', 'adresse_codvoie', 'adresse_libvoie',
'adresse_comp', 'adresse_cp', 'adresse_ville', 'adresse_pays',
'idLoc1Type', 'idLoc1Num', 'idLoc2Type', 'idLoc2Num', 'idLoc3Type', 'idLoc3Num',
))
->order('PDetention DESC');
//Actif / Inactif
if ( null !== $actif ) {
if ( false === $actif ) {
$sql->where('l.actif=?',0);
} else {
$sql->where('l.actif=?',1);
}
}
$liens = $this->db->fetchAll($sql, null, Zend_Db::FETCH_OBJ);
} catch (Zend_Db_Exception $e) {
throw new Exception(__METHOD__ . ': ' . $e->getMessage());
}
return $liens;
}
/**
* Retourne les participations
* @param int $id
* @param boolean $actif
* @return array Tableau des participations
*/
public function getParticipations($id = null, $actif = null)
{
if ( null === $id ) {
$id = $this->idRef;
}
if ( false === $actif ) {
$actif = 0;
} else {
$actif = 1;
}
$liens = array();
if ( null === $id ) {
return $liens;
}
try {
$sql = $this->db->select()
->from(array('l'=>$this->_schema.'.liens2'),
array('id', 'idAct', 'PDetention', 'Pvote', 'MajMin', 'idPar',
'dateEffetLien', 'dateInsert', 'dateUpdate'))
->where('idAct=?', $id)
->join(array('r'=>$this->_schema.'.liensRef'), 'l.idPar=r.id',
array('LPAD(siren, 9, 000000000) AS siren','PpPm', 'RS', 'civilite', 'nom', 'prenom', 'nom_usage',
'naissance_date', 'naissance_dept_pays', 'naissance_lieu', 'nat',
'adresse_num', 'adresse_btq', 'adresse_codvoie', 'adresse_libvoie',
'adresse_comp', 'adresse_cp', 'adresse_ville', 'adresse_pays',
'idLoc1Type', 'idLoc1Num', 'idLoc2Type', 'idLoc2Num', 'idLoc3Type', 'idLoc3Num',
))
->order('PDetention DESC');
//Actif / Inactif
if ( null !== $actif ) {
if ( false === $actif ) {
$sql->where('l.actif=?',0);
} else {
$sql->where('l.actif=?',1);
}
}
$liens = $this->db->fetchAll($sql, null, Zend_Db::FETCH_OBJ);
} catch (Zend_Db_Exception $e) {
throw new Exception(__METHOD__ . ': ' . $e->getMessage());
}
return $liens;
}
/**
* Fonctions de direction
* @param boolean $actif
* @return Zend_Db_Table_Rowset_Abstract
*/
public function getDirections($actif = null)
{
if ( null === $this->siren ) {
$refM = new Application_Model_JoLiensRef();
$rows = $refM->find($this->idRef);
$siren = str_pad($rows->current()->siren, 9, '0', STR_PAD_LEFT);
} else {
$siren = $this->siren;
}
$result = array();
if ( null !== $siren && intval($siren) != 0 )
{
try {
$directionsM = new Application_Model_JoRncsDirigeants();
$sql = $directionsM->select()->from($directionsM, array(
'siren','raisonSociale', 'dirSiren', 'dirRS', 'civilite', 'nom',
'prenom', 'naissance_date', 'naissance_lieu', 'fonction_code', 'fonction_lib'
))->where("typeDir IN ('PM', 'PP')")->where('dirSiren=?', $siren);
//Actif / Inactif
if ( null !== $actif ) {
if ( false === $actif ) {
$sql->where('actif=?',0);
} else {
$sql->where('actif=?',1);
}
}
$sql->order('fonction_code DESC');
$sql->order('raisonSociale ASC');
$result = $directionsM->fetchAll($sql);
} catch (Zend_Db_Exception $e) {
throw new Exception(__METHOD__ . ': ' . $e->getMessage());
}
}
return $result;
}
/**
* Retourne la maison mère
* @param int $id
* @return int
*/
public function getHead($id = null)
{
if ( null === $id ) {
$id = $this->idRef;
}
//Add ID to the list of known
$this->findId[] = $id;
//Through the list
$liens = $this->getActionnaires($id, true);
//Find the following up entity
if ( count($liens)>0 ) {
foreach ( $liens as $item ) {
//Don't through again and again
if ( in_array($item->idAct, $this->findId) ) {
return $item->idAct;
}
//Same id
elseif ( $item->idAct == $id ) {
return $id;
}
//PDetention>50
elseif ( $item->PDetention > 50 && $item->idAct > 1000 ) {
return $this->getHead($item->idAct);
}
//MajMin=+
elseif ( $item->MajMin == '+' && $item->idAct > 1000 ) {
return $this->getHead($item->idAct);
}
//--
elseif ( $item->idAct > 1000 ) {
return $this->getHead($item->idAct);
}
}
}
return $id;
}
/**
* Retourne les éléments identitaire présent dans lienRef
* @param string $id
* @return Zend_Db_Table_Rowset_Abstract
*/
public function getIdentity($id = null)
{
if ( null === $id ) {
$id = $this->idRef;
}
$refM = new Application_Model_JoLiensRef();
$row = $refM->find($id);
if (null !== row) {
return $row->current();
}
}
/**
* Retourne l'arborescence pour les groupes
* @param int $pctMin
* @param int $nbNiveaux
* @return array
*/
public function getTree( $pctMin=33, $nbNiveaux=10 )
{
//Récupération de la maison mère
$id = $this->getHead();
//Informations de la maison mère
$identity = $this->getIdentity($id);
$this->findId = array();
$this->findId[] = $identity->id;
$nom = $identity->RS;
if ( $identity->nom != '') {
$nom = $identity->civilite.' '.$identity->nom.' '.$identity->prenom;
}
//Retour
$tabRet = array (
'id' => $identity->id,
'name' => $nom,
'siren' => str_pad($identity->siren, 9, '0', STR_PAD_LEFT),
'pmin' => $item->PDetention,
'pays' => $identity->adresse_pays,
'children' => $this->getTreeRecursive($identity->id, $pctMin, 1, $nbNiveaux),
);
return $tabRet;
}
/**
* Retourne un sous élement de l'arborescence pour les groupes
* @param int $id
* @param int $pctMin
* @param int $niveau
* @param int $nbNiveaux
* @return array
*/
public function getTreeRecursive( $id, $pctMin=33, $niveau=0, $nbNiveaux=10 )
{
if ( $niveau > $nbNiveaux ) return array();
$niveau++;
$tabRet = array();
$participations = $this->getParticipations($id, true);
if ( count($participations)>0 ) {
foreach ( $participations as $item ) {
if ( $item->PDetention > $pctMin ) {
$identity = $this->getIdentity($item->idPar);
$nom = $identity->RS;
if ( $identity->nom != '') {
$nom = $identity->civilite.' '.$identity->nom.' '.$identity->prenom;
}
$data = array (
'id' => $identity->id,
'name' => $nom,
'siren' => str_pad($identity->siren, 9, '0', STR_PAD_LEFT),
'pmin' => $item->PDetention,
'pays' => $identity->adresse_pays,
'children' => array(),
);
//Pour éviter d'avoir des boucles infinis
if ( !in_array($identity->id, $this->findId) ){
$this->findId[] = $identity->id;
$data['children'] = $this->getTreeRecursive($identity->id, $pctMin, $niveau, $nbNiveaux);
}
$tabRet[] = $data;
}
}
}
return $tabRet;
}
}

View File

@ -1,473 +0,0 @@
<?
class MLiens {
public $siren=0;
private $tabChars=array('é'=>'é', 'ç'=>'ç','è'=>'è','à '=>'à');
private static $tabFct=array( 'ADM'=>'Administrateur',
'ASS'=>'Associé',
'COG'=>'Co-gérant',
'CON'=>'Contrôleur de gestion',
'DID'=>'Directeur Général Délégué',
'DIR'=>'Directeur',
'GER'=>'Gérant',
'PCS'=>'Président du Conseil de Surveillance',
'PDG'=>'Président Directeur Général',
'PP'=>'Personne Physique',
'PRD'=>'Président du directoire',
'PRE'=>'Président du Conseil d\'Administration',
'VIC'=>'Vice président du CA ou Surv.',
);
public function __construct($siren) {
$this->siren=$siren;
}
/** Retourne les actionnaires du siren
** @param int Siren de l'entreprise
** @return array Tableau d'actionnaires
**/
public function getActionnaires($siren=false, $actifsUniquement=true) {
if (!$siren) $siren=$this->siren;
$iDb=new WDB();
$tab=$iDb->select('liens', 'Siren1, ActionPart, Pmin, Pmax, MajMin, PpPm, Siren2, RaisonSociale, Pays, actif, source', "Siren1='$siren' AND ActionPart=1 ORDER BY source DESC, actif DESC, Pmin DESC", true, MYSQL_ASSOC);
//$tabActiDB=mysql_select('dbo_liens_fi', 'SirenEntite, NomAdresse, PourcentageDetenu, Ville, Lien, MAJLien, MAJImport', "Siren='$siren' AND CodeLien='AC' ORDER BY PourcentageDetenu DESC");
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug $siren ($actifsUniquement)", print_r($tab,true)) ;
$sourcePre=false;
$tabRet=array();
foreach ($tab as $i=>$lien) {
if ($lien['source']>=1700 && $lien['source']<=1720) $source=1700;
else $source=$lien['source'];
if ($i>0 && $sourcePre<>$source) break;
/*if ($actifsUniquement && $lien['actif']==0) continue;
else
$tabRet[]=array('Pmin' => number_format($lien['Pmin']*1,2,',',''),
'MajMin' => $lien['MajMin'],
'RaisonSociale' => strtr($lien['RaisonSociale'],$this->tabChars),
'Pays' => $lien['libPays'],
'Siren' => $lien['Siren2'],
'Actif' => $lien['actif']);*/
if ($actifsUniquement && $lien['actif']==0) continue;
else {
$codPays=strtoupper($lien['Pays']);
$libPays='';
if ($codPays<>'' && $codPays<>'FRA') {
$tmp=$iDb->select('tabPays', 'libPays', "codPays3='$codPays'", true, MYSQL_ASSOC);
$libPays=$tmp[0]['libPays'];
}
if ($lien['MajMin']=='F') $majMin='A';
else $majMin=$lien['MajMin'];
$tabRet[]=array( 'Pmin' => number_format($lien['Pmin']*1,2,',',''),
'MajMin' => $majMin,
'RaisonSociale' => strtr($lien['RaisonSociale'],$this->tabChars),
'Pays' => $libPays,
'Siren' => $lien['Siren2'],
'Actif' => $lien['actif']);
}
$sourcePre=$source;
}
if (count($tabRet)==0) {
$iInsee=new MInsee();
$tabTmp=$iInsee->getIdentiteLight($siren);
switch ($tabTmp['FJ']*1) {
case 7111:
case 7113:
case 7120:
case 7150:
case 7160:
case 7171:
case 7172:
case 7179:
case 7190:
case 7229:
case 7331:
case 7349:
case 7351:
case 7352:
case 7364:
case 7365:
case 7366:
case 7371:
case 7372:
case 7373:
case 7379:
case 7381:
case 7382:
case 7383:
case 7384:
case 7385:
case 7389:
case 7410:
case 7430:
case 7450:
case 7490:
$tabRet[]=array('Pmin' => 0,
'MajMin' => '+',
'RaisonSociale' => 'ETAT FRANCAIS',
'Pays' => '',
'Siren' => 0,
'Actif' => 1);
break;
case 7210: // Communes
// Siren Commune du Lamentin : 219 722 139
// ~~~ ~~~~
$dept=substr($siren,2,2);
$comm=substr($siren,5,3);
$codeInsee=$dept.$comm;
if ($dept<>'20') // Corse
$strCodeInsee="codeInsee='$codeInsee'";
else
$strCodeInsee="codeInsee IN ('2A$comm','2B$comm','20$comm') ";
$tmp=$iDb->select('insee.insee_tabVillesEpci', 'typEPCI, codEPCI, libEPCI, libCommune', $strCodeInsee, true, MYSQL_ASSOC);
$tabCC=$tmp[0];
switch($tabCC['typEPCI']) {
case 'CA': $typeCC="Communauté d'agglomérations"; break; // CJ=7348
case 'CC': $typeCC="Communauté de communes"; break; // CJ=7346
case 'CU': $typeCC="Communauté urbaine"; break; // CJ=73
case 'SAN': $typeCC="Syndicat d'agglomérations nouvelles"; break; // CJ=73
default: $typeCC='';
}
$tabRet[]=array('Pmin' => 0,
'MajMin' => '+',
'RaisonSociale' => strtoupper($typeCC.' '.preg_replace('/^(CA|CC|CU|SAN) /Uis', '',$tabCC['libEPCI'])),
'Pays' => '',
'Siren' => $tabCC['codEPCI'],
'Actif' => 1);
break;
}
}
if (count($tabRet)==0) {
$iInsee=new MInsee();
$tabTmp=$iInsee->getIdentiteLight($siren);
$fj=$tabTmp['FJ']*1;
if ($fj==5498) $strFonctions=",'Gérant'";
else $strFonctions='';
$adresse=end(explode(' ', $tabTmp['AdresseVoie']));
$codePostal=$tabTmp['CP'];
$tab=$iDb->select('rncs_dirigeants', 'typeDir, raisonSociale, dirSiren, dirRS, civilite, nom, prenom, actif, naissance_nom, naissance_date, naissance_lieu, nat, adresse, fonction_code, fonction_lib, source, cinf',
"siren='$siren' AND fonction_lib IN ('Associé-gérant' $strFonctions)", true, MYSQL_ASSOC);
$majMin='+';
if (count($tab)>1) $majMin='-';
foreach ($tab as $i=>$lien) {
if ($actifsUniquement && $lien['actif']==0) continue;
else {
$ville=$siege=$actif='';
$deb=$siren2=0;
$nbRep=$maxRep=200;
$pertinence=$avecSiren=true;
$etabs=$iInsee->rechercheEtab($lien['nom'].' '.$lien['prenom'], $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren);
$tabSiren=array();
foreach ($etabs['reponses'] as $etab) {
$tabTmp=preg_split('/( +|\/|\*)/', $etab['Nom']);
$rsEtab=$tabTmp[0];
$tabTmp=preg_split('/( +|\/|\*)/', $lien['nom']);
$rsLien=$tabTmp[0];
if ($etab['FJ']==1800 && $rsEtab==$rsLien)
$tabSiren[]=$etab['Siren'];
}
/*
'Nom'=>prepareString(strtr($etab['Nom'],'/*',' ')),
'Nom2'=>prepareString($etab['Nom2']),
'Sigle'=>prepareString($etab['Sigle']),
'Enseigne'=>prepareString($etab['Enseigne']),
'Adresse'=>prepareString($etab['Adresse']),
'CP'=>$etab['CP'],
'Ville'=>prepareString($etab['Ville']),
'Tel'=>$etab['Tel'],
'Fax'=>$etab['Fax'],
'Nic'=>$etab['Nic'],
'Actif'=>$etab['Actif'],
'NafEtab'=>$etab['NafEtab'], // Etablissement
'NafEtabLib'=>prepareString($etab['NafEtabLib']),
'NafEnt'=>$etab['NafEnt'], // Entreprise
'NafEntLib'=>prepareString($etab['NafEntLib']),*/
$tabSiren2=array_unique($tabSiren);
if (count($tabSiren2==1)) $siren2=end($tabSiren2);
else $siren2=$lien['dirSiren'];
if ($lien['civilite']=='MME') $genre='Madame';
elseif ($lien['civilite']=='M') $genre='Monsieur';
else $genre='';
$tabRet[]=array( 'Pmin' => 0,
'MajMin' => $majMin,
'RaisonSociale' => trim(preg_replace('/ +/', ' ', $lien['dirRS'].' '.$genre.' '.$lien['nom'].' '.$lien['prenom'])),
'Pays' => '',
'Siren' => $siren2,
'Actif' => $lien['actif']);
if ($siren2*1>0) {
/** Insertion du lien en base **/
$nom=$pays=$dateMAJ='';
$ppPm='P';
$pct=0;
$entrep2=$iInsee->getIdentiteLight($siren);
$nom2=$entrep2['Nom'];
$pays2='FRA';
if (substr($entrep2['FJ'],0,1)*1<>1) $ppPm='M';
$entrep=$iInsee->getIdentiteLight($siren2);
$nom=strtr($entrep['Nom'],'/*',' ');
$pays='FRA';
$tabUpdate=array( 'Pmin'=> $pct,
'Pmax'=> $pct,
'MajMin'=> $majMin,
'PpPm'=> $ppPm,
'dateLien'=> $dateMAJ,
);
/* Insertion de l'actionnaire */
$tabInsert1=array_merge($tabUpdate, array( 'ActionPart'=>1),
array( 'Siren1'=> $siren,
'Siren2'=> $siren2,
'RaisonSociale'=> $nom,
'Pays'=> $pays,
'actif'=> 1,
'source'=> 1600,
'dateInsert'=> date('YmdHis')));
$res=$iDb->select('liens', 'count(*)', "Siren1=$siren AND (Siren2=$siren2 OR (RaisonSociale='".addslashes($nom)."' AND Pays='$pays'))");
if ($res[0][0]>0) {
if (!$iDb->update('liens', array_merge($tabUpdate,array('ActionPart'=>1)), "siren=$siren AND (Siren2=$siren2 OR (RaisonSociale='".addslashes($nom)."' AND Pays='$pays'))", true))
$errMaj=1016166;
} else {
if (!$iDb->insert('liens', $tabInsert1, true))
$errMaj=1016167;
}
/* Insertion de la participation pour l'actionnaire précédent */
$tabInsert2=array_merge($tabUpdate, array( 'ActionPart'=>2),
array( 'Siren1'=> $siren2,
'Siren2'=> $siren,
'RaisonSociale'=> $nom2,
'Pays'=> $pays2,
'actif'=> 1,
'source'=> 1600,
'dateInsert'=> date('YmdHis')));
$res=$iDb->select('liens', 'count(*)', "Siren1=$siren2 AND (Siren2=$siren OR (RaisonSociale='$nom2' AND Pays='$pays2'))");
if ($res[0][0]>0) {
if (!$iDb->update('liens', array_merge($tabUpdate,array('ActionPart'=>2)), "siren=$siren2 AND (Siren2=$siren OR (RaisonSociale='".addslashes($nom2)."' AND Pays='$pays2'))", true))
$errMaj=1016168;
} else {
if (!$iDb->insert('liens', $tabInsert2, true))
$errMaj=1016169;
}
/** Insertion du dirigeant pour l'actionnaire en base **/
$dirs=$iDb->select('rncs_dirigeants','siren', "siren=$siren2", true, MYSQL_ASSOC);
if (count($dirs)==0) {
$iDb->insert('rncs_dirigeants', array( 'siren' => $siren2,
'raisonSociale' => $nom,
'civilite' => $lien['civilite'],
'typeDir' => $lien['typeDir'],
'dirRS' => $siren2,
'nom' => $lien['nom'],
'prenom' => $lien['prenom'],
'naissance_nom' => $lien['naissance_nom'],
'naissance_date'=> $lien['naissance_date'],
'naissance_lieu'=> $lien['naissance_lieu'],
'nat' => $lien['nat'],
'fonction_code' => 0,
'fonction_lib' => 'Personne Physique',
'actif' => 1,
'dateInsert' => date('YmdHis'),
'source' => 'lag', // Lien Associé Gérant
'cinf' => $lien['cinf'],
), true);
}
}
}
}
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug Fin $siren ($actifsUniquement)", print_r($tabRet,true)) ;
return $tabRet;
}
/** Retourne les participations du siren
** @param int Siren de l'entreprise
** @return array Tableau de participations
**/
public function getParticipations($siren=false, $actifsUniquement=true) {
if (!$siren) $siren=$this->siren;
$iDb=new WDB();
$tab=$iDb->select('liens LEFT JOIN tabPays ON codPays3=Pays', 'Siren1, ActionPart, Pmin, Pmax, MajMin, PpPm, Siren2, RaisonSociale, Pays, libPays, actif, source', "Siren1='$siren' AND ActionPart=2 ORDER BY source DESC, actif DESC, Pmin DESC", true, MYSQL_ASSOC); // OR Siren2='$siren
// $tabPartDB=mysql_select('dbo_liens_fi', 'SirenEntite, NomAdresse, PourcentageDetenu, Ville, Lien, MAJLien, MAJImport', "Siren='$siren' AND CodeLien='PA' ORDER BY PourcentageDetenu DESC");
$tabRet=array();
$sourcePre=false;
foreach ($tab as $i=>$lien) {
if ($lien['source']>=500 && $lien['source']<=520) $source=500;
else $source=$lien['source'];
if ($i>0 && $sourcePre<>$source) break;
if ($actifsUniquement && $lien['actif']==0) continue;
else
$tabRet[]=array('Pmin' => number_format($lien['Pmin']*1,2,',',''),
'MajMin' => $lien['MajMin'],
'RaisonSociale' => strtr($lien['RaisonSociale'],$this->tabChars),
'Pays' => $lien['libPays'],
'Siren' => $lien['Siren2'],
'Actif' => $lien['actif']);
$sourcePre=$source;
}
if (count($tabRet)==0) {
$iInsee=new MInsee();
$tabTmp=$iInsee->getIdentiteLight($siren);
switch ($tabTmp['FJ']*1) {
case 7346: // Communaute de communes
case 7348: // Communaute d'agglomeration
//case 'CC': $typeCC="Communauté de communes"; break; // CJ=73
//case 'CU': $typeCC="Communauté urbaine"; break; // CJ=73
//case 'SAN': $typeCC="Syndicat d'agglomérations nouvelles"; break; // CJ=73
$tmp=$iDb->select('insee.insee_tabVillesEpci', 'typEPCI, libEPCI, codeInsee, libCommune', "codEPCI='$siren'", true, MYSQL_ASSOC);
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug Fin $siren ($actifsUniquement)", print_r($tmp, true)) ;
foreach ($tmp as $tabCom) {
$dept=substr($tabCom['codeInsee'],0,2);
if ($dept=='2A' || $dept=='2B' || $dept=='20')
$dept='200';
elseif ($dept*1>95)
$dept=substr($tabCom['codeInsee'],0,3);
else
$dept=$dept.'0';
$comm=substr($tabCom['codeInsee'],2,3);
for ($iSir=0; $iSir<10; $iSir++) {
$sirenCom='21'.$dept.$comm.$iSir;
if ($iInsee->valideSiren($sirenCom)) break;
}
$tabRet[]=array('Pmin' => 0,
'MajMin' => '+',
'RaisonSociale' => 'COMMUNE DE '.strtoupper($tabCom['libCommune']),
'Pays' => '',
'Siren' => $sirenCom,
'Actif' => 1);
}
break;
}
}
return $tabRet;
}
public function getLiens($siren=false) {
$tabA=$this->getActionnaires($siren);
$tabP=$this->getParticipations($siren);
return array( 'actionnaires'=>$tabA,
'participations'=>$tabP);
}
private function getLiensPartenaires($siren=false) {
if (!$siren) $siren=$this->siren;
/** Le partenaire pour les liens Actionnaires/Participations est infobilan.decideur.com
**/
$urlRacine='http://infobilan.decideur.com/';
$tabPost=array( 'choix'=>'1',
'pagePrecedente'=>'recherche_entreprise.html',
'nomsocRech'=>'',
'cpRech'=>'',
'villeRech'=>'',
'nomdirRech'=>'',
'predirRech'=>'',
'sirenRech'=>$this->siren,
'telRech'=>'',
'Rechercher.x'=>round(79),
'Rechercher.y'=>round(19),);
$url=$urlRacine.'liste_result.html';
$referer=$urlRacine.'recherche_entreprise.html';
$page=getUrl($url,'', $tabPost, $referer, false, 'infobilan.decideur.com');
$this->body=$page['body'];
$strCookie=$page['header']['Set-Cookie'];
$refererInfoD=$url;
if(preg_match_all('/<a href="choix_pdt\.html\?(.*)" class="tt1">(.*)<\/a><\/span><br>/i', $page['body'], $matches))
{
$urlInfoD=$urlRacine.'choix_pdt.html?'.$matches[1][0];
$page=getUrl($urlInfoD,$strCookie,'', $refererInfoD, false, 'infobilan.decideur.com');
$referer=$urlInfoD;
if ($this->nscrl==0) $this->nscrl=@getTextInHtml($url, 'nscrlP=', '=','&');
$url=$urlRacine.'fiche_ident.html';
$page=getUrl($url,$strCookie,'', $referer, false, 'infobilan.decideur.com');
$this->body=$page['body'];
if ($this->raisonSociale=='')
$this->raisonSociale=trim(@getTextInHtml($this->body, '<span class="libelle2">Soci&eacute;t&eacute;', ' :', '</span>'));
if ($this->adresse=='')
$this->adresse=trim(@getTextInHtml($this->body, '<span class="libelle2">Adresse</span> <strong>:', '</strong>', '</td>'));
if ($this->tel=='')
$this->tel=trim(@getTextInHtml($this->body, '<td valign="top"><span class="libelle2">T&eacute;l', '</span>', '<br>'));
if ($this->fax=='')
$this->fax=trim(@getTextInHtml($this->body, '<span class="libelle2">Fax</span>', ' :', '<br>'));
if ($this->web=='')
$this->web=trim(@getTextInHtml($this->body, '<span class="libelle2">Site Web</span>', '<a href="', '" target="_blank">'));
if ($this->mail=='')
$this->mail=trim(@getTextInHtml($this->body, '<span class="libelle2">E-mail</span>', '<a href="mailto:', '">'));
if ($this->naf=='')
$this->naf=trim(@getTextInHtml($this->body, '<span class="libelle2">Code NAF</span>', ' :', '</td>'));
if(preg_match('/<td valign="top"><span class="libelle2">Capital social<\/span> : (\d*)(.*)<br>/isU', $this->body, $matches)
&& ($this->capitalMontant=='' || $this->capitalDevise=='')) {
$this->capitalMontant=trim($matches[1]);
$this->capitalDevise=trim($matches[2]);
}
if ($this->fj=='')
$this->fj=trim(@getTextInHtml($this->body, '<span class="libelle2">Forme juridique</span>', ' :', '<br>'));
if ($this->nationalite=='')
$this->nationalite=trim(@getTextInHtml($this->body, '<span class="libelle2">Nationalit&eacute;</span>', ' :', '</td>'));
if ($this->effectif=='')
$this->effectif=trim(@getTextInHtml($this->body, '<td valign="top"><span class="libelle2">Effectif</span>', ' :', '<br>'));
if ($this->activite=='')
$this->activite=trim(@getTextInHtml($this->body, '<span class="libelle2">Activit&eacute;</span>', ' :', '<br>'));
/** Actionnaires **/
$strTmp=trim(@getTextInHtml($this->body, 'ACTIONNAIRES<br>', '</div></h1>', '<h1>'));
if(preg_match_all('/<p><span class="libelle2">(.*)<\/span> - <span class="libelle2">Participation<\/span> : (.*) %<br>(.*)<\/p>/isU', $strTmp, $matches)) {
foreach ($matches[1] as $i=>$nom) {
$this->tabAct[$i]['nom']=trim($nom);
$this->tabAct[$i]['pct']=trim($matches[2][$i]);
$this->tabAct[$i]['rcs']=trim(str_replace('RCS : ','',strip_tags($matches[3][$i])));
}
}
/** Filiales **/
$strTmp=trim(@getTextInHtml($this->body, 'FILIALES<br>', '</div></h1>', '<h1>'));
if(preg_match_all('/<p><span class="libelle2">(.*)<\/span> - <span class="libelle2">Participation<\/span> :(.*)%<br>(.*)<\/p>/isU', $strTmp, $matches)) {
foreach ($matches[1] as $i=>$nom) {
$this->tabFil[$i]['nom']=trim($nom);
$this->tabFil[$i]['pct']=trim($matches[2][$i]);
$this->tabFil[$i]['rcs']=trim(str_replace('RCS :','',strip_tags($matches[3][$i])));
}
}
/** CA et Résultat **/
$strTmp=trim(@getTextInHtml($this->body, '<h1>PRINCIPAUX ELEMENTS FINANCIERS<br>', '</div></h1>', '</p>'));
if(preg_match('/<p><span class="libelle2">CA (.*)<\/span>(.*)<br>/isU', $strTmp, $matches)) {
$this->derExerciceAnnee=trim($matches[1]);
$this->derExerciceCA=trim(str_replace(':',' ', $matches[2]));
}
if(preg_match('/<span class="libelle2">R&eacute;sultat(.*)<\/span>(.*)$/isU', $strTmp, $matches)) {
$this->derExerciceResultat=trim(str_replace(':',' ', $matches[2]));
}
/*
$infoBilan=print_r($page, true);
$fp=fopen('./infobilan.html', 'w');
fwrite($fp, $infoBilan);
fclose($fp);
*/
}
$tabA=$this->getActionnaires($siren);
$tabP=$this->getParticipations($siren);
return array( 'actionnaires'=>$tabA,
'participations'=>$tabP);
}
}
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,112 +0,0 @@
<html>
<head>
<title>Imagery Service example in PHP (with Geocode)</title>
</head>
<body>
This example currently accesses the staging environment only. Username, password, and address are required.<br>
In order to run this example, the php_soap extension must be enabled. This was built and tested using PHP 5.3.0.<br><br>
<form action="imageryservicesample.php" method="post">
Username: <input type="text" name="username" value="<?php echo (isset($_POST['username'])?$_POST['username']:'') ?>">
Password: <input type="text" name="password" value="<?php echo (isset($_POST['password'])?$_POST['password']:'') ?>"><br>
Address: <input type="text" name="address" value="<?php echo (isset($_POST['address'])?$_POST['address']:'') ?>"><br>
Zoom: <input type="text" name="zoomlevel" value="<?php echo (isset($_POST['zoomlevel'])?$_POST['zoomlevel']:'') ?>"><br>
<input type="submit" value="Submit">
</form>
<?php
if(isset($_POST['username']) && isset($_POST['password']))
{
$UserName = $_POST['username'];
$Password = $_POST['password'];
// Url to the token service wsdl (for now it's a local file)
$TokenServiceWsdl = "tokenreference.wsdl";
// Create the service client object
//trace allows us to see last response and request for debugging
$tokenClient = new SoapClient($TokenServiceWsdl, array('login' => $UserName, 'password' => $Password, 'trace' => true));
// TokenSpecification "object"
$tokenSpec = array(
'ClientIPAddress' => '0.0.0.0',
'TokenValidityDurationMinutes' => '60'
);
try {
// Get the client token
$tokenResponse = $tokenClient->GetClientToken(array('specification' => $tokenSpec));
}
catch(SoapFault $e)
{
die('Fault occurred using Web Service: '.$e->getMessage());//.print_r($res,true));
}
// Get the token from the response object
$token = $tokenResponse->GetClientTokenResult;
// URLs to the Imagery and Geocode services
$imageryServiceWsdl = 'imageryservice.wsdl';
$geocodeServiceWsdl = 'geocodeservice.wsdl';
// Credentials "object"
$credentials = array('Token' => $token);
// Create the geocode service and imagery service clients
$geocodeClient = new SoapClient($geocodeServiceWsdl, array('trace' => 1));
$imageryClient = new SoapClient($imageryServiceWsdl, array('trace' => 1));
// GeocodeRequest "object"
$geocodeRequest = array(
'Credentials' => $credentials,
'Query' => $_POST['address']
);
try {
if(isset($_POST['address']))
$geocodeResponse = $geocodeClient->Geocode(array('request' => $geocodeRequest));
}
catch(SoapFault $e)
{
die('Fault occurred using Web Service: '.$e->getMessage());
}
// Retrieve the latitude and longitude from the response object
$lat = $geocodeResponse->GeocodeResult->Results->GeocodeResult->Locations->GeocodeLocation->Latitude;
$lon = $geocodeResponse->GeocodeResult->Results->GeocodeResult->Locations->GeocodeLocation->Longitude;
// Location "object"
$location = array(
'Latitude' => $lat,
'Longitude' => $lon
);
if($_POST['zoomlevel'] == '')
$_POST['zoomlevel'] = null;
// MapUriOptions "object"
$options = array(
'ZoomLevel' => $_POST['zoomlevel']
);
// MapUriRequest "object"
$mapUriRequest = array(
'Credentials' => $credentials,
'Center' => $location,
'Options' => $options
);
try {
// GetMapUri method call
$mapUriResponse = $imageryClient->GetMapUri(array('request' => $mapUriRequest));
}
catch(SoapFault $e)
{
die('Fault occurred using Web Service: '.$e->getMessage());
}
// Display the URI and lat/lon returned from the service call
echo '<img src="' . $mapUriResponse->GetMapUriResult->Uri . '"><br>';
echo 'Latitude: '.$lat.' Longitude: '.$lon;
}
?>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -1,283 +0,0 @@
<?
class MOrias {
private $referer ='';
private $body = '';
private $header = '';
private $cookie = '';
private $codeRetour = 0;
private $accesDist=true;
private $iDb;
public $enCache=false;
public $force=false;
public $annee=0;
public $erreur='';
function __construct($accesDist=true) {// $adresse, $cp, $ville, $pays='France') {
$this->accesDist=$accesDist;
$this->iDb=new WDb('sdv1');
}
public function getMaxOrias($annee=0) {
if ($annee*1>0 && $annee*1<100) {
$this->annee='20'.$annee;
$annee++;
$strWhere="(numOrias/1000000)<=$annee";
} elseif ($annee*1>1900 && $annee*1<9999) {
$this->annee=$annee;
$annee=substr(''.$annee,2,2)*1+1;
$strWhere="(numOrias/1000000)<=$annee";
} else {
$strWhere='1';
$this->annee=date('Y')*1;
}
$ret=$this->iDb->select('orias','MAX(numOrias) AS numOrias', $strWhere, false, MYSQL_ASSOC);
//die($strWhere);
return sprintf('%08d',$ret[0]['numOrias']);
}
public function getInfosOrias($siren, $numOrias=0) {
//die('numOrias 1:"'.$numOrias.'"');
if ($siren*1>1000)
$strWhere="siren=$siren";
elseif ($numOrias*1>0) {
// $numOrias=preg_replace('/[^0-9]/','',$numOrias);
// $numOrias=substr($numOrias,0,2).' '.substr($numOrias,2,3).' '.substr($numOrias,5,3);
$strWhere="numOrias=$numOrias";
// die($strWhere);
//die('numOrias 2:"'.$numOrias.'"');
} else return false;
/* echo "=================================================================================================".EOL;
echo "==== SELECT siren, id, nom, cp, ville, adresse, numOrias FROM orias WHERE $strWhere;".EOL;
echo "=================================================================================================".EOL;
*/
$ret=$this->iDb->select('orias','siren, id, nom, cp, ville, adresse, numOrias, numOriasAttribue', $strWhere, false, MYSQL_ASSOC);
if (!$this->force && count($ret)>0) {
$this->enCache=true;
$tabRet=$ret[0];//array();
$ret=$this->iDb->select('orias','categorie, cat, dateInscription, typeStatut, rcsVille, rcsCode, rcsSiren, contact, encaissement, nature, paysPresta, paysEtab',$strWhere, false, MYSQL_ASSOC);
foreach ($ret as $i=>$tabTmp)
$tabRet['categories'][]=$tabTmp;
//die('numOrias 3:"'.$numOrias.'"');
} elseif ($this->accesDist==true) {
$this->enCache=false;
// Initialisation Cookies
if ($numOrias>0) $this->referer='http://www.orias.fr/orias/public/index.jsp';
else $this->referer='http://www.orias.fr/orias/public/rechercheavance.html';
$page=getUrl($this->referer, '', '', '', false, '', '', 15);
//print_r($page);
if ($page['code']==200) {
$this->cookie=str_replace(' Path=/orias', '',$page['header']['Set-Cookie']);
if(preg_match('/id="javax\.faces\.ViewState" value="(.*)"/Ui', $page['body'], $matches))
$this->codeRetour=$matches[1];
else {
echo 'Erreur Url='.$this->referer.EOL;
print_r($page['body']);
return false;
}
} else return false;
if ($numOrias>0) {
$url='http://www.orias.fr/orias/public/index.html';
$post=array('menu%3AiasSearchForm'=>'menu%3AiasSearchForm',
'menu%3AiasSearchForm%3AiasInputText'=>sprintf('%08s',$numOrias),
'javax.faces.ViewState'=>$this->codeRetour,
'menu%3AiasSearchForm%3AiasSearch'=>'menu%3AiasSearchForm%3AiasSearch',
);
} else {
// Recherche avec Siren
$url='http://www.orias.fr/orias/public/rechercheavance.html';
$post=array('j_id_id45'=>'j_id_id45',
'j_id_id45%3Aj_id_id52'=>'',
'j_id_id45%3AtagRCS'=>'',
'j_id_id45%3AtagSIREN'=>$siren,//441921574,
'j_id_id45%3Aj_id_id160'=>'',
'j_id_id45%3Aj_id_id167'=>'',
'j_id_id45%3Aj_id_id175'=>'',
'javax.faces.ViewState'=>$this->codeRetour,
'j_id_id45%3Aj_id_id203'=>'j_id_id45%3Aj_id_id203');
$this->referer='http://www.orias.fr/orias/public/list.html';
}
randsleep(1,2);
$page=getUrl($url, $this->cookie, $post, $this->referer, false, '', '', 15);
$this->referer=$url;
if ($page['code']==302) $url=$page['header']['Location'];
else {
if (preg_match("/Le num&eacute;ro d'immatriculation n'existe pas/", $page['body'])) {
$tabInsert=array( 'actif'=>0,
'numOrias'=>$numOrias,
'numOriasAttribue'=>0,
'dateInsert'=>date('YmdHis'));
$this->erreur='Numéro Orias inexistant';
// On enregistre ce numéro comme non attribué si < au dernier numéro attribué
if ($numOrias<$this->getMaxOrias())
$this->iDb->insert('orias', $tabInsert);
}
return false;
}
if ($url=='http://www.orias.fr/orias/public/intermediaire.html') {
$page=getUrl($url, $this->cookie, '', $this->referer, false, '', '', 24);
$this->referer=$url;
$this->body=$page['body'];
echo "Recherche par Orias : url=$url".EOL;
die(print_r($page));
} /* else { */
// Liste contenant l'entreprise
$url='http://www.orias.fr/orias/public/list.html';
randsleep(1,2);
$page=getUrl($url, $this->cookie, '', $this->referer, false, '', '', 24);
$this->referer=$url;
$this->body=$page['body'];
if (preg_match('/<td>R\&eacute\;sultat\(s\) de votre recherche \:(?:.*)<strong>(.*)<(?:.*)Interm\&eacute\;diaire\(s\)/Uis',$this->body, $matches)) {
$nbInter=trim($matches[1])*1;
if ($nbInter==0) return false;
if ($nbInter>1) {
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMOrias::getInfosOrias sur $siren", "Plus de 1 intermédiaire recensé... Merci de gérer le cas !");
return false;
}
}
// Initalisation du tableau retour
$tabRet=array('siren'=>$siren);
//id="formResult:intermediariesList:13910
if (preg_match('/<td class="dr-table-cell rich-table-cell haut " id="formResult\:intermediariesList\:(.*)\:j_id_id117">(?:.*)<center>(.*)<\/center>/Uis',$this->body, $matches)) {
$tabRet['id']=trim($matches[1]);
$tabRet['nom']=html_entity_decode(trim($matches[2]));
}
if (preg_match('/<td class="dr-table-cell rich-table-cell r.cp_ville " id="formResult\:intermediariesList\:(?:.*)\:j_id_id124">(?:.*)<center>(.*)<\/center>/Uis',$this->body, $matches)) {
$tabTmp=explode('&nbsp;',$matches[1]);
$tabRet['cp']=trim($tabTmp[0]);
$tabRet['ville']=html_entity_decode(trim($tabTmp[1]));
//$tabRet['cpVille']=explotrim(str_replace('&nbsp;',' ',$matches[1]));
}
if (preg_match('/<td class="dr-table-cell rich-table-cell r.adresse " id="formResult\:intermediariesList\:(?:.*)\:j_id_id133">(.*)<\/td>/Uis',$this->body, $matches))
$tabRet['adresse']=html_entity_decode(trim($matches[1]));
$tabRet['actif']=1;
$tabRet['numOriasAttribue']=1;
if (preg_match('/<td class="dr-table-cell rich-table-cell r.immat " id="formResult\:intermediariesList\:(?:.*)\:j_id_id138">(?:.*|)(<span style="white-space\: no-wrap;">|Radi\&eacute\; le \:)(.*)(?:<\/span>|<\/td>)/Uis',$this->body, $matches)) {
$str=trim(strtr($matches[2],array('&nbsp;'=>'',' '=>'')));
if (html_entity_decode(trim(str_replace(':','', $matches[1])))=='Radié le') {
$tabRet['actif']=0;
$tabRet['numOrias']=$numOrias;
$tabRet['dateRadiation']=$str;
}
else
$tabRet['numOrias']=$str;
}
if (preg_match('/ id="javax\.faces\.ViewState" value="(.*)" /Uis',$this->body, $matches))
$this->codeRetour=$matches[1];
$tabTmp=explode("<a href=\"#\" onclick=\"if(typeof jsfcljs == 'function'){jsfcljs(document.getElementById('formResult'),{'", $this->body);
// die($this->body);
foreach ($tabTmp as $i=>$strCat) {
if ($i==0) {
if (count($tabTmp)==1) {
$tabInsert=array_merge($tabRet, array('dateInsert'=>date('YmdHis')));
//print_r($tabInsert);
$this->iDb->insert('orias', $tabInsert);
}
$tabRet['categories']=array();
continue;
}
$tabCat=array();
//echo "$i:$strCat";
//die();
//:formResult:intermediariesList:107501:j_id_id159:0:j_id_id166':'formResult:intermediariesList:107501:j_id_id159:0:j_id_id166','intermediaryIdParam':'107501','intermediaryRoleIdParam':'Mia'},'');}return false">
if (preg_match('/<span style="text-align\: left">(.*)<\/span>/Ui',$strCat, $matches))
$tabCat['categorie']=html_entity_decode(trim($matches[1]));
if (preg_match('/intermediaryRoleIdParam\'\:\'(.*)\'/Uis',$strCat, $matches))
$tabCat['cat']=$matches[1];
//print_r($tabCat);
if ($i==1) { // Tout est dans la même page Html
// Construction du lien vers la fiche d'identité de l'entreprise
$url='http://www.orias.fr/orias/public/list.html';
$post=array('formResult'=>'formResult',
'formResult%3AajaxLoadingModalBoxOpenedState'=>'',
'javax.faces.ViewState'=>$this->codeRetour,
'intermediaryIdParam'=>$tabRet['id'],
'intermediaryRoleIdParam'=>$tabCat['cat'],
);
if (preg_match('/(formResult\:intermediariesList\:(?:.*)),intermediaryIdParam,/Ui',$strCat, $matches)) {
$tabTmp2=explode(',', $matches[1]);
$post[urlencode($tabTmp2[0])]=urlencode($tabTmp2[1]);
/* echo "$i";
print_r($tabCat);
print_r($matches);*/
}
randsleep(1,2);
$page=getUrl($url, $this->cookie, $post, $this->referer, false, '', '', 24);
//$this->referer=$url;
$tmpCat=explode('class="dr-tbpnl-cntnt-pstn rich-tabpanel-content-position"', $page['body']);
//die(print_r($page,1));
}
if (preg_match('/<dd class="col3">Date d\'inscription \: <strong>(.*)<\/strong><\/dd>/Uis',$tmpCat[$i], $matches))
$tabCat['dateInscription']=/*Wdate::dateT('d/m/y', 'Y-m-d', */trim($matches[1]);//);
if (preg_match('/<td align="right"(?: |)>Statut \:<\/td>(.*)<\/strong>/Uis',$tmpCat[$i], $matches))
$tabCat['typeStatut']=trim(strip_tags($matches[1]));
if (preg_match('/<td align="right">RCS \:<\/td>(?:.*)<td width="5%"><\/td>(?:.*)<td width="70%"><strong>(.*)<\/strong>(.*)SIREN \:(?:.*)<strong>(.*)<\/strong>/Uis',$tmpCat[$i], $matches)) {
$tabCat['rcsVille']=trim($matches[1]);
$tabCat['rcsCode']=trim(strtr(strip_tags($matches[2]), array(' '=>'','&nbsp;'=>'',chr(160)=>'',"\r"=>'',"\n"=>'')));
$tabCat['rcsSiren']=trim($matches[3]);
if ($siren==0) $tabRet['siren']=$tabCat['rcsSiren'];
}
/*<td align="right">Contact</td>
<td></td>
<td><strong> Fran&ccedil;ois Meunier
</strong></td>
*/
if (preg_match('/<td align="right">Contact<\/td>(.*)<\/tr>/Uis',$tmpCat[$i], $matches)) {
$tabCat['contact']=html_entity_decode(trim(strip_tags($matches[1])));
/* <td></td>
<td>
<strong>
JEAN-PIERRE CHAUSSAT
</strong>
</td>
</table>*/
}
//print_r($tmpCat[$i]);
if (preg_match("/<strong>(.*)Cet interm&eacute;diaire n'est pas autoris&eacute; &agrave; encaisser les primes ou cotisations d'assurances(.*)<\/strong>/Uis", $tmpCat[$i]))
$tabCat['encaissement']=0;
else
$tabCat['encaissement']=1;
if (preg_match('/<span class="txt_ssTitre">(?:.*)Nature de l\'activit\&eacute\; d\'interm\&eacute\;diation(.*)<\/dd>/Uis',$tmpCat[$i], $matches))
$tabCat['nature']=html_entity_decode(trim(strip_tags($matches[1])));
if (preg_match('/<td width="50%" valign="top" align="left">\- Etats dans lesquels cet interm\&eacute\;diaire exerce en libre prestation de service(.*)<\/table>(.*)<\/tr>/Uis',$tmpCat[$i], $matches))
$tabCat['paysPresta']=trim(strip_tags($matches[1]));
if (preg_match('/<td width="222" align="left">\- Etats dans lesquels cet interm\&eacute\;diaire exerce en libert\&eacute\; d\'\&eacute\;tablissement(.*)<\/table>(.*)<\/tr>/Uis',$tmpCat[$i], $matches))
$tabCat['paysEtab']=trim(strip_tags($matches[1]));
$tabRet['categories'][]=$tabCat;
$tabInsert=$tabRet;
unset($tabInsert['categories']);
$tabInsert=array_merge($tabInsert, $tabCat, array('dateInsert'=>date('YmdHis')));
//print_r($tabInsert);
$this->iDb->insert('orias', $tabInsert);
//echo $tmpCat[$i];
}
}
return $tabRet;
}
}
?>

View File

@ -1,155 +0,0 @@
<?
class MPrivileges {
private $iDb;
public $tabCodeAR=array(
'00'=>"Surveillance RCS posée/Demande de suppression acceptée/Surveillance PRIV posée : pas d'inscription existante sur le dossier",
'01'=>"Surveillance PRIV posée : inscription existante sur le dossier",
'02'=>"GAGI,GREFTEL,INTERGREFFE-code 1-surveillance acceptée mais qui n'a pas encore fait l'objet d'un AR",
'03'=>"GAGI,GREFTEL,INTERGREFFE-code 2 - surveillance acceptée avec CREATION d'une fiche débiteur, qui n'a pas fait l'objet d'un AR",
'04'=>"GAGI-surveillance en attente envoyée au GAGI",
'05'=>"Surveillance en attente de validation au greffe",
'06'=>"Erreur de chargement",
'10'=>"Surveillance impossible car société radiée",
'11'=>"Surveillance impossible car société transférée dans un autre greffe",
'12'=>"SIREN inconnu",
'13'=>"Raison sociale erronée",
'14'=>"Adresse erronée",
'15'=>"Surveillance impossible sur un établissement secondaire",
'16'=>"Demande incomplète ou incorrecte",
'17'=>"Surveillance Privilège impossible",
'18'=>"Surveillance impossible par le greffe",
'19'=>"Surveillance RCS impossible",
'20'=>"Cette surveillance concerne un autre Greffe",
'21'=>"Surveillance BILAN impossible car la ste n'est pas tenue de déposer ses Comptes Annuels (ste de droit étranger)",
'22'=>"Plusieurs Bottins (débiteurs) (GAGI)",
'23'=>"Société de fait (GAGI) : Société non enregistrée au Registre du Commerce",
'24'=>"Surveillance impossible car société en liquidation judiciaire",
'25'=>"Greffe inconnu",
'26'=>"Millésime bilan à surveiller incorrect",
'27'=>"Références EXTELIA erronées ou incomplètes (ces reférences sont obligatoires en cas de demande de suppression)",
'28'=>"Surveillance impossible sur un dossier non informatisé (dossier dit non repris ou figé)",
'30'=>"Siren absent (ne concerne que les surveillances de type WebService)",
'31'=>"Surveillance BILAN impossible sur une société non commerciale (statut <> B)",
'50'=>"Ce greffe ne traite pas les surveillances car le groupement de ce greffe n'est pas surveillé",
'51'=>"Etablissement non trouvé",
'52'=>"Code catalogue de la surveillance non renseigné ou incorrect",
'53'=>"le siren est déjà sous surveillance",
'54'=>"DOSSIER AGORA : votre prestation ne comprend pas la couverture de ce groupement",
'55'=>"DOSSIER INTERGREFFE : votre prestation ne comprend pas la couverture de ce groupement de greffes",
'56'=>"Le siren est déjà en attente de validation par le greffe",
'57'=>"Surveillance impossible sur un dossier dit non inscrit au RCS (statut F:artisan)",
'58'=>"Surveillance impossible sur un agent commercial (statut P ou M)",
'59'=>'Surveillance impossible sur une société non RCS ?',
'88'=>"Rejet temporaire : surveillance sur un greffe absorbé rejetée pendant la phase de rechargement",
'99'=>"Surveillance impossible pour raisons à examiner",
);
public $tabTypePriv=array(
'01'=>"NANTISSEMENTS DU FONDS DE COMMERCE",
'02'=>"PRIVILEGES DE VENDEUR ET ACTION RESOLUTOIRE",
'03'=>"PRIVILEGES DE LA SECURITE SOCIALE ET DES REGIMES COMPLEMENTAIRES",
'04'=>"PRIVILEGES DU TRESOR PUBLIC",
'05'=>"OPERATIONS DE CREDIT-BAIL EN MATIERE MOBILIERE",
'06'=>"PROTETS",
'07'=>"NANTISSEMENTS DE L'OUTILLAGE, MATERIEL ET EQUIPEMENT",
'08'=>"WARRANTS (HOTELIER, PETROLIER, INDUSTRIEL OU AGRICOLE)",
'10'=>"NANTISSEMENTS DE PARTS DE SOCIETE CIVILE",
'17'=>"PUBLICITES DE CONTRATS DE LOCATION",
'18'=>"PUBLICITES DE CLAUSES DE RESERVE DE PROPRIETE",
'19'=>"PRETS ET DELAIS",
'20'=>"DECLARATIONS DE CREANCES",
'21'=>"NANTISSEMENTS JUDICIAIRES",
'23'=>"BIENS INALIENABLES",
'24'=>"HYPOTHEQUES FLUVIALES",
'25'=>"NANTISSEMENTS DU FONDS ARTISANAL",
'27'=>"GAGE SANS DEPOSSESSION",
'28'=>"GAGE DES STOCKS",
);
function __construct() {
$this->iDb=new WDB();
}
function getPrivilegesDetail($siren, $tabTypes=array('03','04')) {
$strTypes=implode("','", $tabTypes);
if ($strTypes<>'') $strTypes=" AND i.insType IN ('$strTypes') ";
$fields="i.id, i.dateEven, i.greffe , i.numDebiteur, i.sirenage, i.typeEven, i.dateFraiche, i.codeRev , i.debRaisonSociale , i.debSigle , i.debCiv , i.debNom , i.debPrenom , i.debConjoint , i.debUsage , i.debEnseigne , i.debActivite , i.debFj , i.debFjLib , i.debResidence , i.debNumVoie , i.debTypVoie , i.debLibVoie , i.debAdrComp , i.debCP , i.debVille , i.debPays , i.insType , i.insLib , i.insNum , i.insDate , i.insObjet , i.insMontant , i.insDev , i.insDateEch , i.insDateFin , i.insNanTx , i.insNanTitre , i.insNanOppo , i.insProNat , i.insProHui , i.insProRep , i.insNSCA , i.insNSCParts , i.insNSCSigni , i.creNom , i.creNumVoi, i.creTypVoi, i.creLibVoi, i.creAdrComp1, i.creAdrComp2, i.creCP, i.creVille, i.crePays, i.creAutres, i.radDate, i.radMention, i.radPartiel, i.radPartMt, i.radDev, i.radDiv, i.idFichier, i.dateInsert";
$where ="i.siren=$siren $strTypes AND ( (i.insType='03' AND DATEDIFF(NOW(),i.insDate)<=900) /** Durée de vie PRIV Sécu **/ OR (i.insType='04' AND DATEDIFF(NOW(),i.insDate)<=1460) /** Durée de vie PRIV Trésor **/ )";
$where.=" ORDER BY i.dateFraiche DESC, i.insType ASC, i.insDate ASC;";
$tables="greffes_privileges i";
$iRncs=new MRncs();
$tabRet=array();
$tabPriv=$this->iDb->select($tables, $fields, $where, true, MYSQL_ASSOC);
foreach ($tabPriv as $i=>$priv) {
if ($i>0 && $priv['dateFraiche']<>$dateFraiche) break;
$tabRet[]=array(
'numDebiteur' =>$priv['numDebiteur'],
'greffe' =>$priv['greffe'],
'greffeLib' =>$iRncs->getLibTribunal($priv['greffe']),
'dateEven' =>$priv['dateEven'],
'dateFraiche' =>$priv['dateFraiche'],
'dateSD' =>$priv['dateInsert'],
'insType' =>$priv['insType'],
'insTypeLib' =>prepareString($this->tabTypePriv[$priv['insType']]),
'insNum' =>$priv['insNum'],
'insDate' =>$priv['insDate'],
'insDateEch' =>$priv['insDateEch'],
'insObjet' =>prepareString($priv['insObjet']),
'insMontant' =>$priv['insMontant'],
'insDev' =>$priv['insDev'],
'insDateFin' =>$priv['insDateFin'],
'radDate' =>$priv['radDate'],
'radMention' =>$priv['radMention'],
'radPartiel' =>prepareString($priv['radPartiel']),
'radPartMt' =>$priv['radPartMt'],
'radDev' =>$priv['radDev'],
'creNom' =>prepareString($priv['creNom']),
'creAdresse1' =>prepareString(trim(preg_replace('/ +/', ' ', $priv['creNumVoi'].' '.$priv['creTypVoi'].' '.$priv['creLibVoi']))),
'creAdresse2' =>prepareString($priv['creAdrComp1']),
'creAdresse3' =>prepareString($priv['creAdrComp2']),
'creCP' =>$priv['creCP'],
'creVille' =>prepareString($priv['creVille']),
'crePays' =>prepareString($priv['crePays']),
'creAutres' =>prepareString($priv['creAutres']),
);
/* debRaisonSociale , debSigle, debEnseigne
debCiv, debNom, debPrenom , debConjoint, debUsage,
debActivite , debFj, debFjLib
debResidence, debNumVoie, debTypVoie, debLibVoie
debAdrComp , debCP, debVille, debPays
insNanTx, insNanTitre, insNanOppo,
insProNat, insProHui, insProRep , insNSCA, insNSCParts, insNSCSigni
*/
$dateFraiche=$priv['dateFraiche'];
}
return $tabRet;
}
function getPrivilegesCumul($siren, $tabTypes=array('03','04')) {
$iRncs=new MRncs();
$tabRet=array();
$tabTmp=$this->getPrivilegesDetail($siren, $tabTypes);
foreach($tabTmp as $i=>$priv) {
@$tabRet[$priv['insType']]['nb']++;
$tabRet[$priv['insType']]['insTypeLib'] =$priv['insTypeLib'];
$tabRet[$priv['insType']]['dateFraiche']=$priv['dateFraiche'];
$tabRet[$priv['insType']]['dateDerInsc']=$priv['insDate'];
$tabRet[$priv['insType']]['nomDerCre'] =$priv['creNom'];
$tabRet[$priv['insType']]['numDebiteur']=$priv['numDebiteur'];
$tabRet[$priv['insType']]['greffeLib'] =$iRncs->getLibTribunal($priv['greffe']);
$tabRet[$priv['insType']]['dateMajSD'] =$priv['dateSD'];
@$tabRet[$priv['insType']]['insCumul']+=$priv['insMontant'];
}
return $tabRet;
}
}
?>

View File

@ -1,343 +0,0 @@
<?
class MQualibat {
private $referer ='';
private $body = '';
private $header = '';
private $cookie = '';
private $codeRetour = 0;
private $accesDist=true;
private $iDb;
private $iBodacc;
private $iInsee;
public $enCache=false;
public $force=false;
public $annee=0;
function __construct($accesDist=true) {// $adresse, $cp, $ville, $pays='France') {
$this->accesDist=$accesDist;
$this->iDb=new WDb('sdv1');
$this->iBodacc=new MBodacc();
$this->$iInsee=new MInsee();
}
private function getCodeFctDirigeant($strLibDirigeant, $siren=0) {
$tabTmp=$this->iBodacc->getDirigeants($strLibDirigeant);
if (isset($tabTmp[0]['fonction']) && $tabTmp[0]['fonction']>0)
return $tabTmp[0]['fonction'];
else {
if (preg_match("/directeur.{1,6}agence/i")) return 8;
elseif (preg_match("/directeur.{1,6}ETABLISSEMENT/i")) return 8;
elseif (preg_match("/directeur.{1,6}technique/i")) return 19;
elseif (preg_match("/chef.{1,8}agence/i")) return 38;
elseif (preg_match("/cadre.{1,8}Comptable/i")) return 55;
elseif (preg_match("/Charg.{1,6}affair/i")) return 60;
elseif (preg_match("/chef.{1,8}Atelier/i")) return 60;
elseif (preg_match("/(conducteur|chef).{1,9}travaux/i")) return 61;
elseif (preg_match("/directeur.{1,6}technique/i")) return 19;
elseif (preg_match("/resp.{1,16}technique/i")) return 49;
elseif (preg_match("/resp.{1,16}Expl/i")) return 37;
elseif (preg_match("/di.{1,16}Expl/i")) return 7;
elseif (preg_match("/Chef.{1,6}Ent/i")) {
$tabTmp=$this->iInsee->getIdentiteLight($siren);
if ($tabTmp['FJ']>=1000 && $tabTmp['FJ']<2000) return 1050;
else die($tabTmp);
}
else return false;
}
/*
"1","- DIRECTEUR GENERAL"
"1","- P.d.g."
"1","- PRESIDENT CONSEIL D''ADMINISTRATION"
"2","-co-gerant"
"1","Administrateur"
"2","Artisan"
"1","AssociÉ"
"1","Associes"
"24","Co Gerant"
"1","Co Gerante"
"1","CO GERANTS"
"109","Co-gérant"
"12","Co-gérante"
"1","Dg Delegue"
"1","Dir. General Delegue"
"32","Directeur"
"1","Directeur Adjoint"
"1","Directeur Administratif et Financier"
"1","Directeur Gal DÉlÉguÉ"
"61","Directeur Général"
"11","DIRECTEUR GENERAL DELEGUE"
"1","Directeur Général Unique"
"1","Directrice"
"2","DIRIG."
"4","Dirigeant"
"38","Gér"
"857","Gerant"
"3","Gerant -"
"13","Gérant Associé"
"1","Gérant Associé En Non Collectif"
"1","GERANT MAJORITAIRE"
"2","Gérant Non Associé"
"56","Gérante"
"4","P D G"
"1","P.d.g"
"1","PCA"
"168","PRESIDENT"
"1","President Conseil De Surveillance"
"1","PRESIDENT CONSEIL SURVEILLANCE"
"63","Président Directeur Général"
"1","PRESIDENT DIRECTOIRE"
"16","Président du conseil d'administration"
"1","Président Du Conseil De Surveillance"
"5","President Du Directoire"
"10","Presidente"
"1","ReprÉsentant SociÉtÉ PrÉsidente"
"1","Vice-président"
Gérer en fonction du code CJ
"128","Chef D'entreprise"
"2","Chef Ent."
"3","Chef Entr."
"1","Conjoint Collaborateur"=>0500
"1","Metreur"
"1","Président De Commission"
*/
}
public function getMaxQualibat() {
$ret=$this->iDb->select('qualibat','MAX(id) AS id', '1', false, MYSQL_ASSOC);
return $ret[0]['id'];
}
public function getTabQualibatManquants() {
$tabRet=$tabQualibatCalc=$tabQualibatBase=array();
// Liste des Qualibat Calculés
$maxQualibat=$this->getMaxQualibat();
for($i=1; $i<=$maxQualibat; $i++)
$tabQualibatCalc[]=$i;
// Liste des Qualibat en base
$ret=$this->iDb->select('qualibat','id', '1 ORDER BY id ASC', false, MYSQL_ASSOC);
foreach ($ret as $i=>$res)
$tabQualibatBase[]=$res['id'];
return array_diff($tabQualibatCalc, $tabQualibatBase);
}
public function getInfosQualibat($siren, $idQualibat=0) {
if ($siren*1>1000)
$strWhere="siren=$siren";
elseif ($idQualibat*1>0) {
$strWhere="id=$idQualibat";
} else return false;
$ret=$this->iDb->select('qualibat','siren, actif, id, nom, adresse, cp, ville, tel, fax, email, web,
eff, teff, ca, tca, libFJ, nace, dateFondation, dateDeb, dateFin, dateInsert', $strWhere, false, MYSQL_ASSOC);
if (!$this->force && count($ret)>0) {
$this->enCache=true;
$tabRet=$ret[0];//array();
// Ajout des qualifications
$ret=$this->iDb->select('qualibatqualif','code, periodQualif, niveauQualif, mentions, nomQualif, dateAttrib, dateEch', $strWhere, false, MYSQL_ASSOC);
foreach ($ret as $i=>$tabTmp)
$tabRet['qualifications'][]=$tabTmp;
// Ajout des dirigeants
$ret=$this->iDb->select('qualibatdir','civNomPrenom, civilite, nom, prenom, fonction', $strWhere, false, MYSQL_ASSOC);
foreach ($ret as $i=>$tabTmp)
$tabRet['dirigeants'][]=$tabTmp;
} elseif ($this->accesDist==true) {
$this->enCache=false;
// Initialisation Cookies
$this->referer='http://www.qualibat.com/Views/EntreprisesRechercheDetail.aspx?id='.$idQualibat;
$page=getUrl($this->referer, '', '', '', false, '', '', 3);
if ($page['code']<>200) {
if ($page['code']==500) {
$tabInsert=array( 'actif'=>0,
'id'=>$idQualibat,
'idQualibatAttribue'=>0,
'dateInsert'=>date('YmdHis'));
$this->erreur='Numéro Qualibat inexistant';
// On enregistre ce numéro comme non attribué si < au dernier numéro attribué
if ($idQualibat<$this->getMaxQualibat())
$this->iDb->insert('qualibat', $tabInsert);
}
return false;
}
$body=$page['body'];
//die($body);
$tabRet['id']=$idQualibat;
if (preg_match('/<th>(?:.*)Raison sociale(?:.*)<\/th>(?:.*)<td>(.*)<\/td>/Uis',$body, $matches))
$tabRet['nom']=utf8_decode(trim(strip_tags($matches[1])));
if (preg_match('/<th>(?:.*)Adresse(?:.*)<\/th>(?:.*)<td>(.*)<br \/>(.*)<\/td>/Uis',$body, $matches)) {
$tabRet['adresse']=strtoupper(utf8_decode(trim($matches[1])));
$adresse2=trim(preg_replace('/ +/',' ',strtr(strip_tags($matches[2]),"\r\n\t".chr(160),' ')));
$tabRet['cp']=substr($adresse2,0,5);
$tabRet['ville']=utf8_decode(trim(substr($adresse2,5)));
}
if (preg_match('/<th>(?:.*)Téléphone(?:.*)<\/th>(?:.*)<td>(.*)<\/td>/Uis',$body, $matches))
$tabRet['tel']=trim(str_replace(' ','',$matches[1]));
if (preg_match('/<th>(?:.*)Fax(?:.*)<\/th>(?:.*)<td>(.*)<\/td>/Uis',$body, $matches))
$tabRet['fax']=trim(str_replace(' ','',$matches[1]));
if (preg_match('/<th>E-mail<\/th><td>(?:.*)<a href= "mailto\:(.*)">/Uis',$body, $matches))
$tabRet['email']=utf8_decode(trim($matches[1]));
if (preg_match('/<th>(?:.*)SIREN(?:.*)<\/th>(?:.*)<td>(.*)<\/td>/Uis',$body, $matches))
$tabRet['siren']=$siren=trim(str_replace(' ','',$matches[1]));
if (preg_match('/<th>(?:.*)Effectif total(?:.*)<\/th>(?:.*)<td>(.*)\(Classification - (.*)\)(?:.*)<\/td>/Uis',$body, $matches)) {
$tabRet['eff']=trim(str_replace(' ','',$matches[1]));
$tabRet['teff']=trim($matches[2]);
}
if (preg_match('/<th>(?:.*)CA total(?:.*)<\/th>(?:.*)<td >(.*)\(Classification - (.*)\)(?:.*)<\/td>/Uis',$body, $matches)) {
$tabRet['ca']=trim(str_replace(' ','',$matches[1]));
if ($tabRet['ca']=='') $tabRet['ca']=NULL;
$tabRet['tca']=trim($matches[2]);
if ($tabRet['tca']=='') $tabRet['tca']=NULL;
}
if (preg_match('/<th>(?:.*)Forme Juridique(?:.*)<\/th>(?:.*)<td>(.*)<\/td>/Uis',$body, $matches))
$tabRet['libFJ']=utf8_decode(trim($matches[1]));
if (preg_match('/<th>(?:.*)NACE(?:.*)<\/th>(?:.*)<td>(.*)<\/td>/Uis',$body, $matches))
$tabRet['nace']=trim($matches[1]);
if (preg_match('/<th>(?:.*)Fondation(?:.*)<\/th>(?:.*)<td>(.*)<\/td>/Uis',$body, $matches))
$tabRet['dateFondation']=Wdate::dateT('d/m/Y', 'Y-m-d', trim($matches[1]));
if (preg_match('/<tr><td align="center"><img src="(?:.*)internet_contact\.gif(?:.*)<\/td><td> <a href= "(.*)" target="_blank">/Uis',$body, $matches))
$tabRet['web']=utf8_decode(trim($matches[1]));
/** Qualifications ? **/
$qualifs='';
if (preg_match('/<table class="recherche_entreprise_detail">(?:.*)<th colspan="4">(?:.*)(Qualifications professionnelles|Certifications m..tier)(?:.*)<tbody>(.*)<\/table>/Uis',$body, $matches)) {
$typeQualifs=trim(utf8_decode($matches[1]));
$qualifs=trim($matches[2]);
}
if (preg_match('/<th>(?:.*)Fondation(?:.*)<\/th>(?:.*)<td>(.*)<\/td>(.*)<div class="buttons">/Uis',$body, $matches)) {
$tabRet['tmpDirQualif']=trim($matches[2]);
$tabRet['tmpLenDirQualif']=strlen(trim($matches[2]));
}
$tabDateAttrib=$tabDateFin=array();
if (preg_match_all('/<tr>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<\/tr>/Uis',$qualifs, $matches)) {
foreach ($matches[1] as $i=>$code) {
$tabTmp=explode(' ',trim($code));
$nomQualif=utf8_decode(trim($matches[2][$i]));
if (preg_match("/\(Tech?nicit. (.*)\)/Ui", $nomQualif, $matches2))
$niveau=trim($matches2[1]);
else $niveau='';
$tabMentions=array();
if (preg_match_all('/Mention (.*)(?:,|$)/Uis',$nomQualif, $matches2)) {
foreach ($matches2[1] as $i2=>$mention)
$tabMentions[]=$mention;
}
$tabRet['qualifications'][$i]=array(
'code'=>trim($tabTmp[0]),
'periodQualif'=>trim($tabTmp[1]),
'nomQualif'=>$nomQualif,
'niveauQualif'=>$niveau,
'typeQualif'=>$typeQualifs,
'mentions'=>implode(', ', $tabMentions),
'dateAttrib'=>Wdate::dateT('d/m/Y', 'Y-m-d', trim($matches[3][$i])),
'dateEch'=>Wdate::dateT('d/m/Y', 'Y-m-d', trim($matches[4][$i])));
$tabDateAttrib[]=Wdate::dateT('d/m/Y', 'Ymd', trim($matches[3][$i]))*1;
$tabDateFin[]=Wdate::dateT('d/m/Y', 'Ymd', trim($matches[4][$i]))*1;
}
}
sort($tabDateAttrib);
rsort($tabDateFin);
/** Dirigeants ? **/
$dirs='';
if (preg_match('/<table class="recherche_entreprise_detail">(?:.*)<th colspan="2">(?:.*)Dirigeants(?:.*)<tbody>(.*)<\/table>/Uis',$body, $matches))
$dirs=trim($matches[1]);
/* <tr>
<td>
Monsieur EPP Olivier
</td>
<td>
Gérant
</td>
</tr>*/
if (preg_match_all('/<tr>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<\/tr>/Uis',$dirs, $matches)) {
foreach ($matches[1] as $i=>$nom) {
$strNom=utf8_decode(trim($nom));
switch(strtoupper(substr($strNom,0,6))) {
case 'MONSIE': $civ='M'; $pDeb=8; break;
case 'MADAME': $civ='MME'; $pDeb=6; break;
case 'MADEMO': $civ='MLLE';$pDeb=12; break;
default: $civ=''; $pDeb=0; break;
}
$libFonction=ucwords(strtolower(utf8_decode(trim($matches[2][$i]))));
$tabRet['dirigeants'][$i]=array(
'civNomPrenom'=>$strNom,
'civilite'=>$civ,
'nom'=>strtoupper(trim(substr($strNom,$pDeb,65))),
'prenom'=>ucwords(strtolower(trim(substr($strNom,$pDeb+66)))),
'fonction'=>$libFonction,
'fonctionCode'=>$this->getCodeFctDirigeant($libFonction, $siren),
);
}
//print_r($tabRet['dirigeants']);
//die();
}
/** Insertion de l'entreprise
**/
$tabInsert=array_merge($tabRet,
array( 'idQualibatAttribue'=>1,
'dateInsert'=>date('YmdHis'),
'dateDeb'=>@$tabDateAttrib[0],
'dateFin'=>@$tabDateFin[0]));
unset($tabInsert['qualifications']);
if (!$this->iDb->insert('qualibat', $tabInsert)) {
$this->iDb->update('qualibat', $tabInsert, "id=$idQualibat");
}
/** Insertion des qualifications
**/
if (isset($tabRet['qualifications']) && count($tabRet['qualifications'])>0)
foreach ($tabRet['qualifications'] as $i=>$tabInsert) {
$tabInsert['id']=$idQualibat;
$tabInsert['siren']=$siren;
$tabInsert['dateInsert']=date('YmdHis');
if (!$this->iDb->insert('qualibatqualif', $tabInsert)) {
$this->iDb->update('qualibatqualif', $tabInsert, "id=$idQualibat AND code='".$tabInsert['code']."' AND periodQualif='".$tabInsert['periodQualif']."'");
}
}
/** Insertion des dirigeants
**/
if (isset($tabRet['dirigeants']) && count($tabRet['dirigeants'])>0)
foreach ($tabRet['dirigeants'] as $i=>$tabInsert) {
$tabInsert['id']=$idQualibat;
$tabInsert['siren']=$siren;
$tabInsert['dateInsert']=date('YmdHis');
if (!$this->iDb->insert('qualibatdir', $tabInsert)) {
$this->iDb->update('qualibatdir', $tabInsert, "id=$idQualibat AND civNomPrenom='".addslashes($tabInsert['civNomPrenom'])."' AND fonction='".addslashes($tabInsert['fonction'])."'");
}
unset($tabRet['dirigeants'][$i]['civNomPrenom']);
}
}
return $tabRet;
}
}
?>

View File

@ -1,842 +0,0 @@
<?
class MRncs {
public $tabFctDir=array( 100 =>array('codeSd'=>'1300', 'lib'=>'Président'),
110 =>array('codeSd'=>'1306', 'lib'=>'Président du conseil d\'administration'),
120 =>array('codeSd'=>'1301', 'lib'=>'Président directeur Général'),
140 =>array('codeSd'=>'1650', 'lib'=>'Gouverneur'),
150 =>array('codeSd'=>'1651', 'lib'=>'Sous-gouverneur'),
200 =>array('codeSd'=>'0900', 'lib'=>'Gérant'),
210 =>array('codeSd'=>'0912', 'lib'=>'Gérant non associé'),
300 =>array('codeSd'=>'0400', 'lib'=>'Co-gérant'),
400 =>array('codeSd'=>'0709', 'lib'=>'Directeur général'),
410 =>array('codeSd'=>'0713', 'lib'=>'Directeur général non administrateur'),
420 =>array('codeSd'=>'0708', 'lib'=>'Directeur général unique'),
430 =>array('codeSd'=>'0704', 'lib'=>'Directeur général délégué'),
500 =>array('codeSd'=>'1800', 'lib'=>'Vice-président'),
600 =>array('codeSd'=>'0100', 'lib'=>'Administrateur'),
610 =>array('codeSd'=>'0101', 'lib'=>'Administrateur délégué'),
700 =>array('codeSd'=>'1308', 'lib'=>'Président du directoire'),
900 =>array('codeSd'=>'1307', 'lib'=>'Président du conseil de surveillance'),
1200=>array('codeSd'=>'0209', 'lib'=>'Associé-gérant'),
1300=>array('codeSd'=>'0603', 'lib'=>'Contrôleur de gestion'),
4000=>array('codeSd'=>'A', 'lib'=>'Administrateur judiciaire'),
4100=>array('codeSd'=>'1900', 'lib'=>'Liquidateur'),
4300=>array('codeSd'=>'0108', 'lib'=>'Administrateur provisoire'),
4400=>array('codeSd'=>'1401', 'lib'=>'Représentant en France d\'une société étrangère'),
7000=>array('codeSd'=>'U', 'lib'=>'Curateur'),
7100=>array('codeSd'=>'C', 'lib'=>'Commissaire au plan'),
7200=>array('codeSd'=>'S', 'lib'=>'Syndic'),
7300=>array('codeSd'=>'D', 'lib'=>'Commissaire au concordat'),
7500=>array('codeSd'=>'R', 'lib'=>'Représentant des créanciers'),
7600=>array('codeSd'=>'M', 'lib'=>'Mandataire judiciaire'),
7800=>array('codeSd'=>'M', 'lib'=>'Mandataire judiciaire'),
9100=>array('codeSd'=>'T', 'lib'=>'Conciliateur'),
);
public $tabDevises=array();
public $tabPays=array();
public $tabTribunaux=array();
public $tabMandataires=array();
public $tabJugements=array();
private $iDb;
/** Partie Extranet IMR Infogreffe **/
public $body='';
public $referer='';
public $codeRetour='';
public $libErreur='';
public $cookie='';
public $infoIMR=array();
public $maxDemJour=10;
function __construct() {
$this->iDb=new WDB();
$this->tabDevises=$this->getTabDevisesInpi();
$this->tabPays=$this->getTabPaysInpi();
$this->tabTribunaux=$this->getTabTribunaux();
$this->tabMandataires=$this->getTabMandataires();
$this->tabJugements=$this->getTabJugements();
}
public function getLibFctDir($codeFonctionDirectionRncs) {
$codeFonctionDirectionRncs=$codeFonctionDirectionRncs*1;
return $this->tabFctDir[$codeFonctionDirectionRncs]['lib'];
}
public function getCodFctBodaccFctDir($codeFonctionDirectionRncs) {
$codeFonctionDirectionRncs=$codeFonctionDirectionRncs*1;
return $this->tabFctDir[$codeFonctionDirectionRncs]['codeSd'];
}
/** Initialisation du tableau privé des devises Inpi <=> ISO **/
private function getTabDevisesInpi() {
$rep=$this->iDb->select('tabDevises', 'devInpi, devIso', 'devInpi>0', false, MYSQL_ASSOC);
$tabDevises=array();
foreach($rep as $k=>$dev)
$tabDevises[$dev['devInpi']*1]=$dev['devIso'];
return $tabDevises;
}
/** Récupération du code ISO de la devise numérique de l'Inpi
**
** @param integer $devise
** @return string Devise ISO
**/
public function getDeviseInpi($numDeviseInpi) {
if ($numDeviseInpi*1>0 && isset($this->tabDevises[$numDeviseInpi*1]))
return $this->tabDevises[$numDeviseInpi*1];
else
return '';
}
public function getTabJugements() {
$rep=$this->iDb->select('tabJugeRncs', 'codJugement, codEven', '1', false, MYSQL_ASSOC);
$tabJug=array();
foreach($rep as $k=>$dev)
$tabJug[$dev['codJugement']*1]=$dev['codEven'];
return $tabJug;
}
public function getCodeEvenJugementInpi($codJugementInpi) {
if ($codJugementInpi*1>0 && isset($this->tabJugements[$codJugementInpi*1]))
return $this->tabJugements[$codJugementInpi*1];
else
return $codJugementInpi;
}
/** Initialisation du tableau privé des pays Inpi <=> ISO **/
private function getTabPaysInpi() {
$rep=$this->iDb->select('tabPays', 'codePaysInpi, codPays', 'codePaysInpi>0', false, MYSQL_ASSOC);
$tabPays=array();
foreach($rep as $k=>$dev)
$tabPays[$dev['codePaysInpi']*1]=$dev['codPays'];
return $tabPays;
}
/** Tableau des mandataires suceptibles d'être tranmis par l'INPI
**/
private function getTabMandataires() {
$tabTmp=$this->iDb->select('tabMandataires', "UPPER(CONCAT(SUBSTRING(Nom,1,4),'-',SUBSTRING(Prenom,1,3))) AS NomPre, SUBSTRING(cp,1,2) AS dep, COUNT(*) AS Nb, sirenMand, id, sirenGrp, Nom, Prenom, type, coursAppel, tribunal, Statut, adresse, adresseComp, cp, ville, tel, fax, email, web, contact", "TYPE IN ('A', 'M') GROUP BY NomPre, dep, sirenMand ORDER BY NomPre ASC", true, MYSQL_ASSOC);
$tabMandSD=array();
foreach ($tabTmp as $mand) {
$tabMandSD[]=array( 'id' => $mand['id'],
'siren' => $mand['sirenMand'],
'nom' => $mand['Nom'],
'prenom'=> $mand['Prenom'],
'type' => $mand['type'],
'adr1' => $mand['adresse'],
'adr2' => $mand['adresseComp'],
'cp' => $mand['cp'],
'ville' => $mand['ville'],
'tel' => $mand['tel'],
'fax' => $mand['fax'],
'email' => $mand['email'],
);
}
return $tabMandSD;
}
/** Donne l'id du mandataire en fonction de son libellé INPI
** @param string $strNomPrenom Nom et Prénom du mandataire
** @return int $id Identifiant du mandataire
**/
public function getIdMandataireInpi($strNomPrenom) {
if (trim($strNomPrenom)=='') return false;
if (preg_match('/^(.*) (?:Me|Ma.tre) (.*)$/i', $strNomPrenom, $matches)) {
$nomPrenomToFind=strtr($matches[1],'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy.....");
$nomToFind=strtr($matches[2],'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy.....");
} else {
$nomPrenomToFind=strtr($strNomPrenom,'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy.....");
$nomToFind='';
}
$id=false;
//echo "Recherche de $nomPrenomToFind ($nomToFind) : ";
if ($strNomPrenom=='SCP BELAT DESPRAT') return 48;
if ($strNomPrenom=='DU BUIT') return 170;
if ($strNomPrenom=='SELARL MALMEZAT PRAT') return 312;
if ($strNomPrenom=='SELARL DUQUESNOY & ASSOCIES') return 176;
if ($strNomPrenom=='- SELARL DUQUESNOY & ASSOCIES') return 176;
if ($strNomPrenom=='SOUCHON ALAIN') return 412;
if ($strNomPrenom=='SELARL GRAVE WALLYN RANDOUX Me RANDOUX Guillaume') return 8621;
if ($strNomPrenom=='SCP SILVESTRI BAUJET') return 35;
if ($strNomPrenom=='ROGEAU') return 385;
if ($strNomPrenom=='SCP BIHR-LE CARRER') return 64;
if ($strNomPrenom=='- SCP BIHR-LE CARRER') return 64;
if ($strNomPrenom=='SCP GUYON DAVAL') return 144;
if ($strNomPrenom=='COURTOUX') return 134;
if ($strNomPrenom=='SCP B.T.S.G. ME GORRIAS') return 44;
if ($strNomPrenom=='MONTRAVERS') return 340;
if ($strNomPrenom=='SCP OUIZILLE DE KEATING Me DE KEATING') return 351;
if ($strNomPrenom=='DOUTRESSOULLE') return 169;
if ($strNomPrenom=='SCP LECLERC MASSELON') return 286;
if ($strNomPrenom=='AUSSEL Vincent') return 17;
if ($strNomPrenom=='SCP BROUARD DAUDE Me DAUDE Florence') return 95;
if ($strNomPrenom=='SELARL T.C.A') return 423;
//if ($strNomPrenom=='BEDNAWSKI CORNELIUS,MAXIME') return 0;
//if ($strNomPrenom=='LECA Pierre Alexandre') return 0;
if ($strNomPrenom=='SELAFA MJA Maître LELOUP THOMAS' ||
$strNomPrenom=='- SELAFA MJA ME LELOUP THOMAS') return 290;
if ($strNomPrenom=='SELAFA MJA Maître LEVY' ||
$strNomPrenom=='- SELAFA MJA Maître LEVY') return 297;
if ($strNomPrenom=='SELAFA MJA Maître FRECHOU' ||
$strNomPrenom=='- SELAFA MJA Maître FRECHOU') return 194;
if ($strNomPrenom=='SELAFA MJA Maître PIERREL' ||
$strNomPrenom=='- SELAFA MJA Maître PIERREL') return 368;
if ($strNomPrenom=='SELAFA MJA Maître PENET- WEILLER' ||
$strNomPrenom=='- SELAFA MJA ME PENET-WEILLER') return 357;
if ($strNomPrenom=='HUILLE PASCALE') return 244;
if ($strNomPrenom=='SCP B.T.S.G. ME BECHERET') return 42;
if ($strNomPrenom=='SELARL MB ASSOCIES ME CORRE') return 129;
if ($strNomPrenom=='PERNAUD PHILIPPE') return 361;
if ($strNomPrenom=='MARGOTTIN Eric') return 23;
if ($strNomPrenom=='MARGOTTIN Eric') return 23;
if ($strNomPrenom=='SCP GUERIN DIESBECQ ME DIESBEC') return 163;
if ($strNomPrenom=='SCP DOLLEY-COLLET') return 165;
if ($strNomPrenom=='SCP B.T.S.G. ME SENECHAL') return 45;
if ($strNomPrenom=='AVEZOU') return 20;
if ($strNomPrenom=='SOINNE') return 409;
/* if ($strNomPrenom=='SCP LE DORTZ B. ET BODELET G.') return 361;
if ($strNomPrenom=='SCP P. DURAN ET E. FLATRES') return 361;
if ($strNomPrenom=='CHABAL MAX-HENRI') return 361;
if ($strNomPrenom=='ROUSSELOT GEGOUE Marie Adeline') return 361;*/
foreach ($this->tabMandataires as $mand) {
$nomToTest=strtr($mand['nom'],'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy.....");
$tabTmp=preg_split('/( |-)/', $mand['prenom']);
$preToTest=strtr($tabTmp[0],'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy.....");
if (preg_match("/$nomToTest/i", $nomPrenomToFind)) {
//echo "$nomToTest $preToTest TROUVE".EOL;
// Cas des mandataires en SCP
if ($nomToFind<>'' && preg_match("/$nomToTest/i", $nomToFind) && preg_match("/$preToTest/i", $nomToFind)) {
//if (!$id)
$id=$mand['id'];
//else return false; // Afin de ne pas renvoyer d'id si plusieurs mandataires trouvés
}
elseif ($nomToFind<>'' && preg_match("/$nomToTest/i", $nomToFind)) {
//if (!$id)
$id=$mand['id'];
//else return false; // Afin de ne pas renvoyer d'id si plusieurs mandataires trouvés
}
elseif (!$nomToFind && preg_match("/$preToTest/i", $nomPrenomToFind)) {
//if (!$id)
$id=$mand['id'];
//else return false; // Afin de ne pas renvoyer d'id si plusieurs mandataires trouvés
}
} elseif (preg_match("/$nomToTest/i", $nomToFind) && preg_match("/$preToTest/i", $nomToFind)) {
//if (!$id)
$id=$mand['id'];
//else return false; // Afin de ne pas renvoyer d'id si plusieurs mandataires trouvés
}
}
return $id;
}
/** Récupération du code ISO du code pays numérique de l'Inpi
**
** @param integer $pays
** @return string Devise ISO
**/
public function getPaysInpi($numPays) {
if ($numPays*1>0)
return $this->tabPays[$numPays*1];
else
return '';
}
/** Initialisation du tableau privé des codes tribunaux Greffes/Inpi avec le libellé Bodacc **/
private function getTabTribunaux() {
$rep=$this->iDb->select('tribunaux', 'triNumGreffe, triNom, triId, triCode', 'triNumGreffe IS NOT NULL', false, MYSQL_ASSOC);
$tabTribunaux=array();
foreach($rep as $k=>$dev) {
$tabTribunaux[$dev['triNumGreffe']*1]['Id']=$dev['triId'];
$tabTribunaux[$dev['triNumGreffe']*1]['Nom']=$dev['triNom'];
$tabTribunaux[$dev['triNumGreffe']*1]['Code']=$dev['triCode'];
}
return $tabTribunaux;
}
private function getLibelleFJ($code_forme_juridique) {
$fj=$code_forme_juridique*1;
if ($fj>0 && $fj<10000) {
$tmp=$this->iDb->select( 'tabFJur', 'libelle AS LibFJ', "code=$fj");
return @$tmp[0][0];
} else
return 'En instance de chiffrement';
}
private function getLibelleNaf($codeNaf) {
$ret=$this->iDb->query("SELECT libNaf700 AS LibNaf FROM tabNaf4 WHERE codNaf700='$codeNaf' UNION
SELECT libNaf5 AS LibNaf FROM tabNaf5 WHERE codNaf5='$codeNaf'");
$res=$this->iDb->fetch(MYSQL_ASSOC);
return $res['LibNaf'];
}
/** Récupération du libellé du code numérique du tribunal Greffe ou Inpi
**
** @param integer $numTribunal
** @return string Nom du tribunal
**/
public function getLibTribunal($numTribunal) {
if ($numTribunal*1>0)
return $this->tabTribunaux[$numTribunal*1]['Nom'];
else
return '';
}
/** Récupération du code Bodacc du code numérique du tribunal Greffe ou Inpi
**
** @param integer $numTribunal
** @return string Code Bodacc du tribunal
**/
public function getCodeBodaccTribunal($numTribunal) {
if ($numTribunal*1>0)
return $this->tabTribunaux[$numTribunal*1]['Code'];
else
return '';
}
/** Récupération de l'identifiant S&D du code numérique du tribunal Greffe ou Inpi
**
** @param integer $numTribunal
** @return string Numéro interne de tribunal S&D
**/
public function getIdTribunal($numTribunal) {
if ($numTribunal*1>0)
return $this->tabTribunaux[$numTribunal*1]['Id'];
else
return '';
}
/** Retourne les informations de l'établissements demandé ou du siège actif ou dernier siège inactif
*
* @param integer $siren Siren de l'entreprise
* @param integer $nic Nic de l'établissement. Si absent, renvoi les informations du siège actif ou du dernier siège actif
* @return array
*/
public function getIdentiteEtab($siren, $nic=0) {
$siren=$siren*1;
$nic=$nic*1;
if ($nic>0) $strSql=" AND nic=$nic";
else $strSql=" AND siege=1 ORDER BY actif DESC, nic DESC";
$rep=$this->iDb->select('rncs_etab', 'siren, nic, siege, actif, enseigne, nomCommercial, adrNumVoie, adrIndRep, adrLibVoie, adrTypeVoie, adrVoie, cp, commune, adrComp, adresse1, adresse2, adresse3, naf, dateFermeture, flux, DATE(dateUpdate) AS jourUpdate', "siren=$siren $strSql", false, MYSQL_ASSOC);
$entrep=$rep[0];
if ($entrep['jourUpdate']<>'0000-00-00') $dateMaj=$entrep['jourUpdate'];
else $dateMaj=$entrep['flux'];
if (trim($entrep['adresse1'])=='') $adresse1=trim(preg_replace('/ +/',' ', $entrep['adrNumVoie'].' '.strtoupper($entrep['adrIndRep']).' '. strtoupper($entrep['adrLibVoie'])));
else $adresse1=trim(strtoupper($entrep['adresse1']));
if (trim($entrep['adresse2'])=='') $adresse2=trim(strtoupper($entrep['adrComp']));
else $adresse2=trim(strtoupper($entrep['adresse2']));
if (trim($entrep['adresse3'])=='') $adresse3='';
else $adresse3=trim(strtoupper($entrep['adresse3']));
$tabIdentite=array( 'siren' => $entrep['siren'],
'nic' => $entrep['nic'],
'siret' => $entrep['siren'].$entrep['nic'],
'actif' => $entrep['actif'],
'actifEt' => $entrep['actif'],
'siege' => $entrep['siege'],
'enseigne' => strtoupper($entrep['enseigne']),
'nomCommercial' => strtoupper($entrep['nomCommercial']),
'adrNumVoie' => $entrep['adrNumVoie'],
'adrIndRep' => strtoupper($entrep['adrIndRep']),
'adrTypeVoie' => strtoupper($entrep['adrTypeVoie']),
'adrVoie' => strtoupper($entrep['adrVoie']),
'adrComp' => strtoupper($entrep['adrComp']),
'cp' => strtoupper($entrep['cp']),
'commune' => strtoupper($entrep['commune']),
'adresse1' => $adresse1,
'adresse2' => $adresse2,
'adresse3' => $adresse3,
'nafEtab' => $entrep['naf'],
'nafEtabLib' => $this->getLibelleNaf($entrep['naf']),
'dateFerEtab' => $entrep['dateFermeture'],
'dateMajEtab' => $dateMaj,
);
return array_merge($tabIdentite, $this->getInfosEntrep($siren));
}
public function getInfosEntrep($siren) {
$siren=$siren*1;
$rep=$this->iDb->select('rncs_entrep', 'siren, sirenValide, actif, numGreffe, triCode, triId, numRC, numRC2, raisonSociale, nom, prenom, nomUsage, sigle, dateNaiss, lieuNaiss, sexe, nationalite, pays, naf, cj, capitalMontant, capitalDevise, capitalDevIso, dateImma, dateRad, capitalType, capitalCent, provisoires, flux, DATE(dateUpdate) AS jourUpdate', "siren=$siren", false, MYSQL_ASSOC);
$entrep=$rep[0];
if ($entrep['jourUpdate']<>'0000-00-00') $dateMaj=$entrep['jourUpdate'];
else $dateMaj=$entrep['flux'];
$tabIdentite=array( 'siren' => $entrep['siren'],
'sirenValide' => $entrep['sirenValide'],
'actif' => $entrep['actif'],
'actifEn' => $entrep['actif'],
'numGreffe' => $entrep['numGreffe'],
'triCode' => $entrep['triCode'],
'triId' => $entrep['triId'],
'libGreffe' => preg_replace('/^(TC |TGI |TGIcc |TMX |Tribunal Inconnu)/Ui','', $this->getLibTribunal($entrep['numGreffe']*1)),
'numRC' => $entrep['numRC2'],
'raisonSociale' => strtoupper($entrep['raisonSociale']),
'nom' => strtoupper($entrep['nom']),
'prenom' => strtoupper($entrep['prenom']),
'nomUsage' => strtoupper($entrep['nomUsage']),
'sigle' => strtoupper($entrep['sigle']),
'dateNaiss' => $entrep['dateNaiss'],
'lieuNaiss' => strtoupper($entrep['lieuNaiss']),
'sexe' => $entrep['sexe'],
'pays' => $entrep['pays'],
'cj' => $entrep['cj'],
'cjLib' => $this->getLibelleFJ($entrep['cj']),
'nafEnt' => $entrep['naf'],
'nafEntLib' => $this->getLibelleNaf($entrep['naf']),
'capital' => $entrep['capitalMontant']+($entrep['capitalCent']/100),
'capitalDev' => $entrep['capitalDevIso'],
'capitalType' => $entrep['capitalType'],
'dateImma' => $entrep['dateImma'],
'dateRad' => $entrep['dateRad'],
'provisoires' => $entrep['provisoires'],
'dateMajEnt' => $dateMaj,
);
return $tabIdentite;
}
/**
*
* @param string $siren
* @param string $dateDepot AAAA-MM-JJ
* @return array
*/
public function getListeDepots($siren, $dateDepot = null)
{
$where = "e.siren=$siren ORDER BY e.dateDepot DESC";
if (null != $dateDepot) {
$where = "e.siren=$siren AND e.dateDepot='$dateDepot'";
}
$rep=$this->iDb->select(
'rncs_even e LEFT JOIN tabEvenRncs l ON e.codeEven=l.codeEven',
'e.siren, e.codeInterne, e.dateDepot, e.codeEven, l.libEven, e.flux, DATE(e.dateInsert) AS dateInsert',
$where, false, MYSQL_ASSOC);
$tabDepots=array();
foreach ($rep as $iDepot=>$depot) {
$tabDepots[]=array(
'codDepot' => $depot['codeEven'],
'libDepot' => $depot['libEven'],
'datDepot' => $depot['dateDepot'],
'refDepot' => $depot['codeInterne'],
'datRncs' => $depot['flux'],
'datSed' => $depot['dateInsert'],
);
}
return $tabDepots;
}
public function getListeJugements($siren) {
$siren=$siren*1;
$rep=$this->iDb->select('rncs_jugements j, tabJugeRncs l, tabEvenements e',
'siren, j.dateEffet, j.codeJugement, j.flux, l.libJugement, e.codEven, e.libEven,
adm1id, adm1codeFct, adm1type, adm1nom, adm1adrNum, adm1adrInd, adm1adrType, adm1adrLibVoie, adm1adrVoie, adm1adr1, adm1adr2, adm1adr3, adm1adrCP, adm1adrVille,
adm2id, adm2codeFct, adm2type, adm2nom, adm2adrNum, adm2adrInd, adm2adrType, adm2adrLibVoie, adm2adrVoie, adm2adr1, adm2adr2, adm2adr3, adm2adrCP, adm2adrVille',
"j.siren=$siren AND j.codeJugement=l.codJugement AND l.codEven=e.codEven ORDER BY j.dateEffet DESC", false, MYSQL_ASSOC);
/*adm1adrNum adm1adrInd adm1adrType adm1adrLibVoie adm1adrVoie adm1adr1 adm1adr2 adm1adr3 adm1adrCP adm1adrVille adm2codeFct adm2type adm2id adm2nom adm2adrNum adm2adrInd adm2adrType adm2adrLibVoie adm2adrVoie adm2adr1 adm2adr2 adm2adr3 adm2adrCP adm2adrVille flux dateSuppr dateInsert
Modifier Effacer 490524055 2010-12-20 11 1 1200 4000 A 0 ME TULIER 0000 IMM LE MAZIERE 4EME ETAGE Immeuble le Mazière - 4ème étage rue René Cassin */
$tabDepots=array();
foreach ($rep as $iDepot=>$depot) {
$tabDepots[]=array( 'codEven' => $depot['codEven'],
'libEven' => $depot['libEven'],
'dateEffet' => $depot['dateEffet'],
'adm1id' => $depot['adm1id'],
'adm1code' => $depot['adm1codeFct'],
'adm1type' => $depot['adm1type'],
'adm1fonction' => @$this->getLibFctDir($depot['adm1codeFct']),
'adm1nom' => $depot['adm1nom'],
'adm1adrNum' => $depot['adm1adrNum'],
'adm1adrInd' => $depot['adm1adrInd'],
'adm1adrType' => $depot['adm1adrType'],
'adm1adrVoie' => $depot['adm1adrLibVoie'], // @todo : adm1adr1, , adm1adr3,
'adm1adr2' => $depot['adm1adr2'],
'adm1adrCP' => $depot['adm1adrCP'],
'adm1adrVille' => $depot['adm1adrVille'],
'adm2id' => $depot['adm2id'],
'adm2code' => $depot['adm2codeFct'],
'adm2type' => $depot['adm2type'],
'adm2fonction' => @$this->getLibFctDir($depot['adm2codeFct']),
'adm2nom' => $depot['adm2nom'],
'adm2adrNum' => $depot['adm2adrNum'],
'adm2adrInd' => $depot['adm2adrInd'],
'adm2adrType' => $depot['adm2adrType'],
'adm2adrVoie' => $depot['adm2adrLibVoie'], // @todo : adm1adr1, adm1adr2, adm1adr3,
'adm2adr2' => $depot['adm2adr2'],
'adm2adrCP' => $depot['adm2adrCP'],
'adm2adrVille' => $depot['adm2adrVille'],
);
}
return $tabDepots;
}
public function getEvenements($siren, $nic=0, $type='', $dateDeb='', $dateFin='') {
$tabEven=array( 'p120'=>'Réactivation de l\'entreprise',
'p410'=>'Cessation juridique de l\'entreprise',
'pCAP'=>'Modification du capital social',
'pCAT'=>'Modification du type de capital',
'pCJ' =>'Modification de la forme juridique',
'pIMM'=>'Modification de la date d\'immatriculation',
'pRAD'=>'Modification de la date de radiation',
'pNTR'=>'Modification du greffe d\'enregistrement',
'pNRC'=>'Modification du numéro du RC',
'pNOM'=>'Modification de la dénomination',
);
$tabRet=array();
$siren=$siren*1;
if ($nic>0) $strNic =" AND nic=$nic ";
if ($type<>'') $strType=" AND champs='$type' ";
if ($dateDeb<>'') $strDateDeb=" AND flux>='$dateDeb' ";
if ($dateFin<>'') $strDateFin=" AND flux<='$dateFin' ";
$rep=$this->iDb->select('rncs_modifs',
'siren, nic, `table`, champs, valeur, flux, dateInsert',
"siren=$siren $strNic $strType $strDateDeb $strDateFin AND `table`='rncs_entrep' ORDER BY flux DESC", false, MYSQL_ASSOC);
foreach ($rep as $iModif=>$modif) {
$codEve=array();
switch($modif['champs']) {
case 'actif':
if ($modif['valeur']*1==0) $codEve[]='410'; // Cessation
elseif ($modif['valeur']*1==1) $codEve[]='120'; // Réactivation
break;
case 'raisonSociale': $codEve[]='NOM'; break;
case 'capitalMontant': $codEve[]='CAP'; break;
case 'capitalType': $codEve[]='CAT'; break;
case 'cj': $codEve[]='CJ'; break;
case 'dateImma': $codEve[]='IMM'; break;
case 'dateRad': $codEve[]='RAD'; break;
case 'numGreffe': $codEve[]='NTR'; break;
case 'numRC2': $codEve[]='NRC'; break;
}
foreach ($codEve as $even)
$tabRet[]=array('codeEven' => 'P'.$even,
'nic' => 0,
'siretAssocie'=>0,
'typeSiretAss'=>0,
'siege' => 1,
'libEven' => $tabEven['p'.trim($even)],
'libEvenDet'=> '',
'dateMAJ' => $modif['dateInsert'],
'dateEven' => $modif['flux'],
);
}
}
public function getIntervenants($siren) {
$tabJuge=$this->getListeJugements($siren);
$tabDepots=$tabDeja=array();
$tabAdm=array( 'A'=>'Administrateur judiciaire',
'C'=>'Commissaire au plan',
'D'=>'Commissaire au concordat',
'H'=>'Huissier',
'J'=>'Juge Commissaire',
'K'=>'Juge Commissaire suppléant',
'L'=>'Liquidateur',
'M'=>'Mandataire judiciaire',
'N'=>'Notaire',
'O'=>'Opposition',
'R'=>'Représentant des créanciers',
'S'=>'Syndic',
'T'=>'Conciliateur',
'U'=>'Curateur',
'V'=>'Avocat',
);
foreach ($tabJuge as $iDepot=>$depot) {
if ($depot['adm1code']>0 && !in_array($depot['adm1code'], $tabDeja)) {
$tabDepots[]=array( 'codEven' => $depot['codEven'],
'libEven' => $depot['libEven'],
'dateEffet' => $depot['dateEffet'],
'admid' => $depot['adm1id'],
'admcode' => $depot['adm1code'],
'admtype' => $depot['adm1type'],
'admfonction' => $depot['adm1fonction'],
'admnom' => $depot['adm1nom'],
'admadrNum' => $depot['adm1adrNum'],
'admadrInd' => $depot['adm1adrInd'],
'admadrType' => $depot['adm1adrType'],
'admadrVoie' => $depot['adm1adrVoie'], // @todo : adm1adr1, adm1adr2, adm1adr3,
'admadr2' => $depot['adm1adr2'],
'admadrCP' => $depot['adm1adrCP'],
'admadrVille' => $depot['adm1adrVille'],
);
$tabDeja[]=$depot['adm1code'];
}
if ($depot['adm2code']>0 && !in_array($depot['adm2code'], $tabDeja)) {
$tabDepots[]=array( 'codEven' => $depot['codEven'],
'libEven' => $depot['libEven'],
'dateEffet' => $depot['dateEffet'],
'admid' => $depot['adm2id'],
'admcode' => $depot['adm2code'],
'admtype' => $depot['adm2type'],
'admfonction' => $depot['adm2fonction'],
'admnom' => $depot['adm2nom'],
'admadrNum' => $depot['adm2adrNum'],
'admadrInd' => $depot['adm2adrInd'],
'admadrType' => $depot['adm2adrType'],
'admadrVoie' => $depot['adm2adrVoie'], // @todo : adm1adr1, adm1adr2, adm1adr3,
'admadr2' => $depot['adm2adr2'],
'admadrCP' => $depot['adm2adrCP'],
'admadrVille' => $depot['adm2adrVille'],
);
$tabDeja[]=$depot['adm2code'];
}
}
if (count($tabDepots)>0) {
$strTypes="IN ('J','K','H','V','N')";
$forceRecherche=false;
$strDates="AND ABS(DATEDIFF(dateJugement, '".$depot['dateEffet']."'))<60 ";
} else {
$strTypes="<>''";
$forceRecherche=true;
$strDates='';
}
$tabTmp=$this->iDb->select('annonces', 'id, siren, typeEven, dateJugement, dateCessationPaiement, inter1type, inter1id, inter1nom, inter2type, inter2id, inter2nom, inter3type, inter3id, inter3nom, inter4type, inter4id, inter4nom,
dateSource, dateInsert, source, tribunal, raisonSociale',"siren=$siren $strDates AND ( inter1type $strTypes OR inter2type $strTypes OR inter3type $strTypes OR inter4type $strTypes ) AND typeEven BETWEEN 1000 AND 2000 ORDER BY dateJugement DESC", false, MYSQL_ASSOC);
if (isset($tabTmp[0])) {
$depot=$tabTmp[0];
$tabRet['dateCessationPaiement']=$depot['dateCessationPaiement'];
for($i=1; $i<4; $i++) {
if ( ($forceRecherche && !in_array($tabTmp['inter'.$i.'type'], $tabDeja)) ||
( $tabTmp['inter'.$i.'type']=='J' || $tabTmp['inter'.$i.'type']=='K' ||
$tabTmp['inter'.$i.'type']=='H' || $tabTmp['inter'.$i.'type']=='V' ||
$tabTmp['inter'.$i.'type']=='N') ) {
$tabDepots[]=array( 'codEven' => $depot['typeEven'],
'libEven' => $depot['typeEven'],
'dateEffet' => $depot['dateJugement'],
'admid' => $depot['inter'.$i.'id'],
'admcode' => $depot['inter'.$i.'id'],
'admtype' => $depot['inter'.$i.'type'],
'admfonction' => $tabAdm[$depot['inter'.$i.'type']],
'admnom' => $depot['inter'.$i.'nom'],
'admadrNum' => '',
'admadrInd' => '',
'admadrType' => '',
'admadrVoie' => '',
'admadr2' => '',
'admadrCP' => '',
'admadrVille' => '',
);
$tabDeja[]=$tabTmp['inter'.$i.'type'];
}
}
}
return $tabDepots;
}
/** Mettre à jour un dossier IMR dans le prochain Flux
* @param $siren Siren de l'entreprise à mettre à jour dans les IMR
* @param $origineDemande Origine de la demande ('client', 'interne', 'privileges', 'ancienort')
* @param $focerMAJ Forcer la mise à jour même si dossier déjà transmit
*/
public function majDossierIMR($siren, $origineDemande='', $focerMAJ=false) {
$this->infoIMR=array();
if ($siren*1==0) {
$this->libErreur='Siren invalide !';
return false;
}
$query_timeout=5;
$query_proxy='221.130.13.39';
$query_proxy='61.35.191.250:8080';
$query_proxy='198.7.242.41:3128';
$query_proxy='';
if (INFOGREFFE_DISPO_WEB) {
/** Accueil **/
$url='http://www.infogreffe.fr/ged-extranet/accueil.do';
while (1) {
//echo date('YmdHis')." - 1. Deb $url ".$this->codeRetour.EOL;
$page=getUrl($url, '', '', $this->referer, false, 'www.infogreffe.fr', false, '', $query_proxy, $query_timeout);
$this->codeRetour=$page['code'];
//echo date('YmdHis')." - 1. FIN $url ".$this->codeRetour.EOL;
if ($this->codeRetour<>'400') break;
sleep(1);
}
$this->body=$page['body'];
if ($this->codeRetour<>'200') {
print_r($page);
$this->libErreur='Erreur Infogreffe 200a !';
return false;
}
$this->cookie=$page['header']['Set-Cookie'];
$this->referer=$url;
sleep(1);
/** Formulaire de login **/
$url='http://www.infogreffe.fr/ged-extranet/connexion.do';
while (1) {
//echo date('YmdHis')." - 2. Deb $url ".$this->codeRetour.EOL;
$page=getUrl($url, '', '', $this->referer, false, 'www.infogreffe.fr', false, '', $query_proxy, $query_timeout);
//echo date('YmdHis')." - 2. FIN $url ".$this->codeRetour.EOL;
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'400') break;
sleep(1);
}
$this->body=$page['body'];
if ($this->codeRetour<>'200') {
print_r($page);
$this->libErreur='Erreur Infogreffe 200b !';
return false;
}
$this->referer=$url;
sleep(1);
/** Etape de logon **/
$url='http://www.infogreffe.fr/ged-extranet/login.do';
$postData=array('codeClient'=>'0034',
'codeAbonne'=>'0002',
'password'=>'369852',
);
while (1) {
//echo date('YmdHis')." - 3. Deb $url ".$this->codeRetour.EOL;
$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', $query_proxy, $query_timeout);
$this->codeRetour=$page['code'];
//echo date('YmdHis')." - 3. FIN $url ".$this->codeRetour.EOL;
if ($this->codeRetour<>'400') break;
sleep(1);
}
$this->body=$page['body'];
if ($this->codeRetour<>'200') {
print_r($page);
$this->libErreur='Erreur Infogreffe 200c !';
return false;
}
if (!preg_match('/Bienvenue SCORES ET DECISIONS/', $this->body)) {
$this->libErreur='Erreur Infogreffe Extranet : Connexion incorrecte !';
return false;
}
$this->referer=$url;
sleep(1);
/** Page de formulaire de demande de réémission de dossier IMR **/
$url='http://www.infogreffe.fr/ged-extranet/demandeReemissions.do';
while (1) {
//echo date('YmdHis')." - 4. Deb $url ".$this->codeRetour.EOL;
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', $query_proxy, $query_timeout);
$this->codeRetour=$page['code'];
//echo date('YmdHis')." - 4. FIN $url ".$this->codeRetour.EOL;
if ($this->codeRetour<>'400') break;
sleep(1);
}
$this->body=$page['body'];
if ($this->codeRetour<>'200') {
print_r($page);
$this->libErreur='Erreur Infogreffe 200d !';
return false;
}
$this->referer=$url;
sleep(1);
/** Saisie du siren à contrôler dans le formulaire AJAX adéquat **/
$url='http://www.infogreffe.fr/ged-extranet/rechercheReemissions.do';
$postData=array('siren'=>$siren);
//$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', '', 5);
while (1) {
//echo date('YmdHis')." - 5. Deb $url ".$this->codeRetour.EOL;
$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', $query_proxy, $query_timeout);
$this->codeRetour=$page['code'];
//echo date('YmdHis')." - 5. FIN $url ".$this->codeRetour.EOL;
if ($this->codeRetour<>'400') break;
sleep(1);
}
$this->body=$page['body'];
if ($this->codeRetour<>'200') {
print_r($page);
$this->libErreur='Erreur Infogreffe 200e !';
return false;
}
$this->referer=$url;
// Le retour AJAX est il positif ?
if (preg_match('/<div class="message-erreur">(.*)<\/div>/Uis', $this->body, $matches))
$this->infoIMR['message-erreur']=trim(preg_replace('/ +/',' ',strip_tags($matches[1])));
if (preg_match('/<div class="titreEntreprise">(?:.*)<b>(.*)<\/b>(?:.*)<\/div>/Uis', $this->body, $matches))
$this->infoIMR['titreEntreprise']=trim(preg_replace('/ +/',' ',strip_tags($matches[1])));
if (preg_match('/<div id="adresse">(.*)<\/div>/Uis', $this->body, $matches))
$this->infoIMR['adresse']=trim(preg_replace('/ +/',' ',strip_tags($matches[1])));
if (preg_match('/<div class="struct-erreur">(?:.*)<b>(.*)<\/b>(?:.*)<\/div>/Uis', $this->body, $matches))
$this->infoIMR['struct-erreur']=trim(preg_replace('/ +/',' ',strtr(strip_tags($matches[1]),"\r\n\t".chr(160),' ')));
if (preg_match('/Cliquez sur le bouton VALIDER pour confirmer votre demande de/', $this->body, $matches))
$this->infoIMR['validation']=true;
else {
$this->infoIMR['validation']=false;
if (preg_match('/Aucune entreprise trouv.e pour ce num.ro SIREN/', $this->body)) {
$tabInsert=$this->infoIMR;
$tabInsert['siren']=$siren;
$tabInsert['dateDemande']=date('Ymd');
if ($origineDemande<>'')
$tabInsert['origineDemande']=$origineDemande;
$this->iDb->insert('rncs_demandes', $tabInsert, false);
}
}
if (preg_match('/atteint le nombre maximal de(.*)Veuillez renouveler votre demande demain/',
$this->infoIMR['message-erreur']))
return false;
if ($this->infoIMR['validation'] && $this->infoIMR['message-erreur']=='') {
/** Doit on forcer la maj si l'entreprise a été transmise récemment ? **/
if ($this->infoIMR['struct-erreur']<>'' && !$focerMAJ)
return true;
sleep(1);
/** Validation du siren à réémettre en IMR **/
$url='http://www.infogreffe.fr/ged-extranet/validerDemandeReemission.do';
$postData=array('numIdentification'=>$siren);
//$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', '', 5);
while (1) {
//echo date('YmdHis')." - 6. Deb $url ".$this->codeRetour.EOL;
$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', $query_proxy, $query_timeout);
$this->codeRetour=$page['code'];
//echo date('YmdHis')." - 6. FIN $url ".$this->codeRetour.EOL;
if ($this->codeRetour<>'400') break;
sleep(1);
}
$this->body=$page['body'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'200') {
$this->libErreur='Erreur Infogreffe 200f !';
return false;
}
$this->referer=$url;
// Lecture du retour
if (preg_match('/<div class="message-erreur">(.*)<\/div>/Uis', $this->body, $matches))
$this->infoIMR['validation-erreur']=trim(preg_replace('/ +/',' ',strip_tags($matches[1])));
if (preg_match('/<b class="texte-bleu">(.*)<\/b>/Uis', $this->body, $matches))
$this->infoIMR['validation-ok']=trim(preg_replace('/ +/',' ',strip_tags($matches[1])));
$tabInsert=$this->infoIMR;
$tabInsert['siren']=$siren;
$tabInsert['dateDemande']=date('Ymd');
if ($origineDemande<>'')
$tabInsert['origineDemande']=$origineDemande;
$this->iDb->insert('rncs_demandes', $tabInsert, false);
// Une erreur ?
if ($this->infoIMR['validation-erreur']<>'')
return false;
return true;
}
} else
$this->libErreur='Infogreffe indisponible !';
return false;
}
}
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,922 +0,0 @@
<?
global $tabOrt2Sd;
$tabOrt2Sd=array( '_130000001'=>'SIREN',
'_103000040'=>'CONSOLIDE',
'_103000033'=>'DATE_CLOTURE',
'_103000023'=>'DUREE_MOIS',
'_103000202'=>'MONNAIE_ORI',
'_103000205'=>'MONNAIE_ORI_UNITE',
'_103000211'=>'MONNAIE',
'_103000214'=>'MONNAIE_LIV_UNITE',
'_103000029'=>'AVIS_CAC',
'_130000009'=>'CODE_NAF',
'_103101001'=>'AA',
'_103101002'=>'AB',
'_103101003'=>'AC',
'_103101004'=>'AC1',
'_103101005'=>'AD',
'_103101006'=>'AE',
'_103101007'=>'AE1',
'_103101008'=>'AF',
'_103101009'=>'AG',
'_103101010'=>'AG1',
'_103101011'=>'AH',
'_103101012'=>'AI',
'_103101013'=>'AI1',
'_103101014'=>'AJ',
'_103101015'=>'AK',
'_103101016'=>'AK1',
'_103101017'=>'AL',
'_103101018'=>'AM',
'_103101019'=>'AM1',
'_103101020'=>'AN',
'_103101021'=>'AO',
'_103101022'=>'AO1',
'_103101023'=>'AP',
'_103101024'=>'AQ',
'_103101025'=>'AQ1',
'_103101026'=>'AR',
'_103101027'=>'AS',
'_103101028'=>'AS1',
'_103101029'=>'AT',
'_103101030'=>'AU',
'_103101031'=>'AU1',
'_103101032'=>'AV',
'_103101033'=>'AW',
'_103101034'=>'AW1',
'_103101035'=>'AX',
'_103101036'=>'AY',
'_103101037'=>'AY1',
'_103101038'=>'CS',
'_103101039'=>'CT',
'_103101040'=>'CT1',
'_103101041'=>'CU',
'_103101042'=>'CV',
'_103101043'=>'CV1',
'_103101044'=>'BB',
'_103101045'=>'BC',
'_103101046'=>'BC1',
'_103101047'=>'BD',
'_103101048'=>'BE',
'_103101049'=>'BE1',
'_103101050'=>'BF',
'_103101051'=>'BG',
'_103101052'=>'BG1',
'_103101053'=>'BH',
'_103101054'=>'BI',
'_103101055'=>'BI1',
'_103101056'=>'BJ',
'_103101057'=>'BK',
'_103101058'=>'BK1',
'_103101059'=>'BL',
'_103101060'=>'BM',
'_103101061'=>'BM1',
'_103101062'=>'BN',
'_103101063'=>'BO',
'_103101064'=>'BO1',
'_103101065'=>'BP',
'_103101066'=>'BQ',
'_103101067'=>'BQ1',
'_103101068'=>'BR',
'_103101069'=>'BS',
'_103101070'=>'BS1',
'_103101071'=>'BT',
'_103101072'=>'BU',
'_103101073'=>'BU1',
'_103101074'=>'BV',
'_103101075'=>'BW',
'_103101076'=>'BW1',
'_103101077'=>'BX',
'_103101078'=>'BY',
'_103101079'=>'BY1',
'_103101080'=>'BZ',
'_103101081'=>'CA',
'_103101082'=>'CA1',
'_103101083'=>'CB',
'_103101084'=>'CC',
'_103101085'=>'CC1',
'_103101086'=>'CD',
'_103101087'=>'CE',
'_103101088'=>'CE1',
'_103101089'=>'CF',
'_103101090'=>'CG',
'_103101091'=>'CG1',
'_103101092'=>'CH',
'_103101093'=>'CI',
'_103101094'=>'CI1',
'_103101095'=>'CJ',
'_103101096'=>'CK',
'_103101097'=>'CK1',
'_103101098'=>'CL',
'_103101099'=>'CM',
'_103101100'=>'CN',
'_103101101'=>'CO',
'_103101102'=>'1A',
'_103101103'=>'1A1',
'_103101104'=>'CP',
'_103101105'=>'CR',
'_103102001'=>'DA',
'_103102002'=>'DB',
'_103102003'=>'EK',
'_103102004'=>'DC',
'_103102005'=>'DD',
'_103102006'=>'DE',
'_103102007'=>'DF',
'_103102008'=>'DG',
'_103102009'=>'DH',
'_103102010'=>'DI',
'_103102011'=>'DJ',
'_103102012'=>'DK',
'_103102013'=>'DL',
'_103102014'=>'DM',
'_103102015'=>'DN',
'_103102016'=>'DO',
'_103102017'=>'DP',
'_103102018'=>'DQ',
'_103102019'=>'DR',
'_103102020'=>'DS',
'_103102021'=>'DT',
'_103102022'=>'DU',
'_103102023'=>'DV',
'_103102024'=>'DW',
'_103102025'=>'DX',
'_103102026'=>'DY',
'_103102027'=>'DZ',
'_103102028'=>'EA',
'_103102029'=>'EB',
'_103102030'=>'EC',
'_103102031'=>'ED',
'_103102032'=>'EE',
'_103102033'=>'EF',
'_103102034'=>'EG',
'_103102035'=>'EH',
'_103102036'=>'EI',
'_103103001'=>'FA',
'_103103002'=>'FB',
'_103103003'=>'FC',
'_103103004'=>'FD',
'_103103005'=>'FE',
'_103103006'=>'FF',
'_103103007'=>'FG',
'_103103008'=>'FH',
'_103103009'=>'FI',
'_103103010'=>'FJ',
'_103103011'=>'FK',
'_103103012'=>'FL',
'_103103013'=>'FM',
'_103103014'=>'FN',
'_103103015'=>'FO',
'_103103016'=>'FP',
'_103103017'=>'FQ',
'_103103018'=>'FR',
'_103103019'=>'FS',
'_103103020'=>'FT',
'_103103021'=>'FU',
'_103103022'=>'FV',
'_103103023'=>'FW',
'_103103024'=>'FX',
'_103103025'=>'FY',
'_103103026'=>'FZ',
'_103103027'=>'GA',
'_103103028'=>'GB',
'_103103029'=>'GC',
'_103103030'=>'GD',
'_103103031'=>'GE',
'_103103032'=>'GF',
'_103103033'=>'GG',
'_103103034'=>'GH',
'_103103035'=>'GI',
'_103103036'=>'GJ',
'_103103037'=>'GK',
'_103103038'=>'GL',
'_103103039'=>'GM',
'_103103040'=>'GN',
'_103103041'=>'GO',
'_103103042'=>'GP',
'_103103043'=>'GQ',
'_103103044'=>'GR',
'_103103045'=>'GS',
'_103103046'=>'GT',
'_103103047'=>'GU',
'_103103048'=>'GV',
'_103103049'=>'GW',
'_103103050'=>'HA',
'_103103051'=>'HB',
'_103103052'=>'HC',
'_103103053'=>'HD',
'_103103054'=>'HE',
'_103103055'=>'HF',
'_103103056'=>'HG',
'_103103057'=>'HH',
'_103103058'=>'HI',
'_103103059'=>'HJ',
'_103103060'=>'HK',
'_103103061'=>'HL',
'_103103062'=>'HM',
'_103103063'=>'HN',
'_103103064'=>'HP',
'_103103065'=>'HQ',
'_103104077'=>'A1',
'_103104078'=>'A2',
'_103104079'=>'A3',
'_103104080'=>'A4',
'_103104001'=>'KF',
'_103104002'=>'LP',
'_103104003'=>'0J',
'_103104004'=>'MY',
'_103104005'=>'NC',
'_103104006'=>'2E',
'_103104007'=>'0K',
'_103104008'=>'PD',
'_103104009'=>'PH',
'_103104010'=>'QX',
'_103104011'=>'ON',
'_103104012'=>'OP',
'_103104013'=>'OQ',
'_103104014'=>'OR',
'_103104015'=>'SM',
'_103104016'=>'SP',
'_103104017'=>'5R',
'_103104018'=>'5S',
'_103104019'=>'5T',
'_103104020'=>'5U',
'_103104021'=>'7B',
'_103104022'=>'TY',
'_103104023'=>'TZ',
'_103104024'=>'UA',
'_103104025'=>'UF',
'_103104026'=>'UH',
'_103104027'=>'UK',
'_103104028'=>'UM',
'_103104029'=>'UR',
'_103104030'=>'UV',
'_103104031'=>'VA',
'_103104032'=>'UY',
'_103104033'=>'UZ',
'_103104034'=>'VB',
'_103104035'=>'VN',
'_103104036'=>'VT',
'_103104037'=>'VU',
'_103104038'=>'VV',
'_103104039'=>'7Y1',
'_103104040'=>'7Z1',
'_103104041'=>'VG',
'_103104042'=>'VG1',
'_103104043'=>'VH',
'_103104044'=>'VH1',
'_103104045'=>'8A1',
'_103104046'=>'8B1',
'_103104047'=>'8C',
'_103104048'=>'8C1',
'_103104049'=>'8D',
'_103104050'=>'8D1',
'_103104051'=>'8E1',
'_103104052'=>'VW',
'_103104053'=>'VW1',
'_103104054'=>'VX',
'_103104055'=>'VX1',
'_103104056'=>'VQ',
'_103104057'=>'VQ1',
'_103104058'=>'8J1',
'_103104059'=>'VI',
'_103104060'=>'VI1',
'_103104061'=>'8K1',
'_103104062'=>'SZ1',
'_103104063'=>'8L1',
'_103104064'=>'VY',
'_103104065'=>'VZ',
'_103104066'=>'VZ1',
'_103104067'=>'VZ2',
'_103104068'=>'YQ',
'_103104069'=>'YR',
'_103104070'=>'YS',
'_103104071'=>'YT',
'_103104072'=>'YU',
'_103104073'=>'YV',
'_103104074'=>'YY',
'_103104075'=>'YZ',
'_103104076'=>'YP',
'_103104081'=>'CZ',
'_103104082'=>'KB',
'_103104083'=>'KC',
'_103104084'=>'KD',
'_103104085'=>'KE',
'_103104086'=>'LN',
'_103104087'=>'LO',
'_103104088'=>'LQ',
'_103104089'=>'LR',
'_103104090'=>'LS',
'_103104091'=>'0G',
'_103104092'=>'0H',
'_103104093'=>'NL',
'_103104094'=>'LT',
'_103104095'=>'LU',
'_103104096'=>'NO',
'_103104097'=>'LV',
'_103104098'=>'LW',
'_103104099'=>'NN',
'_103104100'=>'NG',
'_103104101'=>'NH',
'_103104102'=>'NM',
'_103104103'=>'NJ',
'_103104104'=>'NK',
'_103104105'=>'NP',
'_103104106'=>'0L',
'_103104107'=>'PA',
'_103104108'=>'PB',
'_103104109'=>'PC',
'_103104110'=>'PE',
'_103104111'=>'PF',
'_103104112'=>'PG',
'_103104113'=>'QU',
'_103104114'=>'QV',
'_103104115'=>'QW',
'_103104116'=>'Z91',
'_103104117'=>'Z92',
'_103104118'=>'SN',
'_103104119'=>'SP_1',
'_103104120'=>'SP_2',
'_103104121'=>'SR',
'_103104122'=>'TO',
'_103104123'=>'3Z',
'_103104124'=>'TS',
'_103104125'=>'TT',
'_103104126'=>'TU',
'_103104127'=>'4D',
'_103104128'=>'4H',
'_103104129'=>'4M',
'_103104130'=>'4S',
'_103104131'=>'4W',
'_103104132'=>'5A',
'_103104133'=>'5E',
'_103104134'=>'5K',
'_103104135'=>'5P',
'_103104136'=>'5Y',
'_103104137'=>'5Z',
'_103104138'=>'TV',
'_103104139'=>'TW',
'_103104140'=>'TX',
'_103104141'=>'6A',
'_103104142'=>'6B',
'_103104143'=>'6C',
'_103104144'=>'6D',
'_103104145'=>'6E',
'_103104146'=>'6F',
'_103104147'=>'6G',
'_103104148'=>'6H',
'_103104149'=>'02',
'_103104150'=>'03',
'_103104151'=>'04',
'_103104152'=>'05',
'_103104153'=>'06',
'_103104154'=>'07',
'_103104155'=>'08',
'_103104156'=>'09',
'_103104157'=>'6N',
'_103104158'=>'6P',
'_103104159'=>'6R',
'_103104160'=>'6S',
'_103104161'=>'6T',
'_103104162'=>'6U',
'_103104163'=>'6V',
'_103104164'=>'6W',
'_103104165'=>'6X',
'_103104166'=>'6Y',
'_103104167'=>'6Z',
'_103104168'=>'7A',
'_103104169'=>'7C',
'_103104170'=>'UB',
'_103104171'=>'UC',
'_103104172'=>'UD',
'_103104173'=>'UE',
'_103104174'=>'UG',
'_103104175'=>'UJ',
'_103104176'=>'UL',
'_103104177'=>'UP',
'_103104178'=>'UT',
'_103104179'=>'UX',
'_103104180'=>'UQ',
'_103104181'=>'UU',
'_103104182'=>'VM',
'_103104183'=>'VP',
'_103104184'=>'VC',
'_103104185'=>'VR',
'_103104186'=>'VS',
'_103104187'=>'7Y',
'_103104188'=>'7Y2',
'_103104189'=>'7Z',
'_103104190'=>'7Z2',
'_103104191'=>'VG2',
'_103104192'=>'VH2',
'_103104193'=>'8A',
'_103104194'=>'8A2',
'_103104195'=>'8B',
'_103104196'=>'8B2',
'_103104197'=>'8C2',
'_103104198'=>'8D2',
'_103104199'=>'8E',
'_103104200'=>'8E2',
'_103104201'=>'VW2',
'_103104202'=>'VX2',
'_103104203'=>'VQ2',
'_103104204'=>'8J',
'_103104205'=>'8J2',
'_103104206'=>'8J3',
'_103104207'=>'VI2',
'_103104208'=>'VI3',
'_103104209'=>'8K',
'_103104210'=>'8K2',
'_103104211'=>'SZ',
'_103104212'=>'SZ2',
'_103104213'=>'8L',
'_103104214'=>'8L2',
'_103104215'=>'VJ',
'_103104216'=>'VK',
'_103104217'=>'ZE',
'_103104218'=>'XQ',
'_103104219'=>'SS',
'_103104220'=>'ST',
'_103104221'=>'ZJ',
'_103104222'=>'YW',
'_103104223'=>'9Z',
'_103104224'=>'YX',
'_103104225'=>'9X',
'_103102037'=>'B1',
'_103102038'=>'EJ',
);
require_once 'framework/common/curl.php';
define('RNCS_WS_URL', 'http://www.services.ort.fr/ProtocoleRNCS/access');
define('RNCS_WS_USER', '167260');
define('RNCS_WS_PASS', '100356');
class MRncsFlux {
public $body = '';
public $header = '';
public $codeRetour = 0;
public $errMsgInpi='';
public $errNumInpi='';
public $cookie='';
public $iDb;
public $tabVitrine=array();
public $tabErreurInpi=array(0=>"Aucune erreur",
10=>"Erreur de protocole avec système distant",
11=>"Système distant inaccessible",
101=>"Type de requête invalide",
102=>"Code d'erreur appelant invalide",
103=>"Identification non reconnue",
107=>"Date invalide",
108=>"Heure invalide",
110=>"Code produit inconnu",
115=>"Numéro de champ invalide",
116=>"Longueur de champ invalide",
121=>"Code de protocole invalide",
122=>"Code base de données invalide",
900=>"Erreur applicative",
990100=>"+ de 50 entreprises trouvées",
990101=>"Recherche complexe",
990102=>"Critères saisis insuffisants",
990103=>"Requête trop imprécise",
990104=>"Dénomination non significative",
990105=>"Critère commune non générall",
990106=>"Critère voie trop général",
990107=>"Commune obligatoire avec rue",
990108=>"Commune non identifiée",
990109=>"Entreprise non identifiée",
990110=>"Erreur système",
990111=>"Devise incorrecte",
990112=>"Autre erreur",
990113=>"Donnée incorrecte",
990114=>"Valeur incohérente",
990115=>"Surveillance impossible",
990116=>"Entreprise non surveillée",
990117=>"Entreprise déjà surveillée",
990118=>"Produit indisponible",
990119=>"Erreur base de données",
990120=>"Erreur facturation",
);
function __construct() {
$this->iDb=new WDB();
}
function getVitrine($siren) {
$this->tabVitrine=$this->query($siren, array('Type'=>'QVIT'));
return $this->tabVitrine;
}
/*
$cmdPages=$cmdNom='';
if (isset($_REQUEST['pages'])) $cmdPages=$_REQUEST['pages'];
if (isset($_REQUEST['nom'])) $cmdNom=$_REQUEST['nom'];
if (isset($_REQUEST['vue'])) $vue=$_REQUEST['vue'];
if ($vue=='bilans') $presta='12004';
else $presta='12003';
if ($cmdNom && $cmdPages) $type='QDOC';
else $type='QVIT';
$prod=array('Type'=>$type,
'Presta'=>$presta,
'Num'=>'2',//2,
'Ver'=>'2',//2,
'Siren'=>$siren,
'CmdNom'=>$cmdNom,
'CmdPages'=>$cmdPages,
'CmdBilan'=>'',
);
$ref='';
*/
public function query($siren, $prod=array()) {
/*$prod=array('Type'=>$type,
'Presta'=>$presta,
'Siren'=>$siren,
'CmdNom'=>$cmdNom,
'CmdPages'=>$cmdPages,
'CmdBilan'=>'',
'Ref'=>'',
);
*/
$option='';
if ( ($prod['Type']=='QDOC' || $prod['Presta']==12004 || $prod['Presta']==12003) && !isset($prod['Num'])) {
$prod['Num']=2;
$prod['Ver']=2;
} elseif (!isset($prod['Num'])) {
$prod['Num']=1;
$prod['Ver']=3;
}
$req= '<?xml version="1.0" ?>'. "\n".
'<ort:message xmlns:ort="http://www.ort.fr/NEWPORT/V2">'. "\n".
' <ort:_1 type="110">'. "\n".
' <ort:_7 type="010">NPORT</ort:_7>'. "\n".
' <ort:_8 type="010">2</ort:_8>'. "\n". // Version du protocole
' <ort:_9 type="010">1</ort:_9>'. "\n". // Version du dictionnaire
' <ort:_10 type="010">1</ort:_10>'. "\n". // Code protocole/version application
' <ort:_11 type="010">PROTORNCS</ort:_11>'. "\n".
' <ort:_12 type="010">'.$prod['Type'].'</ort:_12>'. "\n". // Prestation souhaitée QVIT / QDOC
' <ort:_13 type="010">0</ort:_13>'. "\n". // Code retour/erreur
' <ort:_14 type="010">'.RNCS_WS_USER.RNCS_WS_PASS.'</ort:_14>'."\n". // User Password concaténés
' <ort:_15 type="010">'.$prod['Ref'].'</ort:_15>'. "\n". // Réf.
' <ort:_16 type="010">'.date('Ymd').'</ort:_16>'. "\n". // Date SSAAMMJJ
' <ort:_17 type="010">'.date('His').'</ort:_17>'. "\n". // Heure HHMMSS
' <ort:_19 type="010">ORT</ort:_19>'. "\n".
' </ort:_1>'. "\n".
' <ort:_2 type="110">'. "\n".
' <ort:_1 type="110">'. "\n".
' <ort:_26 type="010">'.$prod['Prod'].'</ort:_26>'. "\n". // Type de produit (vide pour QVIT)
' <ort:_27 type="010">'.$prod['Num'].'</ort:_27>'. "\n". // Numéro de produit souhaité 1 2
' <ort:_28 type="010">'.$prod['Ver'].'</ort:_28>'. "\n". // Version du produit 3 2
' <ort:_31 type="010">'.$prod['Presta'].'</ort:_31>'. "\n". // Code prestation (vide pour QVIT)
' </ort:_1>'. "\n";
if ($prod['Presta']==12004 || $prod['Presta']==12003) {
$req.='
<ort:_2 type="110">
<ort:_100 type="111">
<ort:_101 type="110">
<ort:_120000031 type="010">'.$prod['Presta'].'</ort:_120000031>
<ort:_100700010 type="010">FTP</ort:_100700010>
<ort:_100701000 type="010">NTIF</ort:_100701000>
<ort:_120000015 type="010" />
</ort:_101>
</ort:_100>
<ort:_200 type="111">
<ort:_210 type="110">
<ort:_130000001 type="010">'.$siren.'</ort:_130000001>
<ort:_103000402 type="010">'.$prod['CmdNom'].'</ort:_103000402>
<ort:_103000403 type="010">'.$prod['CmdPages'].'</ort:_103000403>
<ort:_190000025 type="010">'.$prod['CmdBilan'].'</ort:_190000025>
</ort:_210>
</ort:_200>
</ort:_2>'; //
$option=$prod['CmdNom'].'-'.$prod['CmdPages'].'-'.$prod['CmdBilan'];
} elseif ($prod['Type']=='QINF') {
$req.=' <ort:_2 type="110">'."\n".'<ort:_130000001 type="010">'.$siren.'</ort:_130000001>';
if ($prod['Presta']=='2000' || $prod['Presta']=='2001' || $prod['Presta']=='2002' || $prod['Presta']=='2003') {
// Liste années bilans
$req.='<ort:_190000025 type="010">'.$prod['Millesime'].'</ort:_190000025>'."\n";
$option=$prod['Millesime'];
}
elseif ($prod['Presta']=='12001')
// Flag limitation du nombre d’établissement
$req.='<ort:_109105002 type="010">N</ort:_109105002>'."\n";
$req.='</ort:_2>';
} else {
$req.=' <ort:_2 type="110">
<ort:_130000001 type="010">'.$siren.'</ort:_130000001>
<ort:_120000031 type="010">'.$prod['Presta'].'</ort:_120000031>
</ort:_2>';// 12003 Actes et statuts 12004 Bilans
}
$req.=' </ort:_2>
</ort:message>';
echo $req.'<hr/>';
$postData=array(''=>$req);
$cookie=$referer='';
$enCache=false;
$params=md5(serialize($prod));
//die($params);
/*if ($prod['CmdNom']<>'' || $prod['CmdPages']<>'' || $prod['CmdBilan']<>'' || $prod['Millesime']<>'')
$strOption=*/
//AND params='$params'
$res=$this->iDb->select('rncs_requetes', 'dateRequete, strXml, codeErreur, libErreur', "siren=$siren AND params='$params' ORDER BY dateRequete DESC");
//type='".$prod['Type']."' AND presta ='".$prod['Presta']."' $strOption ORDER BY dateRequete DESC");
if (count($res)>0) {
$tabRes=$res[0];
$dateReq=$tabRes['dateRequete'];
$this->body=$tabRes['strXml'];
$this->errNumInpi=$tabRes['codeErreur'];
$this->errMsgInpi=$tabRes['libErreur'];
$enCache=true;
echo 'Une requête dans le cache <br/>';
//die();
} else {
echo 'Pas de requête dans le cache <br/>';
//die();
$page=getUrl(RNCS_WS_URL, $cookie, $postData, $referer, false, 'www.services.ort.fr');
$this->body=$page['body'];
/**
** ERREUR PROTOCOL
**/
preg_match('/<ort:_13 type="020">(.*)<\/ort:_13>/Uis',$this->body, $matches);
if ($matches[1]*1<>0) {
$this->errNumInpi=$matches[1];
$this->errMsgInpi=$tabErreurInpi[$this->errNumInpi];
//echo "<!-- ERREUR INPI 13 n°$errNumInpi = $errMsgInpi !!! -->\n";
}
/**
** ERREUR APPLICATIVES NUMERIQUES
**/
preg_match('/<ort:_96 type="020">(.*)<\/ort:_96>/Uis',$this->body, $matches);
if ($matches[1]*1<>0) {
$this->errNumInpi=$matches[1];
$this->errMsgInpi=$tabErreurInpi[$this->errNumInpi];
//echo "<!-- ERREUR INPI 96 n°$errNumInpi = $errMsgInpi !!! -->\n";
}
/**
** ERREUR APPLICATIVES TEXTE
**/
preg_match('/<ort:_97 type="010">(.*)<\/ort:_97>/Uis',$this->body, $matches);
if ($matches[1]*1<>0) {
$this->errMsgInpi=$matches[1];
//echo "<!-- ERREUR INPI 97 : $errMsgInpi !!! -->\n";
}
$tabInsert=array( 'siren' => $siren,
'dateRequete' => date('YmdHis'),
'strXml' => $this->body,
'params' => md5(serialize($prod)),
'type' => $prod['Type'],
'presta' => $prod['Presta'],
'option' => $option,
'codeErreur' => $this->errNumInpi,
'libErreur' => $this->errMsgInpi,
);
$this->iDb->insert('rncs_requetes', $tabInsert, true);
}
if ($prod['Presta']==12004)
// bilans image
$pregmatch=preg_match_all('/<ort\:_201 type="110">(?:.*)<ort\:_103000040 type="010">(.*)<\/ort:_103000040>(?:.*)<ort\:_103000452 type="010">(.*)<\/ort:_103000452>(?:.*)<ort\:_103000402 type="010">(.*)<\/ort:_103000402>(?:.*)<ort\:_103000403 type="010">(.*)<\/ort:_103000403>(?:.*)<ort\:_103000404 type="010">(.*)<\/ort:_103000404>(?:.*)<\/ort:_201>/Uis',$this->body, $matches);
elseif ($prod['Presta']==12003)
// actes image
$pregmatch=preg_match_all('/<ort\:_201 type="110">(?:.*)<ort\:_103000452 type="010">(.*)<\/ort:_103000452>(?:.*)<ort\:_103000402 type="010">(.*)<\/ort:_103000402>(?:.*)<ort\:_103000403 type="010">(.*)<\/ort:_103000403>(?:.*)<ort\:_103000404 type="010">(.*)<\/ort:_103000404>(?:.*)<\/ort:_201>/Uis',$this->body, $matches);
elseif ($prod['Presta']==2000)
// bilan simplifiés ou normaux saisi
$pregmatch=preg_match('/<ort\:_2 type="110">(?:.*)<ort\:_2 type="110">(.*)<\/ort\:_2>(?:.*)<\/ort\:_2>/Uis',$this->body, $matches);
elseif ($prod['Presta']==12001)
// Fiche Identite
$pregmatch=preg_match('/<ort\:_2 type="110">(?:.*)<ort\:_2 type="110">(.*)<\/ort\:_2>(?:.*)<\/ort\:_2>/Uis',$this->body, $matches);
else {
// Prestation Vitrine
$tabVitrine=array();
// Bilans dispos
$tabBilans=array();
// Type de Bilans saisis disponible
for ($typeBilan=2000; $typeBilan<2004; $typeBilan++) {
$pregmatch=preg_match('/<ort:_'.$typeBilan.' type="110">(?:.*)<ort\:_120000026 type="010">(.*)<\/ort\:_120000026>(?:.*)<ort\:_120000027 type="010">(.*)<\/ort\:_120000027>(?:.*)<ort\:_120000028 type="010">(.*)<\/ort\:_120000028>(?:.*)<ort\:_120000029 type="010">(.*)<\/ort:_120000029>(?:.*)<ort\:_120000031 type="010">(.*)<\/ort\:_120000031>(?:.*)<ort\:_109104002 type="010">(.*)<\/ort\:_109104002>(?:.*)<ort\:_109104003 type="010">(.*)<\/ort\:_109104003>(.*)<\/ort:_'.$typeBilan.'>/Uis',$this->body, $matches);
$numProduit=$matches[1]; // 52
$numProduit=$matches[2]; // 52
$verProduit=$matches[3]; // 1
$libProduit=$matches[4]; // Comptes sociaux
$typProduit=$matches[5]; // 2000 : Bilans sociaux
// 2001 : Bilans consolidés (70)
// 2002 : Bilans de banques (71)
// 2003 : Bilans d'assurances (72)
$synProduit=$matches[6]; // 109104002 : Disponibilité synchrone
$asyProduit=$matches[7]; // 109104003 : Disponibilité asynchrone
$pregmatch=preg_match_all('/<ort\:_103000038 type="010">(.*)<\/ort:_103000038>/Uis',$matches[8], $matches);
if ($typeBilan==2000) $tabBilans['N']=$matches[1]; // Réel normal SC
elseif ($typeBilan==2001) $tabBilans['C']=$matches[1]; // Consolidé CC
elseif ($typeBilan==2002) $tabBilans['B']=$matches[1]; // Banque SB
elseif ($typeBilan==2003) $tabBilans['A']=$matches[1]; // Assurance SA
else $tabBilans['S']=$matches[1]; // Réel Simplifié SS
}
$tabVitrine['bilans']=$tabBilans;
// Fiche d'identité
$pregmatch=preg_match('/<ort:_12001 type="110">(?:.*)<ort\:_120000027 type="010">(.*)<\/ort\:_120000027>(?:.*)<ort\:_120000028 type="010">(.*)<\/ort\:_120000028>(?:.*)<ort\:_120000029 type="010">(.*)<\/ort:_120000029>(?:.*)<ort\:_120000031 type="010">(.*)<\/ort\:_120000031>(?:.*)<ort\:_109104002 type="010">(.*)<\/ort\:_109104002>(?:.*)<ort\:_109104003 type="010">(.*)<\/ort\:_109104003>(?:.*)<ort\:_130000401 type="010">(.*)<\/ort\:_130000401>(?:.*)<\/ort:_12001>/Uis',$this->body, $matches);
$numProduit=$matches[1]; // 52
$verProduit=$matches[2]; // 1
$libProduit=$matches[3]; // Comptes sociaux
$typProduit=$matches[4]; // 2000 : Bilans sociaux
$synProduit=$matches[5]; // 109104002 : Disponibilité synchrone
$asyProduit=$matches[6]; // 109104003 : Disponibilité asynchrone
$nbEtab=$matches[7]; // Nombre d'établissements recensés
$tabVitrine['identite']=array( 'numProduit'=>$numProduit,
'verProduit'=>$verProduit,
'libProduit'=>$libProduit,
'typProduit'=>$typProduit,
'synProduit'=>$synProduit,
'asyProduit'=>$asyProduit,
'nbEtab' =>$nbEtab);
return $tabVitrine;
}
echo $this->body;
//print_r($tabBilans);
return $matches;
}
function getListeBilans($siren, $type='*') {
$tabVitrine=$this->getVitrine($siren);
foreach ($tabVitrine['bilans'] as $type => $tabMillesime) {
foreach ($tabMillesime as $num=>$millesime) {
$delta1=round((Wdate::dateT('d/m/Y','Y',$millesime)-Wdate::dateT('d/m/Y','Y',$tabMillesime[$num+1]))*12)
+round(Wdate::dateT('d/m/Y','m',$millesime)-Wdate::dateT('d/m/Y','m',$tabMillesime[$num+1]));
if ($delta1>23) $delta1=0;
$delta2=round((Wdate::dateT('d/m/Y','Y',$tabMillesime[$num+1])-Wdate::dateT('d/m/Y','Y',$tabMillesime[$num+2]))*12)
+round(Wdate::dateT('d/m/Y','m',$tabMillesime[$num+1])-Wdate::dateT('d/m/Y','m',$tabMillesime[$num+2]));
if ($delta2>23) $delta2=0;
$tabRet[$type.$millesime]=array( 'dateProvPartenaire'=>date('Ymd'),
'dureeExercice' =>$delta1,
'dateExercicePre' =>Wdate::dateT('d/m/Y','Ymd',$tabMillesime[$num+1]),
'dureeExercicePre' =>$delta2,
'monnaie' =>'EUR',
'source' =>100,
'ref' =>'',
);
}
}
return $tabRet;
}
function getBilan($siren, $millesime, $type='N') {
global $tabOrt2Sd;
$tabRet=$tabPostes=array();
if ($type=='N') $presta=2000;
elseif ($type=='C') $presta=2001;
elseif ($type=='B') $presta=2002;
elseif ($type=='A') $presta=2003;
$prod=array( 'Prod'=>'RNCS',
'Num'=>'52',
'Ver'=>'1',
'Presta'=>$presta,
'Millesime'=>Wdate::dateT('d/m/Y','mY',$millesime),
'Type'=>'QINF');
$ret=$this->query($siren, $prod);
/* $fp=fopen(LOG_PATH.'/debugBilansRncs.log','a');
fwrite($fp, print_r($ret,true));
fclose($fp);*/
$pregmatch=preg_match_all('/<ort\:_(.*) type="010">(.*)<\/ort\:_(.*)>/Uis', $ret[1], $matches);
foreach ($matches[1] as $i=>$poste) {
//echo "$i : $poste<br/>";
if ('_'.$poste=='_103000040') { // CONSOLIDE
switch ($matches[2][$i]) {
case 'SC': $tabRet[$tabOrt2Sd['_'.$poste]]='N'; break;
case 'CC': $tabRet[$tabOrt2Sd['_'.$poste]]='C'; break;
case 'SB': $tabRet[$tabOrt2Sd['_'.$poste]]='B'; break;
case 'SA': $tabRet[$tabOrt2Sd['_'.$poste]]='A'; break;
case 'SS': $tabRet[$tabOrt2Sd['_'.$poste]]='S'; break;
default: break;
}
} elseif ('_'.$poste=='_103000214') { // MONNAIE_LIV_UNITE
switch ($matches[2][$i]*1) {
case 0: $tabRet[$tabOrt2Sd['_'.$poste]]=''; break;
case 3: $tabRet[$tabOrt2Sd['_'.$poste]]='k'; break;
case 6: $tabRet[$tabOrt2Sd['_'.$poste]]='m'; break;
default: break;
}
} elseif ('_'.$poste=='_130000001' || // SIREN
'_'.$poste=='_103000033' || // DATE_CLOTURE
'_'.$poste=='_103000023' || // DUREE_MOIS
'_'.$poste=='_103000202' || // MONNAIE_ORI
'_'.$poste=='_103000205' || // MONNAIE_ORI_UNITE
'_'.$poste=='_103000211' || // MONNAIE
'_'.$poste=='_103000029' || // AVIS_CAC
'_'.$poste=='_130000009') { // CODE_NAF
$tabRet[$tabOrt2Sd['_'.$poste]]=$matches[2][$i];
} else
$tabPostes[$tabOrt2Sd['_'.$poste]]=$matches[2][$i];
}
$tabRet['POSTES']=$tabPostes;
$tabRet['DATE_FRAICHE_BILAN']=date('Ymd');
$tabRet['TYPE_BILAN']=$tabRet['CONSOLIDE'];
//$tabRet['DATE_CLOTURE_PRE']
//$tabRet['DUREE_MOIS_PRE']
$fp=fopen(LOG_PATH.'/debugBilansRncs.log','a');
fwrite($fp, print_r($tabRet,true));
fclose($fp);
return $tabRet;
}
function getIdentite($siren) {
$tabVitrine=$this->getVitrine($siren);
$fp=fopen(LOG_PATH.'/debugVitrineRncs.log','a');
fwrite($fp, print_r($tabVitrine,true));
fclose($fp);
$prod=array( 'Prod'=>'RNCS',
'Num'=>$tabVitrine['identite']['numProduit'],
'Ver'=>$tabVitrine['identite']['verProduit'],
'Presta'=>12001,
'Type'=>'QINF');
$ret=$this->query($siren, $prod);
if ($this->errNumInpi>0 && $this->errMsgInpi<>'') {
return false;
} else {
$pregmatch=preg_match_all('/<ort\:_((?:1300|13011|13016|130100403).*) type="010">(.*)<\/ort\:_((?:1300|13011|13016|130100403).*)>/Uis', $ret[1], $matchesIden);
foreach ($matchesIden[1] as $i=>$rubrique) {
if ($rubrique==130000300) $tabIdentite['Nom']=$matchesIden[2][$i];
elseif ($rubrique==130000008) $tabIdentite['FJ']=$matchesIden[2][$i];
elseif ($rubrique==130000303) $tabIdentite['Sigle']=$matchesIden[2][$i];
elseif ($rubrique==130100015) $tabIdentite['Enseigne']=$matchesIden[2][$i];
elseif ($rubrique==130000500) $tabIdentite['CapitalMont']=$matchesIden[2][$i];
elseif ($rubrique==130000501) $tabIdentite['CapitalType']=$matchesIden[2][$i];
elseif ($rubrique==130000508) $tabIdentite['CapitalDev']=$matchesIden[2][$i];
elseif ($rubrique==130000509) $tabIdentite['CapitalUnite']=$matchesIden[2][$i];
elseif ($rubrique==130000513) $tabIdentite['CapitalMontCts']=$matchesIden[2][$i];
elseif ($rubrique==130000102) $tabIdentite['DateCrea']=$matchesIden[2][$i];
elseif ($rubrique==130001002) $tabIdentite['DateImma']=$matchesIden[2][$i];
elseif ($rubrique==130000013) $tabIdentite['CodeGreffe']=$matchesIden[2][$i];
elseif ($rubrique==130000014) $tabIdentite['NumRC']=$matchesIden[2][$i];
elseif ($rubrique==130001102) $tabIdentite['DateRad']=$matchesIden[2][$i];
elseif ($rubrique==130000025) $tabIdentite['Provisoire']=$matchesIden[2][$i];
elseif ($rubrique==130000401) $tabIdentite['NbEtab']=$matchesIden[2][$i];
}
/** DIRIGEANTS **/
$tabDir=array();
if (preg_match('/<ort\:_130300015 type="010">(.*)<\/ort:_130300015>(?:.*)<ort:_200 type="111">(.*)<\/ort\:_200>/Uis', $ret[1], $matchesDirs)) {
$nbDirs=$matchesDirs[1];
$strDir=$matchesDirs[2];
$strMatch= '<ort\:_210 type="110">(?:.*)'.
'<ort\:_130300005 type="010">(.*)<\/ort\:_130300005>(?:.*)'.
'<ort\:_130301003 type="010">(.*)<\/ort\:_130301003>(?:.*)'.
'<ort\:_130300016 type="010">(.*)<\/ort\:_130300016>(?:.*)'.
'<ort\:_130301006 type="010">(.*)<\/ort\:_130301006>(?:.*)'.
'<ort\:_130301007 type="010">(.*)<\/ort\:_130301007>(?:.*)'.
'<ort\:_130301009 type="010">(.*)<\/ort\:_130301009>(?:.*)'.
'<ort\:_130301004 type="010">(.*)<\/ort\:_130301004>(?:.*)'.
'<ort\:_130301008 type="010">(.*)<\/ort\:_130301008>(?:.*)'.
'<ort\:_130301012 type="010">(.*)<\/ort\:_130301012>(?:.*)'.
'<ort\:_130301100 type="010">(.*)<\/ort\:_130301100>(?:.*)'.
'<ort\:_130301102 type="010">(.*)<\/ort\:_130301102>(?:.*)'.
'<ort\:_130302002 type="010">(.*)<\/ort\:_130302002>(?:.*)'.
'<ort\:_130302003 type="010">(.*)<\/ort\:_130302003>(?:.*)'.
'<ort\:_130302004 type="010">(.*)<\/ort\:_130302004>(?:.*)<\/ort\:_210>';
$pregmatch=preg_match_all("/$strMatches/Uis", $strDir, $matchesDirs);
foreach ($matchesDirs[1] as $i=>$dir) {
$tabDir[$i]=array( 'Fonc'=>$dir[1],
'Sexe'=>$dir[2],
'Nom'=>$dir[3],
'Prenom'=>$dir[4],
'Prenom2'=>$dir[5],
'NomJF'=>$dir[6],
'NaissDept'=>$dir[7],
'NaissLieu'=>$dir[8],
'NaissNati'=>$dir[9],
'NaissDate'=>$dir[10],
'ReprNom'=>$dir[11],
'ReprPrenom'=>$dir[12],
'ReprPrenom2'=>$dir[13],
);
}
}
$fp=fopen(LOG_PATH.'/debugIdentiteRncs.log','a');
fwrite($fp, print_r($matchesIden,true).EOL.print_r($matchesEtab,true).EOL.print_r($matchesDirs,true));
fclose($fp);
return $tabIdentite;
}
}
}
?>

View File

@ -1,244 +0,0 @@
<?php
ini_set('soap.wsdl_cache_enabled', 0);
class AmaSoapClient extends SoapClient {
function __doRequest($request, $location, $action, $version) {
/* $request = strtr($request, array('<ns1:'=>'<ama:',
'</ns1:'=>'</ama:',
// '<param0 xsi:type="xsd:string">'=>'',
'xmlns:ns1="http://www.amabis.com/ama.xsd"'=>'xmlns:ama="http://www.amabis.com/ama.xsd"',
// '</param0>'=>'',
// '&lt;'=>'<',
// '&gt;'=>'>',
)
);*/
return parent::__doRequest($request, $location, $action, $version);
}
}
class classMSigVille {
private $client;
private $url='http://sig.ville.gouv.fr/recherche-adresses-zus-zfu-quartiers-des-cucs';
private $referer='';
private $codeRetour;
private $page;
private $body;
private $cookie='';
private $timeout=5;
private $duree=false;
function __construct() {
if ($this->cookie=='') {
$tdeb=microtime(1);
$this->page=getUrl($this->url, $this->cookie, '', $this->referer, false, 'sig.ville.gouv.fr', '', $this->timeout);
$this->duree=round(microtime(1)-$tdeb,3);
$this->referer=$this->url;
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
$this->cookie=$this->header['Cookie'];
if ($this->codeRetour<>200) return false;
}
}
function getZonage($adrNum, $adrIndRep, $adrTypeVoie, $adrLibVoie, $cp, $ville='', $codeRivoli='', $rnvp=false, $raisonSociale='TEST', $debug=false) {
if ($this->cookie<>'') {
$tdeb=microtime(1);
$post=array('insee_com'=>'01053',
'code_postal'=>'01000',
'nom_commune'=>'Bourg-en-Bresse',
'num_adresse'=>'8',
'id_voie'=>28,
'nom_voie'=>'RUE+DES+BLANCHISSERIES',
'x'=>33,
'y'=>19,
);
$this->page=getUrl($this->url, $this->cookie, $post, $this->referer, false, 'sig.ville.gouv.fr', '', $this->timeout);
$this->duree=round(microtime(1)-$tdeb,3);
$this->referer=$this->url;
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
$this->cookie=$this->header['Cookie'];
if ($this->codeRetour<>200) return false;
}
$tabRep=array();
if (!$rnvp) {
if ($cp<10000) $cp='0'.$cp;
$dep2=substr($cp,0,2)*1;
$dep3=substr($cp,0,3)*1;
switch ($dep2) {
case 0:
case 5:
case 9:
case 15:
case 19:
case 23:
case 32:
case 46:
case 48:
case 82:
case 97: // DOM
case 98: // TOM
case 99: // Etranger
return $tabRep;
break;
default:
//if ($dep3==975) return $tabRep;
break;
}
}
$iDb=new WDB();
$adresse=addslashes(trim(preg_replace('/ +/',' ', "$adrNum $adrIndRep $adrTypeVoie $adrLibVoie")));
$ville=addslashes($ville);
$ret=$iDb->select( 'zonage', 'zus, zru, zfu, cucs', "address='$adresse' AND adr_cp='$cp' AND adr_ville='$ville'",false, MYSQL_ASSOC);
if (count($ret)>0) {
$zones=$ret[0];
$tabRep['ZUS']=$tabRep['ZFU']=$tabRep['ZRU']=$tabRep['CUCS']='NON';
if (trim($zones['zus'])<>'') {
if (trim($zones['zus'])=='NSP') $tabRep['ZUS']='NSP';
else $tabRep['ZUS']='OUI';
$tabRep['NZUS']=$zones['zus'];
}
if (trim($zones['zru'])<>'') {
if (trim($zones['zru'])=='NSP') $tabRep['ZRU']='NSP';
else $tabRep['ZRU']='OUI';
$tabRep['NZRU']=$zones['zru'];
}
if (trim($zones['zfu'])<>'') {
if (trim($zones['zfu'])=='NSP') $tabRep['ZFU']='NSP';
else $tabRep['ZFU']='OUI';
$tabRep['NZFU']=$zones['zfu'];
}
if (trim($zones['cucs'])<>'') {
if (trim($zones['cucs'])=='NSP') $tabRep['CUCS']='NSP';
else $tabRep['CUCS']='OUI';
$tabRep['NCUCS']=$zones['cucs'];
}
//return $tabRep;
} else {
try {
if (trim($raisonSociale)=='') $raisonSociale='TEST'; // Le RNVP ne fonctionne pas sans la Raison Sociale qui est la 1ère ligne d'adresse
$rep=$this->client->zonage( new SoapParam(strtr("$raisonSociale:$adresse:$cp:$ville",
'¿°ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ??',
' aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr'),'adresse'),
new SoapParam(':','separateur'),
new SoapParam('type=M','options')
);
/*$rep=$this->client->zonage( "<adresse></adresse>".
"<separateur>:</separateur>".
"<options>type=M</options>");*/
/** Découpage des ZFU, CUCS etcs...
**/
$fp=fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s').' - '.implode("\n", $rep)."\n============================================================================\n");
fclose($fp);
$tabZones=explode(',',$rep['zonage']); // ZUS=OUI,NZUS=1127020,ZFU=OUI,NZFU=11270ZF,CUCS=OUI,NCUCS=1127020
foreach ($tabZones as $zone) {
$tabTmp=explode('=',$zone);
if (trim($tabTmp[0])<>'')
$tabRep[$tabTmp[0]]=$tabTmp[1];
}
if ($tabRep['ZUS']=='NSP') $tabRep['NZUS']='NSP';
if ($tabRep['ZRU']=='NSP') $tabRep['NZRU']='NSP';
if ($tabRep['ZFU']=='NSP') $tabRep['NZFU']='NSP';
if ($tabRep['CUCS']=='NSP') $tabRep['NCUCS']='NSP';
$adresse=stripslashes(trim(preg_replace('/ +/',' ', "$adrNum $adrIndRep $adrTypeVoie $adrLibVoie")));
$ville=stripslashes($ville);
$tabInsert=array( 'address'=>$adresse,
'adr_cp'=>$cp,
'adr_ville'=>$ville,
'zus'=>$tabRep['NZUS'],
'zru'=>$tabRep['NZRU'],
'zfu'=>$tabRep['NZFU'],
'cucs'=>$tabRep['NCUCS'],
'adrNum'=>$adrNum,
'adrIndRep'=>$adrIndRep,
'adrTypeVoie'=>$adrTypeVoie,
'adrLibVoie'=>$adrLibVoie,
'rivoli'=>$codeRivoli,
);
$iDb->insert('zonage', $tabInsert);
/** Autres Informations de la RNVP
**/
if ($rnvp || $debug) {
$tabRepTmp=array();
$tabZones=explode(',',$rep['objdesc']);
foreach ($tabZones as $zone) {
$tabTmp=explode('=',$zone);
if (trim($tabTmp[0])<>'')
$tabRepTmp[$tabTmp[0]]=$tabTmp[1];
}
if (!$debug) {
$tabRep['ADR1']=@$tabRepTmp['ADR1'];
$tabRep['ADR2']=@$tabRepTmp['ADR2'];
$tabRep['ADR3']=@$tabRepTmp['ADR3'];
$tabRep['ADR4']=@$tabRepTmp['ADR4'];
$tabRep['ADR5']=@$tabRepTmp['ADR5'];
$tabRep['ADR6']=@$tabRepTmp['ADR6'];
$tabRep['ADR7']=@$tabRepTmp['ADR7'];
} else {
$tabRep=array_merge($tabRep, $tabRepTmp);
}
}
} catch (SoapFault $fault) {
echo 'ERREUR SOAP :'.EOL;
print_r($fault);
echo $this->client->__getLastRequest()."\n";
echo $this->client->__getLastResponse()."\n";
$fp=fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s').' - ERREUR SOAP : Requete = '.$this->client->__getLastRequest()."\n Reponse = ".$this->client->__getLastResponse()."\n============================================================================\n");
fclose($fp);
}
//return $tabRep;
}
$codeInsee=substr($codeRivoli,0,5);
$ret=$iDb->select( 'zonageInsee', 'typeZone, arreteDate, decretDate, decretNum, decretModifieDate, decretModifieNum, dateDebut, dateFin', "codeInsee='$codeInsee'",false, MYSQL_ASSOC);
$tabRep['ZRR']=$tabRep['AFR']='NON';
foreach ($ret as $zones)
switch ($zones['typeZone']) {
case 'ZRR': $tabRep['ZRR']='OUI'; $tabRep['NZRR']=$codeInsee; break;
case 'ZAFR': $tabRep['AFR']='OUI'; $tabRep['NAFR']=$codeInsee; break;
default: break;
}
return $tabRep;
}
function searchByTelFax($tel) {
return $this->getTelFax('','','','',$tel);
}
function getTelFax($nom, $cp, $ville='', $prenom='', $tel='') {
if (trim($tel)<>'')
$query="<telep>$tel</telep><scoremini>10</scoremini><distinction>30</distinction>";
elseif (trim($prenom)=='')
$query="<rs>$nom</rs><cpville>$cp $ville</cpville><scoremini>90</scoremini><distinction>30</distinction>";
else
$query="<nom>$nom</nom><prenom>$prenom</prenom><cpville>$cp $ville</cpville><scoremini>90</scoremini><distinction>30</distinction>";
$rep=$this->client->rechtel($query);
$fp=fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s')." - $query - ".implode("\n", $rep)."\n============================================================================\n");
fwrite($fp, "Requête : ".$this->client->__getLastRequest()."\n");
fwrite($fp, "Réponse : ".$this->client->__getLastResponse()."\n");
fclose($fp);
}
}
?>

View File

@ -1,280 +0,0 @@
<?
class MTel {
public $body = '';
public $header = '';
public $codeRetour = 0;
public $cookie='';
public $urlBase='http://www.pagespro.com/recherche.php';
public $url='';
public $referer='';
public $enCache=false;
private $accesDistant=false;
public $iDb;
public function __construct($accesDistant=false) {
$this->accesDistant=$accesDistant;
$this->accesDistant=false; // Accès bloqué par "pagespro"
if ($this->accesDistant) {
$this->url=$this->urlBase;
$page=getUrl($this->url,$this->cookie,'',$this->referer, false, '', '', 3);
$this->referer=$this->url;
$this->cookie=$page['header']['Set-Cookie'];
$this->body=$page['body'];
$this->codeRetour=$page['code'];
}
$this->iDb=new WDB('jo');
}
/**
* @todo :
* 1. Faire une fonction qui récupère les Logos
* 2. Envoyer les logos par le WS
* 3. Permettre la recherche par Tel
*/
public function getTel($siret, $nic=0) {
$tabRet=array();
if (strlen($siret)>9) {
$nic=substr($siret,-5)*1;
$siren=round($siret/100000)*1;
} else
$siren=$siret*1;
if (strlen($siren)<=9) {
/** Si le siren est de taille < à 9, on ajoute des 0 significatifs **/
switch (strlen($siren)) {
case 1: $siren='00000000'.$siren; break;
case 2: $siren='0000000'.$siren; break;
case 3: $siren='000000'.$siren; break;
case 4: $siren='00000'.$siren; break;
case 5: $siren='0000'.$siren; break;
case 6: $siren='000'.$siren; break;
case 7: $siren='00'.$siren; break;
case 8: $siren='0'.$siren; break;
}
}
if (strlen($nic)>0) {
switch (strlen($nic)) {
case 1: $nic='0000'.$nic; break;
case 2: $nic='000'.$nic; break;
case 3: $nic='00'.$nic; break;
case 4: $nic='0'.$nic; break;
}
}
$strNic='';
if ($nic*1>0) $strNic="AND (nic=$nic OR nic=0)";
$ret=$this->iDb->select('telephonie',
'siren,nic,dateProvPartenaire,typeTel,infoTel,telephone,actif,partenaire,dateInsert',
"siren=$siren $strNic", false, MYSQL_ASSOC);
if (count($ret)>0) {
$this->enCache=true;
foreach ($ret as $tabTel) {
if ($tabTel['typeTel']=='an8' && $tabTel['infoTel']*1>0) {
$an8=$tabTel['infoTel']*1;
$retTmp=$this->iDb->select('tabAn8', 'libAn8', "codAn8='$an8'", false, MYSQL_ASSOC);
$infoTel=ucfirst(strtolower($retTmp[0]['libAn8']));
} else
$infoTel=$tabTel['infoTel'];
$tabRet[]=array('siren'=>$siren,
'nic'=>$tabTel['nic'],
'typeTel'=>$tabTel['typeTel'],
'infoTel'=>$infoTel,
'telephone'=>$tabTel['telephone'],
'actif'=>$tabTel['actif'],
);
}
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMTel::getTel($siret,$nic)", print_r($tabRet,true));
} elseif ($this->accesDistant) {
$this->enCache=false;
$tabPost=array( 'p_ACTION'=>'',
'p_ORDRE'=>'AfficheRes',
'a_PAGE'=>'1',
'a_TAG'=>'',
'a_OccRecherche'=>'',
'typeRecherche'=>'express',
'satellite'=>'siret',
'a_activ'=>'',
'a_rai_soc'=>'',
'a_naf'=>'',
'a_siren'=>$siret,
'a_tel'=>'',
'a_geo'=>'',
'typeTri'=>'',
'ordreTri'=>'',
'a_session'=>'',
);
//$page=getUrl($this->url,$this->cookie,'',$this->referer, false, '', '', 3);
$page=getUrl($this->url,$this->cookie,$tabPost,$this->referer,false,'','',3);
$this->referer=$this->url;
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$nbResults=0;
if (preg_match('/<b class="total_responses_nr">(.*)réponses<\/b>/Uis', $this->body, $matches))
$nbResults=trim(strtr(strip_tags($matches[1]), array('&nbsp;'=>'','&ndash;'=>'')));
if ($nbResults>0) {
$tabResultsHtml=explode('<div class="results_part1">', $this->body);
for ($i=1; isset($tabResultsHtml[$i]);$i++) {
$res=$tabTel=array();
$body=$tabResultsHtml[$i];
$res['nom']=trim(htm2txt(@getTextInHtml($body, '<div class="results_title">', '_title">', '</div>')));
$res['adresse']=trim(htm2txt(@getTextInHtml($body, '<div class="coordonnees">','<div>','<table id="t_coord_')));
$res['urlSite']=trim(htm2txt(@getTextInHtml($body, '<b class="siteweb">Site Web :</b>&nbsp;', "javascript:SiteURL('", "','")));
$res['urlMail']=trim(htm2txt(@getTextInHtml($body, '<b>E-mail :</b>', "&amp;mail=", "', ")));
$res['urlLogo']=trim(htm2txt(@getTextInHtml($body, '<div class="results_inset_logo">', '" src="', '" border="')));
$res['tefet']=trim(htm2txt(@getTextInHtml($body, '<b>Effectif établ : </b>','</b>','</div>')));
$res['tefet']=trim(htm2txt(@getTextInHtml($body, '<b>Effectif établ : </b>','</b>','</div>')));
$res['siret']=trim(htm2txt(@getTextInHtml($body, '<b>Siret : </b>','</b>','</div>')));
$res['nafet']=trim(htm2txt(strip_tags(@getTextInHtml($body, '<b>Code NAF : </b>','</b>','</div>'))));
$res['domaines']=trim(preg_replace('/ +/', ' ', preg_replace('/\r+|\n+|\s+/',' ',htm2txt(strip_tags(@getTextInHtml($body, '<div class="puce_domaine">','<strong>','</div>'))))));
if ($res['urlSite']<>'') {
$this->iDb->insert('telephonie', array( 'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'dateProvPartenaire'=>date('Ymd'),
'typeTel'=>'web',
'infoTel'=>$res['urlSite'],
'telephone'=>0,
'actif'=>1,
'partenaire'=>253,
)
);
$tabRet[]=array('siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'typeTel'=>'web',
'infoTel'=>$res['urlSite'],
'telephone'=>0,
);
}
if ($res['urlLogo']<>'') {
$this->iDb->insert('telephonie', array( 'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'dateProvPartenaire'=>date('Ymd'),
'typeTel'=>'logo',
'infoTel'=>$res['urlLogo'],
'telephone'=>0,
'actif'=>1,
'partenaire'=>253,
)
);
$tabRet[]=array('siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'typeTel'=>'logo',
'infoTel'=>$res['urlLogo'],
'telephone'=>0,
);
}
if ($res['domaines']<>'') {
$this->iDb->insert('telephonie', array( 'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'dateProvPartenaire'=>date('Ymd'),
'typeTel'=>'domaines',
'infoTel'=>$res['domaines'],
'telephone'=>0,
'actif'=>1,
'partenaire'=>253,
)
);
$tabRet[]=array('siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'typeTel'=>'domaines',
'infoTel'=>$res['domaines'],
'telephone'=>0,
);
}
if ($res['urlMail']<>'') {
$this->iDb->insert('telephonie', array( 'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'dateProvPartenaire'=>date('Ymd'),
'typeTel'=>'mail',
'infoTel'=>$res['urlMail'],
'telephone'=>0,
'actif'=>1,
'partenaire'=>253,
)
);
$tabRet[]=array('siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'typeTel'=>'mail',
'infoTel'=>$res['urlMail'],
'telephone'=>0,
);
}
if (preg_match_all('/<tr>(?:.*)<th>(?:.*)<span>(.*)(tél|fax)(?:.*)<\/span>(?:.*)<\/th>(?:.*)<td>(?:.*)<span>(.*)<\/span>(?:.*)<\/td>(?:.*)<\/tr>/Uis', $body, $matches)) {
foreach ($matches[2] as $j=>$tmp) {
$lib=$tmp;
$precis=trim(strtr($matches[1][$j], array('-'=>' ')));
$num=trim(strtr($matches[3][$j],array('&nbsp;'=>'','<br />'=>'')));
$tabTel["$lib-$num"]=array('telFax'=>$lib,'type'=>$precis, 'telNum'=>$num);
}
$tabTel=array_values($tabTel);
foreach ($tabTel as $tabT) {
$tabRet[]=array('siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'typeTel'=>trimAccent($tabT['telFax']),
'infoTel'=>$tabT['type'],
'telephone'=>$tabT['telNum'],
'actif'=>1,
);
$this->iDb->insert('telephonie', array( 'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'dateProvPartenaire'=>date('Ymd'),
'typeTel'=>trimAccent($tabT['telFax']),
'infoTel'=>$tabT['type'],
'telephone'=>$tabT['telNum'],
'actif'=>1,
'partenaire'=>253,
)
);
}
}
}
} /*else {
//http://www.annuaire.com/uploads/504/284/504284159/logo.jpg
//http://www.annuaire.com/email/491314266/
$url="http://www.annuaire.com/societe/-$siren/";
//$page=getUrl($this->url,$this->cookie,'',$this->referer, false, '', '', 3);
$page=getUrl($url,'','','',false,'','',3);
if ($page['code']<>301) return false;
$url2=$page['header']['Location'];
$page=getUrl($url2,'','',$url,false,'','',3);
if (!preg_match('/<a href="http:\/\/www\.annuaire\.com\/inscription\/1\/\?companyid=(.*)&amp;go=next"/Uis', $page['body'], $matches)) {
print_r($page);
die($siren);
}
}*/
}
return $tabRet;
}
function getOperateur($tel) {
/*http://www.arcep.fr/index.php?id=interactivenumeros
Données POST:
ctrl_flag[do_ctrl]
bloc[017543]
CMD[RESULTS_NUMEROTATION]
http://www.arcep.fr/index.php?id=interactivenumeros&CMD=DETAILS_SOC&uid=158757&bloc=017543&cHash=0c29e39859
http://www.arcep.fr/uploads/tx_gsavis/05-0233.pdf
*/
}
}
?>

View File

@ -1,326 +0,0 @@
<?php
//ini_set('soap.wsdl_cache_enabled', 1); // 0 en dév
class MTvaOld {
public $vatNumber=''; // Numéro de TVA retourné
public $vatDefined=false; // Le numéro de TVA est il validé ?
public $errnum=0; // Numéro de l'erreur en cas d'erreur
public $errmsg=''; // Message de l'erreur en cas d'erreur
private $siren;
function __construct($siren, $accesDist=true) {
//$accesDist=false;
if ($accesDist==true) {
/*$fp=fopen('/var/www/log/infoVat.log', 'a');
fwrite($fp, "MTva->__construct pour $siren $accesDist\n");
fclose($fp);
*/
$this->siren=$siren;
$client = new SoapClient('http://ws1.scores-decisions.com/entreprise/vat.wsdl',
array( 'trace' => 1, 'soap_version' => SOAP_1_1,
'login' => 'TESTTVA', 'password' => 'TVATESTPW'));
try {
$O = $client->getCompanyVat($this->siren);
if ($O->error->errnum) {
//echo 'Erreur : '. $O->error->errmsg .' ('. $O->error->errnum .")\n";
//echo $client->__getLastResponse()."\n";
$this->errnum=$O->error->errnum;
$this->errmsg=$O->error->errmsg;
return false;
} else {
$val=$O->result;
$this->vatNumber=$val->vatNumber;
$this->vatDefined=$val->vatDefined;
}
} catch (SoapFault $fault) {
//echo $client->__getLastResponse()."\n";
//echo 'ERREUR SOAP :'.EOL;
//print_r($fault);
return false;
}
}
else {
$this->errnum=999;
$this->errmsg="Pas d'accès à la base TVA";
$this->vatNumber='';
$this->vatDefined=false;
return false;
}
}
}
class MTva {
public $vatNumber=''; // Numéro de TVA retourné
public $vatDefined=false; // Le numéro de TVA est il validé ?
public $errnum=0; // Numéro de l'erreur en cas d'erreur
public $errmsg=''; // Message de l'erreur en cas d'erreur
private $siren;
function __construct($siren, $accesDist=true)
{
$sirenIn=$siren*1;
if ($sirenIn<000001000) {
$this->vatNumber='FR00000000000';
$this->vatDefined=false;
return false;
}
elseif($sirenIn<000010000) $siren='00000'.$sirenIn;
elseif ($sirenIn<000100000) $siren='0000'.$sirenIn;
elseif ($sirenIn<001000000) $siren='000'.$sirenIn;
elseif ($sirenIn<010000000) $siren='00'.$sirenIn;
elseif ($sirenIn<100000000) $siren='0'.$sirenIn;
else $siren=''.$sirenIn;
$siren = str_pad($siren, 9, '0', STR_PAD_LEFT);
$this->siren=$siren;
$cleAlgo=$this->genereCleFr();
if ($cleAlgo<10) $cleAlgo='0'.$cleAlgo;
else $cleAlgo=''.$cleAlgo;
$tabRep=array();
if (!$this->valideSiren($siren) && substr($siren,0,4)<>'0000') {
$this->errnum=102;
$this->errmsg='Siren invalide';
return false;
}
$iDb=new WDB('sdv1');
$info=$iDb->select('siren_tva', "cle, DATE_FORMAT(dateMod,'%Y%m%d') as DateMAJ", "siren=$siren", false, MYSQL_ASSOC);
$tab=$info[0];
if (count($tab)>0) {
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMTva sur $siren en cache", print_r($tab, true));
if ( $tab['cle']<>NULL || ( $tab['cle']==NULL && $tab['DateMAJ']>=date('Ymd',mktime(0,0,0,date('m')-6,date('d'),date('Y'))) )) {
$cle=$tab['cle'];
if ($cle==NULL) { $attribue=false; $cle=$cleAlgo; }
else $attribue=true;
$this->vatNumber="FR$cle$siren";
$this->vatDefined=$attribue;
return true;
}
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMTva sur $siren REVALIDATION", print_r($tab, true));
}
$cle=$cleAlgo;
$nbIndispo=0;
if ($accesDist) {
while(true) {
$postData=array( //'Lang'=>'FR',
'ms'=>'FR',
'iso'=>'FR',
'vat'=>$cle.$siren,
'BtnSubmitVat'=>'Verify');
/*$postData=array(
* 'Lang'=>'FR',
'VAT'=>$cle.$siren,
'ISO'=>'FR',
'MS'=>'FR'
);*/
$tdeb = microtime_float();
// $url='http://ec.europa.eu/taxation_customs/vies/cgi-bin/viesquer';
// $referer='http://ec.europa.eu/taxation_customs/vies/fr/vieshome.htm';
$url='http://ec.europa.eu/taxation_customs/vies/viesquer.do';
$referer='http://ec.europa.eu/taxation_customs/vies/';
$page=getUrl($url, '', $postData, $referer, false, 'ec.europa.eu', '', 15);
$duree = round(microtime_float()-$tdeb, 3);
//sendMail('production@scores-decisions.com', 'mricois@scores-decisions.com', "classMTva sur $siren en $duree", print_r($page, true));
if ($page['err_num']<>0) {
debugLog('W', 'TVA Erreur CURL n°'. $page['err_num'] .', '. $page['err_msg'] ." sur le Siren $siren, numéro de TVA = FR $cle $siren. Durée = $duree s !", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->vatNumber="FR$cle$siren";
$this->vatDefined=false;
return true;
}
$code=$page['code'];// Code réponse Serveur
$body=$page['body'];
$header=$page['header'];
if (preg_match('/Yes, valid VAT number/i', $body)) {
$tabInsert=array('siren'=>$siren,'cle'=>$cle, 'duree'=>$duree);
$tabUpdate=array('cle'=>$cle, 'duree'=>$duree);
if (!$iDb->insert('siren_tva', $tabInsert))
if (!$iDb->update('siren_tva', $tabUpdate, "siren=$siren"))
debugLog('W', "Siren $siren, numéro de TVA = FR $cle $siren, impossible de MAJ la clef ($duree s) - ERREUR MySql n°". mysql_errno() .' : '. mysql_error(), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
//echo date ('Y/m/d - H:i:s') ." - Ligne $k/$nbk, N°TVA FR $cle $siren validé .".$eol;
debugLog('I', "Siren $siren, numéro de TVA = FR $cle $siren ($duree s)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->vatNumber="FR$cle$siren";
$this->vatDefined=true;
return true;
//return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>array('siren'=>$siren, 'vatNumber'=>"FR$cle$siren", 'vatDefined'=>true));
} elseif (strpos($body, 'Service non disponible')>0 ||
strpos($body, 'ponse trop long.')>0) {
$nbIndispo++;
if ($nbIndispo<3) {
//echo date ('Y/m/d - H:i:s') .' - '.$eol;
debugLog('I', "TVA Siren $siren, Service de l'état membre indisponible. Mise en sommeil...", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
randsleep(1,2);
$nbIndispo=0;
//echo date ('Y/m/d - H:i:s') .' - Reprise du Siren = '. $siren . $eol;
} else {
$tabInsert=array('siren'=>$siren,'cle'=>'NULL', 'duree'=>$duree);
$tabUpdate=array('cle'=>'NULL', 'duree'=>$duree);
if (!$iDb->insert('siren_tva', $tabInsert))
if (!$iDb->update('siren_tva', $tabUpdate, "siren=$siren"))
debugLog('W', "Siren $siren, numéro de TVA = FR $cle $siren, impossible de MAJ la clef ($duree s) - ERREUR MySql n°". mysql_errno() .' : '. mysql_error(), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
debugLog('I', "Siren $siren, numéro de TVA = FR $cle $siren vérification non disponible ($duree s)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->vatNumber="FR$cle$siren";
$this->vatDefined=false;
return true;
}
//echo date ('Y/m/d - H:i:s') .' - Temporisation n°'.$nbIndispo . $eol;
} else {
$tabInsert=array('siren'=>$siren,'cle'=>'NULL', 'duree'=>$duree);
$tabUpdate=array('cle'=>'NULL', 'duree'=>$duree);
if (!$iDb->insert('siren_tva', $tabInsert))
if (!$iDb->update('siren_tva', $tabUpdate, "siren=$siren"))
debugLog('W', "Siren $siren, numéro de TVA = FR $cle $siren, impossible de MAJ la clef ($duree s) - ERREUR MySql n°". mysql_errno() .' : '. mysql_error(), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
debugLog('I', "Siren $siren, numéro de TVA = FR $cle $siren non attribué ($duree s)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->vatNumber="FR$cle$siren";
$this->vatDefined=false;
return true;
}
}
} else {
$this->errnum=999;
$this->errmsg="Pas d'accès à la base TVA";
$this->vatNumber="FR$cle$siren";
$this->vatDefined=false;
return true;
}
debugLog('W', "Erreur impossible (car l'algo ne devrait pas passer par ici) sur le Siren $siren, numéro de TVA = FR $cle $siren. Durée = $duree s. Cas impossible !", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return true;//array('error'=>array('errnum'=>800, 'errmsg'=>'Erreur SGBDR'), 'result'=>$tabRet);
}
/**
** Génère la clé du numéro de TVA pour le siren fournit
** (la validité du numéro de siren et son existance n'est pas effectué par cette méthode)
**
** @param integer $siren Siren dont il faut générer la clé
** @return La clé du numéro de TVA
**/
private function genereCleFr() {
$siren=$this->siren;
// Position du chiffre SIREN (1 à 9)
$tabFirst=array();
$tabFirst[0]=array( 0, 0, 0, 0, 0, 0, 0, 0, 0);
$tabFirst[1]=array(62,47,94,89,40,06,22,43,16);
$tabFirst[2]=array(14,81,78,68,67,96,31,73,19);
$tabFirst[3]=array(63,18,62,47,94,89,40,06,22);
$tabFirst[4]=array(15,52,46,26,24,82,49,36,25);
$tabFirst[5]=array(64,86,30,05,51,75,58,66,28);
$tabFirst[6]=array(16,23,14,81,78,68,67,96,31);
$tabFirst[7]=array(65,57,95,60,08,61,76,29,34);
$tabFirst[8]=array(17,91,79,39,35,54,85,59,37);
$tabFirst[9]=array(66,28,63,18,62,47,94,89,40);
// Chiffre 0 à 9
$tabPoids=array(1,34,-16,-21,27,-7,9,30,3);
$cle=$first=0;
for($pos=0; $pos<9; $pos++) {
$chiffre=$siren[$pos];
if ($first==0) {
$first=$cle=$tabFirst[$chiffre][$pos];
} else {
$cle+=$tabPoids[$pos]*$chiffre;
}
}
while(true) {
if ($cle>96) $cle=$cle-97;
elseif ($cle<0) $cle=$cle+97;
else break;
}
if ($cle==0) return 96;
return ($cle-1);
}
/** Test de la validité du siren demandé
** @param int SIREN à tester
** @param int NIC (facultatif)
** @param mixed Message textuel d'erreur à afficher en cas d'erreur ou false
** @return mixed true, false ou Message d'erreur passé en paramètre
**/
private function valideSiren($siren, $nic='', $erreur=false) {
/** Si le siren est de taille < à 9, on ajoute des 0 significatifs **/
switch (strlen($siren)) {
case 1: $siren='00000000'.$siren; break;
case 2: $siren='0000000'.$siren; break;
case 3: $siren='000000'.$siren; break;
case 4: $siren='00000'.$siren; break;
case 5: $siren='0000'.$siren; break;
case 6: $siren='000'.$siren; break;
case 7: $siren='00'.$siren; break;
case 8: $siren='0'.$siren; break;
}
if (strlen($nic)>0) {
switch (strlen($nic)) {
case 1: $nic='0000'.$nic; break;
case 2: $nic='000'.$nic; break;
case 3: $nic='00'.$nic; break;
case 4: $nic='0'.$nic; break;
}
}
if (!valideData($siren, 9, 9,'N')) //Siren non précisé ou incorrect.
return $erreur;
elseif ($siren*1==0) // Siren vide
return $erreur;
else
{
if (!isset($nic) || trim($nic)=='')
{
$somme=0;
for ($i=0; $i<=8; $i+=2) // Traitement IMPAIR
$somme+=(integer)substr($siren,$i,1);
for ($i=1; $i<=7; $i+=2)
{ // Traitement PAIR
$var_tmp=(string)(2*((integer)substr($siren,$i,1)));
$som_tmp=0;
for($j=0;$j<strlen($var_tmp);$j++)
$som_tmp+=(integer)substr($var_tmp,$j,1);
$somme+=$som_tmp;
}
if ((integer)($somme/10)!=($somme/10))
{ // Le Siren est faux
if (substr($siren,0,3)!='200') // Les siren débutant par 200 sont toujours valides (sirens provisoires de la BDF?!)
return $erreur;
}
} else {
if (!valideData($nic,1,5,'N')) // Nic de format incorrect.
return $erreur;
$SIRET=$siren.$nic;
$somme=0;
for ($i=0; $i<=12; $i+=2)
{ // Traitement PAIR
$var_tmp=(string)(2*((integer)substr($SIRET,$i,1)));
$som_tmp=0;
for($j=0;$j<strlen($var_tmp);$j++)
$som_tmp+=(integer)substr($var_tmp,$j,1);
$somme+=$som_tmp;
}
for ($i=1; $i<=13; $i+=2) // Traitement IMPAIR
$somme+=(integer)substr($SIRET,$i,1);
if ((integer)($somme/10)!=($somme/10))// Le Siret est faux
return $erreur;
}
}
return true;
}
}
?>

View File

@ -1,772 +0,0 @@
<?
class MSitesWeb {
private $whois_serveurs = array(
"ac" => "whois.nic.ac",
"al" => "whois.ripe.net",
"am" => "whois.amnic.net",
"as" => "whois.nic.as",
"at" => "whois.ripe.net",
"au" => "whois.aunic.net",
"az" => "whois.ripe.net",
"ba" => "whois.ripe.net",
"be" => "whois.ripe.net",
"bg" => "whois.ripe.net",
"biz" => "whois.nic.biz",
"br" => "whois.registro.br",
"by" => "whois.ripe.net",
"ca" => "whois.cira.ca",
"cc" => "whois.nic.cc",
"ch" => "whois.nic.ch",
"ck" => "whois.ck-nic.org.ck",
"cn" => "whois.cnnic.net.cn",
"com" => "whois.crsnic.net",
"cx" => "whois.nic.cx",
"cy" => "whois.ripe.net",
"cz" => "whois.nic.cz",
"de" => "whois.denic.de",
"dk" => "whois.dk-hostmaster.dk",
"dz" => "whois.ripe.net",
"edu" => "rs.internic.net",
"ee" => "whois.ripe.net",
"eg" => "whois.ripe.net",
"es" => "whois.ripe.net",
"eu" => "whois.eu",
"fi" => "whois.ripe.net",
"fj" => "whois.usp.ac.fj",
"fo" => "whois.ripe.net",
"fr" => "whois.nic.fr",
"gb" => "whois.ripe.net",
"ge" => "whois.ripe.net",
"gov" => "whois.nic.gov",
"gr" => "whois.ripe.net",
"gs" => "whois.adamsnames.tc",
"hk" => "whois.hknic.net.hk",
"hm" => "whois.registry.hm",
"hr" => "whois.ripe.net",
"hu" => "whois.ripe.net",
"id" => "whois.idnic.net.id",
"ie" => "whois.domainregistry.ie",
"info" => "whois.afilias.net",
"int" => "whois.isi.edu",
"il" => "whois.ripe.net",
"is" => "whois.isnet.is",
"it" => "whois.nic.it",
"jp" => "whois.nic.ad.jp",
"ke" => "whois.rg.net",
"kg" => "whois.domain.kg",
"kr" => "whois.nic.or.kr",
"kz" => "whois.domain.kz",
"li" => "whois.nic.li",
"lk" => "whois.nic.lk",
"lt" => "whois.ripe.net",
"lu" => "whois.ripe.net",
"lv" => "whois.ripe.net",
"ma" => "whois.ripe.net",
"md" => "whois.ripe.net",
"mil" => "whois.nic.mil",
"mk" => "whois.ripe.net",
"mm" => "whois.nic.mm",
"ms" => "whois.adamsnames.tc",
"mt" => "whois.ripe.net",
"mx" => "whois.nic.mx",
"net" => "rs.internic.net",
"nl" => "whois.domain-registry.nl",
"no" => "whois.norid.no",
"nu" => "whois.nic.nu",
"nz" => "whois.domainz.net.nz",
"org" => "whois.pir.org",
"pl" => "whois.ripe.net",
"pk" => "whois.pknic.net.pk",
"pt" => "whois.ripe.net",
"ro" => "whois.ripe.net",
"ru" => "whois.ripn.ru",
"se" => "whois.nic-se.se",
"sg" => "whois.nic.net.sg",
"si" => "whois.ripe.net",
"sh" => "whois.nic.sh",
"sk" => "whois.ripe.net",
"sm" => "whois.ripe.net",
"st" => "whois.nic.st",
"su" => "whois.ripe.net",
"tc" => "whois.adamsnames.tc",
"tf" => "whois.adamsnames.tc",
"tj" => "whois.nic.tj",
"th" => "whois.thnic.net",
"tm" => "whois.nic.tm",
"tn" => "whois.ripe.net",
"to" => "whois.tonic.to",
"tr" => "whois.ripe.net",
"tw" => "whois.twnic.net",
"ua" => "whois.ripe.net",
"uk" => "whois.nic.uk",
"us" => "whois.isi.edu",
"va" => "whois.ripe.net",
"vg" => "whois.adamsnames.tc",
"ws" => "whois.nic.ws",
"yu" => "whois.ripe.net",
"za" => "whois.frd.ac.za");
private $iInsee;
private $iDb;
function __construct(/*$siren, $accesDist=true*/) {
$this->iInsee=new MInsee();
$this->iDb=new WDB('jo');
}
/** L'adresse IP est elle valide ?
* @param $ip Adresse IP v4
*/
function isIpValide($ip) {
$ip_explode = explode('.',$ip);
$nb_valide = 0;
foreach ($ip_explode as $element)
if ($element>=0 && $element<255)
$nb_valide++;
if ($nb_valide==4) return true;
return false;
}
function getInfosSiteWeb($url) {
$tabRet=array('url'=>$url, 'url_valide'=>0);
// Est-ce une URL valide en paramètre ?
if(preg_match('|^(http(s)?://)?[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url)) {
//$tabRet['url']=preg_replace('/^http\/\//', 'http://', $url);
$tabRet['url_valide']=1;
$info=parse_url($url);
$host=@preg_replace('/\/$/','',$info['host']);
$ext=getFileExtension($host);
$domaine=getFileExtension(preg_replace("/\.$ext$/",'','.'.$host));
$tabRet['url_scheme']=@$info['scheme'];
$tabRet['url_host']=@$info['host'];
$tabRet['url_path']=@$info['path'];
$tabRet['url_query']=@$info['query'];
$tabRet['url_fragment']=@$info['fragment'];
$tabRet['domaine']="$domaine.$ext";
$tabRet['domaine_valide']=0;
// Le nom de domaine est il actif ?
if (checkdnsrr("$domaine.$ext")) {
$tabRet['domaine_valide']=1;
$ip=gethostbyname("$domaine.$ext");
if ($this->isIpValide($ip)) $tabRet['ip']=$ip;
$page=getUrl("http://$host", '', '', '', false, "$domaine.$ext", '', 3, 0);
// Le site est il actif ?
if ($page['code']==400 || $page['code']==408) {
$tabRet['erreur_num']=@$page['header']['curl_errno'];
$tabRet['erreur_txt']=@$page['header']['curl_error'];
} else {
/** @todo Vérifier les pages de parking et les sites non encore terminés **/
$tabRet['code']=$page['code'];
//$tabRet['header']=$page['header'];
$tabRet['header_server']=trim($page['header']['Server']);
$tabRet['header_location']=trim($page['header']['Location']);
$tabRet['header_powerby']=trim($page['header']['X-Powered-By']);
$tabRet['header_content']=trim($page['header']['Content-Type']);
$tabRet['html_size']=strlen($page['body']);
if (preg_match('/<head>(.*)<\/head>/Uis',$page['body'],$matches)) {
$html_head=$matches[1];
$tabRet['html_head']=$html_head;
if (preg_match('/<title>(.*)<\/title>/Uis',$html_head,$matches))
$tabRet['html_title']=utf8_decode(trim($matches[1]));
if (preg_match_all('/<meta\s+name(?:\s+|)=(.*)\scontent(?:\s+|)=(.*)>/Uis',$html_head,$matches)) {
foreach ($matches[1] as $i=>$metaName) {
$meta=strtolower(trim(strtr($metaName, array('"'=>'', "'"=>''))));
$content=utf8_decode(preg_replace('/^(?:\s+|)("|\')/Uis','',
preg_replace('/("|\')(?:\s+|)(?:\/|)$/Uis','',
$matches[2][$i])));
switch ($meta) {
case 'title':
$meta='metatitle';
case 'content-language':
$meta='language';
case 'languages':
$meta='language';
case 'language':
case 'revisit-after':
case 'coverage':
case 'copyright':
case 'author':
case 'rating':
case 'resource-type':
case 'classification':
case 'distribution':
case 'doc-rights':
case 'doc-type':
case 'robots':
case 'keywords':
case 'description':
case 'generator':
case 'category':
case 'owner':
case 'identifier-url':
$tabRet['html_'.$meta]=utf8_decode(trim($content));
break;
default:
echo "$meta='$content'".EOL;
break;
}
}
}
}
}
}
}
return $tabRet;
}
function getInfosAfnic($siteWeb) {
$referer='http://www.afnic.fr/';
$url='http://www.afnic.fr/outils/whois/'.$siteWeb;
$page=getUrl($url, '', '', $referer);
if ($page['code']==200) {
$tabRet=array();
if (preg_match('/<b>Bureau d&rsquo;enregistrement \: <\/b>.*">(.*)<\/a><br>/Uis',$page['body'],$matches))
$tabRet['registrar']=$matches[1];
if (preg_match('/<\/noscript><b>&Eacute;tat \:<\/b>(.*)<\/b>/Uis',$page['body'],$matches)) {
$tabRet['etat']=trim($matches[1]); /*
Actif (consultez aussi le <b><a href="http://www.decideo.fr" class="ext" target="_BLANC">Site web</a>*/
if (preg_match('/<b><a href="(.*)"/Uis',$tabRet['etat'],$matches))
$tabRet['siteWeb']=trim($matches[1]);
$tmp=explode(' (', $tabRet['etat']);
$tabRet['etat']=$tmp[0];
}
if (preg_match('/<b>Date de création \: <\/b>(.*)<br>/Uis',$page['body'],$matches))
$tabRet['dateCrea']=$matches[1];
if (preg_match('/<b>Date anniversaire \: <\/b>(.*)<br>/Uis',$page['body'],$matches))
$tabRet['dateAnniv']=trim($matches[1]);
if (preg_match("/<span class=h1>Titulaire \: <\/span>(.*)<br><div style='clear\: both;'><\/div>/Uis",$page['body'],$matches)) {
$strTitu=trim($matches[1]);
if (preg_match("/<span class=bleuvif>(.*)<\/span><\/h2>/Uis",$strTitu,$matches))
$tabRet['tituNom']=trim($matches[1]);
if (preg_match("/<noscript><div id='Layer2' style='display\: block;'><\/noscript>(.*)<b>/Uis",$strTitu,$matches)) {
$tabRet['tituAdr']=strip_tags(trim($matches[1]));
$tmp=$this->iInsee->structureVoie($tabRet['tituAdr']);
$tabRet['tituAdrNum']=$tmp['num'];
$tabRet['tituAdrCp']=$tmp['cp'];
$tabRet['tituAdrVille']=preg_replace('/ FRANCE$/','',trim($tmp['ville']));
$tabRet['tituAdrTypVoie']=$tmp['typeVoie'];
$tabRet['tituAdrLibVoie']=$tmp['libVoie'];
$tabRet['tituAdrComp']=$tmp['adrComp0'];
}
if (preg_match("/<b>Téléphone \: <\/b>(.*)<br>/Uis",$strTitu,$matches))
$tabRet['tituTel']=trim($matches[1]);
if (preg_match('/<b>Courrier électronique \: <\/b> <a href="mailto:(.*)">/Uis',$strTitu,$matches))
$tabRet['tituMel']=trim($matches[1]);
}
if(preg_match('/<li>Identifié grâce au numéro de SIREN <a href="(?:.*) target="_blank" class="ext">(.*)<\/a><\/li>/Uis', $page['body'], $matches))
$tabRet['siren']=html_entity_decode($matches[1]);
elseif (preg_match('/<li>Identifié grâce à la marque française \((.*)\) <\/li>/Uis', $page['body'], $matches))
$tabRet['marquefr']=html_entity_decode($matches[1]);
} else
return $page['code'];
return $tabRet;
}
function findSiteWeb($siren, $nomEntrep='') {
// Recherche BING
$appId = '56D6CBA671C986D3EA11B1B48F97507BC5A00D51';
$numResults = 50;
$cultureInfo = 'fr-FR';
$siren2=implode(' ', str_split($siren, 3));
if ($nomEntrep<>'') $rs2="OR \"$nomEntrep\"";
$tabSitesExclus=array('societe.com','bilans.net','gouv.fr','info-financiere.fr','bodacc.fr','manageo.fr','bilansgratuits.fr','lesechos.fr','google.fr');
$rs="$siren OR \"$siren2\" $rs2 -site:".implode(' -site:', $tabSitesExclus);
$query=stripslashes(urlencode($rs));
$tabSources=array( 'web'=>'Web page results',
/*'image'=>'Full-size image and thumbnail image information, including the file size in bytes (if available), height and width in pixels (if available), and the URI to the full-size image or thumbnail',
'instantAnswer'=>'Answers. The result fields returned for requests that specify InstantAnswer vary based on the value or values specified for the Query property. InstantAnswer results can include Encarta, FlightStatus, Finance, Music, Sports, Weather, and Movie ShowTimes. For the Version 2.0 release, results include Encarta and FlightStatus only. Other results are available by invitation',
'mobileWeb'=>'Mobile Web page results (primarily Extensible Hypertext Markup Language (XHTML) and Wireless Markup Language (WML)',
'phoneBook'=>'Results from online White Pages (residential) and Yellow Pages (commercial) entries',
'relatedSearch'=>'Suggestions for other searches related to the query term or terms',
'spell'=>'Spelling suggestions',
'translation'=>'Translated results for a queried',
'video'=>'Video results',*/
//'news'=>'Results from online news services',
);
$source=implode('+', array_keys($tabSources));
$url="http://api.bing.net/json.aspx?AppId=$appId&Version=2.2&Market=$cultureInfo&Query=$query&Sources=$source&Web.Count=$numResults&JsonType=raw";
$page=getUrl($url, '', '', $referer, false);
$json=$page['body'];
$tabJson=json_decode($json, true);
$tabJson=$tabJson['SearchResponse'];
$levMin=100;
$pctMin=0;
$urlLev=$urlPct='';
$urlapprox="http://www.$nomEntrep.fr/";
foreach ($tabJson['Web']['Results'] as $i=> $result) {
$title=utf8_decode($result['Title']); // SCORES & DECISIONS - Accueil
$desc=utf8_decode($result['Description']); // Scores et Décisions - Le nouvel acteur de l'information sur les entreprises et leurs dirigeants avec une approche innovante
$url=$result['Url']; // http://www3.scores-decisions.com/
$lev=@levenshtein ($urlapprox,$url);
if ($lev>0 && $lev<$levMin) {
$levMin=$lev;
$urlLev=$url;
}
$sim=similar_text($urlapprox,$url,$pct);
if ($pct>$pctMin && strpos($url, 'zonebourse')===false) {
$pctMin=$pct;
$urlPct=$url;
}
if (preg_match('/\.(.*\.fr)\//', $url, $matches2)) {
}
$info=parse_url($url);
$host=preg_replace('/\/$/','',$info['host']);
$ext=getFileExtension($host);
$domaine=getFileExtension(preg_replace("/\.$ext$/",'','.'.$host));
echo "RECHERCHE DE '$nomEntrep' ($siren) : Trouvé $domaine.$ext".EOL;
if ($ext=='fr') {
$rep=$this->iDb->select('sitesWeb', 'siren, web', "web=$url");
if (@$rep[0]['siren']*1==0) {
$tabAfnic=$this->getInfosAfnic("$domaine.$ext");
$siren=$tabAfnic['siren']*1;
if ($siren>0) {
$tabInsert=array('siren'=>$siren,
'web'=>$url,
'dateInsert'=>date('YmdHis'));
$this->iDb->insert('sitesWeb', $tabInsert);
}
}
}
if ($levMin<15 && $pctMin>44 && $urlLev==$urlPct) {
echo date('Y-m-d H:i:s') .' - '. $page['code'] . " - $rs - $i - $lev (Min=$levMin) - $pct (Min=$pctMin) - $urlLev - $urlPct - $url !!! RETURNED !!!".EOL;
return $urlLev;
}
}
/*
[0] => Array
(
[Title] => SCORES & DECISIONS - Accueil
[Description] => Scores et Décisions - Le nouvel acteur de l'information sur les entreprises et leurs dirigeants avec une approche innovante
[Url] => http://www3.scores-decisions.com/
[CacheUrl] => http://cc.bingj.com/cache.aspx?q=scores+decisions&d=5004075153885515&mkt=fr-FR&w=881d2897,4f2fff68
[DisplayUrl] => www3.scores-decisions.com
[DateTime] => 2011-02-14T12:24:00Z
[DeepLinks] => Array
(
[0] => Array
(
[Title] => Partenaires
[Url] => http://www3.scores-decisions.com/partenaires.php
)
[1] => Array
(
[Title] => Contact
[Url] => http://www3.scores-decisions.com/contact.php
)
)
)
[1] => Array
(
[Title] => SCORES & DECISIONS - Société
[Description] => Scores et Décisions - Le nouvel acteur de l'information sur les entreprises et leurs dirigeants avec une approche innovante
[Url] => http://www3.scores-decisions.com/societe.php
[CacheUrl] => http://cc.bingj.com/cache.aspx?q=scores+decisions&d=4747772983970513&mkt=fr-FR&w=10f5cd33,9b81f773
[DisplayUrl] => www3.scores-decisions.com/societe.php
[DateTime] => 2011-02-13T02:17:00Z
)*/
return false;
}
function whois($domaine) {
$parseur=explode(".", $domaine);
$hote=$this->whois_serveurs[strtolower($parseur[count($parseur)-1])];
$msg='';
if (empty($hote)) {
$msg="Extension du domaine '$domaine' inconnue";
} else {
$fp = fsockopen($hote, 43, $errno, $errstr, 10);
if (!$fp) {
$msg="Erreur de socket no$errno : $errstr";
} else {
fputs($fp, $domaine . "\r\n");
$buf=$server='';
while (!feof($fp)) {
$row=fgets($fp, 128);
$buf.=$row;
if (eregi("Whois Server:", $row))
$server = trim(str_replace('Whois Server:', '', $row));
}
fclose($fp);
if (ereg("No match for", $buf) ||
ereg("NOT FOUND", $buf) ||
ereg("Status: FREE", $buf) ||
ereg("No entries found", $buf) ||
ereg("Not found", $buf) ||
ereg("AVAIL", $buf)) {
$msg="Domaine '$domaine' libre";
} else {
//echo "<p><strong>Le nom de domaine <font color=\"red\">" . $_POST['domaine'] . "</font> est d&eacute;j&agrave; pris</strong></p>";
if ($server<>'') {
$msg="Domaine '$domaine' enregistré chez '$server'";
$fp = fsockopen($server, 43, $errno, $errstr, 10);
fputs($fp, $domaine."\r\n");
$buf2='';
while (!feof($fp))
$buf2.=fgets($fp, 128);
fclose($fp);
}
}
}
}
return array( 'error'=>$msg,
'whoisSrv'=>$hote,
'whoisSrv2'=>$server,
'whoisTxt'=>$buf,
'whoisTxt2'=>$buf2);
}
}
/** Retourne l'extension d'un domaine ou du fichier !!! **/
function getFileExtension($filepath) {
preg_match('/[^?]*/', $filepath, $matches);
$string = $matches[0];
$pattern = preg_split('/\./', $string, -1, PREG_SPLIT_OFFSET_CAPTURE);
// check if there is any extension
if(count($pattern) == 1)
return false;
if(count($pattern)>1) {
$filenamepart = $pattern[count($pattern)-1][0];
preg_match('/[^?]*/', $filenamepart, $matches);
return $matches[0];
}
}
function ShowFileName($filepath)
{
preg_match('/[^?]*/', $filepath, $matches);
$string = $matches[0];
#split the string by the literal dot in the filename
$pattern = preg_split('/\./', $string, -1, PREG_SPLIT_OFFSET_CAPTURE);
#get the last dot position
$lastdot = $pattern[count($pattern)-1][1];
#now extract the filename using the basename function
$filename = basename(substr($string, 0, $lastdot-1));
#return the filename part
return $filename;
}
/********************************************************************************
* @proto (array) $page get_web_file( (string) $url[, (string) $user_agent ] )
* @desc cURL va chercher $url en temps que $user_agent
* @desc et retourne entre autre $page['content']
* @comm -régler le timeout
* @comm a du mal à renvoyer des bin dans $header['content']
********************************************************************************/
function get_web_file( $url, $user_agent = 'Opera/9.64 (X11; Linux i686; U; en) Presto/2.1.1' )
{
$options = array(
//CURLOPT_SSL_VERIFYPEER => false, // Ne vérifie pas les certificats
CURLOPT_RETURNTRANSFER => true, // return plutôt que echo|print
CURLOPT_HEADER => true, // Renvoie les headers
//CURLOPT_FOLLOWLOCATION => true, // Suivre les redirections, limité par...
CURLOPT_MAXREDIRS => 500, // ...le max de redirections
CURLOPT_ENCODING => '', // Accepte tous les encodages
CURLOPT_USERAGENT => $user_agent,// Qui Je Suis (avec Jackie Chan)
CURLOPT_AUTOREFERER => true, // Set referer on redirect
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 3, // Temps maximum d'utilisation de cURL (s)
);
$ch = curl_init($url);
curl_setopt_array($ch, $options);
$content = curl_exec($ch); // contenu de la page
$page['errno'] = curl_errno($ch); // code d'erreur cURL
$page['errmsg'] = curl_error($ch); // message d'erreur cURL
$curl = curl_getinfo($ch);
curl_close($ch);
$page['url'] = $curl['url']; // possibles redirections = dernière url
$page['http_code'] = $curl['http_code'];
$page['total_time'] = $curl['total_time'];
$page['redirect_count'] = $curl['redirect_count'];
$page['content'] = $content;
return $page;
}
/* $page return as below:
Array
(
[url] => l'url
[http_code] => l'erreur http
[redirect_count] => nombre de redirections
[total_time] => temps d'execution
[errno] => numéro d'erreur cURL
[errmsg] => message d'erreur
[content] => fichier en string :p
)
*/
///////////////////////////////////////////////////////////////////////////////
/********************************************************************************
* @proto (integer) $http_error get_http_error( (string) $url )
********************************************************************************/
function get_http_error( $url )
{
$options = array(
//CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true,
CURLOPT_NOBODY => true, // get_http_error() doit être faster than get_web_file()
//CURLOPT_FOLLOWLOCATION => true,
CURLOPT_MAXREDIRS => 500,
CURLOPT_ENCODING => '',
CURLOPT_USERAGENT => 'Opera/9.64 (X11; Linux i686; U; en) Presto/2.1.1',
CURLOPT_AUTOREFERER => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 0,
);
$ch = curl_init($url);
curl_setopt_array($ch, $options);
curl_exec($ch);
$errmsg = curl_error($ch);
$curl = curl_getinfo($ch);
curl_close($ch);
return ( $curl['http_code'] === 0 ) ? $errmsg : $curl['http_code'];
}
///////////////////////////////////////////////////////////////////////////////
/********************************************************************************
* @proto (string) $cleansed_url resolve_url( (string) $raw_url, (string) $url )
* @link http://en.wikipedia.org/wiki/Uniform_Resource_Locator
* @desc reconstruit $raw_url à partir de $url et en déduit des $res['url']
* @comm gère les mails
********************************************************************************/
function resolve_url( $raw_url, $url )
{
$cleansed_url = '';
// Met un slash à la fin des racines si yen a pas
if ( preg_match('#^[^:/]+:/+[^/]+$#', $url) ) $url = $url.'/';
if ( preg_match('#^[^:/]+:/+[^/]+$#', $raw_url) ) $raw_url = $raw_url.'/';
// Racine du site
preg_match('#^([^:/]+:/+[^/]+/)#', $url, $preg_racine);
$racine = $preg_racine[1];
// Dossier courant
preg_match('#(.+/)[^/]*$#', $url, $preg_courant);
$courant = $preg_courant[1];
/* On sait qu'un dossier en est un quand il se termine par un /
Pour cette même raison, on ne peut déterminer avec certitude si on a un fichier plutôt qu'un dossier.
Sauf (dans un contexte initial : sans URL-Rewriting) quand il y a une ancre : c'est un fichier. */
// Non-dossier courant
$sub_nondir_courant = substr($url, strlen($courant) - 1);
$nondir_courant = ( $sub_nondir_courant === false ) ? '' : $sub_nondir_courant;
//Scheme et slashs
/* Modif's */
if ( $raw_url[0] == '/' ) // Si $raw_url commence par un /
$cleansed_url = $racine . substr($raw_url, 1); // substr() empêche le double slash
else if ( $raw_url[0] == '.' ) // Pour ./ et ../
$cleansed_url = $courant . $raw_url;
else if ( $raw_url[0] == '?' || $raw_url[0] == '&' ) // Si c'est une query
$cleansed_url = $url . $raw_url; // Le '&' : espoir
else if ( $raw_url[0] == '#' ) // Si c'est une ancre et que n'en a pas déjà une
$cleansed_url = ( !preg_match('%#[^#]*$%', $url) ) ? $url.$raw_url : '';
else if ( preg_match('#^javascript\s*:#i', $raw_url) ) // Quand du javascript est déclaré
$cleansed_url = '';
else if ( preg_match('#^mailto\s*:\s*((?:[^i]|i)+)$#i', $raw_url, $mail) ) // Quand c'est un mail
$cleansed_url = '';
else if ( preg_match('#^[^:/]+:/#', $raw_url) ) // Quand raw_url est une url normale
$cleansed_url = $raw_url;
else if ( !preg_match('#^[^:/]+:/#', $raw_url) ) // Quand c'est tout sauf ce qu'on a dit et une url
$cleansed_url = $courant . $raw_url;
else { } // Tous les autres cas ne conviennent pas
/* Après toutes les modif's */
// Supprime les résultats qui ne commencent pas par xxx://
if (
!preg_match('#^[^:/]+:/+#', $cleansed_url) //$cleansed_url != ^http://$
//|| $raw_url[0] == '#' //$raw_url ^#
|| preg_match('#^[^:/]+:/+\s*$#', $cleansed_url) //$cleansed_url == ^http:// $
|| !is_string($cleansed_url)
)
$cleansed_url = '';
if ( !empty($cleansed_url) )
{
$cleansed_url = trim($cleansed_url);
/*** remplace /./ par / ***/
$cleansed_url = str_replace('/./', '/', $cleansed_url);
/*** remplace // par / s'ils ne commencent pas par : comme dans 'file:///' ***/
$cleansed_url = preg_replace('#(?<!\:)//#', '/', $cleansed_url); //does work!!!
/*** supprime les /../ ***/
while ( substr_count($cleansed_url, "../") ) //tant qu'il y a des /../
{
$cleansed_url = preg_replace('#/[^/]+/\.\.#', '', $cleansed_url); // But : see PHP.net online manual comment
}
}
return $cleansed_url;
}
///////////////////////////////////////////////////////////////////////////////
/********************************************************************************
* @proto (array) $urls get_urls( (string) $raw_page_content, (string) $url )
* @desc extrait les urls de $raw_page_content et les reconstruits à l'aide de $url
********************************************************************************/
function get_urls( $raw_page_content, $url )
{
$raw_page_content .= PHP_EOL;
$matches = $urls = array();
$regexs = array( // À réécrire avec % ... %x et % ... %u
/* Fais chier : un jour que j'améliorais *grave* mes regexs, le ventirad s'est décroché et mon /home/ est devenu illisible...
Tout marchait *très bien* et j'avais rajouté des captures ! Me disant même "Heureusement que je l'ai vu ça, ça aurait pu m'échapper !" */
// (string) '#regex#Z' => (int) parenthesized subpattern,
///////////////////////////////////////////////////////////////////////////////
/// Catch Abstrait Symétrique
// Cas général - ko
// '%(["\'])([^\1:/\s]+:/+[^\1]+)\1#%' => 2,
// Thèmes récurrents en (x)?HTML - ok
'%(?:href|src|ur[li]|path|action|role|xmlns(?::[^:=]+)?)\s*=\s*(["\'])\s*([^\1]+)\s*\1%Ui' => 2,
/// Exceptions
// Instructions de robots.txt - ok
'%(?:Disallow|Sitemap)\s*:\s+(\S+)\s*%i' => 1,
// Image en CSS - ok - ok
'%url\s*\((["\']|)(?(1)([^\1]+)\1|([^()]+))\)%Ui' => 2,
'%url\s*(["\'])([^\1])\1%iU' => 2,
// Meta refresh - ok
'%content=(["\'])[^\1\D]*;\s*url=([^\1]+)\1%iU' => 2,
/// Catch Abstrait Asymétrique
// Parenthèses
/// '\( , ... \)' => ,
// XML - (antislash pour php-> ?\>) . Ungreedy réduit l'execution - ok
'%<([^<>\s]+)(?:\s+[^>]+)?\>\s*([^>\s:/]+:/+[^<]+)\s*</\1>%' => 2,
///////////////////////////////////////////////////////////////////////////////
// '' => ,
);
foreach ( $regexs as $regex => $parenthesized_subpattern )
{
preg_match_all($regex, $raw_page_content, $reg_sult, PREG_PATTERN_ORDER); // Éxécute les regular expressions
$matches = array_merge($matches, $reg_sult[ $parenthesized_subpattern ]); // Regroupe les résultats des regex
}
$matches = array_unique($matches); // Supprime les doubles
$matches = array_values($matches); // Repart de zéro
$url = trim($url); // Enlève les espaces des côtés
$nbUrl_=count($matches);
foreach ( $matches as $iUrl_=>$raw_url )
{
$raw_url = trim($raw_url);
if ( !empty($raw_url) ) // Supprime les cases vides
{
$res = resolve_url($raw_url, $url); // Résoud massivement les URL trouvées
/* Déduit des urls : énumère l'arborescence */
if ( !empty($res) ) // URL néttoyées
{
preg_match('#^([^:/]+:/+[^/]+/)(.*)$#', $res, $preg_url);
if (!isset($preg_url[1])) {
echo ("$iUrl_/$nbUrl_: Type d'URL non gérée : '$res'".EOL);
break;
}
$str = $preg_url[1]; // = début de l'url suivie d'un slash
$urls[] = $str; // Enregistre déjà ce début (utile de le mettre ici au cas ou la condition sur \2 serait false)
if ( !empty($preg_url[2]) ) // Si il y a un path (!= root | host)
{
// Éclate le path par le slash (-> array)
$exp = explode('/', $preg_url[2]); // Compte à partir de 0
$k = count($exp); // Compte à partir de 1
for ( $i = 0; $i < $k; $i++ ) // Déduit des urls
{
// Si on est au dernier, on ne met pas de slash à la fin (: cela peut-être un fichier)
$str .= ($i == $k -1) ? $exp[$i] : $exp[$i].'/';
$urls[] = $str; // Enregistre
}
}
}
}
}
$urls = array_unique($urls); //moins doubles
$urls = array_values($urls); //orde num (des key)
if ( empty($urls[ count($urls) - 1 ]) ) // Si il y a une URL vide, elle est à la fin du tableau
array_pop($urls);
return $urls;
}
function crawler($q) {
if ( preg_match('#[^:/\s]://.+#', $q) && !preg_match('#[<>"\']#', $q) ) // Si l'URL semble correcte
{
$urls = array();
if ( preg_match('#^[^:/]+:/+[^/]+$#', $q) )
$q .= '/'; // Rajoute le slash si c'est le root et qu'il est sans / à la fin
/* if ( !empty($c) ) /* HTTP ERROR */ /*** Ne pas echo avant cette ligne ***
{
header("Content-Type: text/plain");
echo get_http_error($q); // get_http_error() devrait moins consommer que curl_web_file()
die;
}
*/
$curl = get_web_file($q); // Met l'élément du Web ciblé dans une variable
$urls = get_urls($curl['content'], $q); // URL trouvées
natcasesort($urls); // Tri par ordre alphanumérique
$nombresult = count($urls);
}
return $urls;
}
?>

View File

@ -1,404 +0,0 @@
<?
define('HOST_INSEE', 'avis-situation-sirene.insee.fr');
define('SITE_INSEE', 'http://'. HOST_INSEE .'/');
define('HOST_PJ', 'www.pagesjaunes.fr');
define('SITE_PJ', 'http://'. HOST_PJ .'/');
define('SITE_SOCIETE', 'http://www.societe.com/');
include('/var/www/_includes/includes/insee.class.php');
//include('includes/normad.class.php');
include('/var/www/_includes/includes/fonctions.php');
/* v0.1 Extraction d'informations INSEE en ligne de commande.
Usage: <?=$argv[0]?> <extract type> <fileIn> <fileInFmt> <fileOut> <fileOutFmt>
Where <extract type> is :
id siren.tm.fr : Fiche d'identite INSEE (établissement+entreprise)
lst siren.tm.fr : Liste des etablissements du SIREN (+infos entreprise)
rncs societe.com : Informations du RNCS
pj pagesjaunes.fr : Données des pages jaunes
coface cofacerating.fr : Coface
Where <fileInFmt> is :
csv Fichier IN au format CSV (; ou ,) SIREN;NIC;REF
plat Fichier IN au format plat (blancs significatifs) SIREN_____NIC__REF______________
Where <fileOutFmt> is : csv / todo
Le fichier en entrée doit être au format <fileInFmt> et contenir le SIREN en première colonne.
*/
$insee=&new Insee();
function getInfosSirene($sirenLu, $nicLu='') {
$tabRet=array();
$invalide=false;
if (valideSiren($sirenLu)==false) {
$libelleErreur='SIREN invalide';
$invalide=true;
}
if ( $nicLu<>'' && valideSiren($sirenLu, $nicLu)==false) {
$libelleErreur='SIRET invalide';
$invalide=true;
}
if ($invalide==true)
{
$siret=$sirenLu.$nicLu;
$str=date('d/m/Y à H:i:s') .';'. $libelleErreur .';'. $siret .';;;;;;;;;;;;;;;;;;;;;;;';
$fp=fopen('/var/www/_includes/partenaires/insee/debug.csv', 'a');
fwrite($fp, $str."\r\n");
fclose($fp);
$num=$key+1;
flush();
} else { // La demande est valide on va à l'INSEE
/** Paramètre de requête "option" à l'insee :
** 1: Fiche du siège + Données entreprises
** 2: Tous les établissements de l'entreprise
** 3: Un établissement particulier
** 4: Département
**/
if ($nicLu<>'') $option=3;
else $option=1;
$libelleErreur='Erreur SCRIPT Inconnue';
$tabInfoEtab=array();
$tabInfoEntrep=array();
/** Etape de connexion au site de l'INSEE pour simuler correctement un utilisateur WEB
**/
$response1=getUrl(SITE_INSEE);
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'SIRENET_Script/Accueil/script_page_accueil.asp');
$response=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren');
$response=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren');
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_haut.asp?grille=siren&action=nouvelle', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren');
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren');
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_bas.asp?grille=siren&action=nouvelle', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren');
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_haut.asp?grille=siren&action=nouvelle', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle');
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_bas.asp?grille=siren&action=nouvelle', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle');
if ($nicLu=='') //Faire une boucle de recherche de tous les établissement et y inclure le reste du traitement
{
// Requête d'interrogation
$postData=array(
'siren'=>$sirenLu,
'option'=>2,
'nic'=>'',
'dep'=>'',
'listeDep'=>'');
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false', $response1["header"]["Set-Cookie"], $postData, SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle');
$action='nouveau';
$referer=SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false';
$nbRepTot=$pageCour=$nbTotPage=$nbRepParPage=$numEtab=0;
$tabInfoEtab=array();
while(true)
{
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/question.asp?action='.$action, $response1["header"]["Set-Cookie"], '', $referer);
if ($responseQ['code']==302)
{
//$libelleErreur='Erreur INSEE inconnue 1';
// Siren Invalide ou autre erreur non répertoriée !
$header=$responseQ['header'];
if (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur')
{
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false');
$responseErreur=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Erreur_principal.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur',true);
$pos=strpos($responseErreur['body'], '<td valign=top bgcolor="#FFCC33"><font face=Arial size=2><b>');
if ($pos>0){
$posFin=strpos($responseErreur['body'], '</b></font></td>', $pos+60);
$libelleErreur=trim(substr($responseErreur['body'], $pos+60, $posFin-($pos+60)));
} else
$libelleErreur='Erreur INSEE inconnue';
}
// On déroule les URLs d'appels liste des établissements
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false');
//sleep(1);
// Frames réponse niveau Etab
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste');
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste');
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste');
$responseListe=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Liste_principal.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste', true);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Liste_bas.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste');
$responseListe=$responseListe['body'];
$pos=strpos($responseListe, 'Nombre total de réponses&nbsp;:&nbsp;'."\r\n\t\t\t".'<font face="Arial" size="2"><b>');
if ($pos>0) {
$posFin=strpos($responseListe, '</b></font>', $pos+73);
$nbRepTot=trim(substr($responseListe, $pos+73, $posFin-($pos+73)));
}
$pos=strpos($responseListe, '&nbsp;-&nbsp;Affichage de la page&nbsp;'."\r\n\t\t\t".'<font face="Arial" size="2"><b>');
if ($pos>0) {
$posFin=strpos($responseListe, '&nbsp;-&nbsp;</b></font>', $pos+75);
$strPages=trim(substr($responseListe, $pos+75, $posFin-($pos+75)));
$tabPages=explode('&nbsp;/&nbsp;', $strPages);
$pageCour=$tabPages[0];
$nbTotPage=$tabPages[1];
}
$pos=strpos($responseListe, '&nbsp;-&nbsp;</b></font>'."\r\n\t\t\t".'<font face="Arial" size="2"><b>');
if ($pos>0) {
$posFin=strpos($responseListe, '</b></font>', $pos+60);
$nbRepParPage=trim(substr($responseListe, $pos+60, $posFin-($pos+60)));
}
/* TODO = Récupérer les infos étab + entrep pour chaque ligne du tableau !!!*
*/
if ($libelleErreur=='Erreur SCRIPT Inconnue')
$libelleErreur='';
for ($i=1;$i<11; $i++)
{
if ($numEtab==$nbRepTot)
break; // Il n'y a pas plus d'établissement à récupérer ! On sort...
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/question.asp?action=detail&numtableau='.$i, $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Liste_principal.asp');
if ($responseQ['code']==302)
{
// Siren Invalide ou autre erreur non répertoriée !
$header=$responseQ['header'];
if (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=siege&numtableau='.$i)
{
// On déroule les URLs d'appels fiche siège
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege&numtableau='.$i, $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false');
//sleep(1);
// Frames réponse niveau Etab
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege');
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege');
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege');
$responseEtab=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=siege&numtableau='.$i.'&origine=liste', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=siege&numtableau='.$i, true);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=siege&numtableau='.$i.'&origine=liste', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=siege&numtableau='.$i);
$responseEtab=$responseEtab['body'];
// Récupération de la fiche entreprise INSEE
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i, $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=siege&numtableau='.$i.'&origine=liste');
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i);
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i);
$responseEntreprise=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=entreprise&numtableau='.$i.'&origine=liste', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/Frame_Reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i, true);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=entreprise&numtableau='.$i.'&origine=liste', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/Frame_Reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i);
$responseEntreprise=$responseEntreprise['body'];
$tabInfoEntrep=getDataEntreprise($responseEntreprise);
}
elseif (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=etablissement&numtableau='.$i)
{
// On déroule les URLs d'appels établissement
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement&numtableau='.$i, $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false');
//sleep(1);
// Frames réponse niveau Etab
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement');
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement');
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement');
$responseEtab=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=etablissement&numtableau='.$i.'&origine=liste', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=etablissement&numtableau='.$i, true);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=etablissement&numtableau='.$i.'&origine=liste', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=etablissement&numtableau='.$i);
$responseEtab=$responseEtab['body'];
}
$tabInfoEtab=getDataEtablissement($responseEtab);
$tabRet[]=array_merge($tabInfoEtab, $tabInfoEntrep);
if ($libelleErreur<>'' && $tabInfoEtab['siret'] =='') $siret=$sirenLu . $nicLu;
else $siret=$tabInfoEtab['siret'];
$str= date('d/m/Y à H:i:s') .';'.
$libelleErreur .';'.
// Siège
$siret .';'.
$tabInfoEtab['active'] .';'.
$tabInfoEtab['dateAbsActivite'] .';'.
$tabInfoEtab['typeEtablissement'] .';'.
$tabInfoEtab['dateMAJ'] .';'.
$tabInfoEtab['dateCreation'] .';'.
$tabInfoEtab['raisonSociale'] .';'.
$tabInfoEtab['Enseigne'] .';'.
$tabInfoEtab['NafCode'] .';'.
$tabInfoEtab['NafLib'] .';'.
$tabInfoEtab['AdresseLigne1'] .';'.
$tabInfoEtab['AdresseLigne2'] .';'.
$tabInfoEtab['AdresseLigne3'] .';'.
$tabInfoEtab['etatJuridique'] .';'.
$tabInfoEtab['dateEtatJuridique'] .';'.
// Entreprise
$tabInfoEntrep['dateCreationEntrep'] .';'.
$tabInfoEntrep['raisonSocialeEntrep'] .';'.
$tabInfoEntrep['sigle'] .';'.
$tabInfoEntrep['NafCodeEntrep'] .';'.
$tabInfoEntrep['NafLibEntrep'] .';'.
$tabInfoEntrep['FJCodeEntrep'] .';'.
$tabInfoEntrep['FJLibEntrep'] .';'.
$tabInfoEntrep['nbEtabActifs'] .';';
$fp=fopen('/var/www/_includes/partenaires/insee/debug.csv', 'a');
fwrite($fp, $str."\r\n");
fclose($fp);
$numEtab++;
$num=$key+1;
$typeEtablissement=$tabInfoEtab['typeEtablissement'];
// echo "Question $num/$nbLignes : Demande=$sirenLu$nicLu Etablissement $numEtab/$nbRepTot $typeEtablissement=$siret $libelleErreur\r\n";
flush();
sleep(1);
}//end for
}//end if
if ($pageCour==$nbTotPage) {
// On sort de la boucle de passage à la page de liste suivante car il n'y a plus d'autres pages
break;
} else {
$action='listeplus';
$referer=SITE_INSEE .'REPERTOIRE/Reponse/Liste_principal.asp';
}
}
} //Fin While
// die('Boucle');
} /* Fin de la boucle option 'lst' */ else
{
// Requête d'interrogation
$postData=array('siren'=>$sirenLu,
'option'=>$option,
'nic'=>$nicLu,
'dep'=>'',
'listeDep'=>'');
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false', $response1["header"]["Set-Cookie"], $postData, SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle');
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/question.asp?action=nouveau', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false');
if ($responseQ['code']==302)
{
//$libelleErreur='Erreur INSEE inconnue 1';
// Siren Invalide ou autre erreur non répertoriée !
$header=$responseQ['header'];
if (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur')
{
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false');
$responseErreur=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Erreur_principal.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur',true);
$pos=strpos($responseErreur['body'], '<td valign=top bgcolor="#FFCC33"><font face=Arial size=2><b>');
if ($pos>0){
$posFin=strpos($responseErreur['body'], '</b></font></td>', $pos+60);
$libelleErreur=trim(substr($responseErreur['body'], $pos+60, $posFin-($pos+60)));
} else
$libelleErreur='Erreur INSEE inconnue';
}
else
{ if (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege')
// L'établissement demandé est un siège !
$option=1;
if ($option==3)
{
// On déroule les URLs d'appels établissement
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false');
//sleep(1);
// Frames réponse niveau Etab
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement');
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement');
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement');
$responseEtab=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=etablissement', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement', true);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=etablissement', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement');
$responseEtab=$responseEtab['body'];
// On recherche si on est bien sur un fiche établissement
$pos=strpos($responseEtab, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche Etablissement</B>');
if ($pos<1)
$libelleErreur='Erreur SCRIPT Fiche Etablissement non trouvée';
else
$libelleErreur='';
$responseSiege=$responseEtab;
}
else
{
// On déroule les URLs d'appels Sièges
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false');
//sleep(1);
// Frames réponse niveau sièges
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege');
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege');
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege');
$responseSiege=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=siege', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege', true);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=siege', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege');
$responseSiege=$responseSiege['body'];//strip_tags(html_entity_decode(), '<td>');
// On recherche si on est bien sur un fiche siège
$pos=strpos($responseSiege, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche siège</B>');
if ($pos<1)
$libelleErreur='Erreur SCRIPT Fiche Siège non trouvée';
else
$libelleErreur='';
}
// Niveau entreprise
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=siege');
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail');
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=entreprise');
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail');
$responseEntreprise=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=entreprise', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail', true);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=entreprise', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail');
$responseEntreprise=$responseEntreprise['body'];
$pos=strpos($responseEntreprise, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche Entreprise</B>');
if ($pos<1) {
$libelleErreur='Erreur SCRIPT Fiche Entreprise non trouvée';
}
/** Recherche des données établissement
**/
$tabInfoEtab=getDataEtablissement($responseSiege);
/** Recherche des données entreprise
**/
$tabInfoEntrep=getDataEntreprise($responseEntreprise);
}
}
if ($libelleErreur<>'' && $tabInfoEtab['siret'] =='') $siret=$sirenLu . $nicLu;
else $siret=$tabInfoEtab['siret'];
$str= date('d/m/Y à H:i:s') .';'.
$libelleErreur .';'.
// Siège
$siret .';'.
$tabInfoEtab['active'] .';'.
$tabInfoEtab['dateAbsActivite'] .';'.
$tabInfoEtab['typeEtablissement'] .';'.
$tabInfoEtab['dateMAJ'] .';'.
$tabInfoEtab['dateCreation'] .';'.
$tabInfoEtab['raisonSociale'] .';'.
$tabInfoEtab['Enseigne'] .';'.
$tabInfoEtab['NafCode'] .';'.
$tabInfoEtab['NafLib'] .';'.
$tabInfoEtab['AdresseLigne1'] .';'.
$tabInfoEtab['AdresseLigne2'] .';'.
$tabInfoEtab['AdresseLigne3'] .';'.
$tabInfoEtab['etatJuridique'] .';'.
$tabInfoEtab['dateEtatJuridique'] .';'.
// Entreprise
$tabInfoEntrep['dateCreationEntrep'] .';'.
$tabInfoEntrep['raisonSocialeEntrep'] .';'.
$tabInfoEntrep['sigle'] .';'.
$tabInfoEntrep['NafCodeEntrep'] .';'.
$tabInfoEntrep['NafLibEntrep'] .';'.
$tabInfoEntrep['FJCodeEntrep'] .';'.
$tabInfoEntrep['FJLibEntrep'] .';'.
$tabInfoEntrep['nbEtabActifs'] .';'.
//echo $str.'<br/>';
$fp=fopen('/var/www/_includes/partenaires/insee/debug.csv', 'a');
fwrite($fp, $str."\r\n");
fclose($fp);
$num=$key+1;
$typeEtablissement=$tabInfoEtab['typeEtablissement'];
// echo "Ligne $num/$nbLignes : Question=$sirenLu$nicLu Retour $typeEtablissement=$siret $libelleErreur (PJ=$nbPJ)\r\n";
//echo $str."<br/>";
flush();
$tabRet=array(0=>array_merge($tabInfoEntrep, $tabInfoEtab));
}
}
return $tabRet;
}
?>

View File

@ -1,66 +0,0 @@
Amélioration des scores
=======================
Suppression fichier
Metier/scores/configMRatios.php
Metier/scores/configMFinancier.php
Définition des fichiers
=======================
Metier/scores/globalCommentaires.php
- Définition des variables disponibles
- Function déclaration global et unset
=>
Créer une classe des variables avec valeur par défaut, définir setter et getter
Pouvoir retirer les déclatations en début de classMScores/calculIndiscore avec phase d'init
Si les var son public on peut accéder par $this->VAR
Metier/scores/Variables/configMRatios.php
- $tva
- $tabVariables
- $tabInfla
- function getInflation
- $tabTxRendObli
- function getTxRendement
- $tabFormules
- function calculRatios
=>
Les fonctions dans classMRatios
Voir les appels
Retirer dans classMRatios, genereCacheIndiscore
Metier/scores/Variables/FormulesIndiscore{version}.php
- Conditions, Formules
Metier/scores/Variables/FormulesValo{version}.php
- Conditions, Formules
=>
Les adaptations faites au niveau des variables (globalCommentaires) doivent être repris
dans ce fichier pour la genération ou autres méthodes
Metier/scores/Variables/CommentsIndiscore{version}.php
- $tabCommentaires
- $tabTri
- $tabTriAff
Metier/scores/Variables/CommentsValo{version}.php
- $tabCommentaires
- $tabTri
- $tabTriAff
Principe pour la modification
=============================

File diff suppressed because it is too large Load Diff

View File

@ -1,611 +0,0 @@
<?php
$tabCommentaires=array();
$tabCommentaires[5000][2][1] = "Valorisation de {NOMEN} en date du : {JOUR_DATE}
";
$tabCommentaires[7000][2][10] = "<LI><B>ENTREPRISE INACTIVE</B>";
$tabCommentaires[7001][2][10] = "<LI><B>ENTREPRISE EN ACTIVITE SELON l'INSEE MAIS DECLAREE INACTIVE EN SOURCE GREFFES</B>";
$tabCommentaires[7002][2][10] = "<LI><B>ENTREPRISE SANS ACTIVITE SELON l'INSEE MAIS DECLAREE ENCORE EN ACTIVITE EN SOURCE GREFFES</B>";
$tabCommentaires[7003][2][10] = "COULEUR(VER3,ROU2,BLE3,MAR,MET2,VIO1,ROU3,NOI2,MET,VER2,ROU1,MET3,BLE,MAR2,MET1,VER2)";
$tabCommentaires[9995][2][1] = "L'objet social publié dans les annonces légales est libellé comme : <I>'{ANNONCEOBJET}'
";
$tabCommentaires[9996][2][1] = "Au répertoire national l'activité est codifiée {APEENT(5)}, {APEENT}
";
$tabCommentaires[199000][2][0] = "Cette entreprise est une TPE à vocation principalement régionale.";
$tabCommentaires[200000][2][0] = "Cette entreprise est une PME à vocation principalement régionale.";
$tabCommentaires[201000][2][0] = "Cette entreprise est une PME importante au sein du bassin économique régional {RPEN}";
$tabCommentaires[202000][2][0] = "L' entreprise '{NOMEN}' est une entreprise importante au sein du bassin économique régional.";
$tabCommentaires[203000][2][0] = "Cette entreprise est une PME majeure au sein de la région {RPEN}.";
$tabCommentaires[204000][2][0] = "C'est une des premières entreprises françaises.";
$tabCommentaires[205000][2][0] = " C'est une PME qui compte dans le département {DEPSIE}.";
$tabCommentaires[205099][2][0] = "C'est une PME de taille signicative dont le siège situe hors de France ({DEPSIE_DE}).";
$tabCommentaires[205200][2][0] = "Les effectifs de l'établissement représentant une part importante de la population de la commune d'implantation, l'entreprise a une forte influence locale.";
$tabCommentaires[2400101][2][10] = "L'entreprise se situe à la 1<sup>ere</sup> place dans un marché dont la taille est estimée à {MARCHE} et qui progresse de {!MARCHEVOL}.";
$tabCommentaires[2400102][2][10] = "L'entreprise se situe à la {MARCHEPLACE}<sup>eme</sup> place dans un marché dont la taille est estimée à {MARCHE} et qui progresse de {!MARCHEVOL}.";
$tabCommentaires[2400103][2][10] = "L'entreprise se situe à la 1<sup>ere</sup> place dans un marché dont la taille est estimée à {MARCHE}.";
$tabCommentaires[2400109][2][10] = "L'entreprise se situe dans un marché dont la taille est estimée à {MARCHE} et qui progresse de {!MARCHEVOL}.";
$tabCommentaires[2400111][2][10] = "L'entreprise se situe à la 1<sup>ere</sup> place dans un marché dont la taille est estimée à {MARCHE} et qui régresse de {!MARCHEVOL}.";
$tabCommentaires[2400112][2][10] = "L'entreprise se situe à la {MARCHEPLACE}<sup>eme</sup> place dans un marché dont la taille est estimée à {MARCHE} et qui régresse de {!MARCHEVOL}.";
$tabCommentaires[2400119][2][10] = "L'entreprise se situe dans un marché dont la taille est estimée à {MARCHE} et qui régresse de {MARCHEVOL}.";
$tabCommentaires[2400121][2][10] = "L'entreprise se situe à la 1<sup>ere</sup> place dans un marché dont la taille est estimée à {MARCHE}.";
$tabCommentaires[2400122][2][10] = "L'entreprise se situe à la {MARCHEPLACE}<sup>eme</sup> place dans un marché dont la taille est estimée à {MARCHE}.";
$tabCommentaires[2400123][2][10] = "L'entreprise figure parmi les 200 premières affaires dans un marché dont la taille est estimée à {MARCHE}.";
$tabCommentaires[2400124][2][10] = "L'entreprise figure parmi les 500 premières affaires dans un marché dont la taille est estimée à {MARCHE}.";
$tabCommentaires[2400125][2][10] = "L'entreprise figure parmi les 1000 premières affaires dans un marché dont la taille est estimée à {MARCHE}.";
$tabCommentaires[2400126][2][10] = "L'entreprise figure parmi les 2000 premières affaires dans un marché dont la taille est estimée à {MARCHE}.";
$tabCommentaires[2400200][2][10] = "<C.>, elle en représente {MARCHEPART}, et sa part de marché évolue favorablement de {MARCHEPARTEVOL}.";
$tabCommentaires[2400210][2][10] = "<C.>, elle en représente {MARCHEPART}, et sa part de marché évolue défavorablement de {MARCHEPARTEVOL}.";
$tabCommentaires[2400300][2][10] = "Part conséquent on peut dire que le volume de son marché se developpe de {MARCHEVOLUMEVOL}.";
$tabCommentaires[2400310][2][10] = "Part conséquent on peut dire que le volume de son marché diminue de {MARCHEVOLUMEVOL}.";
$tabCommentaires[2400410][2][10] = "A noter qu'en termes d'emplois, le marché dans son ensemble représente plus de {MARCHESAL} salariés pour un nombre de {MARCHENBENT} entreprises.";
$tabCommentaires[2400420][2][10] = "A noter qu'en termes d'emplois, le marché dans son ensemble représente plus de {MARCHESAL} salariés.";
$tabCommentaires[2400430][2][10] = "A noter que le marché dans son ensemble représente plus de {MARCHENBENT} entreprises.";
$tabCommentaires[3902100][2][10] = "<LI> Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que {VENTE_VILLE_NB} affaires localisées à {VILLE} se sont négociées dans une fourchette de {VENTEMIN_VILLE_MT} et {VENTEMAX_VILLE_MT}.";
$tabCommentaires[3902101][2][10] = "<LI> Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires localisées à {VILLE} se sont négociées dans une fourchette de {VENTEMIN_VILLE_MT} et {VENTEMAX_VILLE_MT}.";
$tabCommentaires[3902110][2][10] = "<LI> Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule affaire de la même localité est intervenue pour un montant de {VENTEMIN_VILLE_MT}.";
$tabCommentaires[3902111][2][10] = "<LI> Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires de la même localité se sont négociées aux environs de {VENTEMIN_VILLE_MT}.";
$tabCommentaires[3902130][2][10] = "<LI> Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule vente est intervenue dans la même localité pour un montant de {VENTEMAX_VILLE_MT}.";
$tabCommentaires[3902131][2][10] = "<LI> Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires de la même localité se sont négociées aux environs de {VENTEMAX_VILLE_MT}.";
$tabCommentaires[3902200][2][10] = "<C.>, alors qu'on dénombre {VENTE_DEP_NB} cessions dans le département dans une fourchette de {VENTEMIN_DEP_MT} à {VENTEMAX_DEP_MT}.";
$tabCommentaires[3902300][2][10] = "<LI> Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que {VENTE_DEP_NB} affaires de la proche région se sont négociées dans une fourchette de {VENTEMIN_DEP_MT} et {VENTEMAX_DEP_MT}.";
$tabCommentaires[3902301][2][10] = "<LI> Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires du département se sont négociées dans une fourchette de {VENTEMIN_DEP_MT} et {VENTEMAX_DEP_MT}.";
$tabCommentaires[3902310][2][10] = "<LI> Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule affaire de la même localité est intervenue pour un montant de {VENTEMIN_DEP_MT}.";
$tabCommentaires[3902311][2][10] = "<LI> Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires du même département se sont négociées aux environs de {VENTEMIN_DEP_MT}.";
$tabCommentaires[3902330][2][10] = "<LI> Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule vente est intervenue dans le même département pour un montant de {VENTEMAX_DEP_MT}.";
$tabCommentaires[3902331][2][10] = "<LI> Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires de la proche région se sont négociées aux environs de {VENTEMAX_DEP_MT}.";
$tabCommentaires[3902900][2][10] = "(Sur l'ensemble du territoire, sur la même période, ce sont {VENTE_FRA_NB} ventes qui sont intervenues pour un montant moyen de {VENTEMOY_FRA_MT})";
$tabCommentaires[3910001][2][0] = "<TABLE CLASS='TABLEAUDEFAUTPLUS' id='TABLEAUPLUS'>";
$tabCommentaires[3910001][2][2] = "<TR CLASS='TITRES'> <TH> LES PLUS <I>(en vert la condition atteinte)</I></TH><TH>Taux ou Valeur</TH></TR>";
$tabCommentaires[3910100][2][10] = "<TR CLASS='VERT'><TH>Moyenne sur 3 ans du taux de croissance du CA > inflation</TH><TD>{Revol[536]}</TD></TR>";
$tabCommentaires[3910101][2][10] = "<TR ><TH>Moyenne sur 3 ans du taux de croissance du CA > inflation</TH><TD>{Revol[536]}</TD></TR>";
$tabCommentaires[3910120][2][10] = "<TR CLASS='VERT'><TH>Résultat courant >0 avec croissance du CA sur 3 ans</TH><TD>{R[170]}</TD></TR>";
$tabCommentaires[3910121][2][10] = "<TR ><TH>Résultat courant >0 avec croissance du CA sur 3 ans</TH><TD>{R[170]}</TD></TR>";
$tabCommentaires[3910130][2][10] = "<TR CLASS='VERT'><TH>CAF/actif économique > Inflation sur 3 ans</TH><TD>{R[539]}</TD></TR>";
$tabCommentaires[3910131][2][10] = "<TR ><TH>CAF/actif économique > Inflation sur 3 ans</TH><TD>{R[539]}</TD></TR>";
$tabCommentaires[3910135][2][10] = "<TR CLASS='VERT'><TH>CAF/capitaux permanents > Inflation sur 3 ans</TH><TD>{R[541]}</TD></TR>";
$tabCommentaires[3910136][2][10] = "<TR ><TH>CAF/capitaux permanents > Inflation sur 3 ans</TH><TD>{R[541]}</TD></TR>";
$tabCommentaires[3910140][2][10] = "<TR CLASS='VERT'><TH>Capitaux propres > 15% Total Bilan </TH><TD>{R[510]}</TD></TR>";
$tabCommentaires[3910141][2][10] = "<TR ><TH>Capitaux propres > 15% Total Bilan </TH><TD>{R[510]}</TD></TR>";
$tabCommentaires[3910145][2][10] = "<TR CLASS='VERT'><TH>Capitaux propres/capitaux permanents > 40%</TH><TD>{R[240]}</TD></TR>";
$tabCommentaires[3910146][2][10] = "<TR ><TH>Capitaux propres/capitaux permanents > 40%</TH><TD>{R[240]}</TD></TR>";
$tabCommentaires[3910150][2][10] = "<TR CLASS='VERT'><TH>Fonds de Roulement > 0 </TH><TD>{R[231]}</TD></TR>";
$tabCommentaires[3910151][2][10] = "<TR ><TH>Fonds de Roulement > 0 </TH><TD>{R[231]}</TD></TR>";
$tabCommentaires[3910155][2][10] = "<TR CLASS='VERT'><TH>Fonds de Roulement/BFR > 70% </TH><TD>{R[234]}</TD></TR>";
$tabCommentaires[3910156][2][10] = "<TR ><TH>Fonds de Roulement/BFR > 70% </TH><TD>{R[234]}</TD></TR>";
$tabCommentaires[3910160][2][10] = "<TR CLASS='VERT'><TH>Trésorerie > 30 J de CA</TH><TD>{!R[512]}</TD></TR>";
$tabCommentaires[3910161][2][10] = "<TR ><TH>Trésorerie > 30 J de CA</TH><TD>{!R[512]}</TD></TR>";
$tabCommentaires[3910170][2][10] = "<TR CLASS='VERT'><TH>Dettes financières LMT / CAF <= 4 ans </TH><TD>{R[247]}</TD></TR>";
$tabCommentaires[3910171][2][10] = "<TR ><TH>Dettes financières LMT / CAF <= 4 ans </TH><TD>{R[247]}</TD></TR>";
$tabCommentaires[3910180][2][10] = "<TR CLASS='VERT'><TH>Résultat d'exploitation/charges financières > 400%</TH><TD>{R[542]}</TD></TR>";
$tabCommentaires[3910181][2][10] = "<TR ><TH>Résultat d'exploitation/charges financières > 400%</TH><TD>{R[542]}</TD></TR>";
$tabCommentaires[3910190][2][10] = "<TR CLASS='VERT'><TH>Liquidité > 10 fois la dette exigible </TH><TD>{R[308]} fois</TD></TR>";
$tabCommentaires[3910191][2][10] = "<TR ><TH>Liquidité > 10 fois la dette exigible </TH><TD>{R[308]} fois</TD></TR>";
$tabCommentaires[3911001][2][0] = "<TABLE CLASS='TABLEAUDEFAUTMOINS' id='TABLEAUMOINS'>";
$tabCommentaires[3911001][2][2] = "<TR CLASS='TITRES'> <TH> LES MOINS <I>(en rouge la condition atteinte)</I></TH><TH>Taux ou Valeur</TH></TR>";
$tabCommentaires[3911100][2][10] = "<TR CLASS='ROUGE'><TH>Baisse du résultat courant sur 3 ans </TH><TD>{Rp2[170]} <LI=> {R[170]}</TD></TR>";
$tabCommentaires[3911101][2][10] = "<TR ><TH>Baisse du résultat courant sur 3 ans </TH><TD>{Rp2[170]} <LI=> {R[170]}</TD></TR>";
$tabCommentaires[3911110][2][10] = " <TR CLASS='ROUGE'><TH>Baisse de la trésorerie en jours de CA (N/N-3) </TH><TD>{Rp2[512]} <LI=> {R[512]}</TD></TR>";
$tabCommentaires[3911111][2][10] = " <TR ><TH>Baisse de la trésorerie en jours de CA (N/N-3) </TH><TD>{Rp2[512]} <LI=> {R[512]}</TD></TR>";
$tabCommentaires[3911120][2][10] = "<TR CLASS='ROUGE'><TH>Fonds propres < 0 & Résultat courant < 0 </TH><TD>{R[070]} & {R[170]}</TD></TR>";
$tabCommentaires[3911121][2][10] = "<TR ><TH>Fonds propres < 0 & Résultat courant < 0 </TH><TD>{R[070]} & {R[170]}</TD></TR>";
$tabCommentaires[3911130][2][10] = "<TR CLASS='ROUGE'><TH>Fonds propres < 10% Total Bilan </TH><TD>{R[510]}</TD></TR>";
$tabCommentaires[3911131][2][10] = "<TR ><TH>Fonds propres < 10% Total Bilan </TH><TD>{R[510]}</TD></TR>";
$tabCommentaires[3911145][2][10] = "<TR CLASS='ROUGE'><TH>Capitaux propres/capitaux permanents < 30%</TH><TD>{R[240]}</TD></TR>";
$tabCommentaires[3911146][2][10] = "<TR ><TH>Capitaux propres/capitaux permanents < 30%</TH><TD>{R[240]}</TD></TR>";
$tabCommentaires[3911150][2][10] = "<TR CLASS='ROUGE'><TH>Credit Clients > 60 jours de CA </TH><TD>{R[278]}</TD></TR>";
$tabCommentaires[3911151][2][10] = "<TR ><TH>Credit Clients > 60 jours de CA </TH><TD>{R[278]}</TD></TR>";
$tabCommentaires[3911160][2][10] = "<TR CLASS='ROUGE'><TH>Dettes financières LT/CAF > 5ans </TH><TD>{R[247]}</TD></TR>";
$tabCommentaires[3911161][2][10] = "<TR ><TH>Dettes financières LT/CAF > 5ans </TH><TD>{R[247]}</TD></TR>";
$tabCommentaires[3911170][2][10] = "<TR CLASS='ROUGE'><TH>Résultat d'exploitation/Charges financières < 200% </TH><TD>{R[542]}</TD></TR>";
$tabCommentaires[3911171][2][10] = "<TR ><TH>Résultat d'exploitation/Charges financières < 200% </TH><TD>{R[542]}</TD></TR>";
$tabCommentaires[3911180][2][10] = "<TR CLASS='ROUGE'><TH>Fonds de Roulement < BFR, Trésorerie < 0 </TH><TD>{R[226]}</TD></TR>";
$tabCommentaires[3911181][2][10] = "<TR ><TH>Fonds de Roulement < BFR, Trésorerie < 0 </TH><TD>{R[226]}</TD></TR>";
$tabCommentaires[20001000][2][10] = "Cette étude a pour but de rechercher la valeur globale de l'entreprise en tenant compte des ses éléments financiers et de ses différentes caractéristiques intrinsèques (forces et faiblesses).";
$tabCommentaires[20001000][2][30] = "Schématiquement, les méthodes d'évaluation de l'entreprise que nous pouvons utiliser se regroupent en trois catégories:";
$tabCommentaires[20001000][2][31] = "<LI> celles qui relèvent dune approche patrimoniale.";
$tabCommentaires[20001000][2][32] = "<LI> celles qui sappuient sur la rentabilité.";
$tabCommentaires[20001000][2][33] = "<LI> celles qui découlent dune comparaison, qui valorise une société à partir de données sur des sociétés présentant un profil comparable.";
$tabCommentaires[20001000][2][50] = "L'objectif de ce rapport est d'indiquer une fouchette de valeurs, à partir des éléments financiers et statistiques objectifs du système Score & Decision.";
$tabCommentaires[20011000][2][40] = "Dans le cadre de notre étude, voici les principales forces et faiblesses que nous avons relevées :";
$tabCommentaires[20011900][2][10] = "<I>A noter que au delà des aspects financiers, patrimoniaux et de rentabilité, la valeur de l'entreprise est plus ou moins influencée par ses qualités intrinsèques :";
$tabCommentaires[20011900][2][20] = "<LI> Potentiel de développement.";
$tabCommentaires[20011900][2][21] = "<LI> Positionnement sur son marché et concurrence.";
$tabCommentaires[20011900][2][22] = "<LI> Lien de dépendance et impact du départ du dirigeant.";
$tabCommentaires[20011900][2][23] = "<LI> Motivation et ambiance interne.";
$tabCommentaires[20011900][2][30] = "Ces caractéristiques jouent sur la valeur en l'améliorant ou en la pénalisant.</I>";
$tabCommentaires[20012000][2][10] = "L'évaluation financière de l'entreprise que nous réalisons ici, au titre de l'exercice {BILANANNEE} repose sur les comptes annuels des 3 derniers exercices dont les éléments sont listés ci dessous.";
$tabCommentaires[20012001][2][10] = "L'évaluation financière de l'entreprise que nous réalisons ici, au titre de l'exercice {BILANANNEE} repose sur les comptes annuels de l'exercice dont les éléments sont listés ci dessous.";
$tabCommentaires[20012002][2][10] = "L'évaluation financière de l'entreprise que nous réalisons ici, au titre de l'exercice {BILANANNEE} repose sur les comptes annuels des 2 derniers exercices dont les éléments sont listés ci dessous.";
$tabCommentaires[20012100][2][0] = "<TABLE CLASS='TABLEAUBILAN'>";
$tabCommentaires[20012100][2][1] = "<TR CLASS='TITRES'> <TH> BILAN</TH><TH>{BILANDATEp2} ({nmp2} mois)</TH><TH>{BILANDATEp} ({nmp} mois)</TH><TH>{BILANDATE} ({nm} mois)</TH></TR>";
$tabCommentaires[20012110][2][8] = "<TR CLASS='TOTAL'><TH>Total Actif </TH><TD>{Rp2[069]}</TD><TD>{Rp[069]}</TD><TD>{R[069]}</TD></TR>";
$tabCommentaires[20012110][2][9] = "<TR CLASS='BLANC'><TH>Dont: </TH><TD> </TD><TD> </TD><TD> </TD></TR>";
$tabCommentaires[20012110][2][11] = "<TR CLASS='LIGNE1'><TH>Immobilisations</TH><TD>{Rp2[059]}</TD><TD>{Rp[059]}</TD><TD>{R[059]}</TD></TR>";
$tabCommentaires[20012110][2][21] = "<TR CLASS='BLANC'><TH>Stocks</TH><TD>{Rp2[060]}</TD><TD>{Rp[060]}</TD><TD>{R[060]}</TD></TR>";
$tabCommentaires[20012110][2][31] = "<TR CLASS='LIGNE1'><TH>Créances clients </TH><TD>{Rp2[061]}</TD><TD>{Rp[061]}</TD><TD>{R[061]}</TD></TR>";
$tabCommentaires[20012110][2][41] = "<TR CLASS='BLANC'><TH>Autres créances </TH><TD>{Rp2[062]}</TD><TD>{Rp[062]}</TD><TD>{R[062]}</TD></TR>";
$tabCommentaires[20012110][2][51] = "<TR CLASS='LIGNE1'><TH>Disponibilités </TH><TD>{Rp2[063]}</TD><TD>{Rp[063]}</TD><TD>{R[063]}</TD></TR>";
$tabCommentaires[20012120][2][1] = "<TR CLASS='TOTAL'><TH>Total Passif </TH><TD>{Rp2[022]}</TD><TD>{Rp[022]}</TD><TD>{R[022]}</TD></TR>";
$tabCommentaires[20012120][2][9] = "<TR CLASS='BLANC'><TH>Dont: </TH><TD> </TD><TD> </TD><TD> </TD></TR>";
$tabCommentaires[20012120][2][11] = "<TR CLASS='LIGNE1'><TH>Capitaux propres </TH><TD>{Rp2[070]}</TD><TD>{Rp[070]}</TD><TD>{R[070]}</TD></TR>";
$tabCommentaires[20012120][2][21] = "<TR CLASS='BLANC'><TH>Provisions pour risques & charges </TH><TD>{Rp2[071]}</TD><TD>{Rp[071]}</TD><TD>{R[071]}</TD></TR>";
$tabCommentaires[20012120][2][31] = "<TR CLASS='LIGNE1'><TH>Dettes financières </TH><TD>{Rp2[083]}</TD><TD>{Rp[083]}</TD><TD>{R[083]}</TD></TR>";
$tabCommentaires[20012120][2][41] = "<TR CLASS='BLANC'><TH>Dettes fournisseurs </TH><TD>{Rp2[084]}</TD><TD>{Rp[084]}</TD><TD>{R[084]}</TD></TR>";
$tabCommentaires[20012200][2][0] = "<TABLE CLASS='TABLEAUSITUFI'>";
$tabCommentaires[20012200][2][2] = "<TR CLASS='TITRES'> <TH> Situation financière</TH><TH>{BILANDATEp2} ({nmp2} mois)</TH><TH>{BILANDATEp} ({nmp} mois)</TH><TH>{BILANDATE} ({nm} mois)</TH></TR>";
$tabCommentaires[20012210][2][11] = "<TR CLASS='LIGNE1'><TH>Dettes </TH><TD>{Rp2[032]}</TD><TD>{Rp[032]}</TD><TD>{R[032]}</TD></TR>";
$tabCommentaires[20012210][2][21] = "<TR CLASS='BLANC'><TH>Capacité d'autofinancement </TH><TD>{Rp2[233]}</TD><TD>{Rp[233]}</TD><TD>{R[233]}</TD></TR>";
$tabCommentaires[20012210][2][31] = "<TR CLASS='LIGNE1'><TH>Fonds de Roulement </TH><TD>{Rp2[231]}</TD><TD>{Rp[231]}</TD><TD>{R[231]}</TD></TR>";
$tabCommentaires[20012210][2][41] = "<TR CLASS='BLANC'><TH>Besoin en Fonds de Roulement </TH><TD>{Rp2[232]}</TD><TD>{Rp[232]}</TD><TD>{R[232]}</TD></TR>";
$tabCommentaires[20012210][2][51] = "<TR CLASS='TOTAL'><TH>Trésorerie </TH><TD>{Rp2[249]}</TD><TD>{Rp[249]}</TD><TD>{R[249]}</TD></TR>";
$tabCommentaires[20012220][2][0] = "{GRAPH('Situation financière',R[231]#T,R[232]#T,R[249]#T)}";
$tabCommentaires[20012400][2][0] = "<TABLE CLASS='TABLEAURESULTAT'>";
$tabCommentaires[20012400][2][2] = "<TR CLASS='TITRES'> <TH> Compte de Résultat </TH><TH>{BILANDATEp2} ({nmp2} mois)</TH><TH>{BILANDATEp} ({nmp} mois)</TH><TH>{BILANDATE} ({nm} mois)</TH></TR>";
$tabCommentaires[20012410][2][11] = "<TR CLASS='LIGNE1'><TH>Chiffre d'affaires </TH><TD>{Rp2[005]}</TD><TD>{Rp[005]}</TD><TD>{R[005]}</TD></TR>";
$tabCommentaires[20012410][2][21] = "<TR CLASS='BLANC'><TH>Marge commerciale </TH><TD>{Rp2[110]}</TD><TD>{Rp[110]}</TD><TD>{R[110]}</TD></TR>";
$tabCommentaires[20012410][2][31] = "<TR CLASS='LIGNE1'><TH>Valeur ajoutée </TH><TD>{Rp2[130]}</TD><TD>{Rp[130]}</TD><TD>{R[130]}</TD></TR>";
$tabCommentaires[20012410][2][41] = "<TR CLASS='BLANC'><TH>Excédent brut d'exploitation </TH><TD>{Rp2[140]}</TD><TD>{Rp[140]}</TD><TD>{R[140]}</TD></TR>";
$tabCommentaires[20012410][2][51] = "<TR CLASS='LIGNE1'><TH>Résultat courant avant impôts </TH><TD>{Rp2[150]}</TD><TD>{Rp[150]}</TD><TD>{R[150]}</TD></TR>";
$tabCommentaires[20012410][2][61] = "<TR CLASS='BLANC'><TH>Résultat exceptionnel </TH><TD>{Rp2[180]}</TD><TD>{Rp[180]}</TD><TD>{R[180]}</TD></TR>";
$tabCommentaires[20012410][2][71] = "<TR CLASS='LIGNE1'><TH>Résultat net </TH><TD>{Rp2[010]}</TD><TD>{Rp[010]}</TD><TD>{R[010]}</TD></TR>";
$tabCommentaires[20012420][2][0] = "{GRAPH('Chiffres d'affaires,Marge brute,Résultats',R[005]#T,R[122]#T,R[010]#T)}";
$tabCommentaires[20020100][2][0] = "<H3> Multiple du Chiffre d'affaires";
$tabCommentaires[20020100][2][51] = "Résultat de la méthode du multiple du Chiffre d'affaires entre {VAL970_MT} et {VAL971_MT}.";
$tabCommentaires[20021200][2][0] = "<H3> Méthode de la valeur patrimoniale";
$tabCommentaires[20021200][2][51] = "Résultat de la méthode valeur patrimoniale entre {VAL978_MT} et {VAL979_MT}.";
$tabCommentaires[20022200][2][0] = "<H3> Méthode de la valeur de productivité";
$tabCommentaires[20022200][2][51] = "Résultat de la méthode valeur de la productivité entre {VAL974_MT} et {VAL975_MT}.";
$tabCommentaires[20022500][2][0] = "<H3> Méthode de la valeur du rendement";
$tabCommentaires[20022500][2][51] = "Résultat de la méthode valeur du rendement entre {VAL982_MT} et {VAL983_MT}.";
$tabCommentaires[20023100][2][0] = "<H3> Multiple du Bénéfice";
$tabCommentaires[20023100][2][51] = "Résultat de la méthode du multiple du Bénéfice entre {VAL984_MT} et {VAL985_MT}.";
$tabCommentaires[20025200][2][0] = "<H3> Multiple de l'EBE";
$tabCommentaires[20025200][2][20] = "Valorisation entre{VAL986_MT} et {VAL987_MT}.";
$tabCommentaires[20026100][2][0] = "<H3> Multiple de la MBA";
$tabCommentaires[20026100][2][20] = "Selon cette méthode la valeur de l'entreprise se situe entre{VAL988_MT} et {VAL989_MT}.";
$tabCommentaires[20027100][2][0] = "<H3> La méthode par comparaison";
$tabCommentaires[20028100][2][0] = "<H3> La méthode dévaluation par la Situation Nette Comptable (SNC)";
$tabCommentaires[20028100][2][20] = "Valorisation par la Situation Nette Comptable entre{VAL976_MT} et {VAL977_MT}.";
$tabCommentaires[20050100][2][10] = "Dans notre étude, voici les méthodes que nous avons retenues. Elles vous sont présentées sous forme de tableau avec leur fourchette de valeurs, pour une meilleure représentativité de chacune d'entre elle dans la valorisation globale de l'entreprise :";
$tabCommentaires[20080201][2][0] = "<TABLE CLASS='TABLEAURESULTAT'>";
$tabCommentaires[20080201][2][2] = "<TR CLASS='TITRES'> <TH> Pondération des méthodes </TH><TH>Valeur mini</TH><TH>Valeur maxi</TH></TR>";
$tabCommentaires[20080210][2][11] = "<TR CLASS='LIGNE1'><TH>Valeur patrimoniale </TH><TD>{VAL978_MT}</TD><TD>{VAL979_MT}</TD></TR>";
$tabCommentaires[20080215][2][11] = "<TR CLASS='LIGNE1'><TH>Selon le Chiffre d'affaires </TH><TD>{VAL970_MT}</TD><TD>{VAL971_MT}</TD></TR>";
$tabCommentaires[20080217][2][11] = "<TR CLASS='LIGNE1'><TH>Selon la siuation nette comptable </TH><TD>{VAL976_MT}</TD><TD>{VAL977_MT}</TD></TR>";
$tabCommentaires[20080220][2][21] = "<TR CLASS='LIGNE2'><TH>Valeur de productivité </TH><TD>{VAL982_MT}</TD><TD>{VAL983_MT}</TD></TR>";
$tabCommentaires[20080230][2][31] = "<TR CLASS='LIGNE1'><TH>Capitalisation du bénéfice </TH><TD>{VAL984_MT}</TD><TD>{VAL985_MT}</TD></TR>";
$tabCommentaires[20080240][2][41] = "<TR CLASS='LIGNE2'><TH>Capitalisation selon l'EBE </TH><TD>{VAL986_MT}</TD><TD>{VAL987_MT}</TD></TR>";
$tabCommentaires[20080250][2][51] = "<TR CLASS='LIGNE1'><TH>Capitalisation selon la MBA </TH><TD>{VAL988_MT}</TD><TD>{VAL989_MT}</TD></TR>";
$tabCommentaires[20080260][2][61] = "<TR CLASS='LIGNE2'><TH>Capitalisation selon la CAF+Trésorerie </TH><TD>{VAL990_MT}</TD><TD>{VAL991_MT}</TD></TR>";
$tabCommentaires[20080270][2][71] = "<TR CLASS='LIGNE1'><TH>Capitaux risqueurs </TH><TD>{VAL992_MT}</TD><TD>{VAL993_MT}</TD></TR>";
$tabCommentaires[20080280][2][81] = "<TR CLASS='LIGNE2'><TH>Patrimoniale + GOODWILL </TH><TD>{VAL994_MT}</TD><TD>{VAL995_MT}</TD></TR>";
$tabCommentaires[20080290][2][81] = "<TR CLASS='TOTAL'><TH>Comparative cessions profils similaires </TH><TD>{VAL996_MT}</TD><TD>{VAL997_MT}</TD></TR>";
$tabCommentaires[20090310][2][0] = "<TABLE CLASS='TABLEAUHAUTBAS'>";
$tabCommentaires[20090310][2][2] = "<TR CLASS='TITRES'> <TH> </TH><TH> estimation haute</TH></TR>";
$tabCommentaires[20090310][2][11] = "<TR CLASS='BLANC'><TD> </TD><TD CLASS='TOTAL'>{VAL999_MT}</TD></TR>";
$tabCommentaires[20090310][2][12] = "<TR CLASS='TITRES'> <TH> estimation basse </TH><TH> </TH></TR>";
$tabCommentaires[20090310][2][21] = "<TR CLASS='BLANC'><TD CLASS='TOTAL'>{VAL998_MT} </TD><TD> </TD></TR>";
$tabCommentaires[20090510][2][20] = "<LI> Les immobilisations corporelles doivent être réévaluées à leur valeur de marché et non comptable. ";
$tabCommentaires[20090610][2][20] = "<LI> L'estimation finale devrait intégrer l'ensemble des dettes à court terme exigibles au moment de la cession.";
$tabCommentaires[20090611][2][20] = "<LI> L'estimation finale devrait intégrer l'ensemble des dettes à court, moyen et long termes exigibles au moment de la cession.";
$tabCommentaires[20090710][2][20] = "<LI> Il conviendra de vérifier l'exactitude des dettes financières portées au bilan.";
$tabCommentaires[20090711][2][20] = "<LI> Il conviendra de vérifier l'exactitude des dettes fournisseurs portées au bilan.";
$tabCommentaires[20090712][2][20] = "<LI> Il conviendra de vérifier l'exactitude des dettes financières et fournisseurs portées au bilan.";
$tabCommentaires[20090810][2][20] = "<BR>A noter qu'aucune provision ne figure au bilan.";
$tabCommentaires[20090810][2][30] = "<C.> Or, au vu de l'effectif de l'entreprise pourrait devoir provisionner les congés à payer de l'exercice, d'éventuelles indemnités de fin de carrière ou de départ.";
$tabCommentaires[20090830][2][20] = "<BR> A noter que les provisions semblent anormalement limitées.";
$tabCommentaires[20090830][2][30] = "<C.> Or, au vu de l'effectif de l'entreprise pourrait devoir provisionner les congés à payer de l'exercice, d'éventuelles indemnités de fin de carrière ou de départ.";
$tabCommentaires[20090840][2][20] = "<BR> A noter que les provisions semblent anormalement élevées.";
$tabCommentaires[100000100][2][0] = "<H1>PRESENTATION";
$tabCommentaires[100001000][2][0] = "<H1>DIAGNOSTIC";
$tabCommentaires[100002000][2][0] = "<H1>PATRIMOINE & RESULTATS";
$tabCommentaires[100003000][2][0] = "<H2>BILANS";
$tabCommentaires[100004000][2][0] = "<H2>COMPTE DE RESULTAT";
$tabCommentaires[100005000][2][0] = "<H1>RETRAITEMENT";
$tabCommentaires[100010000][2][0] = "<H1>METHODES DE CALCUL";
$tabCommentaires[100015000][2][0] = "<H2>Les méthodes retenues";
$tabCommentaires[100016000][2][0] = "<H2>Pondération des méthodes";
$tabCommentaires[100019000][2][0] = "<H1>CONCLUSION";
$tabCommentaires[100019100][2][0] = "<H2>Réserves";
$tabTri=array();
$tabTri[5000] = 1000;
$tabTri[7000] = 5000;
$tabTri[7001] = 5000;
$tabTri[7002] = 5000;
$tabTri[7003] = 5000;
$tabTri[9995] = 13101;
$tabTri[9996] = 13100;
$tabTri[199000] = 15100;
$tabTri[200000] = 15100;
$tabTri[201000] = 15100;
$tabTri[202000] = 15100;
$tabTri[203000] = 15100;
$tabTri[204000] = 15100;
$tabTri[205000] = 15100;
$tabTri[205099] = 15010;
$tabTri[205200] = 15010;
$tabTri[2400101] = 52201;
$tabTri[2400102] = 52201;
$tabTri[2400103] = 52201;
$tabTri[2400109] = 52201;
$tabTri[2400111] = 52201;
$tabTri[2400112] = 52201;
$tabTri[2400119] = 52201;
$tabTri[2400121] = 52201;
$tabTri[2400122] = 52201;
$tabTri[2400123] = 52201;
$tabTri[2400124] = 52201;
$tabTri[2400125] = 52201;
$tabTri[2400126] = 52201;
$tabTri[2400200] = 52201;
$tabTri[2400210] = 52201;
$tabTri[2400300] = 52201;
$tabTri[2400310] = 52201;
$tabTri[2400410] = 52201;
$tabTri[2400420] = 52201;
$tabTri[2400430] = 52201;
$tabTri[3902100] = 102002;
$tabTri[3902101] = 102002;
$tabTri[3902110] = 102002;
$tabTri[3902111] = 102002;
$tabTri[3902130] = 102002;
$tabTri[3902131] = 102002;
$tabTri[3902200] = 102002;
$tabTri[3902300] = 102002;
$tabTri[3902301] = 102002;
$tabTri[3902310] = 102002;
$tabTri[3902311] = 102002;
$tabTri[3902330] = 102002;
$tabTri[3902331] = 102002;
$tabTri[3902900] = 102002;
$tabTri[3910001] = 101002;
$tabTri[3910001] = 101002;
$tabTri[3910100] = 101002;
$tabTri[3910101] = 101002;
$tabTri[3910120] = 101002;
$tabTri[3910121] = 101002;
$tabTri[3910130] = 101002;
$tabTri[3910131] = 101002;
$tabTri[3910135] = 101002;
$tabTri[3910136] = 101002;
$tabTri[3910140] = 101002;
$tabTri[3910141] = 101002;
$tabTri[3910145] = 101002;
$tabTri[3910146] = 101002;
$tabTri[3910150] = 101002;
$tabTri[3910151] = 101002;
$tabTri[3910155] = 101002;
$tabTri[3910156] = 101002;
$tabTri[3910160] = 101002;
$tabTri[3910161] = 101002;
$tabTri[3910170] = 101002;
$tabTri[3910171] = 101002;
$tabTri[3910180] = 101002;
$tabTri[3910181] = 101002;
$tabTri[3910190] = 101002;
$tabTri[3910191] = 101002;
$tabTri[3911001] = 101003;
$tabTri[3911001] = 101003;
$tabTri[3911100] = 101003;
$tabTri[3911101] = 101003;
$tabTri[3911110] = 101003;
$tabTri[3911111] = 101003;
$tabTri[3911120] = 101003;
$tabTri[3911121] = 101003;
$tabTri[3911130] = 101003;
$tabTri[3911131] = 101003;
$tabTri[3911145] = 101003;
$tabTri[3911146] = 101003;
$tabTri[3911150] = 101003;
$tabTri[3911151] = 101003;
$tabTri[3911160] = 101003;
$tabTri[3911161] = 101003;
$tabTri[3911170] = 101003;
$tabTri[3911171] = 101003;
$tabTri[3911180] = 101003;
$tabTri[3911181] = 101003;
$tabTri[20001000] = 100101;
$tabTri[20001000] = 100101;
$tabTri[20001000] = 100101;
$tabTri[20001000] = 100101;
$tabTri[20001000] = 100101;
$tabTri[20001000] = 100101;
$tabTri[20011000] = 101001;
$tabTri[20011900] = 101009;
$tabTri[20011900] = 101009;
$tabTri[20011900] = 101009;
$tabTri[20011900] = 101009;
$tabTri[20011900] = 101009;
$tabTri[20011900] = 101009;
$tabTri[20012000] = 101201;
$tabTri[20012001] = 101201;
$tabTri[20012002] = 101201;
$tabTri[20012100] = 101201;
$tabTri[20012100] = 101201;
$tabTri[20012110] = 101201;
$tabTri[20012110] = 101201;
$tabTri[20012110] = 101201;
$tabTri[20012110] = 101201;
$tabTri[20012110] = 101201;
$tabTri[20012110] = 101201;
$tabTri[20012110] = 101201;
$tabTri[20012120] = 101201;
$tabTri[20012120] = 101201;
$tabTri[20012120] = 101201;
$tabTri[20012120] = 101201;
$tabTri[20012120] = 101201;
$tabTri[20012120] = 101201;
$tabTri[20012200] = 101301;
$tabTri[20012200] = 101301;
$tabTri[20012210] = 101301;
$tabTri[20012210] = 101301;
$tabTri[20012210] = 101301;
$tabTri[20012210] = 101301;
$tabTri[20012210] = 101301;
$tabTri[20012220] = 101351;
$tabTri[20012400] = 101401;
$tabTri[20012400] = 101401;
$tabTri[20012410] = 101401;
$tabTri[20012410] = 101201;
$tabTri[20012410] = 101201;
$tabTri[20012410] = 101201;
$tabTri[20012410] = 101201;
$tabTri[20012410] = 101201;
$tabTri[20012410] = 101201;
$tabTri[20012420] = 101351;
$tabTri[20020100] = 102001;
$tabTri[20020100] = 102001;
$tabTri[20021200] = 102001;
$tabTri[20021200] = 102001;
$tabTri[20022200] = 102001;
$tabTri[20022200] = 102001;
$tabTri[20022500] = 102001;
$tabTri[20022500] = 102001;
$tabTri[20023100] = 102001;
$tabTri[20023100] = 102001;
$tabTri[20025200] = 102001;
$tabTri[20026100] = 102001;
$tabTri[20027100] = 102001;
$tabTri[20028100] = 102001;
$tabTri[20050100] = 103001;
$tabTri[20080201] = 104001;
$tabTri[20080201] = 104001;
$tabTri[20080210] = 104001;
$tabTri[20080215] = 104001;
$tabTri[20080217] = 104001;
$tabTri[20080220] = 104001;
$tabTri[20080230] = 104001;
$tabTri[20080240] = 104001;
$tabTri[20080250] = 104001;
$tabTri[20080260] = 104001;
$tabTri[20080270] = 104001;
$tabTri[20080280] = 104001;
$tabTri[20080290] = 104001;
$tabTri[20090310] = 109001;
$tabTri[20090310] = 109001;
$tabTri[20090310] = 109001;
$tabTri[20090310] = 109001;
$tabTri[20090310] = 109001;
$tabTri[20090510] = 109101;
$tabTri[20090610] = 109101;
$tabTri[20090611] = 109101;
$tabTri[20090710] = 109101;
$tabTri[20090711] = 109101;
$tabTri[20090712] = 109101;
$tabTri[20090810] = 109101;
$tabTri[20090810] = 109101;
$tabTri[20090830] = 109101;
$tabTri[20090830] = 109101;
$tabTri[20090840] = 109101;
$tabTri[100000100] = 100100;
$tabTri[100001000] = 101000;
$tabTri[100002000] = 101200;
$tabTri[100003000] = 101300;
$tabTri[100004000] = 101400;
$tabTri[100005000] = 101500;
$tabTri[100010000] = 102000;
$tabTri[100015000] = 103000;
$tabTri[100016000] = 104000;
$tabTri[100019000] = 109000;
$tabTri[100019100] = 109100;
$tabTriAff=array();
$tabTriAff[5000] = 1000.10005;
$tabTriAff[7000] = 5000.10007;
$tabTriAff[7001] = 5000.10007001;
$tabTriAff[7002] = 5000.10007002;
$tabTriAff[7003] = 5000.10007003;
$tabTriAff[9995] = 13101.10009995;
$tabTriAff[9996] = 13100.10009996;
$tabTriAff[199000] = 15100.10199;
$tabTriAff[200000] = 15100.102;
$tabTriAff[201000] = 15100.10201;
$tabTriAff[202000] = 15100.10202;
$tabTriAff[203000] = 15100.10203;
$tabTriAff[204000] = 15100.10204;
$tabTriAff[205000] = 15100.10205;
$tabTriAff[205099] = 15010.10205099;
$tabTriAff[205200] = 15010.102052;
$tabTriAff[2400101] = 52201.12400101;
$tabTriAff[2400102] = 52201.12400102;
$tabTriAff[2400103] = 52201.12400103;
$tabTriAff[2400109] = 52201.12400109;
$tabTriAff[2400111] = 52201.12400111;
$tabTriAff[2400112] = 52201.12400112;
$tabTriAff[2400119] = 52201.12400119;
$tabTriAff[2400121] = 52201.12400121;
$tabTriAff[2400122] = 52201.12400122;
$tabTriAff[2400123] = 52201.12400123;
$tabTriAff[2400124] = 52201.12400124;
$tabTriAff[2400125] = 52201.12400125;
$tabTriAff[2400126] = 52201.12400126;
$tabTriAff[2400200] = 52201.124002;
$tabTriAff[2400210] = 52201.1240021;
$tabTriAff[2400300] = 52201.124003;
$tabTriAff[2400310] = 52201.1240031;
$tabTriAff[2400410] = 52201.1240041;
$tabTriAff[2400420] = 52201.1240042;
$tabTriAff[2400430] = 52201.1240043;
$tabTriAff[3902100] = 102002.139021;
$tabTriAff[3902101] = 102002.13902101;
$tabTriAff[3902110] = 102002.1390211;
$tabTriAff[3902111] = 102002.13902111;
$tabTriAff[3902130] = 102002.1390213;
$tabTriAff[3902131] = 102002.13902131;
$tabTriAff[3902200] = 102002.139022;
$tabTriAff[3902300] = 102002.139023;
$tabTriAff[3902301] = 102002.13902301;
$tabTriAff[3902310] = 102002.1390231;
$tabTriAff[3902311] = 102002.13902311;
$tabTriAff[3902330] = 102002.1390233;
$tabTriAff[3902331] = 102002.13902331;
$tabTriAff[3902900] = 102002.139029;
$tabTriAff[3910001] = 101002.13910001;
$tabTriAff[3910001] = 101002.13910001;
$tabTriAff[3910100] = 101002.139101;
$tabTriAff[3910101] = 101002.13910101;
$tabTriAff[3910120] = 101002.1391012;
$tabTriAff[3910121] = 101002.13910121;
$tabTriAff[3910130] = 101002.1391013;
$tabTriAff[3910131] = 101002.13910131;
$tabTriAff[3910135] = 101002.13910135;
$tabTriAff[3910136] = 101002.13910136;
$tabTriAff[3910140] = 101002.1391014;
$tabTriAff[3910141] = 101002.13910141;
$tabTriAff[3910145] = 101002.13910145;
$tabTriAff[3910146] = 101002.13910146;
$tabTriAff[3910150] = 101002.1391015;
$tabTriAff[3910151] = 101002.13910151;
$tabTriAff[3910155] = 101002.13910155;
$tabTriAff[3910156] = 101002.13910156;
$tabTriAff[3910160] = 101002.1391016;
$tabTriAff[3910161] = 101002.13910161;
$tabTriAff[3910170] = 101002.1391017;
$tabTriAff[3910171] = 101002.13910171;
$tabTriAff[3910180] = 101002.1391018;
$tabTriAff[3910181] = 101002.13910181;
$tabTriAff[3910190] = 101002.1391019;
$tabTriAff[3910191] = 101002.13910191;
$tabTriAff[3911001] = 101003.13911001;
$tabTriAff[3911001] = 101003.13911001;
$tabTriAff[3911100] = 101003.139111;
$tabTriAff[3911101] = 101003.13911101;
$tabTriAff[3911110] = 101003.1391111;
$tabTriAff[3911111] = 101003.13911111;
$tabTriAff[3911120] = 101003.1391112;
$tabTriAff[3911121] = 101003.13911121;
$tabTriAff[3911130] = 101003.1391113;
$tabTriAff[3911131] = 101003.13911131;
$tabTriAff[3911145] = 101003.13911145;
$tabTriAff[3911146] = 101003.13911146;
$tabTriAff[3911150] = 101003.1391115;
$tabTriAff[3911151] = 101003.13911151;
$tabTriAff[3911160] = 101003.1391116;
$tabTriAff[3911161] = 101003.13911161;
$tabTriAff[3911170] = 101003.1391117;
$tabTriAff[3911171] = 101003.13911171;
$tabTriAff[3911180] = 101003.1391118;
$tabTriAff[3911181] = 101003.13911181;
$tabTriAff[20001000] = 100101.30001;
$tabTriAff[20001000] = 100101.30001;
$tabTriAff[20001000] = 100101.30001;
$tabTriAff[20001000] = 100101.30001;
$tabTriAff[20001000] = 100101.30001;
$tabTriAff[20001000] = 100101.30001;
$tabTriAff[20011000] = 101001.30011;
$tabTriAff[20011900] = 101009.300119;
$tabTriAff[20011900] = 101009.300119;
$tabTriAff[20011900] = 101009.300119;
$tabTriAff[20011900] = 101009.300119;
$tabTriAff[20011900] = 101009.300119;
$tabTriAff[20011900] = 101009.300119;
$tabTriAff[20012000] = 101201.30012;
$tabTriAff[20012001] = 101201.30012001;
$tabTriAff[20012002] = 101201.30012002;
$tabTriAff[20012100] = 101201.300121;
$tabTriAff[20012100] = 101201.300121;
$tabTriAff[20012110] = 101201.3001211;
$tabTriAff[20012110] = 101201.3001211;
$tabTriAff[20012110] = 101201.3001211;
$tabTriAff[20012110] = 101201.3001211;
$tabTriAff[20012110] = 101201.3001211;
$tabTriAff[20012110] = 101201.3001211;
$tabTriAff[20012110] = 101201.3001211;
$tabTriAff[20012120] = 101201.3001212;
$tabTriAff[20012120] = 101201.3001212;
$tabTriAff[20012120] = 101201.3001212;
$tabTriAff[20012120] = 101201.3001212;
$tabTriAff[20012120] = 101201.3001212;
$tabTriAff[20012120] = 101201.3001212;
$tabTriAff[20012200] = 101301.300122;
$tabTriAff[20012200] = 101301.300122;
$tabTriAff[20012210] = 101301.3001221;
$tabTriAff[20012210] = 101301.3001221;
$tabTriAff[20012210] = 101301.3001221;
$tabTriAff[20012210] = 101301.3001221;
$tabTriAff[20012210] = 101301.3001221;
$tabTriAff[20012220] = 101351.3001222;
$tabTriAff[20012400] = 101401.300124;
$tabTriAff[20012400] = 101401.300124;
$tabTriAff[20012410] = 101401.3001241;
$tabTriAff[20012410] = 101201.3001241;
$tabTriAff[20012410] = 101201.3001241;
$tabTriAff[20012410] = 101201.3001241;
$tabTriAff[20012410] = 101201.3001241;
$tabTriAff[20012410] = 101201.3001241;
$tabTriAff[20012410] = 101201.3001241;
$tabTriAff[20012420] = 101351.3001242;
$tabTriAff[20020100] = 102001.300201;
$tabTriAff[20020100] = 102001.300201;
$tabTriAff[20021200] = 102001.300212;
$tabTriAff[20021200] = 102001.300212;
$tabTriAff[20022200] = 102001.300222;
$tabTriAff[20022200] = 102001.300222;
$tabTriAff[20022500] = 102001.300225;
$tabTriAff[20022500] = 102001.300225;
$tabTriAff[20023100] = 102001.300231;
$tabTriAff[20023100] = 102001.300231;
$tabTriAff[20025200] = 102001.300252;
$tabTriAff[20026100] = 102001.300261;
$tabTriAff[20027100] = 102001.300271;
$tabTriAff[20028100] = 102001.300281;
$tabTriAff[20050100] = 103001.300501;
$tabTriAff[20080201] = 104001.30080201;
$tabTriAff[20080201] = 104001.30080201;
$tabTriAff[20080210] = 104001.3008021;
$tabTriAff[20080215] = 104001.30080215;
$tabTriAff[20080217] = 104001.30080217;
$tabTriAff[20080220] = 104001.3008022;
$tabTriAff[20080230] = 104001.3008023;
$tabTriAff[20080240] = 104001.3008024;
$tabTriAff[20080250] = 104001.3008025;
$tabTriAff[20080260] = 104001.3008026;
$tabTriAff[20080270] = 104001.3008027;
$tabTriAff[20080280] = 104001.3008028;
$tabTriAff[20080290] = 104001.3008029;
$tabTriAff[20090310] = 109001.3009031;
$tabTriAff[20090310] = 109001.3009031;
$tabTriAff[20090310] = 109001.3009031;
$tabTriAff[20090310] = 109001.3009031;
$tabTriAff[20090310] = 109001.3009031;
$tabTriAff[20090510] = 109101.3009051;
$tabTriAff[20090610] = 109101.3009061;
$tabTriAff[20090611] = 109101.30090611;
$tabTriAff[20090710] = 109101.3009071;
$tabTriAff[20090711] = 109101.30090711;
$tabTriAff[20090712] = 109101.30090712;
$tabTriAff[20090810] = 109101.3009081;
$tabTriAff[20090810] = 109101.3009081;
$tabTriAff[20090830] = 109101.3009083;
$tabTriAff[20090830] = 109101.3009083;
$tabTriAff[20090840] = 109101.3009084;
$tabTriAff[100000100] = 100100.1100001;
$tabTriAff[100001000] = 101000.110001;
$tabTriAff[100002000] = 101200.110002;
$tabTriAff[100003000] = 101300.110003;
$tabTriAff[100004000] = 101400.110004;
$tabTriAff[100005000] = 101500.110005;
$tabTriAff[100010000] = 102000.11001;
$tabTriAff[100015000] = 103000.110015;
$tabTriAff[100016000] = 104000.110016;
$tabTriAff[100019000] = 109000.110019;
$tabTriAff[100019100] = 109100.1100191;

View File

@ -1,767 +0,0 @@
<?php
$tabCommentaires=array();
$tabCommentaires[5000][2][1] = "Valorisation de {NOMEN} en date du : {JOUR_DATE}
";
$tabCommentaires[7000][2][10] = "<LI><B>ENTREPRISE INACTIVE</B>";
$tabCommentaires[7001][2][10] = "<LI><B>ENTREPRISE EN ACTIVITE SELON l'INSEE MAIS DECLAREE INACTIVE EN SOURCE GREFFES</B>";
$tabCommentaires[7002][2][10] = "<LI><B>ENTREPRISE SANS ACTIVITE SELON l'INSEE MAIS DECLAREE ENCORE EN ACTIVITE EN SOURCE GREFFES</B>";
$tabCommentaires[7003][2][10] = "COULEUR(VER3,ROU2,BLE3,MAR,MET2,VIO1,ROU3,NOI2,MET,VER2,ROU1,MET3,BLE,MAR2,MET1,VER2)";
$tabCommentaires[9995][2][1] = "L'objet social publié dans les annonces légales est libellé comme : <I>\"{ANNONCEOBJET}\"
";
$tabCommentaires[9996][2][1] = "Au répertoire national l'activité est codifiée {APEENT(5)}, {APEENT}
";
$tabCommentaires[199000][2][0] = "Cette entreprise est une TPE à vocation principalement régionale.";
$tabCommentaires[200000][2][0] = "Cette entreprise est une PME à vocation principalement régionale.";
$tabCommentaires[201000][2][0] = "Cette entreprise est une PME importante au sein du bassin économique régional {RPEN}";
$tabCommentaires[202000][2][0] = "L' entreprise \"{NOMEN}\" est une entreprise importante au sein du bassin économique régional.";
$tabCommentaires[203000][2][0] = "Cette entreprise est une PME majeure au sein de la région {RPEN}.";
$tabCommentaires[204000][2][0] = "C'est une des premières entreprises françaises.";
$tabCommentaires[205000][2][0] = "C'est une PME qui compte dans le département {DEPSIE}.";
$tabCommentaires[205099][2][0] = "C'est une PME de taille signicative dont le siège situe hors de France ({DEPSIE_DE}).";
$tabCommentaires[205200][2][0] = "Les effectifs de l'établissement représentant une part importante de la population de la commune d'implantation, l'entreprise a une forte influence locale.";
$tabCommentaires[735100][2][0] = "<B>Projection du CA sur 3 ans:</B>";
$tabCommentaires[735100][2][10] = "D'après les éléments financiers à notre disposition, nous avons avons procédé à une projection à 3 ans de la valeur du Chiffre d'Affaires. Notre estimation à 3 ans table sur un CA de {CA_Y[3]} en {BILANANNEE3} soit une tendance à la hausse de {CA_TAUX}.<BR>";
$tabCommentaires[735110][2][10] = "<FONT color=\"red\">L'ampleur de la progression est à relativiser car des opérations de fusion (dont la dernière le {ANNONCEFUSDATE}) ont dopé le Chiffre d'Affaires.</FONT>";
$tabCommentaires[735111][2][10] = "<FONT color=\"red\">L'ampleur de la progression est à relativiser car une fusion absoption intervenue le {ANNONCEFUSDATE}) a dopé le Chiffre d'Affaires.</FONT>";
$tabCommentaires[735112][2][10] = "<FONT color=\"red\">L'ampleur de la progression est à relativiser car des opérations de fusion ont dopé le Chiffre d'Affaires.</FONT>";
$tabCommentaires[735200][2][10] = "D'après les éléments financiers à notre disposition, nous avons avons procédé à une projection à 3 ans de la valeur du Chiffre d'Affaires. Notre estimation à 3 ans table sur un CA de {CA_Y[3]} en {BILANANNEE3} soit tendance à la baisse de {CA_TAUX}.<BR>";
$tabCommentaires[735300][2][10] = "D'après les éléments financiers à notre disposition, nous avons avons procédé à une projection à 3 ans de la valeur du Chiffre d'Affaires. Notre estimation à 3 ans table sur une stabilité du CA avec une valeur de {CA_Y[3]} en {BILANANNEE3}.<BR>";
$tabCommentaires[735500][2][9] = "COULEUR(VER3,ROU1,MET3)";
$tabCommentaires[735500][2][10] = "{GRAPH(\"Evolution du CA et projection sur 3 ans\",R[006]#H,CA_Y#L)}";
$tabCommentaires[735930][2][10] = "Notre estimation à 3 ans table sur un Résultat Courant avant Impôts de {RCAI_Y[3]} en {BILANANNEE3}.<BR>";
$tabCommentaires[735930][2][20] = "Le taux de pertinence de notre projection est de {RCAI_TAUX}.";
$tabCommentaires[735950][2][9] = "COULEUR(JAU1,ROU1,MET3)";
$tabCommentaires[735950][2][10] = "{GRAPH(\"Evolution du RCAI et projection sur 3 ans\",R[008]#H,RCAI_Y#L)}";
$tabCommentaires[2400101][2][10] = "L'entreprise se situe à la 1<sup>ere</sup> place dans un marché dont la taille est estimée à {MARCHE} et qui progresse de {!MARCHEVOL}.";
$tabCommentaires[2400102][2][10] = "L'entreprise se situe à la {MARCHEPLACE}<sup>eme</sup> place dans un marché dont la taille est estimée à {MARCHE} et qui progresse de {!MARCHEVOL}.";
$tabCommentaires[2400103][2][10] = "L'entreprise se situe à la 1<sup>ere</sup> place dans un marché dont la taille est estimée à {MARCHE}.";
$tabCommentaires[2400109][2][10] = "L'entreprise se situe dans un marché dont la taille est estimée à {MARCHE} et qui progresse de {!MARCHEVOL}.";
$tabCommentaires[2400111][2][10] = "L'entreprise se situe à la 1<sup>ere</sup> place dans un marché dont la taille est estimée à {MARCHE} et qui régresse de {!MARCHEVOL}.";
$tabCommentaires[2400112][2][10] = "L'entreprise se situe à la {MARCHEPLACE}<sup>eme</sup> place dans un marché dont la taille est estimée à {MARCHE} et qui régresse de {!MARCHEVOL}.";
$tabCommentaires[2400119][2][10] = "L'entreprise se situe dans un marché dont la taille est estimée à {MARCHE} et qui régresse de {MARCHEVOL}.";
$tabCommentaires[2400121][2][10] = "L'entreprise se situe à la 1<sup>ere</sup> place dans un marché dont la taille est estimée à {MARCHE}.";
$tabCommentaires[2400122][2][10] = "L'entreprise se situe à la {MARCHEPLACE}<sup>eme</sup> place dans un marché dont la taille est estimée à {MARCHE}.";
$tabCommentaires[2400123][2][10] = "L'entreprise figure parmi les 200 premières affaires dans un marché dont la taille est estimée à {MARCHE}.";
$tabCommentaires[2400124][2][10] = "L'entreprise figure parmi les 500 premières affaires dans un marché dont la taille est estimée à {MARCHE}.";
$tabCommentaires[2400125][2][10] = "L'entreprise figure parmi les 1000 premières affaires dans un marché dont la taille est estimée à {MARCHE}.";
$tabCommentaires[2400126][2][10] = "L'entreprise figure parmi les 2000 premières affaires dans un marché dont la taille est estimée à {MARCHE}.";
$tabCommentaires[2400200][2][10] = "<C.>, elle en représente {MARCHEPART}, et sa part de marché évolue favorablement de {MARCHEPARTEVOL}.";
$tabCommentaires[2400210][2][10] = "<C.>, elle en représente {MARCHEPART}, et sa part de marché évolue défavorablement de {MARCHEPARTEVOL}.";
$tabCommentaires[2400300][2][10] = "Part conséquent on peut dire que le volume de son marché se developpe de {MARCHEVOLUMEVOL}.";
$tabCommentaires[2400310][2][10] = "Part conséquent on peut dire que le volume de son marché diminue de {MARCHEVOLUMEVOL}.";
$tabCommentaires[2400410][2][10] = "A noter qu'en termes d'emplois, le marché dans son ensemble représente plus de {MARCHESAL} salariés pour un nombre de {MARCHENBENT} entreprises.";
$tabCommentaires[2400420][2][10] = "A noter qu'en termes d'emplois, le marché dans son ensemble représente plus de {MARCHESAL} salariés.";
$tabCommentaires[2400430][2][10] = "A noter que le marché dans son ensemble représente plus de {MARCHENBENT} entreprises.";
$tabCommentaires[3902100][2][10] = "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que {VENTE_VILLE_NB} affaires localisées à {VILLE} se sont négociées dans une fourchette de {VENTEMIN_VILLE_EU} et {VENTEMAX_VILLE_EU}.";
$tabCommentaires[3902101][2][10] = "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires localisées à {VILLE} se sont négociées dans une fourchette de {VENTEMIN_VILLE_EU} et {VENTEMAX_VILLE_EU}.";
$tabCommentaires[3902110][2][10] = "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule affaire de la même localité est intervenue pour un montant de {VENTEMIN_VILLE_EU}.";
$tabCommentaires[3902111][2][10] = "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires de la même localité se sont négociées aux environs de {VENTEMIN_VILLE_EU}.";
$tabCommentaires[3902130][2][10] = "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule vente est intervenue dans la même localité pour un montant de {VENTEMAX_VILLE_EU}.";
$tabCommentaires[3902131][2][10] = "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires de la même localité se sont négociées aux environs de {VENTEMAX_VILLE_EU}.";
$tabCommentaires[3902200][2][10] = "<C.>, alors qu'on dénombre {VENTE_DEP_NB} cessions dans le département dans une fourchette de {VENTEMIN_DEP_EU} à {VENTEMAX_DEP_EU}.";
$tabCommentaires[3902300][2][10] = "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que {VENTE_DEP_NB} affaires de la proche région se sont négociées dans une fourchette de {VENTEMIN_DEP_EU} et {VENTEMAX_DEP_EU}.";
$tabCommentaires[3902301][2][10] = "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires du département se sont négociées dans une fourchette de {VENTEMIN_DEP_EU} et {VENTEMAX_DEP_EU}.";
$tabCommentaires[3902310][2][10] = "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule affaire de la même localité est intervenue pour un montant de {VENTEMIN_DEP_EU}.";
$tabCommentaires[3902311][2][10] = "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires du même département se sont négociées aux environs de {VENTEMIN_DEP_EU}.";
$tabCommentaires[3902330][2][10] = "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule vente est intervenue dans le même département pour un montant de {VENTEMAX_DEP_EU}.";
$tabCommentaires[3902331][2][10] = "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires de la proche région se sont négociées aux environs de {VENTEMAX_DEP_EU}.";
$tabCommentaires[3902900][2][10] = "(Sur l'ensemble du territoire, sur la même période, ce sont {VENTE_FRA_NB} ventes qui sont intervenues pour un montant moyen de {VENTEMOY_FRA_EU})";
$tabCommentaires[3910001][2][0] = "<TABLE CLASS=\"TABLEAUDEFAUTPLUS\" id=\"TABLEAUPLUS\">";
$tabCommentaires[3910001][2][2] = "<TR CLASS=\"TITRES\"> <TH> LES PLUS <I>(en vert la condition atteinte)</I></TH><TH>Taux ou Valeur</TH></TR>";
$tabCommentaires[3910100][2][10] = "<TR CLASS=\"VERT\"><TH>Moyenne sur 3 ans du taux de croissance du CA > inflation</TH><TD>{Revol[536]}</TD></TR>";
$tabCommentaires[3910101][2][10] = "<TR ><TH>Moyenne sur 3 ans du taux de croissance du CA > inflation</TH><TD>{Revol[536]}</TD></TR>";
$tabCommentaires[3910120][2][10] = "<TR CLASS=\"VERT\"><TH>Résultat courant >0 avec croissance du CA sur 3 ans</TH><TD>{R[170]}</TD></TR>";
$tabCommentaires[3910121][2][10] = "<TR ><TH>Résultat courant >0 avec croissance du CA sur 3 ans</TH><TD>{R[170]}</TD></TR>";
$tabCommentaires[3910130][2][10] = "<TR CLASS=\"VERT\"><TH>CAF/actif économique > Inflation sur 3 ans</TH><TD>{R[539]}</TD></TR>";
$tabCommentaires[3910131][2][10] = "<TR ><TH>CAF/actif économique > Inflation sur 3 ans</TH><TD>{R[539]}</TD></TR>";
$tabCommentaires[3910135][2][10] = "<TR CLASS=\"VERT\"><TH>CAF/capitaux permanents > Inflation sur 3 ans</TH><TD>{R[541]}</TD></TR>";
$tabCommentaires[3910136][2][10] = "<TR ><TH>CAF/capitaux permanents > Inflation sur 3 ans</TH><TD>{R[541]}</TD></TR>";
$tabCommentaires[3910140][2][10] = "<TR CLASS=\"VERT\"><TH>Capitaux propres > 15% Total Bilan </TH><TD>{R[510]}</TD></TR>";
$tabCommentaires[3910141][2][10] = "<TR ><TH>Capitaux propres > 15% Total Bilan </TH><TD>{R[510]}</TD></TR>";
$tabCommentaires[3910145][2][10] = "<TR CLASS=\"VERT\"><TH>Capitaux propres/capitaux permanents > 40%</TH><TD>{R[240]}</TD></TR>";
$tabCommentaires[3910146][2][10] = "<TR ><TH>Capitaux propres/capitaux permanents > 40%</TH><TD>{R[240]}</TD></TR>";
$tabCommentaires[3910150][2][10] = "<TR CLASS=\"VERT\"><TH>Fonds de Roulement > 0 </TH><TD>{R[231]}</TD></TR>";
$tabCommentaires[3910151][2][10] = "<TR ><TH>Fonds de Roulement > 0 </TH><TD>{R[231]}</TD></TR>";
$tabCommentaires[3910155][2][10] = "<TR CLASS=\"VERT\"><TH>Fonds de Roulement/BFR > 70% </TH><TD>{R[234]}</TD></TR>";
$tabCommentaires[3910156][2][10] = "<TR ><TH>Fonds de Roulement/BFR > 70% </TH><TD>{R[234]}</TD></TR>";
$tabCommentaires[3910160][2][10] = "<TR CLASS=\"VERT\"><TH>Trésorerie > 30 J de CA</TH><TD>{!R[512]}</TD></TR>";
$tabCommentaires[3910161][2][10] = "<TR ><TH>Trésorerie > 30 J de CA</TH><TD>{!R[512]}</TD></TR>";
$tabCommentaires[3910170][2][10] = "<TR CLASS=\"VERT\"><TH>Dettes financières LMT / CAF <= 4 ans </TH><TD>{R[247]}</TD></TR>";
$tabCommentaires[3910171][2][10] = "<TR ><TH>Dettes financières LMT / CAF <= 4 ans </TH><TD>{R[247]}</TD></TR>";
$tabCommentaires[3910180][2][10] = "<TR CLASS=\"VERT\"><TH>Résultat d'exploitation/charges financières > 400%</TH><TD>{R[542]}</TD></TR>";
$tabCommentaires[3910181][2][10] = "<TR ><TH>Résultat d'exploitation/charges financières > 400%</TH><TD>{R[542]}</TD></TR>";
$tabCommentaires[3910190][2][10] = "<TR CLASS=\"VERT\"><TH>Liquidité > 10 fois la dette exigible </TH><TD>{R[308]} fois</TD></TR>";
$tabCommentaires[3910191][2][10] = "<TR ><TH>Liquidité > 10 fois la dette exigible </TH><TD>{R[308]} fois</TD></TR>";
$tabCommentaires[3911001][2][0] = "<TABLE CLASS=\"TABLEAUDEFAUTMOINS\" id=\"TABLEAUMOINS\">";
$tabCommentaires[3911001][2][2] = "<TR CLASS=\"TITRES\"> <TH> LES MOINS <I>(en rouge la condition atteinte)</I></TH><TH>Taux ou Valeur</TH></TR>";
$tabCommentaires[3911100][2][10] = "<TR CLASS=\"ROUGE\"><TH>Baisse du résultat courant sur 3 ans </TH><TD>{Rp2[170]} <LI=> {R[170]}</TD></TR>";
$tabCommentaires[3911101][2][10] = "<TR ><TH>Baisse du résultat courant sur 3 ans </TH><TD>{Rp2[170]} <LI=> {R[170]}</TD></TR>";
$tabCommentaires[3911110][2][10] = " <TR CLASS=\"ROUGE\"><TH>Baisse de la trésorerie en jours de CA (N/N-3) </TH><TD>{Rp2[512]} <LI=> {R[512]}</TD></TR>";
$tabCommentaires[3911111][2][10] = "<TR ><TH>Baisse de la trésorerie en jours de CA (N/N-3) </TH><TD>{Rp2[512]} <LI=> {R[512]}</TD></TR>";
$tabCommentaires[3911120][2][10] = "<TR CLASS=\"ROUGE\"><TH>Fonds propres < 0 & Résultat courant < 0 </TH><TD>{R[070]} & {R[170]}</TD></TR>";
$tabCommentaires[3911121][2][10] = "<TR ><TH>Fonds propres < 0 & Résultat courant < 0 </TH><TD>{R[070]} & {R[170]}</TD></TR>";
$tabCommentaires[3911130][2][10] = "<TR CLASS=\"ROUGE\"><TH>Fonds propres < 10% Total Bilan </TH><TD>{R[510]}</TD></TR>";
$tabCommentaires[3911131][2][10] = "<TR ><TH>Fonds propres < 10% Total Bilan </TH><TD>{R[510]}</TD></TR>";
$tabCommentaires[3911145][2][10] = "<TR CLASS=\"ROUGE\"><TH>Capitaux propres/capitaux permanents < 30%</TH><TD>{R[240]}</TD></TR>";
$tabCommentaires[3911146][2][10] = "<TR ><TH>Capitaux propres/capitaux permanents < 30%</TH><TD>{R[240]}</TD></TR>";
$tabCommentaires[3911150][2][10] = "<TR CLASS=\"ROUGE\"><TH>Credit Clients > 60 jours de CA </TH><TD>{R[278]}</TD></TR>";
$tabCommentaires[3911151][2][10] = "<TR ><TH>Credit Clients > 60 jours de CA </TH><TD>{R[278]}</TD></TR>";
$tabCommentaires[3911160][2][10] = "<TR CLASS=\"ROUGE\"><TH>Dettes financières LT/CAF > 5ans </TH><TD>{R[247]}</TD></TR>";
$tabCommentaires[3911161][2][10] = "<TR ><TH>Dettes financières LT/CAF > 5ans </TH><TD>{R[247]}</TD></TR>";
$tabCommentaires[3911170][2][10] = "<TR CLASS=\"ROUGE\"><TH>Résultat d'exploitation/Charges financières < 200% </TH><TD>{R[542]}</TD></TR>";
$tabCommentaires[3911171][2][10] = "<TR ><TH>Résultat d'exploitation/Charges financières < 200% </TH><TD>{R[542]}</TD></TR>";
$tabCommentaires[3911180][2][10] = "<TR CLASS=\"ROUGE\"><TH>Fonds de Roulement < BFR, Trésorerie < 0 </TH><TD>{R[226]}</TD></TR>";
$tabCommentaires[3911181][2][10] = "<TR ><TH>Fonds de Roulement < BFR, Trésorerie < 0 </TH><TD>{R[226]}</TD></TR>";
$tabCommentaires[20001000][2][10] = "Cette étude a pour but de rechercher la valeur globale de l'entreprise en tenant compte des ses éléments financiers et de ses différentes caractéristiques intrinsèques (forces et faiblesses).";
$tabCommentaires[20001000][2][30] = "Schématiquement, les méthodes d'évaluation de l'entreprise que nous pouvons utiliser se regroupent en trois catégories:";
$tabCommentaires[20001000][2][31] = "<LI> celles qui relèvent dune approche patrimoniale.";
$tabCommentaires[20001000][2][32] = "<LI> celles qui sappuient sur la rentabilité.";
$tabCommentaires[20001000][2][33] = "<LI> celles qui découlent dune comparaison, qui valorise une société à partir de données sur des sociétés présentant un profil comparable.";
$tabCommentaires[20001000][2][50] = "L'objectif de ce rapport est d'indiquer une fouchette de valeurs, à partir des éléments financiers et statistiques objectifs du système Score & Decision.";
$tabCommentaires[20011000][2][40] = "<BR>Dans le cadre de notre étude, voici les principales forces et faiblesses que nous avons relevées :";
$tabCommentaires[20011900][2][0] = "<BR>";
$tabCommentaires[20011900][2][10] = "<I>A noter que au delà des aspects financiers, patrimoniaux et de rentabilité, la valeur de l'entreprise est plus ou moins influencée par ses qualités intrinsèques :";
$tabCommentaires[20011900][2][20] = "<LI> Potentiel de développement.";
$tabCommentaires[20011900][2][21] = "<LI> Positionnement sur son marché et concurrence.";
$tabCommentaires[20011900][2][22] = "<LI> Lien de dépendance et impact du départ du dirigeant.";
$tabCommentaires[20011900][2][23] = "<LI> Motivation et ambiance interne.";
$tabCommentaires[20011900][2][30] = "Ces caractéristiques jouent sur la valeur en l'améliorant ou en la pénalisant.</I>";
$tabCommentaires[20012000][2][10] = "L'évaluation financière de l'entreprise que nous réalisons ici, au titre de l'exercice {BILANANNEE} repose sur les comptes annuels des 3 derniers exercices dont les éléments sont listés ci dessous.";
$tabCommentaires[20012001][2][10] = "L'évaluation financière de l'entreprise que nous réalisons ici, au titre de l'exercice {BILANANNEE} repose sur les comptes annuels de l'exercice dont les éléments sont listés ci dessous.";
$tabCommentaires[20012002][2][10] = "L'évaluation financière de l'entreprise que nous réalisons ici, au titre de l'exercice {BILANANNEE} repose sur les comptes annuels des 2 derniers exercices dont les éléments sont listés ci dessous.";
$tabCommentaires[20012100][2][0] = "<TABLE CLASS=\"TABLEAUBILAN\">";
$tabCommentaires[20012100][2][1] = "<TR CLASS=\"TITRES\"> <TH> BILAN</TH><TH>{BILANDATEp2} ({nmp2} mois)</TH><TH>{BILANDATEp} ({nmp} mois)</TH><TH>{BILANDATE} ({nm} mois)</TH></TR>";
$tabCommentaires[20012110][2][8] = "<TR CLASS=\"TOTAL\"><TH>Total Actif </TH><TD>{Rp2[069]}</TD><TD>{Rp[069]}</TD><TD>{R[069]}</TD></TR>";
$tabCommentaires[20012110][2][9] = "<TR CLASS=\"BLANC\"><TH>Dont: </TH><TD> </TD><TD> </TD><TD> </TD></TR>";
$tabCommentaires[20012110][2][11] = "<TR CLASS=\"LIGNE1\"><TH>Immobilisations</TH><TD>{Rp2[059]}</TD><TD>{Rp[059]}</TD><TD>{R[059]}</TD></TR>";
$tabCommentaires[20012110][2][21] = "<TR CLASS=\"BLANC\"><TH>Stocks</TH><TD>{Rp2[060]}</TD><TD>{Rp[060]}</TD><TD>{R[060]}</TD></TR>";
$tabCommentaires[20012110][2][31] = "<TR CLASS=\"LIGNE1\"><TH>Créances clients </TH><TD>{Rp2[061]}</TD><TD>{Rp[061]}</TD><TD>{R[061]}</TD></TR>";
$tabCommentaires[20012110][2][41] = "<TR CLASS=\"BLANC\"><TH>Autres créances </TH><TD>{Rp2[062]}</TD><TD>{Rp[062]}</TD><TD>{R[062]}</TD></TR>";
$tabCommentaires[20012110][2][51] = "<TR CLASS=\"LIGNE1\"><TH>Disponibilités </TH><TD>{Rp2[063]}</TD><TD>{Rp[063]}</TD><TD>{R[063]}</TD></TR>";
$tabCommentaires[20012120][2][1] = "<TR CLASS=\"TOTAL\"><TH>Total Passif </TH><TD>{Rp2[022]}</TD><TD>{Rp[022]}</TD><TD>{R[022]}</TD></TR>";
$tabCommentaires[20012120][2][9] = "<TR CLASS=\"BLANC\"><TH>Dont: </TH><TD> </TD><TD> </TD><TD> </TD></TR>";
$tabCommentaires[20012120][2][11] = "<TR CLASS=\"LIGNE1\"><TH>Capitaux propres </TH><TD>{Rp2[070]}</TD><TD>{Rp[070]}</TD><TD>{R[070]}</TD></TR>";
$tabCommentaires[20012120][2][21] = "<TR CLASS=\"BLANC\"><TH>Provisions pour risques & charges </TH><TD>{Rp2[071]}</TD><TD>{Rp[071]}</TD><TD>{R[071]}</TD></TR>";
$tabCommentaires[20012120][2][31] = "<TR CLASS=\"LIGNE1\"><TH>Dettes financières </TH><TD>{Rp2[083]}</TD><TD>{Rp[083]}</TD><TD>{R[083]}</TD></TR>";
$tabCommentaires[20012120][2][41] = "<TR CLASS=\"BLANC\"><TH>Dettes fournisseurs </TH><TD>{Rp2[084]}</TD><TD>{Rp[084]}</TD><TD>{R[084]}</TD></TR>";
$tabCommentaires[20012200][2][0] = "<TABLE CLASS=\"TABLEAUSITUFI\">";
$tabCommentaires[20012200][2][2] = "<TR CLASS=\"TITRES\"> <TH> Situation financière</TH><TH>{BILANDATEp2} ({nmp2} mois)</TH><TH>{BILANDATEp} ({nmp} mois)</TH><TH>{BILANDATE} ({nm} mois)</TH></TR>";
$tabCommentaires[20012210][2][11] = "<TR CLASS=\"LIGNE1\"><TH>Dettes </TH><TD>{Rp2[032]}</TD><TD>{Rp[032]}</TD><TD>{R[032]}</TD></TR>";
$tabCommentaires[20012210][2][21] = "<TR CLASS=\"BLANC\"><TH>Capacité d'autofinancement </TH><TD>{Rp2[233]}</TD><TD>{Rp[233]}</TD><TD>{R[233]}</TD></TR>";
$tabCommentaires[20012210][2][31] = "<TR CLASS=\"LIGNE1\"><TH>Fonds de Roulement </TH><TD>{Rp2[231]}</TD><TD>{Rp[231]}</TD><TD>{R[231]}</TD></TR>";
$tabCommentaires[20012210][2][41] = "<TR CLASS=\"BLANC\"><TH>Besoin en Fonds de Roulement </TH><TD>{Rp2[232]}</TD><TD>{Rp[232]}</TD><TD>{R[232]}</TD></TR>";
$tabCommentaires[20012210][2][51] = "<TR CLASS=\"TOTAL\"><TH>Trésorerie </TH><TD>{Rp2[249]}</TD><TD>{Rp[249]}</TD><TD>{R[249]}</TD></TR>";
$tabCommentaires[20012220][2][0] = "{GRAPH(\"Situation financière\",R[231]#T,R[232]#T,R[249]#T)}";
$tabCommentaires[20012400][2][0] = "<TABLE CLASS=\"TABLEAURESULTAT\">";
$tabCommentaires[20012400][2][2] = "<TR CLASS=\"TITRES\"> <TH> Compte de Résultat </TH><TH>{BILANDATEp2} ({nmp2} mois)</TH><TH>{BILANDATEp} ({nmp} mois)</TH><TH>{BILANDATE} ({nm} mois)</TH></TR>";
$tabCommentaires[20012410][2][11] = "<TR CLASS=\"LIGNE1\"><TH>Chiffre d'affaires </TH><TD>{Rp2[005]}</TD><TD>{Rp[005]}</TD><TD>{R[005]}</TD></TR>";
$tabCommentaires[20012410][2][21] = "<TR CLASS=\"BLANC\"><TH>Marge commerciale </TH><TD>{Rp2[110]}</TD><TD>{Rp[110]}</TD><TD>{R[110]}</TD></TR>";
$tabCommentaires[20012410][2][31] = "<TR CLASS=\"LIGNE1\"><TH>Valeur ajoutée </TH><TD>{Rp2[130]}</TD><TD>{Rp[130]}</TD><TD>{R[130]}</TD></TR>";
$tabCommentaires[20012410][2][41] = "<TR CLASS=\"BLANC\"><TH>Excédent brut d'exploitation </TH><TD>{Rp2[140]}</TD><TD>{Rp[140]}</TD><TD>{R[140]}</TD></TR>";
$tabCommentaires[20012410][2][51] = "<TR CLASS=\"LIGNE1\"><TH>Résultat courant avant impôts </TH><TD>{Rp2[150]}</TD><TD>{Rp[150]}</TD><TD>{R[150]}</TD></TR>";
$tabCommentaires[20012410][2][61] = "<TR CLASS=\"BLANC\"><TH>Résultat exceptionnel </TH><TD>{Rp2[180]}</TD><TD>{Rp[180]}</TD><TD>{R[180]}</TD></TR>";
$tabCommentaires[20012410][2][71] = "<TR CLASS=\"LIGNE1\"><TH>Résultat net </TH><TD>{Rp2[010]}</TD><TD>{Rp[010]}</TD><TD>{R[010]}</TD></TR>";
$tabCommentaires[20012420][2][1] = "<BR>Ci-dessous la comparaison des Chiffres d'affaires, Marge brute et Résultat.";
$tabCommentaires[20012420][2][10] = "{GRAPH(\"CA,Marge,Résultat\",R[005]#T,R[122]#T,R[010]#T)}";
$tabCommentaires[20020100][2][0] = "<H3> Multiple du Chiffre d'affaires";
$tabCommentaires[20020100][2][51] = "Selon la méthode du multiple du Chiffre d'affaires l'estimation se situe entre {VAL970_EU} et {VAL971_EU}.";
$tabCommentaires[20020110][2][1] = "<BR>Ci-dessous l'évolution du chiffre d'affaires.";
$tabCommentaires[20020110][2][9] = "COULEUR(VER3,ROU2,JAU)";
$tabCommentaires[20020110][2][10] = "{GRAPH(\"Chiffre d'affaires\",R[006]#H)}";
$tabCommentaires[20021200][2][0] = "<H3> Méthode de la valeur patrimoniale";
$tabCommentaires[20021200][2][10] = "La valeur patrimoniale correspond souvent à la valeur plancher de l'entreprise.";
$tabCommentaires[20021200][2][51] = "La fourchette de notre estimation selon la méthode de la valeur patrimoniale s'établit entre {VAL978_EU} et {VAL979_EU}.";
$tabCommentaires[20021210][2][1] = "<BR>Ci-dessous l'évolution de l'actif immobilisé net.";
$tabCommentaires[20021210][2][9] = "COULEUR(VER3,ROU2,JAU)";
$tabCommentaires[20021210][2][10] = "{GRAPH(\"Actif Immobilisé NET\",R[059]#H)}";
$tabCommentaires[20022200][2][0] = "<H3> Méthode de la valeur de productivité";
$tabCommentaires[20022200][2][51] = "La méthode de la valeur de la productivité est l'expression de la rentabilité de lentreprise au travers la capitalisation du benéfice corrigé des dotations. Elle débouche sur une valorisation entre {VAL974_EU} et {VAL975_EU}.";
$tabCommentaires[20022210][2][1] = "<BR>Ci-dessous l'évolution du Résultat Courant Avant Impôts.";
$tabCommentaires[20022210][2][9] = "COULEUR(VER3,ROU2,JAU)";
$tabCommentaires[20022210][2][10] = "{GRAPH(\"RCAI\",R[008]#H)}";
$tabCommentaires[20022500][2][0] = "<H3> Méthode de la valeur du rendement";
$tabCommentaires[20022500][2][11] = "Cette méthode se fonde sur le bénéfice distribué, elle ne se conçoit quà légard dentreprises sociétaires qui pratiquent une politique régulière de distribution.";
$tabCommentaires[20022500][2][51] = "Le résultat de la méthode de la valeur du rendement se situe entre {VAL982_EU} et {VAL983_EU}.";
$tabCommentaires[20022510][2][1] = "<BR>Ci-dessous l'évolution des dividendes distribués.";
$tabCommentaires[20022510][2][9] = "COULEUR(VER3,ROU2,JAU)";
$tabCommentaires[20022510][2][10] = "{GRAPH(\"Dividendes distribués\",R[529]#H)}";
$tabCommentaires[20023100][2][0] = "<H3> Multiple du Bénéfice";
$tabCommentaires[20023100][2][10] = "On peux considérer quune entreprise vaut par sa rentabilité, sur la base dun multiple de ses résultats. Le bénéfice à retenir est établi à partir du résultat net courant (résultat courant avant impôt, minoré de limpôt sur les sociétés), afin déliminer les éléments exceptionnels affectant le résultat net comptable.";
$tabCommentaires[20023100][2][51] = "Par la méthode du multiple du Bénéfice l'entreprise est valorisée entre {VAL984_EU} et {VAL985_EU}.";
$tabCommentaires[20023110][2][1] = "<BR>Ci-dessous l'évolution du bénéfice réel (RCAI-impôts).";
$tabCommentaires[20023110][2][9] = "COULEUR(VER3,ROU2,JAU)";
$tabCommentaires[20023110][2][10] = "{GRAPH(\"Bénéfice réel\",R[318]#H)}";
$tabCommentaires[20025200][2][0] = "<H3> Multiple de l'EBE";
$tabCommentaires[20025200][2][10] = "Cette méthode repose sur une évaluation globale de lentreprise prenant en compte lendettement financier de la société.";
$tabCommentaires[20025200][2][20] = "La valorisation par l'EBE conduit à une fourchette de valeurs entre {VAL986_EU} et {VAL987_EU}.";
$tabCommentaires[20025210][2][1] = "<BR>Ci-dessous l'évolution de l'Excédent Brut d'Exploitation.";
$tabCommentaires[20025210][2][9] = "COULEUR(VER3,ROU2,JAU)";
$tabCommentaires[20025210][2][10] = "{GRAPH(\"EBE\",R[301]#H)}";
$tabCommentaires[20026100][2][0] = "<H3> Multiple de la MBA";
$tabCommentaires[20026100][2][10] = "Cette méthode est plus particulièrement adaptée aux sociétés qui nécessitent des investissements et constatent des amortissements importants.";
$tabCommentaires[20026100][2][11] = "La présence de terrains dans une forte proportion élargit la fourchette de l'estimation. ";
$tabCommentaires[20026100][2][20] = "Selon cette méthode la valeur de l'entreprise se situe entre {VAL988_EU} et {VAL989_EU}.";
$tabCommentaires[20026101][2][0] = "<H3> Multiple de la MBA";
$tabCommentaires[20026101][2][10] = "Cette méthode est plus particulièrement adaptée aux sociétés qui nécessitent des investissements et constatent des amortissements importants.";
$tabCommentaires[20026101][2][20] = "Selon cette méthode la valeur de l'entreprise se situe entre {VAL988_EU} et {VAL989_EU}.";
$tabCommentaires[20026110][2][1] = "<BR>Ci-dessous l'évolution de la Marge Brute d'Autofinancement.";
$tabCommentaires[20026110][2][9] = "COULEUR(VER3,ROU2,JAU)";
$tabCommentaires[20026110][2][10] = "{GRAPH(\"MBA\",R[333]#H)}";
$tabCommentaires[20027100][2][0] = "<H3> La méthode par comparaison";
$tabCommentaires[20028100][2][0] = "<H3> La méthode dévaluation par la Situation Nette Comptable (SNC)";
$tabCommentaires[20028100][2][20] = "Valorisation par la Situation Nette Comptable entre {VAL976_EU} et {VAL977_EU}.";
$tabCommentaires[20028110][2][1] = "<BR>Ci-dessous l'évolution de la Situation Nette Comptable.";
$tabCommentaires[20028110][2][9] = "COULEUR(VER3,ROU2,JAU)";
$tabCommentaires[20028110][2][10] = "{GRAPH(\"Situation nette\",R[091]#H)}";
$tabCommentaires[20050100][2][10] = "Dans notre étude, voici les méthodes que nous avons retenues. Elles vous sont présentées sous forme de tableau avec leur fourchette de valeurs, pour une meilleure représentativité de chacune d'entre elle dans la valorisation globale de l'entreprise :";
$tabCommentaires[20080201][2][0] = "<TABLE CLASS=\"TABLEAURESULTAT\">";
$tabCommentaires[20080201][2][2] = "<TR CLASS=\"TITRES\"> <TH> Pondération des méthodes </TH><TH>Valeur mini</TH><TH>Valeur maxi</TH></TR>";
$tabCommentaires[20080210][2][11] = "<TR CLASS=\"LIGNE1\"><TH>Valeur patrimoniale </TH><TD>{VAL978_EU}</TD><TD>{VAL979_EU}</TD></TR>";
$tabCommentaires[20080215][2][11] = "<TR CLASS=\"LIGNE1\"><TH>Selon le Chiffre d'affaires </TH><TD>{VAL970_EU}</TD><TD>{VAL971_EU}</TD></TR>";
$tabCommentaires[20080217][2][11] = "<TR CLASS=\"LIGNE1\"><TH>Selon la siuation nette comptable </TH><TD>{VAL976_EU}</TD><TD>{VAL977_EU}</TD></TR>";
$tabCommentaires[20080220][2][21] = "<TR CLASS=\"LIGNE2\"><TH>Valeur de productivité </TH><TD>{VAL982_EU}</TD><TD>{VAL983_EU}</TD></TR>";
$tabCommentaires[20080230][2][31] = "<TR CLASS=\"LIGNE1\"><TH>Capitalisation du bénéfice </TH><TD>{VAL984_EU}</TD><TD>{VAL985_EU}</TD></TR>";
$tabCommentaires[20080240][2][41] = "<TR CLASS=\"LIGNE2\"><TH>Capitalisation selon l'EBE </TH><TD>{VAL986_EU}</TD><TD>{VAL987_EU}</TD></TR>";
$tabCommentaires[20080250][2][51] = "<TR CLASS=\"LIGNE1\"><TH>Capitalisation selon la MBA </TH><TD>{VAL988_EU}</TD><TD>{VAL989_EU}</TD></TR>";
$tabCommentaires[20080260][2][61] = "<TR CLASS=\"LIGNE2\"><TH>Capitalisation selon la CAF+Trésorerie </TH><TD>{VAL990_EU}</TD><TD>{VAL991_EU}</TD></TR>";
$tabCommentaires[20080270][2][71] = "<TR CLASS=\"LIGNE1\"><TH>Capitaux risqueurs </TH><TD>{VAL992_EU}</TD><TD>{VAL993_EU}</TD></TR>";
$tabCommentaires[20080280][2][81] = "<TR CLASS=\"LIGNE2\"><TH>Patrimoniale + GOODWILL </TH><TD>{VAL994_EU}</TD><TD>{VAL995_EU}</TD></TR>";
$tabCommentaires[20080290][2][81] = "<TR CLASS=\"TOTAL\"><TH>Comparative cessions profils similaires </TH><TD>{VAL996_EU}</TD><TD>{VAL997_EU}</TD></TR>";
$tabCommentaires[20090310][2][0] = "<TABLE CLASS=\"TABLEAUHAUTBAS\">";
$tabCommentaires[20090310][2][2] = "<TR CLASS=\"TITRES\"> <TH> </TH><TH> estimation haute</TH></TR>";
$tabCommentaires[20090310][2][11] = "<TR CLASS=\"BLANC\"><TD> </TD><TD CLASS=\"TOTAL\">{VAL999_EU}</TD></TR>";
$tabCommentaires[20090310][2][12] = "<TR CLASS=\"TITRES\"> <TH> estimation basse </TH><TH> </TH></TR>";
$tabCommentaires[20090310][2][21] = "<TR CLASS=\"BLANC\"><TD CLASS=\"TOTAL\">{VAL998_EU} </TD><TD> </TD></TR>";
$tabCommentaires[20090510][2][20] = "<LI> Les immobilisations corporelles doivent être réévaluées à leur valeur de marché et non comptable. ";
$tabCommentaires[20090610][2][20] = "<LI> L'estimation finale devrait intégrer l'ensemble des dettes à court terme exigibles au moment de la cession.";
$tabCommentaires[20090611][2][20] = "<LI> L'estimation finale devrait intégrer l'ensemble des dettes à court, moyen et long termes exigibles au moment de la cession.";
$tabCommentaires[20090710][2][20] = "<LI> Il conviendra de vérifier l'exactitude des dettes financières portées au bilan.";
$tabCommentaires[20090711][2][20] = "<LI> Il conviendra de vérifier l'exactitude des dettes fournisseurs portées au bilan.";
$tabCommentaires[20090712][2][20] = "<LI> Il conviendra de vérifier l'exactitude des dettes financières et fournisseurs portées au bilan.";
$tabCommentaires[20090810][2][20] = "<BR>A noter qu'aucune provision ne figure au bilan.";
$tabCommentaires[20090810][2][30] = "<C.> Or, au vu de l'effectif de l'entreprise pourrait devoir provisionner les congés à payer de l'exercice, d'éventuelles indemnités de fin de carrière ou de départ.";
$tabCommentaires[20090830][2][20] = "<BR> A noter que les provisions semblent anormalement limitées.";
$tabCommentaires[20090830][2][30] = "<C.> Or, au vu de l'effectif de l'entreprise pourrait devoir provisionner les congés à payer de l'exercice, d'éventuelles indemnités de fin de carrière ou de départ.";
$tabCommentaires[20090840][2][20] = "<BR> A noter que les provisions semblent anormalement élevées.";
$tabCommentaires[20090910][2][20] = "<LI> Le foncier représente une part importante des actifs, une divergeance de sa valeur par rapport au marché aura un fort impact sur l'évaluation. ";
$tabCommentaires[100000100][2][0] = "<H1>PRESENTATION";
$tabCommentaires[100001000][2][0] = "<H1>DIAGNOSTIC";
$tabCommentaires[100002000][2][0] = "<H1>PATRIMOINE & RESULTATS";
$tabCommentaires[100003000][2][0] = "<H2>BILANS";
$tabCommentaires[100004000][2][0] = "<H2>COMPTE DE RESULTAT";
$tabCommentaires[100005000][2][0] = "<H1>RETRAITEMENT";
$tabCommentaires[100010000][2][0] = "<BLOC><H1>METHODES DE CALCUL";
$tabCommentaires[100010000][2][99] = "</BLOC>";
$tabCommentaires[100015000][2][0] = "<H2>Les méthodes retenues";
$tabCommentaires[100016000][2][0] = "<H2>Pondération des méthodes";
$tabCommentaires[100019000][2][0] = "<H1>CONCLUSION";
$tabCommentaires[100019100][2][0] = "<H2>Observations";
$tabTri=array();
$tabTri[5000] = 1000;
$tabTri[7000] = 5000;
$tabTri[7001] = 5000;
$tabTri[7002] = 5000;
$tabTri[7003] = 5000;
$tabTri[9995] = 13101;
$tabTri[9996] = 13100;
$tabTri[199000] = 15100;
$tabTri[200000] = 15100;
$tabTri[201000] = 15100;
$tabTri[202000] = 15100;
$tabTri[203000] = 15100;
$tabTri[204000] = 15100;
$tabTri[205000] = 15100;
$tabTri[205099] = 15010;
$tabTri[205200] = 15010;
$tabTri[735100] = 102005;
$tabTri[735100] = 102005;
$tabTri[735110] = 102005;
$tabTri[735111] = 102005;
$tabTri[735112] = 102005;
$tabTri[735200] = 102005;
$tabTri[735300] = 102005;
$tabTri[735500] = 102005;
$tabTri[735500] = 102005;
$tabTri[735930] = 102025;
$tabTri[735930] = 102025;
$tabTri[735950] = 102025;
$tabTri[735950] = 102025;
$tabTri[2400101] = 52201;
$tabTri[2400102] = 52201;
$tabTri[2400103] = 52201;
$tabTri[2400109] = 52201;
$tabTri[2400111] = 52201;
$tabTri[2400112] = 52201;
$tabTri[2400119] = 52201;
$tabTri[2400121] = 52201;
$tabTri[2400122] = 52201;
$tabTri[2400123] = 52201;
$tabTri[2400124] = 52201;
$tabTri[2400125] = 52201;
$tabTri[2400126] = 52201;
$tabTri[2400200] = 52201;
$tabTri[2400210] = 52201;
$tabTri[2400300] = 52201;
$tabTri[2400310] = 52201;
$tabTri[2400410] = 52201;
$tabTri[2400420] = 52201;
$tabTri[2400430] = 52201;
$tabTri[3902100] = 102095;
$tabTri[3902101] = 102095;
$tabTri[3902110] = 102095;
$tabTri[3902111] = 102095;
$tabTri[3902130] = 102095;
$tabTri[3902131] = 102095;
$tabTri[3902200] = 102095;
$tabTri[3902300] = 102095;
$tabTri[3902301] = 102095;
$tabTri[3902310] = 102095;
$tabTri[3902311] = 102095;
$tabTri[3902330] = 102095;
$tabTri[3902331] = 102095;
$tabTri[3902900] = 102095;
$tabTri[3910001] = 101002;
$tabTri[3910001] = 101002;
$tabTri[3910100] = 101002;
$tabTri[3910101] = 101002;
$tabTri[3910120] = 101002;
$tabTri[3910121] = 101002;
$tabTri[3910130] = 101002;
$tabTri[3910131] = 101002;
$tabTri[3910135] = 101002;
$tabTri[3910136] = 101002;
$tabTri[3910140] = 101002;
$tabTri[3910141] = 101002;
$tabTri[3910145] = 101002;
$tabTri[3910146] = 101002;
$tabTri[3910150] = 101002;
$tabTri[3910151] = 101002;
$tabTri[3910155] = 101002;
$tabTri[3910156] = 101002;
$tabTri[3910160] = 101002;
$tabTri[3910161] = 101002;
$tabTri[3910170] = 101002;
$tabTri[3910171] = 101002;
$tabTri[3910180] = 101002;
$tabTri[3910181] = 101002;
$tabTri[3910190] = 101002;
$tabTri[3910191] = 101002;
$tabTri[3911001] = 101003;
$tabTri[3911001] = 101003;
$tabTri[3911100] = 101003;
$tabTri[3911101] = 101003;
$tabTri[3911110] = 101003;
$tabTri[3911111] = 101003;
$tabTri[3911120] = 101003;
$tabTri[3911121] = 101003;
$tabTri[3911130] = 101003;
$tabTri[3911131] = 101003;
$tabTri[3911145] = 101003;
$tabTri[3911146] = 101003;
$tabTri[3911150] = 101003;
$tabTri[3911151] = 101003;
$tabTri[3911160] = 101003;
$tabTri[3911161] = 101003;
$tabTri[3911170] = 101003;
$tabTri[3911171] = 101003;
$tabTri[3911180] = 101003;
$tabTri[3911181] = 101003;
$tabTri[20001000] = 100101;
$tabTri[20001000] = 100101;
$tabTri[20001000] = 100101;
$tabTri[20001000] = 100101;
$tabTri[20001000] = 100101;
$tabTri[20001000] = 100101;
$tabTri[20011000] = 101001;
$tabTri[20011900] = 101009;
$tabTri[20011900] = 101009;
$tabTri[20011900] = 101009;
$tabTri[20011900] = 101009;
$tabTri[20011900] = 101009;
$tabTri[20011900] = 101009;
$tabTri[20011900] = 101009;
$tabTri[20012000] = 101201;
$tabTri[20012001] = 101201;
$tabTri[20012002] = 101201;
$tabTri[20012100] = 101201;
$tabTri[20012100] = 101201;
$tabTri[20012110] = 101201;
$tabTri[20012110] = 101201;
$tabTri[20012110] = 101201;
$tabTri[20012110] = 101201;
$tabTri[20012110] = 101201;
$tabTri[20012110] = 101201;
$tabTri[20012110] = 101201;
$tabTri[20012120] = 101201;
$tabTri[20012120] = 101201;
$tabTri[20012120] = 101201;
$tabTri[20012120] = 101201;
$tabTri[20012120] = 101201;
$tabTri[20012120] = 101201;
$tabTri[20012200] = 101301;
$tabTri[20012200] = 101301;
$tabTri[20012210] = 101301;
$tabTri[20012210] = 101301;
$tabTri[20012210] = 101301;
$tabTri[20012210] = 101301;
$tabTri[20012210] = 101301;
$tabTri[20012220] = 101351;
$tabTri[20012400] = 101401;
$tabTri[20012400] = 101401;
$tabTri[20012410] = 101401;
$tabTri[20012410] = 101201;
$tabTri[20012410] = 101201;
$tabTri[20012410] = 101201;
$tabTri[20012410] = 101201;
$tabTri[20012410] = 101201;
$tabTri[20012410] = 101201;
$tabTri[20012420] = 102006;
$tabTri[20012420] = 101351;
$tabTri[20020100] = 102001;
$tabTri[20020100] = 102001;
$tabTri[20020110] = 102006;
$tabTri[20020110] = 102006;
$tabTri[20020110] = 102006;
$tabTri[20021200] = 102011;
$tabTri[20021200] = 102011;
$tabTri[20021200] = 102011;
$tabTri[20021210] = 102016;
$tabTri[20021210] = 102016;
$tabTri[20021210] = 102016;
$tabTri[20022200] = 102021;
$tabTri[20022200] = 102021;
$tabTri[20022210] = 102026;
$tabTri[20022210] = 102026;
$tabTri[20022210] = 102026;
$tabTri[20022500] = 102041;
$tabTri[20022500] = 102041;
$tabTri[20022500] = 102041;
$tabTri[20022510] = 102046;
$tabTri[20022510] = 102046;
$tabTri[20022510] = 102046;
$tabTri[20023100] = 102051;
$tabTri[20023100] = 102051;
$tabTri[20023100] = 102051;
$tabTri[20023110] = 102056;
$tabTri[20023110] = 102056;
$tabTri[20023110] = 102056;
$tabTri[20025200] = 102061;
$tabTri[20025200] = 102061;
$tabTri[20025200] = 102061;
$tabTri[20025210] = 102066;
$tabTri[20025210] = 102066;
$tabTri[20025210] = 102066;
$tabTri[20026100] = 102071;
$tabTri[20026100] = 102071;
$tabTri[20026100] = 102071;
$tabTri[20026100] = 102071;
$tabTri[20026101] = 102071;
$tabTri[20026101] = 102071;
$tabTri[20026101] = 102071;
$tabTri[20026110] = 102076;
$tabTri[20026110] = 102076;
$tabTri[20026110] = 102076;
$tabTri[20027100] = 102091;
$tabTri[20028100] = 102101;
$tabTri[20028100] = 102101;
$tabTri[20028110] = 102106;
$tabTri[20028110] = 102106;
$tabTri[20028110] = 102106;
$tabTri[20050100] = 103001;
$tabTri[20080201] = 104001;
$tabTri[20080201] = 104001;
$tabTri[20080210] = 104001;
$tabTri[20080215] = 104001;
$tabTri[20080217] = 104001;
$tabTri[20080220] = 104001;
$tabTri[20080230] = 104001;
$tabTri[20080240] = 104001;
$tabTri[20080250] = 104001;
$tabTri[20080260] = 104001;
$tabTri[20080270] = 104001;
$tabTri[20080280] = 104001;
$tabTri[20080290] = 104001;
$tabTri[20090310] = 109001;
$tabTri[20090310] = 109001;
$tabTri[20090310] = 109001;
$tabTri[20090310] = 109001;
$tabTri[20090310] = 109001;
$tabTri[20090510] = 109101;
$tabTri[20090610] = 109101;
$tabTri[20090611] = 109101;
$tabTri[20090710] = 109101;
$tabTri[20090711] = 109101;
$tabTri[20090712] = 109101;
$tabTri[20090810] = 109101;
$tabTri[20090810] = 109101;
$tabTri[20090830] = 109101;
$tabTri[20090830] = 109101;
$tabTri[20090840] = 109101;
$tabTri[20090910] = 109101;
$tabTri[100000100] = 100100;
$tabTri[100001000] = 101000;
$tabTri[100002000] = 101200;
$tabTri[100003000] = 101300;
$tabTri[100004000] = 101400;
$tabTri[100005000] = 101500;
$tabTri[100010000] = 102000;
$tabTri[100010000] = 108999;
$tabTri[100015000] = 103000;
$tabTri[100016000] = 104000;
$tabTri[100019000] = 109000;
$tabTri[100019100] = 109100;
$tabTriAff=array();
$tabTriAff[5000] = 1000.10005;
$tabTriAff[7000] = 5000.10007;
$tabTriAff[7001] = 5000.10007001;
$tabTriAff[7002] = 5000.10007002;
$tabTriAff[7003] = 5000.10007003;
$tabTriAff[9995] = 13101.10009995;
$tabTriAff[9996] = 13100.10009996;
$tabTriAff[199000] = 15100.10199;
$tabTriAff[200000] = 15100.102;
$tabTriAff[201000] = 15100.10201;
$tabTriAff[202000] = 15100.10202;
$tabTriAff[203000] = 15100.10203;
$tabTriAff[204000] = 15100.10204;
$tabTriAff[205000] = 15100.10205;
$tabTriAff[205099] = 15010.10205099;
$tabTriAff[205200] = 15010.102052;
$tabTriAff[735100] = 102005.107351;
$tabTriAff[735100] = 102005.107351;
$tabTriAff[735110] = 102005.1073511;
$tabTriAff[735111] = 102005.10735111;
$tabTriAff[735112] = 102005.10735112;
$tabTriAff[735200] = 102005.107352;
$tabTriAff[735300] = 102005.107353;
$tabTriAff[735500] = 102005.107355;
$tabTriAff[735500] = 102005.107355;
$tabTriAff[735930] = 102025.1073593;
$tabTriAff[735930] = 102025.1073593;
$tabTriAff[735950] = 102025.1073595;
$tabTriAff[735950] = 102025.1073595;
$tabTriAff[2400101] = 52201.12400101;
$tabTriAff[2400102] = 52201.12400102;
$tabTriAff[2400103] = 52201.12400103;
$tabTriAff[2400109] = 52201.12400109;
$tabTriAff[2400111] = 52201.12400111;
$tabTriAff[2400112] = 52201.12400112;
$tabTriAff[2400119] = 52201.12400119;
$tabTriAff[2400121] = 52201.12400121;
$tabTriAff[2400122] = 52201.12400122;
$tabTriAff[2400123] = 52201.12400123;
$tabTriAff[2400124] = 52201.12400124;
$tabTriAff[2400125] = 52201.12400125;
$tabTriAff[2400126] = 52201.12400126;
$tabTriAff[2400200] = 52201.124002;
$tabTriAff[2400210] = 52201.1240021;
$tabTriAff[2400300] = 52201.124003;
$tabTriAff[2400310] = 52201.1240031;
$tabTriAff[2400410] = 52201.1240041;
$tabTriAff[2400420] = 52201.1240042;
$tabTriAff[2400430] = 52201.1240043;
$tabTriAff[3902100] = 102095.139021;
$tabTriAff[3902101] = 102095.13902101;
$tabTriAff[3902110] = 102095.1390211;
$tabTriAff[3902111] = 102095.13902111;
$tabTriAff[3902130] = 102095.1390213;
$tabTriAff[3902131] = 102095.13902131;
$tabTriAff[3902200] = 102095.139022;
$tabTriAff[3902300] = 102095.139023;
$tabTriAff[3902301] = 102095.13902301;
$tabTriAff[3902310] = 102095.1390231;
$tabTriAff[3902311] = 102095.13902311;
$tabTriAff[3902330] = 102095.1390233;
$tabTriAff[3902331] = 102095.13902331;
$tabTriAff[3902900] = 102095.139029;
$tabTriAff[3910001] = 101002.13910001;
$tabTriAff[3910001] = 101002.13910001;
$tabTriAff[3910100] = 101002.139101;
$tabTriAff[3910101] = 101002.13910101;
$tabTriAff[3910120] = 101002.1391012;
$tabTriAff[3910121] = 101002.13910121;
$tabTriAff[3910130] = 101002.1391013;
$tabTriAff[3910131] = 101002.13910131;
$tabTriAff[3910135] = 101002.13910135;
$tabTriAff[3910136] = 101002.13910136;
$tabTriAff[3910140] = 101002.1391014;
$tabTriAff[3910141] = 101002.13910141;
$tabTriAff[3910145] = 101002.13910145;
$tabTriAff[3910146] = 101002.13910146;
$tabTriAff[3910150] = 101002.1391015;
$tabTriAff[3910151] = 101002.13910151;
$tabTriAff[3910155] = 101002.13910155;
$tabTriAff[3910156] = 101002.13910156;
$tabTriAff[3910160] = 101002.1391016;
$tabTriAff[3910161] = 101002.13910161;
$tabTriAff[3910170] = 101002.1391017;
$tabTriAff[3910171] = 101002.13910171;
$tabTriAff[3910180] = 101002.1391018;
$tabTriAff[3910181] = 101002.13910181;
$tabTriAff[3910190] = 101002.1391019;
$tabTriAff[3910191] = 101002.13910191;
$tabTriAff[3911001] = 101003.13911001;
$tabTriAff[3911001] = 101003.13911001;
$tabTriAff[3911100] = 101003.139111;
$tabTriAff[3911101] = 101003.13911101;
$tabTriAff[3911110] = 101003.1391111;
$tabTriAff[3911111] = 101003.13911111;
$tabTriAff[3911120] = 101003.1391112;
$tabTriAff[3911121] = 101003.13911121;
$tabTriAff[3911130] = 101003.1391113;
$tabTriAff[3911131] = 101003.13911131;
$tabTriAff[3911145] = 101003.13911145;
$tabTriAff[3911146] = 101003.13911146;
$tabTriAff[3911150] = 101003.1391115;
$tabTriAff[3911151] = 101003.13911151;
$tabTriAff[3911160] = 101003.1391116;
$tabTriAff[3911161] = 101003.13911161;
$tabTriAff[3911170] = 101003.1391117;
$tabTriAff[3911171] = 101003.13911171;
$tabTriAff[3911180] = 101003.1391118;
$tabTriAff[3911181] = 101003.13911181;
$tabTriAff[20001000] = 100101.30001;
$tabTriAff[20001000] = 100101.30001;
$tabTriAff[20001000] = 100101.30001;
$tabTriAff[20001000] = 100101.30001;
$tabTriAff[20001000] = 100101.30001;
$tabTriAff[20001000] = 100101.30001;
$tabTriAff[20011000] = 101001.30011;
$tabTriAff[20011900] = 101009.300119;
$tabTriAff[20011900] = 101009.300119;
$tabTriAff[20011900] = 101009.300119;
$tabTriAff[20011900] = 101009.300119;
$tabTriAff[20011900] = 101009.300119;
$tabTriAff[20011900] = 101009.300119;
$tabTriAff[20011900] = 101009.300119;
$tabTriAff[20012000] = 101201.30012;
$tabTriAff[20012001] = 101201.30012001;
$tabTriAff[20012002] = 101201.30012002;
$tabTriAff[20012100] = 101201.300121;
$tabTriAff[20012100] = 101201.300121;
$tabTriAff[20012110] = 101201.3001211;
$tabTriAff[20012110] = 101201.3001211;
$tabTriAff[20012110] = 101201.3001211;
$tabTriAff[20012110] = 101201.3001211;
$tabTriAff[20012110] = 101201.3001211;
$tabTriAff[20012110] = 101201.3001211;
$tabTriAff[20012110] = 101201.3001211;
$tabTriAff[20012120] = 101201.3001212;
$tabTriAff[20012120] = 101201.3001212;
$tabTriAff[20012120] = 101201.3001212;
$tabTriAff[20012120] = 101201.3001212;
$tabTriAff[20012120] = 101201.3001212;
$tabTriAff[20012120] = 101201.3001212;
$tabTriAff[20012200] = 101301.300122;
$tabTriAff[20012200] = 101301.300122;
$tabTriAff[20012210] = 101301.3001221;
$tabTriAff[20012210] = 101301.3001221;
$tabTriAff[20012210] = 101301.3001221;
$tabTriAff[20012210] = 101301.3001221;
$tabTriAff[20012210] = 101301.3001221;
$tabTriAff[20012220] = 101351.3001222;
$tabTriAff[20012400] = 101401.300124;
$tabTriAff[20012400] = 101401.300124;
$tabTriAff[20012410] = 101401.3001241;
$tabTriAff[20012410] = 101201.3001241;
$tabTriAff[20012410] = 101201.3001241;
$tabTriAff[20012410] = 101201.3001241;
$tabTriAff[20012410] = 101201.3001241;
$tabTriAff[20012410] = 101201.3001241;
$tabTriAff[20012410] = 101201.3001241;
$tabTriAff[20012420] = 102006.3001242;
$tabTriAff[20012420] = 101351.3001242;
$tabTriAff[20020100] = 102001.300201;
$tabTriAff[20020100] = 102001.300201;
$tabTriAff[20020110] = 102006.3002011;
$tabTriAff[20020110] = 102006.3002011;
$tabTriAff[20020110] = 102006.3002011;
$tabTriAff[20021200] = 102011.300212;
$tabTriAff[20021200] = 102011.300212;
$tabTriAff[20021200] = 102011.300212;
$tabTriAff[20021210] = 102016.3002121;
$tabTriAff[20021210] = 102016.3002121;
$tabTriAff[20021210] = 102016.3002121;
$tabTriAff[20022200] = 102021.300222;
$tabTriAff[20022200] = 102021.300222;
$tabTriAff[20022210] = 102026.3002221;
$tabTriAff[20022210] = 102026.3002221;
$tabTriAff[20022210] = 102026.3002221;
$tabTriAff[20022500] = 102041.300225;
$tabTriAff[20022500] = 102041.300225;
$tabTriAff[20022500] = 102041.300225;
$tabTriAff[20022510] = 102046.3002251;
$tabTriAff[20022510] = 102046.3002251;
$tabTriAff[20022510] = 102046.3002251;
$tabTriAff[20023100] = 102051.300231;
$tabTriAff[20023100] = 102051.300231;
$tabTriAff[20023100] = 102051.300231;
$tabTriAff[20023110] = 102056.3002311;
$tabTriAff[20023110] = 102056.3002311;
$tabTriAff[20023110] = 102056.3002311;
$tabTriAff[20025200] = 102061.300252;
$tabTriAff[20025200] = 102061.300252;
$tabTriAff[20025200] = 102061.300252;
$tabTriAff[20025210] = 102066.3002521;
$tabTriAff[20025210] = 102066.3002521;
$tabTriAff[20025210] = 102066.3002521;
$tabTriAff[20026100] = 102071.300261;
$tabTriAff[20026100] = 102071.300261;
$tabTriAff[20026100] = 102071.300261;
$tabTriAff[20026100] = 102071.300261;
$tabTriAff[20026101] = 102071.30026101;
$tabTriAff[20026101] = 102071.30026101;
$tabTriAff[20026101] = 102071.30026101;
$tabTriAff[20026110] = 102076.3002611;
$tabTriAff[20026110] = 102076.3002611;
$tabTriAff[20026110] = 102076.3002611;
$tabTriAff[20027100] = 102091.300271;
$tabTriAff[20028100] = 102101.300281;
$tabTriAff[20028100] = 102101.300281;
$tabTriAff[20028110] = 102106.3002811;
$tabTriAff[20028110] = 102106.3002811;
$tabTriAff[20028110] = 102106.3002811;
$tabTriAff[20050100] = 103001.300501;
$tabTriAff[20080201] = 104001.30080201;
$tabTriAff[20080201] = 104001.30080201;
$tabTriAff[20080210] = 104001.3008021;
$tabTriAff[20080215] = 104001.30080215;
$tabTriAff[20080217] = 104001.30080217;
$tabTriAff[20080220] = 104001.3008022;
$tabTriAff[20080230] = 104001.3008023;
$tabTriAff[20080240] = 104001.3008024;
$tabTriAff[20080250] = 104001.3008025;
$tabTriAff[20080260] = 104001.3008026;
$tabTriAff[20080270] = 104001.3008027;
$tabTriAff[20080280] = 104001.3008028;
$tabTriAff[20080290] = 104001.3008029;
$tabTriAff[20090310] = 109001.3009031;
$tabTriAff[20090310] = 109001.3009031;
$tabTriAff[20090310] = 109001.3009031;
$tabTriAff[20090310] = 109001.3009031;
$tabTriAff[20090310] = 109001.3009031;
$tabTriAff[20090510] = 109101.3009051;
$tabTriAff[20090610] = 109101.3009061;
$tabTriAff[20090611] = 109101.30090611;
$tabTriAff[20090710] = 109101.3009071;
$tabTriAff[20090711] = 109101.30090711;
$tabTriAff[20090712] = 109101.30090712;
$tabTriAff[20090810] = 109101.3009081;
$tabTriAff[20090810] = 109101.3009081;
$tabTriAff[20090830] = 109101.3009083;
$tabTriAff[20090830] = 109101.3009083;
$tabTriAff[20090840] = 109101.3009084;
$tabTriAff[20090910] = 109101.3009091;
$tabTriAff[100000100] = 100100.1100001;
$tabTriAff[100001000] = 101000.110001;
$tabTriAff[100002000] = 101200.110002;
$tabTriAff[100003000] = 101300.110003;
$tabTriAff[100004000] = 101400.110004;
$tabTriAff[100005000] = 101500.110005;
$tabTriAff[100010000] = 102000.11001;
$tabTriAff[100010000] = 108999.11001;
$tabTriAff[100015000] = 103000.110015;
$tabTriAff[100016000] = 104000.110016;
$tabTriAff[100019000] = 109000.110019;
$tabTriAff[100019100] = 109100.1100191;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More