diff --git a/application/Bootstrap.php b/application/Bootstrap.php new file mode 100644 index 00000000..60f4d291 --- /dev/null +++ b/application/Bootstrap.php @@ -0,0 +1,185 @@ +getOptions()); + Zend_Registry::set('config', $config); + + //Load old config + require_once 'WsScore/Configure.php'; + $oldconfig = new Configure(); + + return $config; + } + + //Initialisation global des paramètres de vue + protected function _initViewSettings() + { + $this->bootstrap('view'); + $view = $this->getResource('view'); + $view->setEncoding('UTF-8'); + $view->doctype('HTML5'); + $view->headMeta() + ->appendHttpEquiv('Content-Type', 'text/html; charset=UTF-8') + ->appendHttpEquiv('Content-Language', 'fr-FR'); + $view->headLink() + ->appendStylesheet('/styles/reset.css', 'all') + ->appendStylesheet('/styles/main.css', 'all'); + $view->headScript()->appendFile('/scripts/jquery.js', 'text/javascript'); + $view->headScript()->appendFile('/scripts/scripts.js', 'text/javascript'); + $view->headTitle()->setSeparator(' - '); + $view->headTitle('WebService Scores & Decisions'); + } + + //Initialisation global des paramètres de log + protected function _initLogging() + { + $c = Zend_Registry::get('config'); + $WsLogger = new Zend_Log(); + $WsFileWriter = new Zend_Log_Writer_Stream($c->profil->path->log.'/wsentreprise.log'); + $WsFileWriter->addFilter(Zend_Log::INFO); + $WsLogger->addWriter($WsFileWriter); + Zend_Registry::set('WsLogger', $WsLogger); + } + + protected function _initNavigation() + { + $view = $this->bootstrap('layout')->getResource('layout')->getView(); + + //@todo : gérer les versions et les clients + + $menu = array( + array( + 'label' => 'Accueil', + 'controller' => 'index', + 'action' => 'index', + ), + array( + 'label' => 'Documentation', + 'controller' => 'documentation', + 'action' => 'index', + 'pages' => array( + array( + 'label' => 'Entreprise', + 'controller' => 'documentation', + 'action' => 'index', + ), + array( + 'label' => 'Code erreurs/messages', + 'controller' => 'documentation', + 'action' => 'erreur', + ), + array( + 'label' => 'Exemples', + 'controller' => 'documentation', + 'action' => 'exemples', + ), + ), + ), + array( + 'label' => 'Démonstration', + 'controller' => 'demo', + 'action' => 'index', + ), + ); + $view->navigation(new Zend_Navigation($menu)); + } + + protected function _initRouter() + { + $this->bootstrap('frontController'); + $front = $this->getResource('frontController'); + $router = $front->getRouter(); + + //Lire les services disponibles et créer les routes + $services = require_once APPLICATION_PATH . '/../library/WsScore/ServicesConfig.php'; + foreach( $services as $section => $params ) + { + if ($params['actif']) { + $route = new Zend_Controller_Router_Route($section.'/:version', array( + 'controller' => 'service', + 'action' => 'index', + 'service' => $section, + 'version' => '', + )); + $router->addRoute($section, $route); + + $route = new Zend_Controller_Router_Route('jsonrpc/'.$section.'/:version', array( + 'controller' => 'jsonrpc', + 'action' => 'index', + 'service' => $section, + 'version' => '', + )); + $router->addRoute('jsonrpc-'.$section, $route); + } + } + + //Route pour WS Clients + $route = new Zend_Controller_Router_Route('clients/:client/:version', array( + 'controller' => 'service', + 'action' => 'index', + 'service' => 'clients', + 'client' => '', + 'version' => '' + )); + $router->addRoute('client', $route); + + $fichierRoute = new Zend_Controller_Router_Route('fichier/:action/:fichier', array( + 'controller' => 'fichier', + 'fichier' => '', + )); + $router->addRoute('fichier', $fichierRoute); + return $router; + } + + protected function _initDb() + { + $c = Zend_Registry::get('config'); + try { + $db = Zend_Db::factory($c->profil->db->metier); + } catch ( Exception $e ) { + if (APPLICATION_ENV == 'development') { + echo '
'; print_r($e); echo '
'; + } else { + echo "Le service rencontre actuellement un problème technique."; + } + exit; + } + + /** + * Set the default adapter to use with all model + */ + Zend_Db_Table::setDefaultAdapter($db); + } + + protected function _initWsDebug() + { + $autoloader = Zend_Loader_Autoloader::getInstance(); + $autoloader->registerNamespace('WsDebug'); + + $options = array( + 'plugins' => array( + 'Exception', + ), + ); + + $debug = new WsDebug_Controller_Plugin_Debug($options); + + $this->bootstrap('frontController'); + $frontController = $this->getResource('frontController'); + $frontController->registerPlugin($debug); + } + + protected function _initCache() + { + //MetadataCache pour la base de données + $frontendOptions = array( + 'lifetime' => 14400, + 'automatic_serialization' => true + ); + $backendOptions = array(); + $cache = Zend_Cache::factory('Core','Apc', $frontendOptions, $backendOptions); + Zend_Db_Table_Abstract::setDefaultMetadataCache($cache); + } +} \ No newline at end of file diff --git a/application/configs/webservices.ini b/application/configs/webservices.ini new file mode 100644 index 00000000..2152341f --- /dev/null +++ b/application/configs/webservices.ini @@ -0,0 +1,20 @@ +[production] +webservice.scores.wsdl = "" +webservice.scores.options.location = "http://192.168.3.2/ws2/" +webservice.scores.options.uri = "http://192.168.3.2/" +webservice.scores.options.trace = 1 +webservice.scores.options.soap_version = SOAP_1_1 + +[staging] +webservice.scores.wsdl = "" +webservice.scores.options.location = "http://78.31.45.206/ws2/" +webservice.scores.options.uri = "http://78.31.45.206/" +webservice.scores.options.trace = 1 +webservice.scores.options.soap_version = SOAP_1_1 + +[development] +webservice.scores.wsdl = "" +webservice.scores.options.location = "http://78.31.45.206/ws2/" +webservice.scores.options.uri = "http://78.31.45.206/" +webservice.scores.options.trace = 1 +webservice.scores.options.soap_version = SOAP_1_1 \ No newline at end of file diff --git a/application/controllers/DemoController.php b/application/controllers/DemoController.php new file mode 100644 index 00000000..42d00aaa --- /dev/null +++ b/application/controllers/DemoController.php @@ -0,0 +1,105 @@ + array( + 'ws' => 'entreprise/v0.7?wsdl', + 'form' => 'getIdentite', + ), + ); + + public function init() + { + require_once 'Web/demo/getIdentite.php'; + $auth = Zend_Auth::getInstance(); + $this->_username = $auth->getIdentity()->username; + $this->_hash = $auth->getIdentity()->hash; + } + + public function indexAction() + { + //Liste + + + $tabMethods = array(); + foreach($this->methods as $method => $element){ + $url = $this->view->url(array( + 'controller' => 'demo', + 'action' => 'method', + 'name' => $method, + )); + $tabMethods[] = array( + 'nom' => $method, + 'url' => $url, + ); + } + + $this->view->assign('methods', $tabMethods); + } + + public function methodAction() + { + $method = $this->_getParam('name',''); + $this->view->assign('method', $method); + //Affichage du formulaire + if (array_key_exists($method, $this->methods)){ + $class = 'Form_'.$method; + if (class_exists($class)){ + $form = new $class; + $form->addElement('hidden', 'method', array( + 'value' => $method, + )); + if ($this->_request->isPost()) { + $formData = $this->_request->getPost(); + $form->populate($formData); + } + $this->view->assign('form', $form); + } else { + $this->view->assign('message',"Impossible d'afficher le formulaire !"); + } + } + } + + public function requeteAction() + { + if ($this->_request->isPost()) { + $formData = $this->_request->getPost(); + $method = $formData['method']; + $class = 'Form_'.$method; + if (class_exists($class)) { + $form = new $class; + if ($form->isValid($formData)) { + $method = $formData['method']; + $siret = $formData['siret']; + $accesWs = $this->methods[$method]['ws']; + $hostName = $this->getRequest()->getHttpHost(); + $options = array( + 'login' => $this->_username, + 'password' => $this->_hash, + 'features' => SOAP_USE_XSI_ARRAY_TYPE + SOAP_SINGLE_ELEMENT_ARRAYS + ); + $client = new Zend_Soap_Client('http://'.$hostName.'/'.$accesWs, $options); + $params = new StdClass(); + $params->siret = $siret; + $soap = array( + 'requete' => $params, + 'reponse' => $client->getIdentite($params) + ); + $this->view->assign('soap',$soap); + $xml = array( + 'requete' => $client->getLastRequest(), + 'reponse' => $client->getLastResponse() + ); + $this->view->assign('xml',$xml); + } else { + $this->_forward('method', 'demo', null, array('name'=> 'getIdentite')); + } + } + } + } + +} + diff --git a/application/controllers/DocumentationController.php b/application/controllers/DocumentationController.php new file mode 100644 index 00000000..b6cba627 --- /dev/null +++ b/application/controllers/DocumentationController.php @@ -0,0 +1,209 @@ +getRequest(); + $ws = strtolower($request->getParam('ws','Entreprise')); + $auth = Zend_Auth::getInstance(); + + //Si client possède un webservice particulier alors on redirige vers la doc clients + $clients = include APPLICATION_PATH . '/../library/WsScore/Clients/ClientsConfig.php'; + foreach( $clients as $section => $params ){ + if ($params['actif']) { + $wsClients[$params['idClient']] = $section; + } + } + + if (array_key_exists($auth->getIdentity()->idClient, $wsClients)){ + + $this->_forward('clients', 'documentation', null, array( + 'nom' => $wsClients[$auth->getIdentity()->idClient] + )); + + } else { + + // Liste des webservices + $services = include APPLICATION_PATH . '/../library/WsScore/ServicesConfig.php'; + foreach( $services as $section => $params ) + { + if ($params['actif']) { + $wsServices[$section] = $params; + } + } + + // On vérifie que l'utilisateur peut accèder à la documentation + $username = $auth->getIdentity()->username; + $idClient = $auth->getIdentity()->idClient; + if ( array_key_exists($ws, $wsServices) ) + { + if ( isset($wsServices['idClient']) && $idClient!=$wsServices['idClient'] ) + { + $this->renderScript('documentation/nodoc.phtml'); + exit; + } + if ( isset($wsServices['user']) && !in_array($username, $wsServices['user']) ) + { + $this->renderScript('documentation/nodoc.phtml'); + exit; + } + } + + // Gestion des versions + $serviceVersions = array(); + $configServiceVersions = $wsServices[$ws]['versions']; + foreach( $configServiceVersions as $section => $params ){ + $serviceVersions[$section] = $params; + if ($params['defaut']) { + $defautVersion = $section; + } + } + $version = $request->getParam('version', $defautVersion); + + // Charger les classes et les types pour le service suivant la version + $pathClassService = 'WsScore/'.ucfirst($ws).'/v'.$version.'/'; + + //Génération du tableau de mapping + $classmap = array(); + $wsConfig = new Zend_Config_Ini($pathClassService.ucfirst($ws).'.ini'); + if ( $wsConfig->count()>0 ) { + foreach($wsConfig->Type->toArray() as $Type){ + $classmap[$Type] = $Type; + } + } + + //Définir l'url d'accès au WSDL + $wsdl_url = $this->view->baseUrl(); + if (APPLICATION_ENV == 'production'){ + $wsdl_url.= '/'.$ws.'/v'.$version.'?wsdl'; + } else { + $wsdl_url.= '/'.$ws.'/v'.$version.'?wsdl-auto'; + } + // Affichage de la documentation + require_once 'Web/WebClassDoc.php'; + $doc = new WebClassDoc(ucfirst($ws), $classmap, $pathClassService); + $tabServiceMethods = $doc->getServiceMethods(); + // Tri des méthodes par ordre alphabétique + $tabServiceMethodsK = array(); + foreach($tabServiceMethods as $method) { + $tabServiceMethodsK[$method['name']] = $method; + } + ksort($tabServiceMethodsK); + $tabServiceTypes = $doc->getServiceTypes(); + $this->view->assign('wsdl', $wsdl_url); + $this->view->assign('serviceMethods', $tabServiceMethodsK); + $this->view->assign('serviceTypes', $tabServiceTypes); + + } + } + + public function clientsAction() + { + $request = $this->getRequest(); + $client = strtolower($request->getParam('nom')); + $ws = 'entreprise'; + + // Gestion des versions + $clients = include APPLICATION_PATH . '/../library/WsScore/Clients/ClientsConfig.php'; + $configServiceVersions = $clients[$client]['versions']; + foreach( $configServiceVersions as $section => $params ){ + $serviceVersions[$section] = $params; + if ($params['defaut']) { + $defautVersion = $section; + } + } + $version = $request->getParam('version', $defautVersion); + + // Charger les classes et les types pour le service suivant la version + $pathClassService = 'WsScore/Clients/'.ucfirst($client).'/v'.$version.'/'; + + //Génération du tableau de mapping + $classmap = array(); + $wsConfig = new Zend_Config_Ini($pathClassService.ucfirst($ws).'.ini'); + if ( $wsConfig->count()>0 ) { + foreach($wsConfig->Type->toArray() as $Type){ + $classmap[$Type] = $Type; + } + } + + //Définir l'url d'accès au WSDL + $wsdl_url = $this->view->baseUrl(); + + if (APPLICATION_ENV == 'production'){ + $wsdl_url.= '/clients/'.$client.'/v'.$version.'?wsdl'; + } else { + $wsdl_url.= '/clients/'.$client.'/v'.$version.'?wsdl-auto'; + } + + // Affichage de la documentation + require_once 'Web/WebClassDoc.php'; + $doc = new WebClassDoc(ucfirst($ws), $classmap, $pathClassService); + $tabServiceMethods = $doc->getServiceMethods(); + // Tri des méthodes par ordre alphabétique + $tabServiceMethodsK = array(); + foreach($tabServiceMethods as $method) { + $tabServiceMethodsK[$method['name']] = $method; + } + ksort($tabServiceMethodsK); + $tabServiceTypes = $doc->getServiceTypes(); + $this->view->assign('wsdl', $wsdl_url); + $this->view->assign('serviceMethods', $tabServiceMethodsK); + $this->view->assign('serviceTypes', $tabServiceTypes); + + } + + + + /** + * Liste les exemples de code disponible pour chaque méthode + */ + public function exemplesAction() + { + + + } + + /** + * Affichage exemple de code avec coloration syntaxique + * Le code doit être placé dans public/code et doit être nommé + * [nom de la méthode]-langage.txt + */ + public function codeAction() + { + $langage = strtolower($this->_getParam('langage','')); + $element = $this->_getParam('element',''); + + $fichier = APPLICATION_PATH . + '/../public/code/' . $element . '-' . $langage . '.txt'; + if (file_exists($fichier)){ + $sourceCode = file_get_contents($fichier); + + require_once 'geshi/geshi.php'; + $geshi = new GeSHi($sourceCode, $langage); + $geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS); + $sourceHighlight = $geshi->parse_code(); + + $this->view->assign('langage', strtoupper($langage)); + $this->view->assign('code', $sourceHighlight); + } else { + $this->view->assign('langage', + 'Element non traités, Vous pouvez aussi nous fournir des exemples.'); + } + } + + /** + * Affichage de la liste des erreurs avec leur code + */ + public function erreurAction() + { + require_once 'WsScore/WsScore.php'; + $ws = new WsScore(); + $erreurs = $ws->listError; + $this->view->assign('erreurs', $erreurs); + } +} + diff --git a/application/controllers/ErrorController.php b/application/controllers/ErrorController.php new file mode 100644 index 00000000..dca8da6f --- /dev/null +++ b/application/controllers/ErrorController.php @@ -0,0 +1,47 @@ +_getParam('error_handler'); + + switch ($errors->type) { + case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE: + case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER: + case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION: + + // 404 error -- controller or action not found + $this->getResponse()->setHttpResponseCode(404); + $this->view->message = 'Page not found'; + break; + default: + // application error + $this->getResponse()->setHttpResponseCode(500); + $this->view->message = 'Application error'; + break; + } + + // Log exception, if logger available + if ($log = $this->getLog()) { + $log->crit($this->view->message, $errors->exception); + } + + // conditionally display exceptions + if ($this->getInvokeArg('displayExceptions') == true) { + $this->view->exception = $errors->exception; + } + + $this->view->request = $errors->request; + } + + public function getLog() + { + $bootstrap = $this->getInvokeArg('bootstrap'); + if (!$bootstrap->hasPluginResource('Log')) { + return false; + } + $log = $bootstrap->getResource('Log'); + return $log; + } +} + diff --git a/application/controllers/ExportController.php b/application/controllers/ExportController.php new file mode 100644 index 00000000..478432b0 --- /dev/null +++ b/application/controllers/ExportController.php @@ -0,0 +1,20 @@ +_helper->layout->disableLayout(); + $this->_helper->viewRenderer->setNoRender(); + } + + public function indexAction() + { + echo "Export"; + } + + protected function checkFile($path) + { + + } + +} \ No newline at end of file diff --git a/application/controllers/FichierController.php b/application/controllers/FichierController.php new file mode 100644 index 00000000..4c9d6a01 --- /dev/null +++ b/application/controllers/FichierController.php @@ -0,0 +1,139 @@ +_helper->layout()->disableLayout(); + $this->_helper->viewRenderer->setNoRender(true); + } + + public function bodaccAction() + { + $auth = Zend_Auth::getInstance(); + if ( $auth->hasIdentity() ) { + + $directory = '/mnt/bodacc'; + + $q = $this->getRequest()->getParam('q'); + $file = base64_decode($q); + + $output_file = $directory.'/'.$file; + + if (file_exists($output_file) && filesize($output_file)>0) { + $content_type = 'application/pdf'; + header('Content-type: '.$content_type.''); + header('Content-Length: '.filesize($output_file)); + header('Content-MD5: '.base64_encode(md5_file($output_file))); + header('Content-Disposition: inline; filename="'.basename($output_file).'"'); + header('Cache-Control: private, max-age=0, must-revalidate'); + header('Pragma: public'); + ini_set('zlib.output_compression','0'); + echo file_get_contents($output_file); + + //Log de la requete + $tabInsert = array( + 'login' => $auth->getIdentity()->username, + 'idClient' => $auth->getIdentity()->idClient, + 'page' => 'histobodacc', + 'siren' => '', + 'nic' => '', + 'params' => $file, + 'test' => 0, + 'raisonSociale' => '', + 'cp' => '', + 'ville' => '', + 'ipClient' => $_SERVER['REMOTE_ADDR'], + ); + require_once 'framework/common/mysql.php'; + $iDbCrm = new WDB('sdv1'); + $rep = $iDbCrm->insert('logs', array_merge($tabInsert,$tabRdvInsee), false, true); + + } else { + echo "Erreur lors de l'affichage du fichier."; + } + } else { + echo "Authentification échoué."; + } + } + + public function logsAction() + { + $file = $this->getRequest()->getParam('fichier'); + $content_type = 'application/csv-tab-delimited-table'; + $c = Zend_Registry::get('config'); + $path = realpath($c->profil->path->files).'/'; + //Envoi du fichier sur la sortie standard + if ( file_exists($path.$file) ) { + header('Content-Transfer-Encoding: none'); + header('Content-type: ' . $content_type.''); + header('Content-Length: ' . filesize($path.$file)); + header('Content-MD5: ' . base64_encode(md5_file($path.$file))); + header('Content-Disposition: filename="' . basename($path.$file) . '"'); + header('Cache-Control: private, max-age=0, must-revalidate'); + header('Pragma: public'); + ini_set('zlib.output_compression', '0'); + echo file_get_contents($path.$file); + } + } + + public function csvAction() + { + $file = $this->getRequest()->getParam('fichier'); + $content_type = 'application/csv-tab-delimited-table'; + $c = Zend_Registry::get('config'); + $path = realpath($c->profil->path->files).'/'; + //Envoi du fichier sur la sortie standard + if ( file_exists($path.$file) ) { + header('Content-Transfer-Encoding: none'); + header('Content-type: ' . $content_type.''); + header('Content-Length: ' . filesize($path.$file)); + header('Content-MD5: ' . base64_encode(md5_file($path.$file))); + header('Content-Disposition: filename="' . basename($path.$file) . '"'); + header('Cache-Control: private, max-age=0, must-revalidate'); + header('Pragma: public'); + ini_set('zlib.output_compression', '0'); + echo file_get_contents($path.$file); + } + } + + public function kbisAction() + { + $file = $this->getRequest()->getParam('fichier'); + $content_type = 'application/pdf'; + $c = Zend_Registry::get('config'); + $path = realpath($c->profil->path->secure).'/kbis/'; + //Envoi du fichier sur la sortie standard + if ( file_exists($path.$file) ) { + header('Content-Transfer-Encoding: none'); + header('Content-type: ' . $content_type.''); + header('Content-Length: ' . filesize($path.$file)); + header('Content-MD5: ' . base64_encode(md5_file($path.$file))); + header('Content-Disposition: filename="' . basename($path.$file) . '"'); + header('Cache-Control: private, max-age=0, must-revalidate'); + header('Pragma: public'); + ini_set('zlib.output_compression', '0'); + echo file_get_contents($path.$file); + } + } + + public function associationsAction() + { + $file = $this->getRequest()->getParam('fichier'); + $content_type = 'application/pdf'; + $c = Zend_Registry::get('config'); + $path = realpath($c->profil->path->files).'/associations/'; + //Envoi du fichier sur la sortie standard + if ( file_exists($path.$file) ) { + header('Content-Transfer-Encoding: none'); + header('Content-type: ' . $content_type.''); + header('Content-Length: ' . filesize($path.$file)); + header('Content-MD5: ' . base64_encode(md5_file($path.$file))); + header('Content-Disposition: filename="' . basename($path.$file) . '"'); + header('Cache-Control: private, max-age=0, must-revalidate'); + header('Pragma: public'); + ini_set('zlib.output_compression', '0'); + echo file_get_contents($path.$file); + } + } + +} \ No newline at end of file diff --git a/application/controllers/ImportController.php b/application/controllers/ImportController.php new file mode 100644 index 00000000..3d1c3df5 --- /dev/null +++ b/application/controllers/ImportController.php @@ -0,0 +1,78 @@ +_helper->layout()->disableLayout(); + + $this->view->inlineScript()->appendFile('/scripts/jquery.form.js'); + $this->view->inlineScript()->appendFile('/scripts/jqueryprogressbar.js'); + + $this->view->assign('filesize', ini_get('upload_max_filesize')); + + $request = $this->getRequest(); + $idClient = $request->getParam('idClient', null); + $login = $request->getParam('login', null); + + $this->view->assign('idClient', $idClient); + $this->view->assign('login', $login); + } + + public function fileuploadAction() + { + $this->_helper->layout()->disableLayout(); + $this->_helper->viewRenderer->setNoRender(true); + + $request = $this->getRequest(); + $idClient = $request->getParam('idClient'); + $login = $request->getParam('login'); + + $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/configuration.ini', 'path'); + $path = realpath($config->data).'/validation'; + if(!file_exists($path)) mkdir($path); + + if ( isset($_FILES) && count($_FILES)==1 ){ + $n = $_FILES['fichier']['name']; + $s = $_FILES['fichier']['size']; + $tmp_name = $_FILES['fichier']['tmp_name']; + + $extValide = array('csv'); + $extension = strrchr($n,'.'); + $extension = substr($extension,1); + //Vérifier l'extension du fichier + if(!in_array($extension, $extValide)){ + echo "Extension de fichier incorrect !"; + } elseif (move_uploaded_file($tmp_name, $path.'/'.$idClient.'-'.$name.'.'.$extension)){ + echo "Fichier envoyé, view->url(array( + 'controller' => 'import', + 'action' => 'checkfile', + 'file' => $idClient.'-'.$name.'.'.$extension, + ))."\">Vérifier le format"; + } else { + echo "Erreur : ".$_FILES['fichier']['error']; + } + } + } + + /** + * Etat de progression de l'upload du fichier + */ + public function fileprogressAction() + { + $this->_helper->layout()->disableLayout(); + $this->_helper->viewRenderer->setNoRender(true); + + $request = $this->getRequest(); + $key = $request->getParam('key', ''); + if (!empty($key)) { + //$rep sera égal à false si la clef n'existe pas dans le cache apc + $rep = apc_fetch('upload_'.$key); + echo json_encode($rep); + } + } + + + +} \ No newline at end of file diff --git a/application/controllers/IndexController.php b/application/controllers/IndexController.php new file mode 100644 index 00000000..529fc3a2 --- /dev/null +++ b/application/controllers/IndexController.php @@ -0,0 +1,86 @@ + $params ) + { + if ($params['actif']) { + $wsServices[$section] = $params; + } + } + + //Parcourir les webservices + foreach($wsServices as $serviceName => $serviceInfo) + { + if ( !isset($wsServices[$serviceName]['idClient']) || $wsServices[$serviceName]['idClient'] == $auth->getIdentity()->idClient) + { + $serviceVersions = array(); + $configServiceVersions = $wsServices[$serviceName]['versions']; + foreach( $configServiceVersions as $section => $params ) + { + $serviceVersions[$section] = $params; + $this->serviceList[$serviceName]['version'] = $serviceVersions; + } + } + } + + //Lecture des webservices Clients + $clients = include APPLICATION_PATH . '/../library/WsScore/Clients/ClientsConfig.php'; + foreach( $clients as $section => $params ){ + if ($params['actif']) { + $wsClients[$section] = $params; + } + } + + //Parcourir les webservices clients + foreach($wsClients as $serviceName => $serviceInfo) + { + if ($wsClients[$serviceName]['idClient'] == $auth->getIdentity()->idClient) { + $this->serviceList = array(); + } + if ($wsClients[$serviceName]['idClient'] == $auth->getIdentity()->idClient || in_array($auth->getIdentity()->username, $wsClients[$serviceName]['user']) ) + { + $serviceVersions = array(); + $configServiceVersions = $wsClients[$serviceName]['versions']; + foreach( $configServiceVersions as $section => $params ) + { + $serviceVersions[$section] = $params; + $this->serviceList[$serviceName]['version'] = $serviceVersions; + $this->serviceList[$serviceName]['type'] = 'client'; + } + } + } + } + + public function indexAction() + { + $displayWs = array(); + if (count($this->serviceList)>0) + { + foreach($this->serviceList as $key => $ws) + { + $displayWs[$key] = $ws; + } + } + + $this->view->assign('ws', $displayWs); + } + + public function testAction() + { + //Connexion au service - Faire comme ci on charger le WSDL de l'extérieur + //getFunctions / getTypes + //Pour chaque Function, identifier les Types puis proposer les champs associés + //Valider les formulaires pour executer la requête du service + //Utiliser le jeux de tests disponible + } +} + diff --git a/application/controllers/JsonrpcController.php b/application/controllers/JsonrpcController.php new file mode 100644 index 00000000..c7441e56 --- /dev/null +++ b/application/controllers/JsonrpcController.php @@ -0,0 +1,108 @@ +_helper->layout->disableLayout(); + $this->_helper->viewRenderer->setNoRender(); + + $request = $this->getRequest(); + + //Nom du service + $serviceName = strtolower($request->getParam('service', 'Entreprise')); + + //Service spécifique client + if ($serviceName == 'clients') { + $client = $request->getParam('client', ''); + //Liste des clients + $clients = array(); + $listeClients = include APPLICATION_PATH . '/../library/WsScore/Clients/ClientsConfig.php'; + foreach ( $listeClients as $section => $params ) { + if ($params['actif']){ + $clients[] = $section; + } + } + if (!in_array($client, $clients)){ + echo 'Service clients introuvable !'; + exit; + } + $configServiceVersions = $clients[$client]['versions']; + } + else + { + //Service versions + $services = include APPLICATION_PATH . '/../library/WsScore/ServicesConfig.php'; + $configServiceVersions = $services[$serviceName]['versions']; + } + + //Liste des versions + foreach( $configServiceVersions as $section => $params ) { + $serviceVersions[$section] = $params; + if ($params['defaut']) { + $defautVersion = $section; + } + } + $version = $request->getParam('version', 'v'.$defautVersion); + $version = substr($version, 1); + + // Version inexistante + if ( !array_key_exists($version, $serviceVersions) ) { + echo "Version inexistante."; + exit; + } + // Version désactivé + if ( !$serviceVersions[$version]['actif'] ) { + echo "Version désactivée."; + exit; + } + + // Charger les classes et les types pour le service suivant la version + if ($serviceName == 'clients') { + $pathServiceClassIni = 'WsScore/Clients/'.ucfirst($client).'/v'.$version.'/Entreprise.ini'; + $pathServiceClassPhp = 'WsScore/Clients/'.ucfirst($client).'/v'.$version.'/Entreprise.php'; + $pathServiceUrl = 'clients/'.$client.'/v'.$version.'?wsdl-auto'; + //On redéfini le nom du service + $serviceName = 'Entreprise'; + $fichierWsdl = ucfirst($client).'-'.$serviceName.'-'.$version.'.wsdl'; + } else { + $pathServiceClassIni = 'WsScore/'.ucfirst($serviceName).'/v'.$version.'/'.ucfirst($serviceName).'.ini'; + $pathServiceClassPhp = 'WsScore/'.ucfirst($serviceName).'/v'.$version.'/'.ucfirst($serviceName).'.php'; + $pathServiceUrl = $serviceName.'/v'.$version.'?wsdl-auto'; + $fichierWsdl = ucfirst($serviceName).'-'.$version.'.wsdl'; + } + + //Génération du tableau de mapping + $wsConfig = new Zend_Config_Ini($pathServiceClassIni); + foreach($wsConfig->Type->toArray() as $Type){ + $classmap[$Type] = $Type; + } + + //Inclusion des classes de données + require_once $pathServiceClassPhp; + + // Instance du server + $server = new Zend_Json_Server(); + // Define class name + $server->setClass(ucfirst($serviceName)); + + // Gestion du SMD + if($this->getRequest()->isGet()){ + // Indiquer URL endpoint + //$this->getHelper('url')->url(array('controller'=>'', 'action'=>'' )); + $server->setTarget('/jsonrpc/'.$serviceName.'/'.$version.'/') + ->setEnvelope(Zend_Json_Server_Smd::ENV_JSONRPC_2); + // Grab the SMD + $smd = $server->getServiceMap(); + + //Return the SMD to the client + if (!headers_sent()) { + header('Content-Type: application/json'); + } + echo $smd; + return; + } else { + $server->setAutoEmitResponse(true); + $server->handle(); + } + } +} \ No newline at end of file diff --git a/application/controllers/RefController.php b/application/controllers/RefController.php new file mode 100644 index 00000000..36f2d7a1 --- /dev/null +++ b/application/controllers/RefController.php @@ -0,0 +1,119 @@ +_getParam('q',''); + $fichier = $fichier . '.csv'; + if (!empty($fichier) && file_exists('fichiers/'.$fichier)) + { + $this->_helper->layout->disableLayout(); + $this->_helper->viewRenderer->setNoRender(); + + list($nomFichier, $extFichier) = explode('.',$fichier); + //Distribution du fichier sur la sortie standard + switch ($extFichier) { + case 'png' : $content_type = 'image/png'; break; + case 'gif' : $content_type = 'image/gif'; break; + case 'jpeg': + case 'jpg' : $content_type = 'image/jpeg'; break; + case 'pdf' : $content_type = 'application/pdf'; break; + case 'csv' : $content_type = 'application/csv-tab-delimited-table'; break; + } + $this->getResponse()->setHeader('Content-Type', $content_type); + $contentDisposition = 'attachment'; + switch ($contentDisposition) { + case 'inline': + $this->getResponse()->setHeader('Content-Disposition', 'inline'); + break; + case 'attachment': + $this->getResponse()->setHeader('Content-Disposition', "attachment; filename=\"$fichier\""); + break; + } + + $data = file_get_contents('fichiers/'.$fichier); + + $this->getResponse()->setHeader('Content-Length', strlen($data)) + ->setHeader('Cache-Control', 'private, max-age=0, must-revalidate') + ->setHeader('Pragma', 'public') + ->setBody($data); + } else { + $this->view->assign('message', 'Fichier introuvable !'); + } + } + + /** + * Donne accès aux données contenues dans une table de base de données + */ + public function tableAction () + { + $requetesql = $this->_getParam('q',''); + $fichierCsv = $requetesql.'.csv'; + $fichierSql = $requetesql.'.sql'; + + //Emplacement des fichiers générés - lien symbolique en PRODUCTION + $path = DOC_WEB_LOCAL . 'fichiers/'; + if (!is_dir($path)) { mkdir($path); } + if (!empty($requetesql)) + { + if (!file_exists($path . $fichierCsv)) + { + if (file_exists('sql/'.$fichierSql)) + { + //Connexion mysql + $sql = file_get_contents('sql/'.$fichierSql); + require_once 'framework/common/mysql.php'; + $db = new WDB(); + $db->exportCSV($sql, $path . $fichierCsv, ',', "\n"); + } + } + + if (file_exists($path . $fichierCsv)) + { + $this->_helper->layout->disableLayout(); + $this->_helper->viewRenderer->setNoRender(); + //Distribution du fichier sur la sortie standard + list($nomFichier, $extFichier) = explode('.',$fichierCsv); + switch ($extFichier) + { + case 'png' : $content_type = 'image/png'; break; + case 'gif' : $content_type = 'image/gif'; break; + case 'jpeg': + case 'jpg' : $content_type = 'image/jpeg'; break; + case 'pdf' : $content_type = 'application/pdf'; break; + case 'csv' : $content_type = 'application/csv-tab-delimited-table'; break; + } + $this->getResponse()->setHeader('Content-Type', $content_type); + $contentDisposition = 'attachment'; + switch ($contentDisposition) + { + case 'inline': + $this->getResponse()->setHeader('Content-Disposition', 'inline'); + break; + case 'attachment': + $this->getResponse()->setHeader('Content-Disposition', "attachment; filename=\"$fichierCsv\""); + break; + } + + $data = file_get_contents($path . $fichierCsv); + + $this->getResponse()->setHeader('Content-Length', strlen($data)) + ->setHeader('Cache-Control', 'private, max-age=0, must-revalidate') + ->setHeader('Pragma', 'public') + ->setBody($data); + } + } else { + $this->view->assign('message', 'Paramètres incorrects !'); + } + } + +} \ No newline at end of file diff --git a/application/controllers/ServiceController.php b/application/controllers/ServiceController.php new file mode 100644 index 00000000..d68b56ed --- /dev/null +++ b/application/controllers/ServiceController.php @@ -0,0 +1,174 @@ +_helper->layout->disableLayout(); + $this->_helper->viewRenderer->setNoRender(); + + $request = $this->getRequest(); + + //Get the service name, make sure the string is in lower case + $serviceName = strtolower($request->getParam('service', 'Entreprise')); + + //ClassName and Directory with first letter capitalized + $serviceClassName = ucfirst($serviceName); + + //Customize service for customers + if ('clients' == $serviceName ) { + $client = strtolower($request->getParam('client', '')); + $clientClassName = ucfirst($client); + //Get list of customers + $clients = array(); + $listeClients = include APPLICATION_PATH . '/../library/WsScore/Clients/ClientsConfig.php'; + foreach ( $listeClients as $section => $params ){ + if ($params['actif']) { + $clients[$section] = $params; + } + } + if (!array_key_exists($client, $clients)){ + echo 'Service clients introuvable !'; + exit; + } + $configServiceVersions = $clients[$client]['versions']; + } + else + { + //Service versions + $services = include APPLICATION_PATH . '/../library/WsScore/ServicesConfig.php'; + $configServiceVersions = $services[$serviceName]['versions']; + } + + // Check versions + foreach( $configServiceVersions as $section => $params ) { + $serviceVersions[$section] = $params; + if ($params['defaut']) { + $defautVersion = $section; + } + } + $version = $request->getParam('version', 'v'.$defautVersion); + $version = substr($version, 1); + + // Version inexistante + if ( !array_key_exists($version, $serviceVersions) ) { + echo "Version inexistante."; + exit; + } + // Version désactivé + if ( !$serviceVersions[$version]['actif'] ) { + echo "Version désactivée."; + exit; + } + + // Charger les classes et les types pour le service suivant la version + if ('clients' == $serviceName) { + $pathServiceClassIni = 'WsScore/Clients/'.$clientClassName.'/v'.$version.'/Entreprise.ini'; + $pathServiceClassPhp = 'WsScore/Clients/'.$clientClassName.'/v'.$version.'/Entreprise.php'; + //Gestion du mode de génération du wsdl + if ( APPLICATION_ENV == 'development' + || array_key_exists('mode', $serviceVersions[$version]) + && $serviceVersions[$version]['mode']=='auto') { + $pathServiceUrl = 'clients/'.$client.'/v'.$version.'?wsdl-auto'; + } else { + $pathServiceUrl = 'clients/'.$client.'/v'.$version.'?wsdl'; + } + //On redéfini le nom du service + $serviceClassName = 'Entreprise'; + $fichierWsdl = $clientClassName.'-'.$serviceClassName.'-'.$version.'.wsdl'; + } else { + $pathServiceClassIni = 'WsScore/'.$serviceClassName.'/v'.$version.'/'.$serviceClassName.'.ini'; + $pathServiceClassPhp = 'WsScore/'.$serviceClassName.'/v'.$version.'/'.$serviceClassName.'.php'; + //Gestion du mode de génération du wsdl + if ( APPLICATION_ENV == 'development' + || array_key_exists('mode', $serviceVersions[$version]) + && $serviceVersions[$version]['mode']=='auto') { + $pathServiceUrl = $serviceName.'/v'.$version.'?wsdl-auto'; + } else { + $pathServiceUrl = $serviceName.'/v'.$version.'?wsdl'; + } + $fichierWsdl = $serviceClassName.'-'.$version.'.wsdl'; + } + + //Génération du tableau de mapping + $classmap = array(); + $wsConfig = new Zend_Config_Ini($pathServiceClassIni); + if ( $wsConfig->count()>0 ) { + foreach($wsConfig->Type->toArray() as $Type){ + $classmap[$Type] = $Type; + } + } + //Inclusion des classes de données + require_once $pathServiceClassPhp; + + // Fourniture du wsdl + if ( isset($_GET['wsdl']) && file_exists($fichierWsdl) ) { + + if (!headers_sent()) { + header('Content-Type: text/xml'); + } + echo file_get_contents($fichierWsdl); + + } elseif ( isset($_GET['wsdl']) && !file_exists($fichierWsdl) + || isset($_GET['wsdl-generate']) + || isset($_GET['wsdl-auto']) ) { + + // Définition du webservice + $wsdl = new Zend_Soap_AutoDiscover(); + $wsdl->setComplexTypeStrategy('Zend_Soap_Wsdl_Strategy_ArrayOfTypeSequence'); + $wsdl->setOperationBodyStyle( array('use' => 'literal') ); + $wsdl->setBindingStyle( array('style' => 'document') ); + $wsdl->setClass($serviceClassName); + + // Enregistrement du WSDL dans un fichier + if ( isset($_GET['wsdl-generate']) ) { + if (file_exists($fichierWsdl)) { + unlink($fichierWsdl); + } + $wsdl->dump($fichierWsdl); + echo "Le fichier $fichierWsdl a été généré"; + + //Génération/Fourniture du wsdl + } elseif (isset($_GET['wsdl']) && !file_exists($fichierWsdl)) { + $wsdl->dump($fichierWsdl); + if (!headers_sent()) { + header('Content-Type: text/xml'); + } + echo file_get_contents($fichierWsdl); + + // Envoi sur la sortie standard le wsdl sans enregistrement dans un fichier + } elseif ( isset($_GET['wsdl-auto']) ){ + $wsdl->handle(); + } + + // Fourniture du service + } else { + + // Traitement + if (APPLICATION_ENV == 'production' && file_exists($fichierWsdl)) { + $server = new Zend_Soap_Server($fichierWsdl); + } else { + $hostName = $this->getRequest()->getHttpHost(); + $server = new Zend_Soap_Server('http://'.$hostName.'/'.$pathServiceUrl); + } + + $server->setSoapFeatures(SOAP_USE_XSI_ARRAY_TYPE + SOAP_SINGLE_ELEMENT_ARRAYS); + $server->setClassmap($classmap); + $server->setEncoding('UTF-8'); + $server->registerFaultException(array('WsScores_Exception')); + $server->setWsiCompliant(true); + $server->setObject(new $serviceClassName()); + $server->handle(); + + //Pour débuggage ultime + $debug = false; + if ($debug){ + $request = $server->getLastRequest(); + file_put_contents(APPLICATION_PATH . '/../request.log', $request); + $response = $server->getLastResponse(); + file_put_contents(APPLICATION_PATH . '/../response.log', $response); + } + } + } +} \ No newline at end of file diff --git a/application/controllers/UserController.php b/application/controllers/UserController.php new file mode 100644 index 00000000..0cf5b9d1 --- /dev/null +++ b/application/controllers/UserController.php @@ -0,0 +1,67 @@ +view->navigation(); + $activeNav->removePages(); + } + + public function indexAction() + { + + } + + public function loginAction() + { + $this->view->headTitle()->append('Connexion'); + $form = new Form_Login(); + $this->view->form = $form; + $request = $this->getRequest(); + if ($request->isPost()) { + $formData = $request->getPost (); + if ($form->isValid($formData)) { + $login = $form->getValue('login'); + $pass = $form->getValue('pass'); + $auth = Zend_Auth::getInstance(); + $authAdapter = new Scores_AuthAdapter($login, $pass); + $result = $auth->authenticate($authAdapter); + if (!$result->isValid()){ + $this->view->message = ''; + foreach ($result->getMessages() as $message) { + $this->view->message.= $message."
"; + } + } else { + $timeout = $auth->getIdentity()->timeout; + + //Ecrit un cookie persistant valide pendant le temps definit + Zend_Session::rememberMe($timeout); + + $storage = new Zend_Auth_Storage_Session(); + $sessionNamespace = new Zend_Session_Namespace($storage->getNamespace()); + $sessionNamespace->setExpirationSeconds($timeout); + $auth->setStorage($storage); + $url = ''; + if (Zend_Session::namespaceIsset('login')){ + $session = new Zend_Session_Namespace('login'); + if (isset($session->url)) { + $url = $session->url; + } + } + if (!empty($url)){ + $this->_redirect($url); + } + + $this->_redirect('/'); + } + + } + } + } + + public function logoutAction() + { + Zend_Auth::getInstance()->clearIdentity(); + } + +} \ No newline at end of file diff --git a/application/models/AssoActes.php b/application/models/AssoActes.php new file mode 100644 index 00000000..64952812 --- /dev/null +++ b/application/models/AssoActes.php @@ -0,0 +1,16 @@ + array( + 'columns' => array('commande_id'), + 'refTableClass' => 'Application_Model_Commandes', + 'refColumns' => array('id'), + ), + ); + + public function insert(array $data) + { + if (empty($data['date_added'])) { + $data['date_added'] = date('Y-m-d H:i:s'); + } + return parent::insert($data); + } +} \ No newline at end of file diff --git a/application/models/CommandesKbis.php b/application/models/CommandesKbis.php new file mode 100644 index 00000000..ae1b9f04 --- /dev/null +++ b/application/models/CommandesKbis.php @@ -0,0 +1,5 @@ + array( + 'columns' => array('commande_id'), + 'refTableClass' => 'Application_Model_Commandes', + 'refColumns' => array('id'), + ), + ); +} \ No newline at end of file diff --git a/application/models/CommandesStatut.php b/application/models/CommandesStatut.php new file mode 100644 index 00000000..3f34e362 --- /dev/null +++ b/application/models/CommandesStatut.php @@ -0,0 +1,5 @@ + array( + 'columns' => array('code'), + 'refTableClass' => 'Application_Model_Sdv1UtilistateursService', + 'refColumns' => array('serviceCode') + ) + ); +} \ No newline at end of file diff --git a/application/models/Sdv1ClientsTarifs.php b/application/models/Sdv1ClientsTarifs.php new file mode 100644 index 00000000..c0996c90 --- /dev/null +++ b/application/models/Sdv1ClientsTarifs.php @@ -0,0 +1,6 @@ + array( + 'columns' => 'idClient', + 'refTableClass' => 'Sdv1Clients', + 'refColumns' => 'id' + ), + ); +} \ No newline at end of file diff --git a/application/models/Sdv1UtilisateursService.php b/application/models/Sdv1UtilisateursService.php new file mode 100644 index 00000000..37ee02c4 --- /dev/null +++ b/application/models/Sdv1UtilisateursService.php @@ -0,0 +1,6 @@ + 'PHP', + 'java' => 'Java', + 'perl' => 'Perl', + 'python' => 'Python', + 'csharp' => 'C#' + ); + + foreach ($langages as $langage => $lib){ + $fichier = 'code/'.$method.'-'.$langage.'.txt'; + if (file_exists($fichier)){ + $url = $this->view->url( + array( + 'controller' => 'documentation', + 'action' => 'code', + 'langage' => $langage, + 'element' => $method, + ) + ); + $exemple.= '' . $lib . ''; + $exemple.= ' '; + } + } + return $exemple; + } +} \ No newline at end of file diff --git a/application/views/helpers/DocMethod.php b/application/views/helpers/DocMethod.php new file mode 100644 index 00000000..c53039a4 --- /dev/null +++ b/application/views/helpers/DocMethod.php @@ -0,0 +1,61 @@ + 'string', + 'bool' => 'boolean', + 'integer' => 'int', + ); + + public function docMethod($method) + { + $output = ''; + + $returnType = $method['return']; + $methodName = $method['name']; + + $cptParameters = 0; + $parameters = ''; + foreach ($method['params'] as $param) { + if (isset($param['optional'])) { + $parameters.= '['; + } + $parameters.= '' . $this->transcodeType($param['type']) . ''; + $parameters.= ' '; + $parameters.= '' . $param['name'] . ''; + + if (isset($param['optional'])) { + if (isset($param['defaultValue'])) { + $parameters.= ' = '; + if (is_bool($param['defaultValue'])){ + $parameters.= ($param['defaultValue'] === false) ? 'false' : 'true' ; + } elseif (is_string($param['defaultValue']) && $param['defaultValue']==''){ + $parameters.= "''"; + } else { + $parameters.= $param['defaultValue']; + } + } + $parameters.= ']'; + } + $cptParameters++; + if ($cptParameters < count($method['params'])){ + $parameters.= ', '; + } + } + $output = '' . $this->transcodeType($returnType) . ''; + $output.= ' '; + $output.= '' . $methodName . '' . ' ( ' . $parameters . ' )'; + return $output; + } + + private function transcodeType($type) + { + if(array_key_exists($type, $this->_transcodeType)){ + return $this->_transcodeType[$type]; + } else { + return $type; + } + } + +} diff --git a/application/views/helpers/DocParameter.php b/application/views/helpers/DocParameter.php new file mode 100644 index 00000000..ef96975e --- /dev/null +++ b/application/views/helpers/DocParameter.php @@ -0,0 +1,81 @@ + 'string', + 'bool' => 'boolean', + 'integer' => 'int', + ); + + public function docParameter($params, $serviceTypes) + { + $this->serviceTypes = $serviceTypes; + $output = ''; + if (count($params)>0) { + $output.= ''; + } + return $output; + } + + private function parseType($type) + { + $output = ''; + $type = str_replace('[]', '', $type); + if (array_key_exists($type, $this->serviceTypes)) { + $types = $this->serviceTypes[$type]; + $output.= ''; + } elseif (in_array($type, $this->types)) { + $output.= ''; + } elseif ($type == 'void'){ + $output.= 'Void'; + } else { + $output.= ' => Type '.$type.' inconnu'; + } + return $output; + } + + private function formatParam($param) + { + $output = ''; + $output.= '
  • '; + $output.= '' . $this->transcodeType($param['type']) . ''; + $output.= ' '; + $output.= '' . $param['name'] . ''; + if (isset($param['description']) && !empty($param['description'])) { + $output.= ' - '.$param['description']; + } + if (!in_array($param['type'], $this->types)) { + $output.= $this->parseType($param['type']); + } + $output.= '
  • '; + return $output; + } + + private function transcodeType($type) + { + if(array_key_exists($type, $this->_transcodeType)){ + return $this->_transcodeType[$type]; + } else { + return $type; + } + } + +} \ No newline at end of file diff --git a/application/views/helpers/DocReturn.php b/application/views/helpers/DocReturn.php new file mode 100644 index 00000000..2df7ad7b --- /dev/null +++ b/application/views/helpers/DocReturn.php @@ -0,0 +1,74 @@ + 'string', + 'bool' => 'boolean', + 'integer' => 'int', + ); + + public function docReturn($type, $serviceTypes) + { + $this->serviceTypes = $serviceTypes; + return $this->parseType($type); + } + + private function parseType($type) + { + $output = ''; + $type = str_replace('[]', '', $type); + if (array_key_exists($type, $this->serviceTypes)) { + $types = $this->serviceTypes[$type]; + $output.= ''; + } elseif (in_array($type, $this->types)) { + $output.= '' . $type . ' '; + } elseif ($type == 'void'){ + $output.= 'Void'; + } else { + $output.= ' => Type '.$type.' inconnu'; + } + return $output; + } + + private function formatParam($param) + { + $output = ''; + $output.= '
  • '; + $output.= '' . $this->transcodeType($param['type']) . ''; + $output.= ' '; + $output.= ''. $param['name'] . ''; + if (isset($param['description']) && !empty($param['description'])) { + $output.= ' - '.$param['description']; + } + $type = str_replace('[]', '', $param['type']); + if (!in_array($type, $this->types)) { + $output.= $this->parseType($param['type']); + } + $output.= '
  • '; + return $output; + } + + private function transcodeType($type) + { + if(array_key_exists($type, $this->_transcodeType)){ + return $this->_transcodeType[$type]; + } else { + return $type; + } + } + +} diff --git a/application/views/helpers/ProfileLink.php b/application/views/helpers/ProfileLink.php new file mode 100644 index 00000000..3f31336b --- /dev/null +++ b/application/views/helpers/ProfileLink.php @@ -0,0 +1,17 @@ +hasIdentity()) { + $username = $auth->getIdentity()->username; + $logoutUrl = $this->view->url(array( + 'controller' => 'user', + 'action' => 'logout' + )); + return 'Déconnexion : ' . $username . ''; + } + } +} \ No newline at end of file diff --git a/application/views/scripts/demo/index.phtml b/application/views/scripts/demo/index.phtml new file mode 100644 index 00000000..013f5446 --- /dev/null +++ b/application/views/scripts/demo/index.phtml @@ -0,0 +1,13 @@ +

    Démonstration - Liste des méthodes

    + diff --git a/application/views/scripts/demo/method.phtml b/application/views/scripts/demo/method.phtml new file mode 100644 index 00000000..4fb949c5 --- /dev/null +++ b/application/views/scripts/demo/method.phtml @@ -0,0 +1,5 @@ +

    method;?>

    +

    message;?>

    +
    +form;?> +
    diff --git a/application/views/scripts/demo/requete.phtml b/application/views/scripts/demo/requete.phtml new file mode 100644 index 00000000..9fcf1053 --- /dev/null +++ b/application/views/scripts/demo/requete.phtml @@ -0,0 +1,20 @@ +

    SOAP

    + +

    Requete

    + +

    Réponse

    + + +

    XML

    +

    Requete

    + +

    Réponse

    + \ No newline at end of file diff --git a/application/views/scripts/documentation/clients.phtml b/application/views/scripts/documentation/clients.phtml new file mode 100644 index 00000000..47598d03 --- /dev/null +++ b/application/views/scripts/documentation/clients.phtml @@ -0,0 +1,42 @@ +
    +

    WSDL

    +

    Télécharger le WSDL

    +Le fichier est accessible sans authentification. +
    + +
    +

    Liste des opérations :

    +
      +serviceMethods as $method) {?> +
    1. + + Détail +
    2. + +
    +
    + +
    +

    Détails :

    +serviceMethods as $method) {?> +
    +   +

    +
    Description :
    +
    docDescription($method)?>
    +
    docComplement($method)?>
    +
    +

    docMethod($method);?>

    +
    Paramètres :
    +
    + docParameter($method['params'], $this->serviceTypes);?> +
    +
    Retour :
    +
    + docReturn($method['return'], $this->serviceTypes);?> +
    +
    +

    Exemple : docExemple($method['name']);?>

    +
    + +
    \ No newline at end of file diff --git a/application/views/scripts/documentation/code.phtml b/application/views/scripts/documentation/code.phtml new file mode 100644 index 00000000..74b4e49c --- /dev/null +++ b/application/views/scripts/documentation/code.phtml @@ -0,0 +1,2 @@ +

    langage?>

    +
    code?>
    diff --git a/application/views/scripts/documentation/erreur.phtml b/application/views/scripts/documentation/erreur.phtml new file mode 100644 index 00000000..55b7c354 --- /dev/null +++ b/application/views/scripts/documentation/erreur.phtml @@ -0,0 +1,10 @@ +
    +

    Liste des code erreurs/messages :

    + +
    \ No newline at end of file diff --git a/application/views/scripts/documentation/exemples.phtml b/application/views/scripts/documentation/exemples.phtml new file mode 100644 index 00000000..d9e42e62 --- /dev/null +++ b/application/views/scripts/documentation/exemples.phtml @@ -0,0 +1,2 @@ +

    Liste des exemples

    + diff --git a/application/views/scripts/documentation/index.phtml b/application/views/scripts/documentation/index.phtml new file mode 100644 index 00000000..5be9e144 --- /dev/null +++ b/application/views/scripts/documentation/index.phtml @@ -0,0 +1,46 @@ +
    +

    WSDL

    +

    Télécharger le WSDL

    +Le fichier est accessible sans authentification. +
    + +
    +

    Liste des opérations :

    +
      +serviceMethods as $method) {?> +
    1. + + Détail +
    2. + +
    +
    + +
    +

    Détails :

    +serviceMethods as $method) {?> +
    +   +

    +
    Description :
    +
    docDescription($method)?>
    +
    Empreinte :
    +
    docComplement($method)?>
    +
    +

    docMethod($method)?>

    +
    Paramètres :
    +
    + docParameter($method['params'], $this->serviceTypes);?> +
    +
    Retour :
    +
    + docReturn($method['return'], $this->serviceTypes);?> +
    +
    + docExemple($method['name'])?> + +

    Exemple :

    + +
    + +
    \ No newline at end of file diff --git a/application/views/scripts/documentation/nodoc.phtml b/application/views/scripts/documentation/nodoc.phtml new file mode 100644 index 00000000..3a84ddae --- /dev/null +++ b/application/views/scripts/documentation/nodoc.phtml @@ -0,0 +1 @@ +Erreur \ No newline at end of file diff --git a/application/views/scripts/error/error.phtml b/application/views/scripts/error/error.phtml new file mode 100644 index 00000000..1997506c --- /dev/null +++ b/application/views/scripts/error/error.phtml @@ -0,0 +1,28 @@ + + + + + Zend Framework Default Application + + +

    An error occurred

    +

    message ?>

    + + exception)): ?> + +

    Exception information:

    +

    + Message: exception->getMessage() ?> +

    + +

    Stack trace:

    +
    exception->getTraceAsString() ?>
    +  
    + +

    Request Parameters:

    +
    request->getParams(), true) ?>
    +  
    + + + + diff --git a/application/views/scripts/footer.phtml b/application/views/scripts/footer.phtml new file mode 100644 index 00000000..b3d9bbc7 --- /dev/null +++ b/application/views/scripts/footer.phtml @@ -0,0 +1 @@ +WebService Scores & Décisions +
    + +
    + profileLink(); ?> +
    + +
    \ No newline at end of file diff --git a/application/views/scripts/import/fileform.phtml b/application/views/scripts/import/fileform.phtml new file mode 100644 index 00000000..0fee8d92 --- /dev/null +++ b/application/views/scripts/import/fileform.phtml @@ -0,0 +1,53 @@ +
    + +

    Intégration d'un fichier

    + +

    Taille maximale d'un fichier : filesize?>

    + +
    + + + + +
    + +
    + + + +
    +
    + +
    +
    + +
    + +
    + +inlineScript()?> + + \ No newline at end of file diff --git a/application/views/scripts/index/index.phtml b/application/views/scripts/index/index.phtml new file mode 100644 index 00000000..18708683 --- /dev/null +++ b/application/views/scripts/index/index.phtml @@ -0,0 +1,86 @@ +

    Liste des services disponibles

    + + +
    +

    Authentification

    +

    +Le WebService utilise une authentification http basique. +Il s'agit donc de transmettre comme paramètres d'authentification +

    +

    http://{login}:{password}@url

    +

    +{password} est une chaine construite de cette façon md5({login}|{pass})
    +ou {login} est l'identifiant fournit
    +et {pass} le mot de passe fournit. +

    +

    +Vous trouverez dans ces exemples les prérequis pour s'authentifier et suivant +les outils et langage la possibilité de générer le code à partir du WSDL.
    +Exemple : docExemple('authentication')?> +

    + +
    +

    Compatibilité

    +

    Notre service web a été testé avec ces langages/librairies

    + + +
    +

    +Pour toutes remarques ou question merci d'adresser un email à +support@scores-decisions.com +

    \ No newline at end of file diff --git a/application/views/scripts/main.phtml b/application/views/scripts/main.phtml new file mode 100644 index 00000000..5e21feb3 --- /dev/null +++ b/application/views/scripts/main.phtml @@ -0,0 +1,23 @@ +doctype(); ?> + + + headMeta(); ?> + headTitle(); ?> + headStyle(); ?> + headLink(); ?> + headScript(); ?> + + +
    + +
    + layout()->content; ?> +
    + +
    + + \ No newline at end of file diff --git a/application/views/scripts/ref/fichier.phtml b/application/views/scripts/ref/fichier.phtml new file mode 100644 index 00000000..61db215b --- /dev/null +++ b/application/views/scripts/ref/fichier.phtml @@ -0,0 +1 @@ +message ?> diff --git a/application/views/scripts/ref/index.phtml b/application/views/scripts/ref/index.phtml new file mode 100644 index 00000000..b3d9bbc7 --- /dev/null +++ b/application/views/scripts/ref/index.phtml @@ -0,0 +1 @@ +message ?> diff --git a/application/views/scripts/user/index.phtml b/application/views/scripts/user/index.phtml new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/application/views/scripts/user/index.phtml @@ -0,0 +1 @@ + diff --git a/application/views/scripts/user/login.phtml b/application/views/scripts/user/login.phtml new file mode 100644 index 00000000..57e779f4 --- /dev/null +++ b/application/views/scripts/user/login.phtml @@ -0,0 +1,2 @@ +

    Identifiez-vous pour accèder aux ressources

    +form?> \ No newline at end of file diff --git a/application/views/scripts/user/logout.phtml b/application/views/scripts/user/logout.phtml new file mode 100644 index 00000000..dd7d8f21 --- /dev/null +++ b/application/views/scripts/user/logout.phtml @@ -0,0 +1 @@ +Vous avez été déconnecté. \ No newline at end of file diff --git a/docs/MODIFICATION_ZEND.txt b/docs/MODIFICATION_ZEND.txt new file mode 100644 index 00000000..96ea4609 --- /dev/null +++ b/docs/MODIFICATION_ZEND.txt @@ -0,0 +1,55 @@ +Le fichier Zend/Soap/Wsdl/Strategy/DefaultComplexType.php a été modifié pour +générer la documentation automatiquement. + +/** + * Traitement éléments de documentation à placer dans le WSDL + * Supprime les retours chariots. + * Récupére les éléments de documentation + */ +$comment = ''; +$docBlock = preg_replace('/\n/', '', $property->getDocComment() ); +if (preg_match('/\/\*\*(.+) \* @var\s+[^\s]+\s+(?:\*|@)/m', $docBlock, $docBlockMatches)) { + $comment.= preg_replace( + array('/\r/', '/\t\s\*/'), + array('', ''), $docBlockMatches[1] + ); +} + +/** + * Ajout des éléments de documentation au WSDL + */ +if (!empty($comment)){ + $annotation = $dom->createElement('xsd:annotation'); + $documentation = $dom->createElement('xsd:documentation', trim($comment)); + $annotation->appendChild($documentation); + $element->appendChild($annotation); +} + +===============================================================================> + +Le fichier Zend/Soap/AutoDiscover.php a été modifié +function _addFunctionToWsdl + +$sequenceElement = array( + 'name' => $param->getName(), + 'type' => $wsdl->getType($param->getType()), + 'desc' => $param->getDescription() +); + +===============================================================================> + +Le fichier Zend/Soap/Wsdl.php a été modifié +function _parseElement + + } elseif ($key == 'desc') { + if (!empty($value)) { + $annotation = $this->_dom->createElement('xsd:annotation'); + $documentation = $this->_dom->createElement('xsd:documentation', trim($value)); + $annotation->appendChild($documentation); + $elementXml->appendChild($annotation); + } +} else { + + + + diff --git a/docs/README.txt b/docs/README.txt new file mode 100644 index 00000000..0dfb5d00 --- /dev/null +++ b/docs/README.txt @@ -0,0 +1,179 @@ +README +====== +Le webservice est basé sur le ZendFramework pour générer les WSDLs. + +Fichier de configuration +======================== +La configuration est décomposé en plusieurs fichiers, +avec adaptation suivant la machine +- mysql.php +- smtp.php +- sphinx.php +- stockage.php + +sans adaptation suivant la machine +- partenaires.php + +Fonctionnement +============== +Obtenir les WSDL +Pour le service Entreprise + + - En mode développement : http://hostname/entreprise/version?wsdl-auto + - Générer le WSDL : http://hostname/entreprise/version?wsdl-generate + - Utiliser le WSDL généré : http://hostname/entreprise/version?wsdl + +Pour le service Interne + + http://hostname/interne/version?wsdl + +Pour les clients + + http://hostname/clients/nom_du_client/version?wsdl + +N.B : Le fichier WSDL est généré automatiquement en appelant +http://hostname/service?wsdl afin de ne pas provoquer d'erreur +après une mise en production + +Pour définir le mode (vhost d'apache) + SetEnv APPLICATION_ENV "development" + SetEnv APPLICATION_ENV "production" + SetEnv APPLICATION_ENV "staging" + +En appelant l'url http://hostname/service, le contoller de l'application, +"service" est automatiquement utiliser. +Tout ce qui est visible dans la class est utilisé par le controller et se +retrouve visible dans le service (wsdl, requête) + +Si des fonctions ne doivent pas être rendu visible il faut donc les séparer +dans un autre controller utilisant une autre class. + + +Documentation des méthodes et ajout spécial +=========================================== + +La documentation est géneré en automatique. + +Voici comment définir simplement la documentation d'une méthode + + /** + * Retourne les informations identitaires de l'entreprise ou de l'établissement demandé + * @param string $key Siren de l'entreprise ou siret de l'établissement + * @return Identite + */ + public function test($key) + { + + } + +Attention ces informations servent aussi pour la structure du WSDL + +Pour spécifier un lien vers un fichier ou pour générer un fichier depuis une +requête SQL à partir de la documentation du service. +Ajouter dans le docblock : + - Pour un fichier + @ref fichier:libellé:{nom_du_fichier.ext} + - Pour une requête SQL + @ref mysql:libellé:{nom_du_fichier.sql} + +Les fichiers a télécharger sont à placer dans le répértoire public/fichier et +les fichiers sql dans public/sql + +Pour spécifier des éléments de taille (non pris en compte sur le WSDL) + @xsd minLength=9 + @xsd maxLength=15 + +Configuration PHP +================= +apt-get install php5-mysql +apt-get install php-apc +apt-get install php5-curl +apt-get install php5-xmlrpc + +Paquet PEAR +- Mail +- Mail_Mime + +WKHTMLTOPDF +=========== +apt-get install libXrender1 +apt-get install libfontconfig + +Configuration VHOST +=================== +a2enmod rewrite + +Exemple de vhost en mode développement + + + ServerName scoresws.sd.dev + AddDefaultCharset utf-8 + + # Pour la gestion des ports : $_SERVER['SERVER_NAME'], $_SERVER['SERVER_PORT'] + UseCanonicalName On + UseCanonicalPhysicalPort On + + DocumentRoot "D:/www/webservice/public" + SetEnv APPLICATION_ENV "development" + + DirectoryIndex index.php + AllowOverride All + Order allow,deny + Allow from all + + RewriteEngine On + RewriteCond %{REQUEST_URI} ^/favicon.ico$ [OR] + RewriteCond %{REQUEST_FILENAME} -s [OR] + RewriteCond %{REQUEST_FILENAME} -l [OR] + RewriteCond %{REQUEST_FILENAME} -d + RewriteRule ^.*$ - [NC,L] + RewriteRule ^.*$ index.php [NC,L] + + + + # Possible values include: debug, info, notice, warn, error, crit, alert, emerg. + LogLevel debug + ErrorLog "logs/scoresws.sd.dev-error.log" + CustomLog "logs/scoresws.sd.dev-access.log" common + + + +Vhost réel + + + ServerName wse.scores-decisions.com + ServerAlias wse1.scores-decisions.com + + # Pour la gestion des ports : $_SERVER['SERVER_NAME'], $_SERVER['SERVER_PORT'] + UseCanonicalName On + UseCanonicalPhysicalPort On + + ServerSignature Off + AddDefaultCharset utf-8 + DocumentRoot /home/vhosts/webservice/public + SetEnv APPLICATION_ENV "production" + + DirectoryIndex index.php + AllowOverride All + Order allow,deny + Allow from all + + RewriteEngine On + RewriteCond %{REQUEST_URI} ^/favicon.ico$ [OR] + RewriteCond %{REQUEST_FILENAME} -s [OR] + RewriteCond %{REQUEST_FILENAME} -l [OR] + RewriteCond %{REQUEST_FILENAME} -d + RewriteRule ^.*$ - [NC,L] + RewriteRule ^.*$ index.php [NC,L] + + + + # Possible values include: debug, info, notice, warn, error, crit, alert, emerg. + LogLevel error + ErrorLog /var/log/apache2/webservice-error.log + CustomLog /var/log/apache2/webservice-access.log common + + + + + diff --git a/docs/logrotate.txt b/docs/logrotate.txt new file mode 100644 index 00000000..5d4ebec4 --- /dev/null +++ b/docs/logrotate.txt @@ -0,0 +1,8 @@ +Créer un fichier "webservice" dans /etc/logrotate.d + +/var/log/webservice/*.log { + weekly + missingok + compress + notifempty +} \ No newline at end of file diff --git a/library/Application/Controller/Plugin/Auth.php b/library/Application/Controller/Plugin/Auth.php new file mode 100644 index 00000000..d0c8ae9c --- /dev/null +++ b/library/Application/Controller/Plugin/Auth.php @@ -0,0 +1,96 @@ +getControllerName(); + $action = $request->getActionName(); + + $checkAuth = true; + //Pas d'authentification sur la demande d'authentification + if ( $controller == 'user' && $action == 'login' ) { + $checkAuth = false; + } + + // Pas d'authentification sur ces services + if ( in_array($controller, array('service', 'import')) + || ( $controller == 'fichier' && $action == 'logs' ) + || ( $controller == 'fichier' && $action == 'kbis' ) + || ( $controller == 'fichier' && $action == 'csv' ) + || ( $controller == 'fichier' && $action == 'associations' )) { + $checkAuth = false; + } + + $checkWs = true; + if ( $controller == 'fichier' ) { + $checkWs = false; + } + + if ($checkAuth) { + $login = $request->getParam('login'); + $pass = $request->getParam('pass', ''); + $hach = $request->getParam('hach'); + + $auth = Zend_Auth::getInstance(); + + //On vérifie le tout lors d'une connexion par url + if ( !empty($login) && !empty($hach) ) { + + $authAdapter = new Scores_AuthAdapter($login, $hach, $checkWs); + $result = $auth->authenticate($authAdapter); + if (!$result->isValid()) { + $layout = Zend_Layout::getMVCInstance(); + if ( !$layout->isEnabled() ){ + echo "Identification incorrect ou périmé."; + } else { + $request->setModuleName('default') + ->setControllerName('user') + ->setActionName('logout'); + } + + } else { + + $storage = new Zend_Auth_Storage_Session(); + $session = new Zend_Session_Namespace($storage->getNamespace()); + //$session->setExpirationSeconds(86400); + $auth->setStorage($storage); + + } + + //Sinon on reste sur le standard + } else { + //Pas authentifié + if ( !$auth->hasIdentity() || time() > $auth->getIdentity()->time ) { + + $auth->clearIdentity(); + $session = new Zend_Session_Namespace('login'); + $session->url = $_SERVER['REQUEST_URI']; + + $layout = Zend_Layout::getMVCInstance(); + if (!$layout->isEnabled()){ + echo "Identification incorrect ou périmé."; + } else { + $this->_response->setRedirect('/user/login')->sendResponse(); + } + //Authentifié => on met à jour la session + } else { + + $identity = $auth->getIdentity(); + $identity->time = time() + $identity->timeout; + $auth->getStorage()->write($identity); + + if (Zend_Session::namespaceIsset('login')){ + Zend_Session::namespaceUnset('login'); + } + + } + } + } + } +} \ No newline at end of file diff --git a/library/Form/Login.php b/library/Form/Login.php new file mode 100644 index 00000000..f7a5e4ec --- /dev/null +++ b/library/Form/Login.php @@ -0,0 +1,28 @@ +setName('login'); + $this->setAction('login'); + $this->setMethod('post'); + $this->addElement('text', 'login', array( + 'filters' => array('StringTrim'), + 'label' => 'Identifiant : ', + 'required' => 'true', + ) + ); + $this->addElement('password', 'pass', + array( + 'label' => 'Mot de passe : ', + 'required' => 'true', + ) + ); + $this->addElement('submit', 'submit', + array( + 'label' => 'Identification', + 'ignore' => true, + )); + } + +} \ No newline at end of file diff --git a/library/Infogreffe/Config.php b/library/Infogreffe/Config.php new file mode 100644 index 00000000..b650eb5e --- /dev/null +++ b/library/Infogreffe/Config.php @@ -0,0 +1,40 @@ + array( + 'URL' => "https://webservices.infogreffe.fr/WSContextInfogreffe/INFOGREFFE", + 'URI' => "https://webservices.infogreffe.fr/", + 'USER' => "85000109", + 'PASS' => "166", + ), + 'REC' => array( + 'URL' => "https://wsrcte.extelia.fr/WSContextInfogreffe/INFOGREFFE", + 'URI' => "https://wsrcte.extelia.fr/", + 'USER' => "85000109", + 'PASS' => "160409", + ), + ); + + /** + * Define path to the WSDL + * @var string + */ + protected $wsdl = 'infogreffe.wsdl'; + + /** + * Time in hours to keep file + * @var int + */ + protected $cacheFiletime = 8; + + /** + * Directory where cache file are store + * @var string + */ + protected $cachePath = '/cache/'; +} \ No newline at end of file diff --git a/library/Infogreffe/Infogreffe.php b/library/Infogreffe/Infogreffe.php new file mode 100644 index 00000000..8f53a507 --- /dev/null +++ b/library/Infogreffe/Infogreffe.php @@ -0,0 +1,545 @@ +dataPath = SECURE_STORAGE; + + /** + * Define path where XML cache file are store + */ + $this->cachePath = ''; + + } + + /** + * Send XML Request + * We have some problem to use SOAP so we use CURL + * @return string XML Response + */ + protected function getProduitsXML() + { + $xmlStr = ''; + $env = 'PRD'; + + //Construct the request + $xml = new SimpleXMLElement(''); + $emetteur = $xml->addChild('emetteur'); + $emetteur->addChild('code_abonne', $this->config[$env]['USER']); + $emetteur->addChild('mot_passe', $this->config[$env]['PASS']); + + //Set Command ID + $emetteur->addChild('reference_client', 'G'.$this->idCommande); + $code_requete = $emetteur->addChild('code_requete'); + $code_requete->addChild('type_profil', 'A'); + $code_requete->addChild('origine_emetteur', 'IC'); + + // C = Commande de documents + $code_requete->addChild('nature_requete', 'C'); + + $code_requete->addChild('type_document', $this->typeCommande); + $code_requete->addChild('type_requete', 'S'); // S = Simple + + $mode_diffusion = $code_requete->addChild('mode_diffusion'); + // Mode de diffusion : C = Courrier, T = Téléchargement, M = Mail, XL = XML + if ($this->vecteur=='XL' && $this->option=='') + { + //On ajoute tout les types de diffusions pour $vecteur = XL + $mode_diffusion->addChild('mode')->addAttribute('type', 'C'); + $mode_diffusion->addChild('mode')->addAttribute('type', 'T'); + } + $mode_diffusion->addChild('mode')->addAttribute('type', $this->vecteur); + + $code_requete->addChild('media', 'WS'); + + $commande = $xml->addChild('commande'); + $commande->addChild('num_siren', $this->siren); + + // Commande de documents : bilan saisie ou bilan complet + if ( ($this->typeCommande=='BS' || $this->typeCommande=='BI') && count($this->option)>0 ) + { + $commande->addChild('greffe',$this->option['greffe']); + $commande->addChild('dossier_millesime',$this->option['dossier_millesime']); + $commande->addChild('dossier_statut',$this->option['dossier_statut']); + $commande->addChild('dossier_chrono',$this->option['dossier_chrono']); + $commande->addChild('num_depot',$this->option['num_depot']); + $commande->addChild('date_cloture', $this->option['date_cloture']); + } + // Commande de documents : actes + elseif ( $this->typeCommande=='AC' && count($this->option)>0 ) + { + $commande->addChild('greffe',$this->option['greffe']); + $commande->addChild('dossier_millesime',$this->option['dossier_millesime']); + $commande->addChild('dossier_statut',$this->option['dossier_statut']); + $commande->addChild('dossier_chrono',$this->option['dossier_chrono']); + $commande->addChild('num_depot',$this->option['num_depot']); + $liste_actes = $commande->addChild('liste_actes'); + $liste_actes->addChild('acte')->addAttribute('num', $this->option['num_acte']); + } + + $xmlStr = str_replace('', '', $xml->asXML()); + + //Be sure it's in UTF-8 + $req = utf8_encode($xmlStr); + + //Create XML request + $post = ''. + ''. + ''. + ''. + ''.$req.''. + ''. + ''. + ''; + + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $this->config[$env]['URL']); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); + curl_setopt($ch, CURLOPT_COOKIEFILE,TRUE); + curl_setopt($ch, CURLOPT_POST, TRUE); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); + curl_setopt($ch, CURLOPT_POSTFIELDS, $post); + $response = curl_exec($ch); + + //Remove SOAP part of XML + $response = str_replace("", '', $response); + $response = str_replace('','', $response); + + return $response; + } + + protected function log(){} + + /** + * Detect error + * @param string $xml + * @throws Exception + */ + protected function error($xml) + { + if (!empty($xml)) + { + $doc = new DOMDocument(); + $load = $doc->loadXML($xml, LIBXML_NOERROR | LIBXML_NOWARNING); + if (!$load) { + $tmp = explode('-', $xml); + $errNum = intval($tmp[0]); + $errMsg = $tmp[1]; + if( $errNum == '5' ){ + $errMsg = 'Service partenaire indisponible.'; + } + throw new Exception($errNum . '-' . $errMsg); + } + } + else + { + throw new Exception('Fichier vide'); + } + } + + /** + * Return true if the file modification time is in the period of caching + * @param string $file + * Path of file + * @return boolean + */ + protected function cachetimeover($file) + { + $timeover = false; + $dateFile = filemtime($file); + $now = mktime(date('G'), date('i'), date('s'), date('m') , date('d'), date('Y')); + $maxTime = mktime(date('G',$dateFile)+$this->cacheFiletime, date('i',$dateFile), date('s',$dateFile), date("m",$dateFile), date("d",$dateFile), date("Y",$dateFile)); + if($now>$maxTime) $timeover = true; + return $timeover; + } + + protected function bilanFileName() + { + return 'bilan-'.$this->siren.'-'; + + } + + /** + * + * @param unknown $url + * @return boolean + */ + public function download($url) + { + $result = true; + + + + $fp = fopen(SECURE_STORAGE . ''. $file, 'w'); + $ch = curl_init($url); + curl_setopt($ch, CURLOPT_FILE, $fp); + $data = curl_exec($ch); + // Check if any error occured + if(curl_errno($ch)) + { + $result = false; + } + curl_close($ch); + fclose($fp); + return $result; + } + + public function getStatut($siren, $typeCommande = '', $ref = '', $idCommande = 0) + { + $this->typeCommande = 'ST'; + $this->vecteur = 'C'; + + $reponse = $this->getProduitsXML(); + + //Gestion du retour infogreffe + if($this->erreur($xmlReponse)) + { + $error = $this->erreurMsg($xmlReponse); + } + //@todo result non définie + return array('error' => $error , 'result' => $result ); + + + } + + /** + * Retourne la liste des bilans + * @param string $siren + * @return array + */ + public function getBilans($siren) + { + $this->siren = $siren; + $this->vecteur = 'XL'; + $this->typeCommande = 'BI'; + + $cacheFile = APPLICATION_PATH . $this->cachePath.'/'.$this->typeCommande.'-'.$siren.'.xml'; + + //Get cache information + if (file_exists($cacheFile) && $this->cachetimeover($cacheFile) ) + { + $xml = file_get_contents($cacheFile); + } + //Make the request + else + { + $xml = $this->getProduitsXML(); + $this->error($xml); + + //Create file for the cache + file_put_contents($cacheFile, $xml); + } + + //Parse XML to make tab + $doc = new DOMDocument(); + $doc->loadXML($xml); + $liste_bilan_complet = $doc->getElementsByTagName('liste_bilan_complet')->item(0); + $bilan_complet = $liste_bilan_complet->getElementsByTagName('bilan_complet'); + + $bilans = array(); + if (count($bilan_complet)>0) + { + foreach($bilan_complet as $element) + { + $bilan = array(); + $num_gest = $element->getElementsByTagName('num_gest')->item(0); + $bilan['greffe'] = $num_gest->getElementsByTagName('greffe')->item(0)->nodeValue; + $bilan['dossier_millesime'] = $num_gest->getElementsByTagName('dossier_millesime')->item(0)->nodeValue; + $bilan['dossier_statut'] = $num_gest->getElementsByTagName('dossier_statut')->item(0)->nodeValue; + $bilan['dossier_chrono'] = $num_gest->getElementsByTagName('dossier_chrono')->item(0)->nodeValue; + $bilan['num_siren'] = $element->getElementsByTagName('num_siren')->item(0)->nodeValue; + $bilan['date_cloture'] = $element->getElementsByTagName('date_cloture')->item(0)->nodeValue; + $bilan['date_cloture_iso'] = $element->getElementsByTagName('date_cloture_iso')->item(0)->nodeValue; + $bilan['millesime'] = $element->getElementsByTagName('millesime')->item(0)->nodeValue; + $bilan['num_depot'] = $element->getElementsByTagName('num_depot')->item(0)->nodeValue; + $bilan['type_comptes'] = $element->getElementsByTagName('type_comptes')->item(0)->nodeValue; + $mode_diffusion = $element->getElementsByTagName('mode_diffusion')->item(0)->getElementsByTagName('mode'); + foreach($mode_diffusion as $mode) + { + $bilan['mode_diffusion'][] = $mode->getAttribute('type'); + } + + //Génération de l'index pour le tri + $date = $bilan['date_cloture_iso']; + if(!empty($date)) + { + $datef = substr($date,0,4).substr($date,5,2).substr($date,8,2); + //Affectation liste générale avec un index permettant le tri + $bilans[$datef] = $bilan; + } + } + } + krsort($bilans); + + return $bilans; + } + + /** + * Commande d'un bilan image + * @param string $siren + * Siren + * @param string $diffusion + * Mode de diffusion (C|T) + * @param array $option + * Référence + * @return string + */ + public function getBilan($siren, $diffusion, $option) + { + $this->siren = $siren; + $this->typeCommande = 'BI'; + $this->vecteur = $diffusion; + $this->option = $option; + $xml = $this->getProduitsXML(); + + $doc = new DOMDocument(); + $doc->loadXML($xml); + $bilan_complet = $doc->getElementsByTagName('bilan_complet')->item(0); + $bilan = array(); + $bilan['num_gest'] = array(); + $num_gest = $bilan_complet->getElementsByTagName('num_gest')->item(0); + $bilan['num_gest']['greffe'] = $num_gest->getElementsByTagName('greffe')->item(0)->nodeValue; + $bilan['num_gest']['dossier_millesime'] = $num_gest->getElementsByTagName('dossier_millesime')->item(0)->nodeValue; + $bilan['num_gest']['dossier_statut'] = $num_gest->getElementsByTagName('dossier_statut')->item(0)->nodeValue; + $bilan['num_gest']['dossier_chrono'] = $num_gest->getElementsByTagName('dossier_chrono')->item(0)->nodeValue; + $bilan['num_siren'] = $bilan_complet->getElementsByTagName('num_siren')->item(0)->nodeValue; + $bilan['date_cloture'] = $bilan_complet->getElementsByTagName('date_cloture')->item(0)->nodeValue; + $bilan['date_cloture_iso'] = $bilan_complet->getElementsByTagName('date_cloture_iso')->item(0)->nodeValue; + $bilan['millesime'] = $bilan_complet->getElementsByTagName('millesime')->item(0)->nodeValue; + $bilan['num_depot'] = $bilan_complet->getElementsByTagName('num_depot')->item(0)->nodeValue; + $bilan['type_comptes'] = $bilan_complet->getElementsByTagName('type_comptes')->item(0)->nodeValue; + $bilan['url_acces'] = $bilan_complet->getElementsByTagName('url_acces')->item(0)->nodeValue; + + return $bilan['url_acces']; + } + + /** + * Retourne la liste des actes + * @param string $siren + * @return array + */ + public function getActes($siren) + { + $this->siren = $siren; + $this->vecteur = 'XL'; + $this->typeCommande = 'AC'; + + $cacheFile = APPLICATION_PATH . $this->cachePath.'/'.$this->typeCommande.'-'.$siren.'.xml'; + + //Get cache information + if (file_exists($cacheFile) && $this->cachetimeover($cacheFile) ) + { + $xml = file_get_contents($cacheFile); + } + //Make the request + else + { + $xml = $this->getProduitsXML(); + $this->error($xml); + + //Create file for the cache + file_put_contents($cacheFile, $xml); + } + + //Parse XML to make tab + $doc = new DOMDocument(); + $doc->loadXML($xml); + $liste_depot_acte = $doc->getElementsByTagName('liste_depot_acte')->item(0); + $depot_actes = $liste_depot_acte->getElementsByTagName('depot_acte'); + $actes = array(); + foreach($depot_actes as $depot_acte) + { + $acte = array(); + + $acte['num_gest'] = array(); + $num_gest = $depot_acte->getElementsByTagName('num_gest')->item(0); + $acte['num_gest']['greffe'] = $num_gest->getElementsByTagName('greffe')->item(0)->nodeValue; + $acte['num_gest']['dossier_millesime'] = $num_gest->getElementsByTagName('dossier_millesime')->item(0)->nodeValue; + $acte['num_gest']['dossier_statut'] = $num_gest->getElementsByTagName('dossier_statut')->item(0)->nodeValue; + $acte['num_gest']['dossier_chrono'] = $num_gest->getElementsByTagName('dossier_chrono')->item(0)->nodeValue; + + $acte['num_siren'] = $depot_acte->getElementsByTagName('num_siren')->item(0)->nodeValue; + $acte['num_depot'] = $depot_acte->getElementsByTagName('num_depot')->item(0)->nodeValue; + $acte['date_depot'] = $depot_acte->getElementsByTagName('date_depot')->item(0)->nodeValue; + + $infoActes = $depot_acte->getElementsByTagName('acte'); + $acte['depot'] = array(); + foreach($infoActes as $infoActe) + { + $actenum = array(); + $actenum['date_acte'] = $infoActe->getElementsByTagName('date_acte')->item(0)->nodeValue; + $actenum['num_acte'] = $infoActe->getElementsByTagName('num_acte')->item(0)->nodeValue; + $actenum['type_acte'] = $infoActe->getElementsByTagName('type_acte')->item(0)->nodeValue; + $actenum['type_acte_libelle'] = $infoActe->getElementsByTagName('type_acte_libelle')->item(0)->nodeValue; + $actenum['nbpages_acte'] = $infoActe->getElementsByTagName('nbpages_acte')->item(0)->nodeValue; + $decision = $infoActe->getElementsByTagName('decision')->item(0); + if($decision) + { + $actenum['decision'] = array(); + $actenum['decision']['nature'] = $decision->getElementsByTagName('nature')->item(0)->nodeValue; + $actenum['decision']['libelle'] = $decision->getElementsByTagName('libelle')->item(0)->nodeValue; + } + + $actenum['mode_diffusion'] = array(); + $mode_diffusion = $infoActe->getElementsByTagName('mode_diffusion')->item(0)->getElementsByTagName('mode'); + foreach($mode_diffusion as $mode) + { + $actenum['mode_diffusion'][] = $mode->getAttribute('type'); + } + $acte['depot'][] = $actenum; + }//Fin listes des infos acte + + //Génération de l'index pour le tri + if(!empty($acte['date_depot'])){ + $date = $acte['date_depot']; + } else { + $date = ''; + } + + if(!empty($date)) + { + $datef = substr($date,0,4).substr($date,5,2).substr($date,8,2); + $key = $datef.'-'.$acte['num_depot']; + //Affectation liste générale avec un index permettant le tri + $actes[$key] = $acte; + } + //Prise en compte de l'acte -1 + if($acte['num_depot']==-1) + { + $actes[0] = $acte; + } + + } + + //Tri suivant la date d'acte ou de depot + krsort($actes); + return $actes; + + } + + public function getActe($siren, $diffusion, $option) + { + //Retourner la référence de commande interne, chez infogreffe + + + + + + $doc = new DOMDocument(); + $doc->loadXML($xml); + + $depot_acte = $doc->getElementsByTagName('depot_acte')->item(0); + + $info = array(); + $info['num_gest'] = array(); + + $num_gest = $depot_acte->getElementsByTagName('num_gest')->item(0); + + $info['num_gest']['greffe'] = $num_gest->getElementsByTagName('greffe')->item(0)->nodeValue; + $info['num_gest']['dossier_millesime'] = $num_gest->getElementsByTagName('dossier_millesime')->item(0)->nodeValue; + $info['num_gest']['dossier_statut'] = $num_gest->getElementsByTagName('dossier_statut')->item(0)->nodeValue; + $info['num_gest']['dossier_chrono'] = $num_gest->getElementsByTagName('dossier_chrono')->item(0)->nodeValue; + + $info['num_siren'] = $depot_acte->getElementsByTagName('num_siren')->item(0)->nodeValue; + $info['num_depot'] = $depot_acte->getElementsByTagName('num_depot')->item(0)->nodeValue; + $info['date_depot'] = $depot_acte->getElementsByTagName('date_depot')->item(0)->nodeValue; + + $infoActes = $depot_acte->getElementsByTagName('acte'); + $info['actes'] = array(); + foreach($infoActes as $infoActe) + { + $actenum = array(); + $actenum['date_acte'] = $infoActe->getElementsByTagName('date_acte')->item(0)->nodeValue; + $actenum['num_acte'] = $infoActe->getElementsByTagName('num_acte')->item(0)->nodeValue; + $actenum['type_acte'] = $infoActe->getElementsByTagName('type_acte')->item(0)->nodeValue; + $actenum['type_acte_libelle'] = $infoActe->getElementsByTagName('type_acte_libelle')->item(0)->nodeValue; + $actenum['nbpages_acte'] = $infoActe->getElementsByTagName('nbpages_acte')->item(0)->nodeValue; + + $decision = $infoActe->getElementsByTagName('decision')->item(0); + if($decision) + { + $actenum['decision'] = array(); + $actenum['decision']['nature'] = $decision->getElementsByTagName('nature')->item(0)->nodeValue; + $actenum['decision']['libelle'] = $decision->getElementsByTagName('libelle')->item(0)->nodeValue; + } + $actenum['url_acces'] = htmlspecialchars_decode($infoActe->getElementsByTagName('url_acces')->item(0)->nodeValue); + $info['actes'][] = $actenum; + } + + + } + +} \ No newline at end of file diff --git a/library/Infogreffe/infogreffe.wsdl b/library/Infogreffe/infogreffe.wsdl new file mode 100644 index 00000000..afa38472 --- /dev/null +++ b/library/Infogreffe/infogreffe.wsdl @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Service Soap Experian, Service Produit + + + + + diff --git a/library/Metier/bodacc/classMBalo.php b/library/Metier/bodacc/classMBalo.php new file mode 100644 index 00000000..6741df14 --- /dev/null +++ b/library/Metier/bodacc/classMBalo.php @@ -0,0 +1,85 @@ +'') return $libEvenSd; + + return substr('95'.$codEvenBoamp.'00',0,4)*1; + } + + function getLibEvenBoamp($codEvenBoamp, $strEvenBoamp='') { + return $this->getCodEvenSd($codEvenBoamp, $strEvenBoamp); + } + +} + +?> \ No newline at end of file diff --git a/library/Metier/bodacc/classMBodacc.php b/library/Metier/bodacc/classMBodacc.php new file mode 100644 index 00000000..dd0db5b0 --- /dev/null +++ b/library/Metier/bodacc/classMBodacc.php @@ -0,0 +1,1249 @@ +1408, + md5("Jugement d'ouverture d'une procédure de redressement judiciaire")=>'1200', + md5("Jugement d'ouverture de liquidation judiciaire")=>'1301', + md5("Jugement de clôture pour insuffisance d'actif")=>1503, + md5("Jugement de clôture de la liquidation des biens pour insuffisance d'actif")=>1503, + md5("Dépôt de l'état des créances")=>1204, + md5("Dépôt de l'état des créances Loi de 1985")=>1214, + md5("Jugement de plan de redressement")=>1414, + md5("Jugement de clôture pour extinction du passif")=>1502, + md5("Jugement arrêtant le plan de sauvegarde")=>1101, + md5("Liste des créances nées après le jugement d'ouverture d'une procédure de liquidation judiciaire")=>1206, + md5("Jugement de conversion en liquidation judiciaire")=>1300, + md5("Jugement arrêtant un plan de cession")=>1411, + md5("Jugement prononçant la résolution du plan de cession et la liquidation judiciaire")=>'1305;1511', + md5("Liste des créances nées après le jugement d'ouverture d'une procédure de redressement judiciaire")=>1206, + md5("Dépôt de l'état de collocation")=>1203, + md5("Jugement prononçant la résolution du plan de redressement et la liquidation judiciaire")=>'1305;1512', + md5("Jugement prononçant la résolution du plan de sauvegarde et la liquidation judiciaire")=>'1305;1513', + md5("Jugement de faillite personnelle")=>1600, + md5("Jugement de faillite personnelle Loi de 1985")=>1610, + md5("Jugement d'interdiction de gérer")=>1601, + md5("Jugement d'interdiction de gérer Loi de 1985")=>1611, + md5("Arrêt de la cour d'appel infirmant une décision soumise à publicité")=>1506, + md5("Jugement d'ouverture d'une procédure de sauvegarde")=>1100, + + md5("Jugement de reprise de la procédure de liquidation judiciaire")=>1304, + md5("Jugement modifiant le plan de continuation")=>1409, + md5("Dépôt du projet de répartition")=>1208, + md5("Dépôt de l'état des créances et du projet de répartition")=>'1204;1208', + md5("Jugement d'homologation de l'accord")=>1550, + md5("Jugement prononçant la résolution du plan de cession")=>1511, + md5("Jugement de conversion en redressement judiciaire de la procédure de sauvegarde")=>1201, + md5("Jugement de conversion en liquidation judiciaire de la procédure de sauvegarde")=>1307, + md5("Jugement modifiant la date de cessation des paiements")=>1450, + md5("Jugement de clôture de la liquidation des biens pour extinction du passif")=>1502, + md5("Jugement modifiant le plan de redressement")=>1407, + md5("Jugement mettant fin à la procédure de redressement judiciaire")=>1500, + md5("Jugement accordant un délai pour déposer la liste des créances")=>1440, + md5("Jugement modifiant le plan de sauvegarde")=>1407, + md5("Jugement de clôture pour insuffisance d'actif et autorisant la reprise des poursuites individuelles")=>'1503;1605', + md5("Ordonnance statuant sur les contestations du projet de répartition")=>1540, + md5("Jugement de clôture de la procédure de sauvegarde")=>1500, + md5("Jugement mettant fin à la procédure de sauvegarde")=>1500, + + md5("Jugement d'extension de liquidation judiciaire")=>1417, + md5("Jugement d'extension d'une procédure de redressement judiciaire")=>1418, + md5("Jugement d'extension d'une procédure de sauvegarde")=>1419, + md5("Rétractation de prononcé de liquidation judiciaire sur tierce opposition")=>1541, + + md5("Rétractation de jugement d'ouverture d'une procédure de sauvegarde sur tierce opposition")=>1542, + md5("Rétractation de jugement d'ouverture d'une procédure de redressement judiciaire sur tierce opposition")=>1543, + md5("Rétractation de jugement d'ouverture d'une procédure de liquidation judiciaire sur tierce opposition")=>1544, + md5("Jugement de désignation des organes de la procédure")=>1215, // v1.5 Avril 2008 + + md5("Rétractation de jugement d'ouverture sur tierce opposition")=>1545, + md5("Autre rétractation sur tierce opposition")=>1546, + md5("Autre jugement de liquidation des biens")=>1603, + md5("Autre arrêt de la Cour d'Appel")=>1507, + md5("Autre jugement de clôture")=>1500, + md5("Autres avis de dépôt")=>1216, + md5("Arrêts divers")=>1515, + + md5("Autre jugement d'ouverture")=>1998, + md5("Autres jugements et ordonnances")=>1998, + md5("Autre jugement prononçant")=>1998, + + /** + ** v1.5 Avril 2008 - Intégration du Bodacc A en XML : Ventes / Cessions + **/ + md5("Achat d'un fonds par une personne morale (insertion provisoire)")=>5103, + md5("Achat d'un foncs par une personne morale (insertion provisoire)")=>5103, + md5("Achat d'un fonds par une personne morale.")=>5103, // Ajout le 23/12/2010 + md5("Achat d'un établissement principal par une personne physique (immatriculation)")=>5000, + md5("Achat d'un établissement principal par une personne morale lors de l'immatriculation")=>5000, + md5("Autre achat, apport, attribution")=>5900, + md5("Autre achat, appport, attribution")=>5900, + md5("Autre achat, apport, attribution (personne physique)")=>5900, + md5("Autre achat, apport, attribution (personne physque)")=>5900, + md5("Autre achat, apport, atribution (personne morale)")=>5900, + md5("Autre achat, apport, attribution (personne morale)")=>5900, + md5("achat, apport, attribution (personne morale)")=>5900, + md5("Achat d'un fonds par une personne physique (insertion provisoire)")=>5103, + md5("Achat d'un établissement secondaire ou complémentaire par une personne morale")=>5001, + md5("Apport d'un établissement secondaire/complémentaire (personne morale, uniquement)")=>5001, + md5("Achat d'un établissement complémentaire par une personne morale")=>5001, + md5("Achat d'un établissement secondaire ou complémentaire par une personne physique")=>5001, + md5("Mise en activité d'une société suite à achat")=>'2316;5999', + md5("Mise en activité d'une soicété suite à achat")=>'2316;5999', + md5("Achat d'un fonds par le locataire-gérant personne morale")=>5450, + md5("Achat d'un fonds par le locataire-gérant personne physique")=>5450, + md5("Apport d'un établissement principal (immatriculation d'une personne morale, uniquement)")=>5000, + md5("Apport d'un établissement principal (immatriculation d'une personne morale uniquement)")=>5000, + md5("Attribution d'un fonds suite à partage, à licitation (Immatriculation d'une personne physique)")=>5460, + md5("Attribution d'un fonds suite à donation avec délai d'oppositions (Immatriculation d'une personne physique)")=>5460, + md5("Annulation d'avis Vente")=>5999, + md5("Annulation d'avis vente")=>5999, + md5("fonds acquis par achat au prix stipulé de 155 000 euros.")=>5900, + + /** + ** v1.5 Avril 2008 - Intégration du Bodacc A en XML : Créations / Immatriculations + **/ + md5("Immatriculation d'une personne physique suite à création d'un établissement principal")=>4000, + md5("Immatriculation d'une personne morale (B, D) sans activité")=>4050, + md5("Immatriculation d'une personne morale (B, C, D) suite à création d'un établissement principal")=>4000, + md5("Immatriculation d'une personne morale (B, C, D suite à création d'un établissement principal)")=>4000, + md5("Immatriculation d'une personne physique suite à transfert de l'établissement principal")=>4250, + md5("Immatriculation d'une personne morale après 1er avis")=>4000,//??????? + md5("Immatriculation d'une personne morale suite à transfert de son siège social")=>4250, + md5("Immatriculation d'une personne physique, reprise d'activité après location-gérance")=>4350, + md5("Immatriculation d'une personne morale, établissement principal reçu en location-gérance")=>4355, + md5("Immatriculation d'une personne physique après 1er avis")=>4000, + md5("Immatriculation d'une personne physique, établissement principal reçu en location-gérance")=>4355, + md5("Immatriculation d'une personne physique, établissement principal précédemment exploité par le conjoint")=>4450, + md5("Immatriculation d'une personne physique, établissement précédemment exploité par le conjoint")=>4450, + md5("Transformation d'un GAEC")=>4400, + md5("Autre immatriculation personne morale")=>4000, + md5("Autre immatriculation personne physique")=>4000, + md5("Immatriculation d'une société de droit européen (quelle que soit l'origine du fonds)")=>4600, + md5("Immatriculation avec origine du fonds création")=>4000, + md5("Immatriculation avec orgine du fonds création")=>4000, + md5("Immatriculation avec origine de fonds achat")=>4501, + md5("Immatriculation avec origine du fonds achat")=>4501, + md5("Immatriculation d'une personne physique, établissement principal hérité, reçu par donation")=>4410, + ); + +$tabTypeAsso=array( '_1' =>array('even'=>8000,'type'=>'Insertion', 'forme'=>'ASS','lib'=>'ASSOCIATION/CREATION'), + '_2' =>array('even'=>8079,'type'=>'Insertion', 'forme'=>'ASS','lib'=>'ASSOCIATION/MODIFICATION'), + '_3' =>array('even'=>8090,'type'=>'Insertion', 'forme'=>'ASS','lib'=>'ASSOCIATION/DISSOLUTION'), + '_4' =>array('even'=>8000,'type'=>'Insertion', 'forme'=>'FON','lib'=>'FONDATION/CREATION'), + '_5' =>array('even'=>8079,'type'=>'Insertion', 'forme'=>'FON','lib'=>'FONDATION/MODIFICATION'), + '_6' =>array('even'=>8090,'type'=>'Insertion', 'forme'=>'FON','lib'=>'FONDATION/DISSOLUTION'), + '_7' =>array('even'=>8085,'type'=>'Insertion', 'forme'=>'ASS','lib'=>'DECISION DE JUSTICE'), + '_11' =>array('even'=>8000,'type'=>'Rectificatif', 'forme'=>'ASS','lib'=>'ASSOCIATION/CREATION/RECTIFICATIF'), + '_22' =>array('even'=>8079,'type'=>'Rectificatif', 'forme'=>'ASS','lib'=>'ASSOCIATION/MODIFICATION/RECTIFICATIF'), + '_33' =>array('even'=>8090,'type'=>'Rectificatif', 'forme'=>'ASS','lib'=>'ASSOCIATION/DISSOLUTION/RECTIFICATIF'), + '_44' =>array('even'=>8000,'type'=>'Rectificatif', 'forme'=>'FON','lib'=>'FONDATION/CREATION/RECTIFICATIF'), + '_55' =>array('even'=>8079,'type'=>'Rectificatif', 'forme'=>'FON','lib'=>'FONDATION/MODIFICATION/RECTIFICATIF'), + '_66' =>array('even'=>8090,'type'=>'Rectificatif', 'forme'=>'FON','lib'=>'FONDATION/DISSOLUTION/RECTIFICATIF'), + '_101'=>array('even'=>8000,'type'=>'Insertion', 'forme'=>'ASL','lib'=>'ASL/CREATION'), + '_102'=>array('even'=>8000,'type'=>'Rectificatif', 'forme'=>'ASL','lib'=>'ASL/CREATION/RECTIFICATIF'), + '_103'=>array('even'=>8000,'type'=>'Suppression', 'forme'=>'ASL','lib'=>'ASL/CREATION/ANNULATION'), + '_111'=>array('even'=>8000,'type'=>'Suppression', 'forme'=>'ASS','lib'=>'ASSOCIATION/CREATION/ANNULATION'), + '_222'=>array('even'=>8079,'type'=>'Suppression', 'forme'=>'ASS','lib'=>'ASSOCIATION/MODIFICATION/ANNULATION'), + '_333'=>array('even'=>8090,'type'=>'Suppression', 'forme'=>'ASS','lib'=>'ASSOCIATION/DISSOLUTION/ANNULATION'), + '_444'=>array('even'=>8000,'type'=>'Suppression', 'forme'=>'FON','lib'=>'FONDATION/CREATION/ANNULATION'), + '_555'=>array('even'=>8079,'type'=>'Suppression', 'forme'=>'FON','lib'=>'FONDATION/MODIFICATION/ANNULATION'), + '_666'=>array('even'=>8090,'type'=>'Suppression', 'forme'=>'FON','lib'=>'FONDATION/DISSOLUTION/ANNULATION'), + '_201'=>array('even'=>8079,'type'=>'Insertion', 'forme'=>'ASL','lib'=>'ASL/MODIFICATION'), + '_202'=>array('even'=>8079,'type'=>'Rectificatif', 'forme'=>'ASL','lib'=>'ASL/MODIFICATION/RECTIFICATIF'), + '_301'=>array('even'=>8090,'type'=>'Insertion', 'forme'=>'ASL','lib'=>'ASL/DISSOLUTION'), + '_302'=>array('even'=>8090,'type'=>'Rectificatif', 'forme'=>'ASL','lib'=>'ASL/DISSOLUTION/RECTIFICATIF'), + '_303'=>array('even'=>8090,'type'=>'Suppression', 'forme'=>'ASL','lib'=>'ASL/DISSOLUTION/ANNULATION'), + '_8AC'=>array('even'=>8000,'type'=>'Suppression', 'forme'=>'ASL','lib'=>'ASL/CREATION/ANNULATION'), + '_8AD'=>array('even'=>8000,'type'=>'?', 'forme'=>'ASL','lib'=>'ASL/CREATION/DISSOLUTION'), + '_8AM'=>array('even'=>8000,'type'=>'?', 'forme'=>'ASL','lib'=>'ASL/CREATION/MODIFICATION'), + '_8C' =>array('even'=>8000,'type'=>'Insertion', 'forme'=>'ASL','lib'=>'ASL/CREATION'), + '_8CR'=>array('even'=>8000,'type'=>'Rectificatif', 'forme'=>'ASL','lib'=>'ASL/CREATION/RECTIFICATIF'), + '_8D' =>array('even'=>8090,'type'=>'Insertion', 'forme'=>'ASL','lib'=>'ASL/DISSOLUTION'), + '_8DR'=>array('even'=>8090,'type'=>'Rectificatif', 'forme'=>'ASL','lib'=>'ASL/DISSOLUTION/RECTIFICATIF'), + '_8M' =>array('even'=>8079,'type'=>'Insertion', 'forme'=>'ASL','lib'=>'ASL/MODIFICATION'), + '_8RM'=>array('even'=>8079,'type'=>'Rectificatif', 'forme'=>'ASL','lib'=>'ASL/MODIFICATION/RECTIFICATIF'), + '_900'=>array('even'=>8000,'type'=>'Insertion', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/CREATION'), // Création de fonds de dotation + '_901'=>array('even'=>8000,'type'=>'Rectificatif', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/CREATION/RECTIFICATIF'), // Rectificatif de création de fonds de dotation + '_902'=>array('even'=>8000,'type'=>'Suppression', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/CREATION/ANNULATION'), // Annulation de création de fonds de dotation + '_903'=>array('even'=>8079,'type'=>'Insertion', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/MODIFICATION'), // Modification de fonds de dotation + '_904'=>array('even'=>8079,'type'=>'Rectificatif', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/MODIFICATION/RECTIFICATIF'), // Rectificatif de modification de fonds de dotation + '_905'=>array('even'=>8079,'type'=>'Suppression', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/MODIFICATION/ANNULATION'), // Annulation de modification de fonds de dotation + '_906'=>array('even'=>8090,'type'=>'Insertion', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/DISSOLUTION'), // Dissolution de fonds de dotation + '_907'=>array('even'=>8090,'type'=>'Rectificatif', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/DISSOLUTION/RECTIFICATIF'), // Rectificatif de dissolution de fonds de dotation + '_908'=>array('even'=>8090,'type'=>'Suppression', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/DISSOLUTION/ANNULATION'), // Annulation de dissolution de fonds de dotation + '_909'=>array('even'=>8080,'type'=>'Insertion', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/SUSPENSION'), // Avis de suspension d'activité + '_910'=>array('even'=>8080,'type'=>'Rectificatif', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/SUSPENSION/RECTIFICATIF'), // Rectificatif d'avis de suspension d'activité + '_911'=>array('even'=>8080,'type'=>'Suppression', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/SUSPENSION/ANNULATION'), // Annulation d'avis de suspension d'activité +/* + _8CA Annulation creation ASL + _8DA Annulation dissolution ASL + _8MA Annulation modif ASL + _8MR Rectif modif ASL +*/ + ); + + +class MBodacc { + + private static $tabAccents = array( '[A'=>'Á', //5B41 + '^A'=>'Â', //5E41 + '`A'=>'À', //6041 + ']A'=>'Ä', //5D41 + '[a'=>'á', //5B61 + '^a'=>'â', //5E61 + '`a'=>'à', //6061 + ']a'=>'ä', //5D61 + //'AE'=>'Æ', //4145 // Penser à les retransformer pour les vieux systèmes + //'ae'=>'æ', //6165 // Penser à les retransformer pour les vieux systèmes + '|C'=>'Ç', //7C43 + '|c'=>'ç', //7C63 + '[E'=>'É', //5B45 + '^E'=>'Ê', //5E45 + '`E'=>'È', //6045 + ']E'=>'Ë', //5D45 + '[e'=>'é', //5B65 + '^e'=>'ê', //5E65 + '`e'=>'è', //6065 + ']e'=>'ë', //5D65 + '[I'=>'Í', //5B49 + '^I'=>'Î', //5E49 + '`I'=>'Ì', //6049 + ']I'=>'Ï', //5D49 + '[i'=>'í', //5B69 + '^i'=>'î', //5E69 + '`i'=>'ì', //6069 + ']i'=>'ï', //5D69 + '[O'=>'Ó', //5B4F + '^O'=>'Ô', //5E4F + '`O'=>'Ò', //604F + ']O'=>'Ö', //5D4F + '[o'=>'ó', //5B6F + '^o'=>'ô', //5E6F + '`o'=>'ò', //606F + ']o'=>'ö', //5D6F + //'OE'=>'.', //4F45 // Penser à les retransformer pour les vieux systèmes + //'oe'=>'.', // Penser à les retransformer pour les vieux systèmes + '[U'=>'Ú', //5B55 + '^U'=>'Û', //5E55 + '`U'=>'Ù', //6055 + ']U'=>'Ü', //5D55 + '[u'=>'ú', //5B75 + '`u'=>'ù', //6075 + '^u'=>'û', //5E75 + ']u'=>'ü', //5D75 + '[Y'=>'Ý', //5B59 + '[y'=>'ý', //5B79 + ); + + private static $tabBalises=array( '00'=>'Texte', + '01'=>'Identifiant (NOJO) de l.annonce', + '02'=>'Publication (R1)', + '03'=>'Partie du BODACC et département (R2)', + '04'=>'Tribunal (R3)', + '05'=>'Rubrique au sein du BODACC (R4)', + '06'=>'Numéro de parution', + '07'=>'Numéro d.annonce dans la parution', + '14'=>'R.C.', + '15'=>'SIREN', + '16'=>'Raison sociale', + '17'=>'Activité (Ajout activité ?)', + '18'=>'PDG / CP (?)', + '19'=>'Enseigne / Nom Commercial (?)', + '20'=>'Date', + '22'=>'Forme juridique', + '23'=>'Capital (?)', + '24'=>'Bénéficiaire / Raison sociale (différence avec 16?)', + '25'=>'Sigle', + '26'=>'Objet / Commentaire (a exploiter !) (?)', + '27'=>'Syndic (a vérifier sur les annonces si pas anciennes annonces ?)', + '29'=>'Nom Commercial (?)', + '30'=>'Commentaire adresse', + '31'=>'Rue', + '32'=>'Localité', + '33'=>'Commune', + '35'=>'Conjoint (?)', + '36'=>'Code postal', + '37'=>'Additif (?)', + '40'=>'Texte rectificatif (?)', + '41'=>'Numéro annonce (?)', + '42'=>'Date de parution (?)', + '43'=>'Page (?)', + '44'=>'Numéro de parution (?)', + '70'=>'Numéro annonce', + '71'=>'Date de parution', + '72'=>'Page', + '73'=>'Numéro de parution', + '74'=>'Texte rectificatif/à supprimer', + '75'=>'Numéro annonce', + '76'=>'Numéro annonce', + ); +/* +private static $tabEvenements=array( + '1100'=>'Ouverture sauvegarde', + '1101'=>'Jugement arrêtant plan de sauvegarde', + '1200'=>'RJ', + '1201'=>'Conversion sauvegarde en RJ', + '1202'=>'Renouvellement de la période d\'observation', + '1203'=>'Avis de dépôt de l\'état de collocation', + '1204'=>'Avis de dépôt de l\'état des créances', + '1205'=>'Avis de dépôt de l\'état des créances complémentaires', + '1206'=>'Avis de dépôt de l\'état des créances nées après jugements', + '1207'=>'Règlements amiables', + '1208'=>'Avis de dépôt du projet de répartition', + '1209'=>'Règlement judiciaire', + '1210'=>'Production titres créance', + '1300'=>'Conversion RJ en LJ', + '1301'=>'Ouverture LJ', + '1302'=>'Ouverture LJ simplifiée', + '1303'=>'Ouverture LJ sur résolution du plan', + '1304'=>'Réouverture LJ', + '1305'=>'LJ', + '1306'=>'LJ simplifiée', + '1307'=>'Conversion sauvegarde en LJ', + '1308'=>'Fin du régime de LJS', + '1309'=>'Conversion ouverture LJ en LJ simplifiée', + '1310'=>'Procédure d\'insolvabilité Européenne', + '1400'=>'Modification de plan', + '1401'=>'Modification du plan de cession', + '1402'=>'Modification du plan de continuation', + '1403'=>'Nommination d\'un administrateur judiciaire', + '1404'=>'Nommination d\'un mandataire judiciaire', + '1405'=>'Nommination d\'un représentant des créanciers', + '1406'=>'Remplacement du commissaire à l\'exécution du plan', + '1407'=>'Suite règlement/liquidation', + '1408'=>'Arrêt du plan de cession', + '1409'=>'Arrêt du plan de cession partielle', + '1410'=>'Arrêt du plan de continuation', + '1411'=>'Nommination d\'un juge commissaire', + '1500'=>'Clôture de la procédure', + '1501'=>'Clôture de la procédure après cession totale', + '1502'=>'Clôture de la procédure pour extinction du passif', + '1503'=>'Clôture de la procédure pour insuffisance d\'actif', + '1504'=>'Clôture sauvegarde pour absence de projet de plan', + '1505'=>'Appel de jugement', + '1506'=>'Infirmation Jugement', + '1507'=>'Extraits d\'arrêt de la cour d\'appel', + '1600'=>'Faillite personnelle', + '1601'=>'Interdiction de gérer', + '1602'=>'Jugement de réhabilitation', + '1603'=>'Liquidation des biens', +);*/ + + + private static $tabRubriques=array( + 'A101'=>'21 ventes et cessions (RCS A non inscrit)', + 'A102'=>'22 ventes et cessions (RCS B, C et D non inscrit)', + 'A103'=>'13 Créations d\'établissements (RCS A, PP)', + 'A104'=>'14 Créations d\'établissements (RCS B, Ste)', + 'A105'=>'15 Créations d\'établissements (RCS C, GIE ?)', + 'A106'=>'16 Créations d\'établissements (RCS D, Sté Civile)', + 'A107'=>'17 création d\'étab.second. ....... Pers Phys. ', // + 'A108'=>'18 création d\'étab.second. ....... Société ', // + 'A109'=>'19 création d\'étab.second. ....... Sté Civile ', // + 'A124'=>'24 ventes et cessions (RCS A non inscrit)', + 'A125'=>'25 ventes et cessions (RCS B, C et D non inscrit)', + 'A126'=>'13 création d\'étab.+1 PP .......... Pers Phys. ', // + 'A131'=>'15 Créations d\'établissements (G.Europ.IE)', // + 'A136'=>'35 rectificatif ', // + 'A137'=>'35 additif', // + 'A138'=>'35 rectificatif supp. ', // + 'A205'=>'51 reglement judiciaire ........... PP et Sté ', // + 'A209'=>'63 LB faillite personnelle ........ Pers Phys.', // + 'A210'=>'61 liquidation des biens .......... PP et Sté ', // + 'A215'=>'71 suite reglemt/liquid. .......... PP et Sté ', + 'A220'=>'77 Production titres créance ...... PP et Sté ', // + 'A225'=>'78 Dépôt état des créances vérifiées PP et Sté ', // + 'A228'=>'79 Cloture insuf.actif ......... PP et Sté ', // + 'A236'=>'35 rectificatif ', // + 'A237'=>'35 additif', // + 'A238'=>'35 rectificatif supp.', // + 'A401'=>'80 Banqueroute & Infractions ...... Pers Phys.', // --- + 'A436'=>'35 rectificatif ', // + 'A437'=>'35 additif', // + 'A438'=>'35 rectificatif supp. ', // + 'A701'=>'73 Susp provis poursuites ......... toutes formes', // + 'A736'=>'35 rectificatif ', // + 'A737'=>'35 additif', // + 'A738'=>'35 rectificatif supp. ', // + 'A8X1'=>'60 redressement & liqu.judiciaire.. toutes formes', // + 'A801'=>'52 redressement judiciaire ........ toutes formes', + 'A802'=>'62 ouverture liquidation judiciaire toutes formes', + 'A803'=>'74 Appels jug. ouverture .......... toutes formes', // + 'A804'=>'62 liquidation judiciaire ........ toutes formes', + 'A805'=>'74 Appels jug. LB ................. toutes formes', // + 'A806'=>'75 Arret plan de continuation...... toutes formes', + 'A807'=>'75 Modif plan de continuation...... toutes formes', + 'A808'=>'75 Arret plan de cession .......... toutes formes', + 'A809'=>'75 Modif plan de cession .......... toutes formes', + 'A810'=>'76 Cloture extinction Passif ...... toutes formes', + 'A811'=>'79 Cloture insuf.Actif ............ toutes formes', + 'A812'=>'79 Cloture après cession totale ... toutes formes', + 'A813'=>'63 faillite pers. pp ou gerant .... toutes formes', + 'A814'=>'64 interdiction de gerer .......... toutes formes', + 'A815'=>'78 Dépot Créances ................ toutes formes', + 'A816'=>'78 Dépot Créances nées ap jug ..... toutes formes', + 'A817'=>'78 Dépot Cr.compl.nées ap jug ..... toutes formes', + 'A818'=>'78 Dépot état Collocation ......... toutes formes', + 'A819'=>'75 Modification plan diverse ...... toutes formes', + 'A820'=>'53 Règlements amiables ............ Exploit agric', + 'A821'=>'74 Appels jug. LB ................. toutes formes', + 'A822'=>'56 Procédure insolvabilité......... toutes formes', // + 'A823'=>' Ordonnance statuant sur les contestations', + 'A824'=>'xx Dépôt du projet de répartition', // + 'A836'=>'35 rectificatif ', // + 'A837'=>'35 additif', // + 'A838'=>'35 rectificatif supp. ', // + 'A900'=>'Arrêt Conseil d\'Etat ou Conseil Supérieur des CAC', + 'B1X1'=>'41 Dissolution .............. toutes formes', // + 'B110'=>'31 mod.mut. diverses .............. A Pers Phys.', + 'B111'=>'32 mod mut. diverses .............. B Société', + 'B112'=>'33 mod mut. diverses .............. C GIE ', + 'B113'=>'34 mod mut. diverses .............. D Sté civile', + 'B114'=>'37 loc. gérance recue ............. Pers Phys.', // + 'B115'=>'37 loc. gérance recue ............. Société', // + 'B116'=>'40 radiation ...................... Pers Phys.', + 'B117'=>'40 radiation ...................... Société', + 'B118'=>'37 Location gérance reçue ...... Pers Physique', + 'B119'=>'37 Location gérance reçue ...... Société', + 'B120'=>'30 confirmation Ets pr. ou sec..... Société', + 'B121'=>'30 confirmation Ets pr. ou sec..... Pers Phys.', + 'B122'=>'38 loc.gérance donnée ............. Pers Phys.', // + 'B123'=>'38 loc.gérance donnée ............. Société', // + 'B127'=>'40 radiation d\'office ............. toutes formes ', // + 'B128'=>'39 mention d\'office............. toutes formes ', // + 'B129'=>'39 transfert entre tribunaux ...... Pers Phys.', + 'B130'=>'39 transfert entre tribunaux ...... Société', + 'B132'=>'33 mod mut. diverses .............. GEIE', + 'B133'=>'40 radiation ...................... GEIE', // + 'B134'=>'33 mod mut. diverses trf siège..... GEIE', // + 'B136'=>'35 rectificatif ', // + 'B137'=>'35 additif', // + 'B138'=>'35 rectificatif supp. ', // + 'C301'=>'91 dépot des comptes annuels ...... Société', // + 'C331'=>'91 dépot des comptes annuels ...... Société', + 'C336'=>'35 rectificatif ', // + 'C337'=>'35 additif', // + 'C338'=>'35 rectificatif supp. ', // + ); + + private $tabTribunaux = array(); + private $tabFctDir = array(); + + private $tabDevises = array(); + private $tabEvenements=array(); + + private $regExFonction = ''; + private $tabDirigeants = array( + 'pr.sidents? directeur g.n.ral'=>1301, + 'P\.-D\.G\.'=>1301, + 'pr.sidents? du conseil d\'administration assumant la direction général'=>1302, + 'pr.sidents? du conseil d\'administration et administrateur'=>1303, + 'pr.sidents? du conseil d\'administration et directeur général'=>1304, + 'pr.sidents? du conseil d\'administration, directeur général et administrateur'=>1305, + 'Administrateurs? délégués?'=>101, + 'administrateurs? du G\.?I\.?E\.?'=>102, + 'Administrateurs? et membres?'=>103, + 'Administrateurs? et membres? du G\.?I\.?E\.?'=>104, + 'Administrateurs? et présidents?'=>105, + 'administrateurs? membres? engageants? le G\.?I\.?E\.?'=>106, + 'Administrateurs? uniques?'=>107, + 'Administrateurs?'=>100, + 'Co.?g.rants? associ.s? ind.finiment responsables?'=>401, + 'Co.?g.rants? associ.s?'=>402, + 'Co.?g.rants? non associ.s?'=>403, + 'Co.?g.rants? non statutaires?'=>404, + 'Co.?g.rants? pouvant engager la soci.t.'=>405, + 'Co.?g.rants? statutaires'=>406, + 'Co.?g.rants?'=>400, + 'Nouveaux? g.rants?'=>901, + 'G.rants? et directeurs? techniques?'=>902, + 'g.rants? et associ.s? en nom collectif'=>903, + 'g.rants? associ.s? en nom collectif'=>903, + 'g.rants? et associ.s? en nom'=>904, + 'g.rants? associ.s? en nom'=>904, + 'g..ants? (?:et )associ.s? ind.finiment (?:et solidairement )responsables?'=>905, + 'g.rants? (?:et )associ.s? uniques?'=>906, + 'g.rants? (?:et )associ.s?'=>907, + // gérant associé + 'g.rants? associ.s? majoritaires?'=>908, + 'g.rants? associ.s? minoritaires?'=>909, + 'g.rants? associ.s? tenus? ind.finiment et solidairement des dettes sociales'=>910, + 'g.rants? majoritaire'=>911, + 'g.rants? non associ.s?'=>912, + 'g.rants? non statutaires?'=>913, + 'g.rants? pouvant engager seuls la soci.t.'=>914, + 'g.rants? pouvant engager la soci.t.'=>915, + 'g.rants? salari.s?'=>916, + 'g.rants? statutaires? associ.s?'=>917, + 'g.rants? statutaires?'=>918, + 'g.rants? et administrateurs?'=>919, + 'G.rants? techniques?'=>920, + 'anciens? g.rants?'=>921, + 'g.rant\(e\)'=>900, + 'g.rants?'=>900, + 'associ.s? commandit.s? g.rants?'=>201, + 'associ.s? commandit.s?'=>202, + 'Associ.s? d\'une soci.t. civile'=>203, + 'Associ.s? de soci.t. civile'=>204, + //Associés de société civile + 'associ.s? en nom'=>205, + 'Associ.s? exploitants?'=>206, + 'Associ.s? non exploitants?'=>207, + 'Associ.s? non g.rants?'=>208, + 'Associ.s? g.rants?'=>209, + 'Associ.s? ind.finiment et solidairement responsables?'=>210, + 'Associ.s? ind.finiment responsables?'=>211, + 'Associés?'=>200, + 'Co.?commissaires? aux comptes suppl.ants?'=>301, + 'Co.?commissaires? aux comptes titulaires?'=>302, + 'Commissaires? aux comptes suppl.ants?'=>303, + 'Commissaires? aux comptes titulaires?'=>300, + 'Conjoints? Collaborateurs?'=>500, + 'Contr.leurs? de gestion et des comptes'=>601, + 'contr.leurs? de gestion du G\.?I\.?E\.?'=>602, + 'Contr.leurs? de gestion'=>603, + 'Contr.leurs? des comptes titulaires?'=>604, + 'contr.leurs? des comptes du G\.?I\.?E\.?'=>605, + 'Contr.leurs? des comptes et de gestion'=>606, + 'Contr.leurs? des comptes et membre du G\.?I\.?E\.?'=>607, + 'Contr.leurs? des comptes'=>608, + 'Contr.leurs'=>600, + 'Directeurs? général?u?x? adjoints?'=>701, + 'Directeurs? général?u?x? délégués? et administrateurs?'=>702, + 'Directeurs? général?u?x? délégués? et membres? du comité de surveillance'=>703, + 'Directeurs? général?u?x? délégués?'=>704, + 'Directeurs? général?u?x? et administrateurs?'=>705, + 'Directeurs? général?u?x? et membres? du directoire'=>706, + 'directeurs? général?u?x? uniques? du directoire'=>707, + 'directeurs? général?u?x? uniques?'=>708, + 'directeurs? général?u?x?'=>709, + 'directeurs? gérants?'=>710, + 'Directeurs? techniques?'=>711, + 'Directeurs? des transports'=>712, + 'Directeurs?'=>700, + 'dirigeants? à l\'étranger et en France'=>801, + 'Dirigeants? à l\'étranger'=>802, + 'dirigeants? en France et à l\'étranger'=>803, + 'dirigeants? en France'=>804,//805 autre dirigeant + 'Dirigeants?'=>800, + 'mandataires? ad hoc'=>1101, + 'mandataires? général'=>1102, + 'mandataires? généraux'=>1102, + 'Mandataires?'=>1100, + 'Membres? du G\.?I\.?E\.?'=>1201, + 'membres? du groupement'=>1202, + 'membres? et administrateurs?'=>1203, + 'Membres? du comité de direction'=>1204, + 'Membres? du comité de surveillance'=>1205, + 'Membres? du conseil de direction'=>1206, + 'Membres? du conseil de surveillance'=>1207, + 'Membres? du directoire'=>1208, + 'Membres?'=>1200, + 'fond.s? de pouvoir'=>1000, + 'Personnes? ayant le pouvoir d\'engager à titre habituel la société vis-à-vis des tiers'=>1001, + 'Personnes? ayant pouvoir d\'engager à titre habituel la société vis-à-vis des tiers'=>1001, + 'personnes? ayant le pouvoir d\'engager la société en France'=>1002, + 'personnes? ayant pouvoir d\'engager la société en France'=>1002, + 'Personnes? ayant le pouvoir d\'engager la société'=>1003, + 'Personnes? ayant pouvoir d\'engager la société'=>1003, + 'Personnes? ayant le pouvoir de diriger et gérer'=>1004, + 'Personnes? ayant pouvoir de diriger et gérer'=>1004, + 'personnes? pouvant engager à titre habituel l\'assujetti'=>1005, + 'Personnes?'=>1006, + 'pr.sidents? du conseil d\'administration'=>1306, + 'pr.sidents? du conseil de surveillance'=>1307, + 'pr.sidents? du directoire'=>1308, + 'pr.sidents? du G\.?I\.?E\.?'=>1309, + 'pr.sidents? et membres? du conseil de surveillance'=>1310, + 'Pr.sidents? et membres? du directoire'=>1311, + 'Pr.sidents? et pr.sidents? du comité de direction'=>1312, + 'pr.sidents? et pr.sidents? du comité de surveillance'=>1313, + 'Pr.sidents? et administrateurs?'=>1314, + 'Pr.sidents?'=>1300, + 'repr.sentants? de soci.t. .trang.re'=>1401, + 'repr.sentants? tant en France qu\'à l\'.tranger'=>1402, + 'Repr.sentants? à l\'.tranger'=>1403, + 'repr.sentants? l.gal?a?x? en France'=>1404, + 'Repr.sentants? l.gal?a?x?'=>1405, + 'Repr.sentants? permanents?'=>1405, + 'Repr.sentants?'=>1400, + 'co.?responsables? en France'=>1501, + 'responsables? pour la France'=>1502, + 'responsables? tant en France qu\'à l\'étranger'=>1503, + 'Responsables? technique'=>1504, + 'responsables? à l\'.tranger'=>1505, + 'Responsables? de la soci.t. en France'=>1506, + 'Responsables? en France'=>1507, + 'responsables? l.gal en France'=>1508, + 'responsables? en France'=>1508, + 'Responsables?'=>1500, + 'Vice-pr.sidents? du conseil d\'administration'=>1801, + 'vice-pr.sidents? du conseil de surveillance'=>1802, + 'Vice-pr.sidents? et administrateurs? priv.s?'=>1803, + 'Vice-pr.sidents? et administrateurs?'=>1804, + 'Vice-pr.sidents? et membres? du conseil de surveillance'=>1805, + 'Vice-pr.sidents?'=>1800, + 'Vice-secr.taires?'=>1601, + 'Vice-tr.soriers?'=>1701, + 'Tr.soriers?'=>1700, + 'Secr.taires? du conseil d\'administration'=>1602, + 'Secr.taires? du conseil de surveillance'=>1603, + 'Secr.taires?'=>1600, + 'Liquidateurs?'=>1900, + ); + + public function __construct() { + /** Charge toute la table des tribunaux pour ne pas lancer systématiquement des requètes sur le serveur MySQL + ** lors des intégrations de Bodacc + **/ + //echo "MBodacc::__construct()\n"; + $this->tabTribunaux=$this->getTabTribunaux(); + $this->tabFctDir=$this->getTabFctDir(); + $this->tabEvenements=$this->getTabEvenements(); + $this->tabDevises=$this->getTabDevises(); + $this->regExFonction=implode(')|(', array_keys($this->tabDirigeants)); + } + + /** Converti les accents au format TLS du Bodacc + ** @param string Ligne de texte avec accents au format TLS (sans balise Bodacc) + ** @return string Ligne de texte avec les accents normaux + **/ + public function convertAccents($texteBodacc) { + return strtr($texteBodacc, self::$tabAccents); + } + + /** Vérifie si la balise passée en paramètre est valide + ** @param string Balise Bodacc + ** @return bool + **/ + public function isBaliseBodacc($balise) { + return array_key_exists($balise, self::$tabBalises); + } + + /** Initialisation du tableau privé des tribunaux **/ + private function getTabTribunaux() { + $iDb=new WDB(); + $rep=$iDb->select('tribunaux', 'triCode, triNom, triCP, triSiret', "triCode IS NOT NULL"); + $tabTribunaux=array(); + foreach($rep as $k=>$trib) { + $dep=substr($trib['triCP'],0,2)*1; + if ($dep==97 || $dep==98) $dep=substr($trib['triCP'],0,3)*1; + $tabTmp=array($trib['triCode']=>array('nom'=>$trib['triNom'],'siret'=>$trib['triSiret'],'dep'=>$dep)); + $tabTribunaux=array_merge($tabTribunaux, $tabTmp); + } + return $tabTribunaux; + } + + /** Initialisation du tableau privé des codes fonctions de direction **/ + private function getTabFctDir() { + $iDb=new WDB(); + $rep=$iDb->select('bodacc_fonctions', 'codeFct, libelle', '1'); + $tabRet=array(); + foreach($rep as $tabFct) + $tabRet[$tabFct['codeFct']*1]=$tabFct['libelle']; + + return $tabRet; + } + + /** Retourne le libellé d'une fonction de direction **/ + function getFctDir($codeFonction) { + return $this->tabFctDir[$codeFonction]; + } + + /** Initialisation du tableau privé des tribunaux **/ + public function getTribunauxParCommune($codeInseeCommune) { + $iDb=new WDB(); + $rep=$iDb->select('tribunaux t, tribunauxInsee i', 't.triId, t.triIdSup, i.CodeInsee, t.triCode, t.triType, t.triNom, t.triCP, t.triTel, t.triFax, t.triWeb, t.triMail, t.triSiret, t.triAdrNum, t.triAdrIndRep, t.triAdrTypeVoie, t.triAdrVoie, t.triAdrComp, t.triVille, t.triStatut, t.triDateCessation, t.triCommentaire, t.triNumGreffe', "i.CodeInsee='$codeInseeCommune' AND i.triId=t.triId ORDER BY t.triNumGreffe DESC, t.triId ASC", false, MYSQL_ASSOC); + $tabTribunaux=array(); + foreach($rep as $k=>$trib) { + $tabTribunaux[]=$trib; + } +// print_r($tabTribunaux); +// die(); + return $tabTribunaux; + } + + /** Retourne les tribunaux par Département **/ + public function getTribunauxParDep($dep) { + $iDb=new WDB(); + if ($dep<96) + $rep=$iDb->select('tribunaux t', 't.triId, t.triIdSup, t.triCode, t.triType, t.triNom, t.triCP, t.triTel, t.triFax, t.triWeb, t.triMail, t.triSiret, t.triAdrNum, t.triAdrIndRep, t.triAdrTypeVoie, t.triAdrVoie, t.triAdrComp, t.triVille, t.triStatut, t.triDateCessation, t.triCommentaire, t.triNumGreffe', "t.triCP BETWEEN '".$dep."000' AND '".$dep."999' ORDER BY t.triType ASC", false, MYSQL_ASSOC); + else + $rep=$iDb->select('tribunaux t', 't.triId, t.triIdSup, t.triCode, t.triType, t.triNom, t.triCP, t.triTel, t.triFax, t.triWeb, t.triMail, t.triSiret, t.triAdrNum, t.triAdrIndRep, t.triAdrTypeVoie, t.triAdrVoie, t.triAdrComp, t.triVille, t.triStatut, t.triDateCessation, t.triCommentaire, t.triNumGreffe', "t.triCP BETWEEN '".$dep."00' AND '".$dep."99' ORDER BY t.triType ASC", false, MYSQL_ASSOC); + $tabTribunaux=array(); + foreach($rep as $k=>$trib) { + $tabTribunaux[]=$trib; + } + return $tabTribunaux; + } + + /** Donne la cours d'appel d'un tribunal par son code **/ + public function getTribunalIdCA($codeTribunal) { + $iDb=new WDB(); + $rep=$iDb->select('tribunaux', 'triIdSup', "triCode='$codeTribunal'"); + return $rep[0][0]; + } + + public function getListeTribunaux() { + return $this->tabTribunaux; + } + + /** Initialisation du tableau privé des évènements **/ + private function getTabEvenements() { + $iDb=new WDB(); + $rep=$iDb->select('tabEvenements', 'codEven, libEven, Bodacc_Code, Rubrique, version, lienEtab', '1', false, MYSQL_ASSOC); + $tabRet=array(); + foreach($rep as $k=>$even) { + //$tabTmp=array($trib['codEven']=>$trib['libEven']); + $tabRet[$even['codEven']]=array('libEven'=>$even['libEven'], + 'Bodacc_Code'=>$even['Bodacc_Code'], + 'Rubrique'=>$even['Rubrique'], + 'Version'=>$even['version'], + 'LienEtab'=>$even['lienEtab'], + ); + } + //echo ""; + return $tabRet; + } + + /** Initialisation du tableau privé des devises du Bodacc **/ + private function getTabDevises() { + $iDb=new WDB(); + $rep=$iDb->select('bodacc_devises', 'libDeviseBodacc, devIso', '1', false, MYSQL_ASSOC); + $tabDevises=array(); + foreach($rep as $k=>$trib) { + $tabTmp=array($trib['libDeviseBodacc']=>$trib['devIso']); + $tabDevises=array_merge($tabDevises, $tabTmp); + } + return $tabDevises; + } + + /** Initialisation du tableau privé des devises du Bodacc **/ + /* + private function getTabDirigeants() { + $iDb=new WDB(); + $rep=$iDb->select('bodacc_dirigeants', 'libDeviseBodacc, devIso', '1'); + $tabDevises=array(); + foreach($rep as $k=>$trib) { + $tabTmp=array($trib['libDeviseBodacc']=>$trib['devIso']); + $tabDevises=array_merge($tabDevises, $tabTmp); + } + return $tabDevises; + }*/ + + /** Vérifie si le code du Tribunal BODACC est connu + ** @param string Code du Tribunal au BODACC + ** @return bool + **/ + public function isTribunal($codeBodaccDuTribunal) { + $codeBodaccDuTribunal=trim($codeBodaccDuTribunal); + return @array_key_exists($codeBodaccDuTribunal, $this->tabTribunaux); + } + + /** Retorne le libellé du code du Tribunal BODACC + ** @param string Code du Tribunal au BODACC + ** @return string Libellé du Tribunal + **/ + public function getTribunalNom($codeBodaccDuTribunal) { + $codeBodaccDuTribunal=trim($codeBodaccDuTribunal); + return $this->tabTribunaux[$codeBodaccDuTribunal]['nom']; + } + + public function getTribunalDep($codeBodaccDuTribunal) { + $codeBodaccDuTribunal=trim($codeBodaccDuTribunal); + return $this->tabTribunaux[$codeBodaccDuTribunal]['dep']; + } + + public function getTribunalSiret($codeBodaccDuTribunal) { + $codeBodaccDuTribunal=trim($codeBodaccDuTribunal); + return $this->tabTribunaux[$codeBodaccDuTribunal]['siret']; + } + + public function getTribunalCode($libelleDuTribunal, $dep=0) { + $libelleDuTribunal=preg_replace('/[0-9]/',' ', str_replace("\r\n",' ', strtoupper($libelleDuTribunal))); + $libelleDuTribunal=str_replace("\n",' ', $libelleDuTribunal); + $libelleDuTribunal=strtr( $libelleDuTribunal, + array( + "TRIBUNAL DE COMM'APPELERCE"=>'TC', // BUG DU BODACC 2008-A093-3146 + 'TRIBUNAL DE COMMERCE'=>'TC', + 'TRIBUNAL DE GRANDE INSTANCE'=>'TGI', + 'TRIBUNAL D\'INSTANCE'=>'TI', + 'TRIBUNAL MIXTE DE COMMERCE'=>'TMX', + 'TRIBUNAL DE PREMIERE INSTANCE'=>'TPI', + 'TRIBUNAL SUPÉRIEUR D\'APPEL'=>'TSA', + ' D\''=>' ', ' DE '=>' ', + 'GREFFE DU'=>'', '-'=>' ', + 'Ç'=>'C', 'É'=>'E', 'Î'=>'I', 'Â'=>'A', 'È'=>'E', 'Ô'=>'O', 'Ê'=>'E', + ' DU MANS'=>' LE MANS', + ' DU CREUSOT'=>' LE CREUSOT', + ' DU HAVRE'=>' LE HAVRE', + ' DU '=>' ', 'PUY'=>'PUY EN VELAY', + 'ALÈS'=>'ALES', + '.'=>' ', + ) + ); + $libelleDuTribunal=trim(preg_replace('/ +/',' ', $libelleDuTribunal)); + if (''.$dep=='2A' || ''.$dep=='2B') $dep=20; + else $dep=$dep*1; + foreach ($this->tabTribunaux as $code=>$tribunal) { + + if ( $dep<>0 && ($tribunal['dep'])*1==$dep ) { + if ( str_replace('TGIcc', 'TGI', strtr($tribunal['nom'],array('-'=>' ',' DE LA REUNION'=>'')))==$libelleDuTribunal ) { + return $code; + } elseif ( str_replace('TIcc', 'TI', strtr($tribunal['nom'],array('-'=>' ',' DE LA REUNION'=>'')))==$libelleDuTribunal ) { + return $code; + } elseif (preg_match('/^PREFECTURE/i',$libelleDuTribunal) && preg_match('/^PREFECTURE/i',$tribunal['nom'])) { + return $code; + } elseif (preg_match('/^SOUS.PREFECTURE/i',$libelleDuTribunal) && preg_match('/^SOUS.PREFECTURE/i',$tribunal['nom'])) { + $sprefEnBase=trim(preg_replace('/^SOUS.PREFECTURE (DE|DU|D\')/i','',$tribunal['nom'])); + $sprefParam =trim(strtr(strtr(preg_replace('/^SOUS.PREFECTURE/i','',$libelleDuTribunal),array('SAINT '=>'ST ', 'SAINTE '=>'STE ', 'BASSIN ARCACHON'=>'ARCACHON', ' (DRÔME)'=>'')),'ÀÂÈÎÔ','AAEIO')); + if($sprefEnBase==$sprefParam) + return $code; + // echo "Pas trouvé $sprefParam ($dep) par rapport à $sprefEnBase en base.".EOL; + //Pas trouvé SAINT QUENTIN (2) par rapport à ST QUENTIN ! + } elseif ( $dep==13 && $tribunal['nom']=='TGI TARASCON' && $libelleDuTribunal=='TGI TARASCON SUR RHONE') + return $code; + elseif ( $dep==13 && $tribunal['nom']=='TC TARASCON' && $libelleDuTribunal=='TC TARASCON SUR RHONE') + return $code; + } elseif ( $dep==0 && str_replace('TGIcc', 'TGI', strtr($tribunal['nom'],array('-'=>' ',' DE LA REUNION'=>'')))==$libelleDuTribunal ) + return $code; + elseif ( $dep==978 && str_replace('TGIcc', 'TGI', strtr($tribunal['nom'],array('-'=>' ',' DE LA REUNION'=>'')))==$libelleDuTribunal ) + return $code; + elseif ( $dep==971 && str_replace('TGIcc', 'TGI', strtr($tribunal['nom'],array('-'=>' ',' DE LA REUNION'=>'')))==$libelleDuTribunal ) + return $code; + elseif ( $dep==974 && $libelleDuTribunal=='TMX SAINT PIERRE LA REUNION') + return $code; + elseif ( $dep==975 && $libelleDuTribunal=='TGI SAINT PIERRE') + return $code; + + elseif ( ($dep==95 || $dep==975) && + ($libelleDuTribunal=='TRIBUNAL PREMIERE INSTANCE SAINT PIERRE ET MIQUELON' || $libelleDuTribunal=='TPI SAINT PIERRE ET MIQUELON') + ) + return $code; + + elseif ( ($dep==971 || $dep==985 || $dep==976) && + ($libelleDuTribunal=='TRIBUNAL PREMIERE INSTANCE MAMOUDZOU' || $libelleDuTribunal=='TPI MAMOUDZOU') + ) + return $code; + elseif ( ($dep==971 || $dep==985 || $dep==976) && + ($libelleDuTribunal=='TRIBUNAL DE GRANDE INSTANCE DE MAMOUDZOU' || $libelleDuTribunal=='TGI MAMOUDZOU') + ) + return $code; + /* + elseif ($dep==13 && $libelleDuTribunal=='TGI TARASCON SUR RHONE') + return $code; + */ + /*else + echo "Pas trouvé $libelleDuTribunal ($dep) par rapport à ".$tribunal['nom'].' en base !'.EOL; + */ + } + //echo "Pas trouvé $libelleDuTribunal ($dep) par rapport à ".$tribunal['nom'].' en base !'.EOL; + //echo "Pas trouvé $sprefParam ($dep) par rapport à $sprefEnBase en base !".EOL; + return false; + } + + /** Vérifie si le code du Tribunal BODACC est connu + ** @param string Code du Tribunal au BODACC + ** @return bool + **/ + public function isCodeEvenement($codeEven) { + $code=$codeEven*1; + if ($code==0) return false; + return array_key_exists($code, $this->tabEvenements); + } + + /** Retourne le libellé de l'évènement BODACC codifié par S&D + ** @param string Code de l'évènement BODACC + ** @return string Libellé de l'évènement + **/ + public function getEvenement($codeEven) { + $code=((int)$codeEven)*1; + if ($code==0) return false; + return @$this->tabEvenements[$code]['libEven']; + } + + /** Retourne le niveau de version du code évènement BODACC codifié par S&D + ** @param string Code de l'évènement BODACC + ** @return integer Niveau de version (12, 13, 14, ...) correspondant à 1.2, 1.3 ou 1.4 pour les clients !!! + **/ + public function getVersionEvenement($codeEven) { + $code=((int)$codeEven)*1; + if ($code==0) return false; + return @$this->tabEvenements[$code]['Version']; + } + + + /** Retourne le libellé du Chapitre de l'évènement BODACC (comptes, creations, mmd, procol, radiations, ventes) + ** @param string Code de l'évènement BODACC + ** @return string Libellé du chapitre (comptes, creations, mmd, procol, radiations, ventes) + **/ + public function getChapitreEvenement($codeEven) { + $code=((int)$codeEven)*1; + if ($code==0) return false; + return @$this->tabEvenements[$code]['Rubrique']; + } + + /** Retourne le code de l'édition du BODACC (A, B ou C) + ** @param string Code de l'évènement BODACC + ** @return string Libellé de l'édition (A, B ou C) + **/ + public function getEditionEvenement($codeEven) { + $code=$codeEven*1; + if ($code==0) return false; + return @$this->tabEvenements[$code]['Bodacc_Code']; + } + + /** Retourne si la porté de l'évènement est relative à l'établissement uniquement + ** @param $codeEven Code de l'évènement BODACC + ** @return bool + **/ + public function isEvenementEtab($codeEven) { + $code=$codeEven*1; + if ($code==0) return false; + return @$this->tabEvenements[$code]['LienEtab']; + } + + /** Vérifie si une devise texte du Bodacc est connu + ** @param string Devise textuelle au BODACC (YENS, EUROS, etc...) + ** @return bool + **/ + public function isDeviseBodacc($strDevise) { + return array_key_exists($strDevise, $this->tabDevises); + } + + /** Retoune le code ISO 4217 d'une devise texte du Bodacc + ** @param string Devise textuelle au BODACC (YENS, EUROS, etc...) + ** @return string Code ISO 4217 de la devise + **/ + public function getDeviseBodacc($strDevise) { + return $this->tabDevises[$strDevise]; + } + + /** Insert le libellé de devise textuel du Bodacc + ** @param string Devise textuelle au BODACC (YENS, EUROS, etc...) + ** @param string Devise ISO + ** @return bool + **/ + public function addDeviseBodacc($strDevise, $deviseIso) { + $iDb=new WDB(); + if (!$iDb->insert('bodacc_devises', array( 'libDeviseBodacc'=>$strDevise, + 'devIso'=>$deviseIso, + 'dateInsert'=>date('YmdHis')),true)) + return false; + // On réinitialise le tableau des devises du Bodacc + $this->tabDevises=$this->getTabDevises(); + return true; + } + + /** Vérifie si le code rubrique de l'annonce au Bodacc est connu + ** @param string Code rubrique de l'annonce + ** @return bool + **/ + public function isRubriqueBodacc($codeRubriqueBodacc) { + //return array_key_exists($balise, self::$tabBalises); + return array_key_exists($codeRubriqueBodacc, self::$tabRubriques); + } + + /** Retourne le code rubrique de l'annonce au Bodacc + ** @param string Code rubrique de l'annonce + ** @return string Libellé de la rubrique au BODACC + **/ + public function getLibRubriqueBodacc($codeRubriqueBodacc) { + return $this->tabRubriques[$codeRubriqueBodacc]; + } + + /** Retourne le code évènement de l'annonce en provenance du Bodacc XML + ** + ** @param string $libJugementXML Libellé de la rubrique au Bodacc XML + ** @return string + **/ + public function getCodeNatureEvenement($libEvenXML) { + global $tabNaturesEvenements; + $codeEven=@$tabNaturesEvenements[md5($libEvenXML)]*1; + if ($codeEven>0) return $codeEven; + else return 0; + } + + public function getDirigeants($strAdministration) { + $tabRet=array(); + $strFonctions=$this->regExFonction; + $tabNoms=array(); + if (is_array($strAdministration)) + $strAdministration=implode('. ', $strAdministration); + $strAdministration=trim($strAdministration); + $strAdministration=str_ireplace('Nom d\'usage :', 'Nom d\'usage =', trim($strAdministration)); + if ($strAdministration=='') return $tabRet; + $tabAdministration=explode(':', $strAdministration); + //file_put_contents('coucou.log',print_r($tabAdministration, 1), FILE_APPEND); + $tabFonctions=$tabNoms=$tabCodeFct=$tabOldFct=array(); + + /** + * On boucle sur chaque ligne qui doit contenir NOM PRENOM suivi de la fonction de la ligne suivante + * La première ligne ne contient pas de NOM PRENOM car il s'agit de la 1ère ligne + */ + foreach ($tabAdministration as $i=>$ligne) { + + /* + file_put_contents('coucou.log','Ligne : '.$ligne."\n", FILE_APPEND); + + preg_match("/(.*)gérants?(.*)$/i", $ligne, $matches); + file_put_contents('coucou.log','Test : '.print_r($matches, 1), FILE_APPEND); + + preg_match("/(.*)g.rants?(.*)$/iu", $ligne, $matches); + file_put_contents('coucou.log','Test : '.print_r($matches, 1), FILE_APPEND); + */ + + /** On recherche la fonction et son code fonction de la ligne */ + foreach ($this->tabDirigeants as $fonction=>$numFct) { + + //file_put_contents('coucou.log','Fonction : '.$fonction, FILE_APPEND); + //@todo : provisoire table bdd en utf8 + if (preg_match("/(.*)$fonction(.*)$/iu", $ligne, $matches)) { + //file_put_contents('coucou.log',"Matched \n", FILE_APPEND); + $tabCodeFct[$i]=$numFct; + $tabFonctions[$i]=@preg_replace("/($strFonctions)/i", '', $tabAdministration[$i+1]); + if(@preg_match("/(partant|ancien|suppression|cha.g|d.part|d.mis(si|is)on|r.vocation)/i", $tabAdministration[$i+1])) + $tabOldFct[$i]=1; + else + $tabOldFct[$i]=0; + break; + } + //file_put_contents('coucou.log',"\n", FILE_APPEND); + } + } //file_put_contents('coucou.log',print_r($tabFonctions, 1), FILE_APPEND); + /** On boucle sur chaque fonction trouvée et on extrait les noms, prénoms **/ + foreach ($tabFonctions as $i=>$ligne) {//$ligne + $numFonction=$tabCodeFct[$i]; + $oldFonction=$tabOldFct[$i]; + $ligne=trim($ligne); + /** Chaque Noms pour une même focntion doit être séparée par " et " ou ";" */ + $strNoms=str_replace(' et ', ';', $ligne); + $tabNoms=explode(';', $strNoms); + $raisonSociale=$nom=$prenom=$usage=''; + foreach ($tabNoms as $noms) { + if (preg_match("/^(.*)\((.*)\).*\((.*)\)/i", $noms, $matches)) { + //Cas type NOM (prenom) (Nom usage : XXXX) + $nom=trim(str_replace(':', '', $matches[1])); + if (preg_match("/(.*)repr.sent.e?(.*)/i", $nom, $matches2)) { + $raisonSociale=$matches2[1]; + $nom=trim(str_replace('par ', '', $matches2[2])); + } + $prenom=trim(str_replace('par ', '', $matches[2])); + $usage=trim(str_ireplace('Nom d\'usage =', '', $matches[3])); + } elseif (preg_match("/^(.*)\((.*)\)/i", $noms, $matches)) { + $nom=trim(str_replace(':', '', $matches[1])); + if (preg_match("/(.*)repr.sent.e?(.*)/i", $nom, $matches2)) { + $raisonSociale=$matches2[1]; + $nom=trim(str_replace('par ', '', $matches2[2])); + } + $prenom=trim($matches[2]); + $usage=''; + //Cas type NOM (prenom) + } elseif (preg_match("/^(.*)/i", $noms, $matches)) { + $tabNomPrenom=$this->getNomPrenomGenre(trim(str_replace(':', '', $matches[1]))); + $nom=$tabNomPrenom['Nom']; + $prenom=$tabNomPrenom['Prenoms']; + $usage=''; + } else + die("Cas non gérée pour cette structure de noms : '$noms'"); + /** @todo Il manque le cas de repr par pour le STE ??? **/ + $tabRet[]=array('fonction'=>$numFonction, 'rs'=>trim(str_replace(',','',$raisonSociale)), 'nom'=>$nom, 'prenom'=>$prenom, 'nomUsage'=>$usage, 'depart'=>$oldFonction); + } + } + //print_r($tabRet); + //$saisie = fgets(STDIN); + return $tabRet; + } + + /** Détermine les NOMs et PRENOMs dans une chaine de caractère + **/ + function getNomPrenomGenre($strNomPrenom) { + $iDb=new WDB('npaipp'); + $noms=$prenoms=$genre=''; + $tabMots=preg_split('/( +|\.+)/', $strNomPrenom); + //print_r($tabMots); + foreach ($tabMots as $i=>$prenom) { + $tabPrenoms=$iDb->select('pp_prenoms', 'prenom, genre, mixte, nbTot', + "prenom='".addslashes($prenom)."' AND nbTot>100 ORDER BY nbTot DESC", + false, MYSQL_ASSOC); + if (count($tabPrenoms)>0) { + $tabPrenom=$tabPrenoms[0]; + if ($i==0) // C'est plutôt le nom de famille au début de la chaîne + $noms.=$prenom.' '; + else { + $prenoms.=$prenom.', '; + if ($genre=='' && $tabPrenom['genre']==1 && $tabPrenom['mixte']==0) + $genre='M'; + elseif ($genre=='' && $tabPrenom['genre']==2 && $tabPrenom['mixte']==0) + $genre='F'; + } + } else + // Ce n'est pas un prénom mais un nom de famille + $noms.=$prenom.' '; + } + return array('Nom'=>trim($noms), 'Prenoms'=>preg_replace('/,$/','',trim($prenoms)), 'Genre'=>$genre); + } + + + function getNumPageAnnonce($bodaccCode, $annee, $num) { + + $tabRet=array(); + $iDb=new WDB(); + $bodacc=$iDb->select('bodacc', + 'Bodacc_Code, Bodacc_Annee_Parution, Bodacc_Num, Num_Annonce, Tribunal_Dept, Tribunal_Code, Rubrique_Bodacc, length(annonce) as Long', + "Bodacc_Code='$bodaccCode' AND Bodacc_Annee_Parution=$annee AND Bodacc_Num=$num"); + + foreach ($bodacc as $k=>$ann) { + $tabRet[$k]=array( 'BodaccCode'=>$ann['Bodacc_Code'], + 'AnneeParution'=>$ann['Bodacc_Annee_Parution'], + 'BodaccNum'=>$ann['Bodacc_Num'], + 'NumAnnonce'=>$ann['Num_Annonce'], + 'Departement'=>$ann['Tribunal_Dept'], + 'Tribunal'=>$ann['Tribunal_Code'], + 'Rubrique'=>$ann['Rubrique_Bodacc'], + 'nbCar'=>$ann['Long'], + ); + } + + return $tabRet; + } + + /** Vérifie si la date du jugement correspond à une date de jugements civils pour une date donnée + ** @param string $tribunal Code BODACC du TGIcc + ** @param date $dateJug Date du jugement + ** @param int $jourJug Jour de la semaine 1=Lundi à 5=Vendredi + ** @param int $jjJug Jour du jugement dans le mois + ** @return bool + **/ + function isAudienceCivile($tribunal, $dateJug, $jourJug, $jjJug, $texteAnnonce) { + //echo "Tribunal=$tribunal, Date='$dateJug', Jour de la semaine='$jourJug', Jour du mois='$jjJug'".EOL; + $tribunal=trim($tribunal); + $droitLocal=false; + + switch ($tribunal) { // Date des audiences civiles droit local + case 'METZG': // Le mercredi + case 'MULHOG': // Le mercredi + $droitLocal=true; + if ($jourJug==3) { + echo date('Y/m/d - H:i:s') ." - Droit local : Audiences civiles du mercredi !".EOL; + return 1; + } + break; + case 'THIONG': // Le jeudi à 9h + $droitLocal=true; + if ($jourJug==4) { + echo date('Y/m/d - H:i:s') ." - Droit local : Audiences civiles du jeudi !".EOL; + return 1; + } + break; + case 'SARREG': // Les 1er, 2ème et 4ème mardi + $droitLocal=true; + if ($jourJug==2 && $jjJug<15 && $jjJug>21) { + echo date('Y/m/d - H:i:s') ." - Droit local : Audiences civiles du mardi !".EOL; + return 1; + } + break; + case 'STRASG': // ? + $droitLocal=true; + //echo date('Y/m/d - H:i:s') ." - Droit local : Audiences civiles de Strasbourg !".EOL; + return 0; + break; + case 'SAVERG': // Le mardi et 2ème, 3ème et 4ème vendredi + $droitLocal=true; + if ($jourJug==2 || ($jourJug==5 && $jjJug>7)) { + echo date('Y/m/d - H:i:s') ." - Droit local : Audiences civiles du vendredi !".EOL; + return 1; + } + case 'COLMAG': // ? + $droitLocal=true; + //echo date('Y/m/d - H:i:s') ." - Droit local : Audiences civiles de Colmar !".EOL; + return 0; + break; + } + + if ($droitLocal && preg_match("/insolvabilit.{0,3}notoire/i", $texteAnnonce)) + return 1; + + return 0; + } + + function getJALparDep($dep) { + $tabRet=array(); + $iDb=new WDB(); + $rep=$iDb->select('tabJAL', 'id, dep, nomJal, siteWeb, email, adresse, cp, ville, tel, fax, parution, aboAnnuel, infos', + "dep=$dep", false, MYSQL_ASSOC); + foreach($rep as $k=>$jal) { + $tabRet[]=$jal; + } + return $tabRet; + } + + function getListeJalCollecte() { + $tabRet=array(); + $iDb=new WDB(); + $rep=$iDb->select('tabJAL', 'id, nomJal', 'sedDateAbo<>0 GROUP BY nomJal ORDER BY nomJal ASC', false, MYSQL_ASSOC); + foreach($rep as $k=>$jal) { + $tabRet['_'.$jal['id']]=$jal['nomJal']; + } + return $tabRet; + } + + function getActiviteReelle($siren, $fj) { + $iDb=new WDB(); + $strEvenVtLg=" AND Rubrique<>'ventes' AND typeEven NOT LIKE '%2700%' AND typeEven NOT LIKE '%2701%' AND typeEven NOT LIKE '%2702%' AND typeEven NOT LIKE '%2703%' AND typeEven NOT LIKE '%2710%' AND typeEven NOT LIKE '%2720%' AND typeEven NOT LIKE '%2721%' AND typeEven NOT LIKE '%2725%' AND typeEven NOT LIKE '%2730%' AND typeEven NOT LIKE '%2740%' AND typeEven NOT LIKE '%2750%' AND typeEven NOT LIKE '%2800%' AND typeEven NOT LIKE '%2840%' AND typeEven NOT LIKE '%2850%' AND typeEven NOT LIKE '%2851%' AND typeEven NOT LIKE '%2860%' AND typeEven NOT LIKE '%2870%' AND typeEven NOT LIKE '%2875%' AND typeEven NOT LIKE '%2880%' AND typeEven NOT LIKE '%2881%' AND typeEven NOT LIKE '%2885%' AND typeEven NOT LIKE '%2890%' AND typeEven NOT LIKE '%2891%' AND typeEven NOT LIKE '%2892%' "; + /** Recherche de l'activité réelle **/ + $bodacc=$iDb->select( 'bodacc_detail', 'Activite', "siren=$siren AND Activite<>'' AND Activite NOT LIKE 'non precis%' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC); + $annCap=@$bodacc[0]; + if ($fj<7000 || $fj>7999) + $tabRet['Activite']=trim(/*preg_replace("/Adjonction.{1,7}activit(?:e|é)(?:.|)\:", '', */$annCap['Activite']);//); + + if ($tabRet['Activite']=='' && trim($tab['activite'])<>'') + $tabRet['Activite']=trim($tab['activite']); + elseif ($tabRet['Activite']=='' && ($fj>90 && $fj<94 || + $fj>9000 && $fj<9400) ) { + $siretMin=(''.$siren.'00000')*1; + $siretMax=(''.$siren.'99999')*1; + $bodacc=$iDb->select( 'asso', 'Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_NObjet', "siren=$siren AND (Assoc_Objet<>'' OR Assoc_NObjet<>'') ORDER BY Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC); + $annCap=@$bodacc[0]; + $tabRet['Activite']=trim($annCap['Assoc_NObjet']); + if ($tabRet['Activite']=='') $tabRet['Activite']=trim($annCap['Assoc_Objet']); + if ($tabRet['Web']=='') $tabRet['Web']=trim($annCap['Assoc_Web']); + if ($tabRet['Mail']=='') $tabRet['Mail']=trim($annCap['Assoc_Mail']); + } elseif ($tabRet['Activite']=='' && ($fj<7000 || $fj>7999)) { + $bodaccHisto=$iDb->select( 'historiques.entrep e, historiques.texte x', + 'e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt', + "e.E1GSIR=$siren AND e.ANBASE=x.annonceNum AND e.DATE BETWEEN 19890101 AND 20041231 AND x.annonceTxt LIKE '%ctivit%' GROUP BY e.ANBASE ORDER BY e.DATE DESC", false, MYSQL_ASSOC); + if (count($bodaccHisto)>0) { + foreach ($bodaccHisto as $idx=>$ann) { + if ($tabCodeTri<>'' && $tabCodeTri<>@$ann['CODTRI']) $tabCodeTri=@$ann['CODTRI']; + if ( ($ann['CODEVE']<20) || + ($ann['CODEVE']>=30 && $ann['CODEVE']<42) || + ($ann['CODEVE']>=51 && $ann['CODEVE']<80) ) { + if (preg_match('/(.*)Activit(?:e|é)(?:.|)\:(.*)(?:Adresse(?:.*|)|Commentaires?|Administration|Etablissement principal|Date d\'effet|Date.de.d.but d.activit.|Capital|Nom commercial)(?:.|)\:/Uis', $ann['annonceTxt'], $matches)) + if (strpos(substr($matches[1],-20),'cess') === false && + strpos(substr($matches[1],-20),'date') === false) { + $tabRet['Activite']=$matches[2]; + break; + } + } + } + } + } + return $tabRet['Activite']; + } + + function getCodeFormeJur($strFJ) { + global $tabCjBodacc; + if (count($tabCjBodacc)<1) + require_once 'Metier/bodacc/configMBodacc.php'; + + $strFJ=strtoupper(trim(preg_replace('/[^a-z]/i','',$strFJ))); + + return @$tabCjBodacc[$strFJ]; + } +} + +?> \ No newline at end of file diff --git a/library/Metier/bodacc/configMBodacc.php b/library/Metier/bodacc/configMBodacc.php new file mode 100644 index 00000000..2cb206a5 --- /dev/null +++ b/library/Metier/bodacc/configMBodacc.php @@ -0,0 +1,3355 @@ +5499, // 3710704 + 'SARL'=>5499, // 3092997 + 'SOCIETEPARACTIONSSIMPLIFIEE'=>5710, // 654984 + 'SCI'=>6540, // 314805 + 'SARLASSOCIUNIQUE'=>5498, // 298825 + 'SOCITCIVILEIMMOBILIRE'=>6540, // 236045 + 'SA'=>5599, // 253688 + 'SAS'=>5710, // 278864 + 'SOCITANONYME'=>5599, // 181557 + 'SOCIETEARESPONSABILITELIMITEEAASSOCIEUNIQUE'=>5498, // 141779 + 'SC'=>6599, // 140824 + 'ENTREPRISEUNIPERSONNELLEARESPONSABILITELIMITEE'=>5488, // 125081 + 'SOCITCIVILE'=>6599, // 107132 + 'SOCITRESPONSABILITLIMITEUNIPERSONNELLE'=>5498, // 76627 + 'SOCITENNOMCOLLECTIF'=>5202, // 73878 + 'EURL'=>5488, // 99851 + 'SNC'=>5202, // 75309 + 'SOCITANONYMECONSEILDADMINISTRATION'=>5599, // 61016 + 'SACONSEILDADMINISTRATION'=>5599, // 55159 + 'SOCITDEXERCICELIBRALRESPONSABILITLIMITE'=>5485, // 46107 + 'SARLCAPITALVARIABLE'=>5499, // 30846 + 'EARL'=>6598, // 38235 + 'SOCITPARACTIONSSIMPLIFIEUNIPERSONNELLE'=>5720, // 25570 + 'SOCIETEARESPONSABILITELIMITEESOCIETEAASSOCIEUNIQUE'=>5498, // 24011 + 'SOCITPARACTIONSSIMPLIFIEASSOCIUNIQUE'=>5720, // 21846 + 'EXPLOITATIONAGRICOLERESPONSABILITLIMITE'=>6598, // 20618 + 'SELARL'=>5485, // 26159 + 'SOCITARESPONSABILITELIMITEEACAPITALVARIABLE'=>5499, // 17633 + 'SOCITANONYMEDIRECTOIREETCONSEILDESURVEILLANCE'=>5699, // 26674 + 'SOCITCIVILEDEMOYENS'=>6589, // 14777 + 'SCM'=>6589, // 14931 + 'SOCITDEDROITTRANGER'=>3120, // 13147 + 'SOCITRESPONSABILITLIMITECONSTITUEDUNASSOCIUNIQUE'=>5498, // 11681 + 'SADIRECTOIREETCONSEILDESURVEILLANCE'=>5699, // 12181 + 'SCDECONSTRUCTIONVENTE'=>0, // 11933 + 'SOCIETEPARACTIONSSIMPLIFIEESAS'=>5710, // 10486 + 'ASSOCIATION'=>9220, // 10020 + 'SASU'=>5720, // 12019 + 'SCEA'=>0, // 13267 + 'GIE'=>0, // 9268 + 'GROUPEMENTDINTRTCONOMIQUE'=>0, // 8118 + 'SARLSOCIETEAASSOCIEUNIQUE'=>0, // 7981 + 'SASUNIPERSONNELLE'=>0, // 7615 + 'SARLACAPITALVARIABLE'=>0, // 7322 + 'SOCITCIVILEDEXPLOITATIONAGRICOLE'=>0, // 6741 + 'ASSOCIATIONRGIESELONLALOIDE'=>9220, // 6314 + 'SOCIETECIVILEPROFESSIONNELLE'=>0, // 6139 + 'SOCITANONYMEDIRECTOIRE'=>0, // 6011 + 'SADIRECTOIRE'=>0, // 7171 + 'SOCITCOOPRATIVEAGRICOLE'=>0, // 5399 + 'SARLCONSTITUEDUNASSOCIUNIQUE'=>0, // 5061 + 'GROUPEMENTFONCIERAGRICOLE'=>0, // 4978 + 'SOCITDEXERCICELIBRALARL'=>0, // 4880 + 'SCPROFESSIONNELLE'=>0, // 4560 + 'SICAV'=>0, // 4423 + 'GFA'=>0, // 4617 + 'ENTREPRISEUNIPERSONNELLEARESPONSABILITELIMITEEEURL'=>0, // 4040 + 'SASASSOCIUNIQUE'=>0, // 3813 + 'SOCITCIVILEDECONSTRUCTIONVENTE'=>0, // 3878 + 'SOCITCOOPRATIVEAGRICOLECAPITALVARIABLE'=>0, // 3195 + 'SOCIETEDEXERCICELIBERALPARACTIONSSIMPLIFIEE'=>0, // 3155 + 'SOCITCIVILEAYANTPOUROBJETLACONSTRUCTIONDIMMEUBLESVENTE'=>0, // 3058 + 'SARLU'=>0, // 3714 + 'NONPRCISE'=>0, // 2906 + 'SCP'=>0, // 3513 + 'SOCIETECIVILEDECONSTRUCTIONVENTE'=>0, // 4263 + 'SARLDEPRESSE'=>0, // 4469 + 'SOCITDINVESTISSEMENTSCAPITALVARIABLE'=>0, // 2668 + 'SOCITENCOMMANDITEPARACTIONS'=>0, // 2598 + 'SRVA'=>0, // 2457 + 'GROUPEMENTFORESTIER'=>0, // 2442 + 'SOCITENCOMMANDITESIMPLE'=>0, // 2386 + 'ELRL'=>0, // 2308 + 'SOCIETEDEXERCICELIBERALARESPONSABILITELIMITEESELARL'=>0, // 3025 + 'SOCITCOOPRATIVE'=>0, // 2236 + 'UNIPERSONNELLERESPONSABILITLIMITE'=>0, // 2108 + 'SOCIETEPARACTIONSSIMPLIFIEEACAPITALVARIABLE'=>0, // 2087 + 'SACOOPRATIVECAPITALVARIABLE'=>0, // 2036 + 'GIECOMMERCIAL'=>0, // 1787 + 'SOCITANONYMEDCONOMIEMIXTE'=>0, // 1675 + 'SOCITCIVILEPARTICULIRE'=>0, // 1594 + 'SCPARTICULIRE'=>0, // 1556 + 'GAEC'=>0, // 2386 + 'GROUPEMENTAGRICOLEDEXPLOITATIONENCOMMUN'=>0, // 1477 + 'SOCIETEENNOMCOLLECTIFSNC'=>5202, // 1437 + 'GIESANSBUTLUCRATIF'=>0, // 1373 + 'SOCIETECIVILEACAPITALVARIABLE'=>0, // 1360 + 'SCA'=>0, // 1610 + 'SOCITANONYMECOOPRATIVECAPITALVARIABLE'=>0, // 1325 + 'SOCITDEXERCICELIBRALRESPONSABILITLIMITEUNIPERSONNELLE'=>0, // 1236 + 'SOCITDINVESTISSEMENTSCAPITALVARIABLECONSEIL'=>0, // 1223 + 'SOCITDEXERCICELIBRALARLUNIPERSONNELLE'=>0, // 1200 + 'SOCITANONYMEDCONOMIEMIXTELOCALE'=>0, // 1199 + 'SADCONOMIEMIXTE'=>0, // 1391 + 'COOPRATIVEOUVRIREDEPRODUCTIONRESPONSABILITLIMITE'=>0, // 1078 + 'SELARLASSOCIUNIQUE'=>0, // 1078 + 'SCCAPITALVARIABLE'=>0, // 1050 + 'ETABLISSEMENTPUBLICCARACTREINDUSTRIELETCOMMERCIAL'=>0, // 1026 + 'SARLUNIPERSONNELLE'=>0, // 1326 + 'SCS'=>0, // 989 + 'SARLMEMBREDELUE'=>0, // 961 + 'SOCITARESPLIMEXERCICELIBERAL'=>0, // 924 + 'SOCITRESPONSABILITLIMITEMEMBREDELACOMMUNAUTEUROPENNEOUPARTIELACCORDSURLESPAC'=>0, // 905 + 'SOCITCOOPRATIVECAPITALVARIABLE'=>0, // 1047 + 'UNIONDECOOPRATIVESAGRICOLES'=>0, // 882 + 'SOCIETEARESPONSABILITELIMITEEDEPRESSE'=>0, // 873 + 'SOCITDEXERCICELIBRALRESPONSABILITLIMITEASSOCIUNIQUE'=>0, // 884 + 'SOCIETECIVILEDECONSTRUCTIONVENTELOIDETITRE'=>0, // 842 + 'SELAS'=>0, // 972 + 'SRL'=>0, // 819 + 'ANOSAACONSEILDADMINISTRATION'=>0, // 798 + 'SAEM'=>0, // 855 + 'SOCITDINVESTISSEMENTCAPITALVARIABLE'=>0, // 762 + 'SARLEURL'=>0, // 777 + 'SOCITCOOPRATIVERESPONSABILITLIMITE'=>0, // 740 + 'SOCIETEANONYMECOOPERATIVE'=>0, // 705 + 'SOCITDEXERCICELIBRALRESPONSABILITLIMITEETASSOCIUNIQUE'=>0, // 679 + 'SOCITDCONOMIEMIXTE'=>0, // 676 + 'SARLDEXERCICELIBRE'=>0, // 669 + 'SOCITCIVILEAGRICOLE'=>0, // 659 + 'SARLCOOPRATIVECAPITALVARIABLE'=>0, // 896 + 'SOCIETEPARACTIONSSIMPLIFIEEUNIPERSONNELLESASU'=>0, // 643 + 'SCIDECONSTRUCTIONVENTE'=>0, // 797 + 'SASCAPITALVARIABLE'=>0, // 630 + 'SOCITCOOPRATIVERESPONSABILITLIMITECAPITALVARIABLE'=>0, // 612 + 'CACV'=>0, // 905 + 'COOPRATIVEDUTILISATIONDEMATRIELAGRICOLEENCOMMUN'=>0, // 591 + 'SCCV'=>0, // 891 + 'SOCITDEXERCICELIBRALFORMEANONYME'=>0, // 584 + 'SOCITDINTRTCOLLECTIFAGRICOLE'=>0, // 557 + 'SOCITCIVILEIMMOBILIRECAPITALVARIABLE'=>0, // 536 + 'SOCIETEARESPONSABILITELIMITEEDEXERCICELIBERAL'=>0, // 533 + 'SOCITCOOPRATIVEDEPRODUCTIONRESPONSABILITLIMITECAPITALVARIABLE'=>0, // 532 + 'SERL'=>0, // 582 + 'SOCITCIVILEPROFESSIONNELLEDAVOCATS'=>0, // 516 + 'SNCSOCIETEENNOMCOLLECTIF'=>5202, // 509 + 'ASSOCIATIONLOI'=>9220, // 496 + 'SOCIETEPARACTIONSIMPLIFIEE'=>0, // 480 + 'SOCIETEANONYMESPORTIVEPROFESSIONNELLE'=>0, // 475 + 'SOCITCOOPRATIVEDEPRODUCTIONRESPONSABILITLIMITE'=>0, // 458 + 'SARLAASSOCIEUNIQUEETACAPITALVARIABLE'=>0, // 457 + 'SCPROFESSIONNELLEDAVOCATS'=>0, // 450 + 'SARLCOOPERATIVEACAPITALVARIABLE'=>0, // 431 + 'SOCITDEXPLOITATIONAGRICOLERESPONSABILITELIMITE'=>0, // 427 + 'SACOOPRATIVE'=>0, // 431 + 'SOCITRESPONSABILITLIMITEASSOCIUNIQUE'=>0, // 480 + 'SAD'=>0, // 530 + 'SOCITCIVILEDEPLACEMENTIMMOBILIER'=>0, // 403 + 'SCOPSARL'=>0, // 625 + 'SOCITANONYMEMEMBREDELACOMMUNAUTEUROPENNEOUPARTIELACCORDSURLESPACECONOMIQUEEURO'=>0, // 392 + 'SOCIT'=>0, // 420 + 'ENTREPRISEUNIPERSONNELLERESPONSABILITLIMITEDEXERCICELIBRAL'=>0, // 379 + 'SOCIETEARESPONSABILITELIMITEEMEMBREDELACEE'=>0, // 379 + 'SICA'=>0, // 644 + 'SCDEPLACEMENTIMMOBILIER'=>0, // 357 + 'SAEMLOCALE'=>0, // 356 + 'SCAGRICOLE'=>0, // 352 + 'SCOPRESPONSABILITLIMITE'=>0, // 354 + 'UNIONDECOOPRATIVESAGRICOLESCAPITALVARIABLE'=>0, // 345 + 'SARLCOOPRATIVE'=>0, // 340 + 'EPIC'=>0, // 356 + 'SAMEMBREDELUE'=>0, // 344 + 'SARLASSOCIUNIQUEETCAPITALVARIABLE'=>0, // 549 + 'SCICAPITALVARIABLE'=>0, // 326 + 'SOCIETEDECAUTIONMUTUELLE'=>0, // 321 + 'SOCITRESPONSABILITLIMITECOOPRATIVE'=>0, // 321 + 'SOCITCIVILEDECONTRUCTIONVENTE'=>0, // 318 + 'SEM'=>0, // 379 + 'SELAFA'=>0, // 360 + 'EURLASSOCIUNIQUE'=>0, // 327 + 'SOCITCIVILEDEXPLOITATIONVITICOLE'=>0, // 311 + 'ELUP'=>0, // 316 + 'SOCITCOOPRATIVEARLCAPITALVARIABLE'=>0, // 298 + 'SOCITCOOPRATIVEDEPRODUCTIONARLCAPITALVARIABLE'=>0, // 297 + 'SOCIETEANONYMECOOPERATIVEDEPRODUCTIONDHLM'=>0, // 296 + 'GROUPEMENTFONCIERRURAL'=>0, // 295 + 'SOCITCIVILEDEXPLOITATIONAGRICOLERESPONSABILITELIMITE'=>0, // 294 + 'SOCITCIVILEIMMOBILIREDECONSTRUCTIONVENTE'=>0, // 385 + 'SOCITTRANGREIMMATRICULEAURCS'=>0, // 309 + 'SOCITANONYMEFAISANTAPPELPUBLICLPARGNE'=>0, // 271 + 'SOCITPARACTIONSSIMPLIFIEDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 270 + 'SCDECONSTRUCTION'=>0, // 268 + 'SOCITDEXERCICELIBRALENCOMMANDITEPARACTIONS'=>0, // 266 + 'SOCITCIVILEDECONSTRUCTIONVENTELOIDETITREER'=>0, // 266 + 'EARLCAPITALVARIABLE'=>0, // 260 + 'SOCITDEPLACEMENTPRPONDRANCEIMMOBILIRECAPITALVARIABLE'=>0, // 257 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTION'=>0, // 253 + 'SOCITCIVILECOOPRATIVE'=>0, // 247 + 'SOCITDEXERCICELIBRALUNIPERSONNELLERESPONSABILITLIMITE'=>0, // 241 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTIONANONYME'=>0, // 239 + 'SOCITDACTIONSSIMPLIFIECAPITALVARIABLE'=>0, // 238 + 'SOCITCOOPRATIVEDEPRODUCTIONANONYMECAPITALVARIABLE'=>0, // 238 + 'SACAPITALVARIABLE'=>0, // 274 + 'ETABLISSEMENTPUBLICINDUSTRIELETCOMMERCIAL'=>0, // 236 + 'SOCITCOOPRATIVEANONYMEDINTRTCOLLECTIFAGRICOLE'=>0, // 233 + 'SOCIETECIVILEIMMOBILIEREDECONSTRUCTIONVENTE'=>0, // 232 + 'UNIONDESCOOPRATIVESAGRICOLES'=>0, // 357 + 'SOCIETEANONYMEDHLM'=>0, // 228 + 'GROUPEMENTEUROPENDINTRTCONOMIQUE'=>0, // 227 + 'COOPERATIVEACAPITALVARIABLEENARL'=>0, // 231 + 'SDE'=>0, // 243 + 'SCACAPITALVARIABLE'=>0, // 221 + 'SCOPSA'=>0, // 265 + 'SOCITDEXERCICELIBRALUNIPERSONNELLE'=>0, // 215 + 'EUARL'=>0, // 215 + 'SADHLM'=>0, // 378 + 'SOCITCOOPRATIVEDECRDITCAPITALVARIABLE'=>0, // 209 + 'SOCITRESPONSABILITLIMITECOOPRATIVEOUVRIREDEPRODUCTION'=>0, // 207 + 'COOPRATIVEOUVRIREDEPRODUCTIONENSARL'=>0, // 207 + 'COOPERATIVEAGRICOLE'=>0, // 204 + 'SOCIETECOOPERATIVEDEPRODUCTIONENARLACAPITALVARIABLE'=>0, // 274 + 'SOCIETEARESPONSABILITELIMITEEDARCHITECTURE'=>0, // 195 + 'SCDECONTRUCTIONVENTE'=>0, // 200 + 'SOCIETEANONYMECOOPERATIVEDECOMMERCANTSDETAILLANTS'=>0, // 190 + 'SOCITCOOPRATIVEDINTRTCOLLECTIF'=>0, // 190 + 'SARLCOOPERATIVEARTISANALE'=>0, // 189 + 'GEIE'=>0, // 196 + 'SOCITCIVILECOOPRATIVEAGRICOLE'=>0, // 183 + 'CUMA'=>0, // 337 + 'SOCITCOOPRATIVEDECRDIT'=>0, // 182 + 'COOPRATIVEAGRICOLECAPITALVARIABLE'=>0, // 182 + 'STANONYMECOOPRATIVE'=>0, // 179 + 'SOCIETEANONYMEMEMBREDELACEE'=>0, // 216 + 'SOCIETEDEXERCICELIBERALAFORMEANONYMESELAFA'=>0, // 174 + 'SELARLUNIPERSONNELLE'=>0, // 174 + 'COOPRATIVEDEPRODUCTIONARLCAPITALVARIABLE'=>0, // 172 + 'SCOP'=>0, // 212 + 'STCIVILECAPITALVARIABLE'=>0, // 171 + 'COOPERATIVEOUVRIEREDEPRODUCTARESPLIM'=>0, // 169 + 'SOCITTRANGREISSUEDELESPACEECONOMIQUEEUROPEN'=>0, // 166 + 'SOCITCOOPRATIVEDEPRODUCTION'=>0, // 167 + 'SOCITCIVILEPROFESSIONNELLEDENOTAIRES'=>0, // 165 + 'SOCITCOOPRATIVEDECRDITCAPITALVARIABLEETRESPONSABILITLIMITE'=>0, // 168 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTIONANONYMECAPITALVARIABLE'=>0, // 160 + 'SOCITRESPONSABILITLIMITEOUVRIREDEPRODUCTIONCAPITALVARIABLE'=>0, // 157 + 'SOCIETEANONYMECOOPERATIVEARTISANALE'=>0, // 157 + 'SOCITCIVILEDATTRIBUTION'=>0, // 155 + 'SOCITCOOPRATIVERESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 306 + 'SOCIETEDEXERCICELIBERALPARACTIONSSIMPLIFIEESELAS'=>0, // 171 + 'SEARL'=>0, // 170 + 'SADCONOMIEMIXTELOCALE'=>0, // 149 + 'SOCITEUROPENNE'=>0, // 147 + 'ENTREPRISEUNIPERSONELLEARESPONSABILITELIMITEE'=>0, // 144 + 'SCCOOPRATIVE'=>0, // 146 + 'SOCITANONYMECAPITALVARIABLE'=>0, // 142 + 'SOCITCOOPRATIVECAPITALVARIABLEETRESPONSABILITLIMITE'=>0, // 143 + 'SOCITANONYMEDCONOMIEMIXTECONSEILADMINISTRATION'=>0, // 140 + 'SCDEXPLOITATIONVINICOLE'=>0, // 139 + 'SOCITANONYMECOOPRATIVEDINTRTCOLLECTIFPOURLACCESSIONLAPROPRIT'=>0, // 193 + 'SOCITANONYMECOOPRATIVECAPITALETPERSONNELVARIABLE'=>0, // 138 + 'EARLASSOCIUNIQUE'=>0, // 143 + 'SOCITCOOPRATIVEMARITIME'=>0, // 159 + 'SACOOPRATIVEDECOMMERANTSDTAILLANTS'=>0, // 171 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFANONYME'=>0, // 132 + 'SOCITANONYMEDECONOMIEMIXTECONSEILDADMINISTRATION'=>0, // 132 + 'SICASOUSFORMEDESOCIETEANONYME'=>0, // 129 + 'SANONMEMBREDELUE'=>0, // 130 + 'CETTESOCIETEESTUNESASUNIPERSONNELLE'=>0, // 128 + 'SCDEPORTEFEUILLE'=>0, // 130 + 'SACA'=>0, // 149 + 'SCDATTRIBUTION'=>0, // 127 + 'SCEV'=>0, // 143 + 'SELARLU'=>0, // 192 + 'SARLNONMEMBREDELUE'=>0, // 128 + 'SACOOPRATIVEARTISANALECAPITALVARIABLE'=>0, // 152 + 'SARLCOOPRATIVEDECRDITCAPITALVARIABLE'=>0, // 124 + 'SOCITANONYMECOOPRATIVEOUVRIREDEPRODUCTION'=>0, // 120 + 'SOCITANONYMECOOPRATIVEDEPRODUCTIONCAPITALVARIABLE'=>0, // 120 + 'SOCIETECIVILEDECONSTRUCTION'=>0, // 119 + 'COLLECTIVITTERRITORIALE'=>0, // 116 + 'SARLASSOCIUNIQUECAPITVAR'=>0, // 132 + 'SOCITANONYMEDHLM'=>0, // 121 + 'SOCITCOOPRATIVECAPITALETPERSONNELVARIABLES'=>0, // 113 + 'MUTUELLE'=>0, // 111 + 'COOPRATIVECAPITALVARIABLEENSARL'=>0, // 111 + 'SASDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 112 + 'SARLCAPITALVARIABLEETASSOCIUNIQUE'=>0, // 164 + 'SACO'=>0, // 121 + 'SARLMEMBREDELACEE'=>0, // 134 + 'SOCIETEDECONOMIEMIXTEACONSEILDADMINISTRATION'=>0, // 109 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFRESPONSABILITLIMITE'=>0, // 108 + 'SOCITCOOPRATIVEDEPRODUCTIONRESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 145 + 'SOCIETEDEXERCICELIBERALARESPONSABILITELIMITEEETASSOCIEU'=>0, // 107 + 'COOPERATIVEOUVRIEREDEPRODUCTIONANONYME'=>0, // 107 + 'SOCITCOOPERATIVEDEPRODUCTIONSARL'=>0, // 185 + 'SCDEMOYENS'=>0, // 106 + 'CPAV'=>0, // 106 + 'SOCITRESPONSABILITLIMITENONMEMBREDELACOMMUNAUTEUROPENNEOUNONPARTIELACCORDSUR'=>0, // 105 + 'SACOOPRATIVECAPITALETPERSONNELVARIABLES'=>0, // 195 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTIONSA'=>0, // 105 + 'SASPORTIVEPROFESSIONNELLE'=>0, // 114 + 'SOCITCIVILEDEGESTIONDEPORTEFEUILLE'=>0, // 103 + 'SOCITDEPARTICIPATIONSFINANCIRESDEPROFESSIONLIBRALERESPONSABILITLIMITE'=>0, // 103 + 'SOCIETEDINTERETCOLLECTIFAGRICOLEARL'=>0, // 103 + 'ENTREPRISEUNIPERSONNELLEARESPONSABILITELIMITEEACAPITALVARIABLE'=>0, // 103 + 'SRLEL'=>0, // 153 + 'SOCITPARACTIONSIMPLIFIECAPITALVARIABLE'=>0, // 138 + 'SARLASSOCIEUNIQUECAPITVAR'=>0, // 102 + 'SCPROFESSIONNELLEDENOTAIRES'=>0, // 103 + 'COOPERATIVEOUVRIEREDEPRODUCTIONENSARL'=>0, // 100 + 'TABLISSEMENTPUBLIC'=>0, // 101 + 'SCMCAPITALVARIABLE'=>0, // 98 + 'SNCCAPITALVARIABLE'=>5202, // 97 + 'URLV'=>0, // 103 + 'SOCITPARACTIONSSIMPLIFIEASSOCIUNIQUEETCAPITALVARIABLE'=>0, // 95 + 'GFRURAL'=>0, // 96 + 'SOCIETEDEXERCICELIBERALUNIPERSONNELLEARESPONSABILITELIMIT'=>0, // 94 + 'BANQUECOOPRATIVE'=>0, // 93 + 'SOCITCOOPRATIVEDEPRODUCTIONRESPONSABILITCAPITALVARIABLE'=>0, // 93 + 'SOCITANONYMENONMEMBREDELACOMMUNAUTEUROPENNEOUNONPARTIELACCORDSURLESPACECONOMI'=>0, // 92 + 'SOCITANONYMECOOPRATIVECONSEILDADMINISTRATIONCAPITALVARIABLE'=>0, // 92 + 'SOCIETEANONYMENONMEMBREDELACEE'=>0, // 90 + 'UNIONDECOOPRATIVEAGRICOLE'=>0, // 90 + 'SOCITANONYMECOOPRATIVECAPITALETPERSONNELVARIABLES'=>0, // 89 + 'SARLCOOPRATIVEOUVRIREDEPRODUCTIONETDECRDITCAPITALVARIABLE'=>0, // 92 + 'ELAS'=>0, // 89 + 'SOCITANONYMECOOPRATIVEDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 88 + 'SOCITCOOPRATIVECAPITALVARIABLEENLAFORMESARL'=>0, // 88 + 'TABLISSEMENTPUBLICCARRACTREINDUSTRIELOUCOMMERCIAL'=>0, // 88 + 'SARLUN'=>0, // 87 + 'SCCOOPRATIVEDECONSTRUCTION'=>0, // 87 + 'SACOOPRATIVEDEPRODUCTIONDHLM'=>0, // 88 + 'SARLCOOPRATIVEARTISANALE'=>0, // 88 + 'SOCIETECOOPERATIVEDEPRODUCTIONARESPONSABILITELIMITEEACAP'=>0, // 85 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFSOUSFORMEANONYMECONSEILDADMINISTRATION'=>0, // 83 + 'SAFAISANTAPPELPUBLICLPARGNE'=>0, // 81 + 'ANOSOCIETEANONYMEADIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 81 + 'SOCIETEANONYMECOOPERATIVEDEBANQUEPOPULAIRE'=>0, // 79 + 'SOCITCIVILEDEPORTEFEUILLE'=>0, // 79 + 'SCCOOPRATIVEAGRICOLE'=>0, // 79 + 'SELEURL'=>0, // 113 + 'SCOPRESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 122 + 'SOCITCIVILEENCONSTRUCTIONVENTELOIDETITRE'=>0, // 105 + 'SOCITDEXERCICELIBRALDENTREPRISEUNIPERSONNELLERESPONSABILITLIMITE'=>0, // 77 + 'SOCIETEARESPONSABILITELIMITEEAASSOCIEUNIQUEETACAPITALVARIABLE'=>0, // 75 + 'SOCITCIVILEDEMOYENSCAPITALVARIABLE'=>0, // 75 + 'SARLCV'=>0, // 115 + 'SOCITCOOPRATIVEDECAUTIONMUTUELLECAPITALVARIABLE'=>0, // 75 + 'SARLSOUSFORMEDEEURL'=>0, // 74 + 'SCEACAPITALVARIABLE'=>0, // 73 + 'SOCITDEXERCICELIBRAL'=>0, // 74 + 'SOCITCIVILECOOPRATIVEDECONSTRUCTION'=>0, // 73 + 'SACOOPRATIVEDEPERSONNESCAPITALVARIABLE'=>0, // 73 + 'SCPDAVOCATS'=>0, // 75 + 'SOCITRESPONSABILITLIMITECOOPRATIVECAPITALVARIABLE'=>0, // 72 + 'SARLENLIQUIDATION'=>0, // 100 + 'SCIDATTRIBUTION'=>0, // 72 + 'TABLISSEMENTPUBLICNATIONAL'=>0, // 71 + 'COLLECTIVITLOCALE'=>0, // 70 + 'SOCIETEPARACTIONSSIMPLIFIEEADIRECTOIREETCONSEILDESURVEI'=>0, // 69 + 'SOCITCOOPRATIVEARTISANARLCAPITALVARIABLE'=>0, // 69 + 'SASPLURIPERSONNELLE'=>0, // 71 + 'SOCITCIVILEPROFESSIONNELLEDHUISSIERSDEJUSTICE'=>0, // 68 + 'SCOPFORMEANONYME'=>0, // 67 + 'ENTREPRISEUNIPERSONNELLERESPONSABILITLIMITEASSOCIUNIQUE'=>0, // 116 + 'SOCITCOOPRATIVEARTISANALERESPONSABILITLIMITE'=>0, // 67 + 'AS'=>0, // 77 + 'SOCIETEDEXERCICELIBERALPARACTIONSSIMPLIFIEEUNIPERSONNELLE'=>0, // 65 + 'SOCIETEANONYMECOOPERATIVEMARITIMEACAPITALVARIABLE'=>0, // 65 + 'VOIRRUBRIQUEOBSERVATIONS'=>0, // 64 + 'SOCITANONYMECOOPRATIVEDINTRTCOLLECTIFAGRICOLE'=>0, // 63 + 'SARLCAPITALPERSONNELVARIABLE'=>0, // 71 + 'SACOOPRATIVEDECONSOMMATIONCAPITALVARIABLE'=>0, // 63 + 'SCDEGESTIONDEPORTEFEUILLE'=>0, // 63 + 'SARLENDISSOLUTION'=>0, // 68 + 'SARLASSOCIUNIQUECAPITALVARIABLE'=>0, // 65 + 'GFR'=>0, // 72 + 'SOCIETEARESPONSABILITELIMITEENONMEMBREDELACEE'=>0, // 61 + 'SCCONSTRUCTIONVENTE'=>0, // 105 + 'SOCIETEARESPONSABILITELIMITEECOOPERATIVEOUVRIEREDEPRODUCTIONETDECREDIT'=>0, // 61 + 'SOCITANONYMEDCONOMIEMIXTEDIRECTOIRE'=>0, // 60 + 'SOCITTRANGRE'=>0, // 60 + 'SOCITDINTRTCOLLECTIFAGRICOLERESPONSABILITLIMITE'=>0, // 60 + 'SOCITCOOPRATIVEDEPRODUCTIONFORMESARL'=>0, // 60 + 'SELCA'=>0, // 62 + 'SCPARTICULIREDEXPLOITATIONAGRICOLE'=>0, // 59 + 'SELURL'=>0, // 71 + 'SOCITCOOPRATIVEDECRDITCAPITALVARIABLEETRESPONSABILITSTATUTAIREMENTLIMITE'=>0, // 58 + 'CAISSEDECRDITMUTUEL'=>0, // 58 + 'SOCIETEANONYMEAOBJETSPORTIF'=>0, // 57 + 'STEUNIPERSONNELLEARESPONSABILITELIMITEE'=>0, // 56 + 'SOCITCOOPRATIVEDECONSOMMATIONANONYMECAPITALVARIABLE'=>0, // 56 + 'UNIONCOOPRATIVE'=>0, // 55 + 'SCC'=>0, // 64 + 'SACOOPRATIVEMARITIMECAPITALVARIABLE'=>0, // 55 + 'SCOPANONYMECAPITALVARIABLE'=>0, // 54 + 'SOCITCOOPRATIVECAPITALETPERSONNELVARIABLE'=>0, // 53 + 'SOCITENCOMMANDITEPARACTIONSCAPITALVARIABLE'=>0, // 53 + 'TABLISSEMENTPUBLICDELTATCARACTREINDUSTRIELETCOMMERCIAL'=>0, // 52 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFARL'=>0, // 78 + 'SOCITCOOPRATIVEARTISANALERESPLIMITEETCAPITALVARIABLE'=>0, // 51 + 'SACONSEILDESURVEILLANCE'=>0, // 51 + 'SARLCOOPERATIVEOUVRIEREDEPRODUCTION'=>0, // 50 + 'SACOOPRATIVEARTISANALE'=>0, // 50 + 'EURLDEXERCICELIBRAL'=>0, // 50 + 'SOCITCIVILEPROFESSIONNELLEDEVTRINAIRES'=>0, // 49 + 'SOCIETEANONYMEEXERCICELIBERAL'=>0, // 49 + 'ENTREPRISEUNIPERSONNELLEARESPONSABILITELIMITEEETACAPITALVARIABLE'=>0, // 49 + 'SOCITCOOPRATIVEAGRICOLELAITIRECAPITALVARIABLE'=>0, // 49 + 'GF'=>0, // 75 + 'SOCITCOOPRATIVEARTISANALECAPITALVARIABLE'=>0, // 82 + 'SOCITRESPONSABILITLIMITEMEMBREDELACEE'=>0, // 48 + 'COOPRATIVECAPITALVARIABLEENARL'=>0, // 48 + 'SOCITCIVILEPROFESSIONNELLEDARCHITECTES'=>0, // 48 + 'SOCITCIVILEPROFESSIONNELLEDINFIRMIERS'=>0, // 47 + 'AUTREFORMEJURIDIQUE'=>0, // 47 + 'SOCIETEANONYMEDEPRESSE'=>0, // 47 + 'SOCITCIVILEPROFESSIONNELLEDEMDECINS'=>0, // 47 + 'SAEML'=>0, // 82 + 'GIECAPITALVARIABLE'=>0, // 47 + 'SCOPANONYME'=>0, // 47 + 'SOCITRESPONSABILITLIMITECAPITALVARIABLEASSOCIUNIQUE'=>0, // 46 + 'SOCITANONYMEDINTRTCOLLECTIFAGRICOLECONSEILDADMINISTRATION'=>0, // 46 + 'SOCITCOOPRATIVEARTISANALEARLCAPITALVARIABLE'=>0, // 49 + 'SOCIETEANONYMEACONSEILDESURVEILLANCE'=>0, // 45 + 'SOCITCOOPRATIVEARTISANALERESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 46 + 'COOPERATIVEMARITIME'=>0, // 45 + 'SOCITDEXERCICELIBRALDEFORMEANONYME'=>0, // 44 + 'SOCIETEANONYMECOOPERATIVEACAPITALVARIABLEADIRECTOIRE'=>0, // 44 + 'TABLISSEMENTPUBLICADMINISTRATIF'=>0, // 44 + 'SACOOPRATIVEDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 51 + 'SOCIETEANOMYMECOOPERATIVE'=>0, // 43 + 'SARLDARCHITECTURE'=>0, // 64 + 'SEMCONSEILDADMINISTRATION'=>0, // 43 + 'COOPRATIVEDECRDITCAPITALVARIABLE'=>0, // 43 + 'SACOOPRATIVEDEBANQUEPOPULAIRE'=>0, // 42 + 'SOCITCIVILEVITICOLE'=>0, // 42 + 'SPAS'=>0, // 46 + 'STCIVILEAYANTPOUROBJETLACONSTRUCTIONDIMMEUBLESVENTE'=>0, // 42 + 'UNIONDECOOPRATIVE'=>0, // 42 + 'SOCIETECOOPERATIVEACAPITALVARIABLEETARESPONSABILITELIMIT'=>0, // 42 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTIONENLAFORMESARL'=>0, // 42 + 'SOCIETEARESPONSABILITELIMITEEDETYPEEURL'=>0, // 41 + 'SOCIETECOOPERATIVEOUVRIEREDEPRODUCTIONANONYMEACAPITALVAR'=>0, // 41 + 'SOCITCIVILECONSTITUEENVUEDELATTRIBUTIONDUNIMMEUBLE'=>0, // 41 + 'SACOOPRATIVEDECONSOMMATEURSCAPITALVARIABLE'=>0, // 66 + 'SOCIETEANONYMEADIRECTOIREETCONSEILDORIENTATIONETDESURVEILLANCE'=>0, // 41 + 'SCFAISANTAPPELPUBLICLPARGNE'=>0, // 40 + 'SCOPFORMEANONYMEETCAPITALVARIABLE'=>0, // 52 + 'SARLACAPITALETPERSONNELVARIABLE'=>0, // 40 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFAGRICOLESA'=>0, // 40 + 'SOCITANONYMECOOPRATIVEDEPRODUCTIONDHABITATIONLOYERMODRDELOCATIONCONSEILDADMINI'=>0, // 39 + 'SARLSOCITENLIQUIDATION'=>0, // 63 + 'SCDEPERSONNES'=>0, // 39 + 'SACOOPRATIVEDEPRODUCTIONCAPITALVARIABLE'=>0, // 39 + 'COOPERATIVEOUVRIEREDEPRODUCTIONENARL'=>0, // 39 + 'STANONYMECOOPRATIVEDINTRTCOLLECTIFPOURLACCESSIONLAPROPRIT'=>0, // 39 + 'COOPRATIVEDECRDITCAPITALVARIABLEETRESPONSABILITSTATUTAIREMENTLIMITE'=>0, // 40 + 'SAPERSONNELETCAPITALVARIABLES'=>0, // 45 + 'SOCITCOOPRATIVEDECONSOMMATIONRESPONSABILITLIMITE'=>0, // 38 + 'SARU'=>0, // 41 + 'COOPRATIVEDECONSOMMATIONENSOCITANONYME'=>0, // 38 + 'COOPERATIVEAGRICOLEAUCAPITALVARIABLE'=>0, // 38 + 'SOCITENNOMCOLLECTIFCAPITALVARIABLE'=>5202, // 38 + 'SOCIETECIVILEDEPARTICIPATION'=>0, // 38 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFAGRICOLERESPONSABILITLIMITE'=>0, // 38 + 'SOCITCIVILEDEPLACEMENTIMMOBILIERCAPITALVARIABLE'=>0, // 38 + 'ELFA'=>0, // 41 + 'SOCIETEANONYMECOOPERATIVEADIRECTOIRE'=>0, // 38 + 'COOPRATIVEDUTILISATIONDUMATRIELAGRICOLE'=>0, // 37 + 'SOCITCOOPRATIVEDEBANQUE'=>0, // 37 + 'ENTREPRISEUNIPERSONNELLEARESPONSABLITELIMITEE'=>0, // 37 + 'SOCITANONYMECOOPRATIVEARTISANALECAPITALVARIABLE'=>0, // 37 + 'SAPERSONNELETCAPITALVARIABLE'=>0, // 38 + 'UNIONDESOCITSCOOPRATIVESDIRECTOIRE'=>0, // 37 + 'STEDEXERCICELIBERALARESPONSABILITELIMITEE'=>0, // 37 + 'SCEARESPONSABILITLIMITE'=>0, // 38 + 'COOPRATIVERESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 39 + 'SYNDICAT'=>0, // 36 + 'SICAANONYMEADIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 35 + 'SOCITNATIONALE'=>0, // 35 + 'SACOOPRATIVECAPITALETPERSONNELVARIABLE'=>0, // 38 + 'SOCITCOOPRATIVEDECRDITRESPONSABILITSTATUTAIREMENTLIMITE'=>0, // 35 + 'COOPRATIVEDUTILISATIONDEMATRIELAGRICOLE'=>0, // 34 + 'SOCIETEANONYMESIMPLIFIEE'=>0, // 34 + 'SOCITCOOPRATIVEDEPRODUCTIONFORMEANONYMECAPITALVARIABLE'=>0, // 34 + 'SOCITDEPLACEMENTPRPONDRANCEIMMOBILIRECAPITALVARIABLEETCONSEILDADMINISTRATION'=>0, // 33 + 'SCCOOPRATIVEPERSONNELETCAPITALVARIABLES'=>0, // 35 + 'SOCIETEANONYMEACAPITALETPERSONNELVARIABLE'=>0, // 33 + 'SOCITDEXERCICELIBRALRESPONSABILITLIMITECAPITALVARIABLE'=>0, // 33 + 'SARLDEXERCICELIBRAL'=>0, // 34 + 'GROUPEMENTFONCIER'=>0, // 32 + 'SCPROFESSIONNELLEDEVTRINAIRES'=>0, // 32 + 'UNIONDECONOMIESOCIALESTECOOPERATIVESARL'=>0, // 32 + 'SOCITANONYMESOCITDHABITATIONDELOYERMMODR'=>0, // 32 + 'ASSOCIATIONRGIEPARLALOIDUERJUILLET'=>9220, // 32 + 'SARLASSOCIEUNIQUE'=>0, // 53 + 'COOPRATIVE'=>0, // 31 + 'SOCITCOOPRATIVEANONYMEDEBANQUEPOPULAIRECAPITALVARIABLE'=>0, // 31 + 'SOCITCIVILEDEPERSONNES'=>0, // 31 + 'SOCITANONYMEAPARTICIPATIONOUVRIERE'=>0, // 30 + 'SOCITCIVILEIMMOBILIREDATTRIBUTION'=>0, // 30 + 'SCOPCAPITALVARIABLE'=>0, // 30 + 'SOCIETEANONYMECOOPERATIVEDECOMMERCANTDETAILLANTS'=>0, // 30 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTIONRESPONSABILITLIMITE'=>0, // 30 + 'SASP'=>0, // 64 + 'CAISSEMUTUELLEDECRDIT'=>0, // 30 + 'SAMEMBREDELACEE'=>0, // 41 + 'SAPERSONNELCAPITALVARIABLE'=>0, // 29 + 'SOCIETEANONYMECAPITALFIXECOOPDEBANQUE'=>0, // 29 + 'SACOOPRATIVEDEPRODUCTIONDEHLMCAPITALVARIABLE'=>0, // 29 + 'COMMUNEDE'=>0, // 29 + 'SOCIETECOOPERATIVEDETRAVAILLEURSSARL'=>0, // 29 + 'SOCIETEENCOMMANDITEPARACTIONACAPITALVARIABLE'=>0, // 28 + 'COOPRATIVEDECRDITRESPONSABILITSTATUTAIREMENTLIMITEETCAPITALVARIABLE'=>0, // 28 + 'SCVITICOLE'=>0, // 28 + 'SOCITDINTRTCOLLECTIFAGRICOLEFORMESAS'=>0, // 28 + 'SOCITPUBLIQUELOCALEDAMNAGEMENT'=>0, // 28 + 'SEL'=>0, // 38 + 'CUMAENCOMMUN'=>0, // 28 + 'SASUCAPITALVARIABLE'=>0, // 31 + 'SOCITANONYMEDHLMCONSEILDADMINISTRATION'=>0, // 28 + 'SOCITANONYMECOOPRATIVEDEBANQUECAPITALVARIABLE'=>0, // 28 + 'SK'=>0, // 36 + 'SCPROFESSIONNELLEDINFIRMIERS'=>0, // 28 + 'SRLV'=>0, // 29 + 'SOCITDEXERCICELIBRALRESPONSABILITLIMITEDARCHITECTURE'=>0, // 27 + 'SAOUVRIRECOOPRATIVEDEPERSONNESCAPITALVARIABLE'=>0, // 27 + 'SOCIETEARESPONSABILITELIMITEDEXERCICELIBERAL'=>0, // 27 + 'SCDEPLACEMENTIMMOBILIERCAPITALVARIABLE'=>0, // 27 + 'COOPERATIVEOUVRIEREDEPRODUCTIONACAPITALVARIABLESARL'=>0, // 27 + 'SAOUVRIRECOOPRATIVEPERSONNELETCAPITALVARIABLES'=>0, // 54 + 'SOCIETECIVILECOOPERATIVEACAPITALETPERSONNELVARIABLE'=>0, // 27 + 'SCIC'=>0, // 59 + 'SCDEXPLOITATIONAGRICOLE'=>0, // 27 + 'NONRENSEIGNE'=>0, // 26 + 'SARLENLIQUIDATIONAMIABLE'=>0, // 28 + 'CRDITMUTUEL'=>0, // 26 + 'SACOOPRATIONCONSOMCAPITALVARIABLE'=>0, // 26 + 'SELRL'=>0, // 28 + 'GAECCAPITALVARIABLE'=>0, // 26 + 'SCPROFESSIONNELLEDEMDECINS'=>0, // 27 + 'GICO'=>0, // 27 + 'COOPRATIVEDECRDITCAPITALVARRESPSTATUTAIREMENTLIMITE'=>0, // 26 + 'SCDEPLACEMENTCOLLECTIFIMMOBILIERCAPITALVARIABLE'=>0, // 26 + 'SOCITCIVILECOOPRATIVECAPITALVARIABLE'=>0, // 26 + 'SOCITRESPONSABILITLIMITECAPITALPERSONNELVARIABLE'=>0, // 26 + 'SOCITANONYMEOUVRIRECOOPRATIVEPERSCAPITALVARIABLE'=>0, // 27 + 'SCDEGESTION'=>0, // 27 + 'SCCOOPRATIVEDECRDITCAPITALVARIABLE'=>0, // 25 + 'NONPRCIS'=>0, // 25 + 'SCIDEGESTION'=>0, // 26 + 'COOPRATIVEDEPRODUCTIONANONYMECAPITALVARIABLE'=>0, // 25 + 'COOPRATIVEDECOMMERANTSDTAILLANTS'=>0, // 25 + 'SOCITENCOMMANDITEPARACTIONSMEMBREDELACOMMUNAUTEUROPENNEOUPARTIELACCORDSURLESPA'=>0, // 25 + 'SCPROFESSIONNELLEDHUISSIERS'=>0, // 25 + 'SOCITDEDROITANGLAIS'=>0, // 24 + 'ASSOCIATIONRGIEPARLALOIDE'=>9220, // 24 + 'EU'=>0, // 24 + 'SOCITCOOPRATIVECRDITCAPITALVARIABLEARL'=>0, // 24 + 'SOCITDEPRESSE'=>0, // 24 + 'SKA'=>0, // 45 + 'SOCIETEANOMYMEDECONOMIEMIXTE'=>0, // 24 + 'SOCITDEFAIT'=>0, // 24 + 'COOPRATIVEDEPRODUCTIONRESPONABILITLIMITEETCAPITALVARIABLE'=>0, // 24 + 'SANONMEMBREDELACEE'=>0, // 30 + 'SAEMCONSEILDADMINISTRATION'=>0, // 24 + 'COOPRATIVEDECONSOMMATIONENSA'=>0, // 44 + 'SAR'=>0, // 28 + 'SCIDELOCATION'=>0, // 25 + 'SICAVCAPITALVARIABLE'=>0, // 23 + 'SOCIETEPARACTIONSSIMPLIFIEECOOPERATIVEACAPITALVARIABLE'=>0, // 23 + 'SACOOPDINTRTCOLLECTIFPOURLACCESSIONLAPROPRIT'=>0, // 31 + 'RL'=>0, // 23 + 'SOCITTRANGRENONISSUEDELESPACEECONOMIQUEEUROPEN'=>0, // 23 + 'SOCITDASSURANCEMUTUELLE'=>0, // 23 + 'SCPATRIMONIALE'=>0, // 23 + 'SOCITENPARTICIPATION'=>0, // 23 + 'SCASSOCIUNIQUE'=>0, // 23 + 'SCPROFESSIONNELLEDHUISSIERSDEJUSTICE'=>0, // 23 + 'UNIONDECONOMIESOCIALECOOPERATIVEARESPONSABILITELIMITEE'=>0, // 23 + 'SAADIRECTOIRE'=>0, // 23 + 'SOCITDEGROUPEDASSURANCEMUTUELLE'=>0, // 23 + 'SOCIETEANONYMEAUCAPITALETPERSONNELVARIABLE'=>0, // 23 + 'SOCIETEPARACTIONS'=>0, // 23 + 'SACOOPRATIVEOUVRIREDEPRODUCTIONETDECRDITCONSEILDADMINISTRATION'=>0, // 23 + 'SRCP'=>0, // 23 + 'UNIONDCONOMIESOCIALESARLCOOPRATIVE'=>0, // 25 + 'STECOOPERATOUVRIEREDEPRODUCTIONANONYMEACAPITALVARIABLE'=>0, // 22 + 'SACOOPRATIVEDEPRODUCTIONDHLMCAPITALVARIABLE'=>0, // 24 + 'GROUPEMENTAGRICOLEFONCIER'=>0, // 22 + 'SOCITANONYMEDIRECTOIREDECONOMIEMIXTE'=>0, // 22 + 'SOCITANONYMECONSEILDADMINISTRATIONDHABITATIONLOYERMODRDELOCATION'=>0, // 22 + 'SARLCAPITALETPERSONNELVARIABLES'=>0, // 39 + 'SRLELU'=>0, // 26 + 'SOCITCIVILEAYANTPOUROBJETLACONSTRUCTIONDIMMEUBLES'=>0, // 22 + 'SACOOPRATIVEOUVRIREDEPRODUCTION'=>0, // 43 + 'SICAFORMEANONYME'=>0, // 22 + 'SOCITPARACTIONSSIMPLIFIECAPITALVARIABLEETASSOCIUNIQUE'=>0, // 22 + 'STEDEXERCICELIBERALARESPONSABILITELIMITEEUNIPERSONNELLE'=>0, // 21 + 'SICAVCONSEIL'=>0, // 21 + 'SOCIETECIVILECONSTRUCTIONVENTE'=>0, // 21 + 'EURLACAPITALVARIABLE'=>0, // 37 + 'SAC'=>0, // 27 + 'SAOS'=>0, // 22 + 'SACAPITALETPERSONNELVARIABLES'=>0, // 21 + 'COOPRATIVEARTISANALE'=>0, // 21 + 'ADMINISTRATIONPUBLIQUE'=>0, // 20 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTIONRESPLIMITEETCAPITALVARIABLE'=>0, // 20 + 'SOCIETEANONYMEACONSEILDADMINISTRATION'=>0, // 20 + 'ADMINTERDITAURCS'=>0, // 20 + 'SOCIETEANONYMECOOPERATIVEMARITIME'=>0, // 20 + 'SOCIETEARESPONSABILITELIMITEEARTISANALE'=>0, // 20 + 'SADC'=>0, // 20 + 'SOCITDEPARTICIPATIONFINANCIREDEPROFESSIONLIBRALEPARACTIONSIMPLIFIE'=>0, // 20 + 'SCCOOPRATIVEAGRICOLECAPITALVARIABLE'=>0, // 20 + 'COMMUNE'=>0, // 20 + 'UNIONDCONOMIESOCIALESOCITANONYMECOOPRATIVECAPITALVARIABLE'=>0, // 20 + 'UNIONCOOPRATIVEAGRICOLECAPITALVARIABLE'=>0, // 20 + 'SOCITCAUTIONMUTUELLE'=>0, // 28 + 'SACOOPRATIVEOUVRIREDEPRODETCRDITCONSEILDADMCAPITALVARIABLE'=>0, // 19 + 'ASARL'=>0, // 19 + 'OFFICEPUBLIC'=>0, // 19 + 'SOCITANONYMECOOPRATIVEDECRDITCAPITALETRESPONSABILITSTATUTAIREMENTLIMITECONSEI'=>0, // 19 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFANONYMECAPITALVARIABLE'=>0, // 19 + 'SICACAPITALVARIABLE'=>0, // 19 + 'SADIRECTOIRECONSEILSURVEILL'=>0, // 20 + 'STECIVILEDEPLACEMENTCOLLECTIFIMMOBILIERCAPITALVARIABLE'=>0, // 19 + 'SOCITCIVILECOOPRATIVEDECRDIT'=>0, // 19 + 'SCENCONSTRUCTIONVENTE'=>0, // 19 + 'SOCIETEANONYMECOOPERATIVEDEBANQUEPOPULAIREACAPITALVARIABLE'=>0, // 19 + 'SCEARL'=>0, // 40 + 'SASACTIONNAIREUNIQUE'=>0, // 19 + 'SOCITDASSURANCESMUTUELLES'=>0, // 19 + 'UCA'=>0, // 20 + 'SADIRECTOIREETCONSEILDORIENTATIONETDESURVEILLANCE'=>0, // 18 + 'SOCITDEPARTICIPATIONSFINANCIRESDEPROFESSIONLIBRALE'=>0, // 18 + 'EXPLOITATIONAGRICOLERESPONSABILITLIMITEASSOCIUNIQUE'=>0, // 24 + 'SELARLETASSOCIUNIQUE'=>0, // 20 + 'SARLK'=>0, // 37 + 'ORGANISMEAUTONOME'=>0, // 18 + 'GFVITICOLE'=>0, // 18 + 'SOCITCIVILEPARTICULIREDEXPLOITATIONAGRICOLE'=>0, // 18 + 'SOCITCOOPRATIVEDETRAVAILLEURSRESPONSABILITLIMITE'=>0, // 18 + 'SOCITDEPARTICIPATIONFINANCIREDEPROFESSIONLIBRALEDAVOCATSPARACTIONSSIMPLIFIE'=>0, // 18 + 'SOCITANONYMECOOPRATIVEDINTRTCOLLECTIFCAPITALVARIABLE'=>0, // 18 + 'SACOOPRATIVEDINTRTCOLLECTIFPOURACCESSIONLAPROPRIT'=>0, // 18 + 'SCPROFESSIONNELLEDARCHITECTES'=>0, // 18 + 'SCACOOPRATIVE'=>0, // 17 + 'COOPERATIVEOUVRIEREDEPRODUCTIONANONYMEACAPITALVARIABLE'=>0, // 17 + 'SOCIETEANONYMEDECONOMIEMIXTEADIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 17 + 'SACOOPRATIVEDECOMMERANTSDTAILLANTSCAPITALVARIABLE'=>0, // 21 + 'SCPDENOTAIRES'=>0, // 17 + 'SARLLIMITE'=>0, // 18 + 'SACOOPRATIVEDENTREPRISESCAPITALVARIABLE'=>0, // 31 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTIONFORMEANONYMECAPITALVARIABLE'=>0, // 17 + 'SOCITCOOPRATIVEDECRDITRESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 22 + 'SARLASSOCIUNIQUECAPVAR'=>0, // 17 + 'SOCITDEPLACEMENTPRPONDRANCEIMMOBILIRECAPITALVARIABLEETDIRECTOIREETCONSEILDESU'=>0, // 17 + 'SASPORTIVEPROFESSIONNELLEDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 17 + 'SOCIETEPARACTIONSSIMPLIFIEESAASSOCIEUNIQUE'=>0, // 17 + 'SOCITCOOPRATIVEDECAUTIONMUTUELLECAPITALVARIABLELOI'=>0, // 17 + 'SOCIETEPARACTIONSSIMPLIF'=>0, // 17 + 'SOCITCIVILECOOPRATIVECONSTPERSCAPITALVARIABLE'=>0, // 17 + 'SOCITCOOPRATIVEPARTICIPATIONOUVRIRE'=>0, // 16 + 'SDDI'=>0, // 17 + 'SADIRECTOIREDCONOMIEMIXTE'=>0, // 26 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTIONENLAFORMESA'=>0, // 16 + 'COOPRATIVEDEPRODUCTIONRESPONSABILITLIMITE'=>0, // 16 + 'STEASSURANCESCARACTEREMUTUE'=>0, // 16 + 'SCMU'=>0, // 16 + 'ENTREPRISEUNIPERSONNELLESPORTIVERESPONSABILITLIMITE'=>0, // 16 + 'SOCITCIVILECOOPRATIVEDECONSOMMATIONCAPITALVARIABL'=>0, // 16 + 'UNIONDESCOOPRATIVESAGRICOLESCAPITALVARIABLE'=>0, // 16 + 'SOCITNATIONALISE'=>0, // 16 + 'SACOOPRATIVEDEBANQUECAPITALVARIABLE'=>0, // 16 + 'PERSONNEMORALEDEDROITPUBLIC'=>0, // 16 + 'SCCOOPRATIVECAPITALVARIABLE'=>0, // 16 + 'SOCITDEXERCICELIBRALPARACTIONSSIMPLIFIEASSOCIUNIQUE'=>0, // 16 + 'SOCIETEDEXERCICELIBERALARESPONSABILITELIMITEEDARCHITECTU'=>0, // 16 + 'SOCITANONYMEDHLMDIRECTOIRE'=>0, // 16 + 'SOCITANONYMECOOPRATIVEDEPRODUCTIONDHLMCAPITALVARIABLE'=>0, // 16 + 'COOPRATIVEDUTILISATIONDEMATRIELAGRICOLECUMA'=>0, // 16 + 'SELASSOCIUNIQUE'=>0, // 16 + 'SOCITCOOPRATIVEDEBANQUEPOPULAIRE'=>0, // 16 + 'SOCITCOOPRATIVEDETRAVAILLEURSANONYME'=>0, // 15 + 'COOPRATIVEDEPRODUCTIONRESPONSABILITLIMITECAPITALVARIABLE'=>0, // 15 + 'UNIONDCONOMIESOCIALECOOPRATIVERESPONSABILITLIMITE'=>0, // 16 + 'SOCIETECOOPERATIVEMARITIMEARESPONSABILITELIMITEE'=>0, // 15 + 'SICARESPONSABILITLIMITE'=>0, // 15 + 'SOCITCIVILEPROFESSIONNELLEDEMASSEURSKINSITHRAPEUTES'=>0, // 17 + 'SOCITTANONYMECONSEILDADMINISTRATIONDHLM'=>0, // 15 + 'SCDEPARTICIPATIONS'=>0, // 15 + 'SOCIETEANONYMENATIONALISEEACONSEILDADMINISTRATION'=>0, // 15 + 'SAK'=>0, // 20 + 'SYNDICATPROFESSIONNEL'=>0, // 15 + 'SCKCON'=>0, // 15 + 'SADIRECTOIREETCONSEILDADMINISTRATION'=>0, // 18 + 'SOCITCIVILEDEPLACEMENTCOLLECTIFIMMOBILIER'=>0, // 15 + 'GROUPEMENTDINTERETECONOMIQUEACAPITALVARIABLE'=>0, // 15 + 'SOCITCIVILEFAISANTAPPELPUBLICLPARGNE'=>0, // 15 + 'SCDEPLACEMENTSIMMOBILIERS'=>0, // 15 + 'SOCITANONYMECOOPRATIVEDENTREPRISECAPITALVARIABLE'=>0, // 15 + 'COOPRATIVEDECRDITCAPITALVARIABLEENSARL'=>0, // 18 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFRESPONSLIMITEETCAPITALVARIABLE'=>0, // 15 + 'SAACONSEILDADMINISTRATION'=>0, // 15 + 'SCPROFESSIONNELLEDAVOCAT'=>0, // 15 + 'FORMEJURIDIQUEINDTERMINE'=>0, // 15 + 'SADHABITATIONLOYERMODR'=>0, // 15 + 'SAPARTICIPATIONOUVRIRE'=>0, // 15 + 'SACD'=>0, // 21 + 'SOCITANONYMECOOPRATIVEDEBANQUECAPITALFIXE'=>0, // 14 + 'COOPRATIVEDECRDITCAPITALVARIABLEETRESPSTATUAIREMENTLIMITE'=>0, // 14 + 'EUARLASSOCIUNIQUE'=>0, // 16 + 'SKP'=>0, // 14 + 'SCISOCITENLIQUIDATION'=>0, // 20 + 'MONSIEUR'=>0, // 14 + 'SOCITCOOPRATIVECAPITALVARIABLEAMPRESPONSABILITSTATUTAIREMENTLIMITE'=>0, // 17 + 'UNIONDCONOMIESOCIALE'=>0, // 14 + 'SCIENLIQUIDATION'=>0, // 15 + 'SKACV'=>0, // 16 + 'COOPERATIVEOUVRIEREDEPRODUCTIONENARLETCAPITALVARIABLE'=>0, // 14 + 'SCPARTICULIRECAPITALVARIABLE'=>0, // 14 + 'SADEXERCICELIBRAL'=>0, // 14 + 'SARLASSOCI'=>0, // 15 + 'SOCITCIVILEIMMOBILIREDEGESTION'=>0, // 14 + 'SOCITDINTRTCOLLECTIFAGRICOLECIVIL'=>0, // 14 + 'SOCITANONYMECOOPRATIVEDECOMMERANTSDTAILLANTSCAPITALVARIABLE'=>0, // 14 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFFORMESARLCAPITALVARIABLE'=>0, // 14 + 'SOCITENCOMMANDITEPARACTIONSMEMBREDELUE'=>0, // 14 + 'SOCITCIVILEFONCIRE'=>0, // 14 + 'SADEPRODUCTIONCAPITALVARIABLE'=>0, // 14 + 'GISL'=>0, // 15 + 'SARLPLURIPERSONNELLE'=>0, // 13 + 'STE'=>0, // 13 + 'SARLASSOCIUNIQUESOCITENLIQUIDATION'=>0, // 14 + 'SOCITCIVILEDEXPLOITATION'=>0, // 13 + 'ASSOCIATIONLOIMETTANTDESOBLIGATIONS'=>9220, // 13 + 'COOPRATIVECAPITALVARIABLEETRESPONSABILITLIMITE'=>0, // 13 + 'UNIONDECONOMIESOCIALESOCIETECOOPERATIVEANONYME'=>0, // 13 + 'SCPROFESSIONNELLEDEDIRECTEURSDELABORATOIRESDANALYSESDEBIOLOGIEMDICALE'=>0, // 13 + 'SU'=>0, // 13 + 'SADI'=>0, // 30 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFAGRICOLESAS'=>0, // 13 + 'SOCITRESPONSABILITLIMITEDEPRESSECAPITALVARIABLE'=>0, // 13 + 'STEANONYMEDECONOMIEMIXTE'=>0, // 13 + 'UNIONDESOCITSCOOPRATIVESCONSEILDADMINISTRATION'=>0, // 13 + 'SOCIETEARESPONSABILITELIMITEECOOPERATIVEDECONSOMMATION'=>0, // 13 + 'EUROS'=>0, // 131 + 'SCPROFESSIONNELLEDAVOUS'=>0, // 13 + 'GFACAPITALVARIABLE'=>0, // 14 + 'N'=>0, // 13 + 'SOCITCIVILEPROFESSIONNELLEDECHIRURGIENSDENTISTES'=>0, // 13 + 'SRCV'=>0, // 13 + 'SOCIETEARESPONSABILITELIMITEEASSOCIEUNIQUEEURL'=>0, // 13 + 'SADIRECTOIREETCONSEILDESURVEILLANCECAPITALVARIABLE'=>0, // 13 + 'SACOOPRATIVEDINTRTCOLLECTIFAGRICOLECONSEILDADMINISTRATION'=>0, // 13 + 'SOCIETECOOPERATIVEDECAUTIONMUTUELLELOI'=>0, // 12 + 'COOPRATIVEPRODUCTIONARLCAPITALVARIABLE'=>0, // 12 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFRESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 13 + 'SACOOPRATIVEDECONSOMMATION'=>0, // 13 + 'SARLCOOPRATIVEOUVRIREDEPRODUCTION'=>0, // 12 + 'SOCIETEANONYMEADIRECTOIREETCONSEILDESURV'=>0, // 12 + 'SOCITCIVILEPROFESSIONNELLEDAVOCATSAUCONSEILDETATETLACOURDECASSATION'=>0, // 12 + 'SCSOCITENLIQUIDATION'=>0, // 15 + 'SOCIETECOOPERATIVEDINTERETCOLLECTIFAGRICOLEAFORMECIVILE'=>0, // 12 + 'STEANONYMESPORTIVEPROFESSIONNELLEACONSEILDADMINISTRATION'=>0, // 12 + 'SOCITAGRICOLE'=>0, // 12 + 'SARLUNIPERSONELLE'=>0, // 19 + 'SOCITANONYMEEUROPENNE'=>0, // 12 + 'SARLCOOPRATIVEMARITIME'=>0, // 19 + 'SARLSOCITENDISSOLUTION'=>0, // 15 + 'SARLASSOCIUNIQUECAPVARIAB'=>0, // 12 + 'SELARLCAPITALVARIABLE'=>0, // 12 + 'SACH'=>0, // 13 + 'SOCITANONYMECONSEILDESURVEILLANCE'=>0, // 12 + 'SOCITDEDROITEUROPEN'=>0, // 12 + 'SOCIETECOOPERATIVEARTISANALEARESPLIMITEEETACAPITALVARI'=>0, // 12 + 'SASV'=>0, // 15 + 'SELENCOMMANDITEPARACTIONS'=>0, // 11 + 'SCACV'=>0, // 11 + 'COOPERATIVEDECONSOMMATIONANONYMEACAPITALVARIABLE'=>0, // 11 + 'COMMUNAUTTERRITORIALE'=>0, // 11 + 'SOCIETECIVILEPARTICULIEREACAPITALVARIABLE'=>0, // 11 + 'AUTRESFORMESJURIDIQUES'=>0, // 11 + 'SOCITCOOPRATIVECAPITALVARIABLERESPONSABILITSTATUTAIREMENTLIMITE'=>0, // 11 + 'SACOOPRATIVEDEBANQUE'=>0, // 11 + 'SOCITCOOPRATIVEDECONSOMMATIONENLAFORMESA'=>0, // 11 + 'SACONSEILDESURVEILLANCEETDIRECTOIRE'=>0, // 12 + 'SCPA'=>0, // 15 + 'SOCITPRIVEPARACTIONS'=>0, // 11 + 'SAEMDIRECTOIRE'=>0, // 11 + 'SOCIETEANONYMEDECONOMIEMIXTE'=>0, // 11 + 'SCPROFESSIONNELLEDECHIRURGIENSDENTISTES'=>0, // 11 + 'STEANONYMECOOPERATIVEDINTERETCOLLECTIFACAPITALVARIABLE'=>0, // 11 + 'SADCONOMIEMIXTECONSEILDADMINISTRATION'=>0, // 12 + 'SOCITANONYMECOOPRATIVEDINTRTCOLLECTIFPOURACCESSIONLAPROPRIT'=>0, // 11 + 'SAOBJETSPORTIF'=>0, // 11 + 'SOCIETEDEXERCICELIBERALARESPONSABILITELIMITEE'=>0, // 12 + 'ENTREPRISEUNIPERSONNELLEARESPONSABILITELIMITEEETACAPITAL'=>0, // 11 + 'SADHLMDIRECTOIRE'=>0, // 11 + 'SOCITCIVILEPROFESSIONNELLEDEGEOMTRESEXPERTS'=>0, // 11 + 'SOCITANONYMECOOPRATIVECONSEILDADMINISTRATION'=>0, // 11 + 'GROUPEMENTFONCIERVITICOLE'=>0, // 11 + 'SOCITCIVILECOOPRATIVEAGRICOLECAPITALVARIABLE'=>0, // 11 + 'SOCIETECOOPERATIVEDECONSOMMATIONANONYME'=>0, // 11 + 'BANQUECOOPRATIVERGIEPARLALOINDUJUIN'=>0, // 11 + 'SCPARTICULIREDINVESTISSEMENT'=>0, // 11 + 'SASUNIPERSONNELLEASSOCIUNIQUE'=>0, // 12 + 'SOCIETEANONYMEADIRECTOIREETCONSEILDORIENTATIONETSURVEIL'=>0, // 10 + 'SACOOPRATIVEDEBANQUEPOPULAIRECAPITALVARIABLE'=>0, // 10 + 'SOCITDEGESTIONPATRIMONIALE'=>0, // 10 + 'SOCITCOOPRATIVEDEBANQUECAPITALVARIABLE'=>0, // 10 + 'SASCOOPRATIVE'=>0, // 11 + 'SELASASSOCIUNIQUE'=>0, // 10 + 'SARLASSOCIUNIQUEUNIQUE'=>0, // 10 + 'SOCIETECOOPERATIVEDETRAVAILLEURSANONYME'=>0, // 10 + 'SACOOPRATIVEDIRECTOIREETCONSEILDESURVEILLANCECAPITALVARIABLE'=>0, // 10 + 'SARLCCV'=>0, // 11 + 'SOCITCIVILEPROFESSIONNELLEDEDIRECTEURSDELABORATOIRESDANALYSESDEBIOLOGIEMDICALE'=>0, // 10 + 'SOCIETEARESPONSABILITELIMITEEACARACTEREUNIPERSONNEL'=>0, // 10 + 'SARLOUVRIREDEPRODUCTIONCAPITALVARIABLE'=>0, // 10 + 'SCICV'=>0, // 14 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFCAPITALVARIABLE'=>0, // 10 + 'SOCIETEDEXERCICELIBERALPARACTIONSSIMPLIFIEESSELAS'=>0, // 10 + 'SP'=>0, // 10 + 'SOCITPARACTIONSSIMPLIFIEUNIPERSONNELLECAPITALVARIABLE'=>0, // 10 + 'COLR'=>0, // 12 + 'STECOOPERATIVESARLACAPITALVARIABLE'=>0, // 10 + 'CUMACAPITALVARIABLE'=>0, // 14 + 'SCCOOPRATIVECAPITALETPERSONNELVARIABLES'=>0, // 9 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFAGRICOLERESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 9 + 'SOCITCOOPRATIVEANONYMEDINTRTCOLLECTIFAGRICOLECAPITALVARIABLE'=>0, // 9 + 'SOCITCOOPRATIVEVINICOLE'=>0, // 9 + 'SACOOPRATIVEDINTRTCOLLECTIFCAPITALVARIABLE'=>0, // 9 + 'SOCITDCONOMIEMIXTEDIRECTOIRE'=>0, // 9 + 'COOPERATIVEDETRANSPORTSROUTIERS'=>0, // 9 + 'SELASU'=>0, // 10 + 'SOCITDEDROITALLEMAND'=>0, // 9 + 'SOCITCOOPRATIVEANONYMECAPITALVARIABLE'=>0, // 9 + 'SOCIETECOOPERATIVEDECAUTIONMUTUELLEACAPITALVARIABLELOI'=>0, // 9 + 'COOPRATIVEDECRDITRESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 9 + 'SARLASSOCIUNIQUEENLIQUIDATION'=>0, // 15 + 'SCDECRDITCAPITALVARIABLE'=>0, // 9 + 'SASUNIPERSONELLE'=>0, // 9 + 'SOCITCOOPRATIVEMARITIMERESPONSABILITLIMITECAPITALVARIABLE'=>0, // 9 + 'SAASSOCIUNIQUE'=>0, // 10 + 'SOCITDINVESTISSEMENTSCAPITALVARIABLECONSEILDADMINISTRATION'=>0, // 9 + 'SNCASSOCIUNIQUE'=>5202, // 9 + 'SOCITRESPONSABILITLIMIT'=>0, // 9 + 'CRDITMARITIMECAPITALVARIABLE'=>0, // 9 + 'SOCIETECOOPERATIVEOUVRIEREDEPRODUCTIONASA'=>0, // 16 + 'SARLASSOCIUNQIUE'=>0, // 9 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFAGRICOLECAPITALVARIABLE'=>0, // 9 + 'SARLCOOPRATIVEDETRAVAILLEURS'=>0, // 9 + 'SOCITANONYMEPUBLIQUELOCALEDAMNAGEMENT'=>0, // 9 + 'SOCITCIVILEPROFESSIONNELLEDHUISSIERS'=>0, // 9 + 'UNIONDESOCITSCOOPRATIVESFORMEANONYME'=>0, // 9 + 'SCPI'=>0, // 9 + 'SCCOOPRATIVEDECONSOMMATEURSCAPITALVARIABLE'=>0, // 9 + 'SCARL'=>0, // 9 + 'TABLISSEMENTDECRDITBUTNONLUCRATIF'=>0, // 9 + 'SARLCARACTREUNIPERSONNEL'=>0, // 9 + 'STEDEXERCICELIBERALUNIPERSONNELLEARESPONSABILITELIMITEE'=>0, // 9 + 'SOCIETEANONYMEDHLMADIRECTOIRE'=>0, // 9 + 'RARL'=>0, // 14 + 'SCOPRESPONSABILITLIMITECAPITALVARIABLE'=>0, // 9 + 'SOCITDEDROITANGLAISPRIVATELIMITEDCOMPANY'=>0, // 12 + 'SOCITCIVILECOOPRATIVEDECONSOMMATION'=>0, // 9 + 'SOCITDINVESTISSEMENTSCAPITALVARIABLEETCONSEIL'=>0, // 13 + 'SCDEXPLOITATIONVITICOLE'=>0, // 9 + 'SCDEPARTICIPATION'=>0, // 9 + 'SCV'=>0, // 11 + 'SOCITANONYMECOOPRATIVEDECOMMERANTSDTAILLANTSCONSEILDADMINISTATION'=>0, // 9 + 'SOCITCIVILEPROFESSIONNELLEDAVOUS'=>0, // 9 + 'SOCITCIVILEPROFESSIONNELLEDECOMMISSAIRESPRISEURS'=>0, // 15 + 'SCOPANONYMEPERSONNELETCAPITALVARIABLES'=>0, // 9 + 'SCPROFESSIONNELLEDECOMMISSAIRESPRISEURS'=>0, // 15 + 'SASUASSOCIUNIQUE'=>0, // 9 + 'UNIONDECOOPERATIVESACAPITALVARIABLELOI'=>0, // 9 + 'SOCIETECIVILEEXPLOITATIONAGRICOLEARESPONSABILITELIMITEE'=>0, // 9 + 'SCPCAPITALVARIABLE'=>0, // 8 + 'ASSOCIATIONLOIDE'=>9220, // 8 + 'SOCITCIVILEDEGESTION'=>0, // 8 + 'SOCITRRESPONSABILITLIMITE'=>0, // 8 + 'SCPRL'=>0, // 8 + 'SPAITALIENNE'=>0, // 8 + 'SN'=>0, // 8 + 'SCPROFESSIONELLE'=>0, // 8 + 'SCRL'=>0, // 12 + 'SUARL'=>0, // 8 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTIONCONSEILDADMINISTRATION'=>0, // 8 + 'TABLISSEMENTPUBLICCARACTREINDUSTRIELOUCOMMERCIAL'=>0, // 8 + 'COOPRATIVEDEPRODUCTIONRESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 9 + 'SCPROFESSIONNELLEDEMASSEURSKINSITHRAPEUTES'=>0, // 11 + 'SCIFAMILIALE'=>0, // 8 + 'SCAMEMBREDELUE'=>0, // 8 + 'COOPRATIVEDECRDITCAPITALVARIABLEETRESPONSABILITLIMITE'=>0, // 10 + 'SCIASSOCIUNIQUE'=>0, // 10 + 'SOCITPARACTIONSSIMPLIFIEUNIPERSONNELLEASSOCIUNIQUE'=>0, // 14 + 'SOCIETECIVILECOOPERATIVEVINICOLE'=>0, // 8 + 'SARLCOOPRATIVECONSOMCAPITALVARIABLE'=>0, // 8 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFAGRICOLE'=>0, // 8 + 'SOCITDEXERCICELIBRALPARACTIONSIMPLIFIE'=>0, // 8 + 'SCISCPSCM'=>0, // 16 + 'FDRATION'=>0, // 8 + 'GROUPEMENTDEMPLOYEURS'=>0, // 8 + 'STECIVILE'=>0, // 8 + 'SOCITCOOPRATIVEDEPRODUCTIONCAPITALVARIABLE'=>0, // 8 + 'MADAME'=>0, // 8 + 'SARLDEFAMILLE'=>0, // 8 + 'SCCOOPRATIVEDECRDIT'=>0, // 8 + 'SOCITMUTUELLECAPITALVARIABLE'=>0, // 8 + 'SCDECONSTRUCTIONVENTEDIMMEUBLES'=>0, // 8 + 'SCICA'=>0, // 9 + 'SOCITCOOPRATIVEDECAUTIONMUTUELLE'=>0, // 8 + 'SDCS'=>0, // 9 + 'SOCITDEPARTICIPATIONFINANCIREDEPROFESSIONLIBRALEDAVOCATSRESPONSABILITLIMITE'=>0, // 8 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTIONSARLCAPITALVARIABLE'=>0, // 8 + 'SACOOPDIRECTCONSEILSURV'=>0, // 16 + 'COOPRATIVEOUVRIREDEPRODUCTIONANONYMECAPITALETPERSONNELVARIABLE'=>0, // 8 + 'SCCC'=>0, // 8 + 'SACOOPRATIVEPERSONNELETCAPITALVARIABLE'=>0, // 8 + 'SACOOPRATIVEDEPRODUCTION'=>0, // 8 + 'SAENDISSOLUTION'=>0, // 9 + 'SOCIETEANONYMEDHABITATIONALOYERMODERE'=>0, // 8 + 'SARLP'=>0, // 8 + 'COOPERATIVEOUVRIEREDEPRODUCTIONACAPITALVARIABLESA'=>0, // 8 + 'SOCITPARACTIONSSIMPLIFIEDARCHITECTURECAPITALVARIABLE'=>0, // 8 + 'SOCITCCOPRATIVEMARITIME'=>0, // 8 + 'SEML'=>0, // 11 + 'SOCIETEDINTERETCOLLECTIF'=>0, // 8 + 'STEDEPARTICIPATIONSFINANCIRESRESPONSABILITLIMITE'=>0, // 8 + 'ANONYMEACAPITALVARIABLE'=>0, // 8 + 'SOCITCOOPRATIVEAGRICOLECOOPRATIVE'=>0, // 9 + 'SARLCOOPRATIVEARTISANALECAPITALVARIABLE'=>0, // 8 + 'SACOOPRATIVEDIRECTIONETCONSEILDESURVEILLANCE'=>0, // 15 + 'SCOTARLSTCOOPRATIVETRAVAILLEURS'=>0, // 7 + 'UNIONDCONOMIESOCIALECOOPRATIVEFORMEANONYME'=>0, // 7 + 'COOPERATIVEDECONSOMMATIONENSAACAPITALVARIABLE'=>0, // 7 + 'OPAC'=>0, // 8 + 'SAMUTUELLEDIRECTION'=>0, // 7 + 'SOCITCOOPRATIVEDECONSOMMATIONCAPITALVARIABLE'=>0, // 7 + 'COOPRATIVEARTISANALERESPONSABILITLIMITE'=>0, // 7 + 'SARLCOOPERATIVEDEPRODUCTIONCAPITALVARIABLE'=>0, // 7 + 'BANQUECOOPRATIVERGIEPARLALOINODUJUIN'=>0, // 13 + 'SCOPANONYMEETCAPITALVARIABLE'=>0, // 7 + 'SARLEXERCICELIBRAL'=>0, // 7 + 'SRLKOP'=>0, // 13 + 'COOPRATIVEARTISANALECONSEIL'=>0, // 12 + 'SOCITPARACTIONSMEMBREDELACOMMUNAUTEUROPENNEOUPARTIELACCORDSURLESPACECONOMIQUE'=>0, // 7 + 'SARLC'=>0, // 12 + 'COOPERATIVEACAPITALVARIABLESOCIETEANONYME'=>0, // 7 + 'SACOOPDEBANQUEPOPULAIRE'=>0, // 7 + 'SACOOPRATIVEDEPRODUCTIONDHLMCONSEILDADMINISTRATION'=>0, // 7 + 'EURLSARL'=>0, // 7 + 'SARLCOOPRATIVEDECONSOMMATION'=>0, // 9 + 'SACV'=>0, // 7 + 'TABLISSEMENTPUBLICDECOOPRATIONCULTURELLECARACTREINDUSTRIELETCOMMERCIAL'=>0, // 7 + 'SOCITANONYMEDEPRODUCTIONCAPITALVARIABLE'=>0, // 7 + 'SICAVCONSEILDADMINISTRATION'=>0, // 9 + 'SOCITCIVILEPROFESSIONNELLEDECHIRURGIENDENTISTES'=>0, // 7 + 'SARLPERSONNELVARIABLE'=>0, // 9 + 'SOCITANONYMECOOPRATIVEMARITIMECAPITALETPERSONNELVARIABLES'=>0, // 7 + 'SOCIETEANONYMECOOPERATIVEADIRECTOIREETCONSEILDESURVEILLA'=>0, // 7 + 'SCIENLIQUIDATIONAMIABLE'=>0, // 7 + 'SACOOP'=>0, // 13 + 'SCOA'=>0, // 7 + 'SACOOPRATIVEMARITIME'=>0, // 7 + 'ASSOCIATIONRGIESELONLALOI'=>9220, // 7 + 'SOCITCOOPRATIVEDECRDITCAPVARIABLEETRESPSTATUTAIREMENTLIMITE'=>0, // 7 + 'SARLCOOPRATIVEDECONSOMMATIONCAPITALVARIABLE'=>0, // 7 + 'SELACA'=>0, // 7 + 'SELA'=>0, // 8 + 'SARLASSOCIUNIQUEENDISSOLUTION'=>0, // 7 + 'SAEL'=>0, // 10 + 'SOCITOUVRIREDEPRODUCTIONFORMESARLCAPITALVARIABLE'=>0, // 7 + 'SOCIETEANONYMECOOPOUVRIEREDEPRODUCTIONCAPITALETPERSONNELVARIABLES'=>0, // 7 + 'SACOOPRATIVEDIRECTOIRE'=>0, // 8 + 'CRDITMARITIME'=>0, // 7 + 'UNIONDCONOMIESOCIALESADIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 10 + 'SAEXERCICELIBRAL'=>0, // 7 + 'SCOPFORMEANONYMECAPITALETPERSONNELVARIABLES'=>0, // 9 + 'SCOPARESPONSABILITELIMITEEETACAPITALVARIABLE'=>0, // 7 + 'SARLCONSEILDADMINISTRATION'=>0, // 7 + 'SCCVENTE'=>0, // 12 + 'SOCITDINVESTISSEMENTSCAPITALVARIABLEETCONSEILDESURVEILLANCE'=>0, // 8 + 'UNIONDECONOMIESOCIALESTECOOPERATIVEANONYME'=>0, // 7 + 'SACOOPRATIVECAPITALVARIABLEDIRECTOIRE'=>0, // 7 + 'SCCCON'=>0, // 7 + 'SOCITANONYMECOOPCAPITALVARIABLEDIRECTETCONSEILDESURVEILLANCE'=>0, // 7 + 'SOCITCIVILEDEPARTICIPATIONOUVRIRECAPITALVARIABLE'=>0, // 7 + 'SARLASOCIUNIQUE'=>0, // 9 + 'SCDEPERSONNESCAPITALVARIABLE'=>0, // 8 + 'SOCITCIVILEDINTRTCOLLECTIFAGRICOLE'=>0, // 7 + 'PF'=>0, // 9 + 'SCPROFESIONNELLE'=>0, // 7 + 'SCAYANTPOUROBJETLACONSTRUCTIONDIMMEUBLES'=>0, // 8 + 'SOCITCIVILEDEPORTEFEUILLESCAPITALVARIABLE'=>0, // 7 + 'SOCITRESPONSABILITLIMITECAPITALETPERSONNELVARIABLES'=>0, // 7 + 'SOCITCAPITALVARIABLE'=>0, // 6 + 'SOCITCIVILECOOPRATIVEDECRDITCAPITALVARIABLE'=>0, // 6 + 'ETABLISSEMENTPUBLICETRANGER'=>0, // 6 + 'STCIVCONSTRUCATTRIBUTION'=>0, // 6 + 'BACO'=>0, // 9 + 'SADINTRTCOLLECTIFAGRICOLECONSEILDADMINISTRATION'=>0, // 6 + 'SASENDISSOLUTION'=>0, // 6 + 'SOCIETECOOPERATIVEDINTERETCOLLECTIFAGRICOLEARESPONSABILIT'=>0, // 6 + 'STECOOPERATIVEAGRICOLE'=>0, // 6 + 'SACOOPRATIVEDEPRODUCTIONDHABITATIONSLOYERMODRETCAPITALVARIABLE'=>0, // 6 + 'SOCIETEANONYMECOOPERATIVEDENTREPRISESACAPITALVARIABLE'=>0, // 6 + 'SADIRECTOIREETACONSEILDESURVEILLANCE'=>0, // 6 + 'RUEDUMARCHALJOFFRE'=>0, // 6 + 'SELU'=>0, // 7 + 'STPARTFINDEPROFLIBRALES'=>0, // 6 + 'SACOOPRATIVEINTRTCOLLECTIFPOURLACCESSIONPROPRIT'=>0, // 6 + 'CHEMINDUMOULINNEUF'=>0, // 6 + 'COOPRATIVECAPITALVARIABLERESPONSABILITLIMITE'=>0, // 6 + 'SNCENLIQUIDATION'=>5202, // 6 + 'SOCITDASSURANCEMUTUELLEVIECAPITAL'=>0, // 8 + 'SARLCOOPRATIVEOUVRIREDEPRODUCTIONETDECRDIT'=>0, // 6 + 'GROUPEMENTPASTORAL'=>0, // 6 + 'SOCIETEECONOMIEMIXTE'=>0, // 6 + 'SASPORTIVEPROFESSIONNELLECONSEILDADMINISTRATION'=>0, // 7 + 'SAL'=>0, // 10 + 'SADHLMDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 6 + 'SOCITENCOMMANDITEDEDROITTRANGER'=>0, // 6 + 'SADCONOMIEMIXTEDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 6 + 'ASSOCIUNIQUE'=>0, // 6 + 'SACPV'=>0, // 6 + 'SCCOOPRATIVEDECONSTRUCTIONPERSONNELETCAPITALVARIABLES'=>0, // 10 + 'SCPSOCITTITULAIREDOFFICENOTARIAL'=>0, // 8 + 'RGIEMUNICIPALE'=>0, // 6 + 'SARLAU'=>0, // 8 + 'STECOOPERATIVEAGRICOLEACAPITALVARIABLE'=>0, // 6 + 'SELARLDEXERCICELIBRE'=>0, // 6 + 'SOCITRESPONSABILITELIMITE'=>0, // 6 + 'SOCITDASSURANCE'=>0, // 6 + 'SOCIETEARESPONSABILITELIMITEEDINTERETCOLLECTIFAGRICOLE'=>0, // 6 + 'SOCITRESPONSABILITLIMITASSOCIUNIQUE'=>0, // 7 + 'SARLCONSTITUDUNASSOCIUNIQUE'=>0, // 6 + 'SOCIETEANONYMECOOPERATIVEDEPRODUCTION'=>0, // 6 + 'SOCITANONYMECOOPRATIVEDACHATENCOMMUNCAPITALETPERSONNELVARIABLES'=>0, // 6 + 'SOCITCIVILEDEDROITTRANGER'=>0, // 6 + 'SARLCOP'=>0, // 7 + 'COOPRATIVEOUVRIREDEPRODUCTIONFORMEANONYMECAPITALETPERSONNELVARIABLES'=>0, // 6 + 'SCPARTICIPATIONOUVRIRECAPITALVARIABLE'=>0, // 6 + 'SOCIETEPARACTIONSSIMPLIFIEESACAPITALVARIABLE'=>0, // 6 + 'SCF'=>0, // 6 + 'SOCITANONYMECONSEILDESURVEILLANCEETDIRECTOIRE'=>0, // 6 + 'SLA'=>0, // 6 + 'SASA'=>0, // 6 + 'SASSOCIETEPARACTIONSSIMPLIFIE'=>0, // 6 + 'SOCITCIVILEIMMOBILIRECONSTRUCTIONVENTE'=>0, // 6 + 'SOCITDECAUTIONMUTUELLECOOPRATIVE'=>0, // 6 + 'SCENLIQUIDATION'=>0, // 7 + 'COOPRATIVEARTISANALEDIRECTOIRE'=>0, // 6 + 'SOCITDECAUTIONMUTUELLELOIDUMARS'=>0, // 6 + 'SOCITECIVILECOOPRATIVEDECRDIT'=>0, // 6 + 'SOCITCIVILEIMMOBILIREFAMILIALE'=>0, // 6 + 'SOCITENCOMMANDITEPARACTION'=>0, // 6 + 'TETINDUSTRIE'=>0, // 6 + 'SOCIETEENCOMMANDITESIMPLEACAPITALVARIABLE'=>0, // 6 + 'SELR'=>0, // 6 + 'ENTUNIPERSONARESPLIMITEE'=>0, // 6 + 'STEDEDROITTRANGER'=>0, // 6 + 'SCDEXPLOITATIONOSTRICOLE'=>0, // 6 + 'TABLISSEMENTDECRDITCOOPRATIFETMUTUALISTE'=>0, // 6 + 'SACOOPERATIVEDECOMMERCANTSDETAILLANTSACAPITALVARIABLE'=>0, // 6 + 'SELEUARL'=>0, // 6 + 'SOCITANONYMEDECONSOMMATIONCAPITALVARIABLEDIRECTOIRE'=>0, // 6 + 'SG'=>0, // 6 + 'SOCITDEXERCICELIBRALDAVOCATSFORMEANONYME'=>0, // 6 + 'SOCITPARACTIONSSIMPLIFIES'=>0, // 6 + 'SADEDROITTRANGER'=>0, // 6 + 'SCPROFESSIONNELLEDINFIRMIRES'=>0, // 6 + 'SOCITCOOPRATIVEAGRICOLELAITIRE'=>0, // 6 + 'SCPDEMASSEURSKINSITHRAPEUTES'=>0, // 8 + 'SOCITANONYMESOCITDHABITATIONDELOYERMODR'=>0, // 5 + 'SARLRESPONSABILITLIMITE'=>0, // 6 + 'SARLCOOPRATIVEDEPRODUCTION'=>0, // 5 + 'SADEDROITSUISSE'=>0, // 5 + 'SE'=>0, // 5 + 'USRL'=>0, // 7 + 'SOCITANONYMECOOPRATIVEDEPRODUCTIONDHLMCONSEILDADMINISTRATION'=>0, // 9 + 'SCENDISSOLUTION'=>0, // 5 + 'SARLEL'=>0, // 5 + 'SKOPACV'=>0, // 5 + 'CREDITMARITIMEACAPITALVARIABLES'=>0, // 5 + 'SOCITDINVESTISSEMENTCAPITALVARIABLEDACTIONNARIATSALARIS'=>0, // 5 + 'SOCITCOOPRATIVEDETRAVAILLEURSFORMESARL'=>0, // 5 + 'SADIRECTOIRECONSEILDORIENTATIONETDESURVEILLANCE'=>0, // 6 + 'BANQUECOOPERATIVEREGIEPARLALOINDUJUIN'=>0, // 5 + 'SICAFANONYMECONSEIL'=>0, // 5 + 'STECOOPERATIVEOUVRIEREDEPRODUCTIONARESPONSABILITELIMITEE'=>0, // 5 + 'STEXLIBRALRESPONSABILITLIMITE'=>0, // 5 + 'SOCITCOOPRATIVEDECONSOMMATIONCAPITALETPERSONNELVARIABLES'=>0, // 5 + 'GP'=>0, // 5 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFAGRICOLEFORMESACAPITALVARIABLE'=>0, // 5 + 'SCOPETDECRDITRESPONSABILITLIMITE'=>0, // 5 + 'STECOOPERATIVEDINTERETCOLLECTIFARLACAPITALVARIABLE'=>0, // 5 + 'APM'=>0, // 5 + 'SOCITCIVILECOOPRATIVEENTREMDECINS'=>0, // 5 + 'SCPROFESSIONNELLEDECOMMISSAIRESAUXCOMPTES'=>0, // 5 + 'SOCITCIVILEPROFESSIONNELLEDARCHITECTURE'=>0, // 5 + 'SOCITDROITTRANGER'=>0, // 5 + 'SCPROFESSIONNELLEDAVOCATSAUXCONSEILS'=>0, // 5 + 'COOPRATIVEARTISANALEENSARL'=>0, // 5 + 'SLAS'=>0, // 5 + 'SARLASSOCIUNIQUEUNIPERSONNELLE'=>0, // 6 + 'SOCITCIVILEDEXPLOITATIONAGRICOLEETVITICOLE'=>0, // 5 + 'SELARLACAPITALVARIABLE'=>0, // 5 + 'BANQUECOOPRATIVEDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 5 + 'COOPRATIVEOUVRIREDEPRODUCTIONANOMYNECAPITALETPERSONNELVARIABLE'=>0, // 5 + 'PERSONNEPHYSIQUE'=>0, // 5 + 'SACAPITALFIXECOOPRATIVEDEBANQUE'=>0, // 9 + 'SOCITANONYMECOOPRATIVEDINTRTCOLLECTIFDEHLM'=>0, // 5 + 'SOCITCOOPRATIVEAGRICOLECAPITALETPERSONNELVARIABLES'=>0, // 5 + 'SCOOP'=>0, // 9 + 'SOCITCOOPRATIVEDETRAVAILLEURSFORMEANONYME'=>0, // 5 + 'RARLASSOCIUNIQUE'=>0, // 9 + 'SCOPRESPONSABILITETCAPITALVARIABLE'=>0, // 5 + 'COMITDENTREPRISE'=>0, // 5 + 'SOCITCIVILEPROFESSIONNELLEDEDIRECTEURSDELABORATOIRES'=>0, // 5 + 'SELUNIPERSONNELLE'=>0, // 5 + 'SCPDEXPLOITATIONAGRICOLE'=>0, // 5 + 'SCPDHUISSIERS'=>0, // 5 + 'SOCITDETITRISATIONSOUSFORMEDESOCITANONYME'=>0, // 5 + 'SAKCV'=>0, // 5 + 'SACOOPRATIVEDENTREPRISECAPITALVARIABLE'=>0, // 5 + 'SCPROFESSIONNELLEDEDIRECTEURSDELABORATOIRES'=>0, // 5 + 'ASSOCIATIONRGIESELONLALOIDUERJUILLET'=>9220, // 5 + 'SARLDEDROITTRANGER'=>0, // 5 + 'STEDEXERCICELIBERALRESPONSABILITELIMITEE'=>0, // 5 + 'STEPARACTIONSSIMPLIFIEE'=>0, // 5 + 'CHEMINDESVERNESZONEINDUSTRIELLE'=>0, // 5 + 'ASSOCIATIONDEDROITLOCALSANSBUTLUCRATIF'=>9220, // 5 + 'SICARESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 7 + 'SOCITCOOPRATIVEANONYEDINTRTCOLECTIFAGRICOLEETCAPITALVARIABLE'=>0, // 5 + 'SACOOPRATIVEDETRAVAILLEURS'=>0, // 5 + 'SCPTITULAIREDOFFICENOTARIAL'=>0, // 5 + 'SARLDEDROITALLEMAND'=>0, // 5 + 'STCOOPDECRDITCAPITALVARIABLEETRESPONSABILITSTATUTAIREMENTLIMITE'=>0, // 5 + 'SACICAPSACOOPINTRTCOLLPOURACCESSIONLAPROPRIT'=>0, // 5 + 'EURLRESPONSABILITLIMITE'=>0, // 5 + 'SOCIETECOOPERATIVEMARITIMEARESPONSABILITELIMITEEACAPITAL'=>0, // 5 + 'SARLRDUITEUNASSOCIUNIQUE'=>0, // 5 + 'SACOOPRATIVEINTRETCOLLECTIFACCESSIONLAPROPRIT'=>0, // 5 + 'SCAC'=>0, // 6 + 'SCDECOOPRATIVEAGRICOLE'=>0, // 5 + 'SOCITPARACTIONSSIMPLIFIEPLURIPERSONNELLE'=>0, // 5 + 'SOCITCIVILEAGRICOLECOOPRATIVE'=>0, // 5 + 'SOCITCOOPRATIVEDEPRODUCTIONRESPONSABILITETCAPITALVARIABLE'=>0, // 5 + 'SOCITCIVILEDEGESTIONDEBIENSIMMOBILIERS'=>0, // 5 + 'SADCS'=>0, // 6 + 'SARO'=>0, // 5 + 'SOCIETEANONYMEDEXPERTISECOMPTABLE'=>0, // 5 + 'SARLCOOPRATIVEDETRANSPORT'=>0, // 5 + 'SCCA'=>0, // 10 + 'REPRSENTATIONCOMMERCIALEDTABLISSEMENTPUBLICTRANGER'=>0, // 5 + 'SACOOPRATIVECAPITALVARIABLEETDIRECTOIRE'=>0, // 6 + 'SOCITCIVILEIMMOBILRE'=>0, // 5 + 'NONINSCRIT'=>0, // 5 + 'SOCITCOOPRATIVEDETRAVAILLEURS'=>0, // 9 + 'SOCITCOOPRATIVEIC'=>0, // 5 + 'SICASOUSFORMEDESOCITANONYME'=>0, // 5 + 'SCAYANTPOUROBJETLACONSTRUCTIONDIMMEUBLESVENTE'=>0, // 7 + 'COOPERATIVEARESPONSABILITELIMITEEACAPITALVARIABLE'=>0, // 5 + 'SCPROFESSIONNELLEASSOCIUNIQUE'=>0, // 5 + 'SCICAA'=>0, // 5 + 'SALRL'=>0, // 5 + 'SAANONYMEACONSEILDADMINISTRATION'=>0, // 5 + 'SOCIETECOOPERATIVEARTISANALEARESPONSABILITELIMITEEETACAP'=>0, // 5 + 'CM'=>0, // 5 + 'STECIVILECAPITALRIABLE'=>0, // 5 + 'SACS'=>0, // 6 + 'SOCITRESPONSABILITLIMITEDEPRESSEASSOCIUNIQUE'=>0, // 5 + 'SRLCOP'=>0, // 5 + 'SCPROFESSIONNELLEDARCHITECTURE'=>0, // 5 + 'SCAL'=>0, // 5 + 'UNIONDECOOPRATIVESCAPITALVARIABLE'=>0, // 4 + 'SOCITAGRICOLESAUFCOOPR'=>0, // 4 + 'SOCITANONYMECOOPRATIVEDECONSOMMATION'=>0, // 4 + 'SOCITDEPARTICIPATIONSFINANCIRESDEPROFESSIONLIBRALEPARACTIONSSIMPLIFIE'=>0, // 4 + 'SARLNONMEMBREDELACEE'=>0, // 5 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFRESPONSABILITLIMITECAPITALVARIABLE'=>0, // 4 + 'SCPOANONYME'=>0, // 4 + 'COMITDTABLISSEMENT'=>0, // 4 + 'SOCITAGRICOLESAUFCOOPRATIVE'=>0, // 4 + 'SELPARACTIONSSIMPLIFIE'=>0, // 4 + 'SOCITDINTRTCOLLECTIFAGRICOLECOOPRATIVE'=>0, // 4 + 'CICV'=>0, // 5 + 'SACM'=>0, // 8 + 'STDEXLIBRALRESPLIMITE'=>0, // 4 + 'SOCITRESPONSABILITLIMITEUNIPERSONNELLECAPITALVARIABLE'=>0, // 4 + 'CHEZMMEFERRIERARLETTE'=>0, // 4 + 'SOCITANONYMEDHLMCONSEIL'=>0, // 4 + 'SARLCOOPRATIVEDECRDITCAPITALVARIABLEETRESPONSABILITSTATUTAIREMENTLIMITE'=>0, // 4 + 'SICACOOPRATIVEANONYMECAPITALVARIABLE'=>0, // 4 + 'SACOOPRATIVEDECOMMERANTDTAILLANTS'=>0, // 4 + 'SELPARACTIONSSIMPLIFIES'=>0, // 4 + 'RLV'=>0, // 4 + 'SOCITCOOPRATIVEDUTILISATIONDEMATRIELAGRICOLEENCOMMUN'=>0, // 4 + 'SOCITCOOPRATIVEAGRICOLECAPITALVARIALE'=>0, // 4 + 'SOCITDEDROITESPAGNOL'=>0, // 4 + 'EARLENLIQUIDATION'=>0, // 4 + 'SARLSOCITENLIQUIDATIONAMIABLE'=>0, // 8 + 'EPCIC'=>0, // 5 + 'SOCITDECAUTIONMUTUELLECAPITALVARIABLE'=>0, // 4 + 'SARLCOOPERATIVEOUVRIEREDEPRODUCTIONETDECREDIT'=>0, // 4 + 'SOCITCIVILEDECONSTRUCTIONETDATTRIBUTION'=>0, // 4 + 'SCASSOCIUNIQUEETCAPITALVARIABLE'=>0, // 6 + 'SARLDINTRTCOLLECTIFETAGRICOLECAPITALVARIABLE'=>0, // 4 + 'SCO'=>0, // 4 + 'SOCITPARACTIONSSIMPLIFIE'=>0, // 5 + 'SEARLASSOCIUNIQUE'=>0, // 4 + 'SKOP'=>0, // 4 + 'SOCITCOMMANDITESIMPLE'=>0, // 4 + 'SOCITANONYMEDINTRTCOLLECTIFAGRICOLECONSEILDADMINIS'=>0, // 4 + 'SCCAPITALETPERSONNELVARIABLES'=>0, // 4 + 'UDC'=>0, // 4 + 'SRLELI'=>0, // 4 + 'SOCITCOOPRATIVEARTISANALERESPLIMITEETCAPVARIABLE'=>0, // 4 + 'SOCITRESPONSABILITLIMITEPLURIPERSONNELLE'=>0, // 4 + 'SAEMLOCALEDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 4 + 'SARLCOOP'=>0, // 4 + 'ENTREPRISEUNIPERSONNELLEARLDEXERCICELIBERAL'=>0, // 4 + 'SOCIETEANONYMEDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 4 + 'SPFRL'=>0, // 4 + 'SCPROFESSIONNELLEDAVOCATFORMECOOPRATIVE'=>0, // 4 + 'NN'=>0, // 4 + 'UCACAPITALVARIABLE'=>0, // 4 + 'VILLEDE'=>0, // 4 + 'UNIONDESSOCITSCOOPRATIVESAGRICOLESCAPITALETPERSONNELVARIABLE'=>0, // 4 + 'RUEVICTORHUGO'=>0, // 5 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFAGRICOLEFORMECIVILEAUCAPITALVARIABLE'=>0, // 4 + 'SARLASSOCIUNIQUEDEXERCICELIBRAL'=>0, // 4 + 'SOCITANONYMEMEMBREDELUE'=>0, // 4 + 'SOCITANONYMEDIRECTOIREETCONSEILDORIENTATIONETSURVEILLANCE'=>0, // 4 + 'COOPRATIVEARTISANALEFORMEANONYME'=>0, // 4 + 'SACOOPRATIVECONSEILDADMINISTRATION'=>0, // 4 + 'ANOCOOPDACHATENCOMMUNACAPITALETPERSONNELVARIABLES'=>0, // 4 + 'EUREX'=>0, // 4 + 'ANA'=>0, // 4 + 'SELARLUE'=>0, // 4 + 'SOCIETEDEXERCICELIBERALENCOMMANDITEPARACTIONSSELCA'=>0, // 4 + 'SAEMDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 4 + 'GROUPEMENTINTERETECONOMIQUE'=>0, // 4 + 'SCPROFESSIONNEL'=>0, // 4 + 'SCE'=>0, // 7 + 'CABI'=>0, // 4 + 'SARLCAPITALVARIABE'=>0, // 4 + 'QUARTIERLESCONDAMINES'=>0, // 4 + 'SOCITCIVILEIMMOBILIREDELOCATION'=>0, // 4 + 'SARLAVECASSOCIEUNIQUE'=>0, // 4 + 'COOPRATIVEDECONSOMMATIONANONYME'=>0, // 4 + 'SELFORMEANONYME'=>0, // 4 + 'SADCONOMIEMIXTEDIRECTOIRE'=>0, // 4 + 'SACOOPRATIVEOUVRIREDEPRODUCTIONCAPITALVARIABLE'=>0, // 4 + 'SCAGRICOLECAPITALVARIABLE'=>0, // 4 + 'FONDATION'=>0, // 4 + 'SOCITCIVILEDEXPLOITATIONOSTRICOLE'=>0, // 4 + 'SELRESPONSABILITLIMITE'=>0, // 4 + 'STDEPARTICIPATIONSFINANCIRESDEPROFLIBRALEDAVOCATSSOUSFORMEDESAS'=>0, // 4 + 'SARLCAPITALETPERSONNELVARIABLE'=>0, // 5 + 'COOPERATIVEDEPRODUCTIONARLACAPITALVARIABLE'=>0, // 4 + 'COOPERATIVEOUVRIEREDEPRODUCTIONANONYMEACAPITALETPERSONNE'=>0, // 4 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTIONSOUSFORMESARLCAPITALVARIABLE'=>0, // 4 + 'SRAL'=>0, // 4 + 'SOCITDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 4 + 'SADCONOMIEMIXTECONSEIL'=>0, // 4 + 'SCOPACAPITALVARIABLE'=>0, // 4 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFAGRICOLESICA'=>0, // 4 + 'SOCITDEPLACEMENTCOLLECTIFIMMOBILIER'=>0, // 4 + 'SASCONSEILDADMINISTRATION'=>0, // 4 + 'SOCITDEPARTICIPATIONFINANCIREDEPROFLIBRALEDAVOCATSSOUSFORMEDESAS'=>0, // 4 + 'NP'=>0, // 4 + 'UNIONDESSOCITSCOOPRATIVESAGRICOLES'=>0, // 4 + 'SCPACV'=>0, // 6 + 'ORGANISMEMUTUALISTE'=>0, // 4 + 'SACOOPACAPITALVARIABLEADIRECTCONSEILDESURVEILLANCE'=>0, // 4 + 'SCIA'=>0, // 5 + 'SOCITCOOPRATIVEDECONSTRUCTION'=>0, // 4 + 'AUTRESOCITRESPONSABILITLIMITE'=>0, // 4 + 'SCDINTRTCOLLECTIFAGRICOLECAPITALVARIABLE'=>0, // 4 + 'SCCOOPRATIVEDECONSOMMATION'=>0, // 4 + 'ASSOCIATON'=>9220, // 4 + 'UNIONDECOOPRATIVESMARITIMESANONYMECAPITALVARIABLE'=>0, // 4 + 'SAPR'=>0, // 4 + 'SME'=>0, // 4 + 'SACOOPRATIVEDECONSOMMATIONCONSEILDADMINISTRATIONCAPITALVARIABLE'=>0, // 4 + 'RUEDUGNRALDEGAULLE'=>0, // 4 + 'URL'=>0, // 4 + 'SCPROFESSIONNELLECAPITALVARIABLE'=>0, // 4 + 'UNIONDESOCITSCOOPRATIVESFORMEANONYMEDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 4 + 'SOCITDASSURANCEMUTUELLEVIE'=>0, // 4 + 'SACC'=>0, // 4 + 'BANQUECOOPRATIVERGIEPARLALOINDU'=>0, // 5 + 'COMAC'=>0, // 4 + 'SOCITRESPONSABILITLIMITESOCITUNIQUE'=>0, // 4 + 'SOCITANONYMESPORTIVEPROFESSIONNELLEDIRECTOIREETCONSEIL'=>0, // 4 + 'LV'=>0, // 4 + 'SCOV'=>0, // 4 + 'SACONSEILDADMINSITRATION'=>0, // 4 + 'SOCITDEXERCICELIBRALPARACTIONSSIMPLIFIES'=>0, // 4 + 'SOCITCIVILEIMMOBILIREAGRICOLE'=>0, // 4 + 'SACONOMIEMIXTE'=>0, // 4 + 'STEANONYMECOOPERATIVEACAPITALVARIABLE'=>0, // 4 + 'AVENUEDUMARCHALFOCH'=>0, // 4 + 'RLU'=>0, // 4 + 'SOCITDEDROITBELGE'=>0, // 4 + 'SADIRECCONSEILDESURVEIL'=>0, // 4 + 'SOCITANONYMECOOPRATIVEDEPRODUCTIONDHLMCONSEIL'=>0, // 4 + 'SACONSEILDADMINISTRATIONDHLM'=>0, // 5 + 'SOCITDEDROITBRITANNIQUE'=>0, // 4 + 'SAMONGASQUE'=>0, // 4 + 'SCOPSARLACAPITALVARIABLE'=>0, // 4 + 'SRLAAU'=>0, // 4 + 'SASD'=>0, // 9 + 'SARCL'=>0, // 4 + 'SICAANONYMEDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 4 + 'CENTREDAFFAIREEUROCARABESRUEFRBAULT'=>0, // 4 + 'SKPRL'=>0, // 5 + 'RLCV'=>0, // 4 + 'UNIONECONSOCSARLCAPITALVARIABLE'=>0, // 4 + 'GAF'=>0, // 4 + 'SOCITRESPONSABILITLIMITEASSOCIUNIQUEASSOCIUNIQUE'=>0, // 7 + 'UNIONDECOOPRATIVESLAITIRES'=>0, // 4 + 'SOCITCOOPRATIVECAPITALETPERSONNELVARIABLESCOOPRATIVE'=>0, // 5 + 'SCKC'=>0, // 4 + 'SCIMMOBILIREDECONSTRUCTIONVENTE'=>0, // 5 + 'SOCIETEDINTERETCOLLECTIFAGRICOLESOUSFORMEDESAS'=>0, // 4 + 'CRDITMUTUELCOOPRATIVE'=>0, // 4 + 'SAEC'=>0, // 4 + 'SARLE'=>0, // 5 + 'SAVCOOPRATIVEDEBANQUEPOPULAIRECAPITALVARIABLE'=>0, // 4 + 'SASCAPITALVARIABLEETASSOCIUNIQUE'=>0, // 5 + 'SASUNIPERSONNELLECAPITALVARIABLE'=>0, // 3 + 'STECOOPERATIVERESPLIMITEE'=>0, // 3 + 'UNIONDECRDITMARITIMEMUTUEL'=>0, // 3 + 'EL'=>0, // 3 + 'SCDINTRTCOLLECTIFAGRICOLE'=>0, // 3 + 'EURLCV'=>0, // 3 + 'STECOOPERATIVEDEPRODUCTIONANONYMEACAPITALVARIABLE'=>0, // 3 + 'SOCITCOOPRATIVEDEPRODUCTIONFORMEANONYMEETCAPITALVARIABLE'=>0, // 4 + 'SCCACAPITALVARIABLE'=>0, // 3 + 'SCSCAPITALVARIABLE'=>0, // 3 + 'SCCPV'=>0, // 3 + 'SOCIETECOOPERATIVEDEPRODUCTIONANONYME'=>0, // 3 + 'SACOOPRATIVEOUVRIREDEPRODUCTIONETDECRDIT'=>0, // 3 + 'ETABLISSEMENTPUBLICETRGIE'=>0, // 3 + 'ASSOCIATIONRGIEPARLALOI'=>9220, // 3 + 'SASPDIRECTOIRE'=>0, // 3 + 'SELUARL'=>0, // 7 + 'SOCITREPONSABILITLIMITE'=>0, // 3 + 'SOCITANONYMYECONSEILDADMINISTRATIONDHLM'=>0, // 3 + 'SARLEURLACAPITALVARIABLE'=>0, // 3 + 'CUMAC'=>0, // 3 + 'CAISSEDERASSURANCESMUTUELLESAGRICOLES'=>0, // 3 + 'SCG'=>0, // 6 + 'SCOPRESPONSABILITLIMITEETCAPITALETPERSONNELVARIABLES'=>0, // 3 + 'PERSONNEMORALEAGENTCIAL'=>0, // 3 + 'SOCITCOOPRATIVEFORMEANONYME'=>0, // 3 + 'UKACV'=>0, // 5 + 'SARLCAPITALVARIABLEENDISSOLUTION'=>0, // 3 + 'SARLCOOPRATIVEDINTRTCOLLECTIFAGRICOLECAPITALVARIABLE'=>0, // 3 + 'LOTISSEMENTSODEGSECCAF'=>0, // 3 + 'SICARL'=>0, // 4 + 'SELARLASSCIUNIQUE'=>0, // 3 + 'SOCITCOOPRATIVERESPONSABILITLIMITETCAPITALVARIABLE'=>0, // 3 + 'SCEAPARTICULIRE'=>0, // 3 + 'CONFDRATION'=>0, // 3 + 'SOCITCIVILEDEPATRIMOINE'=>0, // 3 + 'SOCITCOOPRATIVEMARITIMECIVILECAPITALETPERSONNELVARIABLES'=>0, // 3 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFAGRICOLEANONYME'=>0, // 3 + 'SASCOOPRATIVECAPITALVARIABLE'=>0, // 3 + 'SOCITSIMPLIFIE'=>0, // 3 + 'SOCIETEARESPONSABILITELIMITEEAGRICOLEDEFAMILLE'=>0, // 3 + 'SOCITRESPONSABILITLIMITECOOPRATIVECAPITALETPERSONNELVARIABLES'=>0, // 4 + 'SOCIETEANONYMECOOPERATIVEDECOMMERCANTSDETAILLANTSACAPITALVARIABLE'=>0, // 3 + 'ASSOCIATIONDCLARE'=>9220, // 3 + 'SCPDHUISSIERSDEJUSTICE'=>0, // 3 + 'SARLCOOPRATIVEDECRDIT'=>0, // 3 + 'SOCITCOOPRATIVEDECRDITCAPITALVARIABLEETRESPONSABITLIMITE'=>0, // 3 + 'ASSSOCIATION'=>0, // 3 + 'SADECONOMIEMIXTELOCALE'=>0, // 3 + 'SOCITCIVILEDECONSTRUCTIONGESTION'=>0, // 3 + 'SACOOPRATIVEDHLMCAPITALVARIABLE'=>0, // 3 + 'SOCIETEANONYMEDHLMACONSEIL'=>0, // 3 + 'SCCOOPDECONSTRUCTIONPERSONNELETCAPITALVARIABLES'=>0, // 3 + 'UNIONCOOPERATIVEAGRICOLE'=>0, // 3 + 'SICADIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 3 + 'SOCITCIVILEPROFESSIONNELLEDEDIRECTEURSDELABORATOIRESDANALYSESMDICALES'=>0, // 3 + 'SCISOCITENLIQUIDATIONAMIABLE'=>0, // 3 + 'SCK'=>0, // 3 + 'SANATIONALISECONSEILDADMINISTRATION'=>0, // 3 + 'SOCITAGRICOLEDEFAMILLE'=>0, // 3 + 'SOCITCIVILECOOPRATIVEDECONSOMMATIONCAPITALVARIABLE'=>0, // 3 + 'SCPDINFIRMIERS'=>0, // 3 + 'SARLDECOOPRATIVECAPITALVARIABLE'=>0, // 3 + 'SOCITCIVILEASSOCIUNIQUE'=>0, // 5 + 'SOCITCOOPRATIVEDEBANQUEPOPULAIRECAPITALVARIABLE'=>0, // 3 + 'SCDEPATRIMOINE'=>0, // 3 + 'SCOPCAPITALETPERSONNELVARIABLES'=>0, // 3 + 'SOCITENCOMMANDITEPARACTIONSMEMBREDELACEE'=>0, // 3 + 'SCDEPRODUCTIONANONYMECAPITALVARIABLE'=>0, // 3 + 'SACOOPRATIVEDIRECTOIREETCONSEILDORIENTATIONETDESURVEILLANCE'=>0, // 3 + 'SOCITCOOPRATIVEARTISANALERESPONSABILITLIMITECAPITALVARIABLE'=>0, // 3 + 'SOCITANONYMECONSEILDADMINISTRATIONDHLM'=>0, // 3 + 'SOCIETEDEXERCICELIBERALENCOMMANDITEPARACTIONSSELACA'=>0, // 4 + 'SASUE'=>0, // 3 + 'SCOPFORMEANONYMEETCAPITALETPERSONNELVARIABLES'=>0, // 3 + 'STCOOPPRODUCARLCPVARIA'=>0, // 3 + 'SADIRECTOIREETCAPITALVARIABLE'=>0, // 3 + 'SCOPCONSEILDADMINISTRATION'=>0, // 5 + 'COOPRATIVEDECRDITCAPITALVARIABLERESPONSABILITSTATUTAIREMENTLIMITE'=>0, // 3 + 'SOCITDEXERCICELIBRALASSOCIUNIQUE'=>0, // 3 + 'SOCITCIVILEPATRIMONIALE'=>0, // 3 + 'SAPROFESSIONNELLE'=>0, // 3 + 'COOPRATIVEVINICOLE'=>0, // 3 + 'COOPERATIVEOUVRIEREDEPRODUCTIONSARL'=>0, // 3 + 'SARLDEPRESSEETCAPITALVARIABLE'=>0, // 3 + 'SACOOPRATIVEMARITIMECAPITALETPERSONNELVARIABLES'=>0, // 3 + 'SCCOOPRATIVEENTREMDECINS'=>0, // 3 + 'SAOUVRIRECOOPRATIVEPERSCAPITALVARIABLE'=>0, // 3 + 'SASI'=>0, // 4 + 'COOPRATIVEPROFESSIONNELLE'=>0, // 3 + 'UNIONDCONOMIESOCIALESASCOOPRATIVE'=>0, // 3 + 'SELARLDARCHITECTURE'=>0, // 3 + 'SOCITDINTRTCOLLECTIFAGRICOLECAPITALVARIABLE'=>0, // 3 + 'UNIONDCONOMIESOCIALESOCITCOOPRATIVERESPONSABILITL'=>0, // 3 + 'COOPERATIVECOMMERCIALEARLETACAPITALVARIABLE'=>0, // 3 + 'SAENLIQUIDATION'=>0, // 3 + 'STDEPARTICIPATIONSFINANCIRESDEPROFESSIONLIBRALEARL'=>0, // 3 + 'ATTR'=>0, // 3 + 'SEMDIRECTOIRE'=>0, // 3 + 'BQ'=>0, // 3 + 'SOCITCIVILECOOPRATIVEAGRICOLECOOPRATIVE'=>0, // 3 + 'SCPARL'=>0, // 4 + 'SCACCAPITALVARIABLE'=>0, // 3 + 'RGIE'=>0, // 3 + 'SOCITRESPONSABILITLIMITEASSOCIEUNIQUE'=>0, // 4 + 'SARLUNIPERSONNELLEASSOCIUNIQUE'=>0, // 4 + 'ENTREPRISENATIONALECARACTRECONOMIQUEDEDROITALGRIEN'=>0, // 3 + 'ENTREPRISEINDIVIDUELLE'=>0, // 3 + 'SASIMPLIFIE'=>0, // 3 + 'SELARLRESPONSABILITLIMITE'=>0, // 3 + 'SASPLURIPERSONNELLECAPITALVARIABLE'=>0, // 3 + 'SOCIETEDINTERETCOLLECTIFAGRICOLESICA'=>0, // 5 + 'STCOOPRATIVERESPONSABILITLIMITE'=>0, // 3 + 'COOPRATIVECAPITALVARIABLEETRESPONSABILIT'=>0, // 3 + 'SCAQUACOLE'=>0, // 3 + 'SOCITCOOPRATIVEDECONSOMMATION'=>0, // 3 + 'SARLDEPRESSECAPITALVARIABLE'=>0, // 3 + 'SOCITDEDROITNERLANDAIS'=>0, // 3 + 'ASSOCIATIONOUFONDATION'=>9220, // 3 + 'SOCITPROFESSIONNELLERGIEPARLALOIDUNOVEMBRE'=>0, // 3 + 'ARL'=>0, // 5 + 'SACOOPRATIVEETCAPITALVARIABLE'=>0, // 5 + 'COOPRATIVEDECRDITCAPITALVARIABLEETRESPONSABILITSTATUAIREMENTLIMITE'=>0, // 3 + 'SCIMMOBILIREAGRICOLE'=>0, // 3 + 'SOCIETECOOPERATIVEARESPLIMITEE'=>0, // 3 + 'SOCITDEPARTICIPATIONSFINANCIRESRESPONSABILITLIMITE'=>0, // 3 + 'SCFINANCIRE'=>0, // 3 + 'UCL'=>0, // 3 + 'SARLRESPONSABILITLIMITEASSOCIUNIQUE'=>0, // 3 + 'SCIDECONSTRUCTION'=>0, // 3 + 'SOCITCIVILEPROFESSIONNELLEDECOMMISSAIRESAUXCOMPTES'=>0, // 3 + 'SADEDROITBELGE'=>0, // 3 + 'SOCITRESPONSABILITLIMITESARL'=>0, // 3 + 'SACAPITALETPERSONNELVARIABLE'=>0, // 3 + 'SCDECONSTRUCTIONDIMMEUBLES'=>0, // 3 + 'BANQUECOOPERATIVEREGIEPARLALOINDU'=>0, // 3 + 'SARLASSOCIUNIQUEGM'=>0, // 3 + 'SKAC'=>0, // 3 + 'SOCITDEXPLOITATIONAGRICOLE'=>0, // 3 + 'ENTREPRISEAGRICOLERESPONSABILITLIMITE'=>0, // 3 + 'SCPROFESSIONNELLETITULAIREDUNOFFICENOTARIAL'=>0, // 3 + 'ELCA'=>0, // 3 + 'UNIONDECOOPRATIVESMARITIMESFORMEANONYME'=>0, // 3 + 'STECOOPERATIVEOUVRIEREDEPRODUCTION'=>0, // 3 + 'SOCITDPARGNE'=>0, // 3 + 'RUEDUMARS'=>0, // 3 + 'SCPARTICULIRESOCITENLIQUIDATION'=>0, // 3 + 'COOPRATIVECAPITALVARIABLE'=>0, // 3 + 'SARLASSOCIUNIQUESOCITENLIQUIDATIONAMIABLE'=>0, // 3 + 'UNIONDCONOMIESOCIALESOCITCOOPRATIVERESPONSABILITLIMITE'=>0, // 10 + 'SCOUVRIREDEPRODUCTION'=>0, // 3 + 'SICAFORMEANONYMEETCAPITALVARIABLE'=>0, // 3 + 'GROUPEMENTDINTRTPUBLIC'=>0, // 3 + 'ASSOCIATIONL'=>9220, // 5 + 'SCPROFESSIONNELLEDEGREFFIERSDETRIBUNAL'=>0, // 3 + 'SASDARCHITECTURE'=>0, // 3 + 'SCDE'=>0, // 3 + 'SARLL'=>0, // 4 + 'SADHLMCONSEILDADMINISTRATION'=>0, // 4 + 'SLURL'=>0, // 3 + 'UNIONDESOCITSCOOPRATIVESAGRICOLES'=>0, // 3 + 'EARLU'=>0, // 3 + 'CRPV'=>0, // 3 + 'PROFESSIONLIBRALE'=>0, // 3 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFAGRICOLEFORMEANONYME'=>0, // 3 + 'CUMAENCOMMUNCAPITALVARIABLE'=>0, // 3 + 'SCOPRESPONSABILITLIMITETCAPITALVARIABLE'=>0, // 5 + 'SARLUNIPERSONNEL'=>0, // 3 + 'SCPROFESSIONNELLEDECHIRURGIENDENTISTES'=>0, // 3 + 'FDRATIONRGIONALE'=>0, // 3 + 'SOCITCOOPRATIVEDEPRODUCTIONCAPITALVARIABLEETRESPONSABILITLIMITE'=>0, // 3 + 'SARLSTECOOPERATIVEOUVRIEREDEPRODUCTION'=>0, // 3 + 'SOCITDEXERCICELIBRALRESPONSABILITLIMITECAPVARASSOCIUNIQUE'=>0, // 3 + 'STEDEXERCICELIBERALPARACTIONSSIMPLIFIEE'=>0, // 3 + 'SACOOPRATIVEDINTRTCOLLECTIFAGRICOLECONSEILDADMICAPITALVARIABLE'=>0, // 3 + 'ASSOCIATIONRGIEPARLALOIDU'=>9220, // 3 + 'SCMSOCITENLIQUIDATION'=>0, // 5 + 'SADEPRESSE'=>0, // 3 + 'SACONSEILDADMINISTRATIONSOCITENLIQUIDATION'=>0, // 3 + 'SCDECONSTRUCTIONVENTESOCITENLIQUIDATION'=>0, // 3 + 'SOCITANONYMESPORTIVEPROFESSIONNELLECONSEILDADMINISTRATION'=>0, // 3 + 'SI'=>0, // 4 + 'SCFONCIRE'=>0, // 3 + 'COOPRATIVEOUVRIREDEPRODUCTIONRESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 5 + 'RR'=>0, // 3 + 'SASUNIQUE'=>0, // 3 + 'SCN'=>0, // 5 + 'SACOOPRATIVECAPITALVARIABLEETCONSEILDESURVEILLANCE'=>0, // 3 + 'ASSOCATION'=>0, // 3 + 'SARLASSSOCIUNIQUE'=>0, // 3 + 'SASPORTIVEPROFESSIONNELLEDIRECTOIREETCONSEIL'=>0, // 3 + 'SOCITPARACTIONSSIMPLIFIEDARCHITECTURE'=>0, // 3 + 'SACOOPRATIVEDINTRTCOLLECTIFPOURLACCESSIONLAPROPRIT'=>0, // 3 + 'SAU'=>0, // 3 + 'SCDECONSTRUCTIONVENTEETDEGESTION'=>0, // 3 + 'SOCITCOOPRAITVEDINTRTCOLLECTIFRESPONSABILITLIMITE'=>0, // 3 + 'SARLKCV'=>0, // 4 + 'RUEDUNOVEMBRE'=>0, // 4 + 'SARLDEXERCICELIBRALASSOCIUNIQUE'=>0, // 3 + 'SOCITCOOPRATIVEDINTRETCOLLECTIF'=>0, // 3 + 'SOCITANONYMECOOPRATIVEDECONSOMMATIONCONSEILDADMINISTRATION'=>0, // 3 + 'SOCIETEANONYMECOOPERATIVEMARITIMEACAPITALETPERSONNELVARI'=>0, // 3 + 'SCLAITIRE'=>0, // 3 + 'INSTITUTIONRGIEPARLESLOISDESAOTETDCEMBRE'=>0, // 2 + 'SADHABITATIONLOYERSMODRS'=>0, // 2 + 'SCPARLCAPITALVARIABLE'=>0, // 2 + 'SOCITCIVILEPROFESSIONNELLEDAVOCAT'=>0, // 2 + 'ASSOCIATIONS'=>9220, // 2 + 'FEU'=>0, // 2 + 'SADHABITATIONDELOYERMODR'=>0, // 2 + 'SCDEDROITCOMMUN'=>0, // 2 + 'SOCIETEDINVESTISSEMENTACAPITALVARIABLEDACTIONNARIATSALARIESSICAVAS'=>0, // 2 + 'SCDECOSNTRUCTIONVENTE'=>0, // 2 + 'UNIONDESSOCIETESCOOPERATIVESAGRICOLESACAPITALETPERSONNEL'=>0, // 2 + 'SOCITDEDROITDANOIS'=>0, // 2 + 'COOPRATIVEDECONSOMMATIONFORMEANONYMEETCAPITALVARIABLE'=>0, // 2 + 'SARLCOOPOUVRIREPRODUCTIONCRDIT'=>0, // 3 + 'SOCITCOOPRATIVERESPONSABILITLIMITCAPITALVARIABLE'=>0, // 2 + 'SADHLMCONSEIL'=>0, // 2 + 'DE'=>0, // 2 + 'STECOOPDEPRODUCTIONARESPONSABILITELIMITEE'=>0, // 2 + 'SCDECONSTRUCTIONVENTELOIDETITRE'=>0, // 3 + 'GIEC'=>0, // 2 + 'COP'=>0, // 3 + 'SCICARL'=>0, // 2 + 'SACOOPRATIVEINTRTCOLLECTIFDHLMDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 4 + 'PASCAL'=>0, // 2 + 'ADMINISTRATION'=>0, // 2 + 'SOCITDCONOMIEMIXTELOCALE'=>0, // 2 + 'SCEASOCITENLIQUIDATION'=>0, // 2 + 'SSARLASSOCIUNIQUE'=>0, // 3 + 'SARLLIMITEASSOCIUNIQUE'=>0, // 3 + 'SCAICAC'=>0, // 2 + 'SAROL'=>0, // 2 + 'COOPRATIVEOUVRIREDEPRODUCTIONCAPITALVARIABLE'=>0, // 2 + 'SARLARTISANALE'=>0, // 2 + 'SOCIETECOOPERATIVEOUVRIEREDEPRODUCTIONSARLACAPITALVARIABLE'=>0, // 2 + 'SNCSOCITENLIQUIDATION'=>5202, // 3 + 'SOCITPARACTIONSSIMPLIFIECAPITALVARIABLEASSOCIUNIQUE'=>0, // 2 + 'SOCITCOOPRATIVEAYANTLAFORMEDESOCITANONYME'=>0, // 2 + 'SCDEXPLOITATIONAGRICOLERESPONSABILITLIMITE'=>0, // 2 + 'STECOOPERATIVEDEPRODUCTIONANONYME'=>0, // 2 + 'ETSPUBLICINDETCIALEPIC'=>0, // 2 + 'SOCITANONYMECOOPRATIVE'=>0, // 2 + 'SCICARESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 2 + 'SADIRECTOIREETCONSEILDUSURVEILLANCE'=>0, // 2 + 'SARLASSOCIUNIQUEENLIQUIDATIONAMIABLE'=>0, // 4 + 'SOCITCCIVILE'=>0, // 2 + 'SELARLDEMDECINS'=>0, // 2 + 'EURLUNIPERSONNELLE'=>0, // 2 + 'SOCITCOOPRATIVEDEDROITBELGE'=>0, // 2 + 'SCPARTICIPATIONOUVRIREETCAPITALVARIABLE'=>0, // 2 + 'SCDECONSTRCUTIONVENTE'=>0, // 2 + 'SARLCOOPRATIVEDINTRTCOLLECTIFCAPITALVARIABLE'=>0, // 2 + 'SARLDEDROITHONGROIS'=>0, // 2 + 'SAELFORMEANONYMEDEGOMTRESEXPERTS'=>0, // 2 + 'DPARTEMENT'=>0, // 2 + 'COOPERATIVEARTISANALEACONSEIL'=>0, // 2 + 'SOCITDEXERCICELIBRALUNIPERSONNELLERESPONSABILITLIMITECAPVAR'=>0, // 2 + 'SELAL'=>0, // 3 + 'COOPAGRICOLEACAPITALVARIABLE'=>0, // 2 + 'SPRL'=>0, // 2 + 'COOPRATIVERESPONSABILITLIMITE'=>0, // 2 + 'SARLCOOPRATIVEDEPRODUCTIONETCAPITALVARIABLE'=>0, // 3 + 'ETABLISSEMENTPUBLICFONCIER'=>0, // 2 + 'INSTITUTIONRGIEPARLESARTICLESLETSUIVANTSDUCODEMONTAIREETFINANCIER'=>0, // 2 + 'SASDARCHITECTURECAPITALVARIABLE'=>0, // 2 + 'SOCITCIVILEPROFESSIONNELLEDEDENTISTES'=>0, // 2 + 'SOCITCOOPRATIVEFORMEANONYMEETCAPITALVARIABLE'=>0, // 4 + 'SASDIRECTOIRE'=>0, // 2 + 'ASSOCIATIONLOIDUERJUILLET'=>9220, // 2 + 'LOTISSEMENTSODEGSECTIONCAF'=>0, // 2 + 'SCDECHASSE'=>0, // 2 + 'SOCITANONYMEDEDROITSUISSE'=>0, // 2 + 'SARLPERSONNELETCAPITALVARIABLES'=>0, // 2 + 'SOCITCIVILEDECONSTRUCTIONDIMMEUBLES'=>0, // 2 + 'SACOOPRATIVEARTISANALEETCAPITALVARIABLE'=>0, // 3 + 'TABLISSEMENTPUBLICDOTDELAUTONOMIEFINANCIRE'=>0, // 2 + 'SCPROFESSIONNELLEDEGOMTRESEXPERTS'=>0, // 2 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFAGRICOLEANONYMECAPITALVARIABLE'=>0, // 2 + 'SABP'=>0, // 2 + 'SFA'=>0, // 2 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTIONCAPITALVARIABLE'=>0, // 2 + 'SCALAITIRE'=>0, // 2 + 'UNIONDCONOMIESOCIALESACAPITALVARIABLE'=>0, // 2 + 'SARLA'=>0, // 2 + 'SOCIETEANONYMEADIRECTOIRECONSEILDESURVEILLANCE'=>0, // 2 + 'EXPAGRICOLEARESPONSABILITELIMITEE'=>0, // 2 + 'SURL'=>0, // 2 + 'SACOOPRATIVEPERSONNELLECAPITALVARIABLE'=>0, // 2 + 'SOCITDESCARRIRESDEBEVENAIS'=>0, // 2 + 'EAURLASSOCIUNIQUE'=>0, // 2 + 'SOCITCOOPRATIVEDEPRODUCTIONANONYMEETCAPITALVARIABLE'=>0, // 2 + 'SOCITCOOPRATIVEDECRDITCAPITALVARIABLEARL'=>0, // 2 + 'SELARLDEPHARMACIENSDOFFICINE'=>0, // 2 + 'JOL'=>0, // 2 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFARLCAPITALVAR'=>0, // 2 + 'SADHABITATIONSLOYERMODR'=>0, // 2 + 'ASSOCIATIONSLOI'=>9220, // 2 + 'SCDEPRODUCTIONRESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 2 + 'FONDATIONRECONNUEDUTILITPUBLIQUESUIVANTDCRETDUMINISTREDELINTRIEURENDATEDEERAVRIL'=>0, // 2 + 'SCZ'=>0, // 2 + 'SCPR'=>0, // 2 + 'CAISSEDECRDITAGRICOLEMUTUEL'=>0, // 2 + 'SOCITPARACTIONSSIMPLIFI'=>0, // 2 + 'SACOOPRATIVEDINTRTCOLLECTIFAGRICOLECAPITALVARIABLE'=>0, // 2 + 'SICAVFORMEANONYME'=>0, // 2 + 'SARM'=>0, // 2 + 'SOE'=>0, // 2 + 'SARLDEDROITBRITANNIQUE'=>0, // 2 + 'COOPERATIVECONSOMMATIONARESPONSABILITELIMITEE'=>0, // 2 + 'SADIRECTOIRECONSEILDESURVEILLANCEETCAPITALVARIABLE'=>0, // 4 + 'SGCV'=>0, // 2 + 'SARLASSCOIUNIQUE'=>0, // 2 + 'SARLCAPITALVARIABLESOCITENDISSOLUTION'=>0, // 2 + 'COOPRATIVEANONYME'=>0, // 2 + 'SACOOPRATIVECAPITALETPERSONNELSVARIABLES'=>0, // 2 + 'SOCITDASSURANCECARACTREMUTUEL'=>0, // 2 + 'ENTREPRISEUNIPERSONNELLERESPONSABILITLIMITESARLASSOCIUNIQUE'=>0, // 2 + 'SOCITDEDROITANGLAISFAISANTAPPELPUBLICLPARGNEPUBLICLIMITEDCOMPANY'=>0, // 2 + 'EARLUNIPERSONNELLE'=>0, // 3 + 'SICACOOPRATIVE'=>0, // 2 + 'EURLCAPITALVARIABLE'=>0, // 2 + 'ASSOCIARION'=>9220, // 2 + 'SDI'=>0, // 2 + 'SOCITDEDROITMONEGASQUE'=>0, // 2 + 'SOCITCOOPRATIVEDEPRODUCTIONRESPONSABILITLIMITECAPITALETPERSONNELVARIABLES'=>0, // 2 + 'STEANONYMEADIRECTOIREETCONSEILDORIENTATIONSURVEILLANCE'=>0, // 2 + 'COOPERATIVEOUVRIEREDEPRODUCTIONSA'=>0, // 2 + 'SOCIETEANONYMECOOPERATIVEDEPRODUCTIONDHLMACONSEIL'=>0, // 2 + 'COOPERATIVEDUTILISATIONDEMATERIELAGRICOLECUMA'=>0, // 2 + 'CUMAENCOMMUNETCAPITALVARIABLE'=>0, // 2 + 'STEANONYMEACONSEILDESURVEILLANCEETDIRECTOIRE'=>0, // 2 + 'SOCITDEPARTICIPATIONSFINANCIRERESPONSABILITLIMITE'=>0, // 2 + 'SOCITCOOPRATIVEANONYMEDINTRTCOLLECTIFAGRICOLECOOPRATIVE'=>0, // 2 + 'SARLDECOOPRATIVE'=>0, // 2 + 'SCPROFESSIONNELLEDAVOCATSFORMECOOPRATIVE'=>0, // 2 + 'SOCIETECOOPERATIVEARTISANALEARESPONSABILITELIMITEEACAPITA'=>0, // 2 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFAGRICOLEPARACTIONSSIMPLIFIES'=>0, // 2 + 'SOCITPARACTIONMEMBREDELUE'=>0, // 2 + 'SCICRESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 2 + 'SARLASSOCIUNIQUESARL'=>0, // 4 + 'SADECONSTRUCTIONVENTE'=>0, // 3 + 'SOCITANONYMEPARRESPONSABILITLIMITE'=>0, // 2 + 'SARLPLURIPERSONNEL'=>0, // 2 + 'SOCITDEXERCICELIBRALPARACTIONSSIMPLIFIECAPITALVARIABLE'=>0, // 2 + 'ENTREPRISEUNIPERSONNELLERESPONSABILITLIMITEETASSOCIUNIQUE'=>0, // 3 + 'SOCITENPARTICIPATIONDEXERCICECONJOINT'=>0, // 2 + 'SOCITDEDROITAMRICAIN'=>0, // 2 + 'SOCITCOOPRATIVEDETRAVAILLEURSANONYMES'=>0, // 2 + 'SELARLASSOCIUNIQIUE'=>0, // 2 + 'SCPDECOMMISSAIRESPRISEURS'=>0, // 3 + 'TABLISSEMENTPUBLICNATIONALCARACTREINDUSTRIELETCOMMERCIAL'=>0, // 2 + 'SOCIETECOOPERATIVECREDITCAPITALVARIABLEARL'=>0, // 2 + 'UNIONDECONOMIESOCIALESAADIRECTOIREETCONSEILDESURVEIL'=>0, // 2 + 'SCCOOPRATIVEPERSONNELETCAPITALVARIABLE'=>0, // 3 + 'ORGANISMEPROFESSIONNEL'=>0, // 2 + 'UNIONDCONOMIESOCIALESARLCOOPRATIVECAPITALVARIABLE'=>0, // 2 + 'SOCITCIVILEDECONSTRUCTIONVENTELOIDETITRE'=>0, // 2 + 'SICACIVILE'=>0, // 2 + 'SOCIETECOOPERATIVEDEPRODUCTIONSARL'=>0, // 2 + 'SANATIONALEDCONOMIEMIXTE'=>0, // 2 + 'SOCIETEPARACTIONSSIMPLIFIEESUNIPERSONNELLE'=>0, // 2 + 'SASDIRECTIONETCONSEILDESURVEILLANCE'=>0, // 2 + 'SDET'=>0, // 2 + 'SAKCPV'=>0, // 2 + 'SARLSSOCIUNIQUE'=>0, // 2 + 'SADHLMETCONSEIL'=>0, // 2 + 'BANQUECOOPRATIVESADIRECTOIREETCONSEILDESURVEILLANCEDNOMMCONSEILDORIENTATIONETD'=>0, // 2 + 'SARLDEDROITESPAGNOL'=>0, // 2 + 'SCPDEMDECINS'=>0, // 2 + 'SOCITDINVESTISSEMENTSCAPITALVARIABLEETCONSEILDADMINISTRATION'=>0, // 3 + 'S'=>0, // 3 + 'SAMEMBREDELEU'=>0, // 2 + 'SARLCOOPRATIVECAPITALETPERSONNELVARIABLES'=>0, // 2 + 'SCCOOPRATIVEPERSONNELVARIABLE'=>0, // 2 + 'SASASSOCIUNIQUEETCAPITALVARIABLE'=>0, // 2 + 'SACOOPOUVRIEREDEPRODUCTIONCAPITALETPERSONNELVARIABLES'=>0, // 2 + 'UNIONDECONOMIESOCIALESTECOOPERATIVEPARACTIONSSIMPLIFIEE'=>0, // 2 + 'STECOOPINTERETCOLLECTAGRIC'=>0, // 2 + 'SCDEDROITTRANGER'=>0, // 2 + 'COOPDEPRODUCTIONARESPONSABILITELIMITECAPITALVARIABLE'=>0, // 2 + 'CAISSEREGIONALE'=>0, // 2 + 'SCOPFORMEANONYMEPERSONNELETCAPITALVARIABLES'=>0, // 4 + 'SARLCOOPERATIVEDECONSOMMATION'=>0, // 2 + 'SOCIETECOOPERATIVEAGRICOLEACAPITALCARIABLE'=>0, // 2 + 'SOCITCOOPRATIVEDECRDITRESPONSABILITSTATUTAIREMENT'=>0, // 2 + 'SOCITDEXERCICELIBRALPARACTIONSSIMPLIFI'=>0, // 2 + 'SACOOPRATIVEDECOMMERANTSDTAILLANTSETCAPITALVARIABLE'=>0, // 2 + 'SADCONOMIQUEMIXTELOCALE'=>0, // 2 + 'A'=>0, // 3 + 'SOCITDEDROITTANGER'=>0, // 2 + 'BANQUEPOPULAIRE'=>0, // 2 + 'CRDITMUTUELCOOPRATIVEETCAPITALVARIABLE'=>0, // 2 + 'SOCITDEDROITSUISSE'=>0, // 2 + 'SCDECONSTRUCTIONETDATTRIBUTION'=>0, // 2 + 'SCAYANTLAFORMEDESA'=>0, // 2 + 'SACOOPRATIVEDINTRTCOLLECTIFAGRICOLE'=>0, // 2 + 'SCOPRESPONSABILITLIMITEETDECRDITCAPITALVARIABLE'=>0, // 2 + 'SOCITDEDROITITALIEN'=>0, // 2 + 'SOCITDEPARTICIPATIONFINANCIREDEPROFESSIONLIBRALEDAVOCAT'=>0, // 2 + 'SICASARL'=>0, // 3 + 'SARLUK'=>0, // 2 + 'SCDECONSTRUCIONVENTE'=>0, // 3 + 'SAMEMBREDELAUE'=>0, // 2 + 'SOCITCOPRATIVEMARITIME'=>0, // 2 + 'RUEDUVIEUXMARCHAUXVINS'=>0, // 2 + 'SOCITANONYMEDECONSOMMATIONCONSEILDADMINISTRATION'=>0, // 2 + 'SARLCAPITALVARIABLESOCITENLIQUIDATION'=>0, // 2 + 'GIENONCOMMERCIAL'=>0, // 2 + 'SYNDICATDECOPROPRITAIRES'=>0, // 2 + 'SOCITDINTRETCOLLECTIFAGRICOLE'=>0, // 2 + 'GIEENLIQUIDATION'=>0, // 3 + 'UNIONDESYNDICATS'=>0, // 2 + 'SOCITCIVILEDETUDESETDERECHERCHES'=>0, // 2 + 'JACQUES'=>0, // 2 + 'SYNDICATAGRICOLE'=>0, // 2 + 'COOPRATIVEFORMEANONYMEETCAPITALVARIABLE'=>0, // 3 + 'SASOCITENLIQUIDATION'=>0, // 2 + 'SOCITDEDROITHOLLANDAISRESPONSABILITLIMITE'=>0, // 2 + 'SOCITCOOPRATIVEDEPRODUCTIONANONYMECAPITALVARIABLECOOPRATIVE'=>0, // 2 + 'SARLCCAPITALVARIABLE'=>0, // 2 + 'UCOA'=>0, // 3 + 'SOCIETECIVILEDEPLACEMENTCOLLECTIFIMMOBILIERACAPITALVARIABLE'=>0, // 2 + 'ASOCIATION'=>0, // 2 + 'SARLUNIPESONNELLE'=>0, // 2 + 'SADECOOPRATIVE'=>0, // 2 + 'SARLDEXERCICELIBREASSOCIUNIQUE'=>0, // 2 + 'SOCITDEDROITTRANGERDROITBRITANNIQUE'=>0, // 2 + 'SOCITCOOPRATIVEMARITIMERESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 3 + 'CRDITAGRICOLEMUTUEL'=>0, // 2 + 'SELAR'=>0, // 4 + 'SARRL'=>0, // 3 + 'SOCITENNONCOLLECTIF'=>0, // 2 + 'SCIEA'=>0, // 2 + 'SADCONOINEMIXTELOCALE'=>0, // 2 + 'SCOPARL'=>0, // 3 + 'SASCONSEILDESURVEILLANCE'=>0, // 2 + 'SCOPRESPONSABILITLIMITECAPITALETPERSONNELVARIABLES'=>0, // 2 + 'STECOOPERATIVEDINTERETCOLLECTIFARESPONSABILITELIMITEEACAPITALVARIABLE'=>0, // 2 + 'NONDFINIE'=>0, // 2 + 'SOCITCIVILEIMMOBILIREDEMARCHANDDEBIENS'=>0, // 2 + 'SOCIETEDEXERCICELIBERALARESPONSABILITELIMITE'=>0, // 2 + 'SACOOPRATIVEDEBANQUESCAPITALFIXE'=>0, // 2 + 'SADEDROITFRANAIS'=>0, // 2 + 'SADIRECTOIREETCONSEILDESURVEILANCE'=>0, // 3 + 'SCMPERSONNELETCAPITALVARIABLES'=>0, // 2 + 'EARLDEXERCICELIBRE'=>0, // 2 + 'SELARLDEXERCICELIBRAL'=>0, // 2 + 'GROUPEMENTFORESTIERRURAL'=>0, // 2 + 'SCOPDHLMANONYME'=>0, // 2 + 'SARLKA'=>0, // 3 + 'SOCITOUVRIREDEPRODUCTIONRESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 2 + 'SCCCCOOPRATIVE'=>0, // 2 + 'SCARESPONSABILITLIMITE'=>0, // 2 + 'PHILIPPE'=>0, // 2 + 'SARLASSOCIUNIQUESOCITTRANGRE'=>0, // 2 + 'SARLV'=>0, // 2 + 'ENTREPRISEUNIPERSONNELLEARESPONSABILITELIMITEEEURLETACAPITALVARIABLE'=>0, // 2 + 'SASZU'=>0, // 2 + 'SCPHLM'=>0, // 2 + 'SOCITDEPRESSERESPONSABILITLIMITECAPITALVARIABLE'=>0, // 2 + 'SACOOPRATIVEOUVRIREDEPRODUCTIONCAPITALETPERSONNELVARIABLES'=>0, // 2 + 'SOCITCIVILEPROFESSIONNELLEDAVOCATFORMECOOPRATIVE'=>0, // 2 + 'CA'=>0, // 2 + 'ASSOCIATIONLOIETASSIMILS'=>9220, // 2 + 'SOCITRESPONSABILITLIMITDEDROITMONGASQUE'=>0, // 2 + 'SOCITDEDROITETRANGERASSOCIUNIQUE'=>0, // 3 + 'SELASUNIPERSONNELLE'=>0, // 2 + 'SOCITCOOPRATIVEDINTRTAGRICOLE'=>0, // 2 + 'SARLASSOCIUNIQUESOCITENDISSOLUTION'=>0, // 2 + 'COOPRATIVEANONYMECAPITALVARIABLE'=>0, // 2 + 'SICAANONYMECAPITALVARIABLE'=>0, // 2 + 'INSTITUTIONRGIEPARLALOIDUAOT'=>0, // 2 + 'MAIRIE'=>0, // 2 + 'ARLASSOCIUNIQUE'=>0, // 2 + 'SADIRECTOIREAMPCSURVEILLANCE'=>0, // 2 + 'SAE'=>0, // 2 + 'SCOPFORMEANONYMECAPITALVARIABLE'=>0, // 2 + 'LEGRANDBLEU'=>0, // 2 + 'SAM'=>0, // 2 + 'SARLASSOCIUNIQUEL'=>0, // 2 + 'SOCITCOOPRATIVEPERSONNELETCAPITALVARIABLES'=>0, // 2 + 'STECOOPERATIVEDINTERETCOLLECTIFAGRICOLESICA'=>0, // 2 + 'SARLUNIPERSONNELLESPORTIVE'=>0, // 2 + 'SANONMEMBREDELAUE'=>0, // 2 + 'SCPROFESSSIONNELLE'=>0, // 2 + 'SCPDAVOUS'=>0, // 2 + 'SCPTITULAIREDUNOFFICEDEGREFFIERDETRIBUNALDECOMMERCE'=>0, // 3 + 'COMMUNAUTURBAINE'=>0, // 2 + 'SCICONSTRUCTIONVENTE'=>0, // 3 + 'SOCITCOOPRATIVEDEDROITSUISSE'=>0, // 2 + 'SELARLINTERBARREAUX'=>0, // 2 + 'ASSLOI'=>0, // 2 + 'SARLCOOPER'=>0, // 2 + 'SCPDARCHITECTES'=>0, // 2 + 'CSDECONSTRUCTIONVENTE'=>0, // 2 + 'SCDECONSTRUTIONVENTE'=>0, // 2 + 'SYNDICATINTERCOMMUNAL'=>0, // 2 + 'MICHEL'=>0, // 2 + 'SOCITDEDROITSTRANGERS'=>0, // 2 + 'GAECGROUPEMENTAGRICOLEDEXPLOITATIONENCOMMUN'=>0, // 2 + 'STEDECAUTIONMUTUELLELOIDUMARS'=>0, // 2 + 'RUEDEVELOTTE'=>0, // 2 + 'COOPRATIVEOUVRIREDEPRODUCTIONANONYME'=>0, // 2 + 'COOPRATIVEDECONSOMMATIONFORMEANONYME'=>0, // 2 + 'SOCITCIVILECOOPRATIVEDECRDITETCAPITALVARIABLE'=>0, // 2 + 'SOCITDINTRETCOLLECTIFAGRICOLEARL'=>0, // 2 + 'SCMV'=>0, // 2 + 'SCPROFESSIONNELLEDECHIRURGIENDENTISTE'=>0, // 2 + 'SOCITMUTUELLE'=>0, // 2 + 'SADCONOMIEMIXTELOCALEDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 2 + 'SARLUNIPERSONNELLECAPITALVARIABLE'=>0, // 2 + 'SOCITDEDROITPOLONAIS'=>0, // 2 + 'SOCITDINVESTISSEMENTSCONSEILETCAPITALVARIABLE'=>0, // 2 + 'SCOPDHLMCAPITALVARIABLE'=>0, // 2 + 'SENC'=>0, // 2 + 'ERAL'=>0, // 2 + 'SACOOPRATIVEDINTCOLLECTIFDACCESSIONALAPROPRIT'=>0, // 2 + 'SASUETCAPITALVARIABLE'=>0, // 2 + 'DOMINIQUE'=>0, // 2 + 'SCCOOPRATIVEDECONSOMMATIONCAPITALVARIABLE'=>0, // 2 + 'SOCITDEPLACEMENTPRPONDRANCEIMMOBILIRECAPVARIA'=>0, // 2 + 'STEANONYMEADIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 2 + 'COLA'=>0, // 2 + 'ETABLISSEMENTPUBLICADMINISTRATIFCOMMUNAL'=>0, // 2 + 'SREA'=>0, // 2 + 'SNCENDISSOLUTION'=>5202, // 3 + 'SCDEGESTIONDEBIENSIMMOBILIERS'=>0, // 2 + 'SCDECONSTUCTIONVENTE'=>0, // 2 + 'SCOPSACAPITALVARIABLE'=>0, // 2 + 'SOCITDEXERCICELIBRALFORMEANONYMESELEFACONSEILDADMINISTRATION'=>0, // 2 + 'SASOCITDHABITATIONDELOYERMODR'=>0, // 2 + 'BOULEVARDBERTHELOT'=>0, // 2 + 'CPVA'=>0, // 2 + 'CAISSE'=>0, // 2 + 'SERLARL'=>0, // 2 + 'CT'=>0, // 2 + 'STEDINTERETCOLAGRICOLESOUSFORMEDESARL'=>0, // 2 + 'SCDEGESTIONDEPORTEFEUILLES'=>0, // 2 + 'SAKS'=>0, // 2 + 'SOCITCIVILEAGRICOLECAPITALVARIABLE'=>0, // 2 + 'SOCIETECOOPERATIVEOUVRIEREDEPRODUCTIONSARL'=>0, // 2 + 'SOCITRESPONSABILITLIMITECOOPRATIVEARTISANALE'=>0, // 2 + 'SARLENDISSOLUTIONANTICIPE'=>0, // 1 + 'SANONMEMBREDELACE'=>0, // 1 + 'COMMUNAUTDECOMMUNES'=>0, // 1 + 'BERNARD'=>0, // 1 + 'SADHABITATIONLOYERMODRETCONSEIL'=>0, // 1 + 'EURLSARLCESSIONSDEPARTSSOCIALES'=>0, // 1 + 'SOCITAANONYME'=>0, // 1 + 'SACOOPRATIVEDEPRODUCTIONDEHLMDIRECTOIREETCONSEILDESURVEILLANCECAPITALVARIABLE'=>0, // 1 + 'SCPDEMANDATAIRESJUDICIAIRESLALIQUIDATIONDESENTREPRISES'=>0, // 1 + 'SICFA'=>0, // 1 + 'SARLASSOCUNIQUE'=>0, // 1 + 'SARLDEDROITANGLAIS'=>0, // 1 + 'SICAVETCONSEILDESURVEILLANCE'=>0, // 1 + 'SSARLASSOCIUNIQUEETCAPITALVARIABLE'=>0, // 1 + 'SOCITCOOPTATIVEAGRICOLE'=>0, // 1 + 'SOCITCIVILEDATTRIBUTIONDIMMEUBLESENJOUISSANCE'=>0, // 1 + 'SARLASSCIUNIQUE'=>0, // 2 + 'SCEXPLOITATIONAGRICOLE'=>0, // 1 + 'SAEMCA'=>0, // 1 + 'AFFAIREPERSONNELLEPROFESSIONLIBRALE'=>0, // 1 + 'CLCM'=>0, // 1 + 'SOCITDEDROITTRANGERCARYCHAMBERSPALKSTREETTORKAYROYAUMEUNI'=>0, // 1 + 'SARLASSOCIUNIQUEENTREPRISEUNIPERSONNELLERESPONSABILITLIMITE'=>0, // 1 + 'ENTREPRISEDINSERTIONIDEF'=>0, // 1 + 'SEC'=>0, // 1 + 'INTERCOMTLCOMCLOTLCOMINTERCOMDIFFUSION'=>0, // 1 + 'STPHANE'=>0, // 1 + 'SCIMMOBILIRE'=>0, // 1 + 'SOCITRESPONSABILITLIMITESSOCIUNIQUE'=>0, // 1 + 'SCDEGESTIONDEPATRIMOINE'=>0, // 1 + 'UNIONDESOCITCOOPRATIVESFORMEANONYMEDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 1 + 'SOCITCOOPRATIVEDEPRODUCTIONRESPONSABILITLIMITEECAPITALVARIABLE'=>0, // 1 + 'SOCITCIVILEDECONSTRUCITONVENTE'=>0, // 1 + 'ANDRES'=>0, // 1 + 'ETRUEGEORGESPAILLOT'=>0, // 1 + 'SARLACTIVITAUTORISEJUSQUAU'=>0, // 1 + 'SELEURLASSOCIUNIQUE'=>0, // 1 + 'SCDECONSTRUCTIONVENTECAPITALVARIABLE'=>0, // 1 + 'MARIELOUISE'=>0, // 1 + 'SCOPCAPITALETPERSONNELVARIABLE'=>0, // 1 + 'UNIONDCONOMIESOCIALESOCITCOOPRATIVEPARACTIONSSIMPLIFIE'=>0, // 1 + 'CUMACCOOPRATIVE'=>0, // 1 + 'COOPRATIVEARTISANALERESPONSABLITLIMITEETCAPITALVARIABLE'=>0, // 1 + 'SCPDAVOCATSCAUCHONCOURCELLELEFOURRIQUETMARTINS'=>0, // 1 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTIONETDECRDIT'=>0, // 1 + 'SARLAASSOCIERUNIQUE'=>0, // 1 + 'SACICAP'=>0, // 2 + 'GLOBALPHONE'=>0, // 1 + 'NONRENSEIGN'=>0, // 1 + 'SOCITCOOPRATIVEAGRICOLECAPITALVARIABLECOOPRATIVE'=>0, // 1 + 'GROUPEMENT'=>0, // 1 + 'SAA'=>0, // 1 + 'SOCITANONYMEPERSONNELVARIABLE'=>0, // 1 + 'SOCITENPARTICIPATIONENTREPERSONNESPHYSIQUES'=>0, // 1 + 'SARLUNIPERSONNELLERESPONSABILITLIMITE'=>0, // 1 + 'SCPACAPITALVARIABLE'=>0, // 2 + 'SOCITCOOPRATIVECAPITALVARIABLEETRESPONSABILITLIMITESARLCOOPRATIVEDETRANSPOR'=>0, // 1 + 'SCPARTICULIREAGRICOLEETARBORICOLE'=>0, // 1 + 'CCM'=>0, // 1 + 'LTD'=>0, // 1 + 'SR'=>0, // 1 + 'SOCITIMMOBILIREDECONSTRUCTIONVENTE'=>0, // 1 + 'SCANONYMEDINTRTCOLLECTIFAGRICOLE'=>0, // 1 + 'COOPERATIVEAGRICOLEFRUITIERE'=>0, // 1 + 'SOCITRESPONSABILITCOOPRATIVE'=>0, // 1 + 'STEDEPARTICIPATIONFINANCIEREDEPROFLIBERALEDAVOCATSSSFORMEDESAS'=>0, // 1 + 'STECOOPERATIVEDINTERETCOLLECTIFAGRICOLEANONYME'=>0, // 1 + 'SOCITANONYMECONSEILDADMNISTRATION'=>0, // 1 + 'SOCITCIVILECOOPRATIVECAPITALETPERSONNELVARIABLES'=>0, // 1 + 'SISA'=>0, // 1 + 'SARLASSOCIUNQUIE'=>0, // 1 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTIONRESPONSABILITLIMITECAPITALVARIABLE'=>0, // 1 + 'SCPDECOMMISSAIRESAUXCOMPTES'=>0, // 1 + 'SOCITDEDROITIRLANDAIS'=>0, // 1 + 'SACOOPRATIVEDEPRODUCTIONDHLMCONSEILDADMINISTRATIONETCAPITALVARIABLE'=>0, // 1 + 'SOCITCOOPRATIVEDECONSOMMATIONFORMEANONYMEETCAPITAL'=>0, // 1 + 'EARLENLIQUIDATIONAMIABLE'=>0, // 1 + 'SOCITCOOPRATIVEOUVRIRERESPONSABILITLIMITECAPITALVARIABLE'=>0, // 1 + 'SOCITDEXERCICELIBRALRESPONSABILITLIMITEASSOCIUNIQUEETCAPITALVARIABLE'=>0, // 1 + 'SICAANONYMEDIRECTOIRECAPITALVARIABLE'=>0, // 1 + 'STEANONYMEACONSEILDADMINISTRATION'=>0, // 1 + 'JBM'=>0, // 1 + 'SCPROFESSIONNELLEDEDENTISTES'=>0, // 1 + 'SOCIETECIVILEDINTERETCOLLECTIFAGRICOLESICA'=>0, // 2 + 'SRLARL'=>0, // 1 + 'LALONGINE'=>0, // 1 + 'SOCITASSOCIUNIQUE'=>0, // 1 + 'SCOOPPERSONNELVARIABLE'=>0, // 1 + 'SELARLDECHIRURGIENSDENTISTES'=>0, // 2 + 'SCPLACEMENTIMMOBILIER'=>0, // 1 + 'SSCDECONSTRUCTIONVENTE'=>0, // 1 + 'COMPAGNIERESPONSABILITDEDROITMAURICIEN'=>0, // 1 + 'SOCITRESPONSABILITLIMITEETSARLDEDROITALLEMAND'=>0, // 1 + 'UNIONDESOCITSCOOPRATIVESAGRICOLESCAPITALETPERSONNELVARIABLES'=>0, // 1 + 'SACCOOPRATIVE'=>0, // 1 + 'SOCITCOOPRATIVEFORMEANONYMEDINTRTCOLLECTIFAGRICOLE'=>0, // 1 + 'RGIEPUBLICITAIRE'=>0, // 1 + 'SCPATRIMONIALECAPITALVARIABLE'=>0, // 1 + 'SARLVENTEENGROSAUDTAILETIMPORTEXPORTDECHAUSSURESCOMMERCIALISATIONPARTOUSMOYENSD'=>0, // 1 + 'SCPROFESSIONNELDAVOCATS'=>0, // 1 + 'SARLRDUITEUNASSOCI'=>0, // 1 + 'INSTITUTIONRGIEPARLESARTICLESLETSUIVANTSDUCODEMONTAIRE'=>0, // 1 + 'SCOPARESPONSABILITLIMITEETCAPITAVARIABLE'=>0, // 1 + 'SCCMCAPITALVARIABLE'=>0, // 1 + 'SBASTIENDENIS'=>0, // 1 + 'BANQUECOOPRATIVESADIRECTOIREETCONSEILDESURVEILLANCEDNOMMECONSEILDORIENTATIONETDE'=>0, // 1 + 'SOCUTCOOPRATIVEAGRICOLE'=>0, // 1 + 'WILLY'=>0, // 1 + 'SOCITARESPONSABIITLIMITE'=>0, // 1 + 'SCCVDECONSTRUCTIONVENTE'=>0, // 1 + 'CABINET'=>0, // 1 + 'COOPRATIVEDINTRTCOLLECTIFRESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 1 + 'AVENUEDUGNRALDEGAULLE'=>0, // 1 + 'STESOMERSETHOUSETEMPLESTREETBIRMINGHAMBDN'=>0, // 1 + 'GAECASSOCIUNIQUE'=>0, // 1 + 'SOCITDEXERCICELIBRALPASACTIONSSIMPLIFIE'=>0, // 1 + 'NOUVELLESOCITRESPONSABILITLIMITERDUITEUNASSOCIUNIQUE'=>0, // 1 + 'GIEASSOCIUNIQUE'=>0, // 1 + 'STECIVILEDEXPLOITATIONAGRICOLEETVITICOLE'=>0, // 1 + 'SOCITCOOPRATIVEANONYMEDINTRTCOLLECTIFAGRICOLEETCAPITALVARIABLE'=>0, // 1 + 'SOCITEUROSRESPONSABILITLIMITE'=>0, // 1 + 'SOCITRESPONSABILITLIMITEASSOCIATIONUNIQUE'=>0, // 1 + 'STCOOPRATIVEDINTRTCOLLECTIFARLCAPITALVARIABLE'=>0, // 1 + 'SARLOUVRIREDEPRODUTIONCAPITALVARIABLE'=>0, // 1 + 'SAELLOCALE'=>0, // 1 + 'SADIRECTOIREETCONSEILDESURVEILLANCEASSOCIUNIQUE'=>0, // 1 + 'ENTREPRISEUNIPERSONNELLERESPONSABILIT'=>0, // 1 + 'SARI'=>0, // 1 + 'SARLASSOCIUNIPERSONNEL'=>0, // 1 + 'DIVERS'=>0, // 1 + 'SOCITDEXERCICELIBRALPARACTIONSSIMPLIFIS'=>0, // 1 + 'CPAVSCOP'=>0, // 1 + 'AMAR'=>0, // 1 + 'SRLERL'=>0, // 1 + 'CCPV'=>0, // 1 + 'EVDEUROVINSDISTRIBUTION'=>0, // 1 + 'SASCOOPRATIVEDINTERTCOLLECTIFAGRICOLE'=>0, // 1 + 'SOCITDEDROITTRANGERSOCITRESPONSABILITLIMITEASSOCIUNIQUE'=>0, // 1 + 'SOCITDINVESTISSEMENTCAPITALVARIABLEETCONSEILDADMINISTRATION'=>0, // 1 + 'SICP'=>0, // 1 + 'EDGARD'=>0, // 1 + 'UNIONDCONOMIESOCIALESOCITCOOPRATIVEANONYME'=>0, // 1 + 'SOCITANONYMEDECONOMIEMMIXTE'=>0, // 1 + 'SOCIETECOOPERATIVEDINTERETCOLLECTIFARESPONSABILITESLIMITEEETACAPITALVARIABLE'=>0, // 1 + 'SACONSEILDADMINISTRATIONETDIRECTOIRE'=>0, // 1 + 'IFD'=>0, // 1 + 'COOPERATIVEANONYMEACAPITALETPERSONNELVARIABLES'=>0, // 1 + 'STCOOPINTCOLLARLCAPITVA'=>0, // 1 + 'SOCITENCOMMANDITE'=>0, // 1 + 'SMSG'=>0, // 1 + 'EXPLOITATIONAGRICOLE'=>0, // 1 + 'COLLECTIVETERRITORIALE'=>0, // 1 + 'SCCVJS'=>0, // 1 + 'SCOPCAPITALVARIABLEETRESPONSABILITLIMITE'=>0, // 1 + 'SCGROUPEMENTFORESTIER'=>0, // 1 + 'SOCITUNIPERSONNELLEDINVESTISSEMENTRISQUE'=>0, // 1 + 'SACOOPRATIVEDINTRTSCOLLECTIFRESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 1 + 'SOCITCIVILEPROFESSIONNELLEDEMANDATAIRESJUDICIAIRESLALIQUIDATIONDESENTREPRISES'=>0, // 1 + 'SOCITCOOPATIVEARTISANALE'=>0, // 1 + 'VPI'=>0, // 1 + 'SOCITCOOPRATIVEDECRDITRESPONSABILITSTATUTAIREMENTLI'=>0, // 1 + 'SOCITCIVILEPARTICULIRERESPONSABILITLIMITE'=>0, // 1 + 'UNIONDEMUTUELLES'=>0, // 1 + 'GEA'=>0, // 1 + 'SCOPETRESPONSABILITLIMITECAPITALVARIABLE'=>0, // 1 + 'UNIONDECOOPRATIVECAPITALVARIABLE'=>0, // 1 + 'SICACOOPRATIVESAD'=>0, // 1 + 'EARA'=>0, // 1 + 'EURLENLIQUIDATION'=>0, // 1 + 'RUEDESAVERNE'=>0, // 1 + 'STECIVILEEXPLOITATIONAGRICOLEARESPONSABILITELIMITEE'=>0, // 1 + 'SOCITANONYMEETDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 1 + 'RUEMENGES'=>0, // 1 + 'STEPARACTIONSSIMPLIFIEEAVECCOMITESURVEILLANCE'=>0, // 1 + 'SOCITCOOPRATIVEDETRAVAILLEURSRESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 1 + 'SARLPERSONNELETCAPITALVARIABLE'=>0, // 1 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFAGRICOLERESPONSABILITLIMITECOOPRATIVE'=>0, // 2 + 'KTMULTISERVICES'=>0, // 1 + 'SCIDECONSTRUCTIONVENTEENLIQUIDATION'=>0, // 1 + 'COOPRATIVEAGRICOLEDLEVAGEETDINSMINATIONARTIFICIELLE'=>0, // 1 + 'SACIAP'=>0, // 1 + 'SADESOCITDHABITATIONLOYERMODR'=>0, // 1 + 'SOCITANONYMEDINTRTCOLLECTIFAGRICOLEDIRECTOIRE'=>0, // 1 + 'SADU'=>0, // 1 + 'KOPACPV'=>0, // 1 + 'SOCITCOOPRATIVECAPITALETPERSONNELVARIERGIEPARLIVREVCR'=>0, // 1 + 'SOCITCOOPRATIONDECRDITCAPITALVARIABLE'=>0, // 1 + 'SARLDEDROITNERLANDAIS'=>0, // 1 + 'SCPRLCAPITALVARIABLE'=>0, // 1 + 'PALKSTREETCARYCHAMBERSTORQUAYSOUTHDEVON'=>0, // 1 + 'SOCITDEPARTICIPATIONFINANCIREDEPROFLIBRALEDAVOCATSSOUSFORMESARL'=>0, // 1 + 'GEAC'=>0, // 2 + 'SCOOPRESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 1 + 'SCCOOPRATIVEDEMOYENS'=>0, // 1 + 'SOCITRESPONSABILITLIMITESARLDEFAMILLE'=>0, // 1 + 'SASUENDISSOLUTION'=>0, // 1 + 'SCIORANGE'=>0, // 1 + 'SADACS'=>0, // 1 + 'SOCITREDUITEUNAASSOCIUNIQUE'=>0, // 1 + 'SACOOPRATIVEDEPRODUCTIONDHLMCONSEILDESURVEILLANCEETDIRECTOIRECAPITALVARIABLE'=>0, // 2 + 'SOCITDEXERCICELIBRALRESPONSABILITLIMITEDEMDECINS'=>0, // 1 + 'COOPDEPRODUCTIONRESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 1 + 'FDRATIONDPARTEMENTALE'=>0, // 1 + 'EURLC'=>0, // 1 + 'SCCONSTITUEENVUEDELATTRIBUTIONDUNIMMEUBLE'=>0, // 1 + 'SCICCAPITALVARIABLE'=>0, // 1 + 'SCARESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 1 + 'SARLDEPRESSEASSOCIUNIQUE'=>0, // 1 + 'GROUPEMENTFORESTIERCAPITALVARIABLE'=>0, // 1 + 'SOCITUNIPERSONNELLERESPONSABILITLIMITEASSOCIUNIQUE'=>0, // 1 + 'SCSTENLIQUIDATION'=>0, // 1 + 'STCOOPRATIVEDEPRODUCTIONRESPLIMITECAPITALVARIABLE'=>0, // 1 + 'SOCITDCONOMIEMIXTESOCITEANONYMEDECONOMIEMIXTE'=>0, // 1 + 'SOCITCOOPRATIVECRDITCAPITALVARIABLERESPONSABILITLIMITE'=>0, // 1 + 'SCCOOPRATIVEDEMDECINS'=>0, // 1 + 'UNIONDECOOPRATIVESAGRICOLESCAPITALVARIABLEENDISSOLUTION'=>0, // 1 + 'SADECOOPRATIVEDECOMMERANTSDTAILLANTS'=>0, // 1 + 'SASUI'=>0, // 1 + 'RUEALPHONSEDAUDET'=>0, // 1 + 'GIF'=>0, // 1 + 'SARLVARIABLE'=>0, // 1 + 'EARLSOCITENLIQUITATION'=>0, // 1 + 'SCER'=>0, // 1 + 'SOCITCOOPRATIVEAGRICOLERGIONALEDAPPROVISIONNEMENT'=>0, // 1 + 'UARL'=>0, // 1 + 'SCDEBANQUE'=>0, // 1 + 'SCPASSOCIUNIQUE'=>0, // 1 + 'ASO'=>0, // 1 + 'SAIEMLOCALE'=>0, // 1 + 'SOCITCIVILEDEXPLOITATIONAGRICOLESCEA'=>0, // 1 + 'ZARL'=>0, // 1 + 'SOCITCIVILEDEGESTIONDEPATRIMOINE'=>0, // 1 + 'COOPRATIVEDUTILISATIONDEMATRIELAGRICOLEENCOMMUNCOOPRATIVE'=>0, // 2 + 'JEANLOUIS'=>0, // 1 + 'ATI'=>0, // 1 + 'SACCD'=>0, // 1 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFARLCAPITALVARIABLE'=>0, // 1 + 'SOCITRESPONSABILITLIMITESAS'=>0, // 1 + 'SCCAPITALVARIALBE'=>0, // 1 + 'SACAPITALETPERSONNELVARIABLECOOPRATIVE'=>0, // 2 + 'SASSIMPLIFIE'=>0, // 1 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTIONANONYMECAPITALVARIABLECOOPRATIVE'=>0, // 1 + 'TABLISSEMENTPUBLICDECOOPRATIONCULTURELLE'=>0, // 1 + 'SADEDROITNERLANDAIS'=>0, // 1 + 'BANQUECOOPRATIVESADIRECTOIREETCONSEILDESURVEILLANCEDNOMMCONSEILDORIENTATIONETDE'=>0, // 1 + 'STCOOPRATIVEDEPRODUCTION'=>0, // 1 + 'SADECOOPRATIVEDENTREPRISECAPITALVARIABLE'=>0, // 1 + 'SASSIMPLIFIEE'=>0, // 1 + 'SCEVPARTICULIRE'=>0, // 1 + 'SOCITDEXERCICELIBRALREPONSABILITLIMITE'=>0, // 1 + 'SSCAPITALVARIABLE'=>0, // 1 + 'SOCITCIVILEPROFESSIONNELLEASSOCIUNIQUE'=>0, // 1 + 'SACONSEIL'=>0, // 1 + 'SARLASSOCIUNIQUEETDEXERCICELIBRAL'=>0, // 1 + 'SARLUNIPERSONNELLEEURL'=>0, // 1 + 'SELARLASSOCUNIQUE'=>0, // 1 + 'CAISSEDERASSURANCEMUTUELLEAGRICOLE'=>0, // 1 + 'SCDECONSTRUCTIONVENTR'=>0, // 1 + 'SLCE'=>0, // 1 + 'SOCIETECOOPERATIVECREDITCAPITALVARIABLE'=>0, // 1 + 'SOCITCOOPRATIVEDEPRODUCTIONRESPONSABILITLIMITESCPRL'=>0, // 1 + 'SCPRESPONSABILITLIMITECAPITALVARIABLE'=>0, // 1 + 'MCMETAL'=>0, // 1 + 'RCSPOINTEPITRE'=>0, // 1 + 'ASSOCIATIONRELIGIEUSEETCULTURELLERGIESELONLALOIDE'=>9220, // 1 + 'GROUPEMENTFONCIERAGRICOLECAPITALVARIABLE'=>0, // 1 + 'ADS'=>0, // 1 + 'SOCITPARACTIONSSIMPLIFIEASSOCIEUNIQUE'=>0, // 1 + 'SSARL'=>0, // 1 + 'SCCONSTRUCTION'=>0, // 1 + 'SAENLIEUETPLACEDELASAS'=>0, // 1 + 'SCCR'=>0, // 1 + 'SADIRECTRICEETCONSEILDESURVEILLANCE'=>0, // 1 + 'STECIVILECOOPERATIVEAPERSONNELETKAPVARIABLE'=>0, // 1 + 'EDDINE'=>0, // 1 + 'EXPLOITATIONAGRICOLERESPONSABILITUNIPERSONNELLE'=>0, // 1 + 'SOCIETEPASACTIONSSIMPLIFIEEUNIPERSONNELLE'=>0, // 1 + 'SOCITANONYMECOOPRATIVEDECAUTIONMUTUELLE'=>0, // 1 + 'SKCICA'=>0, // 1 + 'SOCITCOOPRATIVEARTISANALERESPONSABILITELIMITE'=>0, // 1 + 'COOPRATIVEDECRDITCAPITALVARIABLEETARL'=>0, // 1 + 'RGIEMUNICIPALEAUTONOME'=>0, // 1 + 'SOCITCIVLE'=>0, // 1 + 'GICOBUTCOMMERCIAL'=>0, // 1 + 'SASF'=>0, // 1 + 'SRLU'=>0, // 1 + 'SCDHABITATION'=>0, // 1 + 'SOCITENDROITETRANGER'=>0, // 1 + 'SCIARIANE'=>0, // 1 + 'EUAR'=>0, // 2 + 'SARLDEFORMEUNIPERSONNELLE'=>0, // 1 + 'COOPRATIVEDEPRODUCTIONSARLCAPITALVARIABLE'=>0, // 1 + 'SCSOCITENDISSOLUTION'=>0, // 1 + 'SASRUEDUBARGY'=>0, // 1 + 'SARLASSOCIUNIQUELIMITE'=>0, // 1 + 'SOCITCIVILEDESMOYENS'=>0, // 1 + 'SOCITCOOPRATIVEMARITIMECAPITALVARIABLE'=>0, // 1 + 'ASR'=>0, // 1 + 'SARLASSOCIUNIQUEDARCHITECTURE'=>0, // 2 + 'CBA'=>0, // 1 + 'COOPRATIVEDUTILISATIONDEMATRIELAGRICOLECAPITALVARIABLE'=>0, // 1 + 'SCICFORMEANONYME'=>0, // 1 + 'EARLRDUITEUNASSOCI'=>0, // 1 + 'SACOOPRATIVECAPITALVARIABLEDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 1 + 'SOCITANONYMECOOPRATIVECOOPRATIVE'=>0, // 2 + 'SCCAC'=>0, // 1 + 'SCIDATTRIBUTIONETDACQUISITION'=>0, // 1 + 'SARLCAPITALLIBR'=>0, // 1 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFFORMEANONYMEETCAPITALVARIABLE'=>0, // 1 + 'SCIVILEAGRICOLE'=>0, // 1 + 'SECA'=>0, // 1 + 'FEUMONSIEUR'=>0, // 1 + 'SADIRECTOIREETCONSEILDORIENTATIONETSURVEILLANCE'=>0, // 1 + 'SAEMLOCALEBUTLUCRATIF'=>0, // 1 + 'SAP'=>0, // 1 + 'MAX'=>0, // 1 + 'SASDIRECTOIREETCONSEILDESURVEIVEILLANCE'=>0, // 1 + 'SACOOPRATIONDEPRODUCTIONDHLM'=>0, // 1 + 'SASACTIONNAIREUNIUQE'=>0, // 1 + 'LACHAPELLEDABONDANCE'=>0, // 1 + 'GIEGIEEUROPEN'=>0, // 1 + 'SAX'=>0, // 1 + 'EURLBRESSEORNEMENTS'=>0, // 1 + 'SCEALAITIRE'=>0, // 1 + 'SARLETSA'=>0, // 1 + 'PR'=>0, // 1 + 'SCPROFESSIONNELLEDADMINISTRATEURSJUDICIAIRES'=>0, // 1 + 'SOARL'=>0, // 1 + 'LESLIE'=>0, // 1 + 'ENTREPRISEUNIPERSONNELLERESPONSABILITLIMITE'=>0, // 1 + 'VRONIQUE'=>0, // 1 + 'SARA'=>0, // 1 + 'SARLDISSOLUTION'=>0, // 1 + 'SOCITRESPONSABILITLIMITERDUITEASSOCIUNIQUE'=>0, // 1 + 'BGRECUPTEMSAS'=>0, // 1 + 'SOCITDEPARGNEETDECRDITCAPITALVARIABLERESPONSABILITLIMITE'=>0, // 1 + 'SOCITCOOPRATIVERESPONABILITLIMITEETCAPITALVARIABLE'=>0, // 1 + 'EAR'=>0, // 1 + 'SCCL'=>0, // 1 + 'SACONSEILDESURVEILLANCETDIRECTOIRE'=>0, // 1 + 'SARLCAPITALVARIBLE'=>0, // 1 + 'SOCITRESPONSABILITLIMITENONMEMBREDELACEE'=>0, // 1 + 'SARLASSOCIUNIQUESARLUNIPERSONNELLE'=>0, // 1 + 'INSTITUTIONRGIEPARLESLOISETDU'=>0, // 1 + 'SACONSEILDADMINISTRTION'=>0, // 1 + 'DEUROS'=>0, // 2 + 'ARLMEMBREDELACEE'=>0, // 1 + 'ENTREPRISEUNIPERSONNELLERESPONSABILITLIMITEASSOCIUNIQUEUNIPERSONNELLE'=>0, // 1 + 'SARLASSOCIUNIQU'=>0, // 1 + 'SOCITCIVILECONSTITUEPOURLAVENTEDIMMEUBLES'=>0, // 1 + 'SCPARTICULIRECAPITALETPERSONNELVARIABLES'=>0, // 1 + 'COOPRATIVEAGRICOLEDESPRODUCTEURSDELARGIONPOITOUCENTREOUEST'=>0, // 1 + 'SARLASSICUUNIQUE'=>0, // 1 + 'SELARLUNIPERSONNEL'=>0, // 1 + 'SACAC'=>0, // 1 + 'SARLAGENCEDAFFAIRESETPLUSPARTICULIREMENTLAREPRSENTATIONETLENGOCEDETOUTESMARQUES'=>0, // 1 + 'SARLASSOCIUNIQUEDEPRESSE'=>0, // 1 + 'UNIONDESYNDICATSPROFESSIONNELSGROUPANTLESENTREPRISESINSCRITESAURPERTOIREDESMTIERSDANS'=>0, // 1 + 'GROUPEMENTFONCIERRURALCAPITALVARIABLE'=>0, // 1 + 'SOCITRRESPONSABILITLIMITEASSOCIUNIQUE'=>0, // 1 + 'SARLDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 1 + 'SACOOPRATIVEOUVERTEDEPRODUCTIONETDECRDIT'=>0, // 1 + 'SCIEEE'=>0, // 1 + 'SOCIETEPARACTIONSIMPLIFIEEUNIPERSONNELLE'=>0, // 1 + 'SARLMEMBREDELAUE'=>0, // 1 + 'LIE'=>0, // 1 + 'SOCITCIVILEDEPARTICIPATIONFINANCIREDEPROFESSIONLIBRALE'=>0, // 1 + 'SARLCONSTITUEDUNASSOCIEUNIQUE'=>0, // 1 + 'SOCITCOOPRATIVEDINTRETCOLLECTIFARLCAPITALVARIABLE'=>0, // 1 + 'SOCITCIVILEDINTRTCOLLECTIFAGRICOLECAPITALVARIABLE'=>0, // 1 + 'ASSOCIATIONPROFESSIONNELLEFDRATION'=>0, // 1 + 'SOCITCOOPRATIVEARTISANALERESPONSABILITLIMITECOOPRATIVE'=>0, // 1 + 'SCDEGESTIONDEPORTEFFEUILLE'=>0, // 1 + 'SACAPITALACTIONS'=>0, // 1 + 'SAIEM'=>0, // 1 + 'SOCITDINTRTCOLLECTIFAGRICOLECOOPRATIVESTCOOPRATIVEDINTRTCOLLECTIFAGRICOLEANONY'=>0, // 1 + 'SCDINTRTCOLLECTIFANONYME'=>0, // 1 + 'SASAVECCOMITSURVEILLANCE'=>0, // 1 + 'STECIVILECOOPDINTERETCOLLECTIFAGRICOLE'=>0, // 1 + 'SGABTPSARL'=>0, // 1 + 'SARLCAPITALVARIABLEASSOCIUNIQUE'=>0, // 1 + 'SELARLDEMDECINSRADIOLOGUES'=>0, // 1 + 'STEARESPONSABILITELIMITEEACAPITALVARIABLE'=>0, // 1 + 'SELARLDEGOMTRESEXPERTS'=>0, // 1 + 'SARLSOCITAASSOCIUNIQUE'=>0, // 1 + 'SOCITCIVILESCI'=>0, // 1 + 'CIE'=>0, // 1 + 'MABA'=>0, // 1 + 'SACOSACONSEILDADMINISTRATION'=>0, // 1 + 'EARLAVICOLE'=>0, // 1 + 'SCDECONSTRUCTIONVENRTE'=>0, // 1 + 'SARLDEXERCICELIBERAL'=>0, // 1 + 'SACOOPRATIVECONSEILDADMINISTRATIONETCAPITALVARIABLE'=>0, // 1 + 'SCDECONSTRUCTIONVENTELOIDETITREER'=>0, // 1 + 'SOCITDEPARTICIPATIONSFINANCIRESDEPROFESSIONLIBRALERESPONSABILIT'=>0, // 1 + 'SNCENCOURSDELIQUIDATION'=>5202, // 1 + 'SCPEA'=>0, // 2 + 'SCIPAROT'=>0, // 1 + 'SICASOUSFORMEDESAS'=>0, // 1 + 'SARLASOOCIUNIQUE'=>0, // 3 + 'SED'=>0, // 1 + 'SES'=>0, // 1 + 'SCIENCOURSDELIQUIDATION'=>0, // 1 + 'SOCITDEPARTICIPATIONFINANCIREDEPROFESSIONLIBRALEDAVOCATS'=>0, // 1 + 'SCOPREPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 1 + 'EARLPLURIPERSONNELLE'=>0, // 1 + 'SCPROFESSIONNELLEDELABORATOIREDANALYSESDEBIOLOGIEMDICALE'=>0, // 1 + 'SKCRL'=>0, // 1 + 'TABLISSEMENTPUBLICDECOOPRATIONINTERCOMMUNALE'=>0, // 1 + 'COOPRATIVEDECRDITCAPITALVARIABLEETRESPONSABILITLIMIT'=>0, // 1 + 'ABINFORMATIQUEDUCENTRE'=>0, // 1 + 'COMMERANT'=>0, // 1 + 'SOCITRDUITEUNASSOCIUNIQUE'=>0, // 1 + 'WOLFGANG'=>0, // 1 + 'SOCITRESPONSABILITLIMITERDUITEUNASSOCIUNIQUE'=>0, // 1 + 'SOCITCIVILEPARTICULIREDINVESTISSEMENT'=>0, // 1 + 'SARLMEMBREDUE'=>0, // 1 + 'MUTUALIT'=>0, // 1 + 'SOCITCAPITALETPERSONNELVARIABLES'=>0, // 1 + 'SALARL'=>0, // 2 + 'SOCITCIVILECOOPRATIVEDINTRTCOLLECTIFAGRICOLE'=>0, // 1 + 'SOCITDEDROITTRANGE'=>0, // 1 + 'SCDINTRTCOLLECTIFRESPONSABILITLIMITE'=>0, // 1 + 'HENRY'=>0, // 1 + 'COOPRATIVECAPITALVARIABLEETRESPONSABILITELIMITE'=>0, // 1 + 'SOCITCOMMERCIALERESPONSABILITLIMITEDEDROITTRANGER'=>0, // 1 + 'ALT'=>0, // 1 + 'SAEMIXTE'=>0, // 1 + 'SCCCAPITALVARIABLEETRESPONSABILITLIMITE'=>0, // 1 + 'SELARLPARACTIONSSIMPLIFIE'=>0, // 1 + 'GIEBUTLUCRATIF'=>0, // 1 + 'SADEDROITAUTRICHIEN'=>0, // 1 + 'SPASN'=>0, // 1 + 'CAISSELOCALEDECRDITMUTUELCAPITALVARIABLE'=>0, // 1 + 'CRDITMUTUELCAPITALVARIABLEETRESPONSABILITLIMITE'=>0, // 1 + 'SELAFADAVOCATS'=>0, // 1 + 'FRANCIS'=>0, // 1 + 'SCPROFESSIONNELLEDEMOYENS'=>0, // 1 + 'VILLE'=>0, // 1 + 'MJDMATHISFILS'=>0, // 1 + 'MUTUELLERGIEPARLESDISPOSITIONSDULIVREIIIDUCODEDELAMUTUALIT'=>0, // 1 + 'SOCITRESPONSABILITLIMITEUNIPERSONNEL'=>0, // 1 + 'SARLMCC'=>0, // 1 + 'SCCONSEILDADMINISTRATION'=>0, // 1 + 'SCOPRL'=>0, // 2 + 'SBJC'=>0, // 1 + 'GEPA'=>0, // 1 + 'SASUASSOCIATIONUNIQUE'=>0, // 1 + 'SARLPFR'=>0, // 1 + 'SOC'=>0, // 1 + 'UNIONDECOOPRATIVESMARITIMESFORMEANONYMEETCAPITALVARIABLE'=>0, // 1 + 'SCIDEMARCHANDDEBIENS'=>0, // 1 + 'SAIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 1 + 'SOCITANONYMEDCONOMIEMIXTESOCIETEANONYMEDECONOMIEMIXTES'=>0, // 1 + 'SCOPRESPONSABILITELIMITEETCAPITALVARIALBE'=>0, // 1 + 'SOCITCOOPERATIVECRDITCAPITALVARIABLEETRESPONSABILITLIMITE'=>0, // 1 + 'CUMACOOPRATIVEDUTILISATIONDEMATRIELAGRICOLEENCOMMUN'=>0, // 1 + 'LESPALES'=>0, // 1 + 'SARLCOOPRATIVEDINTRTCOLLECTIFAGRICOLE'=>0, // 1 + 'CORRADO'=>0, // 1 + 'SAEMETDIRECTOIRE'=>0, // 1 + 'SOCITRESPONSABILITLIMITEASSOCIUNIQUEUNIPERSONNELLE'=>0, // 2 + 'COOPRATIVESARLCAPITALVARIABLE'=>0, // 1 + 'ARTISAN'=>0, // 1 + 'ISABELLE'=>0, // 1 + 'SCARLCOOPRATIVE'=>0, // 2 + 'SARLASICIUNIQUE'=>0, // 1 + 'EXPLOITATIONAGRICOLEUNIPERSONNELLERESPONSABILITLIMITE'=>0, // 1 + 'CCA'=>0, // 1 + 'SOCITPRIVERESPONSABILITLIMITEDEDROITBELGE'=>0, // 1 + 'UNIONDECOOPERATIVESMARITIMESENANONYME'=>0, // 1 + 'SCICACC'=>0, // 1 + 'SAARLASSOCIUNIQUE'=>0, // 1 + 'RUEDUBOISROBINBOSSERVILLE'=>0, // 1 + 'SAZRL'=>0, // 1 + 'SEA'=>0, // 2 + 'SKICARL'=>0, // 1 + 'SOCITPARACTIONSSIMPLIFIECAPITALEUROS'=>0, // 1 + 'SCIDEPRESSE'=>0, // 1 + 'BANQUECOOPRATIVESOCITDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 2 + 'SOCITCOOPRATIVEDECRDITCAPITALVARIABLEETRESPONSABILITLIMITECOOPRATIVE'=>0, // 2 + 'UNIONDCONOMIESOCIALEANONYME'=>0, // 1 + 'UNIONDCONOMIESOCIALESARL'=>0, // 1 + 'SOCITDEDROITANGLAISFAISANTAPPELPUBLICLPARGNEPUBLICLIMITEDCOMPAGNY'=>0, // 1 + 'SOCITCOOPRATIVEDECRDITRESPONSABILITLIMITECAPITALVARIABLE'=>0, // 1 + 'SOCITCOOPRATIVEAGRICOLEETCAPITALVARIABLE'=>0, // 1 + 'SOCITANONYMECOOPRATIVEDEPRODUCTIONLOYERMODR'=>0, // 1 + 'TABLISSEMENTPUBLICINTERCOMMUNAL'=>0, // 1 + 'SOCITRESPONSABILITPARACTIONSDEDROITBRITANNIQUE'=>0, // 1 + 'AAS'=>0, // 1 + 'SACOOPRATIVEDINTRTCOLLECTIFDHABITATIONS'=>0, // 1 + 'CC'=>0, // 1 + 'SCPE'=>0, // 1 + 'SOCITCOOPRATIVEARTISANALE'=>0, // 1 + 'SCDEPORTEFEUILLES'=>0, // 1 + 'SCPROFESSIONELLEDENOTAIRES'=>0, // 1 + 'COMMUNAUTDAGGLOMRATION'=>0, // 1 + 'SOCITENNOMNOLLECTIF'=>0, // 1 + 'UNIONDECOOPRATIVESAGRICOLEPERSONNELETCAPITALVARIABLES'=>0, // 1 + 'SATLASSOCIUNIQUE'=>0, // 1 + 'SCDEPLACEMENTCOLLECTIFIMMOBILIER'=>0, // 1 + 'SPFLA'=>0, // 1 + 'SOCITCOOPRATIVEDEXPLOITATIONAGRICOLE'=>0, // 1 + 'SDEASSOCIUNIQUE'=>0, // 1 + 'SARLMENBREDELUE'=>0, // 1 + 'SASCOOPRATIVEDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 1 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTIONFORMEANONYME'=>0, // 1 + 'SARLDEDROITAMRICAIN'=>0, // 1 + 'SOCITCIVILECONSTRUCTIONVENTE'=>0, // 3 + 'COOPRATIVEAGRICOLERESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 2 + 'SARLDECOOPRATIVEOUVRIREDEPRODUCTION'=>0, // 1 + 'COOPRATIVEOUVRIREDEPRODUCTIONANONYMECAPITALETPERSONNELVARIABLECOOPRATIVE'=>0, // 1 + 'SCILAVENIR'=>0, // 1 + 'SKPRLCV'=>0, // 2 + 'SOCITDECAUTIONMUTUELLECAPITABLEVARIABLE'=>0, // 1 + 'SARLOUASSOCIUNIQUE'=>0, // 1 + 'SOCITRESPONSABILITLIMITEASSOCIUNQIUE'=>0, // 1 + 'SARLDEPRODUCTIONCAPITALVARIABLE'=>0, // 1 + 'EUARLASSOCIUNQIUE'=>0, // 1 + 'SEARESPONSABILITLIMITE'=>0, // 1 + 'TYRONE'=>0, // 1 + 'SCPROFESSIONNELLEDEVTRINAIRE'=>0, // 1 + 'SARLUNIPERSSONELLE'=>0, // 1 + 'SELALSASSOCIUNIQUE'=>0, // 1 + 'SICACOPPRATIVE'=>0, // 1 + 'LESCARABES'=>0, // 1 + 'SOCITRESPONSABILITLIMLITESARL'=>0, // 1 + 'GHISLAINE'=>0, // 1 + 'SARLENCOURSDEFORMATION'=>0, // 1 + 'SCEARLASSOCIUNIQUE'=>0, // 1 + 'SERALASSOCIUNIQUE'=>0, // 1 + 'ASSOCIAION'=>9220, // 1 + 'SCMC'=>0, // 1 + 'SOCITCOOPRATIVECAPITALETPERSONNEVARIABLERGIEPARLIVREVCR'=>0, // 1 + 'SCIRORO'=>0, // 1 + 'SARLCOOPRATIVEETCAPITALVARIABLE'=>0, // 2 + 'POURHOMMESFEMMESOUENFANTS'=>0, // 1 + 'RCSCOLMAR'=>0, // 1 + 'TANTENFRANCEQULTRANGERTLSURVEILLANCEVIDOSURVEILLANCEGARDIENNAGESCURITDESPERSO'=>0, // 1 + 'SOCITPARACTIONSSIMPLIFIASSOCIUNIQUE'=>0, // 1 + 'SOCITDEPARTICIPATIONSFINANCIRESDEPROFESSIONLIBRALERESPONSABILITLIMITEDAVOCATS'=>0, // 1 + 'ASS'=>0, // 1 + 'UNIONCOOPRATIVEAGRICOLESCAPITALVARIABLE'=>0, // 1 + 'PERSONNESPHYSIQUESEXERANTTITREINDIVIDUELOUINDPENDANT'=>0, // 1 + 'SARLCAPITALVARIALBE'=>0, // 1 + 'SRRL'=>0, // 1 + 'SMCE'=>0, // 1 + 'SARLSOCITUNIQUEASSOCIUNIQUE'=>0, // 1 + 'SOCITDEPARTICIPATIONFINANCIREDEPROFESSIONLIBRALE'=>0, // 1 + 'SCOPARLETCAPVARIABLE'=>0, // 1 + 'SOCITANONYMEDECONOMIEMIXTELOCALECONSEILDESURVEILLANCEETDIRECTOIRE'=>0, // 1 + 'RUESELLENIK'=>0, // 1 + 'SCADINTRTCOLLECTIFAGRICOLE'=>0, // 1 + 'SCCU'=>0, // 1 + 'SCIENCONSTRUCTIONVENTELOIDETITRE'=>0, // 1 + 'STECOOPERATIVEDINTERETCOLLECTIFARESPONSABILITELIMITEE'=>0, // 1 + 'SCDUCONSTRUCTIONVENTE'=>0, // 1 + 'ETABLISSEMENTPUBLICLOCALCARACTREINDUSTRIELETCOMMERCIAL'=>0, // 1 + 'SOCIETEDINTERETCOLLECTIFAGRICOLESICAENSARL'=>0, // 1 + 'SCGROUPEMENTPASTORALCAPITALVARIABLE'=>0, // 1 + 'ASSOCIAITONLOI'=>9220, // 1 + 'SELARLDENTREPRISEUNIPERSONNELLE'=>0, // 1 + 'SEARLRESPONSABILITLIMITE'=>0, // 1 + 'SCDEMOYENSUNIPERSONNELLE'=>0, // 1 + 'SOCITANONYMECAPITALETPERSONNELVARIABLECOOPRATIVE'=>0, // 1 + 'SCDEPLACEMENTSIMMOBILIERSCAPITALVARIABLE'=>0, // 1 + 'SOCITUNIPERSONNELLE'=>0, // 1 + 'SOCITCOOPRATIVEAGRICOLERESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 1 + 'GIEPERSONNELETCAPITALVARIABLES'=>0, // 1 + 'SCPROFEESSIONNELLE'=>0, // 1 + 'SOCITDEDROITTRANGERIMMATRICULEAURCS'=>0, // 1 + 'SOCITCIVILECONSTITUEENGROUPEMENTFORESTIER'=>0, // 1 + 'SCPRORESSIONNELLEDEVTRINAIRES'=>0, // 1 + 'COOPRATIVEDUTILISATIONDEMATRIELAGRICOLEENCOMMUNCAPITALVARIABLE'=>0, // 1 + 'SOCITDASSURANCESFORMEMUTUELLE'=>0, // 1 + 'SABELGE'=>0, // 1 + 'SCDEPRODUCTIONRESPONSABILITLIMITE'=>0, // 1 + 'SOCITRESPONSAIBILITLIMITE'=>0, // 1 + 'SACAPITALVARIABLEDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 1 + 'SCPDAVOCATFORMECOOPRATIVE'=>0, // 1 + 'SARLDEXERCIELIBRAL'=>0, // 1 + 'SOCITDASSURANCESMUTUELLEVIECAPITAL'=>0, // 1 + 'ENTREPRISEINDIVIDUELLECOMMERCIALE'=>0, // 1 + 'EARLENCOMMUN'=>0, // 1 + 'SCMCAPITALVARIABLECAPITALMINFIXEEUROS'=>0, // 1 + 'SARLREDUITEUNEASSOCIUNIQUE'=>0, // 1 + 'ANNIECOIFFURE'=>0, // 1 + 'SARLCOOPRATIVECAPITALETPERSONNELVARIABLE'=>0, // 1 + 'SCPROFESSIONNELLLE'=>0, // 1 + 'SCIENDISSOLUTION'=>0, // 1 + 'SARLKINGSTREETWORGRANDEBRETAGNEROYAUMEUNI'=>0, // 1 + 'SOCITDEXERCICELIBRALPARACTIONSIMPLIFIECAPITALVARIABLE'=>0, // 1 + 'GIESANSBUTLUCRATIFENLIQUIDATION'=>0, // 1 + 'SOCITAGRICOLESARL'=>0, // 1 + 'SEIE'=>0, // 1 + 'RCSQUIMPERD'=>0, // 1 + 'FIJ'=>0, // 1 + 'SARLENFORMATION'=>0, // 1 + 'THIERRY'=>0, // 1 + 'MUTELLE'=>0, // 1 + 'SARLDECRDITCAPITALVARIABLE'=>0, // 1 + 'SADIRECTOIREETCONSELDESURVEILLANCE'=>0, // 1 + 'SADEDROITESPAGNOL'=>0, // 1 + 'MESSIEURS'=>0, // 1 + 'COOPRATIVECOMMERCIALERESPONSABILITLIMITETCAPITALVARIABLE'=>0, // 1 + 'SARLASSOCIUNIQUEETSARLUNIPERSONNELLE'=>0, // 1 + 'UNIONDECOOPRATIVESAGRICOLESCOOPRATIVE'=>0, // 1 + 'SARLDEDROITTCHQUE'=>0, // 1 + 'SACOOPRATVEDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 1 + 'LASOCITCIVILE'=>0, // 1 + 'SKCCVRL'=>0, // 1 + 'CONSTRUCTIONDIMMEUBLES'=>0, // 1 + 'GROUPEFONCIERRURAL'=>0, // 1 + 'SOCITCOOPRATIVEDECRDITRESPONSABILITSTATUTAIREMENTLIMITEETCAPITALVARIABLE'=>0, // 1 + 'SARLCOOPOUVRIREDEPRODUCTIONETCRDIT'=>0, // 1 + 'SCJ'=>0, // 1 + 'SARLUNPERSONNELLE'=>0, // 1 + 'MEIJIX'=>0, // 1 + 'SARLREDUITEASOCIEUNIQUE'=>0, // 1 + 'SOCITANONYMEPARTICIPATIONOUVRIRE'=>0, // 1 + 'EARLASSOCIASSOCI'=>0, // 1 + 'SOCITRESPONSABILITLIMITEDEFAMILLE'=>0, // 1 + 'SOCIETEPARACTIONSDEDROITITALIEN'=>0, // 1 + 'SOCITDESOCITTRANGER'=>0, // 1 + 'SICAARL'=>0, // 1 + 'SCAV'=>0, // 1 + 'TABLISSEMENTPUBICNATIONAL'=>0, // 1 + 'O'=>0, // 1 + 'SCOPANONYMECAPITALETPERSONNEVARIABLES'=>0, // 1 + 'SELRULR'=>0, // 1 + 'SAI'=>0, // 1 + 'SOCITCIVILEDECOOPRATIVEAGRICOLECAPITALVARIABLE'=>0, // 1 + 'VENTE'=>0, // 1 + 'SELARLDAVOCATS'=>0, // 1 + 'SCKA'=>0, // 1 + 'SOCITCOOPRATIVERESPONSABILITLIMITECOOPRATIVE'=>0, // 1 + 'STRANGREISSUEDELESPACEECONOMIQUEEUROPEN'=>0, // 1 + 'SOCITANONYMEDIRECTOIRECONSEILDESURVEILLANCE'=>0, // 1 + 'SASAIC'=>0, // 1 + 'COOPERATIVES'=>0, // 1 + 'COOPRATIVEAGRICOLEDPARTEMENTALE'=>0, // 1 + 'CONSTRUCTIONDIMMEUBLESVENTE'=>0, // 1 + 'SOCIETECOOPERATIVEDINTERETCOLLECTIFAGRICOLESICA'=>0, // 1 + 'SASUNIERSONNELLE'=>0, // 1 + 'SACSURV'=>0, // 1 + 'SICASOUSFORMEDESOCITANONYMECOOPRATIVE'=>0, // 1 + 'UNIONCOMMERCIALE'=>0, // 1 + 'SACOOPRATIVEOUVRIREDEPRODUCTIONETDECRDITCONSEIL'=>0, // 1 + 'SCOPDHABITATIONSLOYERMODRFOMEANONYMEETCAPITALVARIABLE'=>0, // 1 + 'ETABLISSEMENT'=>0, // 1 + 'SCEAENCOMMUN'=>0, // 1 + 'SOCIETEUNIPERSONNELLEARESPONS'=>0, // 1 + 'SCDECONCTRUCTIONVENTE'=>0, // 1 + 'SCPRLCV'=>0, // 1 + 'SASSA'=>0, // 1 + 'UKA'=>0, // 1 + 'SOCITAONYME'=>0, // 1 + 'SCCI'=>0, // 1 + 'SOCITTRANGREIMMATRUCLEAURCS'=>0, // 1 + 'SACOOPRATIVEMARITIMEETCAPITALVARIABLE'=>0, // 1 + 'SOCITPARACTIONSSIMPLIFIESOCITPARACTIONSSIMPLIFIEPLURIPERSONNELLE'=>0, // 1 + 'SALERL'=>0, // 1 + 'COOPRATIVEDECONSOMMATIONENSACAPITALVARIABLE'=>0, // 1 + 'SCPARTICULIREASSOCIUNIQUEEARL'=>0, // 1 + 'RCSTHIONVILLEB'=>0, // 1 + 'SARLOUVRIREDEPRODUCTION'=>0, // 1 + 'SADEBANQUECOOPRATIVEDIRECTOIREETCONSEILDORIENTATIONETDESURVEILLANCE'=>0, // 1 + 'SCCCV'=>0, // 1 + 'AAD'=>0, // 1 + 'SCPARTICULIREASSOCIUNIQUE'=>0, // 1 + 'SCPARLCV'=>0, // 1 + 'GFI'=>0, // 1 + 'UNIONDECOOPRATIVESMARITIMESANONYME'=>0, // 1 + 'ATH'=>0, // 1 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTIONCRDITSARL'=>0, // 1 + 'CAISSEMUTUELLERESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 1 + 'SOCITCOOPRATIVVERESPONSABILITLIMIT'=>0, // 1 + 'SADECONSEILDADMINISTRATION'=>0, // 1 + 'SOCITANONYMEOBJETSPORTIFDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 1 + 'SARLLAGRANGE'=>0, // 1 + 'SCIAA'=>0, // 1 + 'SACOOPRATIVEDIRECTOIREETCONSEILDESURVEILLANCEETCAPITALVARIABLE'=>0, // 1 + 'SICASOUSFORMEDESA'=>0, // 1 + 'SOCITCOOPRATIVEOUVRIREDEPRODUCTIONANONYMEETCAPITALVARIABLE'=>0, // 1 + 'SASAUFCOOPR'=>0, // 1 + 'COMPAGNIE'=>0, // 1 + 'SCCONSTITUEENVUEDELATTRIBUTIONDIMMEUBLE'=>0, // 1 + 'SACOOPRATIVEARTISANALECONSEILDADMINISTRATION'=>0, // 1 + 'SCACOOPRATIVECAPITALVARIABLE'=>0, // 1 + 'SCCOOPRATIVEAGRICOLECOOPRATIVE'=>0, // 1 + 'SOCITDEDROITTRANGERCARYCHAMBERSPALKSTREETTQELTORQUAYDEVONGRANDEBRETAGNE'=>0, // 1 + 'SARLASSOCISUNIQUE'=>0, // 1 + 'SOCITSCOOPRATIVES'=>0, // 1 + 'SOCITOUVRIREDEPRODUCTIONRESPONSABILITLIMITECAPITALVARIABLE'=>0, // 1 + 'SOCITCOOPRATIVEEXPLOITESOUSFORMEDESARL'=>0, // 2 + 'HERV'=>0, // 1 + 'COOPRATIVEOUVRIREDEPRODUCTIONRESPONSABILITLIMITESOCIETECOOPERATIVEOUVRIEREDEPRODUCTI'=>0, // 1 + 'CAISSEDPARGNE'=>0, // 1 + 'DISTRICLUBMDICAL'=>0, // 1 + 'SOCITPARACTIONSSIMPLIFIERDUITELASSOCIUNIQUE'=>0, // 1 + 'SCKON'=>0, // 1 + 'ROBERT'=>0, // 1 + 'GAE'=>0, // 1 + 'SCPROFESSONNELLEDHUISSIERSDEJUSTICE'=>0, // 1 + 'QOCITRESPONSABILITLIMITE'=>0, // 1 + 'SARLAAU'=>0, // 1 + 'SICAVAS'=>0, // 1 + 'SACOOPERATIVECAPITALVARIABLE'=>0, // 1 + 'SCDECONSTRUCTIONATTRIBUTION'=>0, // 1 + 'SOCITDEPARTICIPATIONSFINANCIRESDEPROFESSIONLIBRALEDENOTAIRERESPONSABILITLIMITEUNI'=>0, // 1 + 'SADEDROITSUISSESOCIETEETRANGERE'=>0, // 1 + 'SOCITDEDROITISLANDAIS'=>0, // 1 + 'GFRETSC'=>0, // 1 + 'SYNDIC'=>0, // 1 + 'FLORENT'=>0, // 1 + 'AVP'=>0, // 1 + 'UNIONDCONOMIESOCIALESOCITCOOPRATIVEFORMEANONYME'=>0, // 1 + 'SOCIETECOOPERATIVEACAPITALVARIABLESARL'=>0, // 1 + 'SARLJU'=>0, // 1 + 'SACOOPRATIVEOUVRIREDEPRODUCTIONRESPONSABILITLIMITE'=>0, // 1 + 'SASUACTIONNAIREUNIQUE'=>0, // 1 + 'SOCITDPARGNEFORESTIRE'=>0, // 1 + 'SOCITPARACTIONSIMPLIFIE'=>0, // 1 + 'SOCITCIVILEIMMOBILIREASSOCIUNIQUE'=>0, // 1 + 'SACOOPRATIVEOUVRIREPERSONNELETCAPITALVARIABLE'=>0, // 1 + 'SCH'=>0, // 1 + 'SARR'=>0, // 1 + 'SARLCOOPERATIVROUVRIEREDEPRODUCTIONETDECREDIT'=>0, // 1 + 'SOCITPARACTIONSSIMPLIFIS'=>0, // 1 + 'STB'=>0, // 1 + 'SAARL'=>0, // 1 + 'GROUPEMENTDEMPLOYEURSAGRICOLES'=>0, // 1 + 'TWO'=>0, // 1 + 'COOPRATIVEDECRDITCAPITALVARIABLERESPSTATUTAIREMENTLIMITE'=>0, // 1 + 'EUBAL'=>0, // 1 + 'GFASOCITENLIQUIDATIONAMIABLE'=>0, // 1 + 'SACDEPHARMACIENSDOFFICINECAPITALVARIABLEETCONSEILDADMINISTRATION'=>0, // 1 + 'IMMEUBLEMIDASANQUETILCENTER'=>0, // 1 + 'COPRL'=>0, // 1 + 'SARLENTREPRISEUNIPERSONNELLEARESPONSLIMITEE'=>0, // 1 + 'SASDHABITATIONDELOYERMODR'=>0, // 1 + 'INSTITUTIONRGIESELONLESLOISDUAOTETDUDCEMBRE'=>0, // 1 + 'SAPLAC'=>0, // 1 + 'SCOPPERSONNELETCAPITALVARIABLES'=>0, // 1 + 'STEDINTERETCOLLECTIFAGRICOLESAACAPITALVARIABLE'=>0, // 1 + 'SOCITANONYMEDECONOMIEMIXTELOCALESAEML'=>0, // 1 + 'GFASOCITENLIQUIDATION'=>0, // 2 + 'SARLAASSIOCIEUNIQUE'=>0, // 1 + 'SAPC'=>0, // 1 + 'SCPARTICULIREENLIQUIDATIONAMIABLE'=>0, // 1 + 'SOCITANONYMECOOPRATIVEARTISANALEDIRECTOIRE'=>0, // 1 + 'SOCITDEDROITPORTUGAIS'=>0, // 1 + 'STECOOPERATIVEARESPONSABILITELIMITEETACAPITALVARIABLE'=>0, // 1 + 'SARLCOOPRATIVECAPITALVARIABLEDINTERTCOLLECTIF'=>0, // 1 + 'SOCITPARACTIONSSIMPLIFIEACTIONNAIREUNIQUE'=>0, // 1 + 'AKDENIZ'=>0, // 1 + 'SCMENLIQUIDATION'=>0, // 1 + 'SAVA'=>0, // 1 + 'SOCITCOOPRATIVEDECAUTIONMUTUELLELOIMARS'=>0, // 1 + 'SADEDROITSSUISSES'=>0, // 1 + 'SOCITPARACTIONSSIMPLIFIEUNIVERSELLE'=>0, // 1 + 'CMO'=>0, // 1 + 'STEUNIPERSONNELLEARESPONSABILITELIMITEEACAPITALVARIABLE'=>0, // 1 + 'SARLVOCATIONIMMOBILIRE'=>0, // 1 + 'SARLASSOCIUNIQE'=>0, // 1 + 'SCCIMMOBILIRE'=>0, // 1 + 'SACONSEILDADMINISTRATIONR'=>0, // 1 + 'SOCITCIVILEPROFESSIONNELLETITULAIREDUNOFFICEDEGREFFIERDETRIBUNALDECOMMERCE'=>0, // 1 + 'SASCONSTITUEDUNASSOCIUNIQUE'=>0, // 1 + 'SACONSEILDADMIISTRATION'=>0, // 1 + 'GIEENDISSOLUTION'=>0, // 1 + 'VALRIE'=>0, // 1 + 'SACOOPRATIVEDEPRODUCTIONDHABITATIONLOYERMODR'=>0, // 1 + 'SASOCITANONYME'=>0, // 1 + 'SICAVL'=>0, // 1 + 'SARLASSOCIUNQUE'=>0, // 1 + 'EALR'=>0, // 1 + 'SOCITDEDROITTRANGERSOMERSETHOUSEPRICESTREETBLZBIRMINGHAMGRANDEBRETAGNE'=>0, // 1 + 'SCICVENTE'=>0, // 1 + 'SELARLDEPHARMACIENS'=>0, // 1 + 'SOCITCOMMERCIALETRANGRE'=>0, // 1 + 'SOCITCIVILEDECOOPRATIVEAGRICOLE'=>0, // 1 + 'SOCITCIVILECOOPRATIVEDEMOYENSCAPITALVARIABLE'=>0, // 1 + 'RUELONDIEUD'=>0, // 1 + 'NOUVELLESOCITRESPONSABILITLIMITERDUITEASSOCIUNIQUE'=>0, // 1 + 'AVASPE'=>0, // 1 + 'SELARASSOCIUNIQUE'=>0, // 1 + 'FRANCESCA'=>0, // 1 + 'SCSE'=>0, // 1 + 'SPPROFESSIONNELLE'=>0, // 1 + 'SCDEXPLOITATIONHORTICOLE'=>0, // 1 + 'CFA'=>0, // 2 + 'SOCITDINTRTCOLLECTIFAGRICOLEARL'=>0, // 1 + 'SCCCAPITALVARIABLE'=>0, // 1 + 'SADECAUTIONMUTUELLE'=>0, // 1 + 'GROUP'=>0, // 1 + 'PERSONNEMORALEDEDROITPRIVBUTNONLUCRATIF'=>0, // 1 + 'SOCITPRIVERESPONSABILITLIMITERELEVANTDUDROITBELGE'=>0, // 1 + 'CI'=>0, // 1 + 'GROUPEMENTDINTRTCONOMIQUESANSBUTLUCRATIF'=>0, // 1 + 'EVSAL'=>0, // 1 + 'SOCITMEMBREDELUE'=>0, // 1 + 'LECHARVET'=>0, // 1 + 'SCIMARIQUITA'=>0, // 1 + 'SKACAPITALVARIABLE'=>0, // 1 + 'SARLSCOP'=>0, // 1 + 'SCPDAVOCATSAUXCONSEILS'=>0, // 1 + 'COOPENSARL'=>0, // 1 + 'SARLPATRIMONIALE'=>0, // 1 + 'SOCITAONYMEDECONOMIEMIXTE'=>0, // 1 + 'SARLASSOCOUNIQUE'=>0, // 1 + 'RUEDESVERGERS'=>0, // 1 + 'CENTRECOMMERCIAL'=>0, // 1 + 'SOCITENCOMMANDITEPARACTIONSNONMEMBREDELACOMMUNAUTEUROPENNEOUNONPARTIELACCORDSU'=>0, // 1 + 'SARLLAIRDUTEMPS'=>0, // 1 + 'SOCITCIVILECOOPRATIVEPERSONNELETCAPITALVARIABLES'=>0, // 1 + 'SCIENDISSOLUITION'=>0, // 1 + 'RA'=>0, // 1 + 'SOCITPRIVERESPONSABILITLIMITE'=>0, // 1 + 'SCILESVILLASDEBAGATELLE'=>0, // 1 + 'COOPRATIVEDETRANSPORTANONYMECONSEILDADMINISTRATIONETCAPITALVARIABLE'=>0, // 1 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFFORMEANONYME'=>0, // 1 + 'SACCOPRATIVEDACHATENCOMMUN'=>0, // 1 + 'SCOPDECRDITRESPONSABILITLIMITE'=>0, // 1 + 'SOCITANONYMECOOPRATIVEPERSONNELETCAPITALVARIABLE'=>0, // 1 + 'SCDECONSTRUCTIONVENTELOIDETITREO'=>0, // 1 + 'COOPRATIVEFORMEANONYME'=>0, // 1 + 'UNIONRGIONALEDETRANSPORTEURSROUTIERS'=>0, // 1 + 'ASSOCIATIONSPORTIVE'=>9220, // 1 + 'SOCITANONYMENONMEMBREDELUE'=>0, // 1 + 'SCIASSOCIATIONLOI'=>9220, // 1 + 'COOPRATIVERESPONSABILITETCAPITALVARIABLE'=>0, // 1 + 'SRLPMINTERNATIONAL'=>0, // 1 + 'SARLCAPITALEVARIABLE'=>0, // 1 + 'SELARC'=>0, // 1 + 'SOCIETECOOPERATIVEAGRICOLEACAPITALVARIABLELOIN'=>0, // 1 + 'SOCITCIVILEDECONSTRUCTIONVENTEENLIQUIDATION'=>0, // 1 + 'SOCIETESIMPLE'=>0, // 1 + 'SYNDICATPROFESSIONNELENTREPRISERGIEPARLARTICLELDUCODERURALLOIDUJUILLET'=>0, // 1 + 'COOPRATIVEARTISANALEFORMEDESOCITRESPONSABILITLIMIT'=>0, // 1 + 'GIECOMMERCIALENLIQUIDATION'=>0, // 1 + 'COOPRATIVEDECRDIT'=>0, // 1 + 'SOCITANONYMECOOPRATIVEDINTRTCOLLECTIFAGRICOLEDIRECTOIRE'=>0, // 1 + 'SADADMINISTRATION'=>0, // 1 + 'SOCITDEXERCICELIBRALPARACTIONS'=>0, // 1 + 'SACONSEILDADMINISTRATIVE'=>0, // 1 + 'SOCITCIVILEPROFESSIONNELLEDADMINISTRATEURSJUDICIAIRES'=>0, // 1 + 'SCPT'=>0, // 1 + 'SOCITCIVILEIIMMOBILIRE'=>0, // 1 + 'EARLSOCITENLIQUIDATION'=>0, // 1 + 'COOPOUVRIEREDEPRODUCTIONARLACAPITALVARIABLE'=>0, // 1 + 'SELAFADEGOMTRESEXPERTS'=>0, // 1 + 'SARLAASSOCIEUNIQUE'=>0, // 2 + 'RLUNI'=>0, // 1 + 'SARLSDA'=>0, // 1 + 'SARLUNIQUE'=>0, // 1 + 'JEANPAUL'=>0, // 1 + 'RUENATIONALE'=>0, // 1 + 'INSTITUTIONRGIELOISDUAOTETDUDCEMBRE'=>0, // 1 + 'SASASSOCIEUNIQUEDEPUISCESSIONDELINTEGRALITEDESTITRESAMINIRECTIFICATION'=>0, // 1 + 'SNCF'=>0, // 1 + 'SOCITANONYMEDCONOMIEMIXTEETDIRECTOIRE'=>0, // 1 + 'SCCCAPITALETPERSONNELVARIABLE'=>0, // 1 + 'SCUMACV'=>0, // 1 + 'SEE'=>0, // 2 + 'EE'=>0, // 1 + 'SOCITANONYMEDECONOMIEMIXTE'=>0, // 2 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFAGRICOLEFORMEANONYMEETCAPITALVARIABLE'=>0, // 1 + 'SOCITDECRDITMARITIME'=>0, // 1 + 'SARLMEMBRELUE'=>0, // 1 + 'ASSOCIATIONDELOI'=>9220, // 1 + 'BANQUECOOPRATIVESADIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 2 + 'TABLISSEMENTDECRDITBUTLUCRATIF'=>0, // 1 + 'SCPRESPONSABILITLIMITE'=>0, // 1 + 'MONIQUE'=>0, // 1 + 'SCDECONSTRUCTIONVENTEENLIQUIDATION'=>0, // 2 + 'EARLRDUITEUNASSOCIUNIQUE'=>0, // 1 + 'SSCGP'=>0, // 1 + 'SARLROSIERETFILS'=>0, // 1 + 'SAEMLDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 1 + 'SCPROFESSIONNELLEDAVOCATSAUCONSEILDETATETLACOURDECASSATION'=>0, // 1 + 'SOCITCOOPRATIVEDECRDITRESPONSABILITSTATUTAIREMENTLIMITECOOPRATIVE'=>0, // 1 + 'SARLSOMERSETHOUSETEMPLESTREETBIRMINROYAUMEUNI'=>0, // 1 + 'FDA'=>0, // 1 + 'CRDITMUTUELCOOPRATIVECAPITALVARIABLE'=>0, // 1 + 'EUROSFIXE'=>0, // 1 + 'FORMEASSOCIATION'=>9220, // 1 + 'SARLENCOOPRATIVECAPITALVARIABLE'=>0, // 1 + 'SARLASSOCILIMITE'=>0, // 1 + 'COPARL'=>0, // 1 + 'EUTL'=>0, // 1 + 'EARLASSOCIUNIQUEETCAPITALVARIABLE'=>0, // 2 + 'SOCITRESPONSABILITLIMITEDEDROITBRITANNIQUE'=>0, // 1 + 'SOCITDASSURANCESMUTUELLESCAPITALVARIABLE'=>0, // 1 + 'SARLAVECPOURSUITEDACTIVITJUSQUAU'=>0, // 1 + 'SARLCOOPERATIVECREDITCAPITALVARIABLE'=>0, // 1 + 'SCENLIQUIDATIONAMIABLE'=>0, // 1 + 'SARLASSOCIUNIAUE'=>0, // 1 + 'SARLASSOCIASSOCIUNIQUE'=>0, // 1 + 'EGMBATIMENT'=>0, // 1 + 'EUARLRESPONSABILITLIMITEASSOCIUNIQUE'=>0, // 1 + 'SOCITANONYMEEXERCICELIBRALSOCIETEDEXERCICELIBERALAFORMEANONYMEDEGEOMETRESEXPERTS'=>0, // 1 + 'ABEL'=>0, // 1 + 'SASDEXPERTISECOMPTABLE'=>0, // 1 + 'SASARL'=>0, // 1 + 'COOPRATIVEARTISANALERESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 1 + 'C'=>0, // 1 + 'SOCITDEPARTICIPATIONSFINANCIRESDEPROFESSIONLIBRALEDAVOCATCONSTITUESOUSFORMEDESAR'=>0, // 1 + 'SOCITENCOMMANDITEDEDROITALLEMAND'=>0, // 1 + 'EARLABIDEP'=>0, // 1 + 'SCIDECONTRUCTIONVENTE'=>0, // 1 + 'SAFAM'=>0, // 1 + 'SAAL'=>0, // 1 + 'SOCITDEXERCICELIBRALRESPONSABILITLIMITESELARL'=>0, // 1 + 'SELARLRDUITEUNASSOCIUNIQUE'=>0, // 1 + 'SOCITCOOPRATIVEDECRDITCAPITALVARIABLEETRESPONSABILIT'=>0, // 1 + 'SCEAASSOCIUNIQUE'=>0, // 1 + 'CMU'=>0, // 1 + 'SAKD'=>0, // 1 + 'SCAICA'=>0, // 1 + 'SOCITCOOPRATIVERESPONSABILITECAPITALVARIABLE'=>0, // 1 + 'STCOOPDEPRODUCTIONSARL'=>0, // 1 + 'COULEURCAF'=>0, // 1 + 'COOPRATIVEOUVRIREDEPRODUCTIONFORMEANONYME'=>0, // 1 + 'STEXLIBRALRESPONSABILTLIMITE'=>0, // 1 + 'SCDECONSEILETASSURANCEQUALIT'=>0, // 1 + 'SOCITDEXERCICELIBRALERESPONSABILITLIMITE'=>0, // 1 + 'SCU'=>0, // 1 + 'EXPLOITATIONAGRICOLESRESPONSABILITLIMITE'=>0, // 1 + 'ENTREPRISEUNIPERSONNELLEDEXERCICELIBRALRESPONSABILITLIMITE'=>0, // 1 + 'SOCITCOOPRATIVEDEPRODUCTIONENSARLCAPITALVARIABLE'=>0, // 1 + 'ETABLISSEMENTPUBLICDELETAT'=>0, // 1 + 'SEIDELESPACEECONOMIQUEEUROPEN'=>0, // 1 + 'SOCITAGRICOLEDEXPLOITATIONAGRICOLESCEA'=>0, // 1 + 'SOCIETECOOPERATIVEOUVRIERESDEPRODUCTIONARESPONSABILITELIM'=>0, // 1 + 'SICASOUSFORMEDESTEANONYME'=>0, // 1 + 'SASCOMPTERDU'=>0, // 1 + 'SACP'=>0, // 1 + 'STEDINTERETCOLLECTIFAGRICOLESAACAPITALETPERSONNELVARI'=>0, // 1 + 'SACOOPRATIVEDECOMMERANTSDTAILLANTSCONSEILDADMCAPITALVARIABLE'=>0, // 1 + 'SARLAGRICOLEDEFAMILLE'=>0, // 1 + 'SADCONOMIEMIXTEETLOCALE'=>0, // 1 + 'SCPARTICULIREDITEDEPARTICIPATIONOUDEPORTEFEUILLEETCAPITALVARIABLE'=>0, // 1 + 'SCOPRESPONSABILITLIMITEETDECRDIT'=>0, // 1 + 'AGENCECOMMERCIALEDUNTATTRANGER'=>0, // 1 + 'CDS'=>0, // 1 + 'UNIONDCONOMIESOCIALESARLCAPITALVARIABLE'=>0, // 1 + 'COOPRATIVEOUVRIREDEPRODUCTIONRESPONSABILITLIMIT'=>0, // 1 + 'SOCITCIVILESPROFESSIONNELLEDINFIRMIERS'=>0, // 1 + 'SARLMEMBREDELUNIONEUROPENNE'=>0, // 1 + 'GIESANSBUTLUCRATIFSOCITENLIQUIDATION'=>0, // 1 + 'STCOMMANDITEPARACTIONSCOOPRATIVE'=>0, // 1 + 'SCOPRESPONSABILITCAPITALVARIABLE'=>0, // 1 + 'UNIONDCONOMIESOCIALEETSOCITCOOPRATIVECIVILE'=>0, // 1 + 'STECOOPERATIVEDEPRODUCTIONARESPONSABILITELIMITEE'=>0, // 1 + 'SCVA'=>0, // 1 + 'SARLCARACTREPLURIPERSONNEL'=>0, // 1 + 'SOCIETEANONYMEPARACTIONS'=>0, // 1 + 'SOCITESPONSABILITLIMITE'=>0, // 1 + 'SEI'=>0, // 1 + 'COOPRATIVEOUVRIREDERODUCTIONANONYMECAPITALETPERSONNELVARIABLE'=>0, // 1 + 'SCDECONSTRUCTIONENTE'=>0, // 1 + 'SICACIVIL'=>0, // 1 + 'SELEFACONSEILDADMINISTRATION'=>0, // 1 + 'SARLCOOPERATIVECAPITALVARIABLEASSOCIUNIQUE'=>0, // 1 + 'CAISSEDERETRAITE'=>0, // 1 + 'SARLSOCITENLIQUIDATIONJUDICIAIRE'=>0, // 1 + 'SBM'=>0, // 1 + 'SOCITANONYMESA'=>0, // 1 + 'SACOOPRATIVEDEPRODCUTIONDHABITATIONLOYERMODRER'=>0, // 1 + 'TGI'=>0, // 1 + 'SCIGB'=>0, // 1 + 'SICAANONYME'=>0, // 1 + 'SADIRECTIONETCONSEILDESURVEILLANCE'=>0, // 1 + 'SARLDEDROITBRITANIQUE'=>0, // 1 + 'SADIRECTOIREETCONSEILETSURVEILLANCE'=>0, // 1 + 'SELARLDINFIRMIERS'=>0, // 1 + 'CHRISTIAN'=>0, // 1 + 'SCPROFESSIONNELLEDARCHITECTE'=>0, // 1 + 'ASSOCIATIONLESVACHESAUGALLO'=>9220, // 1 + 'SOCITDEDROITTRANGERREGISTREDESSOCITSDEMILAN'=>0, // 1 + 'SCINICE'=>0, // 1 + 'SACOOPRATIVEPERSONNELETCAPITALVARIABLES'=>0, // 1 + 'GUA'=>0, // 1 + 'CPC'=>0, // 1 + 'SOCITCOOPRATIVEANONYMEDINTRT'=>0, // 1 + 'SADINTRTCOLLECTIFAGRICOLE'=>0, // 1 + 'BATRICE'=>0, // 1 + 'SARLDEXPLOITATIONDELAFERMEDECHABRAC'=>0, // 1 + 'SARLAGRICOLEFAMILIALE'=>0, // 1 + 'SOCITRESPONSABILITLIMITEETASSOCIUNIQUE'=>0, // 1 + 'SOCITANONYMECOOPRATIVEDIRECTOIREETCONSEILDESURVEILLANCEETDORIENTATION'=>0, // 1 + 'GISLE'=>0, // 1 + 'MCUISINIER'=>0, // 1 + 'SARLACTIONNAIREUNIQUE'=>0, // 1 + 'UCP'=>0, // 1 + 'RUEAMIRALLINOISCS'=>0, // 1 + 'SASRDUITEUNASSOCIUNIQUE'=>0, // 1 + 'SARLDECRDIT'=>0, // 1 + 'EURAL'=>0, // 1 + 'SOCITPARACTIONSSIMPLIFIESAS'=>0, // 1 + 'MME'=>0, // 1 + 'RGIEDPARTEMENTALE'=>0, // 1 + 'SELALU'=>0, // 1 + 'EXPLOITATIONAGRICOLEENNOMPERSONNEL'=>0, // 1 + 'SOCITPARACTIONMEMBREDELUNIONEUROPENNE'=>0, // 1 + 'SOCITCIVILEAQUACOLE'=>0, // 1 + 'GPA'=>0, // 1 + 'SAEA'=>0, // 1 + 'SOCITDEDROITPORTUGAL'=>0, // 1 + 'LEBABAORUMVILLALAROSERAIEANCIENNEROUTEDULAMENTIN'=>0, // 1 + 'SPASU'=>0, // 1 + 'AVURSARL'=>0, // 1 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFAGRICOLERESPONSABILIT'=>0, // 1 + 'GFV'=>0, // 1 + 'MUTUELLEAGRICOLEBANCAIRECAPITALVARIABLE'=>0, // 1 + 'SIR'=>0, // 1 + 'SYNDICATPROFESSIONNELRGIESELONLALOIDE'=>0, // 1 + 'ENTREPRISEUNIPERSONNELERESPONSABILITLIMITE'=>0, // 1 + 'SELARLDEMEDECINSRADIOLOGUES'=>0, // 1 + 'SARLCAPITALUNIQUE'=>0, // 1 + 'SOCITCOOPRATIVEANONYMEARTISANALECAPITALETPERSONNELVARIABLE'=>0, // 1 + 'CU'=>0, // 1 + 'SOCITANONYMEETCONSEILDESURVEILLANCE'=>0, // 1 + 'R'=>0, // 1 + 'RUEJACQUESPRVERT'=>0, // 1 + 'EXPLOITATIONPERSONNELLE'=>0, // 1 + 'SACOOPRATIVEDIRECTOIRECONSEILDESURVEILLANCEETCAPITALVARIABLE'=>0, // 1 + 'SKACVE'=>0, // 1 + 'SOCITPARACTIONSSIMPLIFIELIMITE'=>0, // 1 + 'SADIRECTOIREETCONVEILDESURVEILLANCE'=>0, // 1 + 'SOCITAGRICOLECAPITALVARIABLE'=>0, // 1 + 'SOCITCOOPRATIVEDECAUTIONMUTUELLECAPITALVARIABLELOICOOPRATIVE'=>0, // 1 + 'STECOOPERATIVEAGRICOLEDEPRODUCTION'=>0, // 1 + 'COMITDPARTEMENTAL'=>0, // 1 + 'EMMANUEL'=>0, // 1 + 'SOCITRESPONSABILITLLIMITE'=>0, // 1 + 'SCDECOOPRATIVECAPITALVARIABLE'=>0, // 1 + 'SARLDECOOPRATIVEARTISANALE'=>0, // 1 + 'SCACAPITALETPERSONNELVARIABLES'=>0, // 1 + 'SCPC'=>0, // 1 + 'EUROSMINIMUM'=>0, // 1 + 'SDN'=>0, // 1 + 'SDA'=>0, // 2 + 'COOPRATIVEDECRDITRESPONSABILITLIMITECAPITALVARIABLE'=>0, // 1 + 'SOCITIMMOBILIEREDINVESTISSEMENT'=>0, // 1 + 'SCIE'=>0, // 1 + 'SOCITRDUITEUNASSOCIUUNIQUE'=>0, // 1 + 'SCDEPLACEMENTIMMOBILIERFAISANTPUBLIQUEMENTAPPELLPARGNE'=>0, // 1 + 'COOPRATIVEDECRDITRESPONSABILITLIMITEETCAPITALVARIABLESTATUTAIREMENTLIMITE'=>0, // 1 + 'SARLGRANCEMAJORITAIRE'=>0, // 1 + 'SAEMCOOPRATIVE'=>0, // 1 + 'SCPPROFESSIONNELLE'=>0, // 1 + 'TM'=>0, // 1 + 'GIAR'=>0, // 1 + 'SOCITANONYMECOOPRATIVEDEPRODUCTIONDHLM'=>0, // 1 + 'AU'=>0, // 1 + 'SCPROFESIONNELLEDEMDECINS'=>0, // 1 + 'SCPROFESSIONNELLEDEGOMTRESEXPERTES'=>0, // 1 + 'SCDEPRODUCTIONANONYME'=>0, // 1 + 'SCERI'=>0, // 1 + 'COOPRATIVEDUTILISATIONDEMATRIELAGRICOLEENCOMMUNENCOURSDELIQUIDATION'=>0, // 1 + 'TABLISEMENTPUBLICDELETATCARACTREINDUSTRIELETCOMMERCIAL'=>0, // 1 + 'ETABLISSEMENTSSERRANDOUR'=>0, // 1 + 'SASHLM'=>0, // 1 + 'AFPH'=>0, // 1 + 'SKCVRL'=>0, // 1 + 'SOCITCOOPRATIVEDENTREPRISESDETRANSPORTSRESPONSABILITLIMITEETCAPITALVARIABLES'=>0, // 1 + 'SCDEMOYEN'=>0, // 1 + 'SOCITDCONOMIE'=>0, // 1 + 'SELARLDAVOCAT'=>0, // 1 + 'SARLCOOPRATIVEAGRICOLE'=>0, // 1 + 'PVI'=>0, // 1 + 'SCDECAUTIONMUTUELLECOOPRATIVE'=>0, // 1 + 'SCPDARCHITECTE'=>0, // 1 + 'SARLDECOOPRATIVEDINTRTCOLLECTIF'=>0, // 1 + 'UNIONDECOOPRATIVESAGRICOLESCAPITALVARIABLECOOPRATIVE'=>0, // 1 + 'SAMEMBLEDELUE'=>0, // 1 + 'COMPLTER'=>0, // 1 + 'SASADIRECTOIREETCONSSURV'=>0, // 1 + 'UNIONDECOOPRATIVEAGRICOLECAPITALVARIABLE'=>0, // 1 + 'SACOOPRATIVEDECONSOMMATIONFORMEANONYME'=>0, // 1 + 'SACOOPDIRECTOIRE'=>0, // 1 + 'SOCITANONYMECAPITALETPERSONNELVARIABLES'=>0, // 1 + 'GROUPEMENTFORESTIERAGRICOLE'=>0, // 1 + 'SCPERSONNELVARIABLE'=>0, // 1 + 'SOCITRESPONSABILITLIMITEUNIQUE'=>0, // 1 + 'SUCCURSALEDESOCITTRANGRE'=>0, // 1 + 'COOPRATIVEDINTRTCOLLECTIFCAPITALVARIABLE'=>0, // 1 + 'SOCITRESPONSABILILTLIMITE'=>0, // 1 + 'ACTIVITINDPENDANTEPROFESSIONLIBRALE'=>0, // 1 + 'SOCITCOOPRATIVEPARACTIONSSIMPLIFIE'=>0, // 1 + 'ASSOCIATIONSYNDICALELIBRE'=>9150, // 1 + 'SADECOOPRATIVECAPITALVARIABLE'=>0, // 1 + 'SCCVLEBON'=>0, // 1 + 'SOCITANONYMEDIRECTOIREETCONSEILDADMINISTRATION'=>0, // 1 + 'SCIV'=>0, // 2 + 'SOCITCOOPRATIVERESPONSABILITLIMLITE'=>0, // 1 + 'SOCITDEXERCICELIBRALFORMEANONYMEDEGOMTRESEXPERTS'=>0, // 1 + 'SCIAGRICOLE'=>0, // 1 + 'SCICAFORMECIVILECOOPRATIVE'=>0, // 1 + 'SOCITPARACTIONSIMPLIFIES'=>0, // 1 + 'SARLASSOCUUNIQUE'=>0, // 1 + 'SOCITRESPONSABILITLIMITEDEDROITNERLANDAIS'=>0, // 1 + 'SCDEPRODUCTIONENARLACAPITALVARIABLE'=>0, // 1 + 'SOCITCIVILESC'=>0, // 1 + 'SOCITCOOPRATIVERESPONSABILITETCAPITALVARIABLE'=>0, // 1 + 'SACONSEILDADMINISTRATIONSA'=>0, // 1 + 'SOCITANONYMECOOPRATIVECAPITALVARIABLECOOPRATIVE'=>0, // 1 + 'SOCIETEDEPARTICIPATIONSFINANCIERESDEPROFLIBERALE'=>0, // 1 + 'SARLDUNASSOCIUNIQUE'=>0, // 1 + 'SARLOASSOCIUNIQUE'=>0, // 1 + 'COMMUNAUTDECOMMUNE'=>0, // 1 + 'SCIDEGESTIONPATRIMONIALE'=>0, // 1 + 'SOCITANONYMECOOPRATIVEMARITIMECONSEILDADMINISTRATION'=>0, // 1 + 'UNIONCOOPRATIVECAPITALVARIABLE'=>0, // 1 + 'RUEDELACITADELLE'=>0, // 1 + 'SOCITCIVILEETIMMOBILIRE'=>0, // 1 + 'SAAUCAPITALETPERSONNELVARIABLES'=>0, // 1 + 'SCDECONSTRUCTIONETDEGESTION'=>0, // 1 + 'SARLSARLDARCHITECTURE'=>0, // 1 + 'SELUARLASSOCIUNIQUE'=>0, // 1 + 'AACCAPITALVARIABLE'=>0, // 1 + 'SASAVECASSOCIUNIQUE'=>0, // 1 + 'SOCITDEPARTICIPATIONSFINANCIRESDEPROFESSIONLIBRALER'=>0, // 1 + 'SCEACOOPRATIVE'=>0, // 1 + 'COOPRATIVEAGRICOLEETVINICOLE'=>0, // 1 + 'SKOPA'=>0, // 1 + 'ZI'=>0, // 1 + 'SOCITDEDROITTRANGERSOCITDEDROITBRITANNIQUE'=>0, // 1 + 'COOPERATIVEDECONSOMMATIONENSOCITCIVILE'=>0, // 1 + 'SOCITCIVILECOOPRATIVEDECONSTRUCTIONCAPITALETPERSONNELVARIABLES'=>0, // 1 + 'GFO'=>0, // 1 + 'SCCAVRESPONSABILITLIMITE'=>0, // 1 + 'SARLASSOCIUNIQUEDEDROITPORTUGAIS'=>0, // 1 + 'SCSOCIETECOOPERATIVEDECREDIT'=>0, // 1 + 'SOCITCIVILECOOPRATIVECAPITALVARIABLEETRESPONSABILITSTATUTAIREMENTLIMITE'=>0, // 1 + 'EURLSSB'=>0, // 1 + 'SAENLIQUIDATIONAMIABLE'=>0, // 1 + 'SADEXERCICELIBRE'=>0, // 1 + 'SCPROFESSIONNELLES'=>0, // 1 + 'SCCOOPRATIVEMARITIMECAPITALVARIABLE'=>0, // 1 + 'SAPATRICIPATIONOUVRIRE'=>0, // 1 + 'SARLCMCSTYLAND'=>0, // 1 + 'SAETCONSEILDESURVEILLANCE'=>0, // 1 + 'SARSUNIPERSONNELLE'=>0, // 1 + 'SOCITENCOOPRATIVEAGRICOLE'=>0, // 1 + 'SCOPFORMEANONYNE'=>0, // 1 + 'YVES'=>0, // 1 + 'SOCITCIVILEDEPORTEFEUILLECAPITALVARIABLE'=>0, // 1 + 'SCDEMOYENCAPITALVARIABLE'=>0, // 1 + 'MIRELLE'=>0, // 1 + 'SALONDECOIFFURE'=>0, // 1 + 'SCDECRDITCAPITALVARIABLEETRESPONSABILITLIMITE'=>0, // 1 + 'SALL'=>0, // 1 + 'SARLCOOPRATIVEOUVRIREDEPRODUCTIONETDECRDITSCOP'=>0, // 1 + 'SCICACAPITALVARIABLE'=>0, // 1 + 'CFRMAPHILIPPAGRI'=>0, // 1 + 'SOCITRESPONSABILITLIMITESARLASSOCIUNIQUE'=>0, // 1 + 'SCEAUNIPERSONNELLE'=>0, // 1 + 'SOCITTRANGRERESPONSABILITLIMITE'=>0, // 1 + 'SARLASSOCIUNIQUES'=>0, // 1 + 'SASASSOCIUNQUE'=>0, // 1 + 'SCDEXPLOITATION'=>0, // 1 + 'SOCITCOOPRATIVEFORMECIVILEETCAPITALVARIABLE'=>0, // 1 + 'SCOPA'=>0, // 2 + 'SOCITANONYMENONMEMBREDELACEE'=>0, // 1 + 'SOCITCOOPRATIVEDEPRODUCTIONRESPONSABILITLIMITECAPITAL'=>0, // 1 + 'SCPARTICULIERE'=>0, // 1 + 'SCDEPRODUCTIONRESPONSABILITLIMITECAPITALVARIABLE'=>0, // 1 + 'COOPRATIVEDUTILISTIONDEMATRIELAGRICOLEENCOMMUN'=>0, // 1 + 'SARLCAPITALVARIABLEMONTANTSOUSLEQUELILNEPEUTTRERDUIT'=>0, // 1 + 'SOCITDEDROITHOLLANDAIS'=>0, // 1 + 'SCDECONSTRUCTIONCOOPRATIVE'=>0, // 1 + 'SOCITCOOPRATIVEDEPRODUCTIONETDECRDIT'=>0, // 1 + 'SARLASSOCIUNIQUEETDEDROITLUXEMBOURGEOIS'=>0, // 1 + 'SACONSEILDEDADMINISTRATION'=>0, // 1 + 'SARLASSOICIUNIQUE'=>0, // 1 + 'SARLCOOPRATIVEARTISANALEPERSONNELVARIABLE'=>0, // 1 + 'SACOOPRATIVEPERSONNELVARIABLE'=>0, // 1 + 'SOCITCOOPRATIVEAGRICOLECOOPRATIVECAPITALVARIABLE'=>0, // 1 + 'SARLDEDROITLUXEMBOURGEOIS'=>0, // 1 + 'SNCCAPITALVARIABLEMININUM'=>0, // 1 + 'SOCITCIVILECOOPRATIVEDECRDITCOOPRATIVE'=>0, // 1 + 'COMMUNTTERRITORIALE'=>0, // 1 + 'CHRISTOPHE'=>0, // 1 + 'SOCITCOOPRATIVEDEPRODUCTIONETSARLCAPITALVARIABLE'=>0, // 1 + 'MUTA'=>0, // 1 + 'SCPDEXPERTAGRICOLEFONCIER'=>0, // 1 + 'SEIEEE'=>0, // 1 + 'SOCITDESDROITSETRANGERS'=>0, // 1 + 'COLLECTIVITTERRITORIALEPERSONNEMORALEDEDROITPUBLIC'=>0, // 1 + 'SAOV'=>0, // 1 + 'GMBH'=>0, // 1 + 'SDECISE'=>0, // 1 + 'SADINTERETCOLLECTIFAGRICOLE'=>0, // 1 + 'SOCIETECOOPERATIVEOUVRIERE'=>0, // 1 + 'ASOSCIATION'=>0, // 1 + 'SDOD'=>0, // 1 + 'SCDAVOCATS'=>0, // 1 + 'SARLUUE'=>0, // 1 + 'SARLMOTARD'=>0, // 1 + 'GRANDRUE'=>0, // 1 + 'SARLSCOOP'=>0, // 1 + 'MJC'=>0, // 1 + 'SASAVECCONSEILDADMINISTRATION'=>0, // 1 + 'SAOO'=>0, // 1 + 'SOCITDEXERCICELIBRALFORMEANONYMESELEFACONSEILDADMI'=>0, // 1 + 'SCCOOPRATIVEDINTRTCOLLECTIFAGRICOLE'=>0, // 1 + 'SACPDHLM'=>0, // 1 + 'SOCITRESPONSABILITASSOCIUNIQUE'=>0, // 1 + 'SCOPANONYMEPERSONNELETCAPITALVARIABLE'=>0, // 1 + 'IMMEUBLELECAHNENTREDTILLEULARGENT'=>0, // 1 + 'SOCITDEXERCICELIBRALRESPONSABILITLIMITEDEPHARMACIENS'=>0, // 1 + 'SADIRECTEURETCONSEILDESURVEILLANCE'=>0, // 2 + 'SNCVARIABLE'=>0, // 1 + 'NONPCISE'=>0, // 1 + 'SIAARL'=>0, // 1 + 'SOICTRESPONSABILITLIMITE'=>0, // 1 + 'SELURLASSOCIUNIQUE'=>0, // 1 + 'SCDEPLACEMENTCOLLECTIFIMMOBILIERETCAPITALVARIABLE'=>0, // 1 + 'SARLASSOCIUNIQUECOMPTERDUDCEMBRE'=>0, // 1 + 'SCPDARCHITECTURE'=>0, // 1 + 'UNIONDCONOMIESOCIALERESPONSABILITLIMITE'=>0, // 1 + 'SOCITCIVILEFINANCIRE'=>0, // 1 + 'SCIENCONSTRUCTIONVENTE'=>0, // 1 + 'SACOOPRATIVEDEPRODUCTIONDEHLMDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 1 + 'CL'=>0, // 1 + 'COOPRATIVEDECRDITCAPITALVARIABLERESPONSABILITLIMITE'=>0, // 1 + 'UNIONCONOMIQUEETSOCIALEDESARLCAPITALVARIABLE'=>0, // 1 + 'TDM'=>0, // 1 + 'SARLENCOURSDELIQUIDATION'=>0, // 1 + 'SICAANONYMEETCAPITALVARIABLE'=>0, // 1 + 'SAAVECCONSEILDADMINISTRATION'=>0, // 1 + 'SCDEMOYENSCAPITALVARIABLE'=>0, // 1 + 'ASSOCIATIONRGIESELONLALOIDEGM'=>9220, // 1 + 'SARLASSOCIUIQUE'=>0, // 1 + 'ETABLISSEMENTPUBLICDELTATCRPARDCRET'=>0, // 1 + 'AUMARCHDUBOUQUET'=>0, // 1 + 'ASSOCIATIONDEDROITLOCALINSCRITEAUREGISTREDESASSOCIATIONSDUTRIBUNALDINSTANCEDEHAGUENAU'=>0, // 1 + 'SCL'=>0, // 1 + 'SACIESTSADECRDITIMMOBILIERDELEST'=>0, // 1 + 'SARLSOCITUNIQUE'=>0, // 1 + 'SOCITENCOMMANDITESIMPLESOCITPARACTIONSSIMPLIFIEACTIONNAIREUNIQUE'=>0, // 1 + 'SOCITCIVILEEXPLOITATIONAGRICOLE'=>0, // 1 + 'SOCITDEDROITSETRANGER'=>0, // 1 + 'SCOUVRIREDEPRODUCTIONCOOPRATIVE'=>0, // 1 + 'SASUNIFIEASSOCIUNIQUE'=>0, // 1 + 'FPOI'=>0, // 1 + 'ETABLISSEMENTPUBLICDECOOPRATIONCULTURELLEINDETCOMMER'=>0, // 1 + 'SOCITENCOMMANDITEPARACTIONSNONMEMBREDELACEE'=>0, // 1 + 'SYNDICATDINITIATIVE'=>0, // 1 + 'SOCITDEGROUPEDASSURANCESMUTUELLE'=>0, // 1 + 'SADEDROITJAPONAIS'=>0, // 1 + 'SCCOOPRATIVEDECONSTRUCTIONCAPITALVARIABLE'=>0, // 1 + 'COMMUNAUTRURALE'=>0, // 1 + 'SCPDECHIRURGIENSDENTISTES'=>0, // 1 + 'SELARLDEPARTICIPATIONSFINANCIRES'=>0, // 1 + 'SCD'=>0, // 1 + 'SATL'=>0, // 1 + 'COOPRATIVECAPITALETPERSONNELVARIABLE'=>0, // 1 + 'TABLISSEMENTPUBLICDESANT'=>0, // 1 + 'SCDECONSTRUCTIONVETE'=>0, // 1 + 'MEMBREDELUE'=>0, // 1 + 'SCDECONSTRUCTIOINVENTE'=>0, // 1 + 'SCPROFESSIONNELLEDEMANDATAIRESLIQUIDATEURS'=>0, // 1 + 'ASSOCIATIONDEDROITLOCAL'=>9260, // 1 + 'RGIEPERSONNALISEDOTEDELAPERSONNALITMORALEETDELAUTONOMIEFINANCIRE'=>0, // 1 + 'MONSIEURETMADAME'=>0, // 1 + 'SCAF'=>0, // 1 + 'SOCIETEETRANGEREIMMATRICULEEAURCSDEBONNEVILLE'=>0, // 1 + 'SICASOUSFORMEDESACAPITALVARIABLE'=>0, // 1 + 'SERSAS'=>0, // 1 + 'LDP'=>0, // 1 + 'SCRESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 1 + 'SOCITDEDROITTRANGERSOCITDEDROITBRITANIQUE'=>0, // 1 + 'SAOUVRIRECOOPRATIVEPERSONNELETCAPITALVARIABLE'=>0, // 1 + 'SELEURLUE'=>0, // 1 + 'CUMAM'=>0, // 1 + 'ASSOCIATIONORDREAPOSTOLIQUE'=>9220, // 1 + 'SARLENDROITETRANGER'=>0, // 1 + 'SARLASSOCIUNIQUEPRCDENTPROPRITAIREEXPLOITANT'=>0, // 1 + 'GE'=>0, // 2 + 'SACONSEILDADMINISTRATIONGM'=>0, // 1 + 'SOCITANONYMEPRIVEPARACTIONS'=>0, // 1 + 'SOCITCOOPRATIVEDECONSOMMATIONCAPITALVARIABLEETPERSONNELVARIABLE'=>0, // 1 + 'SACONSEILDADMINISTRATIONETCAPITALVARIABLE'=>0, // 1 + 'SARLMEMBREDELALUE'=>0, // 1 + 'RCSSAINTDENISB'=>0, // 1 + 'SASUUNIPERSONNELLE'=>0, // 1 + 'SICAFANONYMEACONSEILTITREORDONNANCE'=>0, // 1 + 'SASSIMPLIFI'=>0, // 1 + 'SCDECONSTRUCTIONVENT'=>0, // 1 + 'SOCITENNOMCOLLECTIFASSOCIUNIQUE'=>5202, // 1 + 'SOCITCOOPRATIVEAGRICOLECAPITALVARIBLE'=>0, // 1 + 'TABLISSEMENTDECRDITBUTNONLUCRATIFCAPITALVARIABLE'=>0, // 1 + 'CONFDRATIONINTERSYNDICALE'=>0, // 1 + 'SCSOCITENLIQUIDATIONAMIABLE'=>0, // 1 + 'COPRESPONSABILITLIMITE'=>0, // 1 + 'SAOD'=>0, // 1 + 'SACOOPRATIVECOMMERANTSDTAILLANTS'=>0, // 1 + 'SCPROFESSIONNELLEDAVOCATSAUCONSEIL'=>0, // 1 + 'SOCITCOOPRATIVEANONYMEDETRAVAILLEURS'=>0, // 1 + 'SCAD'=>0, // 1 + 'SARLCONSTITUERDUNASSOCIUNIQUE'=>0, // 1 + 'SOCIETECOOPERATIVEOUVRIEREDEPRODUCTIONACONSEILDADMINISTR'=>0, // 1 + 'SOCITCIVILEGROUPEMENTFORESTIER'=>0, // 1 + 'SCPROFESISONNELLE'=>0, // 1 + 'SCPARTICULIREREGROUPEMENTFONCIERAGRICOLE'=>0, // 1 + 'SICACONSEILDADMINISTRATION'=>0, // 1 + 'SOCITCOOPRATIVEAGRICOLEDINTRTCOLLECTIFRESPONSABILITLIMITE'=>0, // 1 + 'SCDEXPLOITATIONRURALEETAGRICOLE'=>0, // 1 + 'BOULEVARDDUCOLOMBIER'=>0, // 1 + 'SOCITANONYMEMONGASQUE'=>0, // 1 + 'SOCITCOOPRATIVEDEPRODUCTIONRESPONSABILITLIMITEETAUCAPITALVARIABLE'=>0, // 1 + 'SANONEUROPENNE'=>0, // 1 + 'SACONSEILDADMINISTRATIONDHABITATIONLOYERMODR'=>0, // 1 + 'ASDETRFLEETVOTREIMAGE'=>0, // 1 + 'MAURICE'=>0, // 1 + 'SASCOOPRATIVEDINTRTCOLLECTIFCAPITALVARIABLE'=>0, // 1 + 'SCIDATTRIBUTIONDECONSTRUCTION'=>0, // 1 + 'SERGE'=>0, // 1 + 'SCDECONSTRUCTIONETSOCITDEGESTION'=>0, // 1 + 'SASASSOCUNIQUE'=>0, // 1 + 'SCILESPITCHES'=>0, // 1 + 'ASSOCIATIONLOIERJUILLET'=>9220, // 1 + 'SICAVSA'=>0, // 1 + 'SCICAFORMEANONYMEETCAPITALVARIABLE'=>0, // 1 + 'TABLISSEMENTPUBLICLOCAL'=>0, // 1 + 'SEARLU'=>0, // 1 + 'SACOOPRATIVEDINTRTCOLLECTIFPOURLACCESSIONLAPROPRITALSACE'=>0, // 1 + 'JEANMAX'=>0, // 1 + 'GUILLAUME'=>0, // 1 + 'GCA'=>0, // 1 + 'SOCITCOOPRATICERESPONSABILITLIMITE'=>0, // 1 + 'SOCITTCIVILEPROFESSIONNELLE'=>0, // 1 + 'SCADINTRTCOLLECTIFAGRICOLECOOPRATIVE'=>0, // 1 + 'SOCITUNIPERSONNELLERESPONSABILITLIMITE'=>0, // 1 + 'ASSOCIATIONLOS'=>9220, // 1 + 'SCPAV'=>0, // 1 + 'SASASSSOCIUNIQUE'=>0, // 1 + 'SARLASOCIEUNIQUE'=>0, // 1 + 'SELRAL'=>0, // 1 + 'CSI'=>0, // 1 + 'SARLSOCIETEETRANGERE'=>0, // 1 + 'SACOOPRATIVEOUVRIREDEPRODUCTIONCAPITALETPERSONNELVARIABLE'=>0, // 1 + 'SDM'=>0, // 1 + 'SSADIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 1 + 'SOCITRESPONSABILITRDUITEUNASSOCI'=>0, // 1 + 'SNCDEDROITITALIEN'=>0, // 1 + 'VENTETITREAMBULANT'=>0, // 1 + 'SPASUNIPERSONNELLE'=>0, // 1 + 'CMCCAPITALVARIABLE'=>0, // 1 + 'SARLB'=>0, // 1 + 'SARLASSOCIATIONUNIQUE'=>0, // 1 + 'SARLAUTRESOCITRESPONSABILITLIMIT'=>0, // 1 + 'ORGANISMEDEGESTIONDELCOLECATHOLIQUE'=>0, // 1 + 'SCSMEMBREDELUE'=>0, // 1 + 'ETR'=>0, // 1 + 'GROUPEMENTDEXPLOITATIONAGRICOLERESPONSABILITLIMITE'=>0, // 1 + 'SNR'=>0, // 1 + 'LAURENCE'=>0, // 1 + 'SCFERMIRE'=>0, // 1 + 'ACEA'=>0, // 1 + 'SOCIETEARESPONSABILITELIMITEDEDROITBRITANIQUE'=>0, // 1 + 'SOCITCIVILEPARTICULIRECAPITALETPERSONNELVARIABLES'=>0, // 1 + 'SACOOPRATIVEDEPRODUCTIONETDECRDIT'=>0, // 1 + 'SARLUNIPERSONNELLLE'=>0, // 1 + 'RCSMETZB'=>0, // 1 + 'SEURL'=>0, // 1 + 'JCASARL'=>0, // 1 + 'COMMUNAUTDESCOMMUNES'=>0, // 1 + 'SASSIMPLIFIEUNIPERSONNELLE'=>0, // 1 + 'UNIONCONOMIQUESOCIALESARLCAPITALVARIABLE'=>0, // 1 + 'SCOPARLCAPITALVARIABLE'=>0, // 1 + 'SADIRECTOIRETCONSEILDESURVEILLANCE'=>0, // 1 + 'SOCITASSOCI'=>0, // 1 + 'EURLSOCIETEMISEENLIQUIDATION'=>0, // 1 + 'COOPRATIVERESPONSABLITLIMITE'=>0, // 1 + 'SCPROFESSIONNELLEDECONSEILENPROPRITINDUSTRIELLE'=>0, // 1 + 'STEARESPONSABILITELIMITEEDEPRESSE'=>0, // 1 + 'SBS'=>0, // 1 + 'SOCITNONCOMMERCIALE'=>0, // 1 + 'SCAGRICOLESOCITENLIQUIDATION'=>0, // 1 + 'SARLDINTERETCOLLECTIFAGRICOLESICA'=>0, // 1 + 'SOCITDEXERCICELIBRALASSOCIUNIQUEETRESPONSABILITLIMITE'=>0, // 1 + 'SESARL'=>0, // 1 + 'JACQUELINE'=>0, // 1 + 'SARLCOOPRATIVEOUVRIREDEPRODUCTIONCAPITALVARIABLE'=>0, // 1 + 'SCDEPLACEMENTIMMOBILIERFAISANTAPPELPUBLICLPARGNE'=>0, // 1 + 'SAIS'=>0, // 1 + 'PLACEDUPALAISDEJUSTICE'=>0, // 1 + 'SOV'=>0, // 1 + 'SCDEMOOYENS'=>0, // 1 + 'SACOOPRATIVEETCAPITALVARIALE'=>0, // 1 + 'SARLEUROPENNE'=>0, // 1 + 'RRLCONSTITUEDUNASSOCIUNIQUE'=>0, // 1 + 'SELECA'=>0, // 1 + 'SCOPFORMEANONYMEETPERSONNELETCAPITALVARIABLE'=>0, // 1 + 'ANCIENDOSSIERFNONINSCRIT'=>0, // 1 + 'SOCITRESPONSABILITLIMITEASSOCIUNIQUEGRANCEMAJORITAIRE'=>0, // 1 + 'SCOPFORMEANONYMEPERSONNELETCAPITALVARIABLE'=>0, // 1 + 'SOCITCOOPRATIVEDETRAVAILLEURRESPONSABILITLIMITE'=>0, // 1 + 'BANQUECOOPRATIVERGIEPARLALOINODU'=>0, // 1 + 'OVINALPDVELOPPEMENT'=>0, // 1 + 'SOCITCOOPRATIVEPARACTIONSSIMPLIFIEDINTRTCOLLECTIFAGRICOLECAPITALVARIABLE'=>0, // 1 + 'SANATIONALEDIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 1 + 'SCDEXPLOITATIONAGRICOLERESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 1 + 'SOCITPARACTIONSMEMBREDELUE'=>0, // 1 + 'BDEREV'=>0, // 1 + 'RUEPIERREBROSSOLETTE'=>0, // 1 + 'SDERIJKSSTRAATWEGBCPLEERSUMPAYSBAYS'=>0, // 1 + 'SOCITDCONOMIEMIXTEENLIQUIDATION'=>0, // 1 + 'SCADUNIONDCONOMIESOCIALE'=>0, // 1 + 'SOCITCOOPRATIVEDINTRTAGRICOLECAPITALVARIABLE'=>0, // 1 + 'FR'=>0, // 1 + 'SOCITCOOPRATIVEDEPRODUCTIONARL'=>0, // 1 + 'FORMATIONASSOCIATION'=>9220, // 1 + 'SASUNIPERSONNELLESASACTIONNAIREUNIQUE'=>0, // 1 + 'SOCITCOOPRATIVEPERSONNELVARIABLESOCITCOOPRATIVEAGRICOLECAPITALETPERSONNELVARIABL'=>0, // 1 + 'SOGITRESPONSABILITLIMITEASSOCIUNIQUE'=>0, // 1 + 'SEP'=>0, // 1 + 'SDDE'=>0, // 1 + 'SAASSOCI'=>0, // 1 + 'SASCOP'=>0, // 1 + 'SOCITCARACTIONSSIMPLIFIEUNIPERSONNELLE'=>0, // 1 + 'SCEXPLOITATIONAGRICOLERESPONSABILITLIMITE'=>0, // 1 + 'SAOG'=>0, // 1 + 'M'=>0, // 1 + 'SYNDICATPATRONAL'=>0, // 1 + 'PATRICE'=>0, // 1 + 'EUASSOCIUNIQUE'=>0, // 1 + 'SCPROFESSIONNEELLE'=>0, // 1 + 'SADIRECTOIREETCONSEILDEDIRECTOIRE'=>0, // 1 + 'SAEU'=>0, // 1 + 'CAISSELOCALEDECRDITMUTUEL'=>0, // 1 + 'VISIONSTRATGIEMOYENS'=>0, // 1 + 'ASSOCIATIONRGIESEL'=>9220, // 1 + 'SOCITRESPONSABILITLIMITEENTREPRISEAGRICOLERESPLIMITE'=>0, // 1 + 'SPOCITCOOPRATIVERESPONSABILITLIMITEETCAPITALVARIABLE'=>0, // 1 + 'SCCIVILEDECONSTRUCTIONVENTE'=>0, // 1 + 'SARLASSOCISUNIQUEEUROS'=>0, // 1 + 'SOCITDEPARTICIPATIONFINANCIREDEPROFESSIONLIBRALEDAVOCATSSOUSFORMEDESAS'=>0, // 1 + 'SCPANONYMECAPITALVARIABLE'=>0, // 1 + 'SOCITCIVILEIMMOBILIRESC'=>0, // 1 + 'SELARLDENTREPRISEUNIPERSONNELLERESPONSABILITLIMITE'=>0, // 1 + 'SCACAPITABLEVARIABLE'=>0, // 1 + 'SCCM'=>0, // 1 + 'ST'=>0, // 1 + 'CAISSEDECRDITAGRICOLE'=>0, // 1 + 'FRANAISE'=>0, // 1 + 'SOCITCIVIL'=>0, // 1 + 'BOUCHERIEDRUAUX'=>0, // 1 + 'SCIENLIQUIDATIONANTICIPE'=>0, // 1 + 'SARLAMEMBREDELACEE'=>0, // 1 + 'SOCITDEXPERTISECOMPTABLE'=>0, // 1 + 'STECOOPDEPRODUCTIONARESLIMITEEACAPVAR'=>0, // 1 + 'SARLLIMIT'=>0, // 1 + 'ETABLISSEMENTPUBLICDELTATCARACTREADMINISTRATIF'=>0, // 1 + 'UNIONDECONOMIESOCIALESOCITCOOPRATIVESARL'=>0, // 1 + 'COOPRESPONSABILITLIMITE'=>0, // 1 + 'DOCITCIVILE'=>0, // 1 + 'SKCI'=>0, // 1 + 'SOCIETEANONYMEDEDROITCOMMUN'=>0, // 1 + 'SACCAPITALVARIABLE'=>0, // 1 + 'SOCITCOOPRATIVEDINTRTCOLLECTIFSOUSFORMEDESARL'=>0, // 1 + 'SOCITCOOPRATIVEDEPRODUCTIONSARL'=>0, // 1 + 'SPS'=>0, // 1 + 'SADIRECTOIREETCONSEILDESURVEILLANCESADIRECTOIREETCONSEILDESURVEILLANCE'=>0, // 1 + 'SKCPV'=>0, // 1 + 'SOCITCOOPRATIVEANONYMEDINTRTCOLLECTIFCAPITALVARIABLE'=>0, // 1 + 'HAMIDOU'=>0, // 1 + 'SOCITRESPONSABILITLIIMITE'=>0, // 1 + 'SADIRECTOIREETCONSEILDESURVEILLANCEETCAPITALVARIABLE'=>0, // 1 + 'SCPROFESSIONNELLEDECONSEILSJURIDIQUES'=>0, // 1 + 'AUPTITFOURDUMOULIN'=>0, // 1 + 'SCIVENTE'=>0, // 1 +); + ?> \ No newline at end of file diff --git a/library/Metier/common/ICotation.inc b/library/Metier/common/ICotation.inc new file mode 100644 index 00000000..2e6c9742 --- /dev/null +++ b/library/Metier/common/ICotation.inc @@ -0,0 +1,302 @@ +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É !
    '; + return $i; + } + } + // echo 'NAF '.$naf.' non trouvé !
    '; + $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].'
    '; + 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].'
    '; + } + 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; + } +} + +} \ No newline at end of file diff --git a/library/Metier/common/controles.php b/library/Metier/common/controles.php new file mode 100644 index 00000000..1f2401a8 --- /dev/null +++ b/library/Metier/common/controles.php @@ -0,0 +1,47 @@ +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; +} +?> \ No newline at end of file diff --git a/library/Metier/common/fonctions.php b/library/Metier/common/fonctions.php new file mode 100644 index 00000000..f843387e --- /dev/null +++ b/library/Metier/common/fonctions.php @@ -0,0 +1,339 @@ + 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']), ''); + } + //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, ''); + $VID=getTextInHtml($pageHtml, ''); + $e_cookie=getTextInHtml($pageHtml, ''); + + $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, ''); + $OBJ_GEO=getTextInHtml($pageHtml, ''); + } + 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, ''); + $NUM_RUE=getTextInHtml($pageHtml, ''); + } + + if ($input_image<>'') { + $CODE_LOC_INFO_VILLE=getTextInHtml($pageHtml, ''); + + $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, '', '', 'réponse(s)')); + $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', '', ''); + $ligneAdresse=html_entity_decode(getTextInHtml($value, '', '', '|')); + $tabligneAdresse=explode('
    ', $ligneAdresse); + $ligneAdresse1=strip_tags($tabligneAdresse[0]); + $ligneAdresse2=strip_tags($tabligneAdresse[1]); + $dispoPlan =(bool)(strpos($value, 'Plan')); + $dispoIti =(bool)(strpos($value, 'Itinéraire')); + $dispoPhoto =(bool)(strpos($value, 'Photo')); + $dispoWeb =(bool)(strpos($value, 'Site   ')); + $lienWeb=getTextInHtml($value, '$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]; +} +?> \ No newline at end of file diff --git a/library/Metier/common/insee.class.php b/library/Metier/common/insee.class.php new file mode 100644 index 00000000..e05690db --- /dev/null +++ b/library/Metier/common/insee.class.php @@ -0,0 +1,548 @@ +Fiche Etablissement'); + if ($pos>0) + $tabRet['typeEtablissement']='secondaire'; + + $pos=strpos($pageHtml, '', 'class="basictext">', ''); + $tabRet['adresseSiege']=getTextInHtml($pageHtml, '', 'class="basictext">', ''); + print_r($tabRet); + die(); + // Capital social + + // Chiffre d'affaires + + // Date CA + + // Effectif + + // Forme Juridique + + // Nationalité + + // Activité + + // Siège social + /* + + + + + + + +
    Fiche siège'); + if ($pos>0) + $tabRet['typeEtablissement']='siège'; + + // Recherche Dernière MAJ / Activité + $pos=strpos($responseSiege, '(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, 'Absence d\'activité notée le : '); + if ($pos>0) $tabRet['dateAbsActivite']=substr($responseSiege, $pos+78, 10); + else { + $pos=strpos($responseSiege, 'Absence d\'activité'); + if ($pos>0) $tabRet['dateAbsActivite']=''; + } + } + + $pos=strpos($responseSiege, ' size="-1"> n° SIRET :'); + $tabRet['siret']=str_replace(' ', '', html_entity_decode(substr($responseSiege, $pos+97, 32))); + + $pos=strpos($responseSiege, 'size="-1"> Date de création :'); + if ($pos>0) { + $posFin=strpos($responseSiege, '', $pos+109); + $tabRet['dateCreation']=str_replace(' ', '', html_entity_decode(substr($responseSiege, $pos+109, $posFin-($pos+109)))); + } + else $tabRet['dateCreation']=''; + + $pos=strpos($responseSiege, ' size="-1"> Raison sociale et Enseigne :'); + $len=127; + if ($pos==0){ + $pos=strpos($responseSiege, ' size="-1"> Raison sociale et Enseigne :'); + $len=122; + if ($pos==0){ + $pos=strpos($responseSiege, ' size="-1"> Raison sociale et Enseigne :'); + $len=126; + $libelleErreur='Informations INSEE non diffusables'; + } + } + if ($libelleErreur=='') { + //LARGE*DOMINIQUE MICHEL/
    GERANT SARL BIMAGIQUE  
    + $posFin=strpos($responseSiege, '', $pos+$len); + $raisonSocialeStr=trim(substr($responseSiege, $pos+$len, $posFin-($pos+$len))); + $raisonSocialeTabLigne=explode('
    ', $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"> Activité principale :
    '); + $tabRet['NafCode']=substr($responseSiege, $pos+120, 4); + $tabRet['NafLib']=trim(substr($responseSiege, $pos+137, 70)); + + $pos=strpos($responseSiege, ' size="-1"> Adresse :'); + $posFin=strpos($responseSiege, '', $pos+103); + $AdresseStr=substr($responseSiege, $pos+103, $posFin-($pos+103)); + $AdresseTabLigne=explode('
    ', $AdresseStr);//' + $tabRet['AdresseLigne1']=str_replace(' ', '/', $AdresseTabLigne[0]); + $tabRet['AdresseLigne2']=str_replace(' ', '/', $AdresseTabLigne[1]); + $tabRet['AdresseLigne3']=str_replace(' ', '/', $AdresseTabLigne[2]); + /* + $AdresseNum=$AdresseTabLigne1[0]; + $AdresseVoi=$AdresseTabLigne1[1]; + $AdresseRue=$AdresseTabLigne1[2]; + $AdresseCP=$AdresseTabLigne2[0]; + $AdresseVille=$AdresseTabLigne2[1]; + */ + $pos=strpos($responseSiege, 'L\'entreprise est connue au répertoire comme '); + if ($pos>0) { + $posFin=strpos($responseSiege, '', $pos+106); + $tabRet['etatJuridique']=html_entity_decode(substr($responseSiege, $pos+106, $posFin-($pos+106))); + $tabRet['dateEtatJuridique']=''; + } else { + $pos=strpos($responseSiege, 'L\'entreprise est cessée le : '); + $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"> Date de création :
    '); + if ($pos>0) + $tabRet['dateCreationEntrep']=substr($responseEntreprise, $pos+109, 10); + else + $tabRet['dateCreationEntrep']=''; + + // Raison sociale et Sigle + $pos=strpos($responseEntreprise, ' size="-1"> Raison sociale et Sigle :'); + $posFin=strpos($responseEntreprise, '', $pos+123); + $raisonSocialeStr=trim(substr($responseEntreprise, $pos+123, $posFin-($pos+123))); + $raisonSocialeTabLigne=explode('
    ', $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"> Activité principale :
    '); + $tabRet['NafCodeEntrep']=substr($responseEntreprise, $pos+120, 4); + $tabRet['NafLibEntrep']=trim(substr($responseEntreprise, $pos+137, 70)); + + // Forme Juridique + $pos=strpos($responseEntreprise, ' size="-1"> Forme juridique :'); + $tabRet['FJCodeEntrep']=substr($responseEntreprise, $pos+116, 4); + $tabRet['FJLibEntrep']=trim(substr($responseEntreprise, $pos+133, 70)); + + // Nb Etab Actifs + $pos=strpos($responseEntreprise, ' size="-1"> Nb établissements actifs :'); + $posFin=strpos($responseEntreprise, '', $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

    , 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
    , 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, '

    ', '
    ', '
    '); + $tabRet['RCS']=getTextInHtml($pageHtml, 'RCS ', 'RCS ', '', true); + $tabRet['activite']=getTextInHtml($pageHtml, '
    ActivitéSiège + social
    Siège + social75 Avenue la Grande Armee
    + 75116 PARIS 16
    +

    +
    +
    + + + + + + +
    Renseignements + juridiques 
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Forme + juridiqueSA à conseil d'administration
    Capital social171.285.000,00 + EURO
    NationalitéFrance
    +

    +
    +
    +
    + + + + + + +
    Chiffres + clésau 31-12-2004
    + + + + + + + + + + + + + + + +
    Chiffre + d'affaires18.049.000.000 + EU
    EffectifDe 5150 à 5720
    +

    +
    +
    +
    +
    + */ + return $tabRet; +} + +function getDataEcoCoface($pageHtml) { + + global $libelleErreur; + + $tabRet=array(); + + // SIREN + $pos=strpos($pageHtml, '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.'); + if ($pos>0) { + $tabRet['infoEco']='OUI'; + $tabRet['societeInactive']=@getTextInHtml($pageHtml, '', ''); + $strCapital=@getTextInHtml($pageHtml, ''); + $tabTmp=explode('', $strCapital); + $tabRet['capital_source']=str_replace(')', '', $tabTmp[0]); + $tabTmp=explode(' ', $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, '', ''); + $tabRet['formeJuridique']=@getTextInHtml($pageHtml, '', ''); + $tabRet['cotationBourse']=@getTextInHtml($pageHtml, '', ''); + $tabRet['effectifSociete']=@getTextInHtml($pageHtml, '', ''); + $tabRet['activite']=@getTextInHtml($pageHtml, '', ''); + + $tabRet['sigle']=@getTextInHtml($pageHtml, '', ''); + $tabRet['enseigne']=@getTextInHtml($pageHtml, '', ''); + + // Dirigeants + $strDir=@getTextInHtml($pageHtml, '', '', '
    Société inactive ', ' Capital   (', '(', '
    Date de création ', ' Forme juridique ', ' Cotation en bourse ', ' Effectif société ', ' Activité ', ' Sigle ', ' Enseigne ', 'IDENTITE 
    '); + $tabDir=explode('', $strDir); + $nbDir=1; + foreach ($tabDir as $key => $dir) + { + $tabTmp=explode(' ', $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(' ', $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, 'LIENS FINANCIERS', ' ', ''); + if (strpos($strTmp, 'Néant')>0) + $tabRet['LiensFinanciers']='Néant'; + else + $tabRet['LiensFinanciers']='Présence liens'; + + // ELEMENTS FINANCIERS + $strTmp=@getTextInHtml($pageHtml, 'ELEMENTS FINANCIERS', ' ', ''); + 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, '
     Qui sommes nous - Qui sommes nous - Raison sociale
    ', '', ''); + $tabRS_Adr=explode('
    ', $strRS_Adr); + $tabRet['raisonSociale']=trim($tabRS_Adr[0]); + $tabRS_Adr1=explode(' ', $tabRS_Adr[1]); + $tabRet['AdresseLigne1']=trim($tabRS_Adr1[0]); + $tabRet['AdresseLigne2']=trim($tabRS_Adr1[1]); + $tabRS_Adr1=explode(' ', $tabRS_Adr[2]); + $tabRet['codePostal']=trim($tabRS_Adr1[0]); + $tabRet['ville']=trim($tabRS_Adr1[1]); + $tabRet['UrlGeoLoc']=@getTextInHtml($pageHtml, '
    Téléphone
    ', '', ''); + $tabTelFax=explode('
    ', $strTelFax); + $tabRet['tel']=trim($tabTelFax[0]); + $tabRet['fax']=trim($tabTelFax[1]); + + // Adresse Internet / Email + $strInet=@getTextInHtml($pageHtml, 'Adresse internet
    ', '
    ', '>', '') ); + $tabRet['mail']=trim( @getTextInHtml($tabInet[1], ' href="mailto:', ':', '">') ); + + // Bourse + $strBourse=@getTextInHtml($pageHtml, ' '."\r\n".' Code Sicovam
    ', '', ''); + $tabBourse=explode('
    ', $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(' ', ' ', @getTextInHtml($pageHtml, 'Libellé code activité ', '', ''))); + + // Produits disponibles + $strDispos=@getTextInHtml($pageHtml, '
    Produits disponibles


    ', '', '
    '); + $tabDispos=explode(' $produit) + { + $produit=trim(str_replace('>', '', str_replace('nowrap>', '', strip_tags($produit)))); + if ($produit<>'' && $produit<>' ') { + $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,'', $s_temp); + $tabUrl[$a_temp[1]]=$a_temp[0]; + } + return $tabUrl; +} + +function getTabListeGU($pageHtml) { + $tabGU=array(); + $deb=$fin=0; + /* Lancer la recherche dans toute la localité +Lancer la recherche sans l'adresse +*/ + while( is_int(($deb=strpos($pageHtml,'', $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);">Lancer la recherche dans toute la localité + onMouseOver="javascript:mOvr(this);" onMouseOut="javascript:mOut(this);">Lancer la recherche sans l'adresse +*/ + while( is_int(($deb=strpos($pageHtml,'onMouseOver="javascript:mOvr(this);" onMouseOut="javascript:mOut(this);">', $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; + /* +
  • Le type de voie a été modifié
    +
  • L'orthographe du mot directeur a été modifiée
    +
  • Le code postal a été forcé à partir du département et de la localité
    +*/ +} + ?> \ No newline at end of file diff --git a/library/Metier/common/normad.class.php b/library/Metier/common/normad.class.php new file mode 100644 index 00000000..7419b526 --- /dev/null +++ b/library/Metier/common/normad.class.php @@ -0,0 +1,89 @@ +$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, '', '', '', 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, '
  • ', 'i>', '
    ', false, false, true, true, $posInHtml, 0); + + // Récupération des Lignes d'adresse + $tabRet['ligne1']=$adrL1; + $tabRet['ligne2']=getTextInHtml($page, 'Adresse en sortie :', '', '', false, false, true, true, $posInHtml); + $tabRet['ligne3']=getTextInHtml($page, ' Volet 2 : ', '', '', false, false, true, true, $posInHtml); + $tabRet['ligne4']=getTextInHtml($page, ' Volet ', '', '', false, false, true, true, $posInHtml); + $tabRet['ligne5']=getTextInHtml($page, ' Volet 4 : ', '', '', false, false, true, true, $posInHtml); + $tabRet['CP']=getTextInHtml($page, ' CP : ', '', '', false, false, true, true, $posInHtml); + $tabRet['ville']=getTextInHtml($page, ' Localité : ', '', '', false, false, true, true, $posInHtml); + $tabRet['ligne6']=$tabRet['CP'] .' '. $tabRet['ville']; + + // Découpage de la rue + $tabRet['voie_num']=getTextInHtml($page, 'Numéro ', '', '
    ', false, false, true, true, $posInHtml); + $tabRet['voie_btq']=getTextInHtml($page, 'Bis/Ter/Quater/...', '', '
    ', false, false, true, true, $posInHtml); + $tabRet['voie_type']=getTextInHtml($page, 'Type', '', '
    ', false, false, true, true, $posInHtml); + $tabRet['voie_denom']=getTextInHtml($page, 'Dénomination', '', '
    ', false, false, true, true, $posInHtml); + $tabRet['voie_motDir']=getTextInHtml($page, 'directeur :
    ', '', '
    ', false, false, true, true, $posInHtml); + $tabRet['voie_matric']=getTextInHtml($page, 'Matricule voie :', '
    ', '
    ', false, true, true, true, $posInHtml); + $tabRet['code_insee_commune']=getTextInHtml($page, 'Code INSEE commune :', '
    ', '
    ', 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"; + } + +/* + Détails :
    + + 00441644
    + + 28074
    +
    +
    + + + +
    + + + +

     

    +

    Référentiels + d'avril 2006

    +*/ + + } ?> \ No newline at end of file diff --git a/library/Metier/common/paramCotation.inc b/library/Metier/common/paramCotation.inc new file mode 100644 index 00000000..6fcc5416 --- /dev/null +++ b/library/Metier/common/paramCotation.inc @@ -0,0 +1,170 @@ +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:'); + + ?> \ No newline at end of file diff --git a/library/Metier/common/rncs.class.php b/library/Metier/common/rncs.class.php new file mode 100644 index 00000000..cc0c0025 --- /dev/null +++ b/library/Metier/common/rncs.class.php @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/library/Metier/conversion/bilAltares.php b/library/Metier/conversion/bilAltares.php new file mode 100644 index 00000000..530df221 --- /dev/null +++ b/library/Metier/conversion/bilAltares.php @@ -0,0 +1,795 @@ +'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('''=>"'",'&'=>'&', '²'=>'²', "\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; +} \ No newline at end of file diff --git a/library/Metier/insee/classMInsee.php b/library/Metier/insee/classMInsee.php new file mode 100644 index 00000000..695cb7d0 --- /dev/null +++ b/library/Metier/insee/classMInsee.php @@ -0,0 +1,6250 @@ +'Modification de l\'établissement', + 'iOA'=>'Activation économique de l\'établissement par adjonction de moyens de production', + 'i0C'=>'Création de l\'établissement', + 'iOD'=>'Désactivation économique de l\'établissement par suppression de moyens de production', + 'i0F'=>'Fermeture de l\'établissement', + 'iOR'=>'Modification simple ou modification de moyen de production de l\'établissement', + 'iCC'=>'Création de l\' entreprise par création du premier établissement', + 'iRC'=>'Réactivation de l\'entreprise par création de l\'établissement', + 'iRR'=>'Réactivation de l\'entreprise par réactivation de l\'établissement', + 'iFF'=>'Fermeture de l\'établissement entraînant la fermeture de l\'entreprise', + 'iTC'=>'Création de l\'établissement dans le cadre d\'un transfert', + 'iTR'=>'Réactivation de l\'établissement dans le cadre d\'un transfert', + 'iT0'=>'Modification simple ou de moyens de production sur l\'établissement dans le cadre d\'un transfert', + 'iTA'=>'Activation économique de l\'établissement par adjonction de moyens de production dans le cadre d\'un transfert', + 'iTD'=>'Désactivation économique de l\'établissement par suppression de moyens de production dans le cadre d\'un transfert', + 'iTF'=>'Fermeture de l\'établissement dans le cadre d\'un transfert', + 'iER'=>'Modification ERR de l\'établissement', + // Evènements Crées par différentiel de la Mensuelle Insee par S&D + 'iM0C'=>'Création de l\'établissement', + 'iM0F'=>'Fermeture de l\'établissement', + 'iM0R'=>'Réactivation de l\'établissement', + 'iM00'=>'Modification de l\'établissement', + 'iMAS'=>'Modification de la nature d\'activité et de la saisonalité', + 'iMAC'=>'Modification de la nature d\'activité de l\'établissement', + 'iMSA'=>'Modification de la saisonalité de l\'établissement', + // Evènements Crées par diff3+4 + 'iMPF'=>'Etablissement présumé fermé (formalités de création faites par le repreneur)', + 'iMNP'=>'Etablissement présumé fermé (retour de courrier en NPAI)', + // Décret n°2010-1042 du 01/09/2010 relatif à l'inscription au registre du commerce et des sociétés et au répertoire national mentionné à l'article R. 123-220 du code de commerce + // Codification provisoire à changer dans l'attente de l'INSEE + 'i810'=>'Suppression du SIREN suite au refus d\'inscription au Registre du Commerce et des Sociétés', // Anciennement iRCS + // Nouveaux évènements Sirene3 de la quotidienne Insee + 'i110'=>'Création de l\'entreprise', + 'i120'=>'Réactivation de l\'entreprise', + 'i125'=>'Réactivation de l\'entreprise suite à une mise à jour du répertoire SIRENE', + 'i130'=>'Création de l\'établissement', + 'i145'=>'Reprise d\'activité de l\'établissement suite à une mise à jour du répertoire SIRENE', + 'i400'=>'Suppression du doublon', + 'i410'=>'Cessation juridique de l\'entreprise', + 'i420'=>'Absence d\'activité de l\'entreprise (cessation économique de l\'entreprise)', + 'i425'=>'Absence d\'activité d\'une entreprise suite à une mise à jour au répertoire SIRENE', + 'i430'=>'Fermeture de l\'établissement', + 'i435'=>'Fermeture de l\'établissement suite à une mise à jour au répertoire SIRENE', + 'i510'=>'Création de l\'établissement d\'arrivée et cessation de l\'établissement de départ dans le cadre d\'un transfert', + 'i520'=>'Création de l\'établissement d\'arrivée et modification de l\'établissement de départ dans le cadre d\'un transfert', + 'i530'=>'Modification de l\'établissement d\'arrivée et cessation de l\'établissement de départ dans le cadre d\'un transfert', + 'i540'=>'Modification de l\'établissement d\'arrivée et modification de l\'établissement de départ dans le cadre d\'un transfert', + 'i610'=>'Modification d\'activité au niveau du SIREN associé à une activation économique par adjonction de moyens de production', + 'i620'=>'Modification d\'activité au niveau du SIREN associé à une désactivation économique par suppression de moyens de production', + 'i621'=>'Modification d\'activité du SIREN associé à une désactivation économique par suppression de moyens de production suite à une correction d\'erreur', + 'i631'=>'Modification d\'activité du SIREN associé', + 'i640'=>'Modification d\'activité au niveau de l\'établissement associée à une activation économique par adjonction de moyens de production', + 'i650'=>'Modification d\'activité au niveau de l\'établissement associée à une désactivation économique par suppression de moyens de production', + 'i661'=>'Modification d\'activité de l\'établissement', + 'i710'=>'Modification de l\'identification du SIREN', + 'i711'=>'Modification de l\'identification du SIREN suite à correction d\'erreur', + 'i720'=>'Modification de l\'adresse ou de l\'identification de l\'établissement', + 'i780'=>'Modification de l\'établissement', + 'i781'=>'Modification de l\'établissement suite à correction d\'erreur', + 'i795'=>'Personne radiée à sa demande de de la base SIRENE diffusion', + ); + +global $tabDestinat; +$tabDestinat=array( 'i3'=>'Etablissement vendu', + 'i7'=>'Maintien d\'activité, l\'établissement devient siège', + 'i8'=>'Maintien d\'activité, l\'établissement devient principal', + 'iA'=>'Maintien d\'activité, l\'établissement devient secondaire', + 'iB'=>'Etablissement fermé', + 'iC'=>'Etablissement supprimé', + 'iD'=>'Mise en location-gérance de la totalité du fonds', + 'iE'=>'Mise en location-gérance d\'une partie du fonds', + 'iF'=>'Cessation d\'activité (pour les liasses agricoles)', + 'iG'=>'Mise en location-gérance de la totalité des terres et des bâtiments agricoles (pour les liasses agricoles)', + 'iH'=>'Mise en location-gérance d\'une partie des terres et des bâtiments agricoles (pour les liasses agricoles)', + 'iI'=>'Transmission au conjoint (pour les liasses agricoles)', + 'iJ'=>'Cession (pour les liasses agricoles)', + 'iVP'=>'Suppression partielle d\'activité par vente', + 'iDP'=>'Suppression partielle d\'activité par disparition', + 'iRP'=>'Suppression partielle d\'activité par reprise par le propriétaire', + ); +global $tabTypEtab; +$tabTypEtab=array( 'i00'=>'Rappel des données de l\'établissement du siège en cas de modification exclusive de l\'entreprise', + 'i08'=>'Siège avant transfert non fermé', + 'i09'=>'Siège après transfert non créé', + 'i10'=>'Siège avant transfert fermé', + 'i11'=>'Siège après transfert créé', + 'i12'=>'Siège créé (hors transfert)', + 'i13'=>'Siège fermé (hors transfert)', + 'i14'=>'Siège modifié (hors transfert) : modification de l\'activité principale avec activation économique', + 'i15'=>'Siège modifié (hors transfert) : modification de l\'activité principale avec désactivation économique', + 'i16'=>'Siège modifié (hors transfert) : modification de l\'activité principale de l\'établissement', + 'i17'=>'Siège modifié (hors transfert) : modification de l\'identification de l\'établissement', + 'i19'=>'Siège modifié (hors transfert) : autre modification de l\'établissement', + 'i20'=>'Établissement avant transfert fermé', + 'i21'=>'Établissement après transfert créé', + 'i22'=>'Établissement créé (hors transfert)', + 'i23'=>'Établissement fermé (hors transfert)', + 'i24'=>'Établissement modifié (hors transfert) : modification de l\'activité principale avec activation économique', + 'i25'=>'Établissement modifié (hors transfert) : modification de l\'activité principale avec désactivation économique', + 'i26'=>'Établissement modifié (hors transfert) : autre modification de l\'activité principale de l\'établissement', + 'i27'=>'Établissement modifié (hors transfert) : modification de l\'identification de l\'établissement', + 'i29'=>'Établissement modifié (hors transfert) : modification d\'une autre variable de l\'établissement', + 'i30'=>'Établissement avant transfert non fermé', + 'i31'=>'Établissement après transfert non créé', + 'i32'=>'Établissement supprimé', + ); + +require_once 'Metier/bodacc/classMBodacc.php'; +require_once 'Metier/bodacc/classMBalo.php'; +require_once 'Metier/partenaires/classMTva.php'; +require_once 'Metier/partenaires/classMMap.php'; +require_once 'Metier/partenaires/classMAmabis.php'; +require_once 'Metier/partenaires/classMRncs.php'; +require_once 'Metier/partenaires/classMTel.php'; +require_once 'Metier/partenaires/classMBourse.php'; +require_once 'Metier/partenaires/classMBilans.php'; + +class MInsee { + + 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.', + ); + + private static $tabDep=array( '01'=>'Ain', + '1'=>'Ain', + '02'=>'Aisne', + '2'=>'Aisne', + '03'=>'Allier', + '3'=>'Allier', + '04'=>'Alpes-de-Haute-Provence', + '4'=>'Alpes-de-Haute-Provence', + '05'=>'Hautes-Alpes', + '5'=>'Hautes-Alpes', + '06'=>'Alpes-Maritimes', + '6'=>'Alpes-Maritimes', + '07'=>'Ardèche', + '7'=>'Ardèche', + '08'=>'Ardennes', + '8'=>'Ardennes', + '09'=>'Ariège', + '9'=>'Ariège', + '10'=>'Aube', + '11'=>'Aude', + '12'=>'Aveyron', + '13'=>'Bouches-du-Rhône', + '14'=>'Calvados', + '15'=>'Cantal', + '16'=>'Charente', + '17'=>'Charente-Maritime', + '18'=>'Cher', + '19'=>'Corrèze', + '20'=>'Corse', + '2A'=>'Corse-du-Sud', + '20A'=>'Corse-du-Sud', + '2B'=>'Haute-Corse', + '20B'=>'Haute-Corse', + '21'=>'Côte-d\'Or', + '22'=>'Côtes-d\'Armor', + '23'=>'Creuse', + '24'=>'Dordogne', + '25'=>'Doubs', + '26'=>'Drôme', + '27'=>'Eure', + '28'=>'Eure-et-Loir', + '29'=>'Finistère', + '30'=>'Gard', + '31'=>'Haute-Garonne', + '32'=>'Gers', + '33'=>'Gironde', + '34'=>'Hérault', + '35'=>'Ille-et-Vilaine', + '36'=>'Indre', + '37'=>'Indre-et-Loire', + '38'=>'Isère', + '39'=>'Jura', + '40'=>'Landes', + '41'=>'Loir-et-Cher', + '42'=>'Loire', + '43'=>'Haute-Loire', + '44'=>'Loire-Atlantique', + '45'=>'Loiret', + '46'=>'Lot', + '47'=>'Lot-et-Garonne', + '48'=>'Lozère', + '49'=>'Maine-et-Loire', + '50'=>'Manche', + '51'=>'Marne', + '52'=>'Haute-Marne', + '53'=>'Mayenne', + '54'=>'Meurthe-et-Moselle', + '55'=>'Meuse', + '56'=>'Morbihan', + '57'=>'Moselle', + '58'=>'Nièvre', + '59'=>'Nord', + '60'=>'Oise', + '61'=>'Orne', + '62'=>'Pas-de-Calais', + '63'=>'Puy-de-Dôme', + '64'=>'Pyrénées-Atlantiques', + '65'=>'Hautes-Pyrénées', + '66'=>'Pyrénées-Orientales', + '67'=>'Bas-Rhin', + '68'=>'Haut-Rhin', + '69'=>'Rhône', + '70'=>'Haute-Saône', + '71'=>'Saône-et-Loire', + '72'=>'Sarthe', + '73'=>'Savoie', + '74'=>'Haute-Savoie', + '75'=>'Paris', + '76'=>'Seine-Maritime', + '77'=>'Seine-et-Marne', + '78'=>'Yvelines', + '79'=>'Deux-Sèvres', + '80'=>'Somme', + '81'=>'Tarn', + '82'=>'Tarn-et-Garonne', + '83'=>'Var', + '84'=>'Vaucluse', + '85'=>'Vendée', + '86'=>'Vienne', + '87'=>'Haute-Vienne', + '88'=>'Vosges', + '89'=>'Yonne', + '90'=>'Territoire de Belfort', + '91'=>'Essonne', + '92'=>'Hauts-de-Seine', + '93'=>'Seine-Saint-Denis', + '94'=>'Val-de-Marne', + '95'=>'Val-d\'Oise', + '971'=>'Guadeloupe', + '972'=>'Martinique', + '973'=>'Guyane', + '974'=>'Réunion', + '975'=>'Saint-Pierre-et-Miquelon', + '976'=>'Mayotte', + '985'=>'Mayotte', // Codification au Bodacc + '986'=>'Wallis-et-Futuna', + '987'=>'Polynésie-Française', + '988'=>'Nouvelle-Calédonie', + ); + + private static $tabDepArt=array( '01'=>'de l\'Ain', + '1'=>'de l\'Ain', + '02'=>'de l\'Aisne', + '2'=>'de l\'Aisne', + '03'=>'de l\'Allier', + '3'=>'de l\'Allier', + '04'=>'des Alpes-de-Haute-Provence', + '4'=>'des Alpes-de-Haute-Provence', + '05'=>'des Hautes-Alpes', + '5'=>'des Hautes-Alpes', + '06'=>'Ades lpes-Maritimes', + '6'=>'des Alpes-Maritimes', + '07'=>'de l\'Ardèche', + '7'=>'de l\'Ardèche', + '08'=>'des Ardennes', + '8'=>'des Ardennes', + '09'=>'de l\'Ariège', + '9'=>'de l\'Ariège', + '10'=>'de l\'Aube', + '11'=>'de l\'Aude', + '12'=>'de l\'Aveyron', + '13'=>'des Bouches-du-Rhône', + '14'=>'du Calvados', + '15'=>'du Cantal', + '16'=>'de la Charente', + '17'=>'de la Charente-Maritime', + '18'=>'du Cher', + '19'=>'de la Corrèze', + '20'=>'de la Corse', + '2A'=>'de la Corse-du-Sud', + '20A'=>'de la Corse-du-Sud', + '2B'=>'de la Haute-Corse', + '20B'=>'de la Haute-Corse', + '21'=>'de la Côte-d\'Or', + '22'=>'des Côtes-d\'Armor', + '23'=>'de la Creuse', + '24'=>'de la Dordogne', + '25'=>'du Doubs', + '26'=>'de la Drôme', + '27'=>'de l\'Eure', + '28'=>'de l\'Eure-et-Loir', + '29'=>'du Finistère', + '30'=>'du Gard', + '31'=>'de la Haute-Garonne', + '32'=>'du Gers', + '33'=>'de la Gironde', + '34'=>'de l\'Hérault', + '35'=>'de l\'Ille-et-Vilaine', + '36'=>'de l\'Indre', + '37'=>'de l\'Indre-et-Loire', + '38'=>'de l\'Isère', + '39'=>'du Jura', + '40'=>'des Landes', + '41'=>'du Loir-et-Cher', + '42'=>'de la Loire', + '43'=>'de la Haute-Loire', + '44'=>'de la Loire-Atlantique', + '45'=>'du Loiret', + '46'=>'du Lot', + '47'=>'du Lot-et-Garonne', + '48'=>'de la Lozère', + '49'=>'du Maine-et-Loire', + '50'=>'de la Manche', + '51'=>'de la Marne', + '52'=>'de la Haute-Marne', + '53'=>'de la Mayenne', + '54'=>'de la Meurthe-et-Moselle', + '55'=>'de la Meuse', + '56'=>'du Morbihan', + '57'=>'de la Moselle', + '58'=>'de la Nièvre', + '59'=>'du Nord', + '60'=>'de l\'Oise', + '61'=>'de l\'Orne', + '62'=>'du Pas-de-Calais', + '63'=>'du Puy-de-Dôme', + '64'=>'des Pyrénées-Atlantiques', + '65'=>'des Hautes-Pyrénées', + '66'=>'des Pyrénées-Orientales', + '67'=>'du Bas-Rhin', + '68'=>'du Haut-Rhin', + '69'=>'du Rhône', + '70'=>'de la Haute-Saône', + '71'=>'de la Saône-et-Loire', + '72'=>'de la Sarthe', + '73'=>'de la Savoie', + '74'=>'de la Haute-Savoie', + '75'=>'de Paris', + '76'=>'de la Seine-Maritime', + '77'=>'de la Seine-et-Marne', + '78'=>'des Yvelines', + '79'=>'des Deux-Sèvres', + '80'=>'de la Somme', + '81'=>'du Tarn', + '82'=>'du Tarn-et-Garonne', + '83'=>'du Var', + '84'=>'du Vaucluse', + '85'=>'de la Vendée', + '86'=>'de la Vienne', + '87'=>'de la Haute-Vienne', + '88'=>'des Vosges', + '89'=>'de l\'Yonne', + '90'=>'du Territoire de Belfort', + '91'=>'de l\'Essonne', + '92'=>'des Hauts-de-Seine', + '93'=>'de la Seine-Saint-Denis', + '94'=>'du Val-de-Marne', + '95'=>'du Val-d\'Oise', + '971'=>'de la Guadeloupe', + '972'=>'de la Martinique', + '973'=>'de la Guyane', + '974'=>'de la Réunion', + '975'=>'de Saint-Pierre-et-Miquelon', + '976'=>'de Mayotte', + '985'=>'de Mayotte', // Codification au Bodacc + '986'=>'de Wallis-et-Futuna', + '987'=>'de la Polynésie-Française', + '988'=>'de la Nouvelle-Calédonie', + ); + + /**Nature d'établissements*/ + private static $tabNature = array( '20'=>'Petit magasin (moins de 300m²)', + '21'=>'Magasin (de 300m² à 400m²)', + '22'=>'Grande surface (de 400 à 2500m²)', + '23'=>'Très grande surface (plus de 2500m²)', + '91'=>'Base d\'activité sur chantiers', + '92'=>'Base d\'activité sur marchés', + '93'=>'Base d\'activité en clientèle', + '99'=>'Autre'); + + /**Régions du code officiel géographique*/ + private static $tabRegion = array( '1'=>'Guadeloupe', + '2'=>'Martinique', + '3'=>'Guyane', + '4'=>'Réunion', + '11'=>'Ile-de-France', + '21'=>'Champagne-Ardenne', + '22'=>'Picardie', + '23'=>'Haute-Normandie', + '24'=>'Centre', + '25'=>'Basse-Normandie', + '26'=>'Bourgogne', + '31'=>'Nord-Pas-de-Calais', + '41'=>'Lorraine', + '42'=>'Alsace', + '43'=>'Franche-Comté', + '52'=>'Pays de la Loire', + '53'=>'Bretagne', + '54'=>'Poitou-Charentes', + '72'=>'Aquitaine', + '73'=>'Midi-Pyrénées', + '74'=>'Limousin', + '82'=>'Rhône-Alpes', + '83'=>'Auvergne', + '91'=>'Languedoc-Roussillon', + '93'=>'Provence Alpes Côte d Azur', + '94'=>'Corse', + '98'=>'Territoire d outre-mer (TOM)', + '99'=>'Etranger'); + + /**Tranches de Chiffre d'Affaires INSEE + **/ + private static $tabTCA = array( '0'=>'N/C', + '1'=>'de 500 000 à 1 ME', + '2'=>'de 1 à 2 ME', + '3'=>'de 2 à 5 ME', + '4'=>'de 5 à 10 ME', + '5'=>'de 10 à 20 ME', + '6'=>'de 20 à 50 ME', + '7'=>'de 50 à 100 ME', + '8'=>'de 100 à 200 ME', + '9'=>'plus de 200 ME' + ); + + /** Tranche de CA Export **/ + private static $tabTCAexp = array( '0'=>'0%', + '1'=>'moins de 5%', + '2'=>'de 5 à 25%', + '3'=>'de 25 à 50%', + '4'=>'plus de 50%', + ); + + /**Tranche d'habitants de commune détaillée*/ + private static $tabTCD=array( '1'=>'Commune de moins de 50 habitants', + '2'=>'Commune de 50 à 99 habitants', + '3'=>'Commune de 100 à 149 habitants', + '4'=>'Commune de 150 à 199 habitants', + '5'=>'Commune de 200 à 249 habitants', + '6'=>'Commune de 250 à 299 habitants', + '7'=>'Commune de 300 à 399 habitants', + '8'=>'Commune de 400 à 499 habitants', + '11'=>'Commune de 500 à 699 habitants', + '12'=>'Commune de 700 à 999 habitants', + '13'=>'Commune de 1000 à 1499 habitants', + '14'=>'Commune de 1500 à 1999 habitants', + '15'=>'Commune de 2000 à 2499 habitants', + '16'=>'Commune de 2500 à 2999 habitants', + '17'=>'Commune de 3000 à 3999 habitants', + '18'=>'Commune de 4000 à 4999 habitants', + '21'=>'De 5 000 à 6 999 habitants', + '22'=>'De 7 000 à 9 999 habitants', + '31'=>'De 10 000 à 14 999 habitants', + '32'=>'De 15 000 à 19 999 habitants', + '41'=>'De 20 000 à 24 999 habitants', + '42'=>'De 25 000 à 29 999 habitants', + '43'=>'De 30 000 à 39 999 habitants', + '44'=>'De 40 000 à 49 999 habitants', + '51'=>'De 50 000 à 69 999 habitants', + '52'=>'De 70 000 à 99 999 habitants', + '61'=>'De 100 000 à 149 999 habitants', + '62'=>'De 150 000 à 199 999 habitants', + '71'=>'De 200 000 à 299 999 habitants', + '72'=>'De 300 000 à 499 999 habitants', + '73'=>'De 500 000 à 1 499 999 habitants', + '80'=>'Plus de 1 500 000 habitants'); + + /**Tranches d'effectifs INSEE*/ + private static $tabEffectif=array( 0=>'N/C', + 1=>'de 1 à 2 salarié(s)', + 2=>'de 3 à 5 salariés', + 3=>'de 6 à 9 salariés', + 11=>'de 10 à 19 salariés', + 12=>'de 20 à 49 salariés', + 21=>'de 50 à 99 salariés', + 22=>'de 100 à 199 salariés', + 31=>'de 200 à 249 salariés', + 32=>'de 250 à 499 salariés', + 41=>'de 500 à 999 salariés', + 42=>'de 1 000 à 1 999 salariés', + 51=>'de 2 000 à 4 999 salariés', + 52=>'de 5 000 à 9 999 salariés', + 53=>'plus de 10 000 salariés'); + + /**Libellé des singularités INSEE*/ + private static $tabSingularite=array('1'=>'Propiétaire Exploitant direct', + '2'=>'Locataire Gérant', + '10'=>'Loueur de fonds', + '30'=>'Unité singulière de première espèce: avocats assocés, stations services sous mandat..', + '31'=>'Associé d\'exploitation en commun; ce groupe comprend notamment: associé de société de fait, associé d\'indivision', + '33'=>'Employeur non exploitant: prestataire de personnel, gérant mandataire', + '34'=>'Membre d\'une société civile professionnelle', + '40'=>'Siège d\'une unité SIREN de droit privé sans activité', + '41'=>'Siège d\'un organisme public sans activité', + '42'=>'Siège d\'un établissement public local non doté de l\'autonomie comptable: une partie des centres communaux d\'action sociale, une partie des caisses des écoles', + '43'=>'Sièges de domiciliation', + '52'=>'Sans domicile fixe', + '60'=>'Activité occasionnelle ou accessoire: Expert auprès des tribunaux, médecin, infirmier, pharmacien remplçant, avocat stagiaire, sportif amateur', + '70'=>'Activité en location (autre que le fond de commerce): Exploitant de terrain de camping, location de garage ou parking, locations de meublés, location de terres agricoles', + '80'=>'Gestion immobilière de biens propres: syndicats de copropriétaires', + '90'=>'Unité singulière de seconde espèce: établissement d\'une entreprise installée à Monaco, siège à l\'etranger de sociétés, associé gérant de sociétés'); + + /**Libellé des origines de création INSEE*/ + private static $tabOrigine=array( + '0'=>'Non renseigné', + '1'=>'Création pure', + '2'=>'Création suite à déménagement', // Création S&D du 20/04/2011 ancien 'Réinstallation après transfert' + '3'=>'Achat', + '4'=>'Apport', + '5'=>'Reprise au conjoint ou apport reçu', + '6'=>'Prise en location-gérance', + '7'=>'Partage', + '8'=>'Reprise', + '9'=>'Autre modalité d\'acquisition', + 'A'=>'Reprise globale d\'une exploitation agricole', + 'B'=>'Poursuite de l\'exploitation agricole par le conjoint', + 'C'=>'Transfert de propriété d\'une exploitation agricole', + 'D'=>'Apport d\'exploitation(s) agricole(s) individuelle(s)', + 'E'=>'Reprise totale ou partielle d\'exploitation individuelle', + ); + + private static $tabEven=array( 'i110'=>'Création d\'une entreprise', + 'i120'=>'Réactivation d\'une entreprise', + 'i125'=>'Réactivation d\'une entreprise suite à une mise à jour du répertoire', + 'i130'=>'Création d\'un établissement', + 'i145'=>'Reprise d\'activité dans un établissement suite à une mise à jour du répertoire', + 'i400'=>'Suppression d\'un double', + 'i410'=>'Cessation juridique de l\'entreprise', + 'i420'=>'Absence d\'activité de l\'entreprise (cessation économique de l\'entreprise)', + 'i425'=>'Absence d\'activité d\'une entreprise suite à une mise à jour au répertoire', + 'i430'=>'Fermeture d\'un établissement', + 'i435'=>'Fermeture d\'un établissement suite à une mise à jour au répertoire', + 'i510'=>'Création de l\'établissement d\'arrivée et cessation de l\'établissement de départ dans le cadre d\'un transfert', + 'i520'=>'Création de l\'établissement d\'arrivée et modification de l\'établissement de départ dans le cadre d\'un transfert', + 'i530'=>'Modification de l\'établissement d\'arrivée et cessation de l\'établissement de départ dans le cadre d\'un transfert', + 'i540'=>'Modification de l\'établissement d\'arrivée et modification de l\'établissement de départ dans le cadre d\'un transfert', + 'i610'=>'Modification d\'activité au niveau du SIREN associé à une activation économique par adjonction de moyens de production', + 'i620'=>'Modification d\'activité au niveau du SIREN associé à une désactivation économique par suppression de moyens de production', + 'i621'=>'Modification d\'activité du SIREN associé à une désactivation économique par suppression de moyens de production suite à une correction d\'erreur', + 'i631'=>'Autre modification d\'activité du SIREN associé', + 'i640'=>'Modification d\'activité au niveau de l\'établissement associée à une activation économique par adjonction de moyens de production', + 'i650'=>'Modification d\'activité au niveau de l\'établissement associée à une désactivation économique par suppression de moyens de production', + 'i661'=>'Autre modification d\'activité au niveau de l\'établissement', + 'i710'=>'Modification de l\'identification du SIREN', + 'i711'=>'Modification de l\'identification du SIREN suite à correction d\'erreur', + 'i720'=>'Modification de l\'adresse ou de l\'identification de l\'établissement', + 'i780'=>'Autre modification entraînant la mise à jour d\'au moins une variable du répertoire', + 'i781'=>'Autre modification entraînant la mise à jour d\'au moins une variable du répertoire suite à correction d\'erreur', + ); + + private $tabCodeVoie=array(); + private $tabCodesNaf=array(); + private $tabCodesNafa=array(); + private $tabCodesNace=array(); + + private $body=''; + private $codeRetour=0; + private $header=array(); + + private $iDb; + private $iDbInsee; + private $iDbSD; + private $iBodacc; + + // Plan de redressement ou de continuation + private $debutPlan; // Date de début/jugement/publication du plan SSAAMMJJ + private $dureePlan; // Durée du plan en mois + private $finPlan; // Date de fin du plan SSAAMMJJ + + // Appel de jugement + private $appelJugement=false; // Présence d'un appel de jugement + + public function __construct() { + $this->iDb=new WDB(); + //$this->iDb->setCharSet('UTF-8'); + $this->iDbInsee=new WDB('insee'); + //$this->iDbInsee->setCharSet('UTF-8'); + $this->iDbSD=new WDB('sdv1'); + //$this->iDbSD->setCharSet('UTF-8'); + $this->tabCodeVoie=$this->getTabCodeVoie(); + $this->iBodacc=new MBodacc(); + } + +/** 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 + */ +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;$j356000000) { + $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;$jvalideSiren($siren)) + return -1; + elseif (!valideData($numEtab,1,4,'N')) // Nic de format incorrect. + return -1; + else { + for ($cle=0; $cle<10; $cle++) { + if ($this->valideSiren($siren, ''.$nic.''.$cle)) + return $cle; + } + } + return -1; +} + + /** Vérifie si le n° de département est un département français valide + ** @param int Numéro de département Français + ** @return bool + **/ + public function isDepartement($dept) { + return array_key_exists($dept, self::$tabDep); + } + + /** Retourne le libellé du département si département français valide + ** @param int Numéro de département Français + ** @return string Libellé département + **/ + public function getDepartement($dept, $article=false) { + if ($article) + return self::$tabDepArt[$dept]; + + return self::$tabDep[$dept]; + } + + public function getEffectifMoyen($trancheEffectif) { + $trancheEffectif=$trancheEffectif*1; + if ($trancheEffectif==0) return 0; + elseif ($trancheEffectif==53) return 10000; + else { + $libEffectif=self::$tabEffectif[$trancheEffectif]; + $tabTmp=explode('à', $libEffectif); + $eff_min=trim(str_replace(' ','', $tabTmp[0])); + $tabTmp=explode('salari', $tabTmp[1]); + $eff_max=trim(str_replace(' ','', $tabTmp[0])); + return floor(($eff_min+$eff_max)/2); + } + } + + /** Retourne le code forme juridique d'une entreprise. + ** @param int Numéro de SIREN (9 chiffres) ou SIRET (14 chiffres) + ** @return string Forme Juridique sur 4 caractères ou falseen cas d'erreur ou si inexistant + **/ + function getFJInsee($siren_siret) { + $len=strlen($siren_siret); + if ($len==9) + $siren=$siren_siret; + elseif ($len==14) + $siren=$siren_siret; + else + return false; + $rep=$this->iDb->select('identite', 'CJ', "SIREN='$siren'"); + return $rep[0][0]; + } + + /** + * Recherche Etablissements + * + * @param string $raisonSociale + * @param string $adresse + * @param string $codePostal + * @param string $ville + * @param string $siege + * @param int $actif + * @param int $deb + * @param int $nbRep + * @param int $maxRep + * @param string $pertinence + * @param bool $uniquementAvecSiren + * @param string $ape_etab + * @return unknown + */ + public function rechercheEtab($raisonSociale, $adresse='', $codePostal='', $ville='', $siege='', $actif=2, $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $uniquementAvecSiren='', $ape_etab='') + { + $tabAdr = $this->structureVoie(strtoupper($adresse)); + $numAdresse = preg_replace('/^0+/','',''.$tabAdr['num']*1); + $adresse = trimAccent($tabAdr['libVoie']); + $formR = array( + 'type' => 'ent', + 'siret' => '', + 'raisonSociale' => $raisonSociale, + 'numVoie' => $numAdresse, + 'voie' => $adresse, + 'cpVille' => $codePostal.' '.$ville, + 'actif' => $actif, + 'siege' => $siege, + ); + if ($ape_etab<>'') $formR['naf']=$ape_etab; + + require_once 'Metier/sphinx/rechercheFonc.php'; + if ($uniquementAvecSiren=='') + $result = rechercheEnt($formR, $deb, $nbRep, $maxRep); + else + $result = rechercheEnt($formR, $deb, $nbRep, $maxRep, $uniquementAvecSiren); + + //Utilisation recherche dlasserre + /* + require_once 'Metier/sphinx2/rechercheFonc.php'; + $recherche = new rechercheFonc(); + $result = $recherche->rechercheEnt($formR, $deb, $nbRep, $maxRep); + */ + return $result; + } + + public function rechercheEtabOld($raisonSociale, $adresse='', $codePostal='', $ville='', $siege='', $actif='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $uniquementAvecSiren='', $ape_etab='') { + debugLog('I',"rechercheEtab de $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); +// $raisonSociale=trim(strtoupper(trimAccent($raisonSociale))); //)("/^(scp |s c p |me )/i", '', +// $adresse=trim(/*strtr(*/strtoupper(trimAccent($adresse))/*, array('RUE '=>''))*/); + //$raisonSociale=$raisonSociale)); //)("/^(scp |s c p |me )/i", '', + //$raisonSociale=strtr(strtolower($raisonSociale), 'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ', + // 'aaaaaaaceeeeiiiionooooouuuuyy'); + $raisonSociale=trim(strtoupper(trimAccent($raisonSociale))); + $tabAdr=$this->structureVoie(strtoupper($adresse)); + /* + [num] => 6 + [typeVoie] => R + [libVoie] => RONDELET + */ + $numAdresse=$tabAdr['num']*1; + $adresse=trimAccent($tabAdr['libVoie']); + + $ville=trim(strtoupper(trimAccent($ville))); //)("/^(scp |s c p |me )/i", '', + $tabFiltres=$tabFiltresCP=array(); + if (trim($codePostal)<>'' && ($codePostal*1)>0) { + $cp=$codePostal*1; + $dep=false; + if ($cp>0 && $cp<100) { $dep=$cp; $cp=false; } // Remettre à 96 quand cela fonctionnera + elseif ($cp>970 && $cp<977) { $dep=$cp; $cp=false; } + elseif ($cp>999 && $cp<10000) { $dep='0'.substr($cp,0,1); $cp='0'.$cp; } + elseif ($cp>=10000 && $cp<96000) $dep=substr($cp,0,2); + elseif ($cp>=99000) { $dep=substr($cp,0,2); $cp=false; } + elseif ($cp>=98000) { $dep=substr($cp,0,3); $cp=false; } + elseif ($cp>=97100 && $cp<97700) $dep=substr($cp,0,3); + else $cp=false; + + if (isset($cp) && $cp) $tabFiltresCP=array('adr_cp'=>$cp); + elseif (isset($dep) && $dep) $tabFiltresCP=array('adr_dep'=>$dep); + } + + if ($siege==true) $tabFiltresSiege=array('siege'=>1); + else $tabFiltresSiege=array(); + + if ($actif==true) $tabFiltresActif=array('actif'=>1); + else $tabFiltresActif=array(); + + if ($numAdresse>0) $tabFiltresNumAdr=array('adr_num'=>$numAdresse); + else { $tabFiltresNumAdr=array(); + $numAdresse=''; + } + + if ($uniquementAvecSiren==true) $tabFiltresAvecSiren=array('sirenValide'=>1); +// elseif ($uniquementAvecSiren==false) $tabFiltresAvecSiren=array('sirenValide'=>0); + else $tabFiltresAvecSiren=array(); + + + debugLog('I',"Je recherche avec tous les filtres $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); + + $ret=search('etab', "@nom $raisonSociale @adresse $adresse @ville $ville @ape_etab $ape_etab", array_merge($tabFiltresCP, $tabFiltresSiege, $tabFiltresActif, $tabFiltresNumAdr, $tabFiltresAvecSiren), $deb, $nbRep, $maxRep, $pertinence); + $liste=$ret['results']; + $nbTot=$ret['nbTot']; + $duree=$ret['duration']; + //$liste=search('etab', $raisonSociale.' '.$adresse.' '.$ville, array_merge($tabFiltresCP, $tabFiltresSiege, $tabFiltresActif, $tabFiltresNumAdr), $deb, $nbRep, $maxRep, $pertinence); + if ($liste===false) die(); + if (count($liste)==0) { +// echo "Je recherche dans le Département entier\n"; + debugLog('I',"Je recherche dans le Département entier $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); + if (isset($dep) && $dep) $tabFiltresCP=array('adr_dep'=>$dep); + elseif (preg_match('/DEFENSE/i', $ville)) { + $tabFiltresCP=array('adr_dep'=>92); + $ville=''; + } + $ret=search('etab', "@nom $raisonSociale @adresse $adresse @ville $ville @ape_etab $ape_etab", array_merge($tabFiltresCP, $tabFiltresSiege, $tabFiltresActif, $tabFiltresNumAdr, $tabFiltresAvecSiren), $deb, $nbRep, $maxRep, $pertinence); + $liste=$ret['results']; + $nbTot=$ret['nbTot']; + $duree=$ret['duration']; + } + if (count($liste)==0) { + debugLog('I',"Je recherche en soundex dans le CP $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); +// echo "Je recherche en soundex dans le CP\n"; + if (isset($cp) && $cp) $tabFiltresCP=array('adr_cp'=>$cp); + $ret=search('etab_shx', "@nom $raisonSociale @adresse $adresse @ville $ville @ape_etab $ape_etab", array_merge($tabFiltresCP, $tabFiltresSiege, $tabFiltresActif, $tabFiltresNumAdr, $tabFiltresAvecSiren), $deb, $nbRep, $maxRep, $pertinence); + $liste=$ret['results']; + $nbTot=$ret['nbTot']; + $duree=$ret['duration']; + } + if (count($liste)==0) { + // echo "Je recherche en soundex dans le département entier\n"; + debugLog('I',"Je recherche en soundex dans le département entier $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); + if (isset($dep) && $dep) $tabFiltresCP=array('adr_dep'=>$dep); + $ret=search('etab_shx', "@nom $raisonSociale @adresse $adresse @ville $ville @ape_etab $ape_etab", array_merge($tabFiltresCP, $tabFiltresSiege, $tabFiltresActif, $tabFiltresNumAdr, $tabFiltresAvecSiren), $deb, $nbRep, $maxRep, $pertinence); + $liste=$ret['results']; + $nbTot=$ret['nbTot']; + $duree=$ret['duration']; + + } + $tabRet=array(); + $tabMotsRsIn=explode(' ', $raisonSociale); + $tabMotsAdrIn=explode(' ', $adresse); + $tabMotsVilleIn=explode(' ', $ville); + $k=0; + $rsOK=$adrOK=$vilOK=true; + //$nbTot=count($liste); + foreach ($liste as $n=>$etab) { + $tabRet[]=array( 'id'=>$etab['id'], + 'Pertinence'=>$etab['Pertinence'], + 'Siret'=>$etab['Siret'], + 'Siege'=>$etab['Siege'], + 'Nom'=>$etab['Nom'], + 'Nom2'=>$etab['Nom2'], + 'Sigle'=>$etab['Sigle'], + 'Enseigne'=>$etab['Enseigne'], + 'Adresse'=>$etab['Adresse'], + 'CP'=>$etab['CP'], + 'Ville'=>$etab['Ville'], + 'Tel'=>$etab['Tel'], + 'Fax'=>$etab['Fax'], + 'FJ'=>$etab['FJ'], + 'FJLib'=>$this->getLibelleFJ($etab['FJ']), + 'Siren'=>$etab['Siren'], + 'Nic'=>$etab['Nic'], + 'Actif'=>$etab['Actif'], + 'NafEtab'=>$etab['NafEtab'], // Etablissement + 'NafEtabLib'=>$this->getLibelleNaf($etab['NafEtab']), // Etablissement + 'NafEnt'=>$etab['NafEnt'], // Entreprise + 'NafEntLib'=>$this->getLibelleNaf($etab['NafEnt']), + ); + $k++; + } + + return array( 'criteres'=>array('rs'=>$raisonSociale, 'adresse'=>trim($numAdresse.' '.$adresse), 'cp'=>$codePostal, 'ville'=>$ville, 'naf'=>$ape_etab,), + 'nbReponses'=>count($tabRet), + 'nbReponsesTotal'=>$nbTot, + 'duree'=>$duree, + 'reponses'=>$tabRet); +} + +public function rechercheDir($nom, $prenom='', $fonction='', $dateNaiss='', $villeNaiss='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false) { + debugLog('I',"rechercheDir de $nom, $prenom, $fonction, $dateNaiss, $villeNaiss (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); + $jour=$mois=$annee=''; + if ($dateNaiss<>'' && $dateNaiss<>'//' && $dateNaiss<>'0/0/0') { + $tabDateNaiss=explode('/', $dateNaiss); + + $jour=$tabDateNaiss[0]*1; + if ($jour<1 || $$jour>31) $jour=''; + + $mois =$tabDateNaiss[1]*1; + if ($mois<1 || $mois>12) $mois=''; + + $annee=$tabDateNaiss[2]*1; + if ($annee>0 && $annee<100) $annee=('19'.$annee)*1; + if ($annee<1800 || $annee>date('Y')*1) $annee=''; + } + $formR = array( + 'type' => 'dir', + 'nom' => $nom, + 'prenom' => $prenom, + 'dirDateNaissAAAA' => $annee, + 'dirDateNaissMM' => $mois, + 'dirDateNaissJJ' => $jour, + // 'departement' => 'D', + 'cpVille' => $villeNaiss, + ); + + $version = defined('SPHINX_DIR_VERSION') ? SPHINX_DIR_VERSION : 1; + $result = array(); + require_once 'Metier/sphinx/rechercheFonc.php'; + $result = rechercheDir($formR, $deb, $nbRep, $maxRep); + + /* + switch($version) + { + case 1: + require_once 'Metier/sphinx/rechercheFonc.php'; + $result = rechercheDir($formR, $deb, $nbRep, $maxRep); + break; + case 2: + require_once 'Metier/sphinx2/rechercheFonc.php'; + $recherche = new rechercheFonc(); + $result = $recherche->rechercheDir($formR, $deb, $nbRep, $maxRep); + break; + } + */ + //debugLog('I',"rechercheDir".print_r($result,1),__LINE__,__FILE__, __FUNCTION__, __CLASS__); + return $result; +} + +public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $villeNaiss='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false) { + debugLog('I',"rechercheDir de $nom, $prenom, $fonction, $dateNaiss, $villeNaiss (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); + + $nom=trim(strtoupper(trimAccent($nom))); + $prenom=trim(strtoupper(trimAccent($prenom))); + //$dirDateNaiss JJ/MM/AAAA + $tabFiltresMois=$tabFiltresAnnee=array(); + + if ($dateNaiss<>'' && $dateNaiss<>'//' && $dateNaiss<>'0/0/0') { + $tabDateNaiss=explode('/', $dateNaiss); + $mois =$tabDateNaiss[1]*1; + if ($mois>0 && $mois<12) $tabFiltresMois=array('naiss_mois'=>$mois); + + $annee=$tabDateNaiss[2]*1; + if ($annee<100) $annee=('19'.$annee)*1; + if ($annee>=1900 && $annee<=date('Y')*1) $tabFiltresAnnee=array('naiss_annee'=>$annee); + } + $dateNaiss=preg_replace('/^00/','0', "0$mois/$annee"); + $dateNaiss=preg_replace('/^0\//','', $dateNaiss); + /* + $dateNaiss=preg_replace('/\/0$/','', $dateNaiss); + */ + + //$ret=search('dirigeants', $nom.' '.$prenom, array(), $deb, $nbRep, $maxRep, $pertinence); + $ret=search('dirigeants_rncs', "@nom $nom @prenom $prenom @naissance_lieu $villeNaiss", array_merge($tabFiltresMois, $tabFiltresAnnee), $deb, $nbRep, $maxRep, $pertinence); + //=search('etab', $raisonSociale.' '.$adresse.' '.$ville, array_merge($tabFiltresCP, $tabFiltresSiege, $tabFiltresActif, $tabFiltresNumAdr), $deb, $nbRep, $maxRep, $pertinence); + //print_r($ret);die(); + $liste=$ret['results']; + $nbTot=$ret['nbTot']; + $duree=$ret['duration']; + + if (count($liste)==0) { + debugLog('I',"rechercheDir en soundex de $nom, $prenom, $fonction, $dateNaiss, $villeNaiss (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); + //$ret=search('dirigeants_shx', $nom.' '.$prenom, array(), $deb, $nbRep, $maxRep, $pertinence); + $ret=search('dirigeants_rncs_shx', "@nom $nom @prenom $prenom @naissance_lieu $villeNaiss", array_merge($tabFiltresMois, $tabFiltresAnnee), $deb, $nbRep, $maxRep, $pertinence); + $liste=$ret['results']; + $nbTot=$ret['nbTot']; + $duree=$ret['duration']; + } + $tabRet=array(); + $tabMotsNomIn=explode(' ', $nom); + $tabMotsPrenomIn=explode(' ', $prenom); + $k=0; +// $nomOK=$prenomOK=true; +// $nbTot=count($liste); + foreach ($liste as $n=>$etab) { + /* if ($nom<>'') { + $tabMotsNomOut=explode(' ', $etab['nomD'].' '.$etab['nomUsage'].' '.$etab['rs']); + $nomOK=false; + foreach ($tabMotsNomOut as $motOut) { + foreach ($tabMotsNomIn as $motIn) { + if (strlen($motOut)>=3 && strlen($motIn)>=3) { + $levMin=levenshtein($motOut, $motIn); + if ($levMin<5) { + $nomOK=true; + break(2); + } + } + } + } + } + if ($prenom<>'') { + $tabMotsPrenomOut=explode(' ', $etab['prenom']); + $prenomOK=false; + foreach ($tabMotsPrenomOut as $motOut) { + foreach ($tabMotsPrenomIn as $motIn) { + if (strlen($motOut)>=3 && strlen($motIn)>=3) { + $levMin=levenshtein($motOut, $motIn); + if ($levMin<5) { + $prenomOK=true; + break(2); + } + } + } + } + } + + if ($nomOK && $prenomOK) {*/ + $tabRet[]=array( 'id'=>$etab['id'], + 'Pertinence'=>$etab['Pertinence'], + 'Siret'=>$etab['Siret'], + 'Siege'=>$etab['Siege'], + 'Nom'=>$etab['Nom'], + 'Nom2'=>$etab['Nom2'], + 'Sigle'=>$etab['Sigle'], + 'Enseigne'=>$etab['Enseigne'], + 'Adresse'=>$etab['Adresse'], + 'CP'=>$etab['CP'], + 'Ville'=>$etab['Ville'], + 'Tel'=>$etab['Tel'], + 'Fax'=>$etab['Fax'], + 'FJ'=>$etab['FJ'], + 'FJLib'=>$this->getLibelleFJ($etab['FJ']), + 'Siren'=>$etab['Siren'], + 'Nic'=>$etab['Nic'], + 'Actif'=>$etab['Actif'], + 'NafEtab'=>$etab['NafEtab'], // Etablissement + 'NafEtabLib'=>$this->getLibelleNaf($etab['NafEtab']), // Etablissement + 'NafEnt'=>$etab['NafEnt'], // Entreprise + 'NafEntLib'=>$this->getLibelleNaf($etab['NafEnt']), + + // Dirigeant + 'DirRs'=>$etab['rs'], + 'DirNom'=>$etab['nomD'], + 'DirPrenom'=>$etab['prenom'], + 'DirNomUsage'=>$etab['nomUsage'], + 'DirDateEffet'=>$etab['dateEffet'], + 'DirFonction'=>$etab['fonction'], + 'DirDepart'=>$etab['depart'], + ); + $k++; + //if ($k==$nbRep) break; + //} + } + + return array( 'criteres'=>array('nom'=>$nom, 'prenom'=>$prenom, 'dateNaissance'=>$dateNaiss, 'lieuNaissance'=>$villeNaiss), + 'nbReponses'=>count($tabRet), + 'nbReponsesTotal'=>$nbTot, + 'duree'=>$duree, + 'reponses'=>$tabRet); +} + + + private function getTabCodeVoie() { + $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 (substr($data[0],0,1)<>'#') // Ligne en commentaires CSV + $tabTmp[$data[0]]=$data[1]; + fclose($handle); + return $tabTmp; + } + + /** Vérifie si le code voie est une abréviation autorisée (selon la Norme AFNOR XP Z 10-011) + ** @param string Code voie + ** @return bool + **/ + public function isCodeVoie($codeVoie) { + return array_key_exists($codeVoie, $this->tabCodeVoie); + } + + /** Retourne le libellé du code voie selon les abréviations autorisées pour les types de voie (Norme AFNOR XP Z 10-011) + ** @param string Code voie + ** @return string Libellé de la voie + **/ + public function getCodeVoie($codeVoie) { + return $this->tabCodeVoie[$codeVoie]; + } + + /** Initialise la table des codes NAF 4 et 5 positions + **/ + private function setTabCodesNaf() { + if (count($this->tabCodesNaf)==0) { + $tabNafs=$tabNace=array(); + $tabTmp=$this->iDb->select( 'tabNaf4', 'codNaf700 AS naf, libNaf700 AS LibNaf', 1, false, MYSQL_ASSOC); + foreach ($tabTmp as $i=>$tabNaf) + $tabNafs[$tabNaf['naf']]=$tabNaf['LibNaf']; + $tabTmp=$this->iDb->select( 'tabNaf5', 'codNaf5 AS naf, libNaf5 AS LibNaf, codNaf1', 1, false, MYSQL_ASSOC); + foreach ($tabTmp as $i=>$tabNaf) { + $tabNafs[$tabNaf['naf']]=$tabNaf['LibNaf']; + $tabNace[$tabNaf['naf']]=$tabNaf['codNaf1'].preg_replace('/^0/','',substr($tabNaf['naf'],0,4)); + } + $this->tabCodesNaf=$tabNafs; + $this->tabCodesNace=$tabNace; + } + } + + public function getLibelleNaf($code_naf) { + if ($code_naf<>'') { + $this->setTabCodesNaf(); + return $this->tabCodesNaf[$code_naf]; + } + else + return ''; + } + + public function getCodesNaf() { + $this->setTabCodesNaf(); + return array_keys($this->tabCodesNaf); + } + + /** Initialise la table des codes NAFA rev 2 + **/ + private function setTabCodesNafa() { + if (count($this->tabCodesNafa)==0) { + $tabNafs=array(); + $tabTmp=$this->iDb->select( 'tabNafa', 'codNafa AS nafa, libNafa', 1, true, MYSQL_ASSOC); + foreach ($tabTmp as $i=>$tabNaf) + $tabNafs[$tabNaf['nafa']]=$tabNaf['libNafa']; + $this->tabCodesNafa=$tabNafs; + } + } + public function getLibelleNafa($code_nafa) { + if ($code_nafa<>'') { + $this->setTabCodesNafa(); + return $this->tabCodesNafa[$code_nafa]; + } + else + return ''; + } + + public function getEvenements($siren, $nic=0, $iDeb=0, $iMax=1000) + { + global $tabEvenInsee; + global $tabDestinat; + global $tabTypEtab; + $tabRet=$tabId=array(); + + $strNic=''; + if ($nic*1>0) $strNic=" AND insNIC=$nic "; + + $insee=$this->iDbInsee->select('insee_even', 'id, insSIREN, siretValide, insNIC, insLIBCOM, insSIEGE, insAUXILT, insORIGINE, insTEFET, insAPET700, insAPRM, insMODET, insMARCHET, insSAISONAT, insACTIVNAT, insENSEIGNE, insL1_NOMEN, insL2_COMP, insL4_VOIE, insL3_CADR, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE, insL5_DISP, insL6_POST, insCODPOS, insL7_ETRG, insRPET, insDEPCOM, insCODEVOIE, insDREACTET, insEXPLET, insDAPET, insLIEUACT, insACTISURF, insDEFET, insTEL, insCJ, insCIVILITE, insTEFEN, insAPEN700, insMODEN, insMARCHEN, insNOMEN, insTYPCREH, insEVE, insDATEVE, insTRAN, insNICTRAN, insMNICSIEGE, insMNOMEN, insMCJ, insMAPEN, insFiller1, insFiller2, insMMARCHEN, insMORDIN, insEFENCENT, insSIGLE, insNBETEXPL, insNICSIEGE, insDEPCOMEN, insFiller3, insMENSEIGNE, insMAPET, insMNATURE, insMADRESSE, insMEFET, insMSINGT, insMTELT, insMMARCHET, insMAUXILT, insSINGT, insEFETCENT, insSIRETPS, insDESTINAT, insDATEMAJ, idFlux, dirNom, dirNomUsage, dirPrenom, insDCRET, insDCREN, insPRODPART, insSIRETASS, insDREACTEN, insEXPLEN, insFiller4, insDEFEN, insMONOREG, insREGIMP, insMONOACT, insMSIGLE, insMEXPLEN, insRPEN, insMEXPLET, insTYPETAB, insDAPEN', "insSIREN=$siren $strNic ORDER BY insDATEMAJ DESC LIMIT $iDeb, $iMax",false, MYSQL_ASSOC); + if (count($insee)>0){ + foreach ($insee as $i=>$even) { + $tabSiren[$even['insDATEVE']]=array('rs'=>$even['insNOMEN'], + 'sigle'=>$even['insSIGLE'], + 'ape'=>$even['insAPEN700'], + 'nic'=>$even['insNICSIEGE'], + 'cj'=>$even['insCJ'], + ); + $tabSiret[$even['insNIC']][$even['insDATEVE']] + = array('ens'=>$even['insENSEIGNE'], + 'ape'=>$even['insAPET700'], + 'adresse'=>$even['insL2_COMP'].' '.$even['insL3_CADR'].' '.$even['insL4_VOIE'].' '.$even['insL5_DISP'].' '.$even['insL6_POST'].' '.$even['insL7_ETRG'], + 'effectif'=>$even['insEFENCENT'].' (Tranche '.$even['insTEFET'].')', + ); + } + } + if (count($insee)>0){ + foreach ($insee as $i=>$even) { + $tabId[]=$even['id']; + $libDet=''; + if ($even['insMNOMEN']==1) { + $libDet.='Modification de la raison sociale : '.$even['insNOMEN']; + $strPre=getInfoPrecedente($tabSiren, $even['insDATEVE'], 'rs'); + if ($strPre<>'' && $strPre<>$even['insNOMEN']) $libDet.=" (Précédent : $strPre)"; + $libDet.=', '; + } + if ($even['insMENSEIGNE']==1) { + $libDet.='Modification de l\'enseigne : '.$even['insENSEIGNE']; + $strPre=getInfoPrecedente($tabSiret[$even['insNIC']], $even['insDATEVE'], 'ens'); + if ($strPre<>'' && $strPre<>$even['insENSEIGNE']) $libDet.=" (Précédent : $strPre)"; + $libDet.=', '; + } + if ($even['insMSIGLE']==1) { + $libDet.='Modification du sigle : '.$even['insSIGLE']; + $strPre=getInfoPrecedente($tabSiren, $even['insDATEVE'], 'sigle'); + if ($strPre<>'' && $strPre<>$even['insSIGLE']) $libDet.=" (Précédent : $strPre)"; + $libDet.=', '; + } + if ($even['insMAPEN']==1) { + $libDet.='Modification de l\'activité de l\'entreprise : '.$even['insAPEN700'].' - '.$this->getLibelleNaf($even['insAPEN700']); + $strPre=getInfoPrecedente($tabSiren, $even['insDATEVE'], 'ape'); + if ($strPre<>'' && $strPre<>$even['insAPEN700']) $libDet.=" (Précédent : $strPre - ".$this->getLibelleNaf($strPre).')'; + $libDet.=', '; + } + if ($even['insMAPET']==1) { + $libDet.='Modification de l\'activité de l\'établissement : '.$even['insAPET700'].' - '.$this->getLibelleNaf($even['insAPET700']); + $strPre=getInfoPrecedente($tabSiret[$even['insNIC']], $even['insDATEVE'], 'ape'); + if ($strPre<>'' && $strPre<>$even['insAPET700']) $libDet.=" (Précédent : $strPre - ".$this->getLibelleNaf($strPre).')'; + $libDet.=', '; + } + if ($even['insMNICSIEGE']==1) { + $libDet.='Modification du nic du siège : '.$even['insNICSIEGE']; + $strPre=getInfoPrecedente($tabSiren, $even['insDATEVE'], 'nic'); + if ($strPre<>'' && $strPre<>$even['insNICSIEGE']) $libDet.=" (Précédent : $strPre)"; + $libDet.=', '; + } + if ($even['insMADRESSE']==1) { + $libDet.='Modification de l\'adresse : '.$even['insL2_COMP'].' '.$even['insL3_CADR'].' '.$even['insL4_VOIE'].' '.$even['insL5_DISP'].' '.$even['insL6_POST'].' '.$even['insL7_ETRG']; + $strPre=getInfoPrecedente($tabSiret[$even['insNIC']], $even['insDATEVE'], 'adresse'); + if ($strPre<>'' && $strPre<>$even['insL2_COMP'].' '.$even['insL3_CADR'].' '.$even['insL4_VOIE'].' '.$even['insL5_DISP'].' '.$even['insL6_POST'].' '.$even['insL7_ETRG']) $libDet.=" (Précédent : $strPre)"; + $libDet.=', '; + } + if ($even['insMEFET']==1) $libDet.='Modification de l\'effectif : '.$even['insEFENCENT'].' (Tranche '.$even['insTEFET'].'), '; + if ($even['insEXPLET']=='O') $strTmp='Exploitant'; + elseif ($even['insEXPLET']=='N')$strTmp='Non exploitant participant au système productif'; + elseif ($even['insEXPLET']=='X')$strTmp='Non exploitant ne participant pas au système productif'; + if ($even['insMEXPLET']==1) $libDet.='Modification du caractère exploitant de l\'établissement : '.$strTmp.', '; + if ($even['insEXPLEN']=='O') $strTmp='Exploitant'; + elseif ($even['insEXPLEN']=='N')$strTmp='Non exploitant participant au système productif'; + elseif ($even['insEXPLEN']=='X')$strTmp='Non exploitant ne participant pas au système productif'; + if ($even['insMEXPLEN']==1) $libDet.='Modification du caractère exploitant de l\'entreprise : '.$strTmp.', '; + if ($even['insMCJ']==1) { + $libDet.='Modification de la forme juridique : '.$even['insCJ'].' - '.$this->getLibelleFJ($even['insCJ']); + $strPre=getInfoPrecedente($tabSiret[$even['insNIC']], $even['insDATEVE'], 'cj'); + if ($strPre<>'' && $strPre<>$even['insCJ']) $libDet.=" (Précédent : $strPre - ".$this->getLibelleFJ($even['insCJ']).')'; + $libDet.=', '; + } + if ($even['insAUXILT']==1) $strTmp='Auxiliaire'; + else $strTmp='Non auxiliaire'; + if ($even['insMAUXILT']==1) $libDet.='Modification du caractère auxiliaire de l\'établissement : '.$strTmp.', '; + + if (trim($even['insDESTINAT'])<>'' && $even['insDESTINAT']<>'NR' && $even['insDESTINAT']*1<>9) + $libDet.=$tabDestinat['i'.trim($even['insDESTINAT'])].', '; + + $libDet.=$tabTypEtab['i'.trim($even['insTYPETAB'])].', '; + + $typeSiretAss=''; + $siretAss=$even['insSIRETASS']; + switch ($even['insPRODPART']*1) { + case 1: $typeSiretAss='Loueur de fond'; break; + case 2: $typeSiretAss='Locataire du fond'; break; + case 3: $typeSiretAss='Prestataire de personnel'; break; + } + if ($siretAss*1==0) { + $tabPS=array(); + $siretAss=$even['insSIRETPS']; + if ($siretAss*1>0) + $tabPS=$this->getIdentiteLight(substr($siretAss,0,9)); + $tabEt=$this->getIdentiteLight($siren); + // 'Nom'=>$etab['raisonSociale'], + if ($tabPS['actif']==1 && $tabEt['actif']==0) $typeSiretAss='Successeur'; + elseif ($tabPS['actif']==0 && $tabEt['actif']==1) $typeSiretAss='Prédécesseur'; + else $typeSiretAss='Prédécesseur ou Successeur'; + } + + $dateEve=$even['insDATEVE']; + $dateMaj=$even['insDATEMAJ']; + if (str_replace('-','',$dateEve*1)==0) $dateEve=$dateMaj; + + $tabRet[]=array('codeEven' => 'I'.$even['insEVE'], + 'nic' => $even['insNIC'], + 'siretAssocie'=>$siretAss, + 'typeSiretAss'=>$typeSiretAss, + 'siege' => $even['insSIEGE'], + 'libEven' => $tabEvenInsee['i'.trim($even['insEVE'])], + 'libEvenDet'=> substr($libDet,0,-2), + 'dateMAJ' => $dateMaj, + 'dateEven' => $dateEve, + ); + } + } + + /** Recherche d'évènement pour lesquels le SIREN est ASSOCIE **/ + $siretDeb=$siren.'00000'; + $siretFin=$siren.'99999'; + $insee=$this->iDbInsee->select('insee_even', 'id, insSIREN, siretValide, insNIC, insLIBCOM, insSIEGE, insAUXILT, insORIGINE, insTEFET, insAPET700, insAPRM, insMODET, insMARCHET, insSAISONAT, insACTIVNAT, insENSEIGNE, insL1_NOMEN, insL2_COMP, insL4_VOIE, insL3_CADR, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE, insL5_DISP, insL6_POST, insCODPOS, insL7_ETRG, insRPET, insDEPCOM, insCODEVOIE, insDREACTET, insEXPLET, insDAPET, insLIEUACT, insACTISURF, insDEFET, insTEL, insCJ, insCIVILITE, insTEFEN, insAPEN700, insMODEN, insMARCHEN, insNOMEN, insTYPCREH, insEVE, insDATEVE, insTRAN, insNICTRAN, insMNICSIEGE, insMNOMEN, insMCJ, insMAPEN, insFiller1, insFiller2, insMMARCHEN, insMORDIN, insEFENCENT, insSIGLE, insNBETEXPL, insNICSIEGE, insDEPCOMEN, insFiller3, insMENSEIGNE, insMAPET, insMNATURE, insMADRESSE, insMEFET, insMSINGT, insMTELT, insMMARCHET, insMAUXILT, insSINGT, insEFETCENT, insSIRETPS, insDESTINAT, insDATEMAJ, idFlux, dirNom, dirNomUsage, dirPrenom, insDCRET, insDCREN, insPRODPART, insSIRETASS, insDREACTEN, insEXPLEN, insFiller4, insDEFEN, insMONOREG, insREGIMP, insMONOACT, insMSIGLE, insMEXPLEN, insRPEN, insMEXPLET, insTYPETAB, insDAPEN, ROUND(insSIRETASS/100000) AS sirenAss', "insSIRETASS BETWEEN $siretDeb AND $siretFin GROUP BY insSIREN, sirenAss ORDER BY insDATEMAJ DESC LIMIT 0,4500",false, MYSQL_ASSOC); + foreach ($insee as $i=>$even) { + if (in_array($even['id'], $tabId)) + continue; + else + $tabId[]=$even['id']; + $libDet='';/* + if ($even['insMNOMEN']==1) $libDet.='Modification de la raison sociale : '.$even['insNOMEN'].', '; + if ($even['insMENSEIGNE']==1) $libDet.='Modification de l\'enseigne : '.$even['insENSEIGNE'].', '; + if ($even['insMSIGLE']==1) $libDet.='Modification du sigle : '.$even['insSIGLE'].', '; + if ($even['insMAPEN']==1) $libDet.='Modification de l\'activité de l\'entreprise : '.$even['insAPEN700'].', '; + if ($even['insMAPET']==1) $libDet.='Modification de l\'activité de l\'établissement : '.$even['insAPET700'].', '; + if ($even['insMADRESSE']==1) $libDet.='Modification de l\'adresse : '.$even['insL2_COMP'].' '.$even['insL3_CADR'].' '.$even['insL4_VOIE'].' '.$even['insL5_DISP'].' '.$even['insL6_POST'].' '.$even['insL7_ETRG'].', '; + if ($even['insMEFET']==1) $libDet.='Modification de l\'effectif : '.$even['insEFENCENT'].' (Tranche '.$even['insTEFET'].'), '; + if (trim($even['insDESTINAT'])<>'' && $even['insDESTINAT']<>'NR' && $even['insDESTINAT']*1<>9) + $libDet.=$tabDestinat['i'.trim($even['insDESTINAT'])].', '; + + $libDet.=$tabTypEtab['i'.trim($even['insTYPETAB'])].', '; + */ + $typeSiretAss=''; + switch ($even['insPRODPART']*1) { + case 2: $typeSiretAss='Loueur de fond'; break; + case 1: $typeSiretAss='Locataire du fond'; break; + case 3: $typeSiretAss='Client en delegation de personnel'; break; + } + /*if ($siretAss*1==0) { + $tabPS=array(); + $siretAss=$even['insSIRETPS']; + if ($siretAss*1>0) + $tabPS=$this->getIdentiteLight(substr($siretAss,0,9)); + $tabEt=$this->getIdentiteLight($siren); + // 'Nom'=>$etab['raisonSociale'], + if ($tabPS['actif']==1 && $tabEt['actif']==0) $typeSiretAss='Successeur'; + elseif ($tabPS['actif']==0 && $tabEt['actif']==1) $typeSiretAss='Prédécesseur'; + else $typeSiretAss='Prédécesseur ou Successeur'; + }*/ + + $dateEve=$even['insDATEVE']; + $dateMaj=$even['insDATEMAJ']; + if (str_replace('-','',$dateEve*1)==0) $dateEve=$dateMaj; + + $tabRet[]=array('codeEven' => 'I'.$even['insEVE'], + 'nic' => substr($even['insSIRETASS'],9,5), + 'siretAssocie'=>''.$even['insSIREN'].$even['insNIC'], + 'typeSiretAss'=>$typeSiretAss, + 'siege' => $even['insSIEGE'], + 'libEven' => "Modification d'une entreprise/établissement lié",//$tabEvenInsee['i'.trim($even['insEVE'])], + 'libEvenDet'=> '',//substr($libDet,0,-3), + 'dateMAJ' => $dateMaj, + 'dateEven' => $dateEve, + ); + } + + /** Recherche d'évènement pour lesquels le SIREN est Prédécesseur ou Successeur **/ + $siretDeb=$siren.'00000'; + $siretFin=$siren.'99999'; + $insee=$this->iDbInsee->select('insee_even', 'id, insSIREN, siretValide, insNIC, insLIBCOM, insSIEGE, insAUXILT, insORIGINE, insTEFET, insAPET700, insAPRM, insMODET, insMARCHET, insSAISONAT, insACTIVNAT, insENSEIGNE, insL1_NOMEN, insL2_COMP, insL4_VOIE, insL3_CADR, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE, insL5_DISP, insL6_POST, insCODPOS, insL7_ETRG, insRPET, insDEPCOM, insCODEVOIE, insDREACTET, insEXPLET, insDAPET, insLIEUACT, insACTISURF, insDEFET, insTEL, insCJ, insCIVILITE, insTEFEN, insAPEN700, insMODEN, insMARCHEN, insNOMEN, insTYPCREH, insEVE, insDATEVE, insTRAN, insNICTRAN, insMNICSIEGE, insMNOMEN, insMCJ, insMAPEN, insFiller1, insFiller2, insMMARCHEN, insMORDIN, insEFENCENT, insSIGLE, insNBETEXPL, insNICSIEGE, insDEPCOMEN, insFiller3, insMENSEIGNE, insMAPET, insMNATURE, insMADRESSE, insMEFET, insMSINGT, insMTELT, insMMARCHET, insMAUXILT, insSINGT, insEFETCENT, insSIRETPS, insDESTINAT, insDATEMAJ, idFlux, dirNom, dirNomUsage, dirPrenom, insDCRET, insDCREN, insPRODPART, insSIRETASS, insDREACTEN, insEXPLEN, insFiller4, insDEFEN, insMONOREG, insREGIMP, insMONOACT, insMSIGLE, insMEXPLEN, insRPEN, insMEXPLET, insTYPETAB, insDAPEN, ROUND(insSIRETPS/100000) AS sirenAss', "insSIRETPS BETWEEN $siretDeb AND $siretFin GROUP BY insSIREN, sirenAss ORDER BY insDATEMAJ DESC LIMIT 0,4500",false, MYSQL_ASSOC); + foreach ($insee as $i=>$even) { + if (in_array($even['id'], $tabId)) + continue; + else + $tabId[]=$even['id']; + $libDet=''; + + $typeSiretAss='Prédécesseur ou Successeur'; + $dateEve=$even['insDATEVE']; + $dateMaj=$even['insDATEMAJ']; + if (str_replace('-','',$dateEve*1)==0) $dateEve=$dateMaj; + + $tabRet[]=array('codeEven' => 'I'.$even['insEVE'], + 'nic' => substr($even['insSIRETPS'],9,5), + 'siretAssocie'=>''.$even['insSIREN'].$even['insNIC'], + 'typeSiretAss'=>$typeSiretAss, + 'siege' => $even['insSIEGE'], + 'libEven' => "Modification d'une entreprise/établissement lié",//$tabEvenInsee['i'.trim($even['insEVE'])], + 'libEvenDet'=> '',//substr($libDet,0,-3), + 'dateMAJ' => $dateMaj, + 'dateEven' => $dateEve, + ); + } + return $tabRet; + } + + public function getLibelleFJ($code_forme_juridique, $court=false) { + $fj=$code_forme_juridique*1; + if ($fj>0 && $fj<10000) { + $tmp=$this->iDb->select( 'tabFJur', 'libelle AS LibFJ, libelleCourt AS LibCourt', "code=$fj", false, MYSQL_ASSOC); + $libLong =@$tmp[0]['LibFJ']; + $libCourt=@$tmp[0]['LibCourt']; + if ($court) { + if ($libCourt=='') { + if (strlen($libLong)>20) return substr($libLong,0,17).'...'; + else return $libLong; + } + return $libCourt; + } + else + return $libLong; + } + if ($court) return "En chiffrement"; + return 'En instance de chiffrement'; + } + + public function getCodesFJ() { + $tabFJ=array(); + $tabTmp=$this->iDb->select('tabFJur', 'code AS FJ, libelle AS libFJ', 'code>=1000', false, MYSQL_ASSOC); + foreach ($tabTmp as $i=>$tabCJ) + $tabFJ[$tabCJ['FJ']]=$tabCJ['LibFJ']; + + return array_keys($tabFJ); + } + + /** Découpe une ligne d'adresse textuelle en un tableau contenant les différentes composantes de l'adresse + **
    Array (
    +	 **      [adrComp0] => Maison des associations
    +	 **      [num]      => 33
    +	 **      [typeVoie] => R
    +	 **      [libVoie]  => Louis Blanc
    +	 **      [cp]		=> ...
    +	 **      [ville]	=> ... Si contenu dans l'adresse
    +	 ** )
    + ** + ** @param string $strLigneDAdresse La ligne d'adresse textuelle (ex : Maison des associations, 33 rue Louis Blanc + ** @return array tableau contenant l'adresse structurée ici + **/ + public function structureVoie($strLigneDAdresse) { + $tabRet=$tabAdr=array(); + $strLigneDAdresse=trim($strLigneDAdresse); + if ($strLigneDAdresse=='') return $tabRet; + $tabLignes=explode(',', preg_replace('/,$/', '', $strLigneDAdresse)); + foreach ($tabLignes as $strLigneDAdresse) { + $strLigneDAdresse=trimAccent($strLigneDAdresse); + $strLigneDAdresse=preg_replace('/[^0-9a-zA-Z]/', ' ', $strLigneDAdresse); + $strLigneDAdresse=trim(preg_replace('/ +/', ' ', $strLigneDAdresse)); + //echo "1. Adresse nettoyées = $strLigneDAdresse".EOL; + $adrAvecCP=preg_match("/(.*)([0-9]{5,5}|[0-9][0-9] [0-9]{3,3})([\D]*)/", $strLigneDAdresse, $tabAdrTmp); + if ($adrAvecCP) { + //echo "Adresse avec Code Postal\n"; + //print_r($tabAdrTmp); + $strLigneDAdresse=trim($tabAdrTmp[1]); + $tabRet['cp']=$tabAdrTmp[2]; + $tabRet['ville']=trim(strtoupper($tabAdrTmp[3])); + }// else echo "Adresse sans Code Postal\n"; + $adrAvecNum=preg_match("/^([0-9]{1,4})(.*)/", $strLigneDAdresse, $tabAdrTmp); + if ($adrAvecNum) { + //echo "Adresse avec Numéro de voie\n"; + //print_r($tabAdrTmp); + $tabRet['num']=$tabAdrTmp[1]; + if (preg_match("/^\b(B|BIS|T|TER|Q|a|c|d|e|f|g|h|i|j|k|l|m|n|o|p|r|s)\b(.*)/i", $tabAdrTmp[2], $tabAdrTmp2)) + { //echo "Adresse avec Bis, Ter, Q...\n"; + //print_r($tabAdrTmp2); + $tabRet['indRep']=trim($tabAdrTmp2[1]); $typeVoie=trim($tabAdrTmp2[2]);} + else $typeVoie=trim($tabAdrTmp[2]); + } else $typeVoie=trim($strLigneDAdresse); + // On récupère le type de voie si possible et le libellé de la voie + $voieTrouvee=false; + foreach ($this->tabCodeVoie as $code=>$voie) { + if (preg_match("/^($voie |$voie".'s '."|$code )(.*)/i", $typeVoie, $tabAdrTmp)) { + //echo "Adresse avec type de voie\n"; + //print_r($tabAdrTmp); + $tabRet['typeVoie']=$code; + $tabRet['libVoie']=trim(strtoupper($tabAdrTmp[2])); + $voieTrouvee=true; + break; + } + } + if (!$voieTrouvee) $tabAdr[]=$typeVoie; + } + foreach ($tabAdr as $k=>$ligne) + $tabRet['adrComp'.$k]=trim(strtoupper($ligne)); + + if (!isset($tabRet['libVoie'])) { $tabRet['libVoie']=$ligne; unset($tabRet['adrComp'.$k]); } + + if (isset($tabRet['adrComp0'])) { + if ($tabRet['adrComp0']=='BIS' || $tabRet['adrComp0']=='B') { + $tabRet['indRep']='B'; + $tabRet['adrComp0']=''; + } elseif ($tabRet['adrComp0']=='TER' || $tabRet['adrComp0']=='T') { + $tabRet['indRep']='T'; + $tabRet['adrComp0']=''; + } + } + + return $tabRet; + } + + /** + * Liste des établissements par siren/nic + * @param string $siren + * @param string $nic + * @param int $deb + * @param int $nbRep + * @param int $maxRep + * @param int $dep + * @param int $actif + * @param int $siege + */ + public function getEtablissements($siren, $nic='', $deb=0, $nbRep=20, $maxRep=200, $dep=0, $actif=-1, $siege=null) + { + $this->setTabCodesNaf(); + $deb=$deb*1; + $dep=$dep*1; + $nbRep=$nbRep*1; + + $strInfo=''; + + $limit="LIMIT $deb, $nbRep"; + + $sqlInfo="'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ". + "e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ". + "e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, e.teff_etab, ". + "CONCAT(e.siren, e.nic) as siret, e.actif, e.identite_pre, IF(e.siege=2,0.5,e.siege) AS triSiege"; + + $strActif=''; + if (intval($actif)==1) $strActif=' AND e.actif=1 '; + elseif (intval($actif)==0) $strActif=' AND e.actif=0 '; + + $strSiege=''; + if ($siege===null) $strSiege=''; + elseif ($siege==1) $strSiege=' e.siege=1 '; + elseif ($siege==0) $strSiege=' e.siege IN(0,2) '; + + //Search with "departement" + if ($dep>0 && $dep<99999) { + + if ($dep<96) $strDep='AND adr_cp BETWEEN '.$dep.'000 AND '.$dep.'999'; + elseif ($dep>9999) $strDep="AND adr_cp BETWEEN $dep AND $dep"; + else $strDep='AND adr_cp BETWEEN '.$dep.'00 AND '.$dep.'99'; + + $tabTmp=$this->iDb->select('etablissements e', 'count(*)', "siren=$siren $strDep $strActif $strSiege"); + $nbTot=$tabTmp[0][0]; + + $listeEtab=$this->iDb->select('etablissements e', $sqlInfo, + "siren=$siren $strDep $strActif $strSiege ORDER BY triSiege DESC, e.actif DESC,e.nic DESC $limit", false, MYSQL_ASSOC); + + } + //Search without NIC + elseif ($nic=='') { + + $tabTmp=$this->iDb->select('etablissements e', 'count(*)', "siren=$siren $strActif $strSiege"); + $nbTot=$tabTmp[0][0]; + + $listeEtab=$this->iDb->select('etablissements e', $sqlInfo, + "e.siren=$siren $strActif $strSiege ORDER BY triSiege DESC, e.actif DESC, e.nic DESC $limit", false, MYSQL_ASSOC); + + } + //Search with NIC + else { + + $tabTmp=$this->iDb->select('etablissements e', 'count(*)', "siren=$siren AND (nic=$nic OR siege=1) $strActif $strSiege"); + $nbTot=$tabTmp[0][0]; + + $listeEtab=$this->iDb->select('etablissements e', $sqlInfo, + "siren=$siren AND (nic=$nic OR siege=1) $strActif $strSiege ORDER BY triSiege DESC, e.actif DESC, e.nic DESC $limit", false, MYSQL_ASSOC); + + } + + // + if ($nbTot==0 && $actif==-1) { + + require_once 'Metier/sphinx/rechercheFonc.php'; + $liste = verificationDuSiret($siren); + if ($liste != false) { + //print 'Essayez :
    '; + $listeSiren=array(); + foreach ($liste as $s) { + if (sommeDeControle($s) != 0) { + //print 'erreur somme de controle sur '.$s.' ('.sommeDeControle($s).')
    '; + } else { + $listeSiren[]=$s; + } + } + $strSiren=implode(',',$listeSiren); + $tabTmp=$this->iDb->select('etablissements', 'count(*)', "siren IN ($strSiren) AND siege=1"); + $nbTot=$tabTmp[0][0]; + $listeEtab=$this->iDb->select('etablissements e', $sqlInfo, + "siren IN ($strSiren) AND siege=1 ORDER BY e.rang DESC, e.actif DESC, e.nic ASC $limit", true, MYSQL_ASSOC); + $strInfo='Siren saisi invalide'; + } + } + + foreach ($listeEtab as $etab) + { + $tel=sprintf('%010d', strtr($etab['tel'],array('-'=>'', '/'=>'','.'=>'',','=>''))); + if ($tel<>'0000000000') $tel=implode('.', str_split($tel,2)); + else $tel=''; + + $fax=sprintf('%010d', strtr($etab['fax'],array('-'=>'', '/'=>'','.'=>'',','=>''))); + if ($fax<>'0000000000') $fax=implode('.', str_split($fax,2)); + else $fax=''; + + $nom=trim($etab['raisonSociale']); + // Cas des noms vides à l'INSEE (une centaine) + if ($nom=='') $nom=@preg_replace('/,.*$/','',$etab['identite_pre']); + + $tabRet[]=array( + 'Localisation'=>$etab['Loc'], + 'id'=>$etab['id'], + 'Pertinence'=>100, + 'Siret'=>$etab['siret'], + 'Siege'=>$etab['siege'], + 'Nom'=>$nom, + 'Sigle'=>$etab['sigle'], + 'Enseigne'=>$etab['enseigne'], + 'Adresse'=>trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '. + $etab['adr_typeVoie'] .' '. $etab['adr_libVoie']))), + 'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])), + 'CP'=>$etab['adr_cp'], + 'Ville'=>$etab['adr_ville'], + 'Tel'=>$tel, + 'Fax'=>$fax, + 'FJ'=>$etab['cj'], + 'FJLib'=>$this->getLibelleFJ($etab['cj']), + 'Siren'=>$etab['siren'], + 'Nic'=>$etab['nic'], + 'Actif'=>$etab['actif'], + 'NafEtab'=>$etab['ape_etab'], // Etablissement + 'NafEnt'=>$etab['ape_entrep'], // Entreprise + 'NafEtabLib'=>$this->getLibelleNaf($etab['ape_etab']), + 'NafEntLib' =>$this->getLibelleNaf($etab['ape_entrep']), + 'EffEtTr'=>$etab['teff_etab'], + 'EffEtTrLib'=>self::$tabEffectif[$etab['teff_etab']], + ); + } + + if ($dep==0) $dep=''; // Evite l'affichage d'un 0 inutile sur l'Extranet + + return array( + 'criteres' => array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep), + 'info' => $strInfo, + 'nbReponses' => count($tabRet), + 'nbReponsesTotal' => $nbTot, + 'reponses' => $tabRet); + } + + /** + * Liste des établissements par Identifiant TEL/AUTRE + * @param string $typeId + * @param string $id + * @param int $deb + * @param int $nbRep + * @param int $maxRep + * @param int $dep + * @param int $actif + * @return array + */ + public function getEtablissementsParId($typeId, $id, $deb=0, $nbRep=20, $maxRep=200, $dep=0, $actif=2) + { + $this->setTabCodesNaf(); + $deb=$deb*1; + $dep=$dep*1; + + $nbRep=$nbRep*1; + $limit="LIMIT $deb, $nbRep"; + + $filtreActif = ''; + if ( $actif==1 || $actif==0 ) { + $filtreActif = " AND WHERE actif=$actif"; + } + + if ($typeId=='TEL') { + debugLog('I',"Recherche par TEL de $id avec un maximum de $nbRep réponses",__LINE__,__FILE__, __FUNCTION__, __CLASS__); + + $tabTmp=$this->iDb->select('etablissements', 'count(*)', "TEL=$id OR FAX=$id $filtreActif"); + $nbTot=$tabTmp[0][0]; + $listeEtab=$this->iDb->select('etablissements e', + "'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ". + "e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ". + "e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep,". + "CONCAT(e.siren, e.nic) as siret, e.actif", + "TEL=$id OR FAX=$id $filtreActif ORDER BY e.siege DESC, e.actif DESC $limit", false, MYSQL_ASSOC); + + } elseif ($typeId=='AUTRE') { + /** Formatage des numéros de RC **/ + $tabId=array($id); + if (preg_match('/(\d*)(\D)(\d*)/', $id,$matches)) { + if (strlen($matches[1])<=2) { + // Années du type 54 ou 07 + if ($matches[1]>date('y')) $deb='19'.$matches[1]; + else $deb='20'.$matches[1]; + } else // Années du type 1900 ou 2000 + $deb=substr($matches[1],2,2); + $numero =$matches[3]*1; + for ($i=strlen($numero); $i<=7; $i++) { + $tabId[]=$matches[1].$matches[2].sprintf('%0'.$i.'s',$numero); + $tabId[]=$deb.$matches[2].sprintf('%0'.$i.'s',$numero); + } + } + $strId=implode("','", $tabId); + + /** Gestion du numéro de département ou CP **/ + $strDep=''; + if ($dep>0 && $dep<99999) { + if ($dep<96) $strDep='AND adr_cp BETWEEN '.$dep.'000 AND '.$dep.'999'; + elseif ($dep>9999) $strDep="AND adr_cp BETWEEN $dep AND $dep"; + else $strDep='AND adr_cp BETWEEN '.$dep.'00 AND '.$dep.'99'; + } + $tabTmp=$this->iDb->select('etablissements', 'count(*)', "autre_id IN ('$strId') $filtreActif $strDep"); + $nbTot=$tabTmp[0][0]; + $listeEtab=$this->iDb->select('etablissements e', + "'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ". + "e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ". + "e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, e.teff_etab, ". + "CONCAT(e.siren, e.nic) as siret, e.actif", + "autre_id IN ('$strId') $filtreActif $strDep ORDER BY siege DESC $limit", false, MYSQL_ASSOC); + + } + foreach ($listeEtab as $etab) { + $tabRet[]=array( + 'Localisation'=>$etab['Loc'], + 'id'=>$etab['id'], + 'Pertinence'=>100, + 'Siret'=>$etab['siret'], + 'Siege'=>$etab['siege'], + 'Nom'=>$etab['raisonSociale'], + 'Sigle'=>$etab['sigle'], + 'Enseigne'=>$etab['enseigne'], + 'Adresse'=>trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '. + $etab['adr_typeVoie'] .' '. $etab['adr_libVoie']))), + 'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])), + 'CP'=>$etab['adr_cp'], + 'Ville'=>$etab['adr_ville'], + 'Tel'=>$etab['tel'], + 'Fax'=>$etab['fax'], + 'FJ'=>$etab['cj'], + 'FJLib'=>$this->getLibelleFJ($etab['cj']), + 'Siren'=>$etab['siren'], + 'Nic'=>$etab['nic'], + 'Actif'=>$etab['actif'], + 'NafEtab'=>$etab['ape_etab'], // Etablissement + 'NafEnt'=>$etab['ape_entrep'], // Entreprise + 'NafEtabLib'=>$this->getLibelleNaf($etab['ape_etab']), + 'NafEntLib' =>$this->getLibelleNaf($etab['ape_entrep']), + ); + } + + if ($dep==0) $dep=''; // Evite l'affichage d'un 0 inutile sur l'Extranet + + return array( + 'criteres'=>array('autreId'=>$id, 'dep'=>$dep), + 'nbReponses'=>count($tabRet), + 'nbReponsesTotal'=>$nbTot, + 'reponses'=>$tabRet); + } + + /** Retourne juste si un siren existe + ** + ** @param integer $siren + ** @return bool + **/ + function sirenExiste($siren) { + $siren=$siren*1; + $listeEtab=$this->iDb->select('etablissements', 'id', "siren=$siren LIMIT 0,1", false, MYSQL_ASSOC); + if (@count($listeEtab)>0) + return true; + return false; + } + + /** Retourne l'identité issue de la table établissements + ** + ** @param integer $siren + ** @return bool + **/ + function getIdentiteLight($siren, $nic=0, $id=0) { + $siren=$siren*1; + $nic=$nic*1; + $id=$id*1; + $limit=''; //LIMIT O,1' ; + if ($id>0 && $siren<1000) $where=" id=$id "; + elseif ($nic<>0) $where=" siren=$siren AND nic=$nic "; + elseif ($siren<>0) $where=" siren=$siren "; + else return array(); + + $listeEtab=$this->iDb->select('etablissements e', + "e.id, e.source, e.source_id, e.autre_id, e.siren, e.nic, e.siege, e.autre_id, e.triCode, ". + "e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ". + "e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, ". + "e.adr_dep, e.adr_com, e.capital, e.capitalDev, e.capitalSrc, e.tca, e.teff_entrep, e.teff_etab, ". + "CONCAT(e.siren, e.nic) as siret, e.actif, e.identite_pre", + "$where ORDER BY siege DESC, actif DESC, nic DESC $limit", false, MYSQL_ASSOC); + $etab=@$listeEtab[0]; + + $nom=trim($etab['raisonSociale']); + // Cas des noms vides à l'INSEE (une centaine) + if ($nom=='') $nom=@preg_replace('/,.*$/','',$etab['identite_pre']); + + $tabRet=array( 'id'=>$etab['id'], + 'Siret'=>$etab['siret'], + 'Siege'=>$etab['siege'], + 'Nom'=>$nom, + 'Tribunal'=>$etab['triCode'], + 'Sigle'=>$etab['sigle'], + 'Enseigne'=>$etab['enseigne'], + 'Adresse'=>trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '. + $etab['adr_typeVoie'] .' '. $etab['adr_libVoie']))), + 'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])), + 'AdresseNum'=>$etab['adr_num'], + 'AdresseBtq'=>$etab['adr_btq'], + 'AdresseVoie'=>$etab['adr_typeVoie'], + 'AdresseRue'=>$etab['adr_libVoie'], + 'CP'=>$etab['adr_cp'], + 'Ville'=>$etab['adr_ville'], + 'Tel'=>$etab['tel'], + 'Fax'=>$etab['fax'], + 'FJ'=>$etab['cj'], + 'FJ_lib'=>$this->getLibelleFJ($etab['cj']), + 'Siren'=>$etab['siren'], + 'Nic'=>$etab['nic'], + 'Actif'=>$etab['actif'], + 'NafEtab'=>$etab['ape_etab'], + 'NafEnt'=>$etab['ape_entrep'], + 'NafEntLib' =>$this->getLibelleNaf($etab['ape_entrep']), + 'NafEtabLib'=>$this->getLibelleNaf($etab['ape_etab']), + 'AutreId'=>$etab['autre_id'], + 'Source'=>$etab['source'], + 'SourceId'=>$etab['source_id'], + // Ajout du 25 mars 2010 + 'Dept'=>$etab['adr_dep'], + 'codeCommune'=>$etab['adr_com'], + 'Capital'=>$etab['capital'], + 'CapitalDev'=>$etab['capitalDev'], + 'TrancheCA'=>$etab['tca'], + 'TrancheCALib'=>self::$tabTCA[$etab['tca']], + 'EffEnTr'=>$etab['teff_entrep'], + 'EffEnTrLib'=>self::$tabEffectif[$etab['teff_entrep']], + 'EffEtTr'=>$etab['teff_etab'], + 'EffEtTrLib'=>self::$tabEffectif[$etab['teff_etab']], + // Added 30/05/2012 + //'EffEn'=>$etab['teff_entrep'], + //'EffEt'=>$etab['teff_etab'], + ); + + return $tabRet; + } + + /** Retourne la liste des devise + ** + ** @param string $codeDevise Code ISO devise + ** @return Devise ou liste des devises (si pas de code ISO en entrée) + **/ + function getDevises($codeIso='') { + if (trim($codeIso)<>'') $strWhere="devIso='$codeIso'"; + else $strWhere='1'; + $liste=$this->iDb->select('tabDevises', 'devIso, devNom', $strWhere, false, MYSQL_ASSOC); + $tabRet=array(); + foreach ($liste as $ligne) + $tabRet[$ligne['devIso']]=$ligne['devNom']; + return $tabRet; + } + + /** Retourne la liste des mandataires/administrateurs/oppositions d'une ou plusieurs cours d'appel + ** + ** @param array $arrIdCA Id S&D de la cour d'appel + ** @param bool $condense Par défaut retourne un tableau concatenant Nom, prenom, adresse complète + ** @param array $type Type d'opposition. Ex array('A','M') pour Admin/Mandataires. Autres: a'V'ocat,'H'uissier,'N'otaire + ** @return Liste des Mandataires/Administrateurs de la cours d'appel + **/ + function getMandataires($arrIdCA=array(), $condense=true, $type=array()) { + if (count($arrIdCA)>0) $strIdCA='AND ( coursAppel in ('.implode(',', $arrIdCA).') OR coursAppel2 in ('.implode(',', $arrIdCA).') )'; + else $strIdCA=''; + + if (count($type)>0) $strType="AND type in ('".implode("','", $type)."') "; + else $strType=''; + + + if (!$condense) + $fields='id,sirenGrp,sirenMand,Nom,Prenom,type,tribunal,Statut,adresse,adresseComp,cp,ville,tel,fax,email,web,contact'; + else + $fields="id, CONCAT(Nom,' ',Prenom,' ',adresse,' ',adresseComp,' ',cp,' ',ville) as Mand"; + + $liste=$this->iDb->select('tabMandataires', $fields, "1 $strIdCA $strType ORDER BY sirenGrp", true, MYSQL_ASSOC); + $tabRet=array(); + if (!$condense) foreach ($liste as $ligne) $tabRet[]=$ligne; + else foreach ($liste as $ligne) $tabRet[$ligne['id']]=preg_replace('/ +/',' ',$ligne['Mand']); + + return $tabRet; + } + + /** Retourne la liste des mandataires/administrateurs/oppositions correspondant à un nom + ** + ** @param string $nom Nom du mandataire + ** @param bool $condense Par défaut retourne un tableau concatenant Nom, prenom, adresse complète + ** @param array $type Type d'opposition. Ex array('A','M') pour Admin/Mandataires. Autres: a'V'ocat,'H'uissier,'N'otaire + ** @return Liste des Mandataires/Administrateurs de la cours d'appel + **/ + function searchMandataires($nom, $condense=true, $type=array(), $cpDep=0) { + + $strIdCA="AND (Nom LIKE '%$nom%' OR Prenom LIKE '%$nom%') "; + + if (count($type)>0) $strType="AND type in ('".implode("','", $type)."') "; + else $strType=''; + + if ($cpDep>0 && $cpDep<100) $strCp="AND cp BETWEEN $cpDep"."000 AND $cpDep"."999 "; + elseif ($cpDep>99 && $cpDep<1000) $strCp="AND cp BETWEEN $cpDep"."00 AND $cpDep"."99 "; + elseif ($cpDep>999) $strCp="AND cp=$cpDep "; + else $strCp=''; + + if (!$condense) + $fields='id,sirenGrp,sirenMand,Nom,Prenom,type,tribunal,Statut,adresse,adresseComp,cp,ville,tel,fax,email,web,contact'; + else + $fields="id, CONCAT(Nom,' ',Prenom,' ',adresse,' ',adresseComp,' ',cp,' ',ville) as Mand"; + + $liste=$this->iDb->select('tabMandataires', $fields, "1 $strIdCA $strType $strCp ORDER BY sirenGrp", false, MYSQL_ASSOC); + $tabRet=array(); + if (!$condense) foreach ($liste as $ligne) $tabRet[]=$ligne; + else foreach ($liste as $ligne) $tabRet[$ligne['id']]=preg_replace('/ +/',' ',$ligne['Mand']); + + return $tabRet; + } + + /** Récupère les informations du mandataire + ** + ** @param integer $idMand Identifiant SD du mandataire + ** @return array + **/ + function getMandataire($idMand) { + $fields='id,sirenGrp,sirenMand,Nom,Prenom,type,coursAppel,coursAppel2,tribunal,Statut,stagiaire,adresse,adresseComp,cp,ville,tel,fax,email,web,contact'; + $liste=$this->iDb->select('tabMandataires', $fields, "id=$idMand", true, MYSQL_ASSOC); + return @$liste[0]; + } + + + function getHuissiers($arrIdCA=array(), $condense=true) { + if (count($arrIdCA)>0) + $strIdCA="AND tribunal in ('".implode("','", $arrIdCA)."')"; + + else $strIdCA=''; + if (!$condense) + $fields='id,sirenGrp,sirenMand,Nom,Prenom,type,tribunal,Statut,adresse,adresseComp,cp,ville,tel,fax,email,web,contact'; + else + $fields="id, CONCAT(Nom,' ',Prenom,' ',adresse,' ',adresseComp,' ',cp,' ',ville) as Mand"; + + $liste=$this->iDb->select('tabMandataires', $fields, "1 AND type='H' $strIdCA ORDER BY sirenGrp", false, MYSQL_ASSOC); + $tabRet=array(); + if (!$condense) foreach ($liste as $ligne) $tabRet[]=$ligne; + else foreach ($liste as $ligne) $tabRet[$ligne['id']]=preg_replace('/ +/',' ',$ligne['Mand']); + //@wsLog('HUISSIERS',$strIdCA,count($liste)); + return $tabRet; + } + + /** Retourne l'identite Textuelle d'un mandataires/administrateurs + ** + ** @param integer $idMand Id S&d du mandataire + ** @return string Mandataire + **/ + function getMandatairesParId($idMand) { + if ($idMand>0) { + $liste=$this->iDb->select('tabMandataires', "CONCAT(Nom,' ',Prenom,' ',adresse,' ',adresseComp,' ',cp,' ',ville) as Mand", "id=$idMand", false); + return $liste[0][0]; + } + return ''; + } + + function getNaf4($siren, $nic=0, $id=0) { + $tabRet=array(); + $siren=$siren*1; + if ($siren==0) return false; + $nic=$nic*1; + $id=$id*1; + /*if ($id>0 && $siren==0) $where=" id=$id "; + else*/if ($nic<>0) $where=" siren=$siren AND nic=$nic "; + else $where=" siren=$siren AND siege=1 "; + + $insee=$this->iDbInsee->select('bascule', 'siren, nic, apen5, apen4, apet5, apet4', $where, false, MYSQL_ASSOC); + $tabRet=$insee[0]; + $tabRet['apen4_lib']=$this->getLibelleNaf($tabRet['apen4']); + $tabRet['apet4_lib']=$this->getLibelleNaf($tabRet['apet4']); + return $tabRet; + } + + function getIdentiteEntreprise($siren, $nic=0, $id=0, $forceVerif=false, $accesDist=true) + { + global $timer; + $timer=array('debutIdentite'=>microtime(true)); + //$accesDist=false; + $tdebIni=microtime(1); + $ligne=date('YmdHis').";$siren;getIdentiteEntreprise Début ---"; + $fp=fopen(LOG_PATH.'/accesDistant.log', 'a'); + fwrite($fp,$ligne.EOL); + fclose($fp); + + $siren=$siren*1; + $nic=$nic*1; + $id=$id*1; + $limit=''; //LIMIT O,1' ; + if ($id>0 && $siren<1000) $where=" id=$id "; + elseif ($nic<>0) $where=" siren=$siren AND nic=$nic "; + elseif ($siren<>0) $where=" siren=$siren ";//AND siege=1 "; + $listeEtab=$this->iDb->select('etablissements e', + "e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, e.autre_id, ". + "e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ". + "e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, ". + "e.capital, e.capitalDev, e.capitalSrc, CONCAT(e.siren, e.nic) as siret, e.actif, ". + "e.age_entrep, e.age_etab, e.tca, e.tcaexp, e.teff_entrep, e.teff_etab", + "$where ORDER BY siege DESC, actif DESC, nic DESC $limit", false, MYSQL_ASSOC); + + $etab=@$listeEtab[0]; + $nic=@$etab['nic']; + $timer['tableEtablissements']=microtime(true); + + /** Si le siren est valide, on part chez Infogreffe **/ + if (count($listeEtab)==0 && $this->valideSiren($siren) && $accesDist) { + $iGeffes=new MGreffes(); + $etabG=$iGeffes->getIdentite($siren); + if ($etabG) { + $adr=$this->structureVoie($etabG['Adresse']); + // Date de dernière MAJ + $lastMaj=str_replace('-','',$etabG['DateRadiation'])*1; + if (str_replace('-','',$etabG['DateCreation'])*1>$lastMaj) + $lastMaj=str_replace('-','',$etabG['DateCreation'])*1; + if (str_replace('-','',$etabG['DateUpdate'])*1>$lastMaj) + $lastMaj=str_replace('-','',$etabG['DateUpdate'])*1; + + $etab=array( 'id' => $etabG['id'], + 'siret' => $etabG['Siret'], + 'siege' => $etabG['Siege'], + 'raisonSociale' => $etabG['Nom'], + 'sigle' => $etabG['Sigle'], + 'enseigne' => $etabG['Enseigne'], + 'Adresse' => $etabG['Adresse'], + 'adr_comp' => $etabG['Adresse2'], + 'adr_num' => $adr['num'], + 'adr_btq' => $adr['adr_btq'], + 'adr_typeVoie' => $adr['typeVoie'], + 'adr_libVoie' => $adr['libVoie'], + 'adr_dep' => substr($etabG['CP'],0,2), + 'adr_cp' => $etabG['CP'], + 'adr_ville' => $etabG['Ville'], + 'tel' => $etabG['Tel'], + 'fax' => $etabG['Fax'], + 'cj' => $etabG['FJ'], + 'siren' => $etabG['Siren'], + 'nic' => $etabG['Nic'], + 'actif' => $etabG['Actif'], + 'ape_etab' => $etabG['NafEtab'], + 'ape_entrep' => $etabG['NafEnt'], + 'autre_id' => $etabG['NumRC'], + 'dateMAJ' => WDate::DateT('Ymd','Y-m-d',$lastMaj), + ); + } + $timer['accesInfogreffeCarInconnu']=microtime(true); + } + unset($listeEtab); + + /** Informations locales issues de la table infos_entrep + **/ + if ($siren>100) { + $info=$this->iDb->select('infos_entrep', 'raisonSociale, isin, nscrl, tel, fax, web, mail, latitude, longitude, precis, dateCreation, dateFermeture, naf, naf_lib, ca, effectif, nbEtab, activite, sirenDoublon, waldec', "siren=$siren", false, MYSQL_ASSOC); + $tab=$info[0]; + $waldec=$tab['waldec']; + if ($tab['sirenDoublon']==0) { + $info=$this->iDb->select('infos_entrep', 'siren AS sirenDoublon', "sirenDoublon=$siren", false, MYSQL_ASSOC); + $tab['sirenDoublon']=$info[0]['sirenDoublon']; + } + + $insee=$this->iDb->select('etablissements', 'CONCAT(SIREN,NIC) AS siret', "SIREN=$siren AND SIEGE=1 ORDER BY ACTIF%10 DESC, NIC DESC",false,MYSQL_ASSOC); + $siretSiege=$insee[0]['siret']; + $timer['infosEntrep']=microtime(true); + } + + if ($nic>0) $strNic="AND NIC=$nic"; + else $strNic='AND NIC<100000 AND SIEGE=1'; + + $moisNonDiff=0; + + /** Informations INSEE + **/ + if ($siren>100) { + $insee=$this->iDbInsee->select('identite', 'ACTIF%10 AS ACTIF, actifEco%10 AS actifEco, NOM, NOM2, SIGLE, ENSEIGNE, ADR_NUMVOIE, ADR_BTQ, ADR_TYPVOIE, ADR_LIBVOIE, ADR_LIBCOM, ADR_CP, ADR_COMP, ADR_DISTSP, PAYS, DCREN, SIEGE, AUXILT, SAISONAT, CJ, CIVILITE, NBETAB, APE_ENT, APE_ETAB, PROCOL, PROCOL_TYPE, PROCOL_DATE, CAPITAL, EFF_ENT, NUMRC, TEL, FAX, DIR_FCT, DIR_IDEN, DIR_DATEN, DIR_LIEUN, CAPITAL_DATE, CAPITAL_DEV, DCRET, TEFF_ENT, ADR_DEP, ADR_COM, TCA, TCAEXP, EFF_ET, TEFF_ET, CODEVOIE, DATE_MAJ, APRM, ACTIVNAT, ORIGINE, MODET, EXPLET, LIEUACT, ACTISURF, DEFET, MODEN, PRODPART, EXPLEN, MONOREG, REGIMP, MONOACT, DEFEN, DEFET, IDENTITE_PRE', + "SIREN=$siren $strNic ORDER BY SIEGE DESC, ACTIF DESC LIMIT 0,1",false,MYSQL_ASSOC); + if (count($insee)>0) { + $tabInsee=$insee[0]; + $tabNotice=$this->getInfosNotice($siren, $nic); + $tabInsee['TCA_AN']=$tabNotice['insEAEANT']; + $tabInsee['RECME']=$tabNotice['insRECME']; + // On force l'indicateur "actifEco" à 0 si l'établissement est juridiquement inactif + if ($tabInsee['ACTIF']*1==0) $tabInsee['actifEco']=0; + } else { + // Siren absent de l'Insee + $tabInsee=array( + 'CIVILITE'=>0, + 'NBETAB'=>1, + 'TEL'=>$etab['tel'], /** @todo Prendre sur les pages jaunes **/ + 'FAX'=>$etab['fax'], /** @todo idem **/ + 'Web'=>'', /** @todo Prendre sur les pages jaunes et/ou google **/ + 'Mail'=>'', /** @todo idem **/ + 'CJ'=>$etab['cj'], + 'CJ_lib'=>$this->getLibelleFJ($etab['cj']), + 'ACTIF'=>$etab['actif'], + 'APE_ETAB'=>$etab['ape_etab']?$etab['ape_etab']:$etab['ape_entrep'], + 'APE_ENT'=>$etab['ape_entrep']?$etab['ape_entrep']:$etab['ape_etab'], + 'CAPITAL'=>$etab['capital'], + 'CAPITAL_DEV'=>$etab['capitalDev'], + 'ADR_DEP'=>$etab['adr_dep'], + 'TEFF_ENT'=>$etab['teff_entrep'], + 'DEFEN'=>'', + 'TEFF_ET'=>$etab['teff_etab'], + 'DEFET'=>'', + 'TCA'=>$etab['tca'], + 'TCA_AN'=>'', + 'TCAEXP'=>$etab['tcaexp'], + ); + } + + $tabTmp=$this->iDb->select('etablissements', 'count(*) AS nbEtabs', "siren=$siren AND NIC<100000 AND ACTIF%10=1",false,MYSQL_ASSOC); + $nbEtab=$tabTmp[0]['nbEtabs']; + $inseeND=$this->iDbInsee->select('insee_nondiff', 'siren, mois, dateInsert',"siren=$siren",false,MYSQL_ASSOC); + $moisNonDiff=@$tabTmp[0]['mois']; + $timer['tableIdentite']=microtime(true); + } + else { + $tabInsee=array( + 'CIVILITE'=>0, + 'NBETAB'=>1, + 'TEL'=>$etab['tel'], /** @todo Prendre sur les pages jaunes **/ + 'FAX'=>$etab['fax'], /** @todo idem **/ + 'Web'=>'', /** @todo Prendre sur les pages jaunes et/ou google **/ + 'Mail'=>'', /** @todo idem **/ + 'CJ'=>$etab['cj'], + 'CJ_lib'=>$this->getLibelleFJ($etab['cj']), + 'ACTIF'=>$etab['actif'], + 'APE_ETAB'=>$etab['ape_etab']?$etab['ape_etab']:$etab['ape_entrep'], + 'APE_ENT'=>$etab['ape_entrep']?$etab['ape_entrep']:$etab['ape_etab'], + 'CAPITAL'=>'', + 'CAPITAL_DEV'=>'', + 'ADR_DEP'=>$etab['adr_dep'], + ); + $nbEtab='N/C'; + } + + if (count($info)==0) { + $idComp=$this->getIdentitePart($siren, $etab['raisonSociale'], $etab['enseigne'], $etab['sigle'], 0, $accesDist); + $tab=$idComp; + $timer['getIdentitePart']=microtime(true); + } + + /** Géocodage de l'adresse + **/ + $ligne=date('YmdHis').";$siren;MMap AVANT"; + $fp=fopen(LOG_PATH.'/accesDistant.log', 'a'); + fwrite($fp,$ligne.EOL); + fclose($fp); + $mMap=new MMap(true);//$etab['adr_num'].' '.$this->getCodeVoie($etab['adr_typeVoie']).' '.$etab['adr_libVoie'], $etab['adr_cp'], $etab['adr_ville']); + $mMap->geoCodeAdresse($etab['adr_num'],'',$etab['adr_typeVoie'],$this->getCodeVoie($etab['adr_typeVoie']), $etab['adr_libVoie'], $etab['adr_cp'], $etab['adr_ville'], 'France', trim($tabInsee['ADR_DEP'].$tabInsee['ADR_COM'].$tabInsee['CODEVOIE'])); + $ligne=date('YmdHis').";$siren;MMap APRES ($duree s)"; + $fp=fopen(LOG_PATH.'/accesDistant.log', 'a'); + fwrite($fp,$ligne.EOL); + fclose($fp); + $tab['latitude']=$mMap->latitudeDec; + $tab['longitude']=$mMap->longitudeDec; + $tab['altitude']=$mMap->altitude; + $tab['precis']=$mMap->precision; + $timer['geoCodage']=microtime(true); + + /** Accès provisoire à AMABIS + **/ + if ($accesDist) { + $ligne=date('YmdHis').";$siren;MAmabis Avant"; + $fp=fopen(LOG_PATH.'/accesDistant.log', 'a'); + fwrite($fp,$ligne.EOL); + fclose($fp); + $tdeb=microtime(1); + $iAmabis=new MAmabis(); + $repAmabis=$iAmabis->getZonage($etab['adr_num'],$etab['adr_btq'],$etab['adr_typeVoie'],$etab['adr_libVoie'], $etab['adr_cp'], $etab['adr_ville'], trim($tabInsee['ADR_DEP'].$tabInsee['ADR_COM'].$tabInsee['CODEVOIE']), false, 'TEST', false); + $duree=round(microtime(1)-$tdeb,3); + $ligne=date('YmdHis').";$siren;MAmabis APRES ($duree s)"; + $fp=fopen(LOG_PATH.'/accesDistant.log', 'a'); + fwrite($fp,$ligne.EOL); + fclose($fp); + $timer['zonesPrioritaires']=microtime(true); + } else + $repAmabis=array(); + + + /** N° de TVA Intracommunautaire + **/ + if ($siren*1>100) { + $ligne=date('YmdHis').";$siren;MTva Avant"; + $fp=fopen(LOG_PATH.'/accesDistant.log', 'a'); + fwrite($fp,$ligne.EOL); + fclose($fp); + $tdeb=microtime(1); + $iTva=new MTva($siren, $accesDist); + $vatNumber=$iTva->vatNumber; + $vatDefined=$iTva->vatDefined; + $duree=round(microtime(1)-$tdeb,3); + $ligne=date('YmdHis').";$siren;MTva APRES ($duree s)"; + $fp=fopen(LOG_PATH.'/accesDistant.log', 'a'); + fwrite($fp,$ligne.EOL); + fclose($fp); + $timer['tvaIntra']=microtime(true); + } else { + $vatNumber='FR00000000000'; + $vatDefined=false; + } + + $nom =trim($etab['raisonSociale']); + if ($nom=='') $nom=@preg_replace('/,.*$/','',$tabInsee['IDENTITE_PRE']); + $nom2=$tel=$fax=''; + if (strtoupper(trim($tabInsee['NOM2']))<>strtoupper(trim($etab['sigle']))) + $nom2=trim($tabInsee['NOM2']); + + if (trim($tab['tel'])<>'') $tel=trim($tab['tel']); + elseif ($tabInsee['TEL']<>'') $tel=implode('.', str_split($tabInsee['TEL'],2)); + + if (trim($tab['fax'])<>'') $fax=trim($tab['fax']); + elseif ($tabInsee['FAX']<>'') $fax=implode('.', str_split($tabInsee['FAX'],2)); + + /*if ( $accesDist && $etab['actif']==1 ) {/*&& + ($tel=='' || /*$fax=='' ||* // Pas de tél ou Fax + ($etab['siege']==1 && ($tab['web']=='' || $tab['web']=='http://')) + //$tab['web']=='' || $tab['mail']=='' || // Pas de Web/Mail + ) + ) */ + $ligne=date('YmdHis').";$siren;MTel Avant"; + $fp=fopen(LOG_PATH.'/accesDistant.log', 'a'); + fwrite($fp,$ligne.EOL); + fclose($fp); + $tdeb=microtime(1); + $iTel=new MTel(false);//$accesDist); + $iTel->getTel($siren); + $tmp=$iTel->getTel($siren, $nic); + $duree=round(microtime(1)-$tdeb,3); + $ligne=date('YmdHis').";$siren;MTel APRES ($duree s)"; + $fp=fopen(LOG_PATH.'/accesDistant.log', 'a'); + fwrite($fp,$ligne.EOL); + fclose($fp); + $activitePJ_An8=''; + foreach ($tmp as $tmp2) { + if ($tmp2['typeTel']=='tel' && ($tel==''||$tel==trim($tab['tel'])) ) + $tel=implode('.', str_split($tmp2['telephone'],2)); + if ($tmp2['typeTel']=='fax' && ($fax==''||$fax==trim($tab['fax'])) ) + $fax=implode('.', str_split($tmp2['telephone'],2)); + if ($tmp2['typeTel']=='web' && $tab['web']=='') $tab['web']=$tmp2['infoTel']; + if ($tmp2['typeTel']=='mail' && $tab['mail']=='') $tab['mail']=$tmp2['infoTel']; + if ($tmp2['typeTel']=='an8') $activitePJ_An8=$tmp2['infoTel']; + } + $timer['telFax']=microtime(true); + //} + + /** Type d'exploitation + ** 0 : N/C + ** 1 : Locataire d'un fond de commerce + ** 2 : Loueur d'un fond de commerce + ** 3 : Prestataire de personnel + ** 10: Exploitation directe + ** 11: Sans activité ??? + **/ + $typeExploitation=0; + if (strtoupper($tabInsee['EXPLET'])=='O') { + switch ($tabInsee['PRODPART']*1) { + case 1: // Locataire d'un fond de commerce + $tabAnn2=$this->getAnnoncesLegales($siren, 0, array(5700)); + if (count($tabAnn2)>0) $typeExploitation=0; + else $typeExploitation=1; + break; + case 2: // Loueur d'un fond de commerce + case 3: // Prestataire de personnel + $typeExploitation=$tabInsee['PRODPART']*1; + break; + default: + if (!($tabInsee['CJ']>=7000 && $tabInsee['CJ']<8000) && + !($tabInsee['CJ']>=9000 && $tabInsee['CJ']<10000) ) { + if ($tabInsee['ORIGINE']*1==6) // Prise en location-gérance + $typeExploitation=1; // Locataire d'un fond de commerce + elseif ($tabInsee['ORIGINE']*1==1 || // Création pure + $tabInsee['ORIGINE']*1==3 || // Achat + $tabInsee['ORIGINE']*1==4) // Apport + /* + '2'=>'Réinstallation après transfert', + '5'=>'Reprise au conjoint ou apport reçu', + + '7'=>'Partage', + '8'=>'Reprise', + '9'=>'Autre modalité d\'acquisition', + 'A'=>'Reprise globale d\'une exploitation agricole', + 'B'=>'Poursuite de l\'exploitation agricole par le conjoint', + 'C'=>'Transfert de propriété d\'une exploitation agricole', + 'D'=>'Apport d\'exploitation(s) agricole(s) individuelle(s)', + 'E'=>'Reprise totale ou partielle d\'exploitation individuelle', + */ + $typeExploitation=10; + elseif ($nbEtab<2) { + $tabAnn=$this->getAnnoncesLegales($siren, 0, 'L'); + if (count($tabAnn)>0) { + //@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getAnnonces... sur $siren", print_r($this->getAnnoncesLegales($siren, 0, 'L'), true)); + //ICI + if ($tabAnn[0]['DateParution']>$tabInsee['DCRET'] && ($tabAnn[0]['Departement']==$tabInsee['ADR_DEP'] || $tabAnn[0]['Departement']==substr(''.$tabInsee['ADR_DEP'].''.$tabInsee['ADR_COM'],O,3)*1)) + $typeExploitation=1; // Locataire d'un fond de commerce + } elseif (count($this->getAnnoncesLegales($siren, 0, 'G'))>0) { + //@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getAnnonces... sur $siren", print_r($this->getAnnoncesLegales($siren, 0, 'G'), true)); + $typeExploitation=2; // Loueur d'un fond de commerce + } + } elseif ($tabInsee['ORIGINE']*1 <>0 && + $tabInsee['ORIGINE']*1 <>8 && + $tabInsee['ORIGINE']*1 <>9 && + $tabInsee['ORIGINE'] <>'NR') + $typeExploitation=10; // Exploitation directe + } + break; + } + } + $timer['typeExploitation']=microtime(true); + + /** Recherche de prédécesseur ou successeur + **/ + + global $tabInfoUser; //@todo : Voir à quoi + + $tabAssoc=$this->getSiretAssoc($siren, $nic); + if (count($tabAssoc)>0) { + if (isset($tabAssoc['pre'])) { + // Il y a un prédécesseur + if ($tabInsee['ORIGINE']*1==0 || + $tabInsee['ORIGINE']*1==1 || + $tabInsee['ORIGINE']*1==9 || + $tabInsee['ORIGINE']=='NR') + $tabInsee['ORIGINE']=2; // Transfert + } + } + $timer['siretPrecSuivant']=microtime(true); + + /** Code Pays + **/ + $codePaysIso2='FR'; + if ($tabInsee['ADR_DEP']>98) { + $codePaysInsee=$tabInsee['ADR_COM']; + $tabTmp=$this->iDb->select( 'jo.tabPays j, insee.insee_tabPays i', + 'j.codPays, j.numPays, j.codPays3, j.codePaysInpi, j.libPays, i.LIBCOG, i.ACTUAL', + "j.codePaysInsee=$codePaysInsee AND j.codePaysInsee=substring( i.COG, 3, 3 ) AND i.ACTUAL IN (1,4) AND j.numPays is NOT NULL", false, MYSQL_ASSOC); + if (count($tabTmp)==1) { + $codePaysIso2=$tabTmp[0]['codPays']; + } else { + $codePaysIso2=''; + foreach ($tabTmp as $tabTmp2) { + if (trim(preg_replace('/[^A-Z]/','',strtoupper(strtr($tabTmp2['libPays'], + 'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝ', + "aaaaaaaceeeeiiiionooooouuuuyyAAAAAAACEEEEIIIIONOOOOOUUUUY"))))==trim(preg_replace('/[^A-Z]/','',strtoupper($tabTmp2['LIBCOG'])))) { + $codePaysIso2=$tabTmp2['codPays']; + break; + } + } + // Exception lié à anomalies de données INSEE + if ($codePaysIso2=='' && $codePaysInsee==237) $codePaysIso2='KR'; + + if ($codePaysIso2=='') { + sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getIdentiteEntreprise(siren=$siren,nic=$nic=,id=$id) Plusieurs Codes Pays", "Siret $siren $nic +Id=$id".EOL. +print_r($tabInsee, true).EOL. +print_r($tabTmp, true)); + } + } + } + $timer['codePays']=microtime(true); + + $tabIris=$this->getInfosIris($tabInsee['ADR_DEP'].$tabInsee['ADR_COM'], substr($tabInsee['CODEVOIE'],0,4), $etab['adr_num'], $etab['adr_btq'], $etab['adr_typeVoie'], $etab['adr_libVoie']); + if ($tabInsee['CODEVOIE']=='') { + // On récupere le code Rivoli s'il est absent de SIRENE (cf. doc Sirene) + $tabInsee['CODEVOIE']=@$tabIris['Rivoli']; + } + $timer['codeIris']=microtime(true); +/* + return array('codIris'=>$ret[0]['codeIris'], + 'codComIris'=>$ret[0]['codeInseeIris'], + 'libIris'=>$ret[0]['LIB_IRIS'], + 'typIris'=>$tabTypeIris[$ret[0]['TYP_IRIS']], +*/ + // Est-ce un ancien établissement siège ? + $ancienSiege=false; + $dateFinSiege=0; + if ($etab['siege']==0 || ($etab['siege']==1 && $tabInsee['ACTIF']==0)) { + $dateFinSiege=$this->isAncienSiege($siren,$nic); + if ($dateFinSiege>19000101) $ancienSiege=true; + } + $timer['ancienSiege']=microtime(true); + + $tabInsee['actifEcoDate']=''; + $tabInsee['actifEcoType']=''; + + if ($tabInsee['ACTIF']*1==1 && $tabInsee['actifEco']*1==0) + { + /** L'établissement est actif juridiquement à l'INSEE mais sans activité économique **/ + $tabTmp=$this->iDb->select('insee.insee_even', 'insEVE, IF(insDATEVE=0, idFlux*1, insDATEVE) AS insDATEVE', + "insSIREN=$siren AND insNIC=$nic AND insEVE IN ('MPF','MNP','650') ORDER BY insDATEVE DESC", false, MYSQL_ASSOC); + if (count($tabTmp)>0) { + $tabModif=$tabTmp[0]; + switch(''.$tabModif['insEVE']) { + case '650': // Fermé économiquement + $tabInsee['actifEcoType']='ECOF'; + $tabInsee['actifEcoDate']=$tabModif['insDATEVE']; + break; + case 'MPF': // Présumé Fermé par la trimestrielle Insee + $tabInsee['actifEcoType']='PFER'; + $tabInsee['actifEcoDate']=$tabModif['insDATEVE']; + break; + case 'MNP': // Présumé Fermé par la trimestrille NPAI + $tabInsee['actifEcoType']='NPAI'; + $tabInsee['actifEcoDate']=$tabModif['insDATEVE']; + break; + } + } + + /** Evènement Relatif à une cessation ECO entreprise **/ + $tabTmp=$this->iDb->select('insee.insee_even', 'insEVE, IF(insDATEVE=0, idFlux*1, insDATEVE) AS insDATEVE', + "insSIREN=$siren AND insEVE IN ('OD','TD','420','425','620','621') ORDER BY insDATEVE DESC", false, MYSQL_ASSOC); + if (count($tabTmp)>0) { + $tabModif=$tabTmp[0]; + switch(''.$tabModif['insEVE']) { + case 'OD': + case 'TD': + case '420': // Absence d'activité de l'entreprise (cessation économique de l.entreprise) + case '425': // Absence d'activité d'une entreprise suite à une mise à jour au répertoire // + case '620': + case '621': + $tabInsee['actifEcoType']='ECOF'; + $tabInsee['actifEcoDate']=$tabModif['insDATEVE']; + break; + } + } + } + + $tabRet=array( 'id'=>$etab['id'], + 'Siret'=>$etab['siret'], + 'SiretSiege'=>$siretSiege, + 'AncienSiege'=>$ancienSiege, + 'AncienSiegeDateFin'=>$dateFinSiege, + 'Siege'=>$etab['siege'], + 'Tribunal'=>strtr($etab['triCode'],array('préfec'=>'','sous-p'=>'','Déclar'=>'')), + 'Nom'=>$nom, //EIRL + + 'Nom2'=>$nom2, + 'Sigle'=>$etab['sigle'], + 'Enseigne'=>$etab['enseigne'], //EIRL + 'Adresse'=>trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '. + $etab['adr_typeVoie'] .' '. $etab['adr_libVoie']))), + 'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])), + 'AdresseNum'=>$etab['adr_num'], + 'AdresseBtq'=>$etab['adr_btq'], + 'AdresseVoie'=>$etab['adr_typeVoie'], + 'AdresseRue'=>$etab['adr_libVoie'], + 'CP'=>$etab['adr_cp'], + 'Ville'=>$etab['adr_ville'], + 'Pays'=>$tabInsee['PAYS'], + 'PaysIso2'=>$codePaysIso2, + + 'Civilite'=>$tabInsee['CIVILITE'], + 'NbEtab'=>$nbEtab, + 'Tel'=>$tel, + 'Fax'=>$fax, + 'Web'=>$tab['web'], + 'Mail'=>$tab['mail'], + + 'GeoLat'=>$tab['latitude'], + 'GeoLon'=>$tab['longitude'], + 'GeoAlt'=>$tab['altitude'], + 'GeoPrecis'=>$tab['precis'], + + 'TvaNumero'=>$vatNumber, + 'TvaAttribue'=>$vatDefined, + + 'FJ'=>$tabInsee['CJ'], + 'FJ_lib'=>$this->getLibelleFJ($tabInsee['CJ']), + 'RECME'=>$tabInsee['RECME'], + 'Siren'=>$etab['siren'], + 'Nic'=>$etab['nic'], + 'Actif'=>$tabInsee['ACTIF'], // Etablissement juridiquement ACTIF + 'ActifEco'=>$tabInsee['actifEco'], // Etablissement économiquement ACTIF + 'ActifEcoDate'=>$tabInsee['actifEcoDate'], // Etablissement économiquement Inactif depuis + 'ActifEcoType'=>$tabInsee['actifEcoType'], // Type d'inactivité éco ECOF, NPAI, PFER ou vide + 'NafEtab'=>$tabInsee['APE_ETAB'], + 'NafEnt'=>$tabInsee['APE_ENT'], + 'NaceEtab'=>$this->getCodeNace($tabInsee['APE_ETAB']), + 'NaceEnt'=>$this->getCodeNace($tabInsee['APE_ENT']), + 'NafEntLib' =>$this->getLibelleNaf($tabInsee['APE_ENT']), + 'NafEtabLib'=>$this->getLibelleNaf($tabInsee['APE_ETAB']), + 'AutreId'=>$etab['autre_id'], + 'Source'=>$etab['source'], + 'SourceId'=>$etab['source_id'], + 'Isin'=>$tab['isin'], + 'Capital'=>$etab['capital'],//IKI + 'CapitalDev'=>$etab['capitalDev'], + 'CapitalSrc'=>$etab['capitalSrc'], + +// 'Singularite'=>'', + 'DateCreaEt'=>$tabInsee['DCRET'], + 'DateCreaEn'=>$tabInsee['DCREN'], +// 'DateClotEn'=>$tabInsee[''], +// 'DateClotEt'=>$tabInsee[''], +// 'SitJur_lib'=>$tabInsee['PROCOL_TYPE'], +// 'SitJur_date'=>$tabInsee['PROCOL_DATE'], + 'SituationJuridique'=>'', + 'EffEnTr'=>$tabInsee['TEFF_ENT'], + 'EffEnTrLib'=>self::$tabEffectif[$tabInsee['TEFF_ENT']], + 'EffEtTr'=>$tabInsee['TEFF_ET'], + 'EffEtTrLib'=>self::$tabEffectif[$tabInsee['TEFF_ET']], + 'EffectifEtab'=>$tabInsee['EFF_ET'], + 'Effectif'=>$tabInsee['EFF_ENT'], + 'Dept'=>$tabInsee['ADR_DEP'], + 'codeCommune'=>$tabInsee['ADR_COM'], + 'TrancheCA'=>$tabInsee['TCA'], + 'TrancheCALib'=>self::$tabTCA[$tabInsee['TCA']], + 'TrancheCAexp'=>$tabInsee['TCAEXP'], + 'TrancheCAexpLib'=>self::$tabTCAexp[$tabInsee['TCAEXP']], + 'TrancheCAType'=>'I', + 'AnneeEffEn'=>$tabInsee['DEFEN'], + 'AnneeEffEt'=>$tabInsee['DEFET'], + 'AnneeTCA'=>$tabInsee['TCA_AN'], + + 'dir1Titre'=>self::$tabFct[$tabInsee['DIR_FCT']], + 'dir1NomPrenom'=>preg_replace('/^EIRL\s/','',$tabInsee['DIR_IDEN']), + 'Rivoli'=>substr($tabInsee['CODEVOIE'],0,4).' '.substr($tabInsee['CODEVOIE'],-1), + 'InfosIris'=>$tabIris, + 'NatureActivite'=>$tabInsee['ACTIVNAT'], // Nature de l'activité + 'OrigineCreation'=>$tabInsee['ORIGINE'], // Origine de la création + 'Auxiliaire'=>$tabInsee['AUXILT'], // 1=Auxiliaire / 0=Non auxiliaire + 'Saisonnalite'=>$tabInsee['SAISONAT'], // P=Activité permanente / S=Activité saisonnière + 'ACTISURF'=>$tabInsee['ACTISURF'], + 'EXPLEN'=>$tabInsee['EXPLEN'], + 'EXPLET'=>$tabInsee['EXPLET'], + 'LIEUACT'=>$tabInsee['LIEUACT'], + 'MODEN'=>$tabInsee['MODEN'], + 'MONOACT'=>$tabInsee['MONOACT'], + 'MONOREG'=>$tabInsee['MONOREG'], + 'REGIMP'=>$tabInsee['REGIMP'], + 'PRODPART'=>$tabInsee['PRODPART'], + 'GeoInfos'=>$repAmabis, + 'NonDiffusible'=>$moisNonDiff, + 'TypeExploitation'=>$typeExploitation, + 'DateMajINSEE'=>str_replace('--','',WDate::dateT('Ymd','Y-m-d',$tabInsee['DATE_MAJ'])), + 'APRM'=>$tabInsee['APRM'], + 'APRM_Lib'=>$this->getLibelleNafa($tabInsee['APRM']), + 'AutreSiret'=>$tabAssoc, + // MODET, + ); + + /** Estimation du Chiffre d'affaires **/ + $cj1=substr($tabInsee['CJ'],0,1)*1; + if ($tabRet['TrancheCA']*1==0 && $tabRet['AnneeTCA']*1==0 && $tabInsee['ACTIF']==1 && $tabInsee['CJ']<>1800 && $tabInsee['CJ']<>1900 && $cj1<>7 && $cj1<>8 && $cj1<>9) { + $caEstime=$this->getCAnafEffectif($tabInsee['APE_ENT'], $tabInsee['EFF_ENT']); + $tabRet['TrancheCA']=$this->getTca($caEstime); + $tabRet['TrancheCALib']=self::$tabTCA[$tabRet['TrancheCA']]; + if ($tabRet['TrancheCA']*1>0) { + $tabRet['TrancheCAType']='E'; + $tabRet['AnneeTCA']=date('Y')-2; + } + } + + /** Si tourisme, recherche du classeement **/ + $tabNafTourisme=array( '5510Z', // Hôtels et hébergement similaire + '5520Z', // Hébergement touristique et autre hébergement de co + '5530Z', // Terrains de camping et parcs pour caravanes ou véh + '702A', // Location de logements + '6820A', // Location de logements + '6820B', // Location de terrains et d'autres biens immobiliers + '551A', // Hôtels touristiques avec restaurant + '5610A', // Restauration traditionnelle + '741J', // Administration d'entreprises + '7010Z', // Activités des sièges sociaux + '552C', // Exploitation de terrains de camping + '702C', // Location d'autres biens immobiliers + '551C', // Hôtels touristiques sans restaurant + '553A', // Restauration de type traditionnel + ); + if (in_array($tabInsee['APE_ENT'], $tabNafTourisme) || + in_array($tabInsee['APE_ETAB'], $tabNafTourisme) ) { + $ret=$this->iDb->select('tourisme', 'id, nom, adresse, adrCp, adrVille, nbEtoiles, typeClasse, categorie, dateClasse, tel, fax, mail, web, typeChambres, capacite', "siren=$siren AND nic=$nic", false, MYSQL_ASSOC); + if (isset($ret[0])) { + $tabRet['NafEtabLib'].=' ('.$ret[0]['nbEtoiles'].' étoiles le '. + WDate::dateT('Y-m-d','d/m/Y',$ret[0]['dateClasse']).')'; + if ($tabRet['Tel']=='') $tabRet['Tel']=$ret[0]['tel']; + if ($tabRet['Fax']=='') $tabRet['Fax']=$ret[0]['fax']; + if ($tabRet['Web']=='') $tabRet['Web']=$ret[0]['web']; + if ($tabRet['Mail']=='') $tabRet['Mail']=$ret[0]['mail']; + } + } + + /** Nombre d'actions du capital si disponible **/ + if ($etab['capital']>0) { + $insee=$this->iDbInsee->select( + 'sdv1.capitalActions', + 'capital, deviseCapital, nbActions, actionNominale, dateInfo', + "siren=$siren AND capital>0 ORDER BY dateInfo DESC LIMIT 0,1",false,MYSQL_ASSOC); + $tabRet['CapitalNbActions']=0; + $tabRet['CapitalMtActions']=0; + //sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getIdentite sur $siren", print_r($insee, true).EOL.mysql_error()); + if (count($insee)>0) { + if ($etab['capital']==$insee[0]['capital']) { + $tabRet['CapitalNbActions']=$insee[0]['nbActions']; + $tabRet['CapitalMtActions']=$insee[0]['actionNominale']; + } + } + } + $timer['nbActionsCapital']=microtime(true); + + /** Numéro de TVA non défini + **/ + if (!$vatDefined) { + // Dom Tom ou étranger + if ($tabRet['Dept']>96) + $tabRet['TvaFacultatif']=2; + // Micro-entreprise + if ($tabRet['FJ']*1<2000 && $tabRet['Effectif']==0 && $tabRet['TrancheCA']==0) + $tabRet['TvaFacultatif']=1; + // Erreur lors de la récupération du numéro de TVA + if ($vatDefined===NULL) + $tabRet['TvaFacultatif']=99; + } + + + /** Date de début d'activité de l'entreprise si absente INSEE + **/ + if ($siren>100 && $tabRet['DateCreaEn']==0) { + $insee=$this->iDbInsee->select('identite', 'DCREN', "SIREN=$siren AND DCREN>0 ORDER BY DCREN ASC LIMIT 0,1",false,MYSQL_ASSOC); + if (count($insee)>0) + $tabRet['DateCreaEn']=$insee[0]['DCREN']; + else { + $tmp=$this->getAvisInsee($siren); + $dateCreaEn=WDate::dateT('Y-m-d','Ymd',$tmp['dateEtatEn']); + if (preg_match("/Prise d'activité/", $tmp['etatEn']) && + $dateCreaEn>19000101) { + $this->iDbInsee->update('identite', array('DCREN'=>$dateCreaEn), + "SIREN=$siren AND NIC=".$etab['nic']); +/* @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getIdentiteEntreprise() sur $siren DateCreaEn trouvée", +print_r($tmp, true)); + } else + @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getIdentiteEntreprise() sur $siren date NON TROUVEE", +print_r($tmp, true)); +*/ + } + } + } + $timer['dateDebutActivite']=microtime(true); + + + /** Adresse de domiciliation + **/ + $tabDom=$this->infoAdresseDom( $tabRet['AdresseNum'], + $tabRet['AdresseBtq'], + $tabRet['AdresseVoie'], + $tabRet['AdresseRue'], + $tabRet['Adresse2'], + $tabRet['CP'], $tabRet['Ville']); + if (is_array($tabDom) && count($tabDom)>0) + foreach($tabDom as $i=>$dom) { + $tabRet['AdresseDom']=1; + $tabRet['AdresseDomNb']=$dom['nbEntrep']; + $domiciliataire=''; + if (preg_match('/^CHEZ (.*)$/i',$tabRet['Adresse2'], $matches) && + !preg_match('/ M | M. | MR | MME | MLLE /i',$tabRet['Adresse2'])) { + $domiciliataire=$matches[1]; + $tabRet['AdresseDom']=2; + } + $tabRet['AdresseDomEnt'][]=array('siren'=>$dom['siren'], + 'nom'=>prepareString($dom['nom']), + ); + } + $timer['adresseDom']=microtime(true); + + + /** Siren en Doublon ? + **/ + if ($tab['sirenDoublon']>0) $tabRet['AutreSiren']=array('listeSiren'=>array('siren'=>$tab['sirenDoublon'], + 'type' =>'doublon')); + if ($siren>100) { + $tabProcol=$this->getAnnoncesLegales($siren, 0, 'P', false); + $tabDates=array(); + foreach ($tabProcol as $iProcol=>$procol) + $tabDates[]=$procol['dateJugement']; + rsort($tabDates); + $dateProcol=str_replace('-','',$tabDates[0])*1; + if (count($tabProcol)>0) { + if ($this->dureePlan>0 && date('Ymd')<$this->finPlan) { + /** En cours de plan de continuation/redressement + $this->debutPlan; // Date de début/jugement/publication du plan SSAAMMJJ + $this->dureePlan; // Durée du plan en mois + $this->finPlan; // Date de fin du plan SSAAMMJJ + */ + $tabRet['SituationJuridique']='PL'; + /*@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getIdentiteEntreprise() sur $siren En cours de plan", + 'Début du plan : '. $this->debutPlan .EOL. + 'Durée du plan : '. $this->dureePlan .' mois'.EOL. + 'Fin du plan : '. $this->finPlan);*/ + } elseif ($this->dureePlan>0 && date('Ymd')>=$this->finPlan) + // Plan révolu + $tabRet['SituationJuridique']=''; + elseif ($this->appelJugement) + // Appel de jugement + $tabRet['SituationJuridique']='PA'; + else + // En cours de procédure + $tabRet['SituationJuridique']='P'; + + $tabTmp=$this->iDb->select('scores_cutoff', 'encours, scoreSolv, scoreDir, scoreConf, DATE(dateInsert)*1 AS dateInsert, DATE(dateUpdate)*1 AS dateUpdate', "siren=$siren", false, MYSQL_ASSOC); + if ($tabTmp[0]['scoreSolv']>0) { + if($tabTmp[0]['dateUpdate']>$tabTmp[0]['dateInsert']) + $dateMaj=str_replace('-','',$tabTmp[0]['dateUpdate']); + else + $dateMaj=str_replace('-','',$tabTmp[0]['dateInsert']); + if ($dateProcol<=$dateMaj) + $tabRet['SituationJuridique']=''; + } + } elseif (count($this->getAnnoncesLegales($siren, 0, 'A', false))>0) + $tabRet['SituationJuridique']='A'; + elseif (count($this->getAnnoncesLegales($siren, 0, 'D', false))>0) + $tabRet['SituationJuridique']='D'; + + /** Date de dernière mise à jour **/ + $tabAnn=$this->getAnnoncesLegales($siren, 0, '', false, false); + $tabDates=array(); + foreach ($tabAnn as $iAnn=>$ann) + $tabDates[]=$ann['dateInsertionSD']; + rsort($tabDates); + $tabRet['dateMajANN']=WDate::dateT('Y-m-d','Y-m-d',$tabDates[0]); + if ($tabRet['dateMajANN']=='--') $tabRet['dateMajANN']=''; + $timer['getAnnoncesLegales']=microtime(true); + } + if (($tabInsee['CJ']>0 && $tabInsee['CJ']<20 || + $tabInsee['CJ']>999 && $tabInsee['CJ']<2000) && $tabInsee['DIR_FCT']=='') + $tabRet['dir1Titre']=self::$tabFct['PP']; + + if ($tabInsee['CIVILITE']>0 && $tabRet['dir1NomPrenom']=='') { + if ($tabInsee['CIVILITE']==1) $tabRet['dir1NomPrenom']='M. '; + elseif ($tabInsee['CIVILITE']==2) $tabRet['dir1NomPrenom']='Mme '; + $tabRet['dir1NomPrenom'].=$tabInsee['NOM']; + } + + if ($tabInsee['CIVILITE']>0 && ($tabRet['dir1Nom']=='' || $tabRet['dir1Prenom'])) { + $tmp=$this->iDbInsee->select( 'insee_even', 'dirNom, dirNomUsage, dirPrenom', "insSIREN=$siren ORDER BY insDATEVE DESC LIMIT 0,1", false, MYSQL_ASSOC); + $tabRet['dir1Nom']=@strtoupper($tmp[0]['dirNom']); + $tabRet['dir1Prenom']=@ucwords(strtolower(@$tmp[0]['dirPrenom'])); + $tabRet['dir1NomUsage']=@strtoupper($tmp[0]['dirNomUsage']); + unset($tmp); + } + + if ($tabInsee['ACTIF']==0 && $siren>100) { + if ($etab['nic']*1>0) $strNic='AND insNIC='.$etab['nic']; + else $strNic=''; +// $tmp=$this->iDbInsee->select( 'insee_even', 'insDATEVE', "insSIREN=$siren $strNic AND ( insEVE LIKE 'FF' OR insEVE LIKE '410' OR insEVE LIKE '420' OR insEVE LIKE '425' OR insDESTINAT<>'') ORDER BY insDATEVE DESC LIMIT 0,1", false, MYSQL_ASSOC); +// $tabRet['DateClotEn']=@$tmp[0]['insDATEVE']; + $tmp=$this->iDbInsee->select( 'insee_even', 'insDATEVE', "insSIREN=$siren $strNic AND ( insEVE LIKE 'FF' OR insEVE LIKE 'TF' OR insEVE LIKE '0F' OR insEVE LIKE 'TD' OR insEVE LIKE '0D' OR insEVE LIKE '410' OR insEVE LIKE '420' OR insEVE LIKE '425' OR insEVE LIKE '400' OR insEVE LIKE '430' OR insEVE LIKE '435' OR insDESTINAT<>'') ORDER BY insDATEVE DESC LIMIT 0,1", false, MYSQL_ASSOC); + $tabRet['DateClotEt']=@$tmp[0]['insDATEVE']; + unset($tmp); + $timer['dateClotureInsee']=microtime(true); + } + + if ($tabRet['TrancheCALib']=='') $tabRet['TrancheCALib']='N/C'; + if ($tabRet['EffEnTrLib']=='') $tabRet['EffEnTrLib']='N/C'; + + $tabRet['CapitalLib']=''; + $strEvenVtLg=" AND Rubrique<>'ventes' AND typeEven NOT LIKE '%2700%' AND typeEven NOT LIKE '%2701%' AND typeEven NOT LIKE '%2702%' AND typeEven NOT LIKE '%2703%' AND typeEven NOT LIKE '%2710%' AND typeEven NOT LIKE '%2720%' AND typeEven NOT LIKE '%2721%' AND typeEven NOT LIKE '%2725%' AND typeEven NOT LIKE '%2730%' AND typeEven NOT LIKE '%2740%' AND typeEven NOT LIKE '%2750%' AND typeEven NOT LIKE '%2800%' AND typeEven NOT LIKE '%2840%' AND typeEven NOT LIKE '%2850%' AND typeEven NOT LIKE '%2851%' AND typeEven NOT LIKE '%2860%' AND typeEven NOT LIKE '%2870%' AND typeEven NOT LIKE '%2875%' AND typeEven NOT LIKE '%2880%' AND typeEven NOT LIKE '%2881%' AND typeEven NOT LIKE '%2885%' AND typeEven NOT LIKE '%2890%' AND typeEven NOT LIKE '%2891%' AND typeEven NOT LIKE '%2892%' "; + if ($siren>100) { + if ($tabRet['CapitalSrc']<>5) { + /** Recherche du n° RC, de la Forme Juridique et du Capital au Bodacc **/ + $bodacc=$this->iDb->select( 'bodacc_detail', 'Capital, CapitalDev', + "siren=$siren AND capital<>0 $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC); + $annCap=@$bodacc[0]; + if ($tabRet['Capital']==0 || $tabRet['CapitalDev']=='' || $tabRet['Capital']<>$annCap['Capital']*1) { + if ($tabInsee['CJ']>1999 && $tabInsee['CJ']<7000) { + $tabRet['Capital']=$annCap['Capital']*1; + $tabRet['CapitalDev']=$annCap['CapitalDev']; + $tabRet['CapitalSrc']=10; + } + } + + if ($tabRet['Capital']==0 || $tabRet['CapitalDev']=='') { + $iDbHisto=new WDB('historiques'); + $bodaccHisto=$iDbHisto->select( + 'entrep e, texte x',//.codEven Code évènement du mouvement Bodacc libEven ', + 'e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt', + "e.E1GSIR=$siren AND e.ANBASE=x.annonceNum AND e.DATE BETWEEN 19890101 AND 20041231 AND x.annonceTxt LIKE '%capital%' /*AND (e.CODEVE BETWEEN 10 AND 19 OR e.CODEVE BETWEEN 30 AND 41 OR e.CODEVE BETWEEN 51 AND 79 ) */ GROUP BY e.ANBASE ORDER BY e.DATE DESC", false, MYSQL_ASSOC); + if (count($bodaccHisto)>0) { + foreach ($bodaccHisto as $ann) { + if ($ann['DATE']<19960101 && $ann['E1GSIR']<>$ann['SIREN']) continue; + $tabCodeTri=$ann['CODTRI']; + if ( ($ann['CODEVE']>=10 && $ann['CODEVE']<20) || + ($ann['CODEVE']>=30 && $ann['CODEVE']<42) || + ($ann['CODEVE']>=51 && $ann['CODEVE']<80) ) { + if (preg_match('/Capital(?:.|)\:(.*)(eur.|f|livre)/Uis', $ann['annonceTxt'], $matches) && $tabInsee['CJ']>1999 && $tabInsee['CJ']<7000) + + $tabRet['Capital']=trim(strtr($matches[1],array(' '=>'', ',00 '=>'', '.00 '=>'')))*1; + if (substr(strtoupper($matches[2]),0,3)=='EUR') + $tabRet['CapitalDev']='EUR'; + elseif (substr(strtoupper($matches[2]),0,3)=='LIV') + $tabRet['CapitalDev']='GBP'; + else + $tabRet['CapitalDev']='FRF'; + break; + } + } + } + } + } + if ($tabRet['CapitalDev']<>'' && $tabRet['CapitalDev']<>'EUR') { + $dev=$tabRet['CapitalDev']; + $devise=$this->iDbSD->select( 'devise_liste l, devise_cours c', 'c.devise, c.valeur, c.date, l.devNom, l.devNomPays, l.devPaysIso', "c.devise='$dev' and l.devIso='$dev' ORDER BY c.date DESC LIMIT 0,1", false, MYSQL_ASSOC); + $dev=@$devise[0]; + //die(print_r($dev)); + $devise=$tabRet['Capital']*$dev['valeur']*1; + $tabRet['CapitalLib']=''.$dev['devNom'].' soit '.number_format(round($devise),null,null,' ').' EUR'; + } + $timer['capital']=microtime(true); + + /** Recherche du code Tribunal du siège **/ + if ($tabRet['CapitalSrc']<>5) { + $bodacc=$this->iDb->select( 'bodacc_detail', 'RC, FJ, Tribunal_Code', + "siren=$siren AND RC<>'' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC); + if ($tabRet['AutreId']=='') $tabRet['AutreId']=@$bodacc[0]['RC']; + if ($tabRet['Tribunal']=='') $tabRet['Tribunal']=@$bodacc[0]['Tribunal_Code']; + } + + if ($tabRet['FJ_lib']=='') { + $bodacc=$this->iDb->select( 'bodacc_detail', 'FJ', + "siren=$siren AND FJ<>'' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC); + $tabRet['FJ_lib']=@$bodacc[0]['FJ']; + } + /** Recherche de l'activité réelle **/ + $bodacc=$this->iDb->select( 'bodacc_detail', 'Activite', "siren=$siren AND Activite<>'' AND Activite NOT LIKE 'non precis%' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC); + $annCap=$bodacc[0]; + if ($tabInsee['CJ']<7000 || $tabInsee['CJ']>7999) + $tabRet['Activite']=trim(/*preg_replace("/Adjonction.{1,7}activit(?:e|é)(?:.|)\:", '', */$annCap['Activite']);//); + + if ($tabRet['Activite']=='' && trim($tab['activite'])<>'') + $tabRet['Activite']=trim($tab['activite']); + elseif ($tabRet['Activite']=='' && ($tabInsee['CJ']>90 && $tabInsee['CJ']<94 || + $tabInsee['CJ']>9000 && $tabInsee['CJ']<9400) ) { + $siretMin=(''.$siren.'00000')*1; + $siretMax=(''.$siren.'99999')*1; + //$bodacc=$this->iDb->select( 'asso', 'Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_NObjet', "Siret BETWEEN $siretMin AND $siretMax AND (Assoc_Objet<>'' OR Assoc_NObjet<>'') ORDER BY Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC); + $bodacc=$this->iDb->select( 'asso', 'Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_NObjet, Assoc_Nom, typeAsso, Waldec', "siren=$siren AND dateSuppr=0 AND (Assoc_Objet<>'' OR Assoc_NObjet<>'') ORDER BY Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC); + $annCap=@$bodacc[0]; + $tabRet['Activite'] = trim($annCap['Assoc_NObjet']); + if (trim($tabRet['AutreId'])=='') + $tabRet['AutreId'] = trim($annCap['Waldec']); + $tabRet['nomLong'] = trim($annCap['Assoc_Nom']); + if ($tabRet['Activite']=='') $tabRet['Activite']=trim($annCap['Assoc_Objet']); + if ($tabRet['Web']=='') $tabRet['Web']=trim($annCap['Assoc_Web']); + if ($tabRet['Mail']=='') $tabRet['Mail']=trim($annCap['Assoc_Mail']); + if ($annCap['typeAsso']=='ASL' && $tabRet['FJ']<>9150) { + $tabRet['FJ2'] = $tabRet['FJ']; + $tabRet['FJ2_Lib'] = $tabRet['FJ_lib']; + $tabRet['FJ'] = 9150; + $tabRet['FJ_lib'] = $this->getLibelleFJ(9150); + } elseif ($annCap['typeAsso']=='FOD') { + $tabRet['FJ_lib'].= ' (Fonds de dotation)'; + } + if (trim($tabRet['AutreId'])=='') + $tabRet['AutreId'] = trim($waldec); + + } elseif ($tabRet['Activite']=='' && ($tabInsee['CJ']<7000 || $tabInsee['CJ']>7999)) { + $iDbHisto=new WDB('historiques'); + //10 à 19// Création d'entreprise + //30 à 41 + //51 à 79=>'1503', // Cloture insuf.Actif + $bodaccHisto=$iDbHisto->select( + 'entrep e, texte x',//.codEven Code évènement du mouvement Bodacc libEven ', + 'e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt', + "e.E1GSIR=$siren AND e.ANBASE=x.annonceNum AND e.DATE BETWEEN 19890101 AND 20041231 AND x.annonceTxt LIKE '%ctivit%' GROUP BY e.ANBASE ORDER BY e.DATE DESC", false, MYSQL_ASSOC); + if (count($bodaccHisto)>0) { + foreach ($bodaccHisto as $idx=>$ann) { + if ($ann['DATE']<19960101 && $ann['E1GSIR']<>$ann['SIREN']) continue; + if ($tabCodeTri<>'' && $tabCodeTri<>@$ann['CODTRI']) $tabCodeTri=@$ann['CODTRI']; + //if ($siren==403119431) $tabRet['Activite'].="$idx(".$ann['CODEVE'].'):'.$ann['annonceTxt'].' / '; + if ( ($ann['CODEVE']<20) || + ($ann['CODEVE']>=30 && $ann['CODEVE']<42) || + ($ann['CODEVE']>=51 && $ann['CODEVE']<80) ) { + //Activite: r + if (preg_match('/(.*)Activit(?:e|é)(?:.|)\:(.*)(?:Adresse(?:.*|)|Commentaires?|Administration|Etablissement principal|Date d\'effet|Date.de.d.but d.activit.|Capital|Nom commercial)(?:.|)\:/Uis', $ann['annonceTxt'], $matches)) + if (strpos(substr($matches[1],-20),'cess') === false && + strpos(substr($matches[1],-20),'date') === false) { + $tabRet['Activite']=$matches[2]; + break; + } + } + } + } + } + $timer['activiteReelle']=microtime(true); + + $bodacc=$this->iDb->select('rncs_dirigeants', + "nom, prenom, naissance_nom, civilite, fonction_code as code, fonction_lib as libelle, naissance_date AS dateNaiss, naissance_lieu AS lieuNaiss, dirRS as rs, '' as dateEffet", + "siren=$siren AND actif%10=1 AND fonction_lib NOT LIKE '%Administrateur%' ORDER BY actif DESC, fonction_lib DESC", false, MYSQL_ASSOC); + if (count($bodacc)==0) + $bodacc=$this->iDb->select('rncs_dirigeants', + "nom, prenom, naissance_nom, civilite, fonction_code as code, fonction_lib as libelle, naissance_date AS dateNaiss, naissance_lieu AS lieuNaiss, dirRS as rs, '' as dateEffet", + "siren=$siren AND actif%10=0 AND fonction_lib NOT LIKE '%Administrateur%' ORDER BY actif DESC, fonction_lib DESC", false, MYSQL_ASSOC); + + if (count($bodacc)>0) { + $k=1; + foreach ($bodacc as $ann) { + if ($tabInsee['CJ']>=7000 && $tabInsee['CJ']<=7999 && + $ann['libelle']<>'Maire' && + //$ann['libelle']<>'Premier Adjoint' && + $ann['libelle']<>'Président' && + $ann['libelle']<>'Directeur général') continue; + $tabRet['dir'.$k.'Code']=$ann['code']; + $tabRet['dir'.$k.'Titre']=$ann['libelle']; + if (trim($ann['naissance_nom'])<>'') { + if ($ann['civilite']=='MME' || $ann['civilite']=='MLLE') + $nomNaiss=' née '.trim($ann['naissance_nom']); + elseif ($ann['civilite']=='M') + $nomNaiss=' né '.trim($ann['naissance_nom']); + else + $nomNaiss=' né(e) '.trim($ann['naissance_nom']); + } else $nomNaiss=''; + if (trim($ann['rs'])<>'') { + $tabRet['dir'.$k.'NomPrenom']=$ann['rs']; + if (trim($ann['nom'])<>'' || trim($ann['prenom'])<>'') + $tabRet['dir'.$k.'NomPrenom'].=' repr. par '.$ann['nom'].' '.$ann['prenom']; + } else { + $tabRet['dir'.$k.'NomPrenom']=$ann['nom'].' '.$ann['prenom'].$nomNaiss; + $tabRet['dir'.$k.'Nom']=$ann['nom']; + $tabRet['dir'.$k.'Prenom']=$ann['prenom']; + } + $tabRet['dir'.$k.'DateFct']=$ann['dateEffet']; + $tabRet['dir'.$k.'DateNaiss']=$ann['dateNaiss']; + $tabRet['dir'.$k.'LieuNaiss']=$ann['lieuNaiss']; + if ($k==2) break; + $k++; + } + } + else { + $bodacc=$this->iDb->select('bodacc_dirigeants d, bodacc_detail b, bodacc_fonctions f', + 'd.num, d.dateEffet, d.Rubrique, d.fonction, d.rs, d.nom, d.prenom, d.nomUsage, d.depart, d.dateInsert, f.libelle', + "b.SIREN=$siren AND b.id=d.id AND b.typeEven NOT BETWEEN 5000 AND 5700 AND b.typeEven NOT BETWEEN 2700 AND 2900 AND d.fonction=f.codeFct AND d.depart<>1 AND f.triCode IN ('ASS','COG','DID','DIR','GER','PCS','PDG','PRD','PRE','PRT','VIC') GROUP BY d.fonction, d.rs, d.nom, d.prenom ORDER BY d.dateEffet DESC", false, MYSQL_ASSOC); + //$annCap=@$bodacc[0]; + if (count($bodacc)>0) { + $k=1; + foreach ($bodacc as $ann) { + $tabRet['dir'.$k.'Code']=$ann['fonction']; + $tabRet['dir'.$k.'Titre']=$ann['libelle']; + $tabRet['dir'.$k.'NomPrenom']=$ann['rs'].' '.$ann['nom'].' '.$ann['prenom']; + $tabRet['dir'.$k.'Nom']=$ann['nom']; + $tabRet['dir'.$k.'Prenom']=$ann['prenom']; + $tabRet['dir'.$k.'DateFct']=$ann['dateEffet']; + if ($k==2) break; + $k++; + } + } + } + $timer['dirigeants']=microtime(true); + + /** Recherche du site Web ou Email dans le JO ASSO + **/ + if ( ($tabRet['Web']=='' || $tabRet['Mail']=='') && + ($tabInsee['CJ']>90 && $tabInsee['CJ']<94 || + $tabInsee['CJ']>9000 && $tabInsee['CJ']<9400) ) { + $siretMin=(''.$siren.'00000')*1; + $siretMax=(''.$siren.'99999')*1; + //$bodacc=$this->iDb->select( 'asso', 'Assoc_Web, Assoc_Mail', "Siret BETWEEN $siretMin AND $siretMax AND (Assoc_Web<>'' OR Assoc_Mail<>'') ORDER BY Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC); + $bodacc=$this->iDb->select( 'asso', 'Assoc_Web, Assoc_Mail', "siren=$siren AND dateSuppr=0 AND (Assoc_Web<>'' OR Assoc_Mail<>'') ORDER BY Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC); + $annCap=@$bodacc[0]; + if ($tabRet['Web']=='') $tabRet['Web']=trim($annCap['Assoc_Web']); + if ($tabRet['Mail']=='') $tabRet['Mail']=trim($annCap['Assoc_Mail']); + + } + } else { + if ($etab['source']==3) { + $id=$etab['source_id']; + $bodacc=$this->iDb->select( 'asso', 'Activite, Sous_Prefecture, Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_Fusion, Assoc_Date_Declaration2', "id=$id AND dateSuppr=0", false, MYSQL_ASSOC); + $annCap=@$bodacc[0]; + $tabRet['Activite'] = $annCap['Assoc_Objet']; + $tabRet['Web'] = $annCap['Assoc_Web']; + $tabRet['Mail'] = $annCap['Assoc_Mail']; + $tabRet['VilleDecl'] = $annCap['Sous_Prefecture']; + if ($tabRet['Actif']==0) { + // $tabRet['DateClotEn'] = $annCap['Assoc_Date_Declaration2']; + $tabRet['DateClotEt'] = $annCap['Assoc_Date_Declaration2']; + } else { + $tabRet['DateCreaEt'] = $annCap['Assoc_Date_Declaration2']; + $tabRet['DateCreaEn'] = $annCap['Assoc_Date_Declaration2']; + } + } + } + $timer['association']=microtime(true); + + + if (@count($etabG)>0) { + // On initialise les dernères variables en prov. d'Infogreffes + //$tabRet['DateClotEn'] = $etabG['DateRadiation']; + $tabRet['DateClotEt'] = $etabG['DateRadiation']; + $tabRet['dateImmat'] = $etabG['DateCreation']; + if ($tabRet['dateImmat']*1==0) + $tabRet['dateImmat']= substr($etabG['NumRC2'],0,4).'0101'; + $tabRet['DateCreaEt'] = $tabRet['DateCreaEn'] = substr($etabG['NumRC2'],0,4).'0100'; + + $tabRet['FJ'] = $etabG['FJ']; + if ($etabG['FJ']==1900) { + $tabRet['dir1Titre']='PP'; + $tabNom=explode(' ', $etabG['Nom']); + $tabNom[0]=strtoupper($tabNom[0]); + for($i=1; isset($tabNom[$i]); $i++) + if ($tabNom[$i]=='EPOUSE') + $tabNom[$i]='epouse'; + elseif ($tabNom[$i-1]<>'epouse') + $tabNom[$i]=ucwords(strtolower($tabNom[$i])); + $tabRet['dir1NomPrenom']=implode(' ', $tabNom); + } + $tabRet['FJ_lib'] = $etabG['FJLib']; // prepareString($etab['FJLib']), + $tabRet['AutreId'] = $etabG['NumRC']; + /* 'Source'=>$etab['source'], + 'SourceId'=>$etab['source_id'],*/ + $tabRet['NafEtab'] = $etabG['NafEtab']; + $tabRet['NafEnt'] = $etabG['NafEnt']; + $tabRet['NafEntLib'] = $etabG['NafEntLib']; + $tabRet['NafEtabLib'] = $etabG['NafEtabLib']; + $tabRet['SiretSiege'] = $etabG['Siret']; + $tabRet['DateMajRCS'] = $etab['dateMAJ']; + $tabRet['numGreffe'] = $etabG['NumGreffe']; + $tabRet['numRC'] = $etabG['NumRC2']; + $tabRet['Enseigne'] = $etabG['Enseigne']; + $iRncs=new MRncs(); + $tabRet['Tribunal'] = $iRncs->getCodeBodaccTribunal($etabG['NumGreffe']); + } + if ($tabRet['Siege']==1 && $tabRet['Actif'] && $tabRet['Tribunal']=='') + $tabRet['Tribunal']=$tabCodeTri; + + $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, dateRad*1 AS dateRadNum, capitalType, capitalCent, provisoires, flux, DATE(dateUpdate) AS jourUpdate', "siren=$siren", false, MYSQL_ASSOC); + $entrep=$rep[0]; + if (isset($entrep['numGreffe'])) { //ETRANGER// + $tabRet['numGreffe'] = $entrep['numGreffe']; + $tabRet['numRC'] = $entrep['numRC2']; + if (( preg_match('/[A-Z]/i',substr($tabRet['AutreId'],2,2)) && + !preg_match('/[A-Z]/i',substr($tabRet['AutreId'],0,2)) + ) || $tabRet['AutreId']=='') + $tabRet['AutreId'] = $etabG['NumRC2']; + $tabRet['Tribunal'] = $entrep['triCode']; + if (strtoupper(trim($entrep['raisonSociale']))<>strtoupper(trim($tabRet['Nom']))) + $tabRet['nomLong'] = strtoupper($entrep['raisonSociale']); + if (strtoupper(trim($entrep['sigle']))<>strtoupper(trim($tabRet['Sigle']))) + $tabRet['sigleLong']= strtoupper($entrep['sigle']); + $tabRet['dateImmat'] = $entrep['dateImma']; + $tabRet['dateRad'] = $entrep['dateRad']; + //if ($entrep['actif']==0 && $entrep['dateRadNum']==0) {} + $tabRet['Capital'] = $entrep['capitalMontant']+($entrep['capitalCent']/100); + $tabRet['CapitalDev'] = $entrep['capitalDevIso']; + $tabRet['CapitalType'] = trim(strtoupper(substr($entrep['capitalType'],0,1))); + + // Par défaut, la Forme juridique qui fait foie est celle de l'INPI + $fjInpi=$entrep['cj']*1; + if ($tabRet['FJ']*1<>$fjInpi && $fjInpi>0) { + $tabRet['FJ2'] = $tabRet['FJ']; + $tabRet['FJ2_Lib'] = $tabRet['FJ_lib']; + $tabRet['FJ'] = $fjInpi; + $tabRet['FJ_lib'] = $this->getLibelleFJ($fjInpi); + } else { + $tabRet['FJ2'] = $tabRet['FJ']; + $tabRet['FJ2_Lib'] = $tabRet['FJ_lib']; + } + if ($fjInpi>=1000 && $fjInpi<2000) { + $tabRet['dir1Titre']='Personne physique'; + $tabRet['dir1NomPrenom']=strtoupper($entrep['nom']).' '.ucwords(strtolower($entrep['prenom'])); + $tabRet['dir1Nom']=strtoupper($entrep['nom']); + $tabRet['dir1Prenom']=ucwords(strtolower($entrep['prenom'])); + $tabRet['dir1NomUsage']=strtoupper($entrep['nomUsage']); + $tabRet['dir1DateNaiss']=$entrep['dateNaiss']; + $tabRet['dir1LieuNaiss']=$entrep['lieuNaiss']; + } + + if ($tabRet['DateMajRCS']=='') { + if ($entrep['jourUpdate']<>'0000-00-00') + $tabRet['DateMajRCS']=$entrep['jourUpdate']; + else + $tabRet['DateMajRCS']=$entrep['flux']; + } + if ($entrep['actif']==1 || $entrep['actif']==11) + $tabRet['EntActiveRCS']=1; // On signal que l'entreprise est active au RCS + else { + $tabRet['EntActiveRCS']=0; // On signal que l'entreprise est radié du RCS + if ($tabRet['SituationJuridique']=='') + $tabRet['SituationJuridique']='RR'; // On signal que l'entreprise est radié du RCS + } + + /** Spécificité EIRL **/ + if ($fjInpi==1000) { + $rep=$this->iDb->select('rncs_eirl', + 'denomination, activite', + "siren=$siren", false, MYSQL_ASSOC); + $entrep=$rep[0]; + $tabRet['Activite']=$entrep['activite']; + } + + /** Informations sur l'établissement au RNCS **/ + $rep=$this->iDb->select('rncs_etab', + 'id, siege, actif, enseigne, nomCommercial, + adrNumVoie, adrIndRep, adrLibVoie, adrTypeVoie, adrVoie, + cp, commune, adrComp, adresse1, adresse2, adresse3, + naf, dateFermeture, flux, dateInsert, DATE(dateUpdate) AS jourUpdate', + "siren=$siren AND nic=$nic", false, MYSQL_ASSOC); + $entrep=$rep[0]; + if (isset($entrep['id'])) { + $tabRet['EtabActifRCS']=0; + if ($entrep['jourUpdate']<>'0000-00-00' && + str_replace('-','',$entrep['jourUpdate'])*1>str_replace('-','',$tabRet['DateMajRCS'])) + $tabRet['DateMajRCS']=$entrep['jourUpdate']; + + if ($entrep['actif']*1==1) $tabRet['EtabActifRCS']=1; // On signal que l'établissement est actif au RCS + $tabRet['NomCommercial']=$entrep['nomCommercial']; + $tabRet['enseigneLong']=$entrep['enseigne']; + + if ($codePaysIso2<>'FR' && $codePaysIso2<>'') { + $tabRet['Adresse'] = trim(preg_replace('/ +/', ' ', $entrep['adrNumVoie'] .' '.$entrep['adrIndRep'].' '. + $entrep['adrTypeVoie'].' '.$entrep['adrVoie'])); + $tabRet['Adresse2'] = trim(preg_replace('/ +/', ' ', $entrep['adrComp'])); + $tabRet['AdresseNum'] = $entrep['adrNumVoie']; + $tabRet['AdresseBtq'] = $entrep['adrIndRep']; + $tabRet['AdresseVoie'] = $entrep['adrTypeVoie']; + $tabRet['AdresseRue'] = $entrep['adrVoie']; + $tabRet['CP'] = $entrep['cp']; + $tabRet['Ville'] = $entrep['commune']; + /* 'Siren'=>$etab['siren'], + 'Nic'=>$etab['nic'], + */ + } + } + $timer['infosRNCS']=microtime(true); + } elseif ($siren>1000) { + /** + ** Recherche au RM + **/ + $rep=$this->iDb->select('artisanat', 'siren, actif, numRM, denomination, sigle, nomCommercial, enseigne, fj, effectif, aprm, debutActivite, activite, adresse, cp, ville, cessation, radiation, nom,prenom,nomUsage,dateNaiss,lieuNaiss,qualite,qualif,dateQualif,dateFctDeb,dateFctFin,DATE(dateUpdate) AS jourUpdate, DATE(dateInsert) AS dateInsert', "siren=$siren", false, MYSQL_ASSOC); + $entrep=$rep[0]; + if (isset($entrep['numRM'])) { + $tabRet['AutreId'] = $entrep['numRM']; + + /** @todo Traiter ou non les zones : + * - denomination, fj,effectif,adresse,cp,ville, + * - cessation, dateQualif,dateFctDeb,dateFctFin + * Transformer les FJ en CJ dans la table + * Ajouter les fonctions des dir dans la table + * Ne pas prendre les supprimer dans la construction des index ! + */ + if ($tabRet['Activite']=='') $tabRet['Activite']=$entrep['activite']; + if ($tabRet['APRM']=='') { + $tabRet['APRM']=$entrep['aprm']; + $tabRet['APRM_Lib']=$this->getLibelleNafa($entrep['aprm']); + } + + // $tabRet['Tribunal'] = $entrep['triCode']; + if (strtoupper(trim($entrep['nom'].' '.$entrep['prenom'].' '.$entrep['nomUsage']))<>strtoupper(trim($tabRet['Nom']))) + $tabRet['nomLong'] = strtoupper(trim($entrep['nom'].' '.$entrep['prenom'].' '.$entrep['nomUsage'])); + if (strtoupper(trim($entrep['sigle']))<>strtoupper(trim($tabRet['Sigle']))) + $tabRet['sigleLong']= strtoupper($entrep['sigle']); + + $tabRet['dateImmat'] = $entrep['debutActivite']; + $tabRet['dateRad'] = $entrep['radiation']; + + // Si on est au greffe, on est artisan commercant + if ($tabRet['numGreffe']*1>0) + $fjInpi=1100; // Artisan Commerçant + else + $fjInpi=1300; // Artisan + + // Par défaut, la Forme juridique qui fait foie est celle de l'INPI + if ($tabRet['FJ']*1<>$fjInpi) { + $tabRet['FJ2'] = $tabRet['FJ']; + $tabRet['FJ2_Lib'] = $tabRet['FJ_lib']; + $tabRet['FJ'] = $fjInpi; + $tabRet['FJ_lib'] = $this->getLibelleFJ($fjInpi); + } else { + $tabRet['FJ2'] = $tabRet['FJ']; + $tabRet['FJ2_Lib'] = $tabRet['FJ_lib']; + } + + $tabRet['dir1Titre']=ucwords(strtolower($entrep['qualite'].' '.$entrep['qualif'])); + $tabRet['dir1NomPrenom']=strtoupper($entrep['nom']).' '.ucwords(strtolower($entrep['prenom'])); + $tabRet['dir1Nom']=strtoupper($entrep['nom']); + $tabRet['dir1Prenom']=ucwords(strtolower($entrep['prenom'])); + $tabRet['dir1DateNaiss']=$entrep['dateNaiss']; + $tabRet['dir1LieuNaiss']=$entrep['lieuNaiss']; + + if ($tabRet['DateMajRCS']=='') { + if ($entrep['jourUpdate']<>'0000-00-00') + $tabRet['DateMajRCS']=$entrep['jourUpdate']; + else + $tabRet['DateMajRCS']=$entrep['dateInsert']; + } + if ($entrep['actif']==1 || $entrep['actif']==11) + $tabRet['EntActiveRCS']=1; // On signal que l'entreprise est active au RCS + else { + $tabRet['EntActiveRCS']=0; // On signal que l'entreprise est radié du RCS + if ($tabRet['SituationJuridique']=='') + $tabRet['SituationJuridique']='RR'; // On signal que l'entreprise est radié du RCS + } + + $tabRet['NomCommercial']=$entrep['nomCommercial']; + $tabRet['enseigneLong']=$entrep['enseigne']; + } + } + + if ( $accesDist && + // Département couvert par Infogreffe + $tabRet['Dept']<>57 && $tabRet['Dept']<>67 && $tabRet['Dept']<>68 && $tabRet['Dept']<>97 && $tabRet['Dept']<>98 && $tabRet['Dept']<>99 && + // Forme Juridique présente au greffe + ( $tabInsee['CJ']==1100 || + $tabInsee['CJ']==1200 || + $tabInsee['CJ']==1300 || + $tabInsee['CJ']==1700 || + ($tabInsee['CJ']>=3100 && $tabInsee['CJ']<=3299) || + ($tabInsee['CJ']>=4100 && $tabInsee['CJ']<=4199) || + ($tabInsee['CJ']>=5100 && $tabInsee['CJ']<=5899) || + ($tabInsee['CJ']>=6100 && $tabInsee['CJ']<=6599) || + $tabInsee['CJ']==9900 || + preg_match('/EIRL/', $nom) || preg_match('/EIRL/', $nom2) || + preg_match('/EIRL/', $tabRet['Sigle']) || preg_match('/EIRL/', $tabRet['Enseigne']) || + preg_match('/EIRL/', $tabRet['Adresse']) || preg_match('/EIRL/', $tabRet['Adresse2']) + ) && + ( $tabInsee['CJ']==1700 || // Agents commerciaux (uniquement au Greffes RSAC) + $tabRet['numRC']=='' || // Numéro de RCS absent = Anomalie (<à3%) + $tabRet['Tribunal']=='' || // Tribunal absent = anomalie + str_replace('-','',$tabRet['dateImmat'])*1==0 || // Pas de date d'immat = anomalie (<à9%) + ($nbEtab*1==0 && str_replace('-','',$tabRet['dateRad'])*1==0) // Inactif sans date de RAD + ) + ) { + $ligne=date('YmdHis').";$siren;MGreffes Avant"; + $fp=fopen(LOG_PATH.'/accesDistant.log', 'a'); + fwrite($fp,$ligne.EOL); + fclose($fp); + $tdeb=microtime(1); + $iGeffes=new MGreffes(); + $iRncs=new MRncs(); + $etabG=$iGeffes->getIdentite($siren); + $duree=round(microtime(1)-$tdeb,3); + $ligne=date('YmdHis').";$siren;MGreffes APRES ($duree s)"; + $fp=fopen(LOG_PATH.'/accesDistant.log', 'a'); + fwrite($fp,$ligne.EOL); + fclose($fp); + if ($etabG) { + if ($tabRet['numRC']=='') $tabRet['numRC'] = $etabG['NumRC2']; + if ($tabRet['Tribunal']=='') $tabRet['Tribunal'] = $iRncs->getCodeBodaccTribunal($etabG['NumGreffe']); + if (str_replace('-','',$tabRet['dateImmat'])*1==0) $tabRet['dateImmat']= $etabG['DateCreation']; + if (str_replace('-','',$tabRet['dateRad'])*1==0) { + $tabRet['dateRad'] = $etabG['DateRadiation']; + if (str_replace('-','',$tabRet['dateRad'])*1>0 && $tabRet['SituationJuridique']=='') + $tabRet['SituationJuridique']='RR'; + } + if (preg_match('/[A-Z]/i',substr($tabRet['AutreId'],2,2)) || $tabRet['AutreId']=='') + $tabRet['AutreId'] = $etabG['NumRC2']; + } + $timer['infosInfogreffes']=microtime(true); + } + + /** Si il n'y a aucun établissement actif et qu'on est radié au RCS : + ** on part chercher la dernière annonce de Radiation au Bodacc + **/ + if (($nbEtab*1)==0 || (isset($entrep['numGreffe']) && $entrep['actif']==0 && $entrep['dateRadNum']==0)) { + $tabRad=$this->getAnnoncesLegales($siren, 0, 'R'); + //@file_put_contents('/var/www/html/ws2/inseeDebug.log', print_r($tabRad, true)); + if (count($tabRad)>0) { + // Il y a au moins une annonce de radiation au Bodacc + if ($tabRet['SituationJuridique']=='') + $tabRet['SituationJuridique']='RP'; + + $dateEff=str_replace('-','', $tabRad[0]['dateEffet'])*1; + $dateJug=str_replace('-','', $tabRad[0]['dateJugement'])*1; + $datePar=str_replace('-','', $tabRad[0]['DateParution'])*1; + if ($dateEff>0) + $tabRet['dateRad']=$dateEff; + elseif ($dateJug>0) + $tabRet['dateRad']=$dateJug; + elseif ($datePar>0) + $tabRet['dateRad']=$datePar; + } + $timer['infosRadiation']=microtime(true); + } + + /** Eléments Financiers en provenance du dernier Bilan + **/ + $rep=$this->iDb->select('bilans', 'siren, dateExercice, dureeExercice, monnaie, typeBilan, unite, postes, dateProvPartenaire, dateInsert', "siren=$siren AND typeBilan IN ('N','S') ORDER BY dateExercice DESC LIMIT 0,1", true, MYSQL_ASSOC); + $entrep=$rep[0]; + if (isset($entrep['dateExercice'])) { + $tabRet['bilanAnnee'] = substr($entrep['dateExercice'],0,4); + $tabRet['bilanDate'] = $entrep['dateExercice']; + $tabRet['bilanMois'] = $entrep['dureeExercice']; + $tabRet['bilanDevise'] = $entrep['monnaie']; + if ($entrep['dateProvPartenaire']>0) + $tabRet['bilanDateMaj']=WDate::dateT('Ymd','Y-m-d',$entrep['dateProvPartenaire']); + else + $tabRet['bilanDateMaj']=WDate::dateT('Y-m-d','Y-m-d',$entrep['dateInsert']); + + switch (strtoupper(trim($entrep['unite']))) { + case 'M': $unite='M'; break; + case 'K': $unite='K'; break; + default: $unite='U'; break; + } + $tabTmp=explode(';', $entrep['postes']); + $tabBilan=array(); + foreach ($tabTmp as $i=>$strTmp) { + $tabTmp2=explode('=', $strTmp); + if (isset($tabTmp2[1])) + if ($unite=='K' && $tabTmp2[0]<>'YP' && $tabTmp2[0]<>'YP1' && $tabTmp2[0]<>'376') + $tabBilan[$tabTmp2[0]]=$tabTmp2[1]*1000; + elseif ($unite=='M' && $tabTmp2[0]<>'YP' && $tabTmp2[0]<>'YP1' && $tabTmp2[0]<>'376') + $tabBilan[$tabTmp2[0]]=$tabTmp2[1]*1000000; + else $tabBilan[$tabTmp2[0]]=$tabTmp2[1]; + } + if (strtoupper($entrep['typeBilan'])=='S') { + $mBil=new MBilans(0); + $tabTmp=$mBil->bilanSimplifie2Normal($tabBilan); + $tabBilan=array_merge($tabTmp, $tabBilan); + } + + $tabRet['bilanDA'] = $tabBilan['DA']; + $tabRet['bilanFL'] = $tabBilan['FL']; + $tabRet['bilanHN'] = $tabBilan['HN']; + $tabRet['bilanYP'] = $tabBilan['YP']; + + // Fiche AGS + $tabRet['bilanPQ'] = $tabBilan['PQ']; + $tabRet['bilanPU'] = $tabBilan['PU']; + $tabRet['bilanPY'] = $tabBilan['PY']; + $tabRet['bilanQC'] = $tabBilan['QC']; + + /** Tranche de CA Bilan Réel si TCA Insee ou Estimée < dernière clôture **/ + if ($tabRet['AnneeTCA']<=$tabRet['bilanAnnee'] && $tabInsee['ACTIF']==1) { + $tabRet['TrancheCA']=$this->getTca($tabBilan['FL']); + $tabRet['TrancheCALib']=self::$tabTCA[$tabRet['TrancheCA']]; + $tabRet['TrancheCAType']='R'; + $tabRet['AnneeTCA']=$tabRet['bilanAnnee']; + } + + /** Contrôle de la cohérence du type d'exploitation **/ + if ($tabBilan['AH']>0 && // Je possède un fond commercial + $tabRet['TypeExploitation']<>2 && // et je ne suis pas Loueur d'un fond + $tabRet['TypeExploitation']<>3 && // et je ne suis pas Prestataire de personnel + $tabRet['TypeExploitation']<>10) { // et je ne suis pas exploitant direct + /*@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Identite sur $siren : Type d'exploitation", + "Fonds commercial au dernier bilan .... ".$tabBilan['AH'].EOL. + "Ancien type d'exploitation ........... ".$tabRet['TypeExploitation'].EOL. + "Nouveau type d'exploitation .......... 10 (exploitation directe)".EOL.print_r($tabBilan,true));*/ + $tabRet['TypeExploitation']=10; + } + + /** Controle de cohérence du capital car parfois absent en Alsace Moselle au RNCS **/ + if ($tabRet['FJ']>2000 && $tabRet['Capital']==0 && $tabRet['CapitalDev']=='') { + $tabRet['Capital']=$tabRet['bilanDA']; + $tabRet['CapitalDev']=$tabRet['bilanDevise']; + } + + $timer['infosBilan']=microtime(true); + } elseif($caEstime>0 && $tabInsee['ACTIF']==1) { + $tabRet['bilanAnnee'] = date('Y')-2; + $tabRet['bilanFLestime']=$caEstime; + } + + /** CA Estimé si aucune info Bilan au TCA Insee + **/ + //$tabRet['caEstime'] = getCAnafEffectif($tabRet['NafEnt'],$tabRet['Effectif']); + + + //exec("/var/www/batch/getInfosId.php $siren $piece > /dev/null &"); + + /** DEBUT parallele ** + $pids = array(); + $shm = ftok(__FILE__, 'c'); + $shm_id = shm_attach($shm); + $mutex = sem_get($shm); + + define("_IDCOMP", -1); + define("_MAP", -1); + define("_AMABIS", -1); + define("_TVA", -1); + define("_TEL", -1); + define("_GREFFE", -1); + + shm_put_var($shm_id, _IDCOMP, -1); + shm_put_var($shm_id, _MAP, -1); + shm_put_var($shm_id, _AMABIS, -1); + shm_put_var($shm_id, _TVA, -1); + shm_put_var($shm_id, _TEL, -1); + shm_put_var($shm_id, _GREFFE, -1); + + for($instance=0; $instance<7; $instance++) + { + $pid = pcntl_fork(); + if ($pid == -1) { + die('could not fork'); + } else if ($pid) { + // we are in the parent + $pids[] = $pid; + } else { + // we're in the child - download the movie + switch ($instance) { + case 0: // Identité partenaire + if (count($info)==0 && $accesDist) { + $idComp=$this->getIdentitePart($siren, $etab['raisonSociale'], $etab['enseigne'], $etab['sigle']); + shm_put_var($shm_id, _IDCOMP, serialize($idComp)); + } + break; + case 1: // Google MAP + $mMap=new MMap(true); + $mMap->geoCodeAdresse($etab['adr_num'],'',$etab['adr_typeVoie'],$this->getCodeVoie($etab['adr_typeVoie']), $etab['adr_libVoie'], $etab['adr_cp'], $etab['adr_ville'], 'France', trim($tabInsee['ADR_DEP'].$tabInsee['ADR_COM'].$tabInsee['CODEVOIE'])); + shm_put_var($shm_id, _MAP, serialize($mMap)); + break; + case 2: // Zones prioritaires + if ($accesDist) { + $iAmabis=new MAmabis(); + $repAmabis=$iAmabis->getZonage($etab['adr_num'],$etab['adr_btq'],$etab['adr_typeVoie'],$etab['adr_libVoie'], $etab['adr_cp'], $etab['adr_ville'], trim($tabInsee['ADR_DEP'].$tabInsee['ADR_COM'].$tabInsee['CODEVOIE']), false, 'TEST', false); + } + shm_put_var($shm_id, _AMABIS, serialize($repAmabis)); + break; + case 3: // N° de TVA + if ($siren*1>100) + $iTva=new MTva($siren, $accesDist); + shm_put_var($shm_id, _TVA, serialize($iTva)); + break; + case 4: // Téléphonie Siège + if ( $accesDist && ( + $tel=='' || $fax=='' || // Pas de tél ou Fax + $tab['web']=='' || $tab['mail']=='' || // Pas de Web/Mail + ($etab['siege']==0 && $etab['actif']==1) ) // Ets secondaire actif + ) { + $iTel=new MTel(); + $iTel->getTel($siren); + } + break; + case 5: // Téléphonie Etab + if ( $accesDist && ( + $tel=='' || $fax=='' || // Pas de tél ou Fax + $tab['web']=='' || $tab['mail']=='' || // Pas de Web/Mail + ($etab['siege']==0 && $etab['actif']==1) ) // Ets secondaire actif + ) { + $iTel=new MTel(); + $tmp=$iTel->getTel($siren, $nic); + shm_put_var($shm_id, _TEL, serialize($tmp)); + } + break; + case 6: // Infogreffe + if ( $accesDist && $tabRet['Dept']<>57 && $tabRet['Dept']<>67 && $tabRet['Dept']<>68 && $tabRet['Dept']<>97 && $tabRet['Dept']<>98 && $tabRet['Dept']<>99 && // Départements du périmètre infogreffe + ( $tabInsee['CJ']==1700 || // Agents commerciaux (uniquement au Greffes RSAC + $tabRet['numRC']=='' || // Numéro de RCS absent = Anomalie + $tabRet['Tribunal']=='' || // Tribunal absent = anomalie + str_replace('-','',$tabRet['dateImmat'])*1==0 || // Pas de date d'immat = anomalie + ($nbEtab*1==0 && str_replace('-','',$tabRet['dateRad'])*1==0) // Inactif sans date de RAD + ) + ) { + $iGeffes=new MGreffes(); + $etabG=$iGeffes->getIdentite($siren); + shm_put_var($shm_id, _GREFFE, serialize($etabG)); + } + break; + } + exit(); + } + } + + foreach($pids as $pid) { + pcntl_waitpid($pid, $status); + } + + $idComp = unserialize(shm_get_var($shm_id, _IDCOMP)); + $mMap = unserialize(shm_get_var($shm_id, _MAP)); + $repAmabis = unserialize(shm_get_var($shm_id, _AMABIS)); + $iTva = unserialize(shm_get_var($shm_id, _TVA)); + $iTel = unserialize(shm_get_var($shm_id, _TEL)); + $etabG = unserialize(shm_get_var($shm_id, _GREFFE)); + @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getIdentiteEntreprise() sur $siren", "Données récoltées en //".EOL. + print_r($idComp, true) .EOL. + print_r($mMap, true) .EOL. + print_r($repAmabis, true) .EOL. + print_r($iTva, true) .EOL. + print_r($iTel, true) .EOL. + print_r($etabG, true)); + /** FIN parallele **/ + + $tabRet['TribunalLib']=$this->iBodacc->getTribunalNom($tabRet['Tribunal']); + $duree=round(microtime(1)-$tdebIni,3); + $ligne=date('YmdHis').";$siren;getIdentiteEntreprise Fin ($duree s) ==="; + $fp=fopen(LOG_PATH.'/accesDistant.log', 'a'); + fwrite($fp,$ligne.EOL); + fclose($fp); + + /** Si on n'a trouvé aucune activité, on prend le libellé de l'activité pages Jaunes **/ + if ($tabRet['Activite']=='' && $activitePJ_An8<>'') + $tabRet['Activite']=$activitePJ_An8; + + /** Numero de Registre du métier si nécessaire **/ + if ( ($tabRet['FJ']==1100 || $tabRet['FJ']==1300 || $tabRet['FJ']==11 || $tabRet['FJ']==13 || $tabInsee['APRM']<>'') && + ($tabRet['Dept']=='2A' || $tabRet['Dept']=='2B' || $tabRet['Dept']<98) ) { + // Artisan Commerçant OU Artisan en FRANCE + $tabRet['NumRM']=$siren.' RM '.$tabRet['Dept']; + if ($tabRet['Dept']=='2A') $tabRet['NumRM'].='.1'; // Ajaccio + elseif ($tabRet['Dept']=='2B') $tabRet['NumRM'].='.2'; // Bastia + elseif ($tabRet['Dept']==97) $tabRet['NumRM'].=substr($tabRet['codeCommune'],0,1); + } + + /** Recherche des infos boursières **/ + $iBourse=new MBourse($siren); + $bourse=$iBourse->getInfosBourse($siren); + $tabRet['Bourse']=array('placeCotation'=>$bourse['placeCotation'], + 'nombreTitres'=>$bourse['nombreTitres'], + 'capitalisation'=>$bourse['close']*$bourse['nombreTitres'], + 'derCoursDate'=>$bourse['date'], + 'derCoursCloture'=>$bourse['close']); + $timer['infosBoursieres']=microtime(true); + + /** Date de dernière mise à jour **/ + $lastMaj=str_replace('-','',$tabRet['DateMajINSEE'])*1; + if (str_replace('-','',$tabRet['DateMajRCS'])*1>$lastMaj) + $lastMaj=str_replace('-','',$tabRet['DateMajRCS'])*1; + if (str_replace('-','',$tabRet['bilanDateMaj'])*1>$lastMaj) + $lastMaj=str_replace('-','',$tabRet['bilanDateMaj'])*1; + if (str_replace('-','',$tabRet['dateMajANN'])*1>$lastMaj) + $lastMaj=str_replace('-','',$tabRet['dateMajANN'])*1; + $tabRet['dateMajIdentite']=WDate::dateT('Ymd','Y-m-d',$lastMaj); + + $i=$dureeCalc=0;$strTime=''; + $strTimeCsv=date('Y/m/d H:i:s').",$siren,$nic,$id,"; + foreach ($timer as $lib=>$time) { + $strTime.=sprintf("%30s",$lib)."\t:\t"; + $duree=round($time-$timePre,3); + $dureeCalc+=$duree; + if ($i==0) { $strTime.="0 s"; $timeDeb=$time; } + else $strTime.="$duree s"; + $strTimeCsv.="$duree,"; + $strTime.="\n"; + $timePre=$time; + $i++; + } + $dureeTot=round($time-$timeDeb,3); + $tempsPerdu=round($dureeTot-$dureeCalc,3); + if ($tempsPerdu<0) $tempsPerdu=0; + $strTime.="Temps perdu\t:\t$tempsPerdu s +--------------------- +TOTAL : $dureeTot s\n"; + $strTimeCsv.="$tempsPerdu,$dureeTot".EOL; + + if (!file_exists(REP_TEMP.'/debugIdentite.csv')) { + $fp=fopen(REP_TEMP.'/debugIdentite.csv', 'a+'); + $strTimeTmp='dateTime,siren,nic,id,'; + foreach ($timer as $lib=>$time) + $strTimeTmp.=$lib.','; + $strTimeTmp.='tempsPerdu,dureeTot'.EOL; + fwrite($fp, $strTimeTmp); + fclose($fp); + } + $fp=fopen(REP_TEMP.'/debugIdentite.csv', 'a+'); + fwrite($fp, $strTimeCsv); + fclose($fp); + + if(ENV<>'PRD' && $tabInfoUser['login']=='ylenaour') + @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Identite sur $siren : Durées ".ENV, $strTime.EOL.print_r($tabRet,true)); + + return $tabRet; + } + + + function getDirigeantsOp($siren) { + $siren=$siren*1; + $tabRet=array(); + $dirs=$this->iDb->select( + 'sdv1.dirigeantsOp d, jo.bodacc_fonctions f', + 'siren, nic, civ, nom, prenom, d.codFct, f.libelle, tel, fax, email, dateInsert, dateUpdate', + "siren=$siren AND d.codFct=f.codeFct", false, MYSQL_ASSOC); + + foreach ($dirs as $k=>$dir) { + $tabRet[]=array( + 'Fonction' => $dir['codFct'], + 'Titre' => $dir['libelle'], + 'Societe' => '', + 'Civilite' => $dir['civ'], + 'Nom' => trim(strtoupper($dir['nom'])), + 'Prenom' => ucwords(strtolower($dir['prenom'])), + 'NaissDate' => '', + 'NaissVille' => '', + 'NaissDepPays' => '', + 'Ancien' => 0, + 'DateFct' => '', + 'Cinf' => 0, + ); + } + return $tabRet; + } + + function getDirigeants($siren, $histo=true) + { + $siren=$siren*1; + $tabRet=array(); + + if ($histo) { + $bodacc=$this->iDb->select( + 'bodacc_dirigeants d, bodacc_detail b, bodacc_fonctions f', + 'd.num, d.dateEffet, d.Rubrique, d.fonction, d.rs, d.nom, d.prenom, d.nomUsage, d.depart, d.dateInsert, f.libelle', + "b.SIREN=$siren AND b.id=d.id AND b.typeEven NOT BETWEEN 5000 AND 5700 AND b.typeEven NOT BETWEEN 2700 AND 2900 AND d.fonction=f.codeFct GROUP BY d.fonction, d.rs, d.nom, d.prenom ORDER BY d.dateEffet DESC, d.fonction DESC", true, MYSQL_ASSOC); + if (count($bodacc)>0) { + foreach ($bodacc as $k=>$ann) { + /* if (!$histo && ( + $ann['fonction']<>300 && // Commissaire aux comptes titulaire + $ann['fonction']<>301 && // Co-commissaire aux comptes suppléant + $ann['fonction']<>302 && // Co-commissaire aux comptes titulaire + $ann['fonction']<>303 && // Commissaire aux comptes suppléant + $ann['fonction']<>304) ) // Commissaire aux comptes + continue;*/ + $tabRet[]=array( 'Fonction' => $ann['fonction'], + 'Titre' => $ann['libelle'], + 'Societe' => $ann['rs'], + 'Nom' => trim(strtr($ann['nom'], array( "Modification d'"=>'', + "Modification de"=>'', + "Nomination d'un"=>'', + ))), + 'Prenom' => $ann['prenom'], + 'NomUsage' => $ann['nomUsage'], + 'Ancien' => $ann['depart'], + 'DateFct' => $ann['dateEffet'], + ); + } + } + $iDbHisto=new WDB('historiques'); + $iBodacc=new MBodacc(); + $bodaccHisto=$iDbHisto->select( + 'entrep e, texte x', + 'e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt', + "e.E1GSIR=$siren AND e.ANBASE=x.annonceNum AND e.DATE BETWEEN 19890101 AND 20050101 AND x.annonceTxt LIKE '%Administration%' GROUP BY e.ANBASE ORDER BY e.DATE DESC", true, MYSQL_ASSOC); + if (count($bodaccHisto)>0) { + foreach ($bodaccHisto as $ann) { + if ($ann['DATE']<19960101 && $ann['E1GSIR']<>$ann['SIREN']) continue; + if ( ($ann['CODEVE']<20) || + ($ann['CODEVE']>=30 && $ann['CODEVE']<42) || + ($ann['CODEVE']>=51 && $ann['CODEVE']<80) ) { + if (preg_match('/Administration(?:.|)\:(.*)(?:Adresse.*|Commentaires?|Activit(?:e|é)|Etablissement principal|Date d\'effet|Date.de.d.but d.activit.)(?:.|)\:/Uis', $ann['annonceTxt'], $matches)) { + $iDir=0; + $tabAdministration=$iBodacc->getDirigeants($matches[1]); + foreach ($tabAdministration as $tabDir) { + /* $tabDir['num']=$numDir; + $tabDir['dateEffet']=$dateEffet; + $tabDir['id']=$idAnnRet; + $tabDir['Rubrique']='mmd'; + $tabDir['dateInsert']=$dateInsert; + //'fonction'=>$numFonction, 'rs'=>trim(str_replace(',','',$raisonSociale)), 'nom'=>$nom, 'prenom'=>$prenom, 'nomUsage'=>$usage, 'depart'=>$oldFonction); + + */ + $nom=trim(strtr(preg_replace('/ +/',' ', $tabDir['nom']), + array( "Modification d'"=>'', + "Modification"=>'', + "Modification de"=>'', + "Nomination d'un"=>'', + "Nomination en qualité d'"=>'', + "Nomination en qualité de"=>'', + "dont le est"=>'', + "nouvel"=>'', + "partant"=>'', + "ancien d'honneur"=>'', + "nouveaux"=>'', + "nouveau"=>'', + "ancien"=>'', + "Nouveau"=>'', + "Cette société se constitue Date de début d'"=>'', + ))); + if ($nom<>'') { + $tabRet[]=array( 'Fonction' => $tabDir['fonction'], + 'Titre' => $iBodacc->getFctDir($tabDir['fonction']),//.' ('.$tabDir['fonction'].')', + 'Societe' => $tabDir['rs'], + 'Nom' => $nom, + 'Prenom' => $tabDir['prenom'], + 'NomUsage' => $tabDir['nomUsage'], + 'Ancien' => $tabDir['depart'], + 'DateFct' => Wdate::dateT('Ymd','Y-m-d', $ann['DATE']), + ); + $this->iDb->insert('bodacc_dirigeants_histo', + array( 'siren' => $siren, + 'id' => $ann['ANBASE'], + 'num' => $iDir, + 'dateEffet' => Wdate::dateT('Ymd','Y-m-d', $ann['DATE']), + 'fonction' => $tabDir['fonction'], + 'rs' => $tabDir['rs'], + 'nom' => $nom, + 'prenom' => $tabDir['prenom'], + 'nomUsage' => $tabDir['nomUsage'], + 'depart' => $tabDir['depart'], + ), true); + /*if (mysql_errno()>0) { + echo mysql_errno().' : '.mysql_error().EOL; + }*/ + $iDir++; + } + } + //break; + } + } + } + } + } + + if (!$histo || ($histo && count($tabRet)==0) ) { + $dirs=$this->iDb->select( + 'rncs_dirigeants/* d, bodacc_fonctions f*/', + 'siren, raisonSociale, dirSiren, dirRS, civilite, nom, prenom, naissance_nom, naissance_date, naissance_lieu, fonction_code, fonction_lib, cinf, dateFin, flux, dateInsert/*f.libelle*/', + "siren=$siren /*AND d.fonction_code=f.codeFct*/ AND actif%10=1", false, MYSQL_ASSOC); + + foreach ($dirs as $k=>$dir) { + if ($dir['naissance_date']<>'0000-00-00') + $dateNaiss=Wdate::dateT('Y-m-d','d/m/Y', $dir['naissance_date']); + else + $dateNaiss=''; + if ($dir['flux']<>'0000-00-00') + $dateModif=Wdate::dateT('Y-m-d','d/m/Y', $dir['flux']); + else + $dateModif=Wdate::dateT('Y-m-d','d/m/Y', $dir['dateInsert']); + $nom=trim($dir['nom']); + $nomUsage=''; + if (trim($dir['naissance_nom'])<>'') { + $nom=trim($dir['naissance_nom']); + $nomUsage=trim($dir['nom']); + } + $tabRet[]=array( 'Fonction' =>$dir['fonction_code'], + 'Titre' =>$dir['fonction_lib'], + 'Siren' =>$dir['dirSiren'], + 'Societe' =>$dir['dirRS'], + 'Civilite' =>$dir['civilite'], + 'Nom' =>$nom, + 'Prenom' =>$dir['prenom'], + 'NomUsage' =>$nomUsage, + 'NaissDate' =>$dateNaiss, + 'NaissVille' =>$dir['naissance_lieu'], + 'NaissDepPays' =>'', // 25 + 'Ancien' =>0, + 'DateFct' =>$dateModif, + 'Cinf' =>$dir['cinf'], + ); + } + } + + /** Recherche de CAC si liste des dirigeants actifs **/ + if (!$histo) { + $bodacc=$this->iDb->select( + 'bodacc_dirigeants d, bodacc_detail b, bodacc_fonctions f', + 'd.num, d.dateEffet, d.Rubrique, d.fonction, d.rs, d.nom, d.prenom, d.nomUsage, d.depart, d.dateInsert, f.libelle', + "b.SIREN=$siren AND b.id=d.id AND b.typeEven NOT BETWEEN 5000 AND 5700 AND b.typeEven NOT BETWEEN 2700 AND 2900 AND d.fonction=f.codeFct AND d.fonction BETWEEN 300 AND 304 GROUP BY d.fonction, d.rs, d.nom, d.prenom ORDER BY d.dateEffet DESC, d.fonction DESC", false, MYSQL_ASSOC); + if (count($bodacc)>0) { + foreach ($bodacc as $k=>$ann) { + $rs=trim(strtoupper($ann['rs'])); + $nom=preg_replace('/en fonction le .*/i','',$ann['nom']); + $nom=preg_replace('/Nomination .*/i','',$nom); + $nom=preg_replace('/Modification .*/i','',$nom); + $nom=preg_replace('/Nouvelles?\s+$/i','',trim($nom)); + $nom=preg_replace('/Nouveaux?\s+$/i','',trim($nom)); + $nom=preg_replace('/ancien.*/i','',$nom); + $nom=preg_replace('/en remplacement d.*/i','',$nom); + $nom=trim(strtoupper(preg_replace('/(\.|,)$/','',trim($nom)))); + $prenom=trim($ann['prenom']); + if ($prenom=='' && $rs=='' && $nom<>'') { + $rs=$nom; + $nom=''; + } + //if ($rs==$nom) + $tabRet[]=array('Fonction' => $ann['fonction'], + 'Titre' => $ann['libelle'], + 'Societe' => $rs, + 'Nom' => $nom, + 'Prenom' => $prenom, + 'NomUsage' => $ann['nomUsage'], + 'Ancien' => $ann['depart'], + 'DateFct' => $ann['dateEffet'], + ); + if ($k>1) break; // On s'arrête à 2 CAC (pb des co-cac non gérés) + } + } + } + + /** Si on ne trouve absolument rien, on regarde quand même dans l'histroique RNCS **/ + if (count($tabRet)==0) { + $dirs=$this->iDb->select( + 'rncs_dirigeants/* d, bodacc_fonctions f*/', + 'siren, raisonSociale, dirSiren, dirRS, civilite, nom, prenom, naissance_nom, naissance_date, naissance_lieu, fonction_code, fonction_lib, cinf, dateFin, flux, dateInsert, /*f.libelle*/ date(dateUpdate)*1 as dateUpdate', + "siren=$siren /*AND d.fonction_code=f.codeFct*/ AND actif%10=0 ORDER BY dateUpdate DESC", false, MYSQL_ASSOC); + + $dateUpdatePre=$dirs[0]['dateUpdate']; + foreach ($dirs as $k=>$dir) { + if ($dir['naissance_date']<>'0000-00-00') + $dateNaiss=Wdate::dateT('Y-m-d','d/m/Y', $dir['naissance_date']); + else + $dateNaiss=''; + if ($dir['flux']<>'0000-00-00') + $dateModif=Wdate::dateT('Y-m-d','d/m/Y', $dir['flux']); + else + $dateModif=Wdate::dateT('Y-m-d','d/m/Y', $dir['dateInsert']); + if ($dir['dateUpdate']<>$dateUpdatePre) break; + $tabRet[]=array( 'Fonction' => $dir['fonction_code'], + 'Titre' => $dir['fonction_lib'], + 'Siren' => $dir['Siren'], + 'Societe' => $dir['dirRS'], + 'Civilite' => $dir['civilite'], + 'Nom' => trim($dir['nom']), + 'Prenom' => $dir['prenom'], + 'NomUsage' => $tabDir['nomUsage'], + 'NaissDate' => $dateNaiss, + 'NaissVille' => $dir['naissance_lieu'], + 'NaissDepPays' => '', // 25 + 'Ancien' => 1, + 'DateFct' => $dateModif, + 'Cinf' => $dir['cinf'], + ); + $dateUpdatePre=$dir['dateUpdate']; + } + } + + if (count($tabRet)==0) { + + if ($tabIdentite['FJ']*1>1000 && $tabIdentite['FJ']*1<2000) { + $tabTmp=explode(' ', $tabIdentite['Nom']); + $nom=$prenom=''; + foreach ($tabTmp as $mot) + if (strtoupper($mot)==$mot) + $nom.=' '.$mot; + else + $prenom.=' '.$mot; + if ($etab['Civilite']*1==1) { $genre='Monsieur '; $civilite='M'; } + elseif ($etab['Civilite']*1==2) { $genre='Madame '; $civilite='MME'; } + else { $genre=''; $civilite=''; } + + $tabTmp=$this->iDbInsee->select('identite', 'SIREN, CJ, CIVILITE, DIR_DATEN, DIR_LIEUN', + "SIREN=$siren AND (DIR_DATEN>0 OR DIR_LIEUN<>'') ORDER BY DIR_DATEN DESC, DIR_LIEUN DESC", + false, MYSQL_ASSOC); + $tabTmp=@$tabTmp[0]; + + $tabRet[]=array( 'Titre' =>'Personne physique', + 'Societe' =>'',//utf8_encode($dir['Societe']), + 'Civilite' =>$civilite, + 'Nom' =>trim($nom), + 'Prenom' =>trim($prenom), + 'NomUsage' =>'', + 'NaissDate' =>Wdate::dateT('Ymd', 'd/m/Y', $tabTmp['DIR_DATEN']),// 07/09/1961 + 'NaissVille' =>$tabTmp['DIR_LIEUN'], // LE RUSSEY//, + 'NaissDepPays' =>'', // 25 + 'Ancien' =>0, + 'DateFct' =>$tabIdentite['DateCrea'],//$tabIdentite['DateImma'], + ); + $this->iDb->insert('rncs_dirigeants', array('siren' => $siren, + 'raisonSociale' => $etab['Nom'], + 'civilite' => $civilite, + 'nom' => trim($nom), + 'prenom' => trim($prenom), + 'naissance_nom' => '', + 'naissance_date'=> $tabTmp['DIR_DATEN'], + 'naissance_lieu'=> $tabTmp['DIR_LIEUN'], + 'fonction_code' => 1050, + 'fonction_lib' => 'Personne physique', + 'actif' => 1, + 'dateInsert' => date('YmdHis'), + 'source' => 'inp', + ), true); + } + } + return $tabRet; + } + + /** + * Liste des annonces légales pour un siren donnée + * @param integer $siren + * @param integer $idAnnonce + * @param mixed $rubrique Filter par rubrique (P)rocol, (D)issolution, (R)adiation, (A)bsorption, (L)ocataire, + * (G)érance:propriétaire, (V)endeur, bodacc (C), (BODA) (BODB) (BODC) ou tableau des codeEven + * @param bool $forceVerif + * @return array + */ + function getAnnoncesLegales($siren, $idAnnonce=0, $rubrique='', $forceVerif=false, $allTextes=false, $deleted=false) + { + $siren=$siren*1; + $strIdAnn=''; + $tabRet=array(); + $procol=false; // Par défaut, on ne trouve pas de procédure collective ! + $this->dureePlan=0; // Par défaut, on ne trouve aucune durée de plan + + $tabId=$this->getIdentiteLight($siren); + $fj=$tabId['FJ']; + + if ($idAnnonce>0) $strIdAnn=" AND d.id=$idAnnonce "; + elseif ($idAnnonce==0 && $siren<100) return $tabRet; + + if ($rubrique=='P' || + $rubrique=='PH') // Procédure collective + $strIdAnn=" AND d.Rubrique='procol' AND d.typeEven NOT LIKE '%1005%' + AND d.typeEven NOT LIKE '%1010%' + AND d.typeEven NOT LIKE '%1050%' + AND d.typeEven NOT LIKE '%1055%' + AND d.typeEven NOT LIKE '%1550%' "; + /** @todo Prévoir de ne pas sortir l'annonce si 'P' demandé et date juge > 10 ans + ** AND e.DATE>=".((date('Y')*1)-10).''.date('md') + **/ + elseif ($rubrique=='D') // Dissolution de la société + $strIdAnn=" AND (d.typeEven LIKE '%2202%' OR d.typeEven LIKE '%2203%' OR d.typeEven LIKE '%2204%' OR + d.typeEven LIKE '%2210%' OR d.typeEven LIKE '%2211%' OR d.typeEven LIKE '%2212%') "; + elseif ($rubrique=='A') // Absorption + $strIdAnn=" AND (d.typeEven LIKE '%2720%' OR d.typeEven LIKE '%2721%') "; + + elseif ($rubrique=='BODA') // BODACC A + $strIdAnn=" AND d.Rubrique IN ('creations','procol','ventes') "; + elseif ($rubrique=='BODB') // BODACC B + $strIdAnn=" AND d.Rubrique IN ('mmd','radiations') "; + + elseif ($rubrique=='C' || $rubrique=='BODC') // Dépôt des comptes, BODACC C + $strIdAnn=" AND (d.Rubrique='comptes' OR d.typeEven LIKE '%3100%' OR d.typeEven LIKE '%3200%' + OR d.typeEven LIKE '%3300%' OR d.typeEven LIKE '%3999%') "; + elseif ($rubrique=='R') + $strIdAnn=" AND (d.typeEven LIKE '%2202%' OR d.typeEven LIKE '%2203%' OR d.typeEven LIKE '%2204%' OR + d.typeEven LIKE '%2210%' OR d.typeEven LIKE '%2211%' OR d.typeEven LIKE '%2212%' OR d.Rubrique='radiations') "; + elseif ($rubrique=='L') // Location gérance Locataire + $strIdAnn=" AND (d.typeEven LIKE '%2800%' OR d.typeEven LIKE '%2875%' OR d.typeEven LIKE '%2880%' OR + d.typeEven LIKE '%2881%' OR d.typeEven LIKE '%2885%' OR d.typeEven LIKE '%2840%' OR + d.typeEven LIKE '%4355%') "; + elseif ($rubrique=='G') // Location gérance Propriétaire + $strIdAnn=" AND (d.typeEven LIKE '%2850%' OR d.typeEven LIKE '%2851%' OR d.typeEven LIKE '%2860%' OR + d.typeEven LIKE '%2870%') "; + elseif ($rubrique=='V') // Ventes/Cessions + $strIdAnn=" AND (d.typeEven LIKE '%5500%' OR d.typeEven LIKE '%5501%' OR d.typeEven LIKE '%5502%' OR + d.typeEven LIKE '%5503%' OR d.typeEven LIKE '%5510%' OR d.typeEven LIKE '%5600%' OR + d.typeEven LIKE '%5650%') "; + elseif (is_array($rubrique) && count($rubrique)>0) { + $strIdAnn=" AND ("; + foreach ($rubrique as $codeEven) + $tabTmp[]=" d.typeEven LIKE '%$codeEven%' "; + $strIdAnn.=implode(' OR ',$tabTmp); + $strIdAnn.=')'; + // @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getAnnonces... sur $siren", $strIdAnn); + } + + //elseif ($rubrique=='V') $strIdAnn=" AND d.Rubrique='ventes' "; + + if ($rubrique<>'' && $rubrique<>'P' && $rubrique<>'PH' && $rubrique<>'D' && $rubrique<>'A' && $rubrique<>'C' && $rubrique<>'R' + && $rubrique<>'L' && $rubrique<>'G' && $rubrique<>'V' + && $rubrique<>'BODA' && $rubrique<>'BODB' && $rubrique<>'BODC' && !is_array($rubrique)) + return false; + + /** On recherche dans les annonces récentes **/ + if ($idAnnonce==0 || $idAnnonce>=1) + { + $strDeleted = "AND d.dateSuppr=0 "; + if ($deleted===true) { + $strDeleted = "AND (d.dateSuppr=0 OR d.dateSuppr!='0000-00-00 00:00:00' AND d.idSuppr=0) "; + } + + $groupBy=' '; + $strCle='1 '; + if ($siren<>0) $strCle ="d.siren=$siren "; + else $groupBy=' GROUP BY d.id '; + $bodacc=$this->iDb->select( + 'bodacc_detail d, bodacc b, tribunaux t',//.codEven Code évènement du mouvement Bodacc libEven ', + "b.id, b.Bodacc_Code, b.Bodacc_Annee_Parution, b.Bodacc_Num, b.Num_Annonce, b.Bodacc_Date_Parution, b.Tribunal_Dept, b.Tribunal_Code, d.Rubrique, b.typeAnnonce, b.corrNum_Annonce, b.corrBodacc_Date_Parution, b.corrPage, b.corrNumParution, b.corrTexteRectificatif, b.annonce, b.dateInsert, t.triCode, t.triNom, t.triSiret, d.typeEven, d.dateEffet, d.dateDebutActivite, d.dateCessationActivite, d.dateJugement, d.dateFinObservation, d.VenteMt, d.VenteDev, d.FJ, d.Capital, d.CapitalDev, CONCAT(d.commentaires,' ',d.fusion) as complement, d.raisonSociale, d.nomCommercial, d.enseigne, d.sigle, d.adresse, d.codePostal, d.ville, d.adresseSiege, d.codePostalSiege, d.villeSiege, IF(d.dateSuppr=0,'',d.dateSuppr) AS deleted", + "$strCle AND d.id=b.id AND b.Tribunal_Code=t.triCode $strDeleted $strIdAnn $groupBy ORDER BY b.Bodacc_Date_Parution DESC", false, MYSQL_ASSOC); + $k=0; + if (count($bodacc)>0) + { + foreach ($bodacc as $k=>$ann) + { + $tabEven=explode(';', $ann['typeEven']); + $tabRetEven=array(); + if ($ann['typeAnnonce']<>'Insertion') { + //Sélection des événements + foreach ($tabEven as $even) { + if ($even!=0) { + $tabRetEven[]=array( + 'CodeEven' => $even, + 'LibEven' => $this->iBodacc->getEvenement($even) + ); + } + } + //Libellé générique + $tabRetEven[] = array( + 'CodeEven' => '0000', + 'LibEven' => $ann['typeAnnonce']." de l'annonce du ".WDate::dateT('Y-m-d','d/m/Y',$ann['corrBodacc_Date_Parution']) + ); + } + else + { + if (trim($ann['typeEven'])<>'') { + foreach ($tabEven as $even) { + if ( $even!=0 ) { + $tabRetEven[]=array('CodeEven'=>$even,'LibEven'=>$this->iBodacc->getEvenement($even)); + if (($this->dureePlan==0 || $this->dureePlan==120) && + ( $even==1407 || // Modification de plan + $even==1409 || // Modification du plan de continuation + $even==1413 || // Arrêt du plan de continuation + $even==1414) ) // Arrêt du plan de redressement + { + $this->debutPlan=str_replace('-','',$ann['dateJugement']); // SSAAMMJJ + if (preg_match('/dur.e(?:.*)plan(?:.*)(\d+)\s+ans?/Uis', $ann['annonce'], $matches)) { + $this->dureePlan=$matches[1]*12; // 10 ans = 120 mois + } + if ($this->dureePlan<1 || $this->dureePlan>120) { + if (($fj==16 || $fj==1600 || // Exploitant agricole + $fj==63 || $fj==6316 || $fj==6317 || $fj==6318 || // Société coopérative agricole + $fj==5431 || $fj==5432 || $fj==5531 || $fj==5532 || // SMIA, SICA + $fj==5631 || $fj==5632 || $fj==6532 || + $fj==6533 || $fj==6534 || $fj==6535 || // GAEC, GFA, Gpt Agricole Foncier + $fj==6597 || $fj==6598) /*&& $this->dureePlan>180*/) + $this->dureePlan=180; // 15 ans + else + $this->dureePlan=120; // 10 ans = 120 mois + //sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Annonce de Plan Récent sur $siren sans durée", print_r($ann, true).EOL.print_r($matches, true)); + } + $this->finPlan=WDate::period2Days($this->debutPlan, $this->dureePlan.' mois'); + // sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnoncesLegales($siren, idAn=$idAnnonce, rubrique=$rubrique, verif=$forceVerif, txt=$allTextes) Annonce de Plan", print_r($ann, true)); + } + } + } + } + else { + switch ($ann['Rubrique']) { + case 'mmd': $codeEven='2313'; $libEven='Modification(s) diverse(s)'; break; + case 'comptes': $codeEven='3999'; $libEven='Dépôt des comptes'; break; + case 'creations': $codeEven='4999'; $libEven='Création d\'entreprise'; break; + case 'procol': $codeEven='1999'; $libEven='Procédure collective'; break; + case 'radiations': $codeEven='6700'; $libEven='Radiation'; break; + case 'ventes': $codeEven='5999'; $libEven='Vente/Cession'; break; + default: $codeEven='0000'; $libEven=$ann['Rubrique']; break; + } + $tabRetEven[]=array('CodeEven'=>$codeEven,'LibEven'=>$libEven); + } + } + + if ($ann['Rubrique']=='procol') $procol=true; + + //dateDebutActivite + // + $dateCes=str_replace('-','', $ann['dateCessationActivite'])*1; + $dateDeb=str_replace('-','', $ann['dateDebutActivite'])*1; + $dateEff=str_replace('-','', $ann['dateEffet'])*1; + if ($dateCes>0) + $dateEffet=$ann['dateCessationActivite']; + elseif ($dateDeb>0) + $dateEffet=$ann['dateDebutActivite']; + else + $dateEffet=$ann['dateEffet']; + $adresseAnn=trim(preg_replace('/ +/',' ', $ann['adresseSiege'].' '.$ann['codePostalSiege'].' '.$ann['villeSiege'])); + + if (strlen($adresse)<8) + $adresseAnn=trim(preg_replace('/ +/',' ', $ann['adresse'].' '.$ann['codePostal'].' '.$ann['ville'])); + + $tabRet[$k]=array( + 'id'=>$ann['id'], + 'BodaccCode'=>'BOD'.$ann['Bodacc_Code'], + 'BodaccNum'=>$ann['Bodacc_Num'], + 'NumAnnonce'=>$ann['Num_Annonce'], + 'DateParution'=>$ann['Bodacc_Date_Parution'], + 'Departement'=>$ann['Tribunal_Dept'], + 'Tribunal'=>$ann['triNom'], + 'TribunalCode'=>$ann['triCode'], + 'TribunalSiret'=>$ann['triSiret'], + 'Rubrique'=>$ann['Rubrique'], + 'typeAnnonce'=>$ann['typeAnnonce'], + 'texteRectificatif'=>$ann['corrTexteRectificatif'], + //'texteAnnonce'=>$ann['annonce'], + 'dateEffet'=>$dateEffet, + 'dateJugement'=>$ann['dateJugement'], + /// d.dateDebutActivite, d.dateCessationActivite, d.dateJugement', + 'dateFin'=>$ann['dateFinObservation'], + 'montantVente'=>trim($ann['VenteMt'].' '.$ann['VenteDev']), + 'libFJ'=>$ann['FJ'], + 'codFJ'=>$this->iBodacc->getCodeFormeJur($ann['FJ']), + 'capital'=>$ann['Capital'], + 'capitalDev'=>$ann['CapitalDev'], + 'raisonSociale'=>$ann['raisonSociale'], + 'nomCommercial'=>$ann['nomCommercial'], + 'sigle'=>$ann['sigle'], + 'adresse'=>$adresseAnn, + 'dateInsertionSD'=>$ann['dateInsert'], + 'evenements'=>$tabRetEven, + 'complement'=>$ann['complement'], + 'deleted' => $ann['deleted'], + ); + + if ($idAnnonce<>0 || $allTextes) + $tabRet[$k]['texteAnnonce']=$ann['annonce']; + } + } + } + + /** On recherche dans les annonces passées **/ + if ($idAnnonce==0 || $idAnnonce<0) + { + $iDbHisto=new WDB('historiques'); + $tabTmp=array( 10=>'4000', // Création d'entreprise + 11=>'4000', + 13=>'4000', + 14=>'4000', + 15=>'4000', + 16=>'4000', + 17=>'4200', // Création d'établissement + 18=>'4200', + 19=>'4200', + 20=>'5999', // ou 5700 en fonction du code xxx + 21=>'5999', + 22=>'5999', + 24=>'5999', + 25=>'5999', + 30=>'2500', // Confirmation Ets + 31=>'2318', + 32=>'2318', + 33=>'2318', + 34=>'2318', + 35=>'2318', + 36=>'2318', + 37=>'2800', // Loc. Gérance recue + 38=>'2860', // Loc. Gérance donnée + 39=>'2318', + 40=>'6700', // Radiation + 41=>'2202', // Dissolution + 42=>'2885', // Fin location gérance + 51=>'1209', // Règlement Judiciaire + 52=>'1200', // Redressement Judiciaire + 53=>'1207', // Règlemement amiable + //53=> Conciliation ???????????????????????????????????????? + 56=>'1310', // Procédure d'Insolvabilité Européenne + 57=>'1100', // Jugement de sauvegarde + 58=>'1101', // Plan de sauvegarde + 59=>'1506', // Rectif ou Annulation RJ + 60=>'1305', // Redr.& liq.Judiciaire + 61=>'1603', // Liquidation de Biens + 62=>'1305', + 63=>'1600', // Faillite personnelle + 64=>'1601', // Interdiction de gérer + 65=>'1305', + 66=>'1306', // Liquidation Judiciaire Simplifiée + 69=>'1506',//Rectif ou Annul.LJ + 70=>'1550', // Suites de jugements + 71=>'1550', // Suite reglement/L + 72=>'1550', // Suite redressement/L + 73=>'1550', // Susp.Provis.pours. ????????????????????????????????????????? + 74=>'1505', // Appel de jugement + 75=>'1407', // Modif. de Plan + 76=>'1502', // Extinction Passif + 77=>'1210', // Production + 78=>'1204', // Dépôt des créances + 79=>'1503', // Cloture insuf.Actif + 92=>'1450', //Cessation paiement ?? + ); + $tabTmp2=array( ''=>'2318', + 'a'=>'2308', // Chg de dénomination(RS,Ens,Sigle) + 'b'=>'2300', // Changement d'Adresse + 'c'=>'2101', // Chg.Capital/Cess.apport de parts + 'd'=>'2315', // Changement de Dirigeants + 'e'=>'2313', // Mod Act/obj.soc./Cess./Mise somm. + 'f'=>'2307', // Changement de Forme juridique + 'g'=>'2318', // Opération sur Participations + 'h'=>'2725', // Fusion Absorption + 'i'=>'2318', // Mod.garantie financière/Caution + 'j'=>'2401', // Changement de régime matrimonial + 'k'=>'2319', // Non dissolution anticipée + 'l'=>'2318', // Non dissolution anticipée + 'm'=>'2318', // Dissolution anticipée (ou non) + 'n'=>'2303', // Mod.date cloture exercice social + 'o'=>'2300;2101', // Mod.Adresse + Capital + 'p'=>'2300;2315', // Mod.Adresse + Dirigeants + 'q'=>'2300;2313', // Mod.Adresse + Activité + 'r'=>'2300;2307', // Mod.Adresse + F.Juridique + 's'=>'2101;2315', // Modification Capital + Dirigeants + 't'=>'2101;2313', // Modification Capital + Activité + 'u'=>'2101;2307', // Mod.Capital + Forme Juridique + 'v'=>'2315;2313', // Mod.Dirigeants + Activité + 'w'=>'2315;2307', // Mod.Dirigeants + Forme Juridique + 'x'=>'2313;2307', // Mod.Activité + Forme Juridique + 'y'=>'2318', // Changement de Dirigeants ? + 'z'=>'2318', // + //'K'=> + ); + + if ($idAnnonce<0) { + $idAnnonce=abs($idAnnonce); + $strIdAnn=" AND e.ANBASE=$idAnnonce "; + } else + $strIdAnn=''; + if ($rubrique=='P') $strIdAnn=" AND e.E1GSIR NOT IN(340460104) AND e.CODEVE BETWEEN 50 AND 79 ";//AND e.DATE>=".((date('Y')*1)-10).''.date('md'); + elseif ($rubrique=='PH')$strIdAnn=" AND e.CODEVE BETWEEN 50 AND 79 "; + elseif ($rubrique=='R') $strIdAnn=" AND e.CODEVE BETWEEN 40 AND 42 "; + elseif ($rubrique=='L') $strIdAnn=" AND e.CODEVE IN(37,42) "; + elseif ($rubrique=='G') $strIdAnn=" AND e.CODEVE=38 "; + elseif ($rubrique=='BODA') $strIdAnn=" AND e.JAL=1 "; + elseif ($rubrique=='BODB') $strIdAnn=" AND e.JAL=200 "; + elseif (is_array($rubrique)) { + $tabCodEve=$tabCodRol=array(); + foreach ($rubrique as $codeEvenTmp) { + $codRet=array_search($codeEvenTmp, $tabTmp2); // Ne gère pas les ; de tabtmp2 + if ($codRet) $tabCodRol[]=$codRet; + else { + $tabCodEve[]=array_search($codeEvenTmp, $tabTmp)*1; + } + } + $strIdAnn=''; + $tabCodEve=array_unique($tabCodEve); + $tabCodRol=array_unique($tabCodRol); + if (count($tabCodEve)>0) + $strIdAnn.=' AND e.CODEVE IN('.implode(',',$tabCodEve).') '; + if (count($tabCodRol)>0) + $strIdAnn.=" AND e.ROLE IN('".implode("','",$tabCodRol)."') "; + //sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnoncesLegales($siren, idAn=$idAnnonce, rubrique=$rubrique, verif=$forceVerif, txt=$allTextes)", print_r($rubrique, true).EOL.$strIdAnn); + /* + if (!$codRet) { + $codRet=array_search($codeEvenTmp, $tabTmp)*1; + $strIdAnn=" AND e.CODEVE=$codRet "; + //sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnoncesLegales($siren, idAn=$idAnnonce, rubrique=$rubrique, verif=$forceVerif, txt=$allTextes)", print_r($rubrique, true)); + } else + $strIdAnn=" AND e.ROLE='$codRet' "; + }*/ + //$strIdAnn=$tabCodRet + } + + // On ne part pas dans l'histo dans certains cas... + if ($rubrique<>'V' && $rubrique<>'D' && $rubrique<>'A' && $rubrique<>'C' && $rubrique<>'BODC') { + $bodaccHisto=$iDbHisto->select( + 'texte x, entrep e',//.codEven Code évènement du mouvement Bodacc libEven ', + 'e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt/*, t.triNom, t.triSiret*/', + "e.E1GSIR=$siren AND e.ANBASE=x.annonceNum /*AND e.CODTRI=t.triCode*/ $strIdAnn AND e.DATE BETWEEN 19890101 AND 20041231 GROUP BY e.ANBASE ORDER BY e.DATE DESC", false, MYSQL_ASSOC); + if (count($bodaccHisto)>0) { + foreach ($bodaccHisto as $ann) { + if ($ann['DATE']<19960101 && $ann['E1GSIR']<>$ann['SIREN']) continue; + $k++; + //if ($ann['DATE']<19920101) break; + //if ($ann['DATE']>20051231) continue; + if ($ann['JAL']==1) $Bodacc_Code='BODA'; + elseif ($ann['JAL']==200) $Bodacc_Code='BODB'; + + if ($ann['CODEVE']>49 && $ann['CODEVE']<80) $procol=true; + + if ($ann['CODEVE']<20) $rub='creations'; // 4xxx + elseif ($ann['CODEVE']<=25) $rub='ventes'; // 5xxx + elseif ($ann['CODEVE']<40) $rub='mmd'; // 2xxx + elseif ($ann['CODEVE']<42) $rub='radiations'; // 6xxx + elseif ($ann['CODEVE']<50) $rub='mmd'; // 2xxx + elseif ($ann['CODEVE']<80) $rub='procol'; // 1xxx + $tabEvens=array(); + $newCodeEven=$tabTmp[$ann['CODEVE']]; + if ($newCodeEven*1==2318) { + $tabNewEven=@explode(';', $tabTmp2[$ann['ROLE']]); + if (count($tabNewEven)>0) { + foreach ($tabNewEven as $newCodeEven) + $tabEvens[]=array('CodeEven'=>$newCodeEven,'LibEven'=>$this->iBodacc->getEvenement($newCodeEven)); + } else + $tabEvens[]=array('CodeEven'=>$newCodeEven,'LibEven'=>$this->iBodacc->getEvenement($newCodeEven)); + } else { + $tabEvens[]=array('CodeEven'=>$newCodeEven,'LibEven'=>$this->iBodacc->getEvenement($newCodeEven)); + if (($this->dureePlan==0 || $this->dureePlan==120) && $ann['CODEVE']==75) { // Modification de plan + $this->debutPlan=$ann['DATE']; // SSAAMMJJ + if (preg_match('/dur.e(?:.*)plan(?:.*)(\d+)\s+ans?/Uis', $ann['annonceTxt'], $matches)) { + $this->dureePlan=$matches[1]*12; // 10 ans = 120 mois + } + if ($this->dureePlan<1 || $this->dureePlan>120) { + if (($fj==16 || $fj==1600 || // Exploitant agricole + $fj==63 || $fj==6316 || $fj==6317 || $fj==6318 || // Société coopérative agricole + $fj==5431 || $fj==5432 || $fj==5531 || $fj==5532 || // SMIA, SICA + $fj==5631 || $fj==5632 || $fj==6532 || + $fj==6533 || $fj==6534 || $fj==6535 || // GAEC, GFA, Gpt Agricole Foncier + $fj==6597 || $fj==6598) /*&& $this->dureePlan>180*/) + $this->dureePlan=180; // 15 ans + else + $this->dureePlan=120; // 10 ans = 120 mois + //sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Annonce de Plan Récent sur $siren sans durée", print_r($ann, true).EOL.print_r($matches, true)); + } + $this->finPlan=WDate::period2Days($this->debutPlan, $this->dureePlan.' mois'); + //sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Annonce de Plan Histo sur $siren se terminant le $finPlan (durée=$dureePlan mois, début le $debutPlan)", print_r($ann, true).EOL.print_r($matches, true)); + } + } + // Recherche du capital et de la FJ dans le texte histo + if ( ($ann['CODEVE']>=10 && $ann['CODEVE']<20) || + ($ann['CODEVE']>=30 && $ann['CODEVE']<42) || + ($ann['CODEVE']>=51 && $ann['CODEVE']<80) ) { + // Recherche du capital + if (preg_match('/Capital(?:.|)\:(.*)(eur.|f|livre)/Uis', $ann['annonceTxt'], $matches)) {// && $tabInsee['CJ']>1999 && $tabInsee['CJ']<7000) + $capital=trim(strtr($matches[1],array(' '=>'', ',00 '=>'', '.00 '=>'')))*1; + if (substr(strtoupper($matches[2]),0,3)=='EUR') + $capitalDev='EUR'; + elseif (substr(strtoupper($matches[2]),0,3)=='LIV') + $capitalDev='GBP'; + else + $capitalDev='FRF'; + } else + $capital=$capitalDev=''; + // Recherche de la forme juridique + if (preg_match('/Forme(?:.|)\:(.*)(Capital|Adresse|Activit.|Administration|Commentaire)(?:.|)\:/Uis', $ann['annonceTxt'], $matches)) {// && $tabInsee['CJ']>1999 && $tabInsee['CJ']<7000) + $libFJ=trim($matches[1]); + } + } + + $tabRet[$k]=array( + 'id'=>-$ann['ANBASE'], + 'BodaccCode'=>$Bodacc_Code, + 'BodaccNum'=>$ann['NOBOD'], + 'NumAnnonce'=>$ann['NOANN'], + 'DateParution'=>substr($ann['DATE'],0,4).'-'.substr($ann['DATE'],4,2).'-'.substr($ann['DATE'],6,2), + 'Departement'=>$ann['DEPT'], + 'Tribunal'=>$this->iBodacc->getTribunalNom['CODTRI'], //$ann['triNom'], + 'TribunalSiret'=>$this->iBodacc->getTribunalSiret['CODTRI'],//$ann['triSiret'], + 'Rubrique'=>$rub, + 'typeAnnonce'=>'Insertion',/** @todo à GERER $ann['SSCODE'],**/ + //'texteRectificatif'=>$ann['corrTexteRectificatif'], + // 'texteAnnonce'=>$ann['annonceTxt'], + 'dateEffet'=>substr($ann['DATE'],0,4).'-'.substr($ann['DATE'],4,2).'-'.substr($ann['DATE'],6,2), + 'dateJugement'=>substr($ann['DATE'],0,4).'-'.substr($ann['DATE'],4,2).'-'.substr($ann['DATE'],6,2), 'dateFin'=>'', + 'montantVente'=>'', + 'libFJ'=>$libFJ, + 'codFJ'=>$this->iBodacc->getCodeFormeJur($libFJ), + 'capital'=>$capital, + 'capitalDev'=>$capitalDev, + 'raisonSociale'=>'',//$ann['raisonSociale'], + 'nomCommercial'=>'',//$ann['nomCommercial'], + 'sigle'=>'',//$ann['sigle'], + 'adresse'=>'',//$adresseAnn, + 'dateInsertionSD'=>'', + 'evenements'=>$tabEvens, + ); + if ($idAnnonce<>0 || $allTextes) + $tabRet[$k]['texteAnnonce']=$ann['NOANN'].' - '.$ann['annonceTxt']; + } + } + } + } + + //@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnonceProcol Debug 5 sur $siren", print_r($tabRet,true)); + + // On ne cherche pas de PROCOL + récente si on est en visualisation d'annonce Bodacc Classique + if ($idAnnonce>=1 || $idAnnonce<0) return $tabRet; + + // Si je n'ai pas d'annonce Bodacc de procol on vérifie dans la table de collecte + // Si annonce Bodacc de Procol et pas de Vérif Forcée chez un partenaire alors on affiche la collecte + /* if (!$procol || ($procol && !$forceVerif)) {*/ + //@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnonceProcol Debug avMerge sur $siren", print_r($tabRet,true)); + $tabTmp=$this->getProColPart($siren, $rubrique, $forceVerif, $idAnnonce, $fj); + $tabRet=array_merge($tabTmp, $tabRet); + // } + // @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnonceProcol Debug apMerge sur $siren", print_r($tabRet,true)); + + /** On vérifie si la société n'est pas in bonis pour les raisons suivantes : + ** 1502 : Clôture de la procédure pour extinction du passif + **/ + if ($rubrique=='P') { + $tabJugements=array(); + foreach ($tabRet as $i=>$ann) { + $tabJugements[$ann['dateJugement']]=$ann['evenements'][0]['CodeEven']; + } + // Si plan recherche des annonces suivantes + if ($this->dureePlan>0) { + ksort($tabJugements); + // Tableau chronologique des dates de jugement ==> code jugement + reset($tabJugements); + foreach ($tabJugements as $dateJuge=>$codeJuge) { + if ($dateJuge>$this->debutPlan & ( + ($codeJuge>=1100 && $codeJuge<=1101)|| // Sauvegarde + ($codeJuge>=1200 && $codeJuge<=1202)||$codeJuge==1211|| // RJ + ($codeJuge>=1300 && $codeJuge<=1313)|| // LJ + ($codeJuge>=1500 && $codeJuge<=1504) ) ) // Cloture + // Si plan suivi de SV, RJ, LJ ou clôture alors pas de plan + $this->dureePlan=0; + } + } + + // Tableau ante-chronologique des dates de jugement ==> code jugement + krsort($tabJugements); + reset($tabJugements); + + $tabNoProcol=array(); + $tmp=$this->iDb->select('tabEvenements', 'codEven,affProcol', 'affProcol>0', false, MYSQL_ASSOC); + foreach ($tmp as $tmp2) + $tabNoProcol[$tmp2['codEven']]=$tmp2['affProcol']; + + if (@array_key_exists(current($tabJugements), $tabNoProcol)) { + // Ce code jugement Procol n'appel pas forcément l'indicateur : SituationJuridique=P +// sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnonceProcol sur $siren (avant le SWITCH)", print_r($tabNoProcol, true)); + switch($tabNoProcol[current($tabJugements)]) { + case 1: // PAS DE MENTION DE LA PROCOL + //sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnonceProcol sur $siren (cas 1)", print_r($tabNoProcol, true)); + $tabRet=array(); + break; + case 2: // Ne pas mentionner la procol si CJ=1xxx + //$tabId=$this->getIdentiteLight($siren); + if (substr($tabId['FJ'],0,1)*1==1) { + //sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnonceProcol sur $siren (cas 2a)", print_r($tabNoProcol, true)); + $tabRet=array(); + } elseif ($tabId['Actif']*1>0 && substr($tabId['FJ'],0,1)*1<>9 ) { + $derProcol =str_replace('-','',key($tabJugements))*1; + $maxLatence=date('Ymd',mktime(0,0,0,(substr($derProcol,4,2)*1)+1,substr($derProcol,6,2),substr($derProcol,0,4))); + if (date('Ymd')>$maxLatence) { + sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "Vérifier la Procédure Collective sur $siren (cas 2b)", "L'entreprise, siren $siren, fait l'objet d'une clôture de procédure collective de type ".current($tabJugements)." alors qu'elle est encore active !".EOL."Merci de vérifier et de supprimer la procédure le cas échéant !"); + $tabRet=array(); + }/* + $iRncs=new MRncs(); + $tabId2=$iRncs->getInfosEntrep($siren); + if ($tabId2['siren']==$siren) + $tabId2['actif']*/ + } + break; + case 3: // Pas Procol si actif RCS + //$tabId=$this->getIdentiteLight($siren); + if ($tabId['Actif']*1>0) { + sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "MInsee::getAnnonceProcol sur $siren (cas 3)", print_r($tabNoProcol, true)); + $tabRet=array(); + } + break; + case 4: // Le dernier jugement est un appel => Procol Suspendu + $this->appelJugement=true; + break; + } + } + + if (count($tabRet)>0) { + $derProcol=str_replace('-','',key($tabJugements))*1; + $dateTropAncienne=(date('Ymd')*1)-120000; + if ($derProcol<$dateTropAncienne) { + //$tabId=$this->getIdentiteLight($siren); + if ($tabId['Actif']*1>0) { + /** Procédure trop ancienne **/ + $derPr=WDate::dateT('Ymd','d/m/Y',$derProcol); + @sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "Vérifier la Procédure Collective sur $siren (cas 5)", "L'entreprise, siren $siren, fait l'objet d'une clôture de procédure collective de type ".current($tabJugements)." en date du $derPr alors que cela fait plus de 12 ans !".EOL."Merci de vérifier et de supprimer la procédure le cas échéant !".EOL.print_r($tabBilans,true).EOL."Liste des derniers jugements :".EOL.print_r($tabJugements,true)); + $tabRet=array(); + } + } elseif ((current($tabJugements)>=1300 && current($tabJugements)<=1313 && current($tabJugements)!=1310) || + (current($tabJugements)>=1500 && current($tabJugements)<=1504)) { + /** En Procol mais présence d'une annonce de cloture ou LJ + avec Bilan publié ultérieurement + **/ + $mBil=new MBilans($siren); + $tabBilans=$mBil->listeBilans($accesDist); + $derExercice=0; + + foreach ($tabBilans as $idx=>$bilan) + if ($bilan['dateExercice']>$derExercice) $derExercice=$bilan['dateExercice']; + + if ($derExercice>$derProcol) { + $derEx=WDate::dateT('Ymd','d/m/Y',$derExercice); + $derPr=WDate::dateT('Ymd','d/m/Y',$derProcol); + @sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "Vérifier la Procédure Collective sur $siren (cas 4)", "L'entreprise, siren $siren, fait l'objet d'une clôture de procédure collective de type ".current($tabJugements)." en date du $derPr alors que le dernier bilan publié date du $derEx !".EOL."Merci de vérifier et de supprimer la procédure le cas échéant !".EOL.print_r($tabBilans,true).EOL."Liste des derniers jugements :".EOL.print_r($tabJugements,true)); + $tabRet=array(); + } + } + } + } elseif ($rubrique=='D' && count($tabRet)>0) { + $tabJugements=array(); + foreach ($tabRet as $i=>$ann) { + $tabJugements[$ann['DateParution']]=$ann['evenements'][0]['CodeEven']; + } + // Tableau ante-chronologique des dates de jugement ==> code jugement + krsort($tabJugements); + reset($tabJugements); + + $mBil=new MBilans($siren); + $tabBilans=$mBil->listeBilans($accesDist); + $derExercice=0; + $derProcol=str_replace('-','',key($tabJugements))*1; + foreach ($tabBilans as $idx=>$bilan) + if ($bilan['dateExercice']>$derExercice) $derExercice=$bilan['dateExercice']; + if ($derExercice>$derProcol) { + $derEx=WDate::dateT('Ymd','d/m/Y',$derExercice); + $derPr=WDate::dateT('Ymd','d/m/Y',$derProcol); + @sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "MInsee::getAnnonceProcol Dissolution sur $siren (cas 4)", "L'entreprise, siren $siren, fait l'objet d'une dissolution de type ".current($tabJugements)." en date du $derPr alors que le dernier bilan publié date du $derEx !".EOL."Merci de vérifier et de supprimer le code évènement le cas échéant !".EOL.print_r($tabBilans,true).EOL."Liste des dernieres annonces :".EOL.print_r($tabJugements,true)); + $tabRet=array(); + } + } + //@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnonceProcol Debug Fin sur $siren", print_r($tabRet,true)); + return $tabRet; + } + + /** + * Retourne les annonces du bulletin des annonces légales officielles + * @param string $siren + * @param int $idAnnonce + * @param int $offset + * @param int $lignes + * @return array + */ + function getAnnoncesBalo($siren, $idAnnonce=0, $offset=0, $lignes=100) + { + $siren=$siren*1; + + if ($siren<001000000) $siren='000'.$siren; + elseif ($siren<010000000) $siren='00'.$siren; + elseif ($siren<100000000) $siren='0'.$siren; + + $strIdAnn=''; + $tabRet=array(); + + if ($idAnnonce>0) { + //$idBalo=//.$tabBalo['Num_Affaire'].','.$tabBalo['Num_Parution']; + $tmp=explode('.', $idAnnonce); + //if (strlen($tmp[0])==9 && is_numeric($tmp[0])) $rcs=$tmp[0]; + if (is_numeric($tmp[0])) $num=$tmp[0]; + if (is_numeric($tmp[1])) $par=$tmp[1]; + //$idBaloPdf=basename($tabBalo['Url_Annonce_Pdf']); + $strIdAnn=" AND Num_Affaire='$num' AND Num_Parution='$par' "; + //$idAnnonce + } + + $mBalo=new MBalo(); + + $bodacc=$this->iDb->select('balo', "Societe_Rcs, Categorie, Num_Affaire, Date_Parution, Num_Parution, Url_Annonce_Html, Url_Annonce_Pdf, Annonce_Html, dateInsert", "Societe_Rcs='$siren' AND Date_Parution>='2004-01-01' $strIdAnn ORDER BY Date_Parution DESC, Num_Affaire LIMIT $offset, $lignes", false, MYSQL_ASSOC); + // $RP=mysql_select('balo', " ", "Societe_Rcs='$rcs' "); + $k=0; + if (count($bodacc)>0) { + foreach ($bodacc as $k=>$ann) { + $tabRetEven=array(); + $tabRetEven[]=array('CodeEven'=>$mBalo->getLibEven($ann['Categorie']), + 'LibEven'=> $ann['Categorie']); + + $tabRet[$k]=array( 'id'=>$ann['Num_Affaire'].'.'.$ann['Num_Parution'], + 'BodaccCode'=>'BALO', + 'BodaccNum'=>$ann['Num_Parution'], + 'NumAnnonce'=>$ann['Num_Affaire'], + 'DateParution'=>$ann['Date_Parution'], + //'Departement'=>'',$ann['Tribunal_Dept'], + //'Tribunal'=>$ann['triNom'], + //'TribunalSiret'=>$ann['triSiret'], + //'Rubrique'=>$ann['Rubrique'], + 'typeAnnonce'=>'Insertion', + 'dateInsertionSD'=>$ann['dateInsert'], + 'evenements'=>$tabRetEven, + 'Lien_Annonce_Pdf'=>basename($ann['Url_Annonce_Pdf']), + ); + if ($idAnnonce<>0) $tabRet[$k]['texteAnnonce']=strtr( preg_replace('//Uis', '', + preg_replace('/( class=".*")/ie', ' ', $ann['Annonce_Html'])), array(' '=>' ', ''=>'', ''=>'')); + } + } + return $tabRet; + } + + /** + * Retourne le nombre d'annonce Balo pour un siren + * @param string $siren + * @return int + */ + function getAnnoncesBaloCount($siren) + { + $bodacc = $this->iDb->select('balo', "count(*) AS nb", "Societe_Rcs='$siren' AND Date_Parution>='2004-01-01' ORDER BY Date_Parution DESC, Num_Affaire", false, MYSQL_ASSOC); + $nb = 0; + if (count($bodacc)>0) { + $nb = $bodacc[0]['nb']; + } + return $nb; + } + + /** + * Retourne les annonces du bulletin officiel des annonces de marché publique + * @param string $siren + * @param string $idAnnonce + * @param string|array $type A:Avis d'attribution, M:Avis de marché + * @param int $offset + * @param int $lignes + * @return Ambigous multitype:multitype:string Ambigous , unknown> + */ + function getAnnoncesBoamp($siren, $idAnnonce='', $type=array('A', 'M'), $offset=0, $lignes=100) + { + $siren=$siren*1; + + if ($siren<001000000) $siren='000'.$siren; + elseif ($siren<010000000) $siren='00'.$siren; + elseif ($siren<100000000) $siren='0'.$siren; + + $strIdAnn=''; + $idA=0; + $tabRet=array(); + + $mBoamp=new MBoamp(); + + if ( is_string($type) && $type=='A' || is_array($type) && in_array('A',$type) ) { + + /** Recherche dans les avis d'attribution **/ + if ($idAnnonce<>'') { + $tmp=explode('.', $idAnnonce); + $idA=$tmp[1]; + //if (strlen($tmp[0])==9 && is_numeric($tmp[0])) $rcs=$tmp[0]; + if ($tmp[0]=='A') $strIdAnn=" AND l.id='$idA' "; + elseif ($tmp[0]=='O') $strIdAnn=""; + } + + $bodacc = $this->iDb->select( + 'boamp_lots l, boamp b, boamp_detail d', + "l.id, l.idAnn, l.Boamp_Code, l.Boamp_Rubrique, b.Boamp_Rubrique_Lib, b.typeAnnonce, l.Boamp_Date_Parution, b.Boamp_Num, b.Boamp_Annee_Parution, b.Num_AnnoncePre, b.Num_Annonce, b.Boamp_Dept, b.annonce, l.num, l.`desc` AS description, l.nom, d.raisonSociale, l.montantTxt, sum(l.montant) AS montant, l.montantAnMin, l.montantAnMax, l.trancheCond, l.trancheFerme, l.dateAttrib, l.intitule, l.nomenclature, l.objets, l.cpv, l.cpvComp, l.volume, l.execution, l.livraison, l.dureeJours, l.dureeMois, l.dateDeb, l.dateFin, l.dateInsert, d.titre, d.objet, d.titreMarche, d.typeObjetMarche, d.objetAutre, d.autres", + "l.siren='$siren' AND l.idAnn=b.id AND l.idAnn=d.id $strIdAnn GROUP BY b.id ORDER BY l.Boamp_Date_Parution DESC LIMIT $offset,$lignes", false, MYSQL_ASSOC + ); + + $k=0; + if (count($bodacc)>0) { + foreach ($bodacc as $k=>$ann) { + $tabRetEven=array(); + /*montantTxt, l.montant, l.montantAnMin, , l.trancheCond, l.trancheFerme, l.dateAttrib*/ + if ($ann['nom']<>'') $strMontant=' "'.strtoupper($ann['raisonSociale']).'"'; + + if ($ann['montant']*1>0) $strMontant.=' ('.number_format($ann['montant'], 2, ',', ' ').' EUR)'; + elseif ($ann['montantTxt']<>'') $strMontant.=' ('.$ann['montantTxt'].')'; + elseif ($ann['montantAnMin']<>'' && $ann['montantAnMax']) + $strMontant.=' ('.$ann['montantAnMin'].' à '. + $ann['montantAnMax'].')'; + elseif ($ann['trancheCond']<>'' && $ann['trancheFerme']) + $strMontant.=' ('.$ann['trancheCond'].' / '. + $ann['trancheFerme'].')'; + else $strMontant.=''; + $tabRetEven[]=array('CodeEven'=>$mBoamp->getCodEvenSd($ann['Boamp_Rubrique']), + 'LibEven'=>$mBoamp->getLibEvenBoamp($ann['Boamp_Rubrique'], $ann['Boamp_Rubrique_Lib']).$strMontant); + // Axxx pour lot attribué ou Oxxx pour Organisation + if ($ann['Num_AnnoncePre']<>0) $numAnn=$ann['Num_AnnoncePre'].'-'.$ann['Num_Annonce']; + else $numAnn=$ann['Num_Annonce']; + if ($ann['Boamp_Code']=='MAPA') + $lienMapa='http://www.boamp.fr/index.php?action=avis&num_parution=MAPA&num_annonce='.$ann['Num_AnnoncePre'].'-'.$ann['Num_Annonce'].'&total=500&_s=0&indice=0';//&affichage_avis=officiel'; + else { + $lettre = substr($ann['Boamp_Code'],-1); + $annee = $ann['Boamp_Annee_Parution']; + $num = sprintf("%04d",$ann['Boamp_Num']); + $numPar=$lettre.$annee.$num; + $lienMapa='http://www.boamp.fr/index.php?action=avis&num_parution='.$numPar.'&num_annonce='.$ann['Num_Annonce'].'&total=500&_s=0&indice=0'; + } + $infosComp=''; + $objetMarche=trim($ann['objet'].' '.$ann['objetAutre'].' '.$ann['autres']); + //titre, titreMarche, typeObjetMarche + $tabRet[$k]=array( 'id'=>'A.'.$ann['id'], + 'BodaccCode'=>$ann['Boamp_Code'], + 'BodaccNum'=>$ann['Boamp_Num'], + 'NumAnnonce'=>$numAnn, + 'DateParution'=>$ann['Boamp_Date_Parution'], + 'Departement'=>$ann['Boamp_Dept'], + //'Tribunal'=>$ann['triNom'], + //'TribunalSiret'=>$ann['triSiret'], + //'Rubrique'=>$ann['Boamp_Rubrique_Lib'], + 'typeAnnonce'=>$ann['typeAnnonce'], + 'dateInsertionSD'=>$ann['dateInsert'], + 'Montant'=>$ann['montant'], + 'Organisme'=>strtoupper($ann['raisonSociale']), + 'Objet'=>$objetMarche, + 'evenements'=>$tabRetEven, + 'infosComp'=>$infosComp, // Non géré + 'Lien_Annonce_Html'=>$lienMapa, // Non géré + ); + /**/ + if ($idA<>0) + if ($ann['Boamp_Code']=='MAPA') + $tabRet[$k]['texteAnnonce']=$ann['annonce']; + else + $tabRet[$k]['texteAnnonce']= + strtr( preg_replace('//Uis', '', + preg_replace('//Uis', '', + preg_replace('/( class=".*")/ie', ' ', $ann['annonce']))), + array(' '=>' ', ''=>'', ''=>'', '

    '=>'
    ') + ); + } + } + } + + if ( is_string($type) && $type=='M' || is_array($type) && in_array('M',$type) ) { + // Recherche dans les avis de marchés + if ($idAnnonce<>'') { + $tmp=explode('.', $idAnnonce); + $idA=$tmp[1]; + //if (strlen($tmp[0])==9 && is_numeric($tmp[0])) $rcs=$tmp[0]; + if ($tmp[0]=='A') $strIdAnn=" AND d.id='$idA' "; + elseif ($tmp[0]=='O') $strIdAnn=""; + } + + $bodacc=$this->iDb->select( + 'boamp b, boamp_detail d', + "d.id, d.Boamp_Code, d.Boamp_Rubrique, b.Boamp_Rubrique_Lib, b.typeAnnonce, d.Boamp_Date_Parution, b.Boamp_Num, b.Boamp_Annee_Parution, b.Num_AnnoncePre, b.Num_Annonce, b.Boamp_Dept, b.annonce, titre AS description, d.raisonSociale, d.estimValeur AS montantTxt, d.estimValeurMin AS montantAnMin, d.estimValeurMax AS montantAnMax, objet, cpv_obj, cpv_comp, d.dateInsert", + "d.siren='$siren' AND d.id=b.id $strIdAnn GROUP BY b.id ORDER BY d.Boamp_Date_Parution DESC", + false, MYSQL_ASSOC + ); + + if (count($bodacc)>0) { + foreach ($bodacc as $k=>$ann) { + $id=$ann['id']; + $rub=$ann['Boamp_Rubrique']; + $tabRetEven=array(); + $strMontant=''; + if ($ann['objet']<>'') $strMontant.=' "'.$ann['objet'].'"'; + + if ($rub=='6' || // Avis d'attribution + $rub=='7' || // Avis en cas de transparence ex ante volontaire + $rub=='77' || // Avis d'attribution + $rub=='8' || // Avis d'attribution + $rub=='82' || // Rectificatif + $rub=='83' || // Rectificatif + $rub=='84' || // Avis d'attribution comportant des lots infructueux + $rub=='9' || // Résultat de marché + $rub=='92' || // Rectificatif + $rub=='93' || // Résultat de marché / Infructueux - Sans suite + $rub=='94' || // Résultat de marché / Résultat de marché comportant des lots infructueux + $rub=='96' || // Annulation - Rectificatif - Sans suite - Infructueux + $rub=='977' // Annulation - Rectificatif / Avis en cas de transparence ex ante volontaire + ) { + $tabTmp=$this->iDb->select( 'boamp_lots l', + "l.id, l.idAnn, l.Boamp_Code, l.Boamp_Rubrique, l.Boamp_Date_Parution, l.num, l.`desc` AS description, l.nom, l.montantTxt, l.montant, l.montantAnMin, l.montantAnMax, l.trancheCond, l.trancheFerme, l.dateAttrib, l.intitule, l.nomenclature, l.objets, l.cpv, l.cpvComp, l.volume, l.execution, l.livraison, l.dureeJours, l.dureeMois, l.dateDeb, l.dateFin", + "l.idAnn=$id", false, MYSQL_ASSOC); + foreach ($tabTmp as $k2=>$ann2) { + if ($ann2['nom']<>'') $strMontant.=' "'.strtoupper($ann2['nom']).'"'; + if ($ann2['montant']*1>0) $strMontant.=' ('.number_format($ann2['montant'], 2, ',', ' ').' EUR)'; + elseif ($ann2['montantTxt']<>'') $strMontant.=' ('.$ann2['montantTxt'].')'; + elseif ($ann2['montantAnMin']<>'' && $ann2['montantAnMax']) + $strMontant.=' ('.$ann2['montantAnMin'].' à '. + $ann2['montantAnMax'].')'; + elseif ($ann2['trancheCond']<>'' && $ann2['trancheFerme']) + $strMontant.=' ('.$ann['trancheCond'].' / '. + $ann['trancheFerme'].')'; + else $strMontant.=''; + } + } + $tabRetEven[]=array('CodeEven'=>$mBoamp->getCodEvenSd($ann['Boamp_Rubrique']), + 'LibEven'=>$mBoamp->getLibEvenBoamp($ann['Boamp_Rubrique'], $ann['Boamp_Rubrique_Lib']).$strMontant); + // Axxx pour lot attribué ou Oxxx pour Organisation + if ($ann['Num_AnnoncePre']<>0) $numAnn=$ann['Num_AnnoncePre'].'-'.$ann['Num_Annonce']; + else $numAnn=$ann['Num_Annonce']; + if ($ann['Boamp_Code']=='MAPA') + $lienMapa='http://www.boamp.fr/index.php?action=avis&num_parution=MAPA&num_annonce='.$ann['Num_AnnoncePre'].'-'.$ann['Num_Annonce'].'&total=500&_s=0&indice=0';//&affichage_avis=officiel'; + else { + $lettre = substr($ann['Boamp_Code'],-1); + $annee = $ann['Boamp_Annee_Parution']; + $num = sprintf("%04d",$ann['Boamp_Num']); + $numPar=$lettre.$annee.$num; + $lienMapa='http://www.boamp.fr/index.php?action=avis&num_parution='.$numPar.'&num_annonce='.$ann['Num_Annonce'].'&total=500&_s=0&indice=0'; + } + $infosComp=''; + $tabRet[$k]=array( 'id'=>'O.'.$id, + 'BodaccCode'=>$ann['Boamp_Code'], + 'BodaccNum'=>$ann['Boamp_Num'], + 'NumAnnonce'=>$numAnn, + 'DateParution'=>$ann['Boamp_Date_Parution'], + 'Departement'=>$ann['Boamp_Dept'], + //'Tribunal'=>$ann['triNom'], + //'TribunalSiret'=>$ann['triSiret'], + //'Rubrique'=>$ann['Boamp_Rubrique_Lib'], + 'typeAnnonce'=>$ann['typeAnnonce'], + 'dateInsertionSD'=>$ann['dateInsert'], + 'evenements'=>$tabRetEven, + 'infosComp'=>$infosComp, // Non géré + 'Lien_Annonce_Html'=>$lienMapa, // Non géré + ); + + if ($idA<>0) + if ($ann['Boamp_Code']=='MAPA') + $tabRet[$k]['texteAnnonce']=$ann['annonce']; + else + $tabRet[$k]['texteAnnonce']= + strtr( preg_replace('//Uis', '', + preg_replace('//Uis', '', + preg_replace('/( class=".*")/ie', ' ', $ann['annonce']))), + array(' '=>' ', ''=>'', ''=>'', '

    '=>'
    ') + ); + } + } + } + debugLog('I', "getAnnoncesBoamp(siren=$siren, idAnnonce=$idAnnonce, $idA)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); + return $tabRet; + } + + /** + * Nombre total d'annonces BOAMP + * @param string $siren + * @param string $type A:avis d'attribution, M:Avis de marché + */ + public function getAnnoncesBoampCount($siren, $type='') + { + $bodaccA = array(); + $bodaccM = array(); + if ( $type=='' || $type=='A' ) { + + /** Recherche dans les avis d'attribution **/ + $bodaccA=$this->iDb->select( + 'boamp_lots l, boamp b, boamp_detail d', + "l.id", + "l.siren='$siren' AND l.idAnn=b.id AND l.idAnn=d.id GROUP BY b.id ORDER BY l.Boamp_Date_Parution", + false, MYSQL_ASSOC + ); + } + if ( $type=='' || $type=='M') { + + /** Recherche dans les avis de marchés **/ + $bodaccM=$this->iDb->select( 'boamp b, boamp_detail d', + "d.id", + "d.siren='$siren' AND d.id=b.id GROUP BY b.id ORDER BY d.Boamp_Date_Parution DESC", + false, MYSQL_ASSOC + ); + + } + $nb = count($bodaccA) + count($bodaccM); + return $nb; + } + + function getAnnoncesAsso($siren, $idAnnonce=0, $offset=0, $lignes=100) + { + debugLog('I', "Début getAnnoncesAsso(siren=$siren, idAnnonce=$idAnnonce)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); + + $siretMin=$siren.'00000'; + $siretMax=$siren.'99999'; + $strIdAnn=''; + $tabRet=array(); + + if ($idAnnonce>0){ + $strIdAnn="id=$idAnnonce"; + } elseif (substr($siren,0,1)=='W' && $idAnnonce == 0) { + $strIdAnn = "Waldec='$siren'"; + } else { + $strIdAnn = "siren=$siren"; + } + + $bodacc=$this->iDb->select('asso', "id, Assoc_Nom, siren, nic, Waldec, Activite, Num_Annonce, Date_Parution, Num_Parution, Departement, Sous_Prefecture, Type_Annonce, Annonce_Html, Assoc_Objet, Assoc_Adresse, Assoc_NObjet, Assoc_AObjet, Assoc_NAdresse, Assoc_Fusion, Assoc_Annulation, Assoc_ANom, Assoc_NNom, Assoc_Date_Declaration, Assoc_Date_Declaration2, typeAnnonce, codEven, dateInsert", "$strIdAnn AND dateSuppr=0 ORDER BY Date_Parution DESC LIMIT $offset,$lignes", false, MYSQL_ASSOC); + + $k=0; + if (count($bodacc)>0) { + foreach ($bodacc as $k=>$ann) { + $tabEven=explode(';', $ann['codEven']); + $tabRetEven=array(); + if ($ann['typeAnnonce']<>'Insertion')//BODACC n°002 A du 04/01/2006. + $tabRetEven[]=array('CodeEven'=>'0000', + 'LibEven'=> $ann['typeAnnonce'].' de l\'annonce './*n°'. + $ann['corrNum_Annonce'].' BODACC n°'. + $ann['corrNumParution'].*/' du '. + WDate::dateT('Y-m-d','d/m/Y',$ann['corrDate_Parution'])/*.' (page '. + $ann['corrPage'].')'*/); + else { + if (trim($ann['codEven'])<>'') { + foreach ($tabEven as $even) + $tabRetEven[]=array('CodeEven'=>$even,'LibEven'=>$this->iBodacc->getEvenement($even)); + } + else { + $tabRetEven[]=array('CodeEven'=>0000,//$mAsso->getLibEven($ann['Categorie']), + 'LibEven'=> $ann['Type_Annonce']); + } + } + + // Rubrique + if (preg_match('/cr(é|e)ation/i', $ann['Type_Annonce'])) + $rub='creations'; + elseif (preg_match('/Dissolution/i', $ann['Type_Annonce'])) + $rub='radiations'; + else + $rub='mmd'; + // typeAnnonce + if (preg_match('/Annulation/i', $ann['Type_Annonce'])) + $type='Suppression'; + elseif (preg_match('/Rectif/i', $ann['Type_Annonce'])) + $type='Rectificatif'; + else + $type='Insertion'; + if (str_replace('-','',$ann['Date_Parution'])*1>=20070401) $dateInsert=$ann['Date_Parution']; + else $dateInsert=''; + + $tabRet[$k]=array( 'id'=>$ann['id'], + 'BodaccCode'=>'ASSO', + 'BodaccNum'=>$ann['Num_Parution'], + 'NumAnnonce'=>$ann['Num_Annonce'], + 'DateParution'=>$ann['Date_Parution'], + 'Departement'=>$ann['Departement'], + 'Tribunal'=>$ann['Sous_Prefecture'], + //'TribunalSiret'=>$ann['triSiret'], + 'Rubrique'=>$rub, + 'typeAnnonce'=>$type, + 'dateInsertionSD'=>$dateInsert, + 'evenements'=>$tabRetEven, + //'Lien_Annonce_Pdf'=>basename($ann['Url_Annonce_Pdf']), + ); + if ($idAnnonce<>0){ + /*if ( preg_match( "~(\x00[\x80-\xff]|[\x00-\x07][\x00-\xff]~", $ann['Annonce_Html'] ) ) + $tabRet[$k]['texteAnnonce']='utf8 : '.$ann['Annonce_Html']; + else */ + //$tabRet[$k]['texteAnnonce']=strip_tags(strtr(htmlentities($ann['Annonce_Html']),array('>'=>'>','&'=>'&','<'=>'<'))); + + if (mb_detect_encoding($ann['Annonce_Html']) == 'UTF-8'){ + $tmp = utf8_decode($ann['Annonce_Html']); + } else { + $tmp = $ann['Annonce_Html']; + } + $tabRet[$k]['texteAnnonce'] = $tmp; + } + } + } + debugLog('I', "Fin getAnnoncesAsso(siren=$siren, idAnnonce=$idAnnonce) : ".count($tabRet).' annonce(s)', __LINE__, __FILE__, __FUNCTION__, __CLASS__); + + return $tabRet; + } + + /** + * Nombre d'annonces association + * @param int $idAnnonce + * @param string $siren + */ + public function getAnnoncesAssoCount($siren, $idAnnonce = 0) + { + $strIdAnn = ''; + + if ($idAnnonce>0) { + $strIdAnn="id=$idAnnonce"; + } elseif (substr($siren,0,1)=='W' && $idAnnonce == 0) { + $strIdAnn = "Waldec='$siren'"; + } else { + $strIdAnn = "siren=$siren"; + } + + $bodacc=$this->iDb->select('asso', "COUNT(*) AS nb", "$strIdAnn AND dateSuppr=0", false, MYSQL_ASSOC); + $nb = 0; + if (count($bodacc)>0) { + $nb = $bodacc[0]['nb']; + } + return $nb; + } + + /** @todo $nic inutilisé pour l'instant **/ + function getIdentitePart($siren, $rs, $enseigne, $sigle, $nic=0, $refresh=false) { + $dateUpdate=0; + $lastYear=date('Ymd',mktime(0,0,0,date('m'),date('d'),date('Y')-1))*1; + $tabRet=array(); + + /** Chargement initial au cas ou la requête Coface plante **/ + $tabTmp=$this->iDb->select('infos_entrep', 'raisonSociale, isin, nscrl, tel, fax, web, mail, DATE(dateUpdate)*1 as dateUpdate', "siren=$siren", false, MYSQL_ASSOC); + $idComp=@$tabTmp[0]; + if (isset($idComp['raisonSociale'])) { + // L'entrep est en base infos_entrep + if ($idComp['web']<>'http://') $web=$idComp['web']; + else $web=''; + $tabRet=array( 'raisonSociale'=>$idComp['raisonSociale'], + 'isin'=>$idComp['isin'], + 'nscrl'=>$idComp['nscrl'], + 'tel'=>$idComp['tel'], + 'fax'=>$idComp['fax'], + 'web'=>$web, + 'mail'=>$idComp['mail'], + 'enCache'=>true, + ); + $dateUpdate=$idComp['dateUpdate']; + } + + // On ne rafraichie que si demandé et + // que la requête en base est trop ancienne et nscrl est vide ou tel ou web + if ($refresh && $dateUpdate<$lastYear && ($idComp['nscrl']==0 || $idComp['tel']=='') ) { + $timeout=20; + // La mise à jour ne se fera pas si lastMAJ<365 + /*$strUpdate='AND (DATEDIFF(NOW(),dateUpdate)<365 OR (nscrl<>0 AND DATEDIFF(NOW(),dateUpdate)>0))'; + $timeout=10; + $strUpdate='AND nscrl<>0 AND DATEDIFF(NOW(),dateUpdate)>0';*/ + $referer=''; + $url='http://www.cofacerating.fr/portail/entreprise_identite/identite.asp?ip=pagespro&lg=fr&nsiren='.$siren; + $tdeb=microtime(1); + $page=getUrl($url, '', '', $referer, false, 'www.cofacerating.fr', '', $timeout); + $duree=round(microtime(1)-$tdeb,3); + $this->body=$page['body']; + $this->codeRetour=$page['code']; + $this->header=$page['header']; + if ($this->codeRetour==408) + // Si timeout, on sort afin de ne pas écraser les données en base + return $tabRet; + + $tabRet['nscrl']=@getTextInHtml($this->body, '&nscrl=', '=','&'); + $strTmp=trim(str_replace(chr(160), ' ', html_entity_decode(utf8_encode(@getTextInHtml($this->body, ' Raison sociale
    ', '',''))))); + $tmp=explode('
    ', $strTmp); + $tabRet['raisonSociale']=trim($tmp[0]); + unset($tmp[0]); + $tabRet['adresse']=trim(strip_tags(implode(',', $tmp))); + + $tel=trim(@getTextInHtml($this->body, 'Téléphone
    ', '', '
    ')); + $fax=trim(@getTextInHtml($this->body, 'Télécopie
    ', '
    ', '')); + $web=trim(@getTextInHtml($this->body, '>Adresse internet
    ', '
    ')); + $mail=trim(@getTextInHtml($this->body, '')); + $bourse=trim(@getTextInHtml($this->body, 'Ville Bourse', 'class="tabval">', '')); + $tmp=explode('
    ', $bourse); + $isin=trim($tmp[0]); + $tabRet['bourseMarche']=trim($tmp[1]); + $tabRet['bourseVille']=trim($tmp[2]); + + /** On ne charge les valeurs tel, fax, web et mail que si non vides + **/ + if ($tel<>'') $tabRet['tel']=$tel; + if ($fax<>'') $tabRet['fax']=$fax; + if ($web<>'') $tabRet['web']=$web; + if ($mail<>'') $tabRet['mail']=$mail; + if (($tabRet['isin']<>'' || trim($tmp[0])<>'') && trim($tmp[0])<>$tabRet['isin']) { + if (trim($tmp[0])<>'' && $tabRet['isin']=='') + $tabRet['isin']=$isin; +// else +// @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getIdentitePart sur $siren ISIN différents", "Les codes ISIN du siren $siren sont différents en base et chez notre partenaire : ".$tabRet['isin'].' différent de '.trim($tmp[0]).EOL.print_r($tabRet, true)); + } elseif ($isin<>'') $tabRet['isin']=$isin; + + $tabRet['bourseIsin']=$tabRet['isin']; + + /* + $infosDispo=trim(@getTextInHtml($this->body, 'Liste Produits
    ', '

    ', 'Un secteur ou une région en France

    ')); + $tabTmp=explode('(.*)<\/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]; + elseif (substr($matches[2], 0, 6)=='bilan ') $this->tabBilans[]=substr($matches[2], 6,strlen($matches[2])-6); + }* + $tabRet['activite']=trim(str_replace(chr(160), ' ', html_entity_decode(utf8_encode(@getTextInHtml($this->body, 'Libellé code activité ', '', ''))))); + $tabRet['naf']=trim(@getTextInHtml($this->body, ''Administrateur judiciaire', + 'M'=>'Mandataire judiciaire', + 'H'=>'Huissier', + 'L'=>'Liquidateur', + 'R'=>'Représentant des Créanciers', + 'O'=>'Opposition', + 'U'=>'Curateur', + 'C'=>'Commissaire au plan', + 'S'=>'Syndic', + 'D'=>'Commissaire au concordat', + 'T'=>'Conciliateur', + 'V'=>'Avocat', + 'N'=>'Notaire', + 'J'=>'Juge Commissaire', + 'K'=>'Juge Commissaire Suppléant', + ); + + /** Date la plus ancienne acceptée pour les jugements collectés **/ + $debutForclusion=date('Ymd',mktime(0,0,0,date('m')-24,date('d'),date('Y'))); + + + if ($rubrique=='P' || + $rubrique=='PH') // Procédure collective + $strIdAnn=" AND a.typeEven BETWEEN 1000 AND 1999 AND a.typeEven NOT IN(1005, 1010, 1050, 1055, 1550) "; + elseif ($rubrique=='D') // Dissolution de la société + $strIdAnn=" AND a.typeEven IN (2202, 2203, 2204, 2210, 2211, 2212) "; + elseif ($rubrique=='A') // Absorption + $strIdAnn=" AND a.typeEven IN (2720, 2721) "; + elseif ($rubrique=='C' || $rubrique=='BODC') // Dépôt des comptes + $strIdAnn=" AND a.typeEven BETWEEN 3000 AND 3999 "; + elseif ($rubrique=='R') + $strIdAnn=" AND a.typeEven IN (2202, 2203, 2204, 2210, 2211, 2212) "; + elseif ($rubrique=='L') // Location gérance Locataire + $strIdAnn=" AND a.typeEven IN (2800, 2875, 2880, 2881, 2885, 2840) "; + elseif ($rubrique=='G') // Location gérance Propriétaire + $strIdAnn=" AND a.typeEven IN (2850, 2851, 2860, 2870) "; + elseif ($rubrique=='V') // Ventes/Cessions + $strIdAnn=" AND a.typeEven IN (5500, 5501, 5502, 5503, 5510, 5600, 5650) "; + elseif (is_array($rubrique) && count($rubrique)>0) { + $strIdAnn=" AND (a.typeEven IN (".implode(',',$rubrique).') OR '; + foreach ($rubrique as $codeEven) + $tabTmp[]=" a.typeEven LIKE '%$codeEven%' "; + $strIdAnn.=implode(' OR ',$tabTmp); + $strIdAnn.=')'; + } + //else return $tabRet; + + if ($idAnnonce<>0) $strIdAnn.= " AND a.id=".preg_replace('/^0\./','', $idAnnonce); + + //sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getProcolPart Deb $siren", print_r($tabRet,true)); + + /** Recherche des jugements enregistrés en base S&D **/ + $collecte=$this->iDb->select( 'annonces a, tribunaux t/*, etablissements e*/', + 'a.id, a.siren, a.typeEven, a.strEven, a.dateJugement, a.dateCessationPaiement, a.dateEffetFinP, a.numero, a.inter1type, a.inter1id, a.inter1nom, a.inter2type, a.inter2id, a.inter2nom, a.inter3type, a.inter3id, a.inter3nom, a.inter4type, a.inter4id, a.inter4nom, a.tribunal, a.montant, a.actionsNb, a.complement, a.nouvActivite, a.nouvDir, a.nouvAdr, a.nouvFJ, a.source, a.parutionIdJal, a.parutionNum, a.dateSource, a.annonce, a.dateInsert, t.triNom, t.triSiret, t.triCP, a.raisonSociale, a.adresse, a.codePostal, a.ville', + "a.siren=$siren AND a.tribunal=t.triCode /*AND a.siren=e.siren*/ $strIdAnn AND a.dateSuppr=0 GROUP BY a.siren, a.dateJugement, typeEven ORDER BY /*e.siege DESC, e.actif DESC,*/ a.dateJugement DESC", true, MYSQL_ASSOC); + /*sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getProcolPart Deb $siren", " +SELECT a.id, a.siren, a.typeEven, a.strEven, a.dateJugement, a.dateCessationPaiement, a.dateEffetFinP, a.numero, a.inter1type, a.inter1id, a.inter1nom, a.inter2type, a.inter2id, a.inter2nom, a.inter3type, a.inter3id, a.inter3nom, a.inter4type, a.inter4id, a.inter4nom, a.tribunal, a.montant, a.actionsNb, a.complement, a.nouvActivite, a.nouvDir, a.nouvAdr, a.nouvFJ, a.source, a.parutionIdJal, a.parutionNum, a.dateSource, a.annonce, a.dateInsert, t.triNom, t.triSiret, t.triCP, a.raisonSociale, a.adresse, a.codePostal, a.ville +FROM annonces a, tribunaux t +WHERE a.siren=$siren AND a.tribunal=t.triCode $strIdAnn AND a.dateSuppr=0 +GROUP BY a.siren, a.dateJugement, typeEven +ORDER BY a.dateJugement DESC".EOL.EOL.print_r($collecte,true));*/ + if (count($collecte)>0) { + foreach ($collecte as $k=>$ann) { + $dept=substr($ann['triCP'],0,2)*1; + $depotComptes=false; + if ($dept==97) $dept=substr($ann['triCP'],0,3)*1; + $adresse=''; + + /** Ajout des informations identitaires pour les annonces collecte avant Décembre 2008 **/ + if (trim($ann['raisonSociale'])=='' || trim($ann['adresse'])=='' || trim($ann['codePostal'])=='' || trim($ann['ville'])=='') { + $tabTmp=$this->getIdentiteLight($siren); + $ann['raisonSociale'] = $tabTmp['Nom']; + $ann['adresse'] = $tabTmp['Adresse']; + $ann['codePostal'] = $tabTmp['CP']; + $ann['ville'] = $tabTmp['Ville']; + } + $adresse.=ucfirst(strtolower($ann['adresse'])).', '; + + $adresse=trim(preg_replace('/^0+/','', preg_replace('/ +/',' ', $adresse))); + if (preg_match('/(3100|3200|3300|3999)/', $ann['typeEven'].';'.$ann['strEven'])) { + $depotComptes=true; + $strRCS='Siren : '. $ann['siren'] . '. '; + } else + $strRCS=$ann['siren'] . ' RCS '. ucfirst(strtolower(strtr($ann['triNom'], array('TGIcc '=>'','TGI '=>'','TC '=>'','TI '=>'',)))).'. '; + + $texteAnnonce= 'Date : '.strtolower(WDate::dateT('Y-m-d','d M Y',$ann['dateJugement'])) .'. '. $this->iBodacc->getEvenement($ann['typeEven']).'. '. + $strRCS . + trim($ann['raisonSociale']). '. Adresse : '. $adresse.' '.$ann['codePostal'].' '.$ann['ville'].'. '; + + if (trim($ann['numero'])<>'') $texteAnnonce.='Jugement Numéro : '.trim($ann['numero']).'. '; + + if ($ann['dateCessationPaiement']*1<>0) $texteAnnonce.='Cessation des paiements le '.strtolower(WDate::dateT('Y-m-d','d M Y',$ann['dateCessationPaiement'])).'. '; + + if (trim($ann['inter1type'])<>'' && ($ann['inter1id']>0 || trim($ann['inter1nom'])<>'') ) { + $texteAnnonce.=$tabInter[$ann['inter1type']].' : '.$ann['inter1nom']; + if ($ann['inter1id']<>0) { + $tabTmp=$this->iDb->select( 'tabMandataires', 'sirenGrp, sirenMand, tel, fax, email', 'id='.$ann['inter1id'], false, MYSQL_ASSOC); + $mand=$tabTmp[0]; + if ($mand['sirenGrp']<>0) $texteAnnonce.=', Siren SCP '.$mand['sirenGrp']; + if ($mand['sirenMand']<>0) $texteAnnonce.=', Siren '.$mand['sirenMand']; + if ($mand['tel']<>'') $texteAnnonce.=', Telephone '.$mand['tel']; + if ($mand['fax']<>'') $texteAnnonce.=', Telecopie '.$mand['fax']; + if ($mand['email']<>'') $texteAnnonce.=', E-mail : '.$mand['email']; + } + $texteAnnonce.='. '; + } + if (trim($ann['inter2type'])<>'' && ($ann['inter2id']>0 || trim($ann['inter2nom'])<>'') ) { + $texteAnnonce.=$tabInter[$ann['inter2type']].' : '.$ann['inter2nom']; + if ($ann['inter2id']<>0) { + $tabTmp=$this->iDb->select( 'tabMandataires', 'sirenGrp, sirenMand, tel, fax, email', 'id='.$ann['inter2id'], false, MYSQL_ASSOC); + $mand=$tabTmp[0]; + if ($mand['sirenGrp']<>0) $texteAnnonce.=', Siren SCP '.$mand['sirenGrp']; + if ($mand['sirenMand']<>0) $texteAnnonce.=', Siren '.$mand['sirenMand']; + if ($mand['tel']<>'') $texteAnnonce.=', Telephone '.$mand['tel']; + if ($mand['fax']<>'') $texteAnnonce.=', Telecopie '.$mand['fax']; + if ($mand['email']<>'') $texteAnnonce.=', E-mail : '.$mand['email']; + } + $texteAnnonce.='. '; + } + if (trim($ann['inter3type'])<>'' && ($ann['inter3id']>0 || trim($ann['inter3nom'])<>'') ) { + $texteAnnonce.=$tabInter[$ann['inter3type']].' : '.$ann['inter3nom']; + if ($ann['inter3id']<>0) { + $tabTmp=$this->iDb->select( 'tabMandataires', 'sirenGrp, sirenMand, tel, fax, email', 'id='.$ann['inter3id'], false, MYSQL_ASSOC); + $mand=$tabTmp[0]; + if ($mand['sirenGrp']<>0) $texteAnnonce.=', Siren SCP '.$mand['sirenGrp']; + if ($mand['sirenMand']<>0) $texteAnnonce.=', Siren '.$mand['sirenMand']; + if ($mand['tel']<>'') $texteAnnonce.=', Telephone '.$mand['tel']; + if ($mand['fax']<>'') $texteAnnonce.=', Telecopie '.$mand['fax']; + if ($mand['email']<>'') $texteAnnonce.=', E-mail : '.$mand['email']; + } + $texteAnnonce.='. '; + } + if (trim($ann['inter4type'])<>'' && ($ann['inter4id']>0 || trim($ann['inter4nom'])<>'') ) { + $texteAnnonce.=$tabInter[$ann['inter4type']].' : '.$ann['inter4nom']; + if ($ann['inter4id']<>0) { + $tabTmp=$this->iDb->select( 'tabMandataires', 'sirenGrp, sirenMand, tel, fax, email', 'id='.$ann['inter4id'], false, MYSQL_ASSOC); + $mand=$tabTmp[0]; + if ($mand['sirenGrp']<>0) $texteAnnonce.=', Siren SCP '.$mand['sirenGrp']; + if ($mand['sirenMand']<>0) $texteAnnonce.=', Siren '.$mand['sirenMand']; + if ($mand['tel']<>'') $texteAnnonce.=', Telephone '.$mand['tel']; + if ($mand['fax']<>'') $texteAnnonce.=', Telecopie '.$mand['fax']; + if ($mand['email']<>'') $texteAnnonce.=', E-mail : '.$mand['email']; + } + $texteAnnonce.='. '; + } + + if (trim($ann['nouvActivite'])<>'') $texteAnnonce.=' Activité : '.trim($ann['nouvActivite']).'. '; + if (trim($ann['nouvDir'])<>'') $texteAnnonce.=' Administration : '.trim($ann['nouvDir']).'. '; + if (trim($ann['nouvAdr'])<>'') $texteAnnonce.=' Nouvelle adresse : '.trim($ann['nouvAdr']).'. '; + if ($ann['nouvFJ']*1>0) $texteAnnonce.=' Transformation de la société en '.$this->getLibelleFJ($ann['nouvFJ']).'. '; + + if ($ann['dateEffetFinP']*1<>'') { + if ($depotComptes) + $texteAnnonce.=' Comptes annuels et rapports de l\'exercice clos le : '.strtolower(WDate::dateT('Y-m-d','d M Y',$ann['dateEffetFinP'])).'. '; + else + $texteAnnonce.=' Date d\'effet : '.strtolower(WDate::dateT('Y-m-d','d M Y',$ann['dateEffetFinP'])).'. '; + } + + if (trim($ann['complement'])<>'') $texteAnnonce.=' Observations : '.trim($ann['complement']).'.'; + + /** Si la procédure à moins de 4 mois on l'affiche **/ + $tabEven=explode(';', $ann['strEven']); + + $tabRetEven=array(); + $tabRetEven[]=array('CodeEven'=>$ann['typeEven'],'LibEven'=>$this->iBodacc->getEvenement($ann['typeEven'])); + if ($ann['typeEven']==2102 || $ann['typeEven']==2100) $capital=true; + else $capital=false; + + if (trim($ann['strEven'])<>'') { + foreach ($tabEven as $even) { + $tabRetEven[]=array('CodeEven'=>$even,'LibEven'=>$this->iBodacc->getEvenement($even)); + if ($even==2102 || $even==2100) $capital=true; + } + } + + if (($this->dureePlan<1 || $this->dureePlan==120) && + ( $ann['typeEven']==1407 || // Modification de plan + $ann['typeEven']==1409 || // Modification du plan de continuation + $ann['typeEven']==1413 || // Arrêt du plan de continuation + $ann['typeEven']==1414) ) // Arrêt du plan de redressement + { + $this->debutPlan=str_replace('-','',$ann['dateJugement']); // SSAAMMJJ + if (preg_match('/dur.e(?:.*)plan(?:.*)(\d+)\s+ans?/Uis', $ann['annonce'], $matches)) { + $this->dureePlan=$matches[1]*12; // 10 ans = 120 mois + } elseif (preg_match('/dur.e(?:.*)plan(?:.*)(\d+)\s+ans?/Uis', $texteAnnonce, $matches)) { + $this->dureePlan=$matches[1]*12; // 10 ans = 120 mois + } + if ($this->dureePlan<1 || $this->dureePlan>120) { + if (($fj==16 || $fj==1600 || // Exploitant agricole + $fj==63 || $fj==6316 || $fj==6317 || $fj==6318 || // Société coopérative agricole + $fj==5431 || $fj==5432 || $fj==5531 || $fj==5532 || // SMIA, SICA + $fj==5631 || $fj==5632 || $fj==6532 || + $fj==6533 || $fj==6534 || $fj==6535 || // GAEC, GFA, Gpt Agricole Foncier + $fj==6597 || $fj==6598) /*&& $this->dureePlan>180*/) + $this->dureePlan=180; // 15 ans + else + $this->dureePlan=120; // 10 ans = 120 mois + } + $this->finPlan=WDate::period2Days($this->debutPlan, $this->dureePlan.' mois'); + } + $strVente=''; + $nouvCapital=''; + if ($ann['montant']>0) { + if ($capital) { + $nouvCapital=$ann['montant']; + $texteAnnonce.=' Nouveau capital : '.trim($ann['montant']). ' euros'; + if ($ann['actionsNb']>0) + $texteAnnonce.=' divisé en '.$ann['actionsNb'].' actions de '. round($ann['montant']/$ann['actionsNb']). ' euros'; + } elseif (!preg_match('/ pour un montant de /Uis', $ann['complement'])) { + $texteAnnonce.=' Montant : '.trim($ann['montant']). ' euros'; + $strVente=trim($ann['montant']). ' EUR'; + } + $texteAnnonce.='. '; + } + + // On ne prend l'annonce saisie directement que si elle est plus volumineuse + if (trim($ann['annonce'])<>'' && strlen(trim($ann['annonce']))>strlen($texteAnnonce)) + $texteAnnonce=trim($ann['annonce']); + + $texteAnnonce=preg_replace('/ +/', ' ', strtr($texteAnnonce, array('*'=>' ', '/'=>' ', '..'=>'.'))); + + if (str_replace('-','',$ann['dateSource'])*1<>0) $dateParution=$ann['dateSource']; + else $dateParution=$ann['dateInsert']; + + /** Si la procédure à moins de 4 mois on l'affiche **/ + if ((str_replace('-','',$ann['dateJugement'])*1)>=$debutForclusion) { + $tabRet[$k]=array('id'=>'0.'.$ann['id'], + 'BodaccCode'=>$ann['source'].'-'.$ann['parutionIdJal'], + 'BodaccNum'=>$ann['parutionNum'], + 'NumAnnonce'=>0, + 'DateParution'=>$dateParution, + 'Departement'=>$dept, + 'Tribunal'=>$ann['triNom'], + 'TribunalSiret'=>$ann['triSiret'], + 'Rubrique'=>'procol', + 'typeAnnonce'=>'insertion', + 'dateEffet'=>$ann['dateCessationPaiement'], + 'dateJugement'=>$ann['dateJugement'], + 'dateFin'=>$ann['dateEffetFinP'], + 'montantVente'=>$strVente, + 'libFJ'=>$ann['nouvFJ'],//,if (trim($ann['nouvAdr'])<>'') $texteAnnonce.=' Nouvelle adresse : '.trim($ann['nouvAdr']).'. '; + 'codFJ'=>$this->iBodacc->getCodeFormeJur($ann['nouvFJ']), + 'capital'=>$nouvCapital, + 'capitalDev'=>'EUR', + 'raisonSociale'=>$ann['raisonSociale'], + 'nomCommercial'=>'', + 'sigle'=>'', + 'adresse'=>$ann['nouvAdr'], + 'dateInsertionSD'=>$ann['dateInsert'], + 'evenements'=>$tabRetEven, + 'texteAnnonce'=>$texteAnnonce, + 'complement'=>$ann['complement'], + ); + if ($depotComptes) + $tabRet[$k]['dateEffet']=$ann['dateEffetFinP']; + } + } + } + + //sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getProcolPart Fin $siren", print_r($tabRet,true)); + + return $tabRet; +} + + + function listeConventions($naf4, $dep=0) { + $dep=$dep*1; + if ($dep>0) { + if ($dep<10) $dep='Dep0'.$dep; + else $dep='Dep'.$dep; + $strDep="AND (n.territoire='' OR n.territoire LIKE '%$dep%')"; + } + $listeCC=$this->iDb->select('conv_naf n, conventions c', + 'n.`id CC`, n.`nom CC`, n.`editeur CC`, n.`nb page CC`, n.`isbn CC`, n.`date edition CC`, c.infoCC, joCCmaj', + "n.naf='$naf4' AND substring(n.`id CC`,1,4)=c.numBrochure $strDep GROUP BY n.`id CC`", false, MYSQL_ASSOC); + return $listeCC; + } + /* $tabRet['nbEtab']=trim(strip_tags(str_replace('afficher la liste...', '', @getTextInHtml($pou, 'Etablissements', '', '')))); + /*$urlPEtab='http://www.score3.fr/etablissements.shtml?page=1&siren='.$siren; + $refererPEtab=$urlP; + } + + $tabRet['effectif']=trim(@getTextInHtml($pou, 'Effectifs', '', '')); + + $strTmp=trim(str_replace('/','',@getTextInHtml($pou, 'Date d\'immatriculation', '', ''))); + if (strlen($strTmp)==4) + $strTmp='0101'.$strTmp; + elseif (strlen($strTmp)==6) + $strTmp='01'.$strTmp; + $tabRet['dateCreation']=WDate::dateT('dmY','Y-m-d',$strTmp); + + $strTmp=trim(str_replace('/','',@getTextInHtml($pou, 'Date de fin d\'exploitation', '', ''))); + if (strlen($strTmp)==4) + $strTmp='0101'.$strTmp; + elseif (strlen($strTmp)==6) + $strTmp='01'.$strTmp; + $tabRet['dateFermeture']=WDate::dateT('dmY','Y-m-d',$strTmp); + + if($tabRet['tel']=='' || $tabRet['tel']=='0') + $tabRet['tel']=trim(@getTextInHtml($pou, 'Téléphone', '', '')); + + if($tabRet['fax']=='' || $tabRet['fax']=='0') + $tabRet['fax']=trim(@getTextInHtml($pou, 'Fax', '', '')); + + $strTmp=trim(@getTextInHtml($pou, 'Activité principale', '', '')); + $tabRet['naf_lib']=trim(strtr(substr($strTmp,0,strlen($strTmp)-6),'()',' ')); + + if ($tabRet['naf']=='') + $tabRet['naf']=trim(strtr(substr($strTmp,-6),'()',' ')); + + $strTmp=trim(@getTextInHtml($pou, 'Chiffre d\'affaires', '', '')); + $tabRet['ca']=$strTmp; + + $tabRet['score_pouey']=trim(@getTextInHtml($pou, '')); + $tabRet['score_conan']=trim(@getTextInHtml($pou, '')); + $tabRet['score_afdcc']=trim(@getTextInHtml($pou, '')); + $tabRet['vigilance'] =trim(@getTextInHtml($pou, '')); + + return $tabRet; + } + */ + + private function findSiteWeb($rs) + { + /** @TODO Provisoirement tant qu'on ne vérifie pas le .fr ou .com auprès d'un registrar **/ + return false; + + $referer='http://www.google.fr/'; + $url='http://www.google.fr/search?hl=fr&q='.urlencode($rs).'&btnG=Rechercher&meta=cr%3DcountryFR'; + $page=getUrl($url, '', '', $referer, false, 'www.google.fr','', 5); + $fp=fopen('./findSiteWeb.log', 'a+'); + if ($page['code']==200) { + $levMin=100; + $pctMin=0; + $urlLev=$urlPct=''; + $body=$page['body']; + preg_match_all('/$url) + { + $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; + } + fwrite($fp, date('Y-m-d H:i:s') .' - '. $page['code'] . " - $rs - $i - $lev (Min=$levMin) - $pct (Min=$pctMin) - $urlLev - $urlPct - $url\n"); + //2008-05-20 20:01:08 - 200- ARKEMA FRANCE - 53 - 20 - 10 - http://www.arkema.fr/ - http://www.zonebourse.com/ARKEMA-17031/ - /intl/fr/about.html + + } + + fclose($fp); + + if ($levMin<15 && $pctMin>44 && $urlLev==$urlPct) { + fwrite($fp, date('Y-m-d H:i:s') .' - '. $page['code'] . " - $rs - $i - $lev (Min=$levMin) - $pct (Min=$pctMin) - $urlLev - $urlPct - $url !!! RETURNED !!!\n"); + return $urlLev; + } + return false; + } + fclose($fp); + return false; + } + + function getImportExport($siren, $type='', $annee='') { + if ($type=='') $strimportExport=" AND importExport IN ('I','E') "; + elseif ($type=='I') $strimportExport=" AND importExport='I' "; + elseif ($type=='E') $strimportExport=" AND importExport='E' "; + if ($annee*1>0) $strAnnees=" AND annee=$annee "; + else { + $tabAnnees=array(); + $strAnnees=' AND annee IN ('; + for ($an=date('Y')-6; $aniDb->select('importExport', 'importExport, annee, /*siren, raisonSociale, naf, categorie, adresse,*/ rangNational, deptSiege', "1 $strImportExport $strAnnees AND siren=$siren ORDER BY annee DESC, importExport ASC",false, MYSQL_ASSOC); + return $tabImportExport; + } + + function getInfosNotice($siren, $nic) { + /** Elements provenant du Notice 80 hors identité **/ + $tabTmp=$this->iDbInsee->select('insee_notices', 'insSIREN, insNIC, insL4_VOIE, insL6_POST, insRPET, insDEPCOMEN, insRPEN, insARRONET, insCTONET, insTCD, insZEMET, insDU, insTU, insUU, insMMINTRET, insMMINTREN, insVMAJ, insVMAJ1, insVMAJ2, insVMAJ3, insRECME, insEAEANT, insEAEAPET, insEAESEC1T, insEAESEC2T, insEAEANN, insEAEAPEN, insEAESEC1N, insEAESEC2N, insEAESEC3N, insEAESEC4N, dateNotice', "insSIREN=$siren AND insNIC=$nic ORDER BY dateNotice DESC LIMIT 0,1", false, MYSQL_ASSOC); + return $tabTmp[0]; + } + + function infoAdresseDom($adresseNum, $adresseBtq, $adresseVoie, $adresseRue, $adresseComp, $cp, $ville, $active=true) { + $adresseNum=trim($adresseNum)*1; + $adresseBtq='';//trim($adresseBtq); + $adresseVoie=trim($adresseVoie); + $adresseRue=trim($adresseRue); + $cp=trim($cp); + $ville=trim($ville); + + if ($adresseNum=='' && $adresseBtq=='' && $adresseVoie=='' && $adresseRue=='' && $cp=='' && $ville=='') + return false; + + $tabAdr=$this->structureVoie($adresseNum.' '.$adresseBtq.' '.$adresseVoie.' '.$adresseRue); + $num=$tabAdr['num']*1; + if ($num==0) return false; + $indRep=trim($tabAdr['indRep']); + $typeVoie=trim($tabAdr['typeVoie']); + $libVoie=trim(substr($tabAdr['libVoie'],-5)); + + $strAdrActive=''; + if ($active) { + $strAdrActive.=" AND (enActif=1 OR etActif=1) AND nbEntrep>30 AND pasEntrepDom=0 AND siren>1000 "; + } + $tabTmp=$this->iDb->select('tabAdrDom', + 'id, siren, nic, enActif, etActif, procol, nom, nom2, sigle, enseigne, adrNum, adrBtq, adrTypVoie, adrLibVoie, ville, cp, adrComp, adrDistSp, cj, apen, apet, nbEntrep, dateInsert, dateUpdate', + "adrNum=$num AND adrBtq='$indRep' AND adrTypVoie LIKE '%$typeVoie%' AND adrLibVoie LIKE '%$libVoie%' AND cp=$cp $strAdrActive", false, MYSQL_ASSOC); + if (count($tabTmp)>0) { +/* sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Adresse de domiciliation", print_r($tabAdr,true).EOL.print_r($tabTmp, true).EOL. +"num=$num=$adresseNum".EOL. +"indRep=$indRep=$adresseBtq".EOL. +"typeVoie=$typeVoie=$adresseVoie".EOL. +"libVoie=$libVoie=$adresseRue".EOL. +"adresseComp=$adresseComp".EOL. +"cp/ville=$cp/$ville".EOL);*/ + return $tabTmp; + }/* else { + sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Adresse de domiciliation Debug", print_r($tabAdr,true).EOL.print_r($tabTmp, true).EOL. +"num=$num=$adresseNum".EOL. +"indRep=$indRep=$adresseBtq".EOL. +"typeVoie=$typeVoie=$adresseVoie".EOL. +"libVoie=$libVoie=$adresseRue".EOL. +"adresseComp=$adresseComp".EOL. +"cp/ville=$cp/$ville".EOL); + return $tabTmp; + }*/ + + return false; + } + + function getAdresse($siren, $nic) { +/* 'Nom'=>$etab['raisonSociale'], + 'Tribunal'=>$etab['triCode'], + 'Sigle'=>$etab['sigle'], + ''=>$etab['enseigne'], + 'Adresse'=>trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '. + $etab['adr_typeVoie'] .' '. $etab['adr_libVoie']))), + 'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])), + 'AdresseNum'=>$etab['adr_num'], + 'AdresseBtq'=>$etab['adr_btq'], + 'AdresseVoie'=>$etab['adr_typeVoie'], + 'AdresseRue'=>$etab['adr_libVoie'], + 'CP'=>$etab['adr_cp'], + 'Ville'=>$etab['adr_ville'], +*/ + /** On prend l'information dans la table etablissements **/ + $tabIdentite=$this->getIdentiteLight($siren, $nic); + $codeVoie=@strtoupper($this->getCodeVoie($tabIdentite['AdresseVoie'])); + //echo $codeVoie.EOL; + if ($codeVoie=='') $codeVoie=$tabIdentite['AdresseVoie']; + $tabRet=array('L1_NOM' => $tabIdentite['Nom'], + 'L2_NOM2' => $tabIdentite['Enseigne'], + 'L3_ADRCOMP' => '', + 'L4_VOIE' => trim(preg_replace('/ +/',' ',preg_replace('/^0+/','',$tabIdentite['AdresseNum'].' '. + $tabIdentite['AdresseBtq'].' '. + $codeVoie.' '. + $tabIdentite['AdresseRue']))), + 'L5_DISTSP' => $tabIdentite['Adresse2'], + 'L6_POST' => $tabIdentite['CP'].' '.$tabIdentite['Ville'], + 'L7_PAYS' => '', + ); + if (strlen($tabRet['L4_VOIE'])>38) + $tabRet['L4_VOIE']=trim(preg_replace('/ +/',' ',preg_replace('/^0+/','', + $tabIdentite['AdresseNum'].' '. + $tabIdentite['AdresseBtq'].' '. + $tabIdentite['AdresseVoie'].' '. + $tabIdentite['AdresseRue']))); + + $tabNotice=$this->getInfosNotice($siren, $nic); + //if ($tabNotice['insL4_VOIE']<>'' && $tabNotice['insL4_VOIE']<>$tabRet['L4_VOIE']) + // $tabRet['L4_VOIE']=$tabNotice['insL4_VOIE']; + if ($tabNotice['L6_POST']<>'' && $tabNotice['L6_POST']<>$tabRet['L6_POST']) + $tabRet['L6_POST']=$tabNotice['L6_POST']; + + $tabTmp=$this->iDbInsee->select('identite','NOM2, ADR_COMP, ADR_DISTSP, PAYS', + "SIREN=$siren AND NIC=$nic", false, MYSQL_ASSOC); + $tabIdentite=$tabTmp[0]; + if ($tabIdentite['NOM2']<>'' && $tabIdentite['NOM2']<>$tabRet['L2_NOM2']) + $tabRet['L2_NOM2']=$tabIdentite['NOM2']; + if ($tabIdentite['ADR_COMP']<>'' && $tabIdentite['ADR_COMP']<>$tabRet['L3_ADRCOMP']) + $tabRet['L3_ADRCOMP']=$tabIdentite['ADR_COMP']; + if ($tabIdentite['ADR_DISTSP']<>'' && $tabIdentite['ADR_DISTSP']<>$tabRet['L5_DISTSP']) + $tabRet['L5_DISTSP']=$tabIdentite['ADR_DISTSP']; + if ($tabIdentite['PAYS']<>'' && $tabIdentite['PAYS']<>$tabRet['L7_PAYS']) + $tabRet['L7_PAYS']=$tabIdentite['PAYS']; + + $tabTmp=$this->iDbInsee->select('cedexa','contrat, hexavia, codePostal, l1_nom, l2_nomComp, l3_compGeo, l4_numVoie, l4_indRep, l4_libVoie, l5_distrib, l5_numMS, l5_libCom, l6_codCedex, l6_achCedex, codeInsee, actif, dateFlux, dateInsert, dateUpdate', "siren=$siren AND nic=$nic", false, MYSQL_ASSOC); + $tabCedex=$tabTmp[0]; + + if ($tabCedex['l2_nomComp']<>'' && $tabCedex['l2_nomComp']<>$tabRet['L2_NOM2']) + $tabRet['L2_NOM2']=$tabCedex['l2_nomComp']; + if ($tabCedex['l3_compGeo']<>'' && $tabCedex['l3_compGeo']<>$tabRet['L3_ADRCOMP']) + $tabRet['L3_ADRCOMP']=$tabCedex['l3_compGeo']; + + $l4=trim(preg_replace('/ +/',' ',preg_replace('/^0+/','', $tabCedex['l4_numVoie'].' '.$tabCedex['l4_indRep'].' '.$tabCedex['l4_libVoie']))); + if ($l4<>'' && $l4<>$tabRet['L4_VOIE']) + $tabRet['L4_VOIE']=$l4; + + $l5=trim(preg_replace('/ +/',' ', $tabCedex['l5_distrib'].' '.$tabCedex['l5_numMS'].' '.$tabCedex['l5_libCom'])); + if ($l5<>'' && $l5<>$tabRet['L5_DISTSP']) + $tabRet['L5_DISTSP']=$l5; + + $l6=trim(preg_replace('/ +/',' ', $tabCedex['l6_codCedex'].' '.$tabCedex['l6_achCedex'])); + if ($l6<>'' && $l6<>$tabRet['L6_POST']) + $tabRet['L6_POST']=$l6; + + return $tabRet; + /** RNCS ? **/ + /*$tabTmp=$this->iDb->select('rncs_etab','enseigne, nomCommercial, adrNumVoie, adrIndRep, adrLibVoie, adrTypeVoie, + adrVoie, cp, commune, adrComp, adresse1, adresse2, adresse3', + "siren=$siren AND nic=$nic", false, MYSQL_ASSOC); + $tabIdentite=$tabTmp[0];*/ + } + + function getActivite($siren, $nic=0) { + $tabIdentite=$this->getIdentiteLight($siren, $nic); + // F.Jur + $fj=$tabIdentite['FJ']; + // Naf 5 + $naf5en=$tabIdentite['NafEnt']; + $naf5et=$tabIdentite['NafEtab']; + // Naf 4 + $naf4en=$naf4et=-1; + $tabNaf4=$this->getNaf4($siren, $nic); + if (isset($tabNaf4['apen4'])) + $naf4en=$tabNaf4['apen4']; + if (isset($tabNaf4['apet4'])) + $naf4et=$tabNaf4['apet4']; + + // Activité Pages Jaunes + $strNic=''; + $an8en=$an8et=-1; + if ($nic*1>0) $strNic="AND nic=$nic"; + $ret=$this->iDb->select('jo.telephonie', + 'infoTel, count(*) AS nb', + "siren=$siren AND typeTel='an8' GROUP BY infoTel ORDER BY nb DESC LIMIT 0,1", false, MYSQL_ASSOC); + if (count($ret)>0) { + $an8en=$ret[0]['infoTel']; + $ret=$this->iDb->select('jo.telephonie', + 'infoTel', + "siren=$siren $strNic AND typeTel='an8' ORDER BY dateProvPartenaire DESC LIMIT 0,1", false, MYSQL_ASSOC); + if (count($ret)>0) + $an8et=$ret[0]['infoTel']; + } + + // Recherche des activités réglementées possibles Naf4&5 ou An8 + $ret=$this->iDb->select('jo.tabActivReg', + 'id, libActivite, listeActivite, naf5, naf4, codAn8, listeCJ, nomAutorite', + "naf5='$naf5en' OR naf5='$naf5et' OR naf4='$naf4en' OR + naf4='$naf4et' OR codAn8='$an8en' OR codAn8='$an8et'", false, MYSQL_ASSOC); + /* @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Activités réglementées sur $siren", + "naf5='$naf5en' OR naf5='$naf5et' OR naf4='$naf4en' OR naf4='$naf4et' OR codAn8='$an8en' OR codAn8='$an8et'".EOL. + print_r($ret, true));*/ + foreach ($ret as $iRet=>$tabAct) { + // Filtre 'listeActivite' : Si défini, on recherche la présence de mots dans l'activité + if (trim($tabAct['listeActivite'])<>'') { + $ok=false; + $tabTmp=explode(';',trim($tabAct['listeActivite'])); + $tabIdentite=$this->getIdentiteEntreprise($siren, $nic); + foreach ($tabTmp as $strTmp) + if (preg_match("/$strTmp/i", $tabIdentite['Activite'])) $ok=true; + if (!$ok) continue; + } + // Filtre 'listeCJ' : Si défini, on limite aux CJ listées + if (trim($tabAct['listeCJ'])<>'') { + $ok=false; + $tabTmp=explode(';',trim($tabAct['listeCJ'])); + foreach ($tabTmp as $strTmp) + if (preg_match("/^$strTmp/", $fj)) $ok=true; + if (!$ok) continue; + } + return array( 'idActivite'=>$tabAct['id'], + 'libActivite'=>$tabAct['libActivite'], + 'nomAutorite'=>$tabAct['nomAutorite'], + ); + } + return false; + } + + public function getCodeNace($naf5) { + if ($naf5<>'') { + $this->setTabCodesNaf(); + return $this->tabCodesNace[$naf5]; + } + else + return ''; + } + + public function getEtabClients($refClient, $idClient, $login, $deb=0, $nbRep=20, $maxRep=200) { + $this->setTabCodesNaf(); + $deb=$deb*1; + $nbRep=$nbRep*1; + $limit="LIMIT $deb, $nbRep"; + +// $strLogin=" AND idClient=$idClient "; + + $listeEtab=$this->iDb->select('jo.etablissements e, jo.surveillances_site s', + "'Etab' AS Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, CONCAT( e.siren, e.nic ) AS siret, e.actif", + "s.login='$login' AND s.siren=e.siren AND (s.nic=e.nic OR e.siege=1) AND s.ref='$refClient' ORDER BY e.siege DESC, e.actif DESC $limit", false, MYSQL_ASSOC); + $nbTot=count($listeEtab); + foreach ($listeEtab as $etab) { + $tel=sprintf('%010d', strtr($etab['tel'],array('-'=>'', '/'=>'','.'=>'',','=>''))); + if ($tel<>'0000000000') $tel=implode('.', str_split($tel,2)); + else $tel=''; + + $fax=sprintf('%010d', strtr($etab['fax'],array('-'=>'', '/'=>'','.'=>'',','=>''))); + if ($fax<>'0000000000') $fax=implode('.', str_split($fax,2)); + else $fax=''; + + $tabRet[]=array( 'Localisation'=>$etab['Loc'], + 'id'=>$etab['id'], + 'Pertinence'=>100, + 'Siret'=>$etab['siret'], + 'Siege'=>$etab['siege'], + 'Nom'=>$etab['raisonSociale'], + 'Sigle'=>$etab['sigle'], + 'Enseigne'=>$etab['enseigne'], + 'Adresse'=>trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '. + $etab['adr_typeVoie'] .' '. $etab['adr_libVoie']))), + 'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])), + 'CP'=>$etab['adr_cp'], + 'Ville'=>$etab['adr_ville'], + 'Tel'=>$tel, + 'Fax'=>$fax, + 'FJ'=>$etab['cj'], + 'FJLib'=>$this->getLibelleFJ($etab['cj']), + 'Siren'=>$etab['siren'], + 'Nic'=>$etab['nic'], + 'Actif'=>$etab['actif'], + 'NafEtab'=>$etab['ape_etab'], // Etablissement + 'NafEnt'=>$etab['ape_entrep'], // Entreprise + 'NafEtabLib'=>$this->getLibelleNaf($etab['ape_etab']), + 'NafEntLib' =>$this->getLibelleNaf($etab['ape_entrep']), + ); + } + + if ($dep==0) $dep=''; // Evite l'affichage d'un 0 inutile sur l'Extranet + + return array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep), + 'nbReponses'=>count($tabRet), + 'nbReponsesTotal'=>$nbTot, + 'reponses'=>$tabRet); + } + + public function getAvisInsee($siren, $nic='') { + if ($siren*1==0 || !$this->valideSiren($siren, $nic)) return false; + if ($nic=='' || $nic*1==0 || $nic>99999) + $strNic=" AND nic=nicSiege"; + else $strNic=" AND nic=$nic"; + $tabTmp=$this->iDbInsee->select('insee_avis', 'raiSoc, dateMaj, siren, nic, etatEt, dateEtatEt, typeEtab, adresseEt0, adresseEt1, adresseEt2, adresseEt3, fj, fjLib, nafEt, nafEtLib, effEtPeriode, effEtTr, erreurs, adresseEn0, adresseEn1, adresseEn2, adresseEn3, nafEn, nafEnLib, effEnPeriode, effEnTr, fjEn, fjEnLib, employes, etatEn, dateEtatEn, nicSiege, nbEtabActifs, dateInsert, dateUpdate, DATE(IF(dateUpdate>dateInsert, dateUpdate, dateInsert))*1 AS dateMajSD', + "siren=$siren $strNic", + false, MYSQL_ASSOC); + $tabInfos=@$tabTmp[0]; + if ($tabInfos['dateMajSD']==date('Ymd')) { + $tabInfos['enCache']=true; +// sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getAvisInsee... en cache sur $siren", print_r($tabInfos, true)); + return $tabInfos; + } + + /** Initialisation de la session sur le site de l'Insee **/ + $url = 'http://avis-situation-sirene.insee.fr/avisitu/jsp/avis.jsp'; + $referer = $cookie = ''; + $page = getUrl($url, $cookie, '', $referer, false, 'avis-situation-sirene.insee.fr', '', 5); + //Code en 4xx ou 5xx signifie une erreur du serveur + $codeN = floor($page['code']/100); + if($codeN==4 || $codeN==5) + { + return false; + } + else + { + $tabInfos=array(); + $referer = $url; + $body = $page['body']; + $serviceDispo = true; + + if (preg_match("/
    $siren, + 'critere' => $crit, // S pour le siège ou vide avec un NIC !!! + 'nic' => $nic, + 'departement' => $dep, + 'departement_actif' => $depActif, + 'bSubmit' => 'Valider'); + $page = getUrl($url, $cookie, $post, $referer, false, 'avis-situation-sirene.insee.fr', '', 5); + $referer=$url; + $body = $page['body']; +/* $fp=@fopen($fichier, "a"); + @fwrite($fp, $body); + @fclose($fp);*/ + + if (preg_match("/

    Fiche établissement<\/h3>/Uis", $body, $matches))//
  • établissement
  • + $tabInfos['fiche']='etab'; + + if (preg_match('/
    (.*)/Uis', $body, $matches)) { + $tabInfos['raiSoc']=str_replace(''',"'",trim($matches[1])); + } + + if (preg_match("/Dernière mise à jour : (.*)<\/div>/Uis", $body, $matches)) + $tabInfos['dateMaj']=WDate::dateT('d/m/Y','Y-m-d',trim($matches[1])); + + $s1=substr($siren,0,3); + $s2=substr($siren,3,3); + $s3=substr($siren,6,3); + if (preg_match('/
    (?:.*)('.$s1.'(?:.*)'.$s2.'(?:.*)'.$s3.')(?:.*)(\d\d\d\d\d)(?:.*)<\/div>/Uis', $body, $matches)) { + $tabInfos['siren'] = trim(str_replace(' ','',$matches[1])); + $tabInfos['nic'] = trim($matches[2]); + if ($nic=='') $nic=$tabInfos['nic']; + } else + $tabInfos['siren']=$siren; + + if (preg_match('/