Mise a jour des librairies

This commit is contained in:
Michael RICOIS 2013-06-18 07:11:40 +00:00
parent 8282ab1091
commit 63d61c3e64
72 changed files with 114545 additions and 8596 deletions

View File

@ -977,7 +977,7 @@ private static $tabEvenements=array(
$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();
/**
@ -985,9 +985,24 @@ private static $tabEvenements=array(
* 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) {
if (preg_match("/(.*)$fonction(.*)$/i", $ligne, $matches)) {
//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]))
@ -996,8 +1011,9 @@ private static $tabEvenements=array(
$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];
@ -1179,7 +1195,7 @@ private static $tabEvenements=array(
$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", true, MYSQL_ASSOC);
$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']);//);
@ -1190,7 +1206,7 @@ private static $tabEvenements=array(
$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", true, MYSQL_ASSOC);
$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']);
@ -1199,7 +1215,7 @@ private static $tabEvenements=array(
} 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", true, MYSQL_ASSOC);
"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'];
@ -1222,7 +1238,7 @@ private static $tabEvenements=array(
function getCodeFormeJur($strFJ) {
global $tabCjBodacc;
if (count($tabCjBodacc)<1)
include_once(INCLUDE_PATH.'bodacc/configMBodacc.php');
require_once 'Metier/bodacc/configMBodacc.php';
$strFJ=strtoupper(trim(preg_replace('/[^a-z]/i','',$strFJ)));
@ -1230,4 +1246,4 @@ private static $tabEvenements=array(
}
}
?>
?>

View File

@ -108,12 +108,11 @@ function getUrl($url, $strCookies='', $postData='', $referer='', $debug=false, $
$url2=str_replace('?', '(param)', $url2);
$url2=str_replace('&', '(et)', $url2);
/*
$fp=fopen('/var/www/_includes/partenaires/insee/'. date('Ymd-His') .'-'. microtime_float(true) .'-'. $url2 . '.html', 'a');
fwrite($fp, $url."\r\n");
fwrite($fp, $page);
fclose($fp);
*/
//echo strip_tags(html_entity_decode($response['body']), '<td>');
}
//print_r(curl_getinfo($ch));
@ -140,11 +139,11 @@ function rechercheTelephone($raisonSociale='', $adresse='', $localite='', $depar
$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);
$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);
@ -230,9 +229,9 @@ sleep(1);
'FRM_TYPE_PUB'=>'TOUS',
'RP_FORM'=>'',
'VALID_LOC'=>$CODE_LOC_INFO_VILLE,
'VALID_ARR'=>$VALID_ARR,
'NUM_RUE'=>$NUM_RUE,
'VALID_LOC'=>$CODE_LOC_INFO_VILLE,
'VALID_ARR'=>$VALID_ARR,
'NUM_RUE'=>$NUM_RUE,
'test_flash'=>'',
'ESPLUS'=>'',
'NEW_DEPARTEMENT'=>$NEW_DEPARTEMENT,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +1,14 @@
<?
include_once(FWK_PATH.'common/curl.php');
require_once 'framework/common/curl.php';
define('HOST_INSEE', 'avis-situation-sirene.insee.fr');
define('SITE_INSEE', 'http://'. HOST_INSEE .'/');
class MSirene {
private $response1;
function __construct() {
/** Etape de connexion au site de l'INSEE pour simuler correctement un utilisateur WEB
@ -25,7 +25,7 @@ class MSirene {
//sleep(1);
}
/**
* Récupère les informations relatives à un établissement et son entreprise (par défaut le siège si pas de NIC)
*
@ -35,7 +35,7 @@ class MSirene {
function getInfoEtab($sirenLu, $nicLu='') //if ($argv[1]=='id' || $argv[1]=='pj')
{
$tabRet=array();
/** Paramètre de requête "option" à l'insee :
** 1: Fiche du siège + Données entreprises
** 2: Tous les établissements de l'entreprise
@ -44,7 +44,7 @@ class MSirene {
**/
if ($nicLu<>'') $option=3;
else $option=1;
// Requête d'interrogation
$postData=array('siren'=>$sirenLu,
'option'=>$option,
@ -125,7 +125,7 @@ class MSirene {
if ($pos<1) {
$tabRet['erreur']='Erreur SCRIPT Fiche Entreprise non trouvée';
}
/** Recherche des données établissement
**/
$tabRet['etablissement']=$this->getDataEtablissement($responseSiege);
@ -133,7 +133,7 @@ class MSirene {
/** Recherche des données entreprise
**/
$tabRet['entreprise']=$this->getDataEntreprise($responseEntreprise);
return $tabRet;
}
}
@ -220,7 +220,7 @@ class MSirene {
{
if ($numEtab==$nbRepTot)
break; // Il n'y a pas plus d'établissement à récupérer ! On sort...
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/question.asp?action=detail&numtableau='.$i, $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Liste_principal.asp', false, HOST_INSEE);
if ($responseQ['code']==302)
{
@ -332,7 +332,7 @@ private function getDataEtablissement($pageHtml)
$pos=strpos($pageHtml, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche siège</B>');
if ($pos>0)
$tabRet['typeEtablissement']='siège';
// Recherche Dernière MAJ / Activité
$pos=strpos($responseSiege, '<font face="Arial" size="2">(dernière mise à jour :');
if ($pos>0) {
@ -349,7 +349,7 @@ private function getDataEtablissement($pageHtml)
if ($pos>0) $tabRet['dateAbsActivite']='';
}
}
$pos=strpos($responseSiege, ' size="-1"> <B>n°&nbsp;SIRET&nbsp;:</B></FONT></td><td valign="top"><font face="Arial" size="-1">');
$tabRet['siret']=str_replace(' ', '', html_entity_decode(substr($responseSiege, $pos+97, 32)));
@ -418,7 +418,7 @@ private function getDataEntreprise($pageHtml)
$responseEntreprise=$pageHtml;
$tabRet=array();
if ($libelleErreur=='') {
$pos=strpos($responseEntreprise, 'size="-1"> <B>Date&nbsp;de&nbsp;création&nbsp;:</B></FONT></td><td valign="top"><font face="Arial" size="-1">');
@ -447,7 +447,7 @@ private function getDataEntreprise($pageHtml)
// Nb Etab Actifs
$tabRet['nbEtabActifs']=trim(str_replace(' ', '', html_entity_decode(@getTextInHtml($responseEntreprise, '<B>Nb&nbsp;établissements&nbsp;actifs&nbsp;:</B>', '<font face="Arial" size="-1">', '</font>'))));
}
}
return $tabRet;
}

View File

@ -1,53 +1,24 @@
<?php
ini_set('soap.wsdl_cache_enabled', 0);
class AmaSoapClient extends SoapClient {
function __doRequest($request, $location, $action, $version) {
/* $request = strtr($request, array('<ns1:'=>'<ama:',
'</ns1:'=>'</ama:',
// '<param0 xsi:type="xsd:string">'=>'',
'xmlns:ns1="http://www.amabis.com/ama.xsd"'=>'xmlns:ama="http://www.amabis.com/ama.xsd"',
// '</param0>'=>'',
// '&lt;'=>'<',
// '&gt;'=>'>',
)
);*/
return parent::__doRequest($request, $location, $action, $version);
}
}
ini_set('default_socket_timeout', 30);
class MAmabis {
private $client;
function __construct() {
/* $this->client = new AmaSoapClient(null, //'http://www.amabis.com/ama.wsdl',//null, //
array( 'location' => AMABIS_WS_URL,//'http://sw4.amabis.com:5101',
'uri' => AMABIS_WS_URI,//'http://sw4.amabis.com:5101',
'soap_version' => SOAP_1_1,
'trace' => 1,
'style' => SOAP_RPC,
'use' => SOAP_ENCODED,
'connection_timeout'=> 2,
)
);
*/
$this->client = new AmaSoapClient(null,
array( //'location' => 'http://sw4.amabis.com:5100',
'location' => 'http://sw2.amabis.com:5100/',
'uri' => 'http://www.amabis.com/ns.xsd',
'connection_timeout' => 2,
'default_socket_timeout'=> 2,
'soap_version' => SOAP_1_1,
'trace' => 1,
'style' => SOAP_RPC,
'use' => SOAP_ENCODED,
)
);
function __construct()
{
$this->client = new SoapClient(null, array(
'location' => 'http://sw2.amabis.com:5100/',
'uri' => 'http://www.amabis.com/ns.xsd',
'connection_timeout' => 2,
'soap_version' => SOAP_1_1,
'trace' => 1,
'style' => SOAP_RPC,
'use' => SOAP_ENCODED,
));
}
function getZonage($adrNum, $adrIndRep, $adrTypeVoie, $adrLibVoie, $cp, $ville='', $codeRivoli='', $rnvp=false, $raisonSociale='TEST', $debug=false) {
$tabRep=array();
if (!$rnvp) {
@ -75,7 +46,7 @@ class MAmabis {
break;
}
}
$iDb=new WDB();
$adresse=addslashes(trim(preg_replace('/ +/',' ', "$adrNum $adrIndRep $adrTypeVoie $adrLibVoie")));
$ville=addslashes($ville);
@ -105,11 +76,11 @@ class MAmabis {
}
//return $tabRep;
} else {
try {
if (trim($raisonSociale)=='') $raisonSociale='TEST'; // Le RNVP ne fonctionne pas sans la Raison Sociale qui est la 1ère ligne d'adresse
$rep=$this->client->zonage( new SoapParam(strtr("$raisonSociale:$adresse:$cp:$ville",
'¿°ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ??',
'¿°ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ??',
' aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr'),'adresse'),
new SoapParam(':','separateur'),
new SoapParam('type=M','options')
@ -117,13 +88,13 @@ class MAmabis {
/*$rep=$this->client->zonage( "<adresse></adresse>".
"<separateur>:</separateur>".
"<options>type=M</options>");*/
/** Découpage des ZFU, CUCS etcs...
**/
$fp=fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s').' - '.implode("\n", $rep)."\n============================================================================\n");
fclose($fp);
$tabZones=explode(',',$rep['zonage']); // ZUS=OUI,NZUS=1127020,ZFU=OUI,NZFU=11270ZF,CUCS=OUI,NCUCS=1127020
foreach ($tabZones as $zone) {
$tabTmp=explode('=',$zone);
@ -150,7 +121,7 @@ class MAmabis {
'rivoli'=>$codeRivoli,
);
$iDb->insert('zonage', $tabInsert);
/** Autres Informations de la RNVP
**/
if ($rnvp || $debug) {
@ -158,7 +129,7 @@ class MAmabis {
$tabZones=explode(',',$rep['objdesc']);
foreach ($tabZones as $zone) {
$tabTmp=explode('=',$zone);
if (trim($tabTmp[0])<>'')
if (trim($tabTmp[0])<>'')
$tabRepTmp[$tabTmp[0]]=$tabTmp[1];
}
if (!$debug) {
@ -193,7 +164,7 @@ class MAmabis {
case 'ZAFR': $tabRep['AFR']='OUI'; $tabRep['NAFR']=$codeInsee; break;
default: break;
}
return $tabRep;
}
@ -208,16 +179,16 @@ class MAmabis {
$query="<rs>$nom</rs><cpville>$cp $ville</cpville><scoremini>90</scoremini><distinction>30</distinction>";
else
$query="<nom>$nom</nom><prenom>$prenom</prenom><cpville>$cp $ville</cpville><scoremini>90</scoremini><distinction>30</distinction>";
$rep=$this->client->rechtel($query);
$fp=fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s')." - $query - ".implode("\n", $rep)."\n============================================================================\n");
fwrite($fp, "Requête : ".$this->client->__getLastRequest()."\n");
fwrite($fp, "Réponse : ".$this->client->__getLastResponse()."\n");
fclose($fp);
}
}
?>

View File

@ -144,7 +144,6 @@ class MArtisanat {
return false;
} else {
$this->libErreur='Erreur Siren absent dans la page !';
// die($this->body);
return false;
}

View File

@ -1,25 +1,25 @@
<?
include_once(FWK_PATH.'common/dates.php');
require_once 'framework/common/dates.php';
class MBanques {
public $tabActivite=array( 0=>'établissements et services autorisés à effectuer des opérations de banque',
1=>'banques',
1=>'banques',
2=>'banques mutualistes ou coopératives',
4=>'caisses de crédit municipal',
5=>'sociétés financières 5', // la distinction entre les codes 5 et 6 ne concerne que les
6=>'sociétés financières 6', // applications internes à la Banque de France
7=>'institutions financières spécialisées',
9=>'entreprises d\'investissement');
public $tabNatureGuichet=array( 1=>'Guichet permanent de plein exercice domiciliataire (ouvert au public)',
2=>'Identifiant de domiciliation (adresse active 5 jours par semaine)',
3=>'Guichet permanent non domiciliataire (ouvert au public)',
4=>'Libre Prestation de services (LPS)',
'A'=>'Guichet fictif',
'P'=>'Guichet fictif');
public $tabOrgane=array( 0=>'Association française des établissements de crédit et des entreprises d\'investissement',
11=>'Association française des sociétés financières',
12=>'Groupement des institutions financières spécialisées',
@ -42,7 +42,7 @@ class MBanques {
98=>'non concerné',
99=>'en instance d\'adhésion');
private $iDb;
function __construct() {
$this->iDb=new WDB('insee');
}
@ -69,10 +69,10 @@ class MBanques {
$tabRet=@$ret[0];
else
$tabRet=array();
return array_merge($tabRet, $tabBanque, $tabTel);
}
function getTelGuichet($codeBanque, $codeGuichet) {
$ret=$this->iDb->select( 'Mandel_banques',
'Tel, Fax',

View File

@ -1,9 +1,9 @@
<?
include_once(FWK_PATH.'common/curl.php');
include_once(FWK_PATH.'common/dates.php');
//include_once(INCLUDE_PATH.'partenaires/classMEuridile.php');
//include_once(INCLUDE_PATH.'partenaires/classMRncsFlux.php');
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
<?php
require_once 'framework/common/curl.php';
require_once 'framework/common/dates.php';
//require_once 'Metier/partenaires/classMEuridile.php';
//require_once 'Metier/partenaires/classMRncsFlux.php';
require_once 'Metier/partenaires/classMGreffes.php';
define ('ECART_CTRL_MAX', 5); // Ecart maximal acceptable dans la saisie +/-5 entre les calculs et la saisie !
@ -98,7 +98,7 @@ $tabCtrl=array(
'AA+BJ+CJ+CL+CM+CN=CO'=>'Total Actif Brut',
'BK+CK=1A'=>'Total Actif (Amor.)',
'AA2+BK1+CK1+CL2+CM2+CN2=1A1'=>'Total Actif Net',
// PASSIF
// PASSIF
'DA+DB+DC+DD+DE+DF+DG+DH+DI+DJ+DK=DL'=>'Passif : s/total I (Capitaux Propres)',
'DM+DN=DO'=>'Passif : s/total II (Autres fonds propres)',
'DP+DQ=DR'=>'Passif : s/total III (Provisions)',
@ -134,7 +134,17 @@ $tabCtrl=array(
),
);
$tabLibCodeCtrl=array(
'_0'=>'-',
'_1'=>'Corrigé',
'_3'=>'Capital',
'_5'=>'Calculs', // Anciennement 2 mais maintenant >=5 correspond à une erreur grave
'_7'=>'Effectif',
'_9'=>'Unité',
);
$tabLibCodeSaisie=array(
// Code Saisie Bilans par Infogreffe
'_00'=>'Bilan saisi sans anomalie',
'_01'=>'Bilan saisi avec des incohérences comptables à la source du document (issues du remettant)',
'_02'=>'Bilan avec Actif, Passif ou Compte de Résultat nul',
@ -157,25 +167,137 @@ $tabLibCodeSaisie=array(
'_13'=>'Bilan de Société d\'assurance',
'_14'=>'Bilan de Société immobilière',
'_15'=>'Bilan de Société étrangère',
// Codes saisie de Bilans spécifique às S&D
'_70'=>'Document relatif à une autre société',
);
class MBilans {
public $siren;
public $dernierExerciceDepose=0;
public $dernierExerciceDeposeLe=0;
// public $rncs;
public $igreffe;
private $tabBS2BN=array('AH'=>'010',
'AI'=>'012',
'AI1'=>'013',
'AJ'=>'014',
'AK'=>'016',
'AK1'=>'017',
'AT'=>'028',
'AU'=>'030',
'AU1'=>'031',
'BH'=>'040',
'BI'=>'042',
'BI1'=>'043',
'BJ'=>'044',
'BK'=>'048',
'BK1'=>'049',
'BL'=>'050',
'BM'=>'052',
'BM1'=>'053',
'BT'=>'060',
'BU'=>'062',
'BU1'=>'063',
'BV'=>'064',
'BW'=>'066',
'BW1'=>'067',
'BX'=>'068',
'BY'=>'070',
'BY1'=>'071',
'BZ'=>'072',
'CA'=>'074',
'CA1'=>'075',
'CD'=>'080',
'CE'=>'082',
'CE1'=>'083',
'CF'=>'084',
'CG'=>'086',
'CG1'=>'087',
'CH'=>'092',
'CI'=>'094',
'CI1'=>'095',
'CJ'=>'096',
'CK'=>'098',
'CK1'=>'099',
'CO'=>'110',
'1A'=>'112',
'1A1'=>'113',
'DA'=>'120',
'DC'=>'124',
'DD'=>'126',
'DF'=>'130',
'DG'=>'132',
'DH'=>'134',
'DI'=>'136',
'DK'=>'140',
'DL'=>'142',
'DR'=>'154',
'DP'=>'154',
'DU'=>'156',
'DV'=>'169',
'DW'=>'164',
'DX'=>'166',
'EA'=>'172-169',
'EB'=>'174',
'EC'=>'176',
'EE'=>'180',
'EH'=>'156-195',
'FA'=>'210-209',
'FB'=>'209',
'FC'=>'210',
'FD'=>'214-215',
'FE'=>'215',
'FF'=>'214',
'FH'=>'217',
'FI'=>'218',
'FK'=>'209+215+217',
'FL'=>'210+214+218',
'FM'=>'222',
'FN'=>'224',
'FO'=>'226',
'FQ'=>'230',
'FR'=>'232',
'FS'=>'234',
'FT'=>'236',
'FU'=>'238',
'FV'=>'240',
'FW'=>'242',
'FX'=>'244',
'FY'=>'250',
'FZ'=>'252',
'GA'=>'254',
'GE'=>'262',
'GF'=>'264',
'GG'=>'270',
'GP'=>'280',
'GU'=>'294',
'GW'=>'270+280+294',
'HD'=>'290',
'HH'=>'300',
'HI'=>'290-300',
'HK'=>'306',
'HL'=>'232+280+290',
'HM'=>'264+294+300+306',
'HN'=>'310',
'YY'=>'374',
'YZ'=>'378',
'YP'=>'376',
);
function __construct($siren) {
$this->siren=$siren;
//$this->rncs=new MRncsFlux();
$this->igreffe=new MGreffes();
//$this->rncs=new MRncsFlux();
$this->igreffe=new MGreffes();
}
function __destruct() {}
/** Liste les bilans disponibles */
/** Liste les bilans disponibles au format numérique (et non PDF image) pour une entreprise
**
** @param $accesPartenaire bool Accès autorisé aux partenaires distant si le bilan est absenr
** @param $nbMaxBilans int Nombre de bilans maximums retournés
**/
function listeBilans($accesPartenaire=false, $nbMaxBilans=0) {
$iDb2=new WDB();
if ($nbMaxBilans>0) $limit="LIMIT 0, $nbMaxBilans";
@ -193,28 +315,28 @@ class MBilans {
$dateDerExercice=$ret[0]['dateExercice']*1;
if ($dateDerDepot<>0) {
$this->dernierExerciceDepose = WDate::dateT('Y-m-d','d/m/Y',@$ret2[0]['dateEffet']);
$this->dernierExerciceDeposeLe = WDate::dateT('Y-m-d','d/m/Y',@$ret2[0]['Bodacc_Date_Parution']);
$this->dernierExerciceDeposeLe = WDate::dateT('Y-m-d','d/m/Y',@$ret2[0]['Bodacc_Date_Parution']);
}
if ($accesPartenaire)
$tabRet=$tabRet2=$this->igreffe->getListeBilans($this->siren);
else
$tabRet=$tabRet2=array();
if ($ENV=='PRD') { // A supprimer le jour ou on vire l'ancien serveur car curl plantait sur Infogreffe !!!
$tabRefXml=$tabRefPdf=array();
// Tableau des références de bilans XML Infogreffe
// Tableau des références de bilans XML Infogreffe
foreach ($tabRet as $idxTmp=>$bilanTmp) {
if ((substr($idxTmp,-4)*1)>(date(Y)-4))
$tabRefXml[]=$bilanTmp['ref'];
}
$tabImg=$this->igreffe->getBilansImages($this->siren);
// Tableau des références de bilans PDF Infogreffe
// Tableau des références de bilans PDF Infogreffe
foreach ($tabImg as $idxTmp=>$bilanTmp) {
if ($bilanTmp['annee']>(date(Y)-4))
$tabRefPdf[]=$bilanTmp['ref'];
}
$tabDiff=array_diff($tabRefPdf, $tabRefXml);
if (count($tabDiff)>0) {
$strMillesimes='';
@ -229,7 +351,7 @@ class MBilans {
);
}
}
$tabTri=array();
foreach ($tabRet as $millesime=>$bil) {
$typeBilan=substr($millesime,0,1);
@ -237,7 +359,7 @@ class MBilans {
$tabTri[''.$dateExercice.'-'.$typeBilan]=$millesime;
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "listeBilans sur $this->siren après accès partenaire", print_r($tabRet2, true));
foreach ($ret as $i=>$bil) {
$millesime=WDate::dateT('Ymd','d/m/Y',$bil['dateExercice']);
$tabRet[''.$bil['typeBilan'].$millesime]=array(
@ -263,7 +385,7 @@ class MBilans {
foreach ($tabTri as $tmp=>$typeMillesime) {
$exercice=substr($tmp,0,8);
$type=substr($tmp,9,1);
$ref=$tabRet[''.$typeMillesime]['ref'];
$ref=$tabRet[''.$typeMillesime]['ref'];
if ($exercice==$exercicePre && $type=='N' && $typePre=='S' && $refPre=='') {
// Suppression du bilan RN de la liste si Réel Normal et Réel Simplifiés présents en base
unset($tabTri[$tmp]);
@ -286,14 +408,22 @@ class MBilans {
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "listeBilans sur $this->siren après le tri", print_r($tabTri, true).EOL.$strInfos.EOL);
$tabRet3=array();
foreach ($tabTri as $tmp=>$typeMillesime)
$tabRet3[''.$typeMillesime]=$tabRet[''.$typeMillesime];
$tabRet3[''.$typeMillesime]=$tabRet[''.$typeMillesime];
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "listeBilans sur $this->siren après le tri / retour", print_r($tabRet3, true));
return $tabRet3;
}
function getBilan($millesime='', $typeBilan='N', $refPart=0, $accesPartenaire=false) {
/** Retourne un bilan disponible au format numérique pour une entreprise
**
** @param $millesime date Date de cloture du bilan au format d/m/Y
** @param $typeBilan enum Type de bilan (N=Réel Normal, S=Réel Simplifié, C=Consolidé, A=Assurance, B=Banque)
** @param $refPart string Référence du bilan chez le partenaire (si $accesPartenaire=true)
** @param $accesPartenaire bool Accès autorisé aux partenaires distant si le bilan est absenr
**/
function getBilan($millesime='', $typeBilan='N', $refPart=0, $accesPartenaire=false)
{
$millesimeDB=WDate::dateT('d/m/Y','Ymd',$millesime);
$iDb2=new WDB();
if ($accesPartenaire)
@ -301,7 +431,8 @@ class MBilans {
$strSansBilansWeb=' AND partenaire<>7 ';
else
$strSansBilansWeb='';
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes, partenaire', "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$millesimeDB' $strSansBilansWeb", true, MYSQL_ASSOC);
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes, partenaire, id, confidentiel, dateInsert', "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$millesimeDB' $strSansBilansWeb", true, MYSQL_ASSOC);
$bilan=$ret[0];
if (count($ret)==0 && $accesPartenaire) {
if ($refPart=='' || $refPart==0) {
@ -315,39 +446,36 @@ class MBilans {
}
}
}
// $rncs=new MEuridile($this->siren);
// $tabBilan=$rncs->getBilan($refPart);
$tabBilan=$this->igreffe->getBilan($this->siren, $refPart);
//getBilan(479974115,'2008_sociaux-20081231-7803-04-B-03876-0013849'));
// print_r($tabBilan);
// die ("On veut le bilan $millesime $typeBilan $refPart");
$fp=fopen(LOG_PATH.'/bilans.log', 'a');
fwrite($fp, "Bilan pour ".$this->siren." :\n".print_r($tabBilan,true)."\n\n\n");
fclose($fp);
if ($tabBilan) {
if ($tabBilan)
{
$strPostes='';
foreach ($tabBilan['POSTES'] as $poste=>$valeur)
$strPostes.="$poste=$valeur;";
$tabInsert=array( 'siren' =>$this->siren,
'dateProvPartenaire'=>$tabBilan['DATE_FRAICHE_BILAN'],
'dateExercice' =>WDate::dateT('d/m/Y','Ymd',$tabBilan['DATE_CLOTURE']),
'dateExercicePre' =>WDate::dateT('d/m/Y','Ymd',$tabBilan['DATE_CLOTURE_PRE']),
'dureeExercice' =>$tabBilan['DUREE_MOIS'],
'dureeExercicePre' =>$tabBilan['DUREE_MOIS_PRE'],
'monnaie' =>$tabBilan['MONNAIE'],
'typeBilan' =>$tabBilan['TYPE_BILAN'],
'monnaieOrigine' =>$tabBilan['MONNAIE_ORI'],
'unite' =>$tabBilan['MONNAIE_LIV_UNITE'],
'postes' =>$strPostes,
'partenaire' =>$tabBilan['SOURCE'],
);
$tabInsert=array(
'siren' =>$this->siren,
'dateProvPartenaire'=>$tabBilan['DATE_FRAICHE_BILAN'],
'dateExercice' =>WDate::dateT('d/m/Y','Ymd',$tabBilan['DATE_CLOTURE']),
'dateExercicePre' =>WDate::dateT('d/m/Y','Ymd',$tabBilan['DATE_CLOTURE_PRE']),
'dureeExercice' =>$tabBilan['DUREE_MOIS'],
'dureeExercicePre' =>$tabBilan['DUREE_MOIS_PRE'],
'monnaie' =>$tabBilan['MONNAIE'],
'typeBilan' =>$tabBilan['TYPE_BILAN'],
'monnaieOrigine' =>$tabBilan['MONNAIE_ORI'],
'unite' =>$tabBilan['MONNAIE_LIV_UNITE'],
'postes' =>$strPostes,
'partenaire' =>$tabBilan['SOURCE'],
);
if (!$iDb2->insert('bilans', $tabInsert, true))
$iDb2->update('bilans', $tabInsert, "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$millesimeDB'");
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes', "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$millesimeDB'", true);
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes, partenaire, id, confidentiel, dateInsert', "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$millesimeDB'", true);
$bilan=$ret[0];
}
}
$tabBilan=$tabBilanPre=$bilanPre=array();
$tabBilan['SIREN'] = $this->siren;
$tabBilan['DATE_FRAICHE_BILAN'] = $bilan['dateProvPartenaire']; // SSAAMMJJ
@ -360,7 +488,10 @@ class MBilans {
$tabBilan['MONNAIE_ORI'] = $bilan['monnaieOrigine'];
$tabBilan['MONNAIE_LIV_UNITE'] = $bilan['unite'];
$tabBilan['SOURCE'] = $bilan['partenaire'];
$tabBilan['ID_BILAN_SD'] = $bilan['id'];
$tabBilan['DATE_BILAN_SD'] = $bilan['dateInsert'];
$tabBilan['TOP_CONFIDENTIEL'] = $bilan['confidentiel'];
// Devise et Unité
if ($bilan['monnaie']=='EUR') $monnaie='&euro;'; else $monnaie=$bilan['monnaie'];
switch (strtoupper($bilan['unite'])) {
@ -372,28 +503,32 @@ class MBilans {
default: die('Unite Bilan ('. $bilan['unite'] .') non prise en charge !'); break;
}
$tabBilan['devise'] = /*$unite.*/$monnaie;
/** Remplissage du tableau des postes du Bilan avec prise en compte de l'unité de la monnaie
**/
$tabTmp=explode(';', $bilan['postes']);
foreach ($tabTmp as $i=>$strTmp) {
$tabTmp2=explode('=', $strTmp);
if (isset($tabTmp2[1]))
if ($unite=='K' && $tabTmp2[0]<>'YP' && $tabTmp2[0]<>'YP1' && $tabTmp2[0]<>'376' // Effectifs 2033 et 2050
&& $tabTmp2[0]<>'M2G' && $tabTmp2[0]<>'M2H' // Autres effectifs
&& $tabTmp2[0]<>'ZK' && $tabTmp2[0]<>'ZK1' // Taux
&& $tabTmp2[0]<>'IJ' && $tabTmp2[0]<>'JH' && $tabTmp2[0]<>'ZR' // pour holding/ste mere
)
$tabBilan[$tabTmp2[0]]=$tabTmp2[1]*1000;
elseif ($unite=='M' && $tabTmp2[0]<>'YP' && $tabTmp2[0]<>'YP1' && $tabTmp2[0]<>'376' // Effectifs 2033 et 2050
&& $tabTmp2[0]<>'M2G' && $tabTmp2[0]<>'M2H' // Autres effectifs
&& $tabTmp2[0]<>'ZK' && $tabTmp2[0]<>'ZK1' // Taux
&& $tabTmp2[0]<>'IJ' && $tabTmp2[0]<>'JH' && $tabTmp2[0]<>'ZR' // pour holding/ste mere
)
$tabBilan[$tabTmp2[0]]=$tabTmp2[1]*1000000;
else $tabBilan[$tabTmp2[0]]=$tabTmp2[1];
if (isset($tabTmp2[1])) {
if ( ($unite=='K' || $unite=='M') && !in_array(array(
'YP', 'YP1', '376', // Effectifs 2033 et 2050
'M2G', 'M2H', // Autres effectifs
'ZK', 'ZK1', // Taux
'IJ', 'JG', 'JH', 'JJ', 'ZR', // pour holding/ste mere
'XP' // Numero de centre de gestion agréé
) , $tabTmp2[0]) )
{
if ($unite=='K') {
$tabBilan[$tabTmp2[0]]=$tabTmp2[1]*1000;
} else if ($unite=='M') {
$tabBilan[$tabTmp2[0]]=$tabTmp2[1]*1000000;
}
} else {
$tabBilan[$tabTmp2[0]]=$tabTmp2[1];
}
}
}
/** Calcul des valeures NET si l'information est absente en base
**/
if ($tabBilan['CONSOLIDE']=='N' || $tabBilan['CONSOLIDE']=='C') {
@ -430,11 +565,11 @@ class MBilans {
if (!isset($tabBilan['CG1']) && (isset($tabBilan['CF'])||isset($tabBilan['CG']))) $tabBilan['CG1']=$tabBilan['CF']-$tabBilan['CG'];
if (!isset($tabBilan['CI1']) && (isset($tabBilan['CH'])||isset($tabBilan['CI']))) $tabBilan['CI1']=$tabBilan['CH']-$tabBilan['CI'];
if (!isset($tabBilan['CK1']) && (isset($tabBilan['CJ'])||isset($tabBilan['CK']))) $tabBilan['CK1']=$tabBilan['CJ']-$tabBilan['CK'];
if (!isset($tabBilan['CL2']) && isset($tabBilan['CL'])) $tabBilan['CL2']=$tabBilan['CL'];
if (!isset($tabBilan['CM2']) && isset($tabBilan['CM'])) $tabBilan['CM2']=$tabBilan['CM'];
if (!isset($tabBilan['CN2']) && isset($tabBilan['CN'])) $tabBilan['CN2']=$tabBilan['CN'];
if (!isset($tabBilan['1A1']) && (isset($tabBilan['CO'])||isset($tabBilan['1A']))) $tabBilan['1A1']=$tabBilan['CO']-$tabBilan['1A'];
} elseif ($tabBilan['CONSOLIDE']=='S') {
//if (!isset($tabBilan['AC1']) && (isset($tabBilan['AB'])||isset($tabBilan['AC']))) $tabBilan['AC1']=$tabBilan['AB']-$tabBilan['AC'];
@ -457,17 +592,16 @@ class MBilans {
}
/** Y a t'il suffisament d'informations sur le bilan précédent
**/
if ($bilan['dateExercicePre']*1==0 || $bilan['dureeExercicePre']*1==0 ||
if ($bilan['dateExercicePre']*1==0 || $bilan['dureeExercicePre']*1==0 ||
(($tabBilan['FL1']*1==0 || $tabBilan['EE1']*1==0) && ($tabBilan['CONSOLIDE']=='N' || $tabBilan['CONSOLIDE']=='C')) || // Réel Normal ou Consolidé
(($tabBilan['NA3']*1==0 || $tabBilan['NP3']*1==0) && ($tabBilan['CONSOLIDE']=='A' || $tabBilan['CONSOLIDE']=='B')) || // Banque ou Assurance
(($tabBilan['N15']*1==0 || $tabBilan['N32']*1==0) && $tabBilan['CONSOLIDE']=='S') // Réel Simplifié
) {
/** Il n'y a aucune information sur le bilan précédent
**/
/** Il n'y a aucune information sur le bilan précédent **/
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes', "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice<'$millesimeDB' ORDER BY dateExercice DESC LIMIT 0,1", true);
$bilanPre=$ret[0];
$tabBilan['DATE_CLOTURE_PRE'] = $bilanPre['dateExercice']; // SSAAMMJJ
$tabBilan['DUREE_MOIS_PRE'] = $bilanPre['dureeExercice'];
$tabBilan['DUREE_MOIS_PRE'] = $bilanPre['dureeExercice'];
if ($bilanPre['monnaie']=='EUR') $monnaiePre='&euro;'; else $monnaiePre=$bilanPre['monnaie'];
switch (strtoupper($bilanPre['unite'])) {
case 'K': $unitePre='K'; break;
@ -478,33 +612,30 @@ class MBilans {
default: die('Unite Bilan ('. $bilanPre['unite'] .') non prise en charge !'); break;
}
$tabBilanPre['devise'] = /*$unite.*/$monnaiePre;
$tabTmp=explode(';', $bilanPre['postes']);
/* foreach ($tabTmp as $i=>$strTmp) {
$tabTmp2=explode('=', $strTmp);
if (isset($tabTmp2[1]))
if ($unitePre=='K' && $tabTmp2[0]<>'YP' && $tabTmp2[0]<>'YP1' && $tabTmp2[0]<>'376')
$tabBilanPre[$tabTmp2[0]]=$tabTmp2[1]*1000;
elseif ($unitePre=='M' && $tabTmp2[0]<>'YP' && $tabTmp2[0]<>'YP1' && $tabTmp2[0]<>'376')
$tabBilanPre[$tabTmp2[0]]=$tabTmp2[1]*1000000;
else $tabBilanPre[$tabTmp2[0]]=$tabTmp2[1];
}*/
foreach ($tabTmp as $i=>$strTmp) {
$tabTmp2=explode('=', $strTmp);
if (isset($tabTmp2[1]))
if ($unite=='K' && $tabTmp2[0]<>'YP' && $tabTmp2[0]<>'YP1' && $tabTmp2[0]<>'376' // Effectifs 2033 et 2050
&& $tabTmp2[0]<>'M2G' && $tabTmp2[0]<>'M2H' // Autres effectifs
&& $tabTmp2[0]<>'ZK' && $tabTmp2[0]<>'ZK1' && $tabTmp2[0]<>'ZR' // Taux et infos Filliales
)
$tabBilanPre[$tabTmp2[0]]=$tabTmp2[1]*1000;
elseif ($unite=='M' && $tabTmp2[0]<>'YP' && $tabTmp2[0]<>'YP1' && $tabTmp2[0]<>'376' // Effectifs 2033 et 2050
&& $tabTmp2[0]<>'M2G' && $tabTmp2[0]<>'M2H' // Autres effectifs
&& $tabTmp2[0]<>'ZK' && $tabTmp2[0]<>'ZK1' && $tabTmp2[0]<>'ZR' // Taux et infos Filliales
)
$tabBilanPre[$tabTmp2[0]]=$tabTmp2[1]*1000000;
else $tabBilanPre[$tabTmp2[0]]=$tabTmp2[1];
if (isset($tabTmp2[1])) {
if ( ($unite=='K' || $unite=='M') && !in_array(array(
'YP', 'YP1', '376', // Effectifs 2033 et 2050
'M2G', 'M2H', // Autres effectifs
'ZK', 'ZK1', // Taux
'IJ', 'JG', 'JH', 'JJ', 'ZR', // pour holding/ste mere
'XP' // Numero de centre de gestion agréé
) , $tabTmp2[0]) )
{
if ($unite=='K') {
$tabBilanPre[$tabTmp2[0]]=$tabTmp2[1]*1000;
} else if ($unite=='M') {
$tabBilanPre[$tabTmp2[0]]=$tabTmp2[1]*1000000;
}
} else {
$tabBilanPre[$tabTmp2[0]]=$tabTmp2[1];
}
}
}
/** Calcul des valeures NET N-1 si l'information est absente du bilan N-1 en base **/
if ($tabBilan['CONSOLIDE']=='N' || $tabBilan['CONSOLIDE']=='C') {
if (!isset($tabBilanPre['AA2']) && isset($tabBilanPre['AA'])) $tabBilanPre['AA2']=$tabBilanPre['AA'];
@ -540,15 +671,14 @@ class MBilans {
if (!isset($tabBilanPre['CG1']) && (isset($tabBilanPre['CF'])||isset($tabBilanPre['CG']))) $tabBilanPre['CG1']=$tabBilanPre['CF']-$tabBilanPre['CG'];
if (!isset($tabBilanPre['CI1']) && (isset($tabBilanPre['CH'])||isset($tabBilanPre['CI']))) $tabBilanPre['CI1']=$tabBilanPre['CH']-$tabBilanPre['CI'];
if (!isset($tabBilanPre['CK1']) && (isset($tabBilanPre['CJ'])||isset($tabBilanPre['CK']))) $tabBilanPre['CK1']=$tabBilanPre['CJ']-$tabBilanPre['CK'];
if (!isset($tabBilanPre['CL2']) && isset($tabBilanPre['CL'])) $tabBilanPre['CL2']=$tabBilanPre['CL'];
if (!isset($tabBilanPre['CM2']) && isset($tabBilanPre['CM'])) $tabBilanPre['CM2']=$tabBilanPre['CM'];
if (!isset($tabBilanPre['CN2']) && isset($tabBilanPre['CN'])) $tabBilanPre['CN2']=$tabBilanPre['CN'];
if (!isset($tabBilanPre['1A1']) && (isset($tabBilanPre['CO'])||isset($tabBilanPre['1A']))) $tabBilanPre['1A1']=$tabBilanPre['CO']-$tabBilanPre['1A'];
/** Reprises des valeures N-1 si l'information est absente en base
**/
/** Reprises des valeures N-1 si l'information est absente en base **/
// Actif
if (!isset($tabBilan['AA3']) && isset($tabBilanPre['AA2'])) $tabBilan['AA3']=$tabBilanPre['AA2'];
if (!isset($tabBilan['AC2']) && isset($tabBilanPre['AC1'])) $tabBilan['AC2']=$tabBilanPre['AC1'];
@ -800,119 +930,15 @@ class MBilans {
}
return $tabBilan;
}
/** Conversion des bilans Simplifiés en Réels Normal
** @param $bilanRS array Bilan au format réel simplifé (2033)
** @return array Bilan au format réel Normal (2050)
*/
function bilanSimplifie2Normal($bilanRS) {
$tabBS2BN=array('AH'=>'010',
'AI'=>'012',
'AI1'=>'013',
'AJ'=>'014',
'AK'=>'016',
'AK1'=>'017',
'AT'=>'028',
'AU'=>'030',
'AU1'=>'031',
'BH'=>'040',
'BI'=>'042',
'BI1'=>'043',
'BJ'=>'044',
'BK'=>'048',
'BK1'=>'049',
'BL'=>'050',
'BM'=>'052',
'BM1'=>'053',
'BT'=>'060',
'BU'=>'062',
'BU1'=>'063',
'BV'=>'064',
'BW'=>'066',
'BW1'=>'067',
'BX'=>'068',
'BY'=>'070',
'BY1'=>'071',
'BZ'=>'072',
'CA'=>'074',
'CA1'=>'075',
'CD'=>'080',
'CE'=>'082',
'CE1'=>'083',
'CF'=>'084',
'CG'=>'086',
'CG1'=>'087',
'CH'=>'092',
'CI'=>'094',
'CI1'=>'095',
'CJ'=>'096',
'CK'=>'098',
'CK1'=>'099',
'CO'=>'110',
'1A'=>'112',
'1A1'=>'113',
'DA'=>'120',
'DC'=>'124',
'DD'=>'126',
'DF'=>'130',
'DG'=>'132',
'DH'=>'134',
'DI'=>'136',
'DK'=>'140',
'DL'=>'142',
'DR'=>'154',
'DP'=>'154',
'DU'=>'156',
'DV'=>'169',
'DW'=>'164',
'DX'=>'166',
'EA'=>'172-169',
'EB'=>'174',
'EC'=>'176',
'EE'=>'180',
'EH'=>'156-195',
'FA'=>'210-209',
'FB'=>'209',
'FC'=>'210',
'FD'=>'214-215',
'FE'=>'215',
'FF'=>'214',
'FH'=>'217',
'FI'=>'218',
'FK'=>'209+215+217',
'FL'=>'210+214+218',
'FM'=>'222',
'FN'=>'224',
'FO'=>'226',
'FQ'=>'230',
'FR'=>'232',
'FS'=>'234',
'FT'=>'236',
'FU'=>'238',
'FV'=>'240',
'FW'=>'242',
'FX'=>'244',
'FY'=>'250',
'FZ'=>'252',
'GA'=>'254',
'GE'=>'262',
'GF'=>'264',
'GG'=>'270',
'GP'=>'280',
'GU'=>'294',
'GW'=>'270+280+294',
'HD'=>'290',
'HH'=>'300',
'HI'=>'290-300',
'HK'=>'306',
'HL'=>'232+280+290',
'HM'=>'264+294+300+306',
'HN'=>'310',
'YY'=>'374',
'YZ'=>'378',
'YP'=>'376',
);
$bilanRN=array();
foreach ($tabBS2BN as $posteRN => $formule) {
foreach ($this->tabBS2BN as $posteRN => $formule) {
if (preg_match('/\+|\-/', $formule)) {
$tabTmp=preg_split('/\+|\-/', $formule, -1, PREG_SPLIT_OFFSET_CAPTURE);
//$bilanRN[$posteRN]=0;
@ -941,12 +967,12 @@ class MBilans {
$bilanRN['BN']=$bilanRS['050'];
$bilanRN['BO']=$bilanRS['052'];
}
if ($bilanRS['070']<>0 || $bilanRS['074']<>0 || $bilanRS['052']<>0 || $bilanRS['062']<>0)
$bilanRN['GC']=$bilanRS['256'];
elseif ($bilanRS['070']==0 && $bilanRS['074']==0 && $bilanRS['052']==0 && $bilanRS['062']==0 && $bilanRS['254']<>0)
$bilanRN['GD']=$bilanRS['256'];
if ($bilanRS['584']<>0) {
$bilanRN['HB']=$bilanRS['584'];
$bilanRN['HA']=$bilanRS['290']-$bilanRS['584'];
@ -958,7 +984,7 @@ class MBilans {
$bilanRN['HE']=$bilanRS['582']-$bilanRS['300'];
} else
$bilanRN['HE']=$bilanRS['300'];
return $bilanRN;
}
}

View File

@ -1,8 +1,8 @@
<?
include_once(FWK_PATH.'common/curl.php');
require_once 'framework/common/curl.php';
class MBilans {
private $body = '';
private $header = '';
private $codeRetour = 0;
@ -12,11 +12,11 @@ class MBilans {
private $url='';
private $referer='';
private $curPage='';
public $siren;
public $dernierExerciceDepose=0;
public $dernierExerciceDeposeLe=0;
function __construct($siren) {
$this->partGetSession();
$this->siren=$siren;
@ -26,7 +26,7 @@ class MBilans {
$this->partSaveSession();
}
function listeBilans($uniquementEnBase=true) {
//if ($siren<>0) $this->siren=$siren;
$iDb2=new WDB('insee');
@ -42,7 +42,7 @@ class MBilans {
$dateDerExercice=$ret[0]['dateExercice']*1;
if ($dateDerDepot<>0) {
$this->dernierExerciceDepose = WDate::dateT('Y-m-d','d/m/Y',@$ret2[0]['dateEffet']);
$this->dernierExerciceDeposeLe = WDate::dateT('Y-m-d','d/m/Y',@$ret2[0]['Bodacc_Date_Parution']);
$this->dernierExerciceDeposeLe = WDate::dateT('Y-m-d','d/m/Y',@$ret2[0]['Bodacc_Date_Parution']);
}
echo date('Y/m/d - H:i:s') ." - Dernier depot le ". $ret2[0]['Bodacc_Date_Parution'] .", dernier en base = $dateDerExercice !<br/>\n";
if ( $dateDerDepot>$dateDerExercice ||
@ -62,9 +62,9 @@ class MBilans {
return $tabRet;
// }
}
function getBilan($millesime='', $source=1) {
$iDb2=new WDB('insee');
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes', "siren='$this->siren' AND dateExercice='$millesime'", true);
/*echo $this->siren.'<br/>';
@ -86,7 +86,7 @@ class MBilans {
'unite' =>$tabBilan['MONNAIE_LIV_UNITE'],
'postes' =>$tabBilan['POSTES'],
'partenaire' =>1,
);
);
$iDb2->insert('bilans', $tabInsert);
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes', "siren='$this->siren' AND dateExercice='$millesime'");
$bilan=$ret[0];
@ -113,7 +113,7 @@ class MBilans {
default: die('Unite Bilan ('. $bilan['unite'] .') non prise en charge !'); break;
}
$tabBilan['devise'] = /*$unite.*/$monnaie;
$tabTmp=explode(';', $bilan['postes']);
foreach ($tabTmp as $i=>$strTmp) {
$tabTmp2=explode('=', $strTmp);
@ -124,7 +124,7 @@ class MBilans {
}
return $tabBilan;
}
private function partConnection() {
if (!$this->cookie || time()>$this->timeOut) {
$this->timeOut=time()+600;
@ -134,18 +134,18 @@ class MBilans {
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
/** Redirection sur la bonne machine**/
$this->url=trim(str_replace('https://', 'http://', $this->header['Location']));
if (substr($this->url,-1)=='/') $this->url=substr($this->url, 0, strlen($this->url)-1);
$this->domaine=str_replace('/', '', str_replace('http:/', '', $this->url));
//echo "Redirection sur $this->url<br/>Domaine = $this->domaine<br/>Referer = $this->referer<br/>";
$page=getUrl($this->url, '', '', $this->referer, false, $this->domaine);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
/** Connexion LOGIN PASSWORD **/
//print_r($this->header);
$this->cookie=$this->header['Set-Cookie'];
@ -168,11 +168,11 @@ class MBilans {
$this->header=$page['header'];
}
}
private function partVitrine() {
//echo "Recherche du siren $this->siren<br/>\n";
$this->partConnection();
/** Liste des établissements **/
$urlEntrep=$this->url .'/cgi-bin/h2r?rq=hbilentl&QEREC=B&QESIR='.$this->siren
.'&QENOM=&QEPRN=&QENAIA=&QENAIM=&QECP=&QESIEG=A&QEVIL=&QENRU=&QERUE=&QEAPE=&QETEL=&QENAOB&wi=1';
@ -195,7 +195,7 @@ class MBilans {
$this->reference=$matches[1][0];
//echo "QINUME = $this->reference<br/>\n";
}
private function partListeBilans() {
$this->partVitrine();
$urlEntrep=$this->url."/cgi-bin/h2r?rq=hbilbill&QINUME=$this->reference&QISIR=$this->siren&wi=1&wc=N";
@ -216,16 +216,16 @@ class MBilans {
}
return $tabRet;
}
private function partGetBilan($millesime) {
$this->partConnection();
$urlEntrep=$this->url."/cgi-bin/h2r?rq=hbilsobi&QINUME=$this->reference&QISIR=$this->siren&wi=1&wc=N&QIMONN=EU&QIDLIM=".urlencode($millesime);
$page=getUrl($urlEntrep, $this->cookie, '', $this->url, false, $this->domaine);
echo date('Y/m/d - H:i:s') ." - Bilan $millesime de notre partenaire : $urlEntrep<br/>\n";
$bil=strip_tags($page['body']);
$bil=strip_tags($page['body']);
$fcontents=explode("\n",$bil);
$tabBilan=array();
$i=1;
@ -266,7 +266,7 @@ class MBilans {
}
return $tabBilan;
}
private function partSaveSession() {
$fp=fopen('/tmp/php_bil_session.id', 'w');
fwrite($fp,$this->cookie.'^'.$this->timeOut.'^'.$this->url.'^'.$this->siren.'^'.$this->reference);
@ -284,5 +284,4 @@ class MBilans {
}
}
?>
?>

View File

@ -1,15 +1,14 @@
<?
include_once(FWK_PATH.'common/curl.php');
class MBourse {
<?php
require_once 'framework/common/curl.php';
class MBourse
{
var $siren=false;
public function __construct($siren=0) {
$this->siren=$siren;
$this->siren=$siren;
}
public function getLibSource($source) {
switch ($source) {
case 'B': return 'Business Wire'; break;
@ -20,17 +19,44 @@ class MBourse {
default: return 'N/C'; break;
}
}
/** Vérifie la validité de la structure d'un code ISIN
**
** @param string $isin
** @return bool
**/
function isIsin($isin) {
if (strlen(trim($isin))) {
$cle = substr($isin, -1);
$isinLeft = substr($isin, 0, strlen($isin)-1);
$letter2number = array('A'=>10, 'B'=>11, 'C'=>12, 'D'=>13, 'E'=>14, 'F'=>15, 'G'=>16, 'H'=>17, 'I'=>18, 'J'=>19, 'K'=>20, 'L'=>21, 'M'=>22, 'N'=>23, 'O'=>24, 'P'=>25, 'Q'=>26, 'R'=>27, 'S'=>28, 'T'=>29, 'U'=>30, 'V'=>31, 'W'=>32, 'X'=>33, 'Y'=>34, 'Z'=>35);
$isinConvertion = strtr($isinLeft, $letter2number);
$sum = '';
$sumFinal = 0;
for($i=0; $i<strlen($isinConvertion); ++$i) $sum .= (($i % 2) ? 1 : 2)*$isinConvertion[$i];
for($i=0; $i<strlen($sum); ++$i) $sumFinal += $sum[$i];
if ($sumFinal % 10){
$cleVerif = ((int)($sumFinal/10) + 1)*10-$sumFinal;
} else {
$cleVerif = 0;
}
if ($cle == $cleVerif) {
return true;
} else
return false;
} else return false;
}
/** Obtenir le code ISIN à partir d'un siren
**
** @param integer $siren
** @param integer $siren
** @return string
**/
function getCodeIsin($siren=false) {
$iDb=new WDB();
if (!$siren)
$siren=$this->siren;
$tabTmp=$iDb->select('infos_entrep', 'isin', "siren=$siren AND isin<>''", false, MYSQL_ASSOC);
return trim(@$tabTmp[0]['isin']);
}
@ -45,60 +71,64 @@ class MBourse {
$tabTmp=$iDb->select('infos_entrep', 'siren', "isin='$isin' AND siren<>0", false, MYSQL_ASSOC);
return trim($tabTmp[0]['siren']);
}
/** A partir d'un siren, récupère les informations règlementés
**
** @param integer $siren
** @param integer $id
** @return unknown
**/
function getInfosReg($siren=false, $id=false) {
if (!$siren)
$siren=$this->siren;
function getInfosReg($siren=false, $id=null)
{
if (!$siren) $siren = $this->siren;
$isin=$this->getCodeIsin($siren);
unset($iDb);
$isin = $this->getCodeIsin($siren);
$tabRet=array();
if ($isin<>'') {
$iDb=new WDB('presse');
if ($id) $sqlID=" AND id=$id ";
else $sqlID='';
$bodacc=$iDb->select( 'articles',
'id, companyName, companyIsin, companySiren, companyWebSite, pressReleaseDate, pressReleaseTitle, '.
'pressReleaseText, pressReleaseHtml, pressReleaseAttachments, pressReleaseUrl, source, dateInsert',
"companyIsin='$isin' $sqlID ORDER BY pressReleaseDate DESC", false, MYSQL_ASSOC);
if ($isin!='') {
$iDb = new WDB('presse');
$sqlID = '';
if (null !== $id) {
$sqlID=" AND id=$id ";
}
$bodacc=$iDb->select(
'articles',
'id, companyName, companyIsin, companySiren, companyWebSite, pressReleaseDate, pressReleaseTitle, '.
'pressReleaseText, pressReleaseHtml, pressReleaseAttachments, pressReleaseUrl, source, dateInsert',
"companyIsin='$isin' $sqlID ORDER BY pressReleaseDate DESC", true, MYSQL_ASSOC);
if (count($bodacc)>0) {
foreach ($bodacc as $k=>$ann) {
if ($id)
$tabRet[$k]=array( 'id'=>$ann['id'],
'source'=>$this->getLibSource($ann['source']),
'DateParution'=>$ann['pressReleaseDate'],
'raisonSociale'=>$ann['companyName'],
'titre'=>$ann['pressReleaseTitle'],
'communique'=>$ann['pressReleaseText'],
'communiqueHtml'=>$ann['pressReleaseHtml'],
'pj'=>$ann['pressReleaseAttachments'],
'url'=>$ann['pressReleaseUrl'],
'dateInsertionSD'=>$ann['dateInsert'],
);
else
$tabRet[$k]=array( 'id'=>$ann['id'],
'source'=>$this->getLibSource($ann['source']),
'DateParution'=>$ann['pressReleaseDate'],
'raisonSociale'=>$ann['companyName'],
'titre'=>$ann['pressReleaseTitle'],
'pj'=>$ann['pressReleaseAttachments'],
'url'=>$ann['pressReleaseUrl'],
'dateInsertionSD'=>$ann['dateInsert'],
);
$tabRet[$k]=array(
'id'=>$ann['id'],
'source'=>$this->getLibSource($ann['source']),
'DateParution'=>$ann['pressReleaseDate'],
'raisonSociale'=>$ann['companyName'],
'titre'=>$ann['pressReleaseTitle'],
'communique'=>$ann['pressReleaseText'],
'communiqueHtml'=>$ann['pressReleaseHtml'],
'pj'=>$ann['pressReleaseAttachments'],
'url'=>$ann['pressReleaseUrl'],
'dateInsertionSD'=>$ann['dateInsert'],
);
else
$tabRet[$k]=array(
'id'=>$ann['id'],
'source'=>$this->getLibSource($ann['source']),
'DateParution'=>$ann['pressReleaseDate'],
'raisonSociale'=>$ann['companyName'],
'titre'=>$ann['pressReleaseTitle'],
'pj'=>$ann['pressReleaseAttachments'],
'url'=>$ann['pressReleaseUrl'],
'dateInsertionSD'=>$ann['dateInsert'],
);
}
}
}
return $tabRet;
}
/** A partir d'un siren, récupère les informations boursières
**
** @param integer $siren
@ -115,16 +145,16 @@ class MBourse {
$timer['infosBoursieres-getCodeIsin']=microtime(true);
$tabRet=array();
if ($isin<>'') {
$datePre=date('Y-m').'-01';
$tabRes=$iDb->select( 'bourse_isin b, bourse_cours c',
'siren, raisonSociale, adresse, effectif, code_sicovam, code_mnemo, code_bloomberg, code_datastream, code_isin, logo, code_ric, '.
'dateIntroduction, dateDerAG, dateRadiation, autre_isin, eligibleSRD, eligiblePEA, nombreTitres, tel1, tel2, fax1, fax2, web, mail, '.
'marche, placeCotation, description, secteur, activite, activiteDet, dirigeants, actionnaires, chiffresTrim, '.
'c.autre, c.`date`, c.`heure`, c.`open` , c.`high` , c.`low` , c.`close` , c.`volume`',
"code_isin='$isin' /*OR siren=$siren)*/ AND b.code_isin=c.isin AND c.autre IN('','e','f','g','m','s','u') AND c.`date`>='$datePre' ORDER BY b.dateUpdate DESC, c.dateInsert DESC LIMIT 0,1", false, MYSQL_ASSOC);
$tabRes=$iDb->select( 'bourse_isin b, bourse_cours c',
'siren, raisonSociale, adresse, effectif, code_sicovam, code_mnemo, code_bloomberg, code_datastream, code_isin, logo, code_ric, '.
'dateIntroduction, dateDerAG, dateRadiation, autre_isin, eligibleSRD, eligiblePEA, nombreTitres, tel1, tel2, fax1, fax2, web, mail, '.
'marche, placeCotation, description, secteur, activite, activiteDet, dirigeants, actionnaires, chiffresTrim, '.
'c.autre, c.`date`, c.`heure`, c.`open` , c.`high` , c.`low` , c.`close` , c.`volume`',
"code_isin='$isin' /*OR siren=$siren)*/ AND b.code_isin=c.isin AND c.autre IN('','e','f','g','m','s','u') ORDER BY c.`date` DESC, c.`heure` DESC LIMIT 0,1", false, MYSQL_ASSOC);
$tabRet=$tabRes[0];
$timer['infosBoursieres-infosIsin']=microtime(true);
$tabRes=$iDb->select( 'bourse_cours',
'min(close) AS coursMin, avg(close) AS coursMoy, max(close) AS coursMax',
"isin='$isin' GROUP BY isin", false, MYSQL_ASSOC);
@ -133,73 +163,7 @@ class MBourse {
$tabRet['coursMoy']=$tabTmp['coursMoy'];
$tabRet['coursMax']=$tabTmp['coursMax'];
$timer['infosBoursieres-derniersCours']=microtime(true);
/*
$tabRes=$iDb->select( 'bourse_cours',
'`date`, close',
"isin='$isin' AND autre IN('','e','f','g','m','s','u') AND heure=9999 AND ( ".
"`date`=DATE_SUB(CURDATE(), INTERVAL 6 DAY) OR ".
"`date`=DATE_SUB(CURDATE(), INTERVAL 7 DAY) OR ".
"`date`=DATE_SUB(CURDATE(), INTERVAL 8 DAY) OR ".
"`date`='".date('Y')."-01-02' OR ".
"`date`='".date('Y')."-01-03' OR ".
"`date`='".date('Y')."-01-04' OR ".
"`date`=DATE_SUB(CURDATE(), INTERVAL 365 DAY) OR ".
"`date`=DATE_SUB(CURDATE(), INTERVAL 366 DAY) OR ".
"`date`=DATE_SUB(CURDATE(), INTERVAL 367 DAY) OR ".
"`date`=MIN(`date`) ) GROUP BY `date` ORDER BY `date` DESC", false, MYSQL_ASSOC);
$tabTmp=$tabRes[0];
print_r($tabTmp);
*/
/* Variations en clôture du 07/03/2008
Variation 5 jours -2.03%
Variation au 1 janvier +9.36%
Variation 1 an +13.84%
Variation 10 ans NC
Volumes
Volume séance 2 253
Volume moy. 20 séances 16 326
Ratio volumes 13.80%
Nombre de titres 113 038 156
Capital échangé séance 0.00%
Extrêmes
Plus haut 10 ans (14/02/2008) 78.5
Plus bas 10 ans (18/04/2005) 41.12*/
/*$tabRet[]=array( 'siren'=>$tabBourse,
'raisonSociale',
'adresse',
'effectif',
'code_sicovam',
'code_mnemo',
'code_bloomberg',
'code_datastream',
'code_isin',
'logo',
'code_ric',
'dateIntroduction',
'dateDerAG',
'dateRadiation',
'autre_isin',
'eligibleSRD',
'eligiblePEA',
'nombreTitres',
'tel1',
'tel2',
'fax1',
'fax2',
'web',
'mail',
'marche',
'placeCotation',
'description',
'secteur',
'activite',
'activiteDet',
'dirigeants',
'actionnaires',
'chiffresTrim'
);*/
}
return $tabRet;
}
}
?>
}

View File

@ -1,17 +1,17 @@
<?
include_once(FWK_PATH.'common/curl.php');
require_once 'framework/common/curl.php';
class MCoface {
public $body = '';
public $header = '';
public $codeRetour = 0;
public $nscrl = 0; // Numéro interne SCRL
public $rcsVille='';
public $rcsType='';
public $rSocAdrCPVille=''; // RaisonSocialeAdresseVille (utile pour le débug)
public $raisonSociale=''; // Raison Sociale
public $adresse=''; // Adresse complète (avec CP et Cille)
@ -19,14 +19,14 @@ class MCoface {
public $sigle='';
public $enseigne='';
public $nbEtab='';
public $adrNumVoie;
public $adrIndRep;
public $adrTypeVoie;
public $adrLibVoie;
public $adrCP;
public $adrVille;
public $tel='';
public $fax='';
public $web='';
@ -38,7 +38,7 @@ class MCoface {
public $bourseIsin='';
public $bourseMarche='';
public $bourseVille='';
public $tabInfos=array();
public $tabBilans=array();
@ -73,17 +73,17 @@ class MCoface {
public $tabAct=array();
public $tabFil=array();
public $tabEtab=array();
function __construct($siren) {
// $iDb=new WDB();
$referer='';
$url='http://www.cofacerating.fr/portail/entreprise_identite/identite.asp?ip=pagespro&lg=fr&nsiren='.$siren;
$page=getUrl($url, '', '', $referer, false, 'www.cofacerating.fr', '', 10);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
$this->header=$page['header'];
$this->nscrl=@getTextInHtml($this->body, '&nscrl=', '=','&');
$this->rSocAdrCPVille=trim(str_replace(chr(160), ' ', html_entity_decode(utf8_encode(@getTextInHtml($this->body, '<td WIDTH="40%" bgcolor="#F3E5CC" class="tabligne"> <b> Raison sociale<br>', '<td WIDTH="60%" bgcolor="#FFF3DE" class="tabval"><b>','</tr>')))));
$tmp=explode('<br>', $this->rSocAdrCPVille);
@ -94,13 +94,13 @@ class MCoface {
$this->fax=trim(@getTextInHtml($this->body, 'Télécopie</b></td>', '<br>', '</td>'));
$this->web=trim(@getTextInHtml($this->body, '<td bgcolor="#F3E5CC" class="tabligne"><b>Adresse internet <br>', ' class="tabval"><a class="tabval" HREF="', '" target="_new">'));
$this->mail=trim(@getTextInHtml($this->body, '<a class="tabval" href="mailto:', ':', '">'));
$bourse=trim(@getTextInHtml($this->body, 'Ville Bourse</b></td>', 'class="tabval">', '</td>'));
$tmp=explode('<br>', $bourse);
$this->bourseIsin=trim($tmp[0]);
$this->bourseMarche=trim($tmp[1]);
$this->bourseVille=trim($tmp[2]);
$infosDispo=trim(@getTextInHtml($this->body, '<b>Liste Produits</b><br></td>', '<br></td><td class="menu3"><img src="../images/vide.gif" border="0"><br></td><td colspan="2" class="menu3">', 'Un secteur ou une région en France</a><br></td>'));
$tabTmp=explode('<a href="', $infosDispo);
foreach ($tabTmp as $k=>$lien) {
@ -108,21 +108,21 @@ class MCoface {
if ($matches[2]<>'') $this->tabInfos[$matches[2]]=$matches[1];
if (substr($matches[2], 0, 12)=='rapport éco.') $this->infoEco='http://www.cofacerating.fr/portail/entreprise_identite/'.$matches[1];//ip=pagespro&
elseif (substr($matches[2], 0, 6)=='bilan ') $this->tabBilans[]=substr($matches[2], 6,strlen($matches[2])-6);
}
}
$this->activite=trim(str_replace(chr(160), ' ', html_entity_decode(utf8_encode(@getTextInHtml($this->body, '<td WIDTH="40%" bgcolor="#F3E5CC" class="tabligne" valign="top"><b>Libellé code activité </b></td>', '<td WIDTH="60%" bgcolor="#FFF3DE" class="tabval">', '</td>')))));
$this->naf=trim(@getTextInHtml($this->body, '<a href="../chaineeco_dynaeco/DynaEco.asp?cnaf=', 'cnaf=', '&'));
/**
/**
** Recherche du NIC sur Société .com
**/
/*
$refererS='http://www.societe.com/';
$urlS='http://www.societe.com/cgi-bin/recherche?rncs='.$siren.'&vu=1';
$page=getUrl($urlS, '', '', $refererS, false, 'www.societe.com');
$ste=$page['body'];
$this->nic=trim(@getTextInHtml($ste, 'SIRET</div><div class="ficheAltCol2 size11">', $siren, '</div>'));
$strTmp=trim(@getTextInHtml($ste, '<b><span class="size10">RCS', 'RCS ', ' '.substr($siren,0,3)));
$tabTmp=explode(' ', $strTmp);
$this->rcsVille=$tabTmp[0];//<td class="txtBlanc" align="left"><b><span class="size10">RCS Paris B 552 144 503<br></span></b></td>
@ -132,18 +132,18 @@ class MCoface {
$tabTmp=explode(' - ', $strTmp);
$this->naf=$tabTmp[0];
$this->nafLib=$tabTmp[1];
// <div class="ficheAltCol1 size11">Siège social</div><div class="ficheAltCol2 size11">75 Avenue la Grande Armee - 75116 PARIS 16</div>
$strTmp=trim(@getTextInHtml($ste, '<div class="ficheAltCol1 size11">Capital social', '<div class="ficheAltCol2 size11">', '</div>'));
$this->capitalType='social';
$tabTmp=explode(' ', $strTmp);
$this->capitalMontant=str_replace(',', '.', str_replace('.', '', $tabTmp[0]));
$this->capitalDevise =$tabTmp[1];
$this->fj=trim(@getTextInHtml($ste, '<div class="ficheAltCol1 size11">Forme juridique', '<div class="ficheAltCol2 size11">', '</div>'));
$this->nationalite=trim(@getTextInHtml($ste, '<div class="ficheAltCol1 size11">Nationalit&eacute;</div>', '<div class="ficheAltCol2 size11">', '</div>'));
$strTmp=trim(@getTextInHtml($ste, '&nbsp;DIRIGEANT(S)&nbsp;</span></span></div>', '<div class="ficheCadre" style="min-height:85px;">', '<div class="spacer"></div>'));
$tabTmp=explode('<div class="h1bleu2"></div>', $strTmp);
foreach ($tabTmp as $k=>$dir) {
@ -178,7 +178,7 @@ class MCoface {
'nomdirRech'=>'',
'predirRech'=>'',
'sirenRech'=>$siren,
'telRech'=>'',);
'telRech'=>'',);
// 'Rechercher'=>'',
$url=$urlRacine.'liste_result.html';
$referer=$urlRacine.'recherche_entreprise.html';
@ -189,9 +189,9 @@ class MCoface {
if(preg_match_all('/<a href="choix_pdt\.html\?(.*)" class="tt1">(.*)<\/a><\/span><br>/i', $page['body'], $matches))
$urlInfoD=$urlRacine.'choix_pdt.html?'.$matches[1][0];
else
else
$urlInfoD='';
$page=getUrl($this->infoEco, '', '', $url, false, 'www.cofacerating.fr');
if (strpos($page['body'], '<b>Choix du mode de paiement</b>')===false) { // Le rapport éco. est cadeau !!!
$this->infoEco=true;
@ -203,13 +203,13 @@ class MCoface {
$tabTmp=explode('&nbsp', $tabTmp[1]);
$this->capitalMontant=trim(str_replace(chr(160), '', $tabTmp[0]));
$this->capitalDevise =trim(str_replace(chr(160), '', $tabTmp[1]));
$this->steInactive=trim(@getTextInHtml($eco, ' class="tabligne" > Société inactive</td>', 'class="tabval" >', '</td>'));
$this->dateCreation=trim(@getTextInHtml($eco, ' class="tabligne" > Date de création</td>', 'class="tabval" >', '</td>'));
$this->fj=trim(@getTextInHtml($eco, ' class="tabligne" > Forme juridique</td>', 'class="tabval" >', '</td>'));
$this->effectif=trim(@getTextInHtml($eco, ' class="tabligne" > Effectif', 'class="tabval" >', '</td>'));
if (count($this->tabDirigeants)==0) { // Si il y a déjà des dirigeants on garde ceux de Société.com !!!
$strTmp=trim(@getTextInHtml($eco, ' class="tabligne" > Cotation en bourse</td>', '<td bgcolor="#F3E5CC" class="tabligne" >', '<td bgcolor="#F3E5CC" class="tabligne" > Effectif'));
$tabTmp=explode('<td bgcolor="#F3E5CC" class="tabligne" >', $strTmp);
@ -219,11 +219,11 @@ class MCoface {
$this->tabDirigeants[]=array('FONCTION'=>trim(strip_tags($tabTmp1[0])), 'GENRE'=>trim($tabTmp2[0]), 'PRENOM'=>trim($tabTmp2[1]), 'NOM'=>trim($tabTmp2[2]));
}
}
$this->strLiensFi=trim(strip_tags(@getTextInHtml($eco, '<td class="tabtot">LIENS FINANCIERS</td>', '<tr>', '</td></tr>')));
$this->strElemsFi=trim(strip_tags(@getTextInHtml($eco, '<td class="tabtot">ELEMENTS FINANCIERS</td>', '<tr>', '</td></tr>')));
}
$refererP='http://www.score3.fr/';
$urlP='http://www.score3.fr/entreprise.shtml?siren='.$siren;
$page=getUrl($urlP, '', '', $refererP, false, 'www.score3.fr');
@ -231,19 +231,19 @@ class MCoface {
$fp=fopen('./pouet.html', 'w');
fwrite($fp, $pou);
fclose($fp);
if ($urlInfoD<>'') {
$page=getUrl($urlInfoD,$strCookie,'', $refererInfoD, false, 'infobilan.decideur.com');
$referer=$urlInfoD;
if ($this->nscrl==0) $this->nscrl=@getTextInHtml($url, 'nscrlP=', '=','&');
$url=$urlRacine.'fiche_ident.html';
$page=getUrl($url,$strCookie,'', $referer, false, 'infobilan.decideur.com');
$this->body=$page['body'];
if ($this->raisonSociale=='')
$this->raisonSociale=trim(@getTextInHtml($this->body, '<span class="libelle2">Soci&eacute;t&eacute;', ' :', '</span>'));
if ($this->adresse=='')
$this->adresse=trim(@getTextInHtml($this->body, '<span class="libelle2">Adresse</span> <strong>:', '</strong>', '</td>'));
@ -257,19 +257,19 @@ class MCoface {
$this->mail=trim(@getTextInHtml($this->body, '<span class="libelle2">E-mail</span>', '<a href="mailto:', '">'));
if ($this->naf=='')
$this->naf=trim(@getTextInHtml($this->body, '<span class="libelle2">Code NAF</span>', ' :', '</td>'));
if(preg_match('/<td valign="top"><span class="libelle2">Capital social<\/span> : (\d*)(.*)<br>/isU', $this->body, $matches)
&& ($this->capitalMontant=='' || $this->capitalDevise=='')) {
$this->capitalMontant=trim($matches[1]);
$this->capitalDevise=trim($matches[2]);
}
if ($this->fj=='')
$this->fj=trim(@getTextInHtml($this->body, '<span class="libelle2">Forme juridique</span>', ' :', '<br>'));
if ($this->nationalite=='')
$this->nationalite=trim(@getTextInHtml($this->body, '<span class="libelle2">Nationalit&eacute;</span>', ' :', '</td>'));
if ($this->effectif=='')
$this->effectif=trim(@getTextInHtml($this->body, '<td valign="top"><span class="libelle2">Effectif</span>', ' :', '<br>'));
$this->effectif=trim(@getTextInHtml($this->body, '<td valign="top"><span class="libelle2">Effectif</span>', ' :', '<br>'));
if ($this->activite=='')
$this->activite=trim(@getTextInHtml($this->body, '<span class="libelle2">Activit&eacute;</span>', ' :', '<br>'));
@ -282,7 +282,7 @@ class MCoface {
$this->tabAct[$i]['rcs']=trim(str_replace('RCS : ','',strip_tags($matches[3][$i])));
}
}
/** Filiales **/
$strTmp=trim(@getTextInHtml($this->body, 'FILIALES<br>', '</div></h1>', '<h1>'));
if(preg_match_all('/<p><span class="libelle2">(.*)<\/span> - <span class="libelle2">Participation<\/span> :(.*)%<br>(.*)<\/p>/isU', $strTmp, $matches)) {
@ -292,7 +292,7 @@ class MCoface {
$this->tabFil[$i]['rcs']=trim(str_replace('RCS :','',strip_tags($matches[3][$i])));
}
}
/** CA et Résultat **/
$strTmp=trim(@getTextInHtml($this->body, '<h1>PRINCIPAUX ELEMENTS FINANCIERS<br>', '</div></h1>', '</p>'));
if(preg_match('/<p><span class="libelle2">CA (.*)<\/span>(.*)<br>/isU', $strTmp, $matches)) {
@ -308,7 +308,7 @@ class MCoface {
fwrite($fp, $infoBilan);
fclose($fp);
}
if ($this->nbEtab=='' || $this->nbEtab=='0') {
$this->nbEtab=trim(strip_tags(str_replace('afficher la liste...', '', @getTextInHtml($pou, '<tr><td class="ligne1_2">Etablissements </td>', '<td class="ligne2_2">', '</td></tr>'))));
$urlPEtab='http://www.score3.fr/etablissements.shtml?page=1&siren='.$siren;
@ -321,7 +321,7 @@ class MCoface {
$this->tabEtab[$i]['siren']=$siren;
$this->tabEtab[$i]['nic']=$nic;
$this->tabEtab[$i]['siret']=$siren.$nic;
$this->tabEtab[$i]['enseigne']=trim(str_replace(chr(160),' ',utf8_decode(strip_tags(@getTextInHtml($strEtab, '<span class="titre3">', '">', '</span>')))));
$this->tabEtab[$i]['adresse']=trim(str_replace(chr(160),' ',utf8_decode(strip_tags(@getTextInHtml($strEtab, '<span class="infos">', '">', '<br>')))));
$strTmp=trim(str_replace(chr(160),' ',utf8_decode(strip_tags(@getTextInHtml($strEtab, '<span class="infos">', '<br>', '</span>')))));
@ -343,21 +343,21 @@ class MCoface {
fwrite($fp, $pou2);
fclose($fp);
}
if ($this->effectif=='' || $this->effectif=='0' || $this->effectif=='NC')
$this->effectif=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Effectifs</td>', '<td class="ligne2_2">', '</td></tr>'));
if ($this->dateImmatriculation=='' || $this->dateImmatriculation=='0')
$this->dateImmatriculation=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Date d\'immatriculation</td>', '<td class="ligne2_2">', '</td></tr>'));
if ($this->dateFermeture=='' || $this->dateFermeture=='0')
$this->dateFermeture=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Date de fin d\'exploitation</td>', '<td class="ligne2_2">', '</td></tr>'));
if ($this->tel=='' || $this->tel=='0')
$this->tel=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Téléphone</td>', '<td class="ligne2_2">', '</td></tr>'));
if ($this->fax=='' || $this->fax=='0')
$this->fax=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Fax</td>', '<td class="ligne2_2">', '</td></tr>'));
$strTmp=trim(@getTextInHtml($pou, 'Procédures collectives</td></tr>', '</table></td>', '</td><td background'));
if(preg_match_all('/<tr><td class="ligne1_2">(.*)<\/td><td class="ligne2_2">(.*)<\/td><\/tr>/isU', $strTmp, $matches)) {
foreach ($matches[1] as $i=>$jug) {
@ -365,12 +365,12 @@ class MCoface {
$this->tabJug[$i]['juge']=$matches[2][$i];
}
}
$this->score_pouey=trim(@getTextInHtml($pou, '<param name="movie" value="cadran.swf?rotation=', '&amp;type=pouey&amp;valeur=', '">'));
$this->score_conan=trim(@getTextInHtml($pou, '<param name="movie" value="cadran.swf?rotation=', '&amp;type=ch&amp;valeur=', '">'));
$this->score_afdcc=trim(@getTextInHtml($pou, '<param name="movie" value="cadran.swf?rotation=', '&amp;type=afdcc&amp;valeur=', '">'));
$this->vigilance =trim(@getTextInHtml($pou, '<param name="movie" value="vigilance.swf', 'degre=', '">'));
if(preg_match('/Date de l\'exercice<\/td><td class="ligne2_2">(.*) sur (\d*) mois<\/td><\/tr>/isU', $pou, $matches)) {
$this->derExerciceDClot=trim($matches[1]);
$this->derExerciceDuree=trim($matches[2]);
@ -382,7 +382,7 @@ class MCoface {
*/
if ($this->codeRetour==200)
return true;
return false;
}

View File

@ -29,11 +29,11 @@ $action=$_REQUEST['action'];
if ($action<>'' && $action<>'commande') die('Paramètres incorrects !');
$raisonSociale=$tabInfo['entrep']['raisonSociale'];
include_once(INCLUDE_PATH.'partenaires/classMTva.php');
include_once(INCLUDE_PATH.'partenaires/classMMap.php');
include_once(INCLUDE_PATH.'partenaires/classMCoface.php');
include_once(FWK_PATH.'common/dates.php');
require_once 'Metier/partenaires/classMTva.php';
require_once 'Metier/partenaires/classMMap.php';
require_once 'Metier/partenaires/classMCoface.php';
require_once 'framework/common/dates.php';
/** Utilisation du WS **/
@ -53,7 +53,7 @@ $client = new SoapClient(null, array( 'trace' => 1,
//'use' => SOAP_ENCODED,
));
*/
$req='<xmlrequest>'.
'<header>'.
'<username>'.CREDITSAFE_WS_USER.'</username>'.
@ -70,7 +70,7 @@ $client = new SoapClient(null, array( 'trace' => 1,
"<companynumber>$siret</companynumber>".
'</body>'.
'</xmlrequest>';
$success=true;
$date=date('Ymd');
$fichier="$siret-$date.xml";
@ -108,15 +108,15 @@ $client = new SoapClient(null, array( 'trace' => 1,
$page=getUrl($url, $cookie, '', $referer, false, '', '');
$referer=$url;
$xml=html_entity_decode($page['body'], ENT_QUOTES, 'UTF-8');
/** Enregistrement du fichier XML en provenance des greffes
**/
$fp=@fopen('/var/www/site_extranet/www/creditsafe/xml/'.$fichier, 'w');
@fwrite($fp, $xml);
@fclose($fp);
$O = $client->setLog('scorecsf', $siret);
} else {
/** Lecture du fichier XML en provenance des greffes
**/
@ -125,7 +125,7 @@ $client = new SoapClient(null, array( 'trace' => 1,
}
/*<>100</rating>
2000000</creditlimit>*/
$dom_object = new DomDocument2();
$dom_object->load('/var/www/site_extranet/www/creditsafe/xml/'.$fichier);
/* create DOMXPath object with our DOMObject
@ -144,16 +144,16 @@ foreach ($result as $annonce) {
$libelle='';
if (strtoupper($creditlimit)<>strtolower($creditlimit) || $creditlimit=='')
$strCreditlimit=$creditlimit;
else
else
$strCreditlimit=number_format($creditlimit,null,null,' '). ' &euro;';
if ($rating>=40) {
$fontColor='green';
$imgFeux='<img src="/creditsafe/img/feux_vert.png"/>';
if ($rating>=71) $libelle='Très bonne cote de crédit/solvabilité';
elseif ($rating>=51) $libelle='Bonne cote de crédit/solvabilité';
else $libelle='Solvable';
} elseif ($rating>=20) {
$fontColor='yellow';//#f2be2c';
$imgFeux='<img src="/creditsafe/img/feux_orange.png"/>';
@ -172,7 +172,7 @@ foreach ($result as $annonce) {
if ($rating==0) $libelle='Entreprise en situation de défaillance et ayant un très fort risque de radiation';
else $libelle='Avertissement - Crédit à votre discrétion';
}
?><table width="580" border="0" align="left" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><img src="./img/rub_evaluation.png" width="577" height="36"></td>
@ -207,7 +207,7 @@ foreach ($result as $annonce) {
.grey_gradiant .v20 { background: #bcbcbc; }
.grey_gradiant .v10 { background: #c8c8c8;-->
<tr><td colspan="3">
<table cellspacing="0">
<tr>
<td width="20">&nbsp;</td>
@ -232,7 +232,7 @@ foreach ($result as $annonce) {
<td colspan="5" align="right"><img src="/creditsafe/img/logo_creditsafe.png"/></td>
</tr>-->
</table>
</td>
</tr>
<?
@ -249,7 +249,7 @@ foreach ($result as $annonce) {
$message='Entreprise mise sous surveillance scoring partenaire !';
mail( 'contact@scores-decisions.com',"Demande de surveillance score CreditSafe pour $siren à ".$_REQUEST['email'],
'REQUEST='.EOL.print_r($_REQUEST,true).'EOL'.
'SERVER='.EOL.print_r($_SERVER,true).'EOL'.
'SERVER='.EOL.print_r($_SERVER,true).'EOL'.
'SESSION='.EOL.print_r($_SESSION,true).'EOL'.
'ENV='.EOL.print_r($_ENV,true).'EOL'.
'tabInfo='.print_r($tabInfo,true));
@ -266,13 +266,13 @@ foreach ($result as $annonce) {
</tr>
<?php
}
class DomDocument2 extends DOMDocument {
function getValueFromTag($tagName) {
$items=$this->getElementsByTagName($tagName);
foreach ($items as $item) {
return utf8_decode($item->nodeValue);
}
}

View File

@ -1,12 +1,12 @@
<?
include_once(FWK_PATH.'common/curl.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'partenaires/classMEuridile.php');
require_once 'framework/common/curl.php';
require_once 'framework/common/dates.php';
require_once 'Metier/partenaires/classMEuridile.php';
class MBilans {
public $siren;
function __construct($siren) {
$this->siren=$siren;
}
@ -14,7 +14,7 @@ class MBilans {
function __destruct() {}
/** Adapter cette classe pour qu'elle utilise la classe MEuridile et la base Bilans Local **/
/** Liste des dirigeants actifs
**/
function listeDirigeants() {
@ -32,7 +32,7 @@ class MBilans {
$dateDerExercice=$ret[0]['dateExercice']*1;
if ($dateDerDepot<>0) {
$this->dernierExerciceDepose = WDate::dateT('Y-m-d','d/m/Y',@$ret2[0]['dateEffet']);
$this->dernierExerciceDeposeLe = WDate::dateT('Y-m-d','d/m/Y',@$ret2[0]['Bodacc_Date_Parution']);
$this->dernierExerciceDeposeLe = WDate::dateT('Y-m-d','d/m/Y',@$ret2[0]['Bodacc_Date_Parution']);
}
/*
//echo date('Y/m/d - H:i:s') ." - Dernier depot le ". $ret2[0]['Bodacc_Date_Parution'] .", dernier en base = $dateDerExercice !<br/>\n";
@ -54,7 +54,7 @@ class MBilans {
}
return $tabRet;
}
function getBilan($millesime='', $typeBilan='N', $refPart=0) {
$millesime=WDate::dateT('d/m/Y','Ymd',$millesime);
$iDb2=new WDB('insee');
@ -63,7 +63,7 @@ class MBilans {
if (count($ret)==0) {
$rncs=new MEuridile($this->siren);
$tabBilan=$rncs->getBilan($refPart);
if ($tabBilan) {
$strPostes='';
foreach ($tabBilan['POSTES'] as $poste=>$valeur)
@ -80,7 +80,7 @@ class MBilans {
'unite' =>$tabBilan['MONNAIE_LIV_UNITE'],
'postes' =>$strPostes,
'partenaire' =>2,
);
);
$iDb2->insert('bilans', $tabInsert);
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes', "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$millesime'");
$bilan=$ret[0];
@ -107,7 +107,7 @@ class MBilans {
default: die('Unite Bilan ('. $bilan['unite'] .') non prise en charge !'); break;
}
$tabBilan['devise'] = /*$unite.*/$monnaie;
$tabTmp=explode(';', $bilan['postes']);
foreach ($tabTmp as $i=>$strTmp) {
$tabTmp2=explode('=', $strTmp);

View File

@ -1,13 +1,13 @@
<?
include_once(FWK_PATH.'common/curl.php');
require_once 'framework/common/curl.php';
/** La classe MEuridile permet de récupérer les informations suivantes :
** - Bilans
** - Identité complète (dirigeants, etablissements, etc...)
** - Liste des actes déposés aux greffes
**/
class MEuridile {
private $body = '';
private $header = '';
private $codeRetour = 0;
@ -20,7 +20,7 @@ class MEuridile {
private $referer='';
private $curPage='';
public $siren;
private $tabBS2BN=array('AH'=>'010',
'AI'=>'012',
'AJ'=>'014',
@ -68,7 +68,7 @@ class MEuridile {
'EB'=>'174',
'EC'=>'176',
'EE'=>'180',
'EH'=>'156-195',
'EH'=>'156-195',
'FA'=>'210-209',
'FB'=>'209',
'FC'=>'210',
@ -110,7 +110,7 @@ class MEuridile {
'YZ'=>'378',
'YP'=>'376',
);
function __construct() {
$this->partGetSession();
$this->partConnection();
@ -125,11 +125,11 @@ class MEuridile {
$this->partConnection();
return $this->partVitrine(true);
}
function listBilans($siren) {
$tabRet=array();
$tab=$this->getInfosDisponbiles($siren);
if ($tab['erreur']=='') {
if ($tab['erreur']=='') {
$tabS=@array_reverse(@array_keys($tab['bilans']['S'])); // Réel simplifié
$tabN=@array_reverse(@array_keys($tab['bilans']['N'])); // Réel normal
$tabC=@array_reverse(@array_keys($tab['bilans']['C'])); // CONSOLIDE
@ -179,11 +179,11 @@ class MEuridile {
);
}
foreach ($tabA as $num=>$millesime) {
}
foreach ($tabB as $num=>$millesime) {
}
}
return $tabRet;
@ -192,7 +192,7 @@ class MEuridile {
function getBilan($refBilan) {
return $this->partBilan($refBilan);
}
function getIdentite($siren) {
$this->siren=$siren;
return $this->partIdentite();
@ -201,7 +201,7 @@ class MEuridile {
private function partConnection() {
if (!$this->wrncsrv2 || time()>$this->timeOut) {
$this->timeOut=time()+900;
$this->url=$this->urlRacine.'/index.ow';
$page=getUrl($this->url, '', '', $this->urlRacine, false, 'www.euridile.com');
$this->referer=$this->url;
@ -216,7 +216,7 @@ class MEuridile {
$this->url=$this->urlRacine.'/'.$matches[1];
else debugLog('E',"Erreur de communication - Redirection impossible sur ".$this->url,__LINE__,__FILE__,__FUNCTION__,__CLASS__);
debugLog('I','Redirection trouvée sur la page '.$this->url,__LINE__,__FILE__,__FUNCTION__,__CLASS__);
if (preg_match('/\.ow\?WRNCSRV2=(.*)$/i', $matches[1], $matches)) {
$this->wrncsrv2=$matches[1];
debugLog('I','Session partenaire WRNCSRV2='.$this->wrncsrv2,__LINE__,__FILE__,__FUNCTION__,__CLASS__);
@ -245,7 +245,7 @@ class MEuridile {
debugLog('D',"Authentification possible vers $this->url",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
}
else debugLog('E',"Authentification impossible car formulaire indisponible",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
sleep(1);
$page=getUrl($this->url,'', $postData, $this->referer, false, 'www.euridile.com');
$this->referer=$this->url;
@ -256,13 +256,13 @@ class MEuridile {
$fp=fopen('./euridile_connexion3.log', 'w');
fwrite($fp,print_r($page,true));
fclose($fp);
if(preg_match('/\/'.$this->weur.'\/iden_evaluation_type_(.*)/i', $this->body, $matches))
{ $tabTmp=explode('"', $matches[0]);
$this->url=$this->urlRacine.$tabTmp[0];
debugLog('D',"Page de recherche recherche trouvée = $this->url>",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
} else debugLog('E',"Erreur de communication - Recherche introuvable !",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
$this->curPage='recherche';
} //else echo date('Y/m/d - H:i:s') ." - Deja connecte !<br/>".EOL;
return true;
@ -283,24 +283,24 @@ class MEuridile {
$this->url=$this->urlRacine.$tabTmp[0];
debugLog('D',"Page de recherche recherche trouvée = $this->url>",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
} else debugLog('E',"Erreur de communication - Recherche introuvable !",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
$this->curPage='recherche';
$fp=fopen('./euridile_recherche.log', 'w');
fwrite($fp,print_r($page,true));
fclose($fp);
}
}
private function partVitrine($listeDocuments=false) {
if ($this->curPage<>'recherche')
$this->partInitRecherche();
$iDb=new WDB('jo');
/* $ret=$iDb->select( 'rncs_vitrine',
'siren, erreur, rcs, nom, adresse1, cp, ville, fj_lib, naf_code, naf_lib, bilans, dateUpdate',
"siren=$this->siren", false, MYSQL_ASSOC);
if (count($ret)) {
/** On vérifie qu'aucune annonce n'a été publié depuis au bodacc
/** On vérifie qu'aucune annonce n'a été publié depuis au bodacc
**
$tabRet=$ret[0];
$ret=$iDb->select( 'bodacc_detail', 'count(*)',
@ -314,7 +314,7 @@ class MEuridile {
$tabRet=$tabBilan=array();
$tabRet['siren']=$this->siren;
$tabRet['erreur']='';
$postData=array('codcom_srch'=>'',
'entrep_srch'=>$this->siren,
// 'contient'=>'contient', // contient=Contient, debute=Débute par, contientque=ne contient que les termes saisis
@ -335,7 +335,7 @@ class MEuridile {
$fp=fopen('./euridile_vitrine1.log', 'w');
fwrite($fp,print_r($page,true));
fclose($fp);
if (preg_match('/\/weur2\/iden_saisie_criteres\.ow/i', $this->body)) {
$tabRet['erreur']='Siren inconnu';
$this->curPage='recherche';
@ -343,7 +343,7 @@ class MEuridile {
return $tabRet;
}
echo date('Y/m/d - H:i:s') ." - Vitrine : Après recherche = $this->url (Code retour = $this->codeRetour)<br/>".EOL;
$this->url=$this->urlRacine.'/'.$this->weur.'/iden_visu_vitrine.ow?WRNCSRV2='.$this->wrncsrv2;
$page=getUrl($this->urlRacine.'/'.$this->weur.'/bandeau_gauche_general.ow?WRNCSRV2='.$this->wrncsrv2,'', '', $this->referer, false, 'www.euridile.com','',0.1);
$page=getUrl($this->urlRacine.'/'.$this->weur.'/bandeau_haut_general.ow?WRNCSRV2='.$this->wrncsrv2,'', '', $this->referer, false, 'www.euridile.com','',0.1);
@ -357,7 +357,7 @@ class MEuridile {
fwrite($fp,print_r($tabRet,true));
fclose($fp);
echo date('Y/m/d - H:i:s') ." - Vitrine : Frame = $this->url (Code retour = $this->codeRetour)<br/>".EOL;
$this->curPage='vitrine';
@ -381,7 +381,7 @@ class MEuridile {
$tabTmp=explode(' - ', $strTmp);
$tabRet['naf_code']=$tabTmp[0];
$tabRet['naf_lib']=$tabTmp[1];
$matches=explode("<A HREF=\"javascript:OpenHtmlWindow('paie_abonnes_livraison_directe_informations.ow','Compte_Annuel','", $this->body);
for ($i=1; isset($matches[$i]); $i++) {
$tabTmp=explode("','", $matches[$i]);
@ -395,14 +395,14 @@ class MEuridile {
case 'SA': $typeBilan='A'; break; // Assurance
case 'SB': $typeBilan='B'; break; // Banque
default: $this->logEuridileError('Type de bilan non pris en charge : "'. $tabTmp[2] .'"');
}
}
$tabBilan[$typeBilan][$dateBilan]=$idBilan;
}
$tabRet['bilans']=$tabBilan;
/* if ($listeDocuments) {
$this->partVitrineDocuments();
$this->partVitrineDocuments();
}
*/
*/
$fp=fopen('./euridile_vitrine.log', 'w');
fwrite($fp,print_r($page,true));
fwrite($fp,print_r($tabRet,true));
@ -416,7 +416,7 @@ class MEuridile {
return $tabRet;
}
private function partVitrineDocuments() {
if ($this->curPage='vitrine')
$this->partVitrine();
@ -424,7 +424,7 @@ class MEuridile {
$tabRet=$tabBilan=array();
$tabRet['siren']=$this->siren;
$tabRet['erreur']='';
$this->url=$this->urlRacine.'/weur2/ff_page_general.ow?WRNCSRV2='.$this->wrncsrv2.
'&g_InfoChoix=CMD_IN&first=actes&filtre_document=no&g_Onglet=info';
$page=getUrl($this->url,'','',$this->referer, false, 'www.euridile.com');
@ -438,7 +438,7 @@ class MEuridile {
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
preg_match('/<OPTION VALUE="'.$this->siren.'\|(.*)\|IMM\|COUR">/i', $this->body, $matches);
$tabDossier=array( 'libelle'=>'Dossier d\'immatriculation principale',
'idBalise'=>'IMMcombo',
@ -472,12 +472,12 @@ class MEuridile {
'idLien'=>str_replace('<OPTION VALUE="','', str_replace('">','', $matches[0])));
}
}
/** Recherche des comptes déposés **/
$tabTmp=preg_split('/<SELECT NAME=(TT|BL|CM|GS)FAM(\d)/i', $body);
$tabCpt=array();
$nb=count($tabTmp);
for($i=1; $i<$nb; $i++) {
for($i=1; $i<$nb; $i++) {
if (preg_match('/<OPTION VALUE="'.$this->siren.'\|(.*)\|BIL\|(.*)\|(.*)\|(TT|BL|CM|GS)\|(.*)\|(.*)\|TELE">/i', $tabTmp[$i], $matches))
$vecteur='TELE';
elseif (preg_match('/<OPTION VALUE="'.$this->siren.'\|(.*)\|BIL\|(.*)\|(.*)\|(TT|BL|CM|GS)\|(.*)\|(.*)\|COUR">/i', $tabTmp[$i], $matches))
@ -506,11 +506,11 @@ class MEuridile {
'numero'=>$matches[6],
'idLien'=>str_replace('<OPTION VALUE="','', str_replace('">','', $matches[0])));
}
/** @todo gestion des commandes :
<FORM NAME=FORMADDCART ACTION="../weur2/cmd_panier_informations_numerises_gestion.ow" METHOD=POST TARGET=_top>
<INPUT TYPE="HIDDEN" NAME="dejatraite" value="">
<INPUT TYPE=IMAGE SRC=images/boutons/valider.gif ALT="Valider" BORDER=0>
<INPUT TYPE=IMAGE SRC=images/boutons/valider.gif ALT="Valider" BORDER=0>
<INPUT TYPE="HIDDEN" NAME="WRNCSRV2" VALUE="171932431532858">
<SELECT NAME=ACTcombo0> // 1 select par acte de depot de 0 à N !!!
<SELECT NAME=IMMcombo> // Dossier immatriculiation principal
@ -519,27 +519,27 @@ class MEuridile {
<SELECT NAME=TTFAM1 // Année1 : Comptes Annuels complet
<OPTION VALUE="333192631|BILANS SERVICE|BIL|31/12/2005|SC|TT|22|33319263105122AN9201:33319263105122BL9201:33319263105122CM9201:33319263105122GS9201|TELE">
<OPTION VALUE="333192631|BILANS SERVICE|BIL|31/12/2005|SC|TT|22|33319263105122AN9201:33319263105122BL9201:33319263105122CM9201:33319263105122GS9201|COUR">
<SELECT NAME=BLFAM1 // Année 1 : Bilan, Compte de résultat
<OPTION VALUE="333192631|BILANS SERVICE|BIL|31/12/2005|SC|BL|4|33319263105122BL9201|TELE">
<OPTION VALUE="333192631|BILANS SERVICE|BIL|31/12/2005|SC|BL|4|33319263105122BL9201|COUR">
<SELECT NAME=CMFAM1 // Année 1 : Rapport des CAC
<OPTION VALUE="333192631|BILANS SERVICE|BIL|31/12/2005|SC|CM|2|33319263105122CM9201|TELE">
<SELECT NAME=GSFAM1 // Année 1 : Rapport de Gestion
<OPTION VALUE="333192631|BILANS SERVICE|BIL|31/12/2005|SC|GS|4|33319263105122GS9201|TELE">
// Comptes consolidés
<select name="TTFAM6"
<select name="TTFAM6"
<option value="552100554|PEUGEOT SA|BIL|31/12/2004|SC|TT|159|55210055404122AN7501:55210055404122BL7501:55210055404122CM7501:55210055404122GS7501|TELE">
<select name="BLFAM6"
<option value="552100554|PEUGEOT SA|BIL|31/12/2004|SC|BL|3|55210055404122BL7501|TELE">
<option value="552100554|PEUGEOT SA|BIL|31/12/2004|SC|BL|3|55210055404122BL7501|COUR">Courrier
<option value="552100554|PEUGEOT SA|BIL|31/12/2004|SC|BL|159|55210055404122AN7501:55210055404122BL7501:55210055404122CM7501:55210055404122GS7501|INCLUS">
<select name="CMFAM6"
<option value="552100554|PEUGEOT SA|BIL|31/12/2004|SC|CM|3|55210055404122CM7501|TELE">
<option value="552100554|PEUGEOT SA|BIL|31/12/2004|SC|CM|3|55210055404122CM7501|COUR">
@ -562,7 +562,7 @@ class MEuridile {
die();
return $tabRet;
}
/*private*/ function partChercheDirigeant($nomPrenom) {
if ($this->curPage<>'recherche')
$this->partInitRecherche();
@ -597,7 +597,7 @@ class MEuridile {
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
$fp=fopen('./euridile_recherche2.log', 'w');
fwrite($fp,print_r($page,true));
fclose($fp);
@ -617,8 +617,8 @@ class MEuridile {
if (preg_match('/\/weur2\/iden_selection_bases\.ow\?WRNCSRV2='.$this->wrncsrv2.'&infosBase=EURDIR\|admin\|administrateur\(s\)\|(.*) TARGET=_top>Adm/i', $this->body, $matches)) {
$fctAdmUrl=preg_replace('/ (.*)/','',$matches[0]);
$fctAdmNb=$matches[1];
}
}
//echo date('Y/m/d - H:i:s') ." - Résultat : $fctDirNb dirigeant(s), $fctAdmNb administrateur(s) et $fctEntNb entreprise(s)".EOL;
//echo date('Y/m/d - H:i:s') ." - URL : $fctDirUrl".EOL;
@ -633,7 +633,7 @@ class MEuridile {
$fp=fopen('./euridile_recherche3.log', 'w');
fwrite($fp,print_r($page,true));
fclose($fp);
if (preg_match('/\/weur2\/iden_affinage_critere\.ow/i', $this->body)) {
/** Visualisation du formulaire d'affinage **/
$this->url=$this->urlRacine.'/weur2/iden_affinage_critere.ow?WRNCSRV2='.$this->wrncsrv2;
@ -644,7 +644,7 @@ class MEuridile {
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
/** On outrepasse l'affinage **/
$this->url=$this->urlRacine.'/weur2/iden_req_multibase_affinage_critere.ow?WRNCSRV2='.$this->wrncsrv2;
$page=getUrl($this->urlRacine.'/weur2/bandeau_gauche_general.ow?WRNCSRV2='.$this->wrncsrv2,'','',$this->referer,false,'www.euridile.com','',0.1);
@ -670,7 +670,7 @@ class MEuridile {
//echo date('Y/m/d - H:i:s') ." - Page de Multipropositions erreur inconnue = $this->url (Code retour = $this->codeRetour)<br/>".EOL;
return $tabRet;
}
/** Liste des entreprises dirigées */
$this->url=$this->urlRacine.'/weur2/iden_req_multibase_liste.ow?WRNCSRV2='.$this->wrncsrv2;
$page=getUrl($this->urlRacine.'/weur2/bandeau_gauche_general.ow?WRNCSRV2='.$this->wrncsrv2,'','',$this->referer,false,'www.euridile.com','',0.1);
@ -683,7 +683,7 @@ class MEuridile {
$fp=fopen('./euridile_recherche4.log', 'w');
fwrite($fp,print_r($page,true));
fclose($fp);
$body=str_replace("\r",'', str_replace("\n",'', $this->body));
$tabTmp=explode('<TABLE BORDER=0><TR><TD><FONT SIZE=2 FACE=ARIAL><A HREF="../weur2/ff_page_general.ow?WRNCSRV2='.$this->wrncsrv2.'&g_InfoChoix=IDEN_VI&rcs=', $body);
array_shift($tabTmp);
@ -726,12 +726,12 @@ class MEuridile {
'naf'=>$nafCod,
'nafLib'=>$nafLib);
}
print_r($tabEntrep);
$this->curPage='autre';
return;
$this->url=$this->urlRacine.'/weur2/iden_visu_vitrine.ow?WRNCSRV2='.$this->wrncsrv2;
$page=getUrl($this->urlRacine.'/weur2/bandeau_gauche_general.ow?WRNCSRV2='.$this->wrncsrv2,'', '', $this->referer, false, 'www.euridile.com','',0.1);
$page=getUrl($this->urlRacine.'/weur2/bandeau_haut_general.ow?WRNCSRV2='.$this->wrncsrv2,'', '', $this->referer, false, 'www.euridile.com','',0.1);
@ -740,7 +740,7 @@ class MEuridile {
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
//echo date('Y/m/d - H:i:s') ." - Vitrine : Frame = $this->url (Code retour = $this->codeRetour)<br/>".EOL;
$this->curPage='vitrine';
@ -757,7 +757,7 @@ class MEuridile {
case 'SA': $typeBilan='A'; break; // Assurance
case 'SB': $typeBilan='B'; break; // Banque
default: $this->logEuridileError('Type de bilan non pris en charge : "'. $tabTmp[2] .'"');
}
}
$tabBilan[$typeBilan][$dateBilan]=$idBilan;
}
$tabRet['bilans']=$tabBilan;
@ -780,7 +780,7 @@ class MEuridile {
private function partIdentite() {
if ($this->curPage<>'vitrine')
$this->partVitrine();
$iDb=new WDB('jo');
$ret=$iDb->select( 'rncs_entrep',
'siren, rcs, nom, adresse1, adresse2, adresse3, cp, ville, naiss_date, naiss_lieu, sexe, enseigne, sigle, '.
@ -788,7 +788,7 @@ class MEuridile {
'nb_etab, indRadiation, date_radiation, indProcol, dateUpdate, procedures, dirigeants, etablissements',
"siren=$this->siren ORDER BY dateUpdate DESC LIMIT 0,1", false, MYSQL_ASSOC);
if (count($ret)) {
/** On vérifie qu'aucune annonce n'a été publié depuis au bodacc
/** On vérifie qu'aucune annonce n'a été publié depuis au bodacc
**/
$tabRet=$ret[0];
$ret=$iDb->select( 'bodacc_detail', 'count(*)',
@ -800,7 +800,7 @@ class MEuridile {
return $tabRet;
}
}
$url=$this->urlRacine.'/'.$this->weur.'/paie_abonnes_livraison_directe_informations.ow?flag_type_acces_direct_infos=FIC&WRNCSRV2='.$this->wrncsrv2;
$page=getUrl($url, '', '', $this->referer, false, 'www.euridile.com');
$this->body=$page['body'];
@ -809,7 +809,7 @@ class MEuridile {
//echo date('Y/m/d - H:i:s') ." - Fiche d'identité = $url (Code retour = $this->codeRetour)<br/>".EOL;
//$this->curPage='vitrine';
$tabRet=array();
/**@todo Traiter le cas données provisoires :
<TR><TD bgcolor='#fff0d0'><FONT COLOR=#100070 FACE=ARIAL SIZE=2><B><!-- Données provisoires --> En cours d'immatriculation, données provisoires</B></FONT></TD></TR><TR><TD bgcolor=#fff0d0><FONT COLOR=#100070 FACE=ARIAL SIZE=2>Nombre d'établissements : <FONT COLOR=#100070 FACE=ARIAL SIZE=2><B></B></TD></TR>
</TABLE>
@ -823,7 +823,7 @@ class MEuridile {
$tabRet['nom']=strip_tags($tabTmp[0]);
// ... adresse
for ($i=1; $i<5; $i++) {
if (strpos($tabTmp[$i], 'Nom commercial - Enseigne :')===false &&
if (strpos($tabTmp[$i], 'Nom commercial - Enseigne :')===false &&
strpos($tabTmp[$i], 'Sigle :')===false ) {
$ligne=trim(strip_tags($tabTmp[$i]));
if (preg_match("/^([0-9]{5,5})([\D]*)/i", $ligne, $matches)) {
@ -833,13 +833,13 @@ class MEuridile {
} else $tabRet['adresse'.$i]=$ligne;
}
}
$pp_nais=trim(strip_tags(@getTextInHtml($this->body, 'FACE=\'ARIAL,HELVETICA\' SIZE=2>Date et lieu de naissance :', '<B>','</B>')));
$tabTmp=explode(' à ', $pp_nais);
$tabRet['naiss_date']=trim(str_replace('Né(e) le ', '', strip_tags($tabTmp[0])));
$tabRet['naiss_lieu']=trim(strip_tags($tabTmp[1]));
$tabRet['sexe']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=\'ARIAL,HELVETICA\' SIZE=2>Sexe :', '<B>','</B>')));
$tabRet['enseigne']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Nom commercial - Enseigne :', '<B>','</B>')));
$tabRet['sigle']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Sigle :', '<B>','</B>')));
$tabRet['fj_lib']=@getTextInHtml($this->body, 'FACE=\'ARIAL,HELVETICA\' SIZE=2>Forme juridique :', '<B>','</B>');
@ -867,7 +867,7 @@ class MEuridile {
$tabRet['date_radiation']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Entreprise radiée le :', '<B>','</B>')));
} else
$tabRet['indRadiation']=false;
// Procédures collectives
if (strpos($this->body,'FACE=ARIAL SIZE=2><B>Les procédures collectives</B>')>0) {
$tabRet['indProcol']=true;
@ -959,7 +959,7 @@ class MEuridile {
'fonction'=>$fonction);
}
}
// Etablissements
$strTmp=@getTextInHtml($this->body, '<B>Les établissements</B></FONT>', "<img src='./images/rouge.gif' width=4 height=4 border='0'>",'</TABLE>');
$tabTmp=explode("<img src='./images/rouge.gif' width=4 height=4 border='0'>", $strTmp);
@ -976,7 +976,7 @@ class MEuridile {
break;
} else
$adresse[$j]=$strTmp;
$j++;
}
/** Gestion des cas où la 1ère ligne d'adresse contient l'enseigne de l'établissement */
@ -999,41 +999,41 @@ class MEuridile {
$fp=fopen('./euridile_identite.log', 'w');
fwrite($fp,print_r($page,true));
fclose($fp);
$tabInsert=$tabRet;
$tabInsert['procedures']=serialize($tabRet['procedures']);
$tabInsert['dirigeants']=serialize($tabRet['dirigeants']);
$tabInsert['etablissements']=serialize($tabRet['etablissements']);
$iDb->insert( 'rncs_entrep', $tabInsert);
return $tabRet;
}
private function partBilan($idBilanPart) {
if ($this->curPage<>'vitrine')
$this->partVitrine();
$url=$this->urlRacine.'/'.$this->weur."/paie_abonnes_livraison_directe_informations.ow?flag_type_acces_direct_infos=$idBilanPart&WRNCSRV2=".$this->wrncsrv2;
$page=getUrl($url, '', '', $this->referer, false, 'www.euridile.com');
$this->referer=$this->url;
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
if (preg_match('/<META HTTP-EQUIV="Refresh" CONTENT="0; URL=(.*)"/i', $this->body, $matches))
$this->url=$matches[1];
else $this->logEuridileError('Erreur redir vers Bilan INPI');
$page=getUrl($this->url, '', '',$this->referer, false);
$this->referer=$this->url;
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
$urlInpi='http://modules.euridile.inpi.fr';
// http://modules.euridile.inpi.fr/accesproduits.ow?MODUSRV1=2701291735122345
if (preg_match('/<META HTTP-EQUIV="Refresh" CONTENT="0; URL=(.*)"/i', $this->body, $matches))
$this->url=$urlInpi.'/'.$matches[1];
@ -1056,7 +1056,7 @@ class MEuridile {
$this->codeRetour=$page['code'];
$this->header=$page['header'];
//*die($this->url);
getUrl($urlInpi.'/analyse/TOTAL_BILAN/menu.ow?MODUSRV1='.$modusrv1,'', '', $this->referer, false);
$page=getUrl($urlInpi.'/comptesAvecContexte.ow?MODUSRV1='.$modusrv1,'','',$this->referer, false);
$this->referer=$urlInpi.'/analyse/TOTAL_BILAN/menu.ow?MODUSRV1='.$modusrv1;
@ -1098,8 +1098,8 @@ class MEuridile {
elseif ($j==1) $indice=1;
else $indice=2;
if (isset($tabTmp[$j])) {
$tabPostes[$poste.$indice]=trim(str_replace(' ', '',
str_replace('-->', '',
$tabPostes[$poste.$indice]=trim(str_replace(' ', '',
str_replace('-->', '',
str_replace('&NBSP;', '',
strip_tags($tabTmp[$j])))));
if ($tabPostes[$poste.$indice]=='') unset($tabPostes[$poste.$indice]);
@ -1108,7 +1108,7 @@ class MEuridile {
}
}
}
$strTmp=@getTextInHtml($this->body, 'Montants exprimés en :<b>&#160;', '<TRANSLATE COD=1756>','</TRANSLATE>');
//milliers d'Euros (KE)
$tabTmp=explode('(', $strTmp);
@ -1121,7 +1121,7 @@ class MEuridile {
$tabBilan['DUREE_MOIS']=@getTextInHtml($this->body, 'Durée des exercices : </td><td align=center colspan=2 width=100>', '<b>','</b>');
$tabBilan['DUREE_MOIS_PRE']=@getTextInHtml($this->body, 'Durée des exercices : </td><td align=center colspan=2 width=100>', '<b>&#160;','</b></td>');
$tabBilan['POSTES']=$tabPostes;
break;
case 'SS': // Bilans réels simplifiés
$tabBilan['TYPE_BILAN']='S';
@ -1131,7 +1131,7 @@ class MEuridile {
sleep(1);
$page=getUrl($urlInpi.'/comptesAvecContexte.ow?MODUSRV1='.$modusrv1.'&PAGE=IMMAMOSS','','',$this->referer, false);
$this->body.=$page['body'];
/** Lecture et découpage du bilan
**/
$body=strtoupper($this->body);
@ -1149,8 +1149,8 @@ class MEuridile {
elseif ($j==1) $indice='a';
else $indice='b';
if (isset($tabTmp[$j])) {
$tabPostes[$poste.$indice]=trim(str_replace(' ', '',
str_replace('-->', '',
$tabPostes[$poste.$indice]=trim(str_replace(' ', '',
str_replace('-->', '',
str_replace('&NBSP;', '',
strip_tags($tabTmp[$j])))));
if ($tabPostes[$poste.$indice]=='') unset($tabPostes[$poste.$indice]);
@ -1172,7 +1172,7 @@ class MEuridile {
$tabBilan['DUREE_MOIS']=@getTextInHtml($this->body, 'Durée des exercices : </td><td align=center colspan=1 width=80>', '<b>','</b>');
$tabBilan['DUREE_MOIS_PRE']=@getTextInHtml($this->body, 'Durée des exercices : </td><td align=center colspan=1 width=80>', '<b>&#160;','</b></td>');
$tabBilan['POSTES']=$tabPostes;
break;
case 'CC': // Bilans Consolidés
$tabBilan['TYPE_BILAN']='C';
@ -1182,7 +1182,7 @@ class MEuridile {
sleep(1);
$page=getUrl($urlInpi.'/comptesAvecContexte.ow?MODUSRV1='.$modusrv1.'&PAGE=CPTRESCC','','',$this->referer, false);
$this->body.=$page['body'];
/** Lecture et découpage du bilan
**/
$body=strtoupper($this->body);
@ -1199,8 +1199,8 @@ class MEuridile {
elseif ($j==1) $indice=1;
else $indice=2;
if (isset($tabTmp[$j])) {
$tabPostes[$poste.$indice]=trim(str_replace(' ', '',
str_replace('-->', '',
$tabPostes[$poste.$indice]=trim(str_replace(' ', '',
str_replace('-->', '',
str_replace('&NBSP;', '',
strip_tags($tabTmp[$j])))));
if ($tabPostes[$poste.$indice]=='') unset($tabPostes[$poste.$indice]);
@ -1209,7 +1209,7 @@ class MEuridile {
}
}
}
$strTmp=@getTextInHtml($this->body, 'Montants exprimés en :<b>&#160;', '<TRANSLATE COD=1756>','</TRANSLATE>');
//milliers d'Euros (KE)
$tabTmp=explode('(', $strTmp);
@ -1222,9 +1222,9 @@ class MEuridile {
$tabBilan['DUREE_MOIS']=@getTextInHtml($this->body, 'Durée des exercices : </td><td align=center colspan=2 width=100>', '<b>','</b>');
$tabBilan['DUREE_MOIS_PRE']=@getTextInHtml($this->body, 'Durée des exercices : </td><td align=center colspan=2 width=100>', '<b>&#160;','</b></font></td>');
$tabBilan['POSTES']=$tabPostes;
break;
case 'SA': // Assurance
$tabBilan['TYPE_BILAN']='A';
// http://modules.euridile.inpi.fr/comptesAvecContexte.ow?MODUSRV1=2712304993629995&PAGE=ACTIFCC (déjà vue)
@ -1233,7 +1233,7 @@ class MEuridile {
sleep(1);
$page=getUrl($urlInpi.'/comptesAvecContexte.ow?MODUSRV1='.$modusrv1.'&PAGE=CPTRESCC','','',$this->referer, false);
$this->body.=$page['body'];
/** Lecture et découpage du bilan
**
$body=strtoupper($this->body);
@ -1250,8 +1250,8 @@ class MEuridile {
elseif ($j==1) $indice=1;
else $indice=2;
if (isset($tabTmp[$j])) {
$tabPostes[$poste.$indice]=trim(str_replace(' ', '',
str_replace('-->', '',
$tabPostes[$poste.$indice]=trim(str_replace(' ', '',
str_replace('-->', '',
str_replace('&NBSP;', '',
strip_tags($tabTmp[$j])))));
if ($tabPostes[$poste.$indice]=='') unset($tabPostes[$poste.$indice]);
@ -1260,7 +1260,7 @@ class MEuridile {
}
}
}
$strTmp=@getTextInHtml($this->body, 'Montants exprimés en :<b>&#160;', '<TRANSLATE COD=1756>','</TRANSLATE>');
//milliers d'Euros (KE)
$tabTmp=explode('(', $strTmp);
@ -1274,7 +1274,7 @@ class MEuridile {
$tabBilan['DUREE_MOIS_PRE']=@getTextInHtml($this->body, 'Durée des exercices : </td><td align=center colspan=2 width=100>', '<b>&#160;','</b></font></td>');
$tabBilan['POSTES']=$tabPostes;
break;
case 'SB': // Banque
$tabBilan['TYPE_BILAN']='B';
// http://modules.euridile.inpi.fr/comptesAvecContexte.ow?MODUSRV1=2712304993629995&PAGE=ACTIFCC (déjà vue)
@ -1283,7 +1283,7 @@ class MEuridile {
sleep(1);
$page=getUrl($urlInpi.'/comptesAvecContexte.ow?MODUSRV1='.$modusrv1.'&PAGE=CPTRESCC','','',$this->referer, false);
$this->body.=$page['body'];
/** Lecture et découpage du bilan
**
$body=strtoupper($this->body);
@ -1300,8 +1300,8 @@ class MEuridile {
elseif ($j==1) $indice=1;
else $indice=2;
if (isset($tabTmp[$j])) {
$tabPostes[$poste.$indice]=trim(str_replace(' ', '',
str_replace('-->', '',
$tabPostes[$poste.$indice]=trim(str_replace(' ', '',
str_replace('-->', '',
str_replace('&NBSP;', '',
strip_tags($tabTmp[$j])))));
if ($tabPostes[$poste.$indice]=='') unset($tabPostes[$poste.$indice]);
@ -1310,7 +1310,7 @@ class MEuridile {
}
}
}
$strTmp=@getTextInHtml($this->body, 'Montants exprimés en :<b>&#160;', '<TRANSLATE COD=1756>','</TRANSLATE>');
//milliers d'Euros (KE)
$tabTmp=explode('(', $strTmp);
@ -1324,18 +1324,18 @@ class MEuridile {
$tabBilan['DUREE_MOIS_PRE']=@getTextInHtml($this->body, 'Durée des exercices : </td><td align=center colspan=2 width=100>', '<b>&#160;','</b></font></td>');
$tabBilan['POSTES']=$tabPostes;
break;
default:
return array();
break;
}
$this->curPage='bilan';
$fp=fopen('./euridile_bilan.log', 'w');
fwrite($fp,$this->body);
fclose($fp);
return $tabBilan;
}
@ -1370,12 +1370,12 @@ class MEuridile {
$bilanRN['BN']=$bilanRS['050'];
$bilanRN['BO']=$bilanRS['052'];
}
if ($bilanRS['070']<>0 || $bilanRS['074']<>0 || $bilanRS['052']<>0 || $bilanRS['062']<>0)
$bilanRN['GC']=$bilanRS['256'];
elseif ($bilanRS['070']==0 && $bilanRS['074']==0 && $bilanRS['052']==0 && $bilanRS['062']==0 && $bilanRS['254']<>0)
$bilanRN['GD']=$bilanRS['256'];
if ($bilanRS['584']<>0) {
$bilanRN['HB']=$bilanRS['584'];
$bilanRN['HA']=$bilanRS['290']-$bilanRS['584'];
@ -1387,10 +1387,10 @@ class MEuridile {
$bilanRN['HE']=$bilanRS['582']-$bilanRS['300'];
} else
$bilanRN['HE']=$bilanRS['300'];
return $bilanRN;
}
private function partSaveSession() {
$fp=fopen('/tmp/php_rncs_session.id', 'w');
fwrite($fp,$this->wrncsrv2.'^'.$this->timeOut.'^'.$this->curPage.'^'.$this->siren.'^'.$this->url.'^'.$this->referer);
@ -1408,10 +1408,10 @@ class MEuridile {
$this->url=$tabTmp[4];
$this->referer=$tabTmp[5];
} else $this->timeOut=0;
}
private function logEuridileError($message) {
$fp=fopen('./euridile_error.log', 'w');
fwrite($fp,date('Y/m/d H:i:s')." - Erreur : $message (".$this->wrncsrv2.'^'.$this->timeOut.'^'.$this->curPage.'^'.$this->siren.'^'.$this->url.'^'.$this->referer.')'.EOL);

View File

@ -15,18 +15,18 @@ D. 067 200 329 I 2010-06-30 La CS est valide jusq'au 30/06/2010... Quid
La cs privilège a une durée de 27 mois ( sauf bien sur les cs manuelles qui sont à la convenance de l'analyste, en général 12 mois ).
*/
class MFacto {
public $risqueImpaye=false; // Y a t'il un risque d'impayé ?
public $risqueImpayeMois=0;
public $profilPayeur=0; // 0:N/D, 1:Excellent, 2=Bon, 3=Normal, 4=Lent, 5=Mauvais ou Défaut
private $typeFlux = 0; // Type de flux en chargement 0:Acheteur, 1=CS, 2=Paiements
private $iDb;
public $DELAIPAY=0;
public $DELAIPAYp='';
public $DELAIPAY_MMAA='';
private $tabInfoCS=array(
'_00'=>array('risque'=>0,'type'=>'OK', 'libInt'=>'Néant', 'libExt'=>'Aucune difficulté significative ne nous a été signalée'),
'_10'=>array('risque'=>3,'type'=>'IP', 'libInt'=>'Impayé BDF', 'libExt'=>"A surveiller. Présence d'impayé(s)"),
@ -39,7 +39,7 @@ class MFacto {
'_21'=>array('risque'=>1,'type'=>'BC', 'libInt'=>'CESSATION D\'ACTIVITE', 'libExt'=>'A suivre. Informations terrain. Risque de fermeture'),
'_22'=>array('risque'=>1,'type'=>'BD', 'libInt'=>'RADIATION RCS', 'libExt'=>'Radiation du RCS'),
'_23'=>array('risque'=>1,'type'=>'BG', 'libInt'=>'LOCATION GERANCE', 'libExt'=>'Prise en location Gérance'),
'_24'=>array('risque'=>2,'type'=>'RG', 'libInt'=>'GROUPE EN DIFFICULTE', 'libExt'=>'A suivre. Entreprise(s) du groupe signalée(s) en difficulté(s)'),
'_24'=>array('risque'=>2,'type'=>'RG', 'libInt'=>'GROUPE EN DIFFICULTE', 'libExt'=>'A suivre. Entreprise(s) du groupe à suivre'),
'_25'=>array('risque'=>2,'type'=>'DEF', 'libInt'=>'INFORMATIONS NEGATIVES', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_26'=>array('risque'=>4,'type'=>'BP', 'libInt'=>'PLAN DE CESSION / DE REDRESSEMENT ', 'libExt'=>'Plan de cession/redressement'),
'_27'=>array('risque'=>4,'type'=>'BR', 'libInt'=>'REDRESSEMENT JUDICIAIRE', 'libExt'=>'Redressement Judiciaire'),
@ -55,15 +55,15 @@ class MFacto {
'_39'=>array('risque'=>2,'type'=>'DEF', 'libInt'=>'PREVISIONS NEGATIVES', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_43'=>array('risque'=>2,'type'=>'LC', 'libInt'=>'LC SFAC', 'libExt'=>"A suivre. Garantie d'assurance crédit limitée"),
'_45'=>array('risque'=>2,'type'=>'LC', 'libInt'=>'REFUS SFAC DOM-TOM', 'libExt'=>"A suivre. Garantie d'assurance crédit limitée"),
// '_47'=>array('risque'=>2,'type'=>'LC', 'libInt'=>'LISTE CONFIDENTIELLE LEASER', 'libExt'=>"A suivre. Garantie d'assurance crédit limitée"),
//'_47'=>array('risque'=>2,'type'=>'LC', 'libInt'=>'LISTE CONFIDENTIELLE LEASER', 'libExt'=>"A suivre. Garantie d'assurance crédit limitée"),
'_50'=>array('risque'=>2,'type'=>'KO', 'libInt'=>'LIENS AVEC UNE ORGANISATION TERRORISTE', 'libExt'=>'Attention, liens internationaux très risqués'),
// Nouveaux regroupements GE
//Nouveaux regroupements GE
'_I' =>array('risque'=>3,'type'=>'IP', 'libInt'=>'Impayés', 'libExt'=>"A surveiller. Présence d'impayé(s) dans les 12 derniers mois"),
'_P' =>array('risque'=>3,'type'=>'PR', 'libInt'=>'PRIVILEGES', 'libExt'=>'A surveiller. Présence de privilèges dans les 24 derniers mois'),
'_D' =>array('risque'=>2,'type'=>'DEF', 'libInt'=>'PREVISIONS NEGATIVES', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_T' =>array('risque'=>2,'type'=>'LC', 'libInt'=>'LC Quelconque', 'libExt'=>"Nombreuses demandes d'avis de crédit"),
'_T' =>array('risque'=>2,'type'=>'LC', 'libInt'=>'LC Quelconque', 'libExt'=>"Nombreuses demandes d'avis de crédit"),
);
private $tabTranches=array( 0=>6,
30=>36,
60=>66,
@ -71,7 +71,7 @@ class MFacto {
120=>126,
150=>156,
180=>999);
private $tabMontants=array( 1=>500,
2=>2000,
10=>10000,
@ -80,17 +80,17 @@ class MFacto {
100=>100000,
200=>200000,
999=>999999);
// private $siren=0;
// private $tabPaiements=array();
function __construct() {
$this->iDb=new WDB('sdv1');
}
function __destruct() {
}
public function setTypeFic($typeFic) {
$this->typeFlux=$typeFic;
}
@ -135,8 +135,8 @@ class MFacto {
}
return $tab;
}
public function getCoteSpeciale($siren) {
$ret=$this->iDb->select( 'ge_cs2',
'siren, cs, dateFin, dateInsert, dateConf',
@ -144,7 +144,7 @@ class MFacto {
$tabRet=array();
foreach ($ret as $i=>$tabCS) {
$dateEven=$tabCS['dateConf'];
if ($dateEven=='0000-00-00') $dateEven=$tabCS['dateInsert'];
if ($dateEven=='0000-00-00') $dateEven=$tabCS['dateInsert'];
$tabRet[]=array('DateEven' => $dateEven,
'DateFin' => $tabCS['dateFin'],
'CoteCS' => $tabCS['cs'],
@ -158,7 +158,7 @@ class MFacto {
}
return $tabRet;
}
public function getCoteSpecialeOld($siren) {
$ret=$this->iDb->select( 'ge_cs c LEFT JOIN ge_acheteurs a ON a.NUMACH=c.NUMGFH',
'DATMAJ1, NUMGFH, CSAVAN, CSAPRE, SIRENE',
@ -179,7 +179,7 @@ class MFacto {
}
public function getPaiements($siren, $echelle='mois') {
if ($echelle=='jour')
$strGroupBy="GROUP BY p.DATPIE ";
elseif ($echelle=='' || $echelle=='mois')
@ -188,15 +188,15 @@ class MFacto {
$strGroupBy="GROUP BY trimestre HAVING nbPieces>2 ";
else // En mois par défaut
$strGroupBy="GROUP BY mois HAVING nbPieces>2 ";
$ret=$this->iDb->select( 'ge_paiements p LEFT JOIN ge_acheteurs a ON a.NUMACH=p.NUMACH',
"p.NUMACH, DATE_FORMAT(p.DATPIE, '%Y-%m') AS mois,
"p.NUMACH, DATE_FORMAT(p.DATPIE, '%Y-%m') AS mois,
CONCAT(DATE_FORMAT(p.DATPIE,'%Y'),'-',IF(DATE_FORMAT(p.DATPIE,'%m')<4,1,IF(DATE_FORMAT(p.DATPIE,'%m')<7,2,IF(DATE_FORMAT(p.DATPIE,'%m')<10,3,4)))) AS trimestre,
count(*) AS nbPieces,
AVG(DATEDIFF(NOW(), p.DATECH)) AS nbJourRetard, AVG(DATEDIFF(p.DATPAI, p.DATECH)) AS nbJourPaiement,
ROUND(AVG(DATEDIFF(NOW(), p.DATECH) - DATEDIFF(p.DATPAI, p.DATECH))) AS nbJourMoyens,
IF(AVG(DATEDIFF(NOW(), p.DATECH) - DATEDIFF( p.DATPAI, p.DATECH ) ) <6, 0, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <36, 30, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <66, 60, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <96, 90, 120 ) ) ) ) AS nbJours,
SUM(p.MNTPIE) AS mtPieces, SUM(p.MNTFRF) AS mtPaiements, SUM(p.MNTLIT) AS mtLitiges,
IF(AVG(DATEDIFF(NOW(), p.DATECH) - DATEDIFF( p.DATPAI, p.DATECH ) ) <6, 0, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <36, 30, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <66, 60, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <96, 90, 120 ) ) ) ) AS nbJours,
SUM(p.MNTPIE) AS mtPieces, SUM(p.MNTFRF) AS mtPaiements, SUM(p.MNTLIT) AS mtLitiges,
p.CODDEV, a.SIRENE, a.RAISOC, a.CODPOS, a.VILLE",
"a.SIRENE=$siren AND DATEDIFF(NOW(),p.DATECH)<736 AND p.DATECH<NOW() $strGroupBy ORDER BY p.DATPIE DESC", false, MYSQL_ASSOC);
$tabRet=array();
@ -209,7 +209,7 @@ class MFacto {
elseif ($nbJoursMoyen<126) $tranche=120;
elseif ($nbJoursMoyen<156) $tranche=150;
else $tranche=180;
$tabRet[]=array('trimestre' => $tabPai['trimestre'],
'mois' => $tabPai['mois'],
'nbPieces' => $tabPai['nbPieces'],
@ -218,7 +218,7 @@ class MFacto {
'nbJourMoyen' => $nbJoursMoyen,
'nbJourMoyen2' => $tabPai['nbJourMoyens'],
'tranchePaiement'=>$tranche,
'tranchePaie90' =>$tabPai['nbJours'],
'tranchePaie90' =>$tabPai['nbJours'],
'mtPieces' => $tabPai['mtPieces'],
'mtPaiements' => $tabPai['mtPaiements'],
'mtLitiges' => $tabPai['mtLitiges'],
@ -226,21 +226,21 @@ class MFacto {
);
}
//$this->tabPaiements=$tabRet;
/*@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Paiements", "SELECT p.NUMACH, DATE_FORMAT(p.DATPIE, '%Y-%m') AS mois,
/*@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Paiements", "SELECT p.NUMACH, DATE_FORMAT(p.DATPIE, '%Y-%m') AS mois,
CONCAT(DATE_FORMAT(p.DATPIE,'%Y'),'-',IF(DATE_FORMAT(p.DATPIE,'%m')<4,1,IF(DATE_FORMAT(p.DATPIE,'%m')<7,2,IF(DATE_FORMAT(p.DATPIE,'%m')<10,3,4)))) AS trimestre,
count(*) AS nbPieces,
AVG(DATEDIFF(NOW(), p.DATECH)) AS nbJourRetard, AVG(DATEDIFF(p.DATPAI, p.DATECH)) AS nbJourPaiement,
ROUND(AVG(DATEDIFF(NOW(), p.DATECH) - DATEDIFF(p.DATPAI, p.DATECH))) AS nbJourMoyens,
IF(AVG(DATEDIFF(NOW(), p.DATECH) - DATEDIFF( p.DATPAI, p.DATECH ) ) <6, 0, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <36, 30, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <66, 60, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <96, 90, 120 ) ) ) ) AS nbJours,
SUM(p.MNTPIE) AS mtPieces, SUM(p.MNTFRF) AS mtPaiements, SUM(p.MNTLIT) AS mtLitiges,
IF(AVG(DATEDIFF(NOW(), p.DATECH) - DATEDIFF( p.DATPAI, p.DATECH ) ) <6, 0, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <36, 30, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <66, 60, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <96, 90, 120 ) ) ) ) AS nbJours,
SUM(p.MNTPIE) AS mtPieces, SUM(p.MNTFRF) AS mtPaiements, SUM(p.MNTLIT) AS mtLitiges,
p.CODDEV, a.SIRENE, a.RAISOC, a.CODPOS, a.VILLE
FROM ge_paiements p LEFT JOIN ge_acheteurs a ON a.NUMACH=p.NUMACH
WHERE a.SIRENE=$siren AND DATEDIFF(NOW(),p.DATECH)<736 AND p.DATECH<NOW() $strGroupBy ORDER BY p.DATPIE DESC".EOL.EOL.print_r($tabRet, true).EOL);
*/
return $tabRet;
return $tabRet;
}
public function getProfilPayeur($siren) {
if ($siren<1000) return '';
$libProfil='';
@ -268,11 +268,11 @@ class MFacto {
if ($tabPai['tranchePaiement']>$paie_max) $paie_max=$tabPai['tranchePaiement'];
}
$tauxLitige=$totLitiges/$totFactures;
if ($tauxLitige>=0.5) $libProfil.='Litiges très importants. ';
elseif ($tauxLitige>0.25) $libProfil.='Litiges importants. ';
elseif ($tauxLitige>0.05) $libProfil.='Présence de litiges. ';
if ($tabProfil[0]==$tabProfil[1] && $tabProfil[1]==$tabProfil[2]) {
if ($tranche=0) { $libProfil.='Paiements à échéance'; $this->profilPayeur=1; }
elseif ($tranche<=30) { $libProfil.='Paiements à 30 jours maximum'; $this->profilPayeur=2; }
@ -288,7 +288,7 @@ class MFacto {
if ($tranche<$tr_prec) $libProfil.='Amélioration des délais. ';
elseif ($tranche==$tr_prec && $tr_prec<$tr_prec2) $libProfil.='Amélioration des délais. ';
else { $this->risqueImpaye=true; $libProfil.='Allongement des délais. '; }
if ($tranche=0) { $libProfil.='Paiements à échéance'; $this->profilPayeur=1; }
elseif ($tranche<=30) { $libProfil.='Paiements à 30 jours maximum'; $this->profilPayeur=2; }
elseif ($tranche<=60) { $libProfil.='Paiements à 60 jours maximum'; $this->profilPayeur=3; }
@ -302,13 +302,13 @@ class MFacto {
$libProfil.="Paiements entre $paie_min et $paie_max jour(s)";
}
}
if (trim($libProfil)=='' && $siren<>552100554 && $siren<>552144503 && $siren<>479974115
&& $siren<>0 && $siren<>494967938 ) {
$ret=$this->iDb->select('jo.surveillances_listes',
'ref, dateAjout, dateConf, dateSuppr, dateDerEnvoi',
"idClient='SURBODPRDFTSRECOCASH' AND siren=$siren AND dateSuppr=0
AND ABS(DATEDIFF(dateAjout, NOW()))<365
AND ABS(DATEDIFF(dateAjout, NOW()))<365
ORDER BY dateConf DESC, dateAjout DESC", false, MYSQL_ASSOC);
foreach ($ret as $i=>$tabCS) {
$dateMAJ=WDate::dateT('Y-m-d', 'M Y', $tabCS['dateAjout']);
@ -319,27 +319,27 @@ class MFacto {
break;
}
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Paiements", $libProfil.EOL.'Profil payeur = '. $this->profilPayeur .EOL.print_r($tabPaie, true).EOL);
return $libProfil;
}
public function getTabPaiements($siren) {
if ($siren<1000) return false;
$tabNbr=array(); // Tableau de travail du nombre de factures par trimestre et par tranches de délais de paiements
$tabMtAn=array(); // Tableau de travail du nombre de factures par montant et par tranches de délais de paiements
$tabNbr2=array(); // Tableau retour du nombre de factures par trimestre et par tranches de délais de paiements
$tabMtAn2=array(); // Tableau retour du nombre de factures par montant et par tranches de délais de paiements
$tabPaie=$this->getPaiements($siren, 'jour');
foreach ($tabPaie as $i=>$tabPai) {
@$tabNbr[$tabPai['trimestre']]['d='.$tabPai['tranchePaiement']]+=$tabPai['nbPieces'];
@$tabNbr[$tabPai['trimestre']]['all']+=$tabPai['nbPieces'];
$mt=$tabPai['mtPieces']/$tabPai['nbPieces'];
// echo "$i\t".$tabPai['trimestre']." (".$tabPai['tranchePaiement']." j)\t$mt=".$tabPai['mtPieces'].'/'.$tabPai['nbPieces'].EOL;
// echo "$i\t".$tabPai['trimestre']." (".$tabPai['tranchePaiement']." j)\t$mt=".$tabPai['mtPieces'].'/'.$tabPai['nbPieces'].EOL;
if ($mt<500) { @$tabMtAn[1]['d='.$tabPai['tranchePaiement']]++; @$tabMtAn[1]['all']++; }
elseif ($mt<2000) { @$tabMtAn[2]['d='.$tabPai['tranchePaiement']]++; @$tabMtAn[2]['all']++; }
elseif ($mt<10000) { @$tabMtAn[10]['d='.$tabPai['tranchePaiement']]++; @$tabMtAn[10]['all']++; }
@ -363,7 +363,7 @@ class MFacto {
else $tabNbr2[$trim]['d='.$tranche]=round(($mt3/$tabNbr2[$trim]['nb'])*100,1);
}
}
// Initialisation des tranches à 0 par Montants
foreach ($this->tabMontants as $mt=>$vide) {
$tabMtAn2['_'.$mt]['nb']=0;
@ -380,12 +380,12 @@ class MFacto {
else $tabMtAn2['_'.$mt]['d='.$tranche]=round(($mt2/$tabMtAn2['_'.$mt]['nb'])*100,1);
}
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Tableaux des Paiements", 'Paiements par montants :'.EOL.print_r($tabMtAn2, true).EOL.EOL.'Paiements par trimestres :'.EOL.print_r($tabNbr2, true).EOL.print_r($tabNbr, true).EOL.print_r($tabMtAn, true).EOL);
return array('parMont'=>$tabMtAn2,
'parTrim'=>$tabNbr2);
}
public function getLibInfoCS($cs) {
return array( 'CoteCS' => $cs,
'LibCS' => $this->tabInfoCS["_$cs"]['libExt'],

View File

@ -1,6 +1,6 @@
<?
class MFedaso {
private $tabCodeRetour=array(0 => 'Traitement OK',
100 => 'Document illisible',
101 => 'Document partiellement lisible',
@ -23,14 +23,14 @@
301 => 'Code devise absent du référentiel',
201 => 'Code fonction inexistant',
);
public function getRefCodeRetour($sep=',', $eol=EOL) {
$str='codRetour'.$sep.'libRetour'.$eol;
foreach ($this->tabCodeRetour as $key=>$value)
$str.=$key.$sep.$value.$eol;
return $str;
}
public function getRefCodeVoie($sep=',', $eol=EOL) {
$row = 1;
$handle = fopen(DOC_WEB_LOCAL.'tables/voies.csv', 'r');
@ -46,7 +46,7 @@
fclose($handle);
return $str;
}
}
?>

View File

@ -1,13 +1,13 @@
<?
include_once(FWK_PATH.'common/curl.php');
require_once 'framework/common/curl.php';
class MGlobal {
function __construct($siren) {
$timeout=5;
$c_cof = curl_init();
$c_soc = curl_init();
$c_pou = curl_init();
@ -40,13 +40,13 @@ curl_multi_remove_handle($ch2);
curl_multi_close($mh);
// $iDb=new WDB();
$referer='';
$url='http://www.cofacerating.fr/portail/entreprise_identite/identite.asp?ip=pagespro&lg=fr&nsiren='.$siren;
$page=getUrl($url, '', '', $referer, false, 'www.cofacerating.fr', '', 10);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
$this->header=$page['header'];
$this->nscrl=@getTextInHtml($this->body, '&nscrl=', '=','&');
$this->rSocAdrCPVille=trim(str_replace(chr(160), ' ', html_entity_decode(utf8_encode(@getTextInHtml($this->body, '<td WIDTH="40%" bgcolor="#F3E5CC" class="tabligne"> <b> Raison sociale<br>', '<td WIDTH="60%" bgcolor="#FFF3DE" class="tabval"><b>','</tr>')))));
$tmp=explode('<br>', $this->rSocAdrCPVille);
@ -57,13 +57,13 @@ curl_multi_close($mh);
$this->fax=trim(@getTextInHtml($this->body, 'Télécopie</b></td>', '<br>', '</td>'));
$this->web=trim(@getTextInHtml($this->body, '<td bgcolor="#F3E5CC" class="tabligne"><b>Adresse internet <br>', ' class="tabval"><a class="tabval" HREF="', '" target="_new">'));
$this->mail=trim(@getTextInHtml($this->body, '<a class="tabval" href="mailto:', ':', '">'));
$bourse=trim(@getTextInHtml($this->body, 'Ville Bourse</b></td>', 'class="tabval">', '</td>'));
$tmp=explode('<br>', $bourse);
$this->bourseIsin=trim($tmp[0]);
$this->bourseMarche=trim($tmp[1]);
$this->bourseVille=trim($tmp[2]);
$infosDispo=trim(@getTextInHtml($this->body, '<b>Liste Produits</b><br></td>', '<br></td><td class="menu3"><img src="../images/vide.gif" border="0"><br></td><td colspan="2" class="menu3">', 'Un secteur ou une région en France</a><br></td>'));
$tabTmp=explode('<a href="', $infosDispo);
foreach ($tabTmp as $k=>$lien) {
@ -71,21 +71,21 @@ curl_multi_close($mh);
if ($matches[2]<>'') $this->tabInfos[$matches[2]]=$matches[1];
if (substr($matches[2], 0, 12)=='rapport éco.') $this->infoEco='http://www.cofacerating.fr/portail/entreprise_identite/'.$matches[1];//ip=pagespro&
elseif (substr($matches[2], 0, 6)=='bilan ') $this->tabBilans[]=substr($matches[2], 6,strlen($matches[2])-6);
}
}
$this->activite=trim(str_replace(chr(160), ' ', html_entity_decode(utf8_encode(@getTextInHtml($this->body, '<td WIDTH="40%" bgcolor="#F3E5CC" class="tabligne" valign="top"><b>Libellé code activité </b></td>', '<td WIDTH="60%" bgcolor="#FFF3DE" class="tabval">', '</td>')))));
$this->naf=trim(@getTextInHtml($this->body, '<a href="../chaineeco_dynaeco/DynaEco.asp?cnaf=', 'cnaf=', '&'));
/**
/**
** Recherche du NIC sur Société .com
**/
/*
$refererS='http://www.societe.com/';
$urlS='http://www.societe.com/cgi-bin/recherche?rncs='.$siren.'&vu=1';
$page=getUrl($urlS, '', '', $refererS, false, 'www.societe.com');
$ste=$page['body'];
$this->nic=trim(@getTextInHtml($ste, 'SIRET</div><div class="ficheAltCol2 size11">', $siren, '</div>'));
$strTmp=trim(@getTextInHtml($ste, '<b><span class="size10">RCS', 'RCS ', ' '.substr($siren,0,3)));
$tabTmp=explode(' ', $strTmp);
$this->rcsVille=$tabTmp[0];//<td class="txtBlanc" align="left"><b><span class="size10">RCS Paris B 552 144 503<br></span></b></td>
@ -95,18 +95,18 @@ curl_multi_close($mh);
$tabTmp=explode(' - ', $strTmp);
$this->naf=$tabTmp[0];
$this->nafLib=$tabTmp[1];
// <div class="ficheAltCol1 size11">Siège social</div><div class="ficheAltCol2 size11">75 Avenue la Grande Armee - 75116 PARIS 16</div>
$strTmp=trim(@getTextInHtml($ste, '<div class="ficheAltCol1 size11">Capital social', '<div class="ficheAltCol2 size11">', '</div>'));
$this->capitalType='social';
$tabTmp=explode(' ', $strTmp);
$this->capitalMontant=str_replace(',', '.', str_replace('.', '', $tabTmp[0]));
$this->capitalDevise =$tabTmp[1];
$this->fj=trim(@getTextInHtml($ste, '<div class="ficheAltCol1 size11">Forme juridique', '<div class="ficheAltCol2 size11">', '</div>'));
$this->nationalite=trim(@getTextInHtml($ste, '<div class="ficheAltCol1 size11">Nationalit&eacute;</div>', '<div class="ficheAltCol2 size11">', '</div>'));
$strTmp=trim(@getTextInHtml($ste, '&nbsp;DIRIGEANT(S)&nbsp;</span></span></div>', '<div class="ficheCadre" style="min-height:85px;">', '<div class="spacer"></div>'));
$tabTmp=explode('<div class="h1bleu2"></div>', $strTmp);
foreach ($tabTmp as $k=>$dir) {
@ -143,7 +143,7 @@ curl_multi_close($mh);
'sirenRech'=>$siren,
'telRech'=>'',
'Rechercher.x'=>round(79),
'Rechercher.y'=>round(19),);
'Rechercher.y'=>round(19),);
$url=$urlRacine.'liste_result.html';
$referer=$urlRacine.'recherche_entreprise.html';
$page=getUrl($url,'', $tabPost, $referer, false, 'infobilan.decideur.com');
@ -153,9 +153,9 @@ curl_multi_close($mh);
if(preg_match_all('/<a href="choix_pdt\.html\?(.*)" class="tt1">(.*)<\/a><\/span><br>/i', $page['body'], $matches))
$urlInfoD=$urlRacine.'choix_pdt.html?'.$matches[1][0];
else
else
$urlInfoD='';
$page=getUrl($this->infoEco, '', '', $url, false, 'www.cofacerating.fr');
if (strpos($page['body'], '<b>Choix du mode de paiement</b>')===false) { // Le rapport éco. est cadeau !!!
$this->infoEco=true;
@ -167,13 +167,13 @@ curl_multi_close($mh);
$tabTmp=explode('&nbsp', $tabTmp[1]);
$this->capitalMontant=trim(str_replace(chr(160), '', $tabTmp[0]));
$this->capitalDevise =trim(str_replace(chr(160), '', $tabTmp[1]));
$this->steInactive=trim(@getTextInHtml($eco, ' class="tabligne" > Société inactive</td>', 'class="tabval" >', '</td>'));
$this->dateCreation=trim(@getTextInHtml($eco, ' class="tabligne" > Date de création</td>', 'class="tabval" >', '</td>'));
$this->fj=trim(@getTextInHtml($eco, ' class="tabligne" > Forme juridique</td>', 'class="tabval" >', '</td>'));
$this->effectif=trim(@getTextInHtml($eco, ' class="tabligne" > Effectif', 'class="tabval" >', '</td>'));
if (count($this->tabDirigeants)==0) { // Si il y a déjà des dirigeants on garde ceux de Société.com !!!
$strTmp=trim(@getTextInHtml($eco, ' class="tabligne" > Cotation en bourse</td>', '<td bgcolor="#F3E5CC" class="tabligne" >', '<td bgcolor="#F3E5CC" class="tabligne" > Effectif'));
$tabTmp=explode('<td bgcolor="#F3E5CC" class="tabligne" >', $strTmp);
@ -183,11 +183,11 @@ curl_multi_close($mh);
$this->tabDirigeants[]=array('FONCTION'=>trim(strip_tags($tabTmp1[0])), 'GENRE'=>trim($tabTmp2[0]), 'PRENOM'=>trim($tabTmp2[1]), 'NOM'=>trim($tabTmp2[2]));
}
}
$this->strLiensFi=trim(strip_tags(@getTextInHtml($eco, '<td class="tabtot">LIENS FINANCIERS</td>', '<tr>', '</td></tr>')));
$this->strElemsFi=trim(strip_tags(@getTextInHtml($eco, '<td class="tabtot">ELEMENTS FINANCIERS</td>', '<tr>', '</td></tr>')));
}
$refererP='http://www.score3.fr/';
$urlP='http://www.score3.fr/entreprise.shtml?siren='.$siren;
$page=getUrl($urlP, '', '', $refererP, false, 'www.score3.fr');
@ -195,19 +195,19 @@ curl_multi_close($mh);
$fp=fopen('./pouet.html', 'w');
fwrite($fp, $pou);
fclose($fp);
if ($urlInfoD<>'') {
$page=getUrl($urlInfoD,$strCookie,'', $refererInfoD, false, 'infobilan.decideur.com');
$referer=$urlInfoD;
if ($this->nscrl==0) $this->nscrl=@getTextInHtml($url, 'nscrlP=', '=','&');
$url=$urlRacine.'fiche_ident.html';
$page=getUrl($url,$strCookie,'', $referer, false, 'infobilan.decideur.com');
$this->body=$page['body'];
if ($this->raisonSociale=='')
$this->raisonSociale=trim(@getTextInHtml($this->body, '<span class="libelle2">Soci&eacute;t&eacute;', ' :', '</span>'));
if ($this->adresse=='')
$this->adresse=trim(@getTextInHtml($this->body, '<span class="libelle2">Adresse</span> <strong>:', '</strong>', '</td>'));
@ -221,19 +221,19 @@ curl_multi_close($mh);
$this->mail=trim(@getTextInHtml($this->body, '<span class="libelle2">E-mail</span>', '<a href="mailto:', '">'));
if ($this->naf=='')
$this->naf=trim(@getTextInHtml($this->body, '<span class="libelle2">Code NAF</span>', ' :', '</td>'));
if(preg_match('/<td valign="top"><span class="libelle2">Capital social<\/span> : (\d*)(.*)<br>/isU', $this->body, $matches)
&& ($this->capitalMontant=='' || $this->capitalDevise=='')) {
$this->capitalMontant=trim($matches[1]);
$this->capitalDevise=trim($matches[2]);
}
if ($this->fj=='')
$this->fj=trim(@getTextInHtml($this->body, '<span class="libelle2">Forme juridique</span>', ' :', '<br>'));
if ($this->nationalite=='')
$this->nationalite=trim(@getTextInHtml($this->body, '<span class="libelle2">Nationalit&eacute;</span>', ' :', '</td>'));
if ($this->effectif=='')
$this->effectif=trim(@getTextInHtml($this->body, '<td valign="top"><span class="libelle2">Effectif</span>', ' :', '<br>'));
$this->effectif=trim(@getTextInHtml($this->body, '<td valign="top"><span class="libelle2">Effectif</span>', ' :', '<br>'));
if ($this->activite=='')
$this->activite=trim(@getTextInHtml($this->body, '<span class="libelle2">Activit&eacute;</span>', ' :', '<br>'));
@ -246,7 +246,7 @@ curl_multi_close($mh);
$this->tabAct[$i]['rcs']=trim(str_replace('RCS : ','',strip_tags($matches[3][$i])));
}
}
/** Filiales **/
$strTmp=trim(@getTextInHtml($this->body, 'FILIALES<br>', '</div></h1>', '<h1>'));
if(preg_match_all('/<p><span class="libelle2">(.*)<\/span> - <span class="libelle2">Participation<\/span> :(.*)%<br>(.*)<\/p>/isU', $strTmp, $matches)) {
@ -256,7 +256,7 @@ curl_multi_close($mh);
$this->tabFil[$i]['rcs']=trim(str_replace('RCS :','',strip_tags($matches[3][$i])));
}
}
/** CA et Résultat **/
$strTmp=trim(@getTextInHtml($this->body, '<h1>PRINCIPAUX ELEMENTS FINANCIERS<br>', '</div></h1>', '</p>'));
if(preg_match('/<p><span class="libelle2">CA (.*)<\/span>(.*)<br>/isU', $strTmp, $matches)) {
@ -272,7 +272,7 @@ curl_multi_close($mh);
fwrite($fp, $infoBilan);
fclose($fp);
}
if ($this->nbEtab=='' || $this->nbEtab=='0') {
$this->nbEtab=trim(strip_tags(str_replace('afficher la liste...', '', @getTextInHtml($pou, '<tr><td class="ligne1_2">Etablissements </td>', '<td class="ligne2_2">', '</td></tr>'))));
$urlPEtab='http://www.score3.fr/etablissements.shtml?page=1&siren='.$siren;
@ -285,7 +285,7 @@ curl_multi_close($mh);
$this->tabEtab[$i]['siren']=$siren;
$this->tabEtab[$i]['nic']=$nic;
$this->tabEtab[$i]['siret']=$siren.$nic;
$this->tabEtab[$i]['enseigne']=trim(str_replace(chr(160),' ',utf8_decode(strip_tags(@getTextInHtml($strEtab, '<span class="titre3">', '">', '</span>')))));
$this->tabEtab[$i]['adresse']=trim(str_replace(chr(160),' ',utf8_decode(strip_tags(@getTextInHtml($strEtab, '<span class="infos">', '">', '<br>')))));
$strTmp=trim(str_replace(chr(160),' ',utf8_decode(strip_tags(@getTextInHtml($strEtab, '<span class="infos">', '<br>', '</span>')))));
@ -307,21 +307,21 @@ curl_multi_close($mh);
fwrite($fp, $pou2);
fclose($fp);
}
if ($this->effectif=='' || $this->effectif=='0' || $this->effectif=='NC')
$this->effectif=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Effectifs</td>', '<td class="ligne2_2">', '</td></tr>'));
if ($this->dateImmatriculation=='' || $this->dateImmatriculation=='0')
$this->dateImmatriculation=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Date d\'immatriculation</td>', '<td class="ligne2_2">', '</td></tr>'));
if ($this->dateFermeture=='' || $this->dateFermeture=='0')
$this->dateFermeture=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Date de fin d\'exploitation</td>', '<td class="ligne2_2">', '</td></tr>'));
if ($this->tel=='' || $this->tel=='0')
$this->tel=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Téléphone</td>', '<td class="ligne2_2">', '</td></tr>'));
if ($this->fax=='' || $this->fax=='0')
$this->fax=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Fax</td>', '<td class="ligne2_2">', '</td></tr>'));
$strTmp=trim(@getTextInHtml($pou, 'Procédures collectives</td></tr>', '</table></td>', '</td><td background'));
if(preg_match_all('/<tr><td class="ligne1_2">(.*)<\/td><td class="ligne2_2">(.*)<\/td><\/tr>/isU', $strTmp, $matches)) {
foreach ($matches[1] as $i=>$jug) {
@ -329,12 +329,12 @@ curl_multi_close($mh);
$this->tabJug[$i]['juge']=$matches[2][$i];
}
}
$this->score_pouey=trim(@getTextInHtml($pou, '<param name="movie" value="cadran.swf?rotation=', '&amp;type=pouey&amp;valeur=', '">'));
$this->score_conan=trim(@getTextInHtml($pou, '<param name="movie" value="cadran.swf?rotation=', '&amp;type=ch&amp;valeur=', '">'));
$this->score_afdcc=trim(@getTextInHtml($pou, '<param name="movie" value="cadran.swf?rotation=', '&amp;type=afdcc&amp;valeur=', '">'));
$this->vigilance =trim(@getTextInHtml($pou, '<param name="movie" value="vigilance.swf', 'degre=', '">'));
if(preg_match('/Date de l\'exercice<\/td><td class="ligne2_2">(.*) sur (\d*) mois<\/td><\/tr>/isU', $pou, $matches)) {
$this->derExerciceDClot=trim($matches[1]);
$this->derExerciceDuree=trim($matches[2]);
@ -346,7 +346,7 @@ curl_multi_close($mh);
*/
if ($this->codeRetour==200)
return true;
return false;
}

View File

@ -220,9 +220,9 @@ $tabPostesDGI=array(
'1T'=>'Prêts et autres immobilisations financières (brut)',
'LQ'=>'TOTAL IV (brut)',
'0G'=>'TOTAL GENERAL (I+II+III+IV) (brut)',
'L9'=>'Sur sol propre dont Composant',
'L9'=>'Sur sol propre dont Composant',
'M1'=>'Sur sol d\'autrui dont Composant',
'M2'=>'Installation générale, aménagement, agencement dont Composant',
'M2'=>'Installation générale, aménagement, agencement dont Composant',
'M3'=>'Installations techniques, matériel et outillage industriels dont Composant',
'KB'=>'Frais d\'établissement de Rech. et Dev. TOTAL I (réév.)',
'KE'=>'Autres postes d\'immobilisations incorporelles TOTAL II (réév.)',
@ -737,16 +737,16 @@ $tabPostesDGI=array(
'VF'=>'(2) Prêts et avances consentis aux associés (pers. phys.)',
'7Y'=>'Emprunts obligataires convertibles (1)',
'7Z'=>'Autres emprunts obligataires (1)',
'VG'=>'Emprunts et dettes auprès des établissements de crédits (1) : à 1 an maximum',
'VH'=>'Emprunts et dettes auprès des établissements de crédits (1) : à + 1 an',
'VG'=>'Emprunts et dettes auprès des établissements de crédits (1) : à 1 an maximum',
'VH'=>'Emprunts et dettes auprès des établissements de crédits (1) : à + 1 an',
'8A'=>'Emprunts,dettes financières divers (1)(2)',
'8B'=>'Fournisseurs comptes rattachées',
'8C'=>'Personnels et comptes rattachés',
'8D'=>'SS et autres organisme sociaux',
'8E'=>'Etat et autres collectivités publiques : Impôts sur les bénéfices',
'VW'=>'Etat et autres collectivités publiques : T.V.A.',
'VX'=>'Etat et autres collectivités publiques : Obligations cautionnées',
'VQ'=>'Etat et autres collectivités publiques : Autes impôts, taxes et assimilés',
'VW'=>'Etat et autres collectivités publiques : T.V.A.',
'VX'=>'Etat et autres collectivités publiques : Obligations cautionnées',
'VQ'=>'Etat et autres collectivités publiques : Autes impôts, taxes et assimilés',
'8J'=>'Dettes sur immo, comptes rattachés',
'VI'=>'Groupe et associés (2)',
'8K'=>'Autres dettes',
@ -1045,13 +1045,13 @@ $tabGreffe2Sd=array(
'E1J'=>'IU',
'E1K'=>'IV',
'E3L'=>'IW',
'E3M'=>'IX',
'E3M'=>'IX',
'E3N'=>'NN',
// IMMO Fin
'E4A'=>'IZ',
'E4B'=>'I0',
'E3R'=>'I1',
'E3S'=>'I2',
'E3S'=>'I2',
'E3T'=>'NM',
'E3U'=>'NP',
@ -1085,7 +1085,7 @@ $tabGreffe2Sd=array(
'J1X'=>'VP2',
'J1Y'=>'VC2',
'J1Z'=>'VR2',
'J2A'=>'VS2',
'J2A'=>'VS2',
'J2B'=>'7Y1',
'J2C'=>'7Z1',
@ -1165,8 +1165,8 @@ $tabGreffe2Sd=array(
'M2L'=>'ZK1',
);
include_once(FWK_PATH.'common/curl.php');
require_once 'framework/common/curl.php';
class MGreffes {
@ -1179,12 +1179,12 @@ class MGreffes {
public $iDb;
private $iInsee;
public $enCache=false;
function __construct() {
$this->iDb=new WDB();
$this->iInsee=new MInsee();
}
function getIdentite($siren, $refresh=false) {
$res=$this->iDb->select('greffes_identite', 'id, siren, nom, nomCommercial, adresse, adresse2, cp, ville, enseigne, siege, fj, fjLib, naf, nafLib, numRC, numRC2, typeRCS, numGreffe, libGreffe, dateCreation, dateRadiation, dateCloture, ca, res, eff, dateInsert', "siren=$siren");
if (count($res)>0 && !$refresh) {
@ -1211,9 +1211,9 @@ class MGreffes {
$dateRad=$ent['dateRadiation'];
$dateCloture=$ent['dateCloture'];
$dateInsert=$ent['dateInsert'];
} elseif (INFOGREFFE_DISPO_WEB) {
} elseif (INFOGREFFE_DISPO_WEB) { // @todo : Pour désactiver Infogreffe
$url='http://www.infogreffe.fr/infogreffe/index.jsp';
$page=getUrl($url, '', '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$page=getUrl($url, '', '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 5);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'200') {
@ -1222,7 +1222,7 @@ class MGreffes {
}
$this->cookie=$page['header']['Set-Cookie'];
$this->referer=$url;
$url='http://www.infogreffe.fr/infogreffe/newRechercheEntreprise.xml';
$postData=array( 'denomination'=>'',
'commune'=>'',
@ -1243,7 +1243,7 @@ class MGreffes {
$url='http://www.infogreffe.fr/weblogic/infogreffe/index.do';
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'302') {
$this->libErreur='Erreur Infogreffe 302b !';
return false;
@ -1273,14 +1273,14 @@ class MGreffes {
return false;
}
$this->referer=$url;
$fp=fopen('./infogreffe.log', 'a');
$fp=fopen(LOG_PATH.'/infogreffe.log', 'a');
fwrite($fp, $this->body);
fclose($fp);
//005480256R.C.S.STNAZAIRE
$nomCom=$adr=$adr2=$cpVille=$cp=$ville=$ens=$dateRad=$dateCre=$dateCloture=$ca=$res=$eff='';
$strSiren=htm2txt(@getTextInHtml($this->body, '<div class="text-rcs" id="libelleRcsGreffe" style="margin-left:0px; margin-right: 0px;">', '0px;">', '</div>'));
$strSiren=htm2txt(@getTextInHtml($this->body, '<div class="text-rcs" id="libelleRcsGreffe" style="margin-left:0px; margin-right: 0px;">', '0px;">', '</div>'));
//511 054 843 R.S.A.C. NARBONNE
/*if (preg_match("/((?:[0-9]{9,9})|(?:[0-9]{3,3} [0-9]{3,3} [0-9]{3,3})|(?:[0-9]{3,3}\.[0-9]{3,3}\.[0-9]{3,3})|(?:[0-9]{3,3}-[0-9]{3,3}-[0-9]{3,3}))/", $strSiren, $matches)) {
print_r($matches);
@ -1296,7 +1296,7 @@ class MGreffes {
$greffe_lib=trim(preg_replace('/^Spécial des Entrepreneurs Individuels à Responsabilité Limitée/','',trim(implode(' ', $tabTmp))));
} else
$greffe_lib=trim(preg_replace('/^inscrit au R.C.S./','',trim(implode(' ', $tabTmp))));
$strTmp=@getTextInHtml($this->body, '<td class=\'content\'>IDENTITE</td></tr></table></div>', '</tr></table></div>', '<span class="span-planAcces">');
$siege=htm2txt(@getTextInHtml($strTmp, '<span id="fiche.etablissement.type" class="ficheidentite-texte-standard-italic-gras">', 'gras">', '</span>'));
if ($siege=='Siège social') $siege=1; else $siege=0;
@ -1305,10 +1305,10 @@ class MGreffes {
if (preg_match('/<span id="fiche.denomination" class="texte-standard">(?:.*)Enseigne \:(.*)</Uis',$this->body,$matches))
$ens=htm2txt(trim($matches[1]));
if (preg_match('/<span id="fiche.denomination" class="texte-standard">(?:.*)Nom commercial \:(.*)</Uis',$this->body,$matches))
$nomCom=htm2txt(trim($matches[1]));
if (preg_match('/<\/span>(.*)<div>(.*)<br\/>(.*)<br\/>(.*)<br\/>(.*)<br\/>/Uis',$strTmp,$matches)) {
// Adresse sur 5 lignes
$adr=htm2txt(trim($matches[4]));
@ -1335,7 +1335,7 @@ class MGreffes {
$cp=substr($cpVille,0,5);
$ville=trim(substr($cpVille,5));
}
if (preg_match('/<span class=\'ficheidentite.texte.standard.italic.gras\'>Activit(?:.*)\(code NAF\)(?:.*)title="(.*)">(.*)<\/span>/Uis',$this->body,$matches)) {
$naf=$matches[2];
$nafLib=htm2txt(ucfirst(strtolower($matches[1])));
@ -1344,7 +1344,7 @@ class MGreffes {
$siege=1;
} else {
$matches=array();
preg_match('/<span class=\'ficheidentite.texte.standard.italic.gras\'>Forme juridique<\/span><br\/><span id="fiche.forme.juridique" class="texte-standard">(.*)<\/span>/Uis',$this->body,$matches);
preg_match('/<span class=\'ficheidentite.texte.standard.italic.gras\'>Forme juridique<\/span><br\/><span id="fiche.forme.juridique" class="texte-standard">(.*)<\/span>/Uis',$this->body,$matches);
}
$cjLib=prepareString(@strtoupper(trim($matches[1])));
$capitalType='SOC';
@ -1442,7 +1442,7 @@ class MGreffes {
case 'SARL D&#039;ARCHITECTURE': $cj=5499; break;
case 'SARL D&#039;INTERET COLLECTIF ET AGRICOLE A CAPITAL VARIABLE': $cj=5432; $capitalType='VAR'; break;
case 'SARL NON MEMBRE DE LA CE OU NON PARTIE A L&#039;ACCORD SUR L&#039;ESPACE ECONOMIQUE EUR.': $cj=3120; break;
case 'SARL SOCIETE A ASSOCIE UNIQUE': $cj=5498; break;
case 'SARL SOCIETE A ASSOCIE UNIQUE': $cj=5498; break;
case 'SARL SOUS FORME DE EURL': $cj=5498; break;
case 'SARL UNIPERSONNELLE SPORTIVE': $cj=5498; break;
case 'SARL UNIPERSONNELLE': $cj=5498; break;
@ -1644,7 +1644,7 @@ class MGreffes {
else
$cjLib=ucfirst(strtolower($cjLib));
if (preg_match('/<input type="hidden" name="greffe" value="(.*)">/Uis',$this->body,$matches)) {
$greffe_num=$matches[1];
}
@ -1675,7 +1675,7 @@ class MGreffes {
if (preg_match('/<span class="text-standard">(?:.*)Effectif \:(.*)<br/Uis',$this->body,$matches)) {
$eff=strtr(trim($matches[1]),array(chr(160)=>'',' '=>'','k'=>'000','K'=>'000','&euro;'=>'','personnes'=>''));
}
$numRC=$greffe_mil.$greffe_sta.$greffe_chr;
if (strlen($numRC)>4 && strlen($numRC)<10) {
if ($numRC<>'' && substr($numRC,0,2)*1>=30)
@ -1686,39 +1686,40 @@ class MGreffes {
$numRC2='';
} else
$numRC2=$numRC;
/** Insertion en base de données **/
$tabInsert=array( 'siren' => $siren,
'nom' => $nom,
'nomCommercial' => $nomCom,
'adresse' => $adr,
'adresse2' => $adr2,
'cp' => $cp,
'ville' => $ville,
'enseigne' => $ens,
'siege' => $siege,
'fj' => $cj,
'fjLib' => $cjLib,
'naf' => $naf,
'nafLib' => $nafLib,
'numGreffe' => $greffe_num,
'typeRCS' => $typeRCS,
'libGreffe' => $greffe_lib,
'numRC' => $numRC,
'numRC2' => $numRC2,
'dateCreation' => $dateCre,
'dateRadiation' => $dateRad,
'dateCloture' => $dateCloture,
'ca' => $ca,
'res' => $res,
'eff' => $eff,
);
$tabInsert=array(
'siren' => $siren,
'nom' => $nom,
'nomCommercial' => $nomCom,
'adresse' => $adr,
'adresse2' => $adr2,
'cp' => $cp,
'ville' => $ville,
'enseigne' => $ens,
'siege' => $siege,
'fj' => $cj,
'fjLib' => utf8_encode($cjLib),
'naf' => $naf,
'nafLib' => utf8_encode($nafLib),
'numGreffe' => $greffe_num,
'typeRCS' => $typeRCS,
'libGreffe' => $greffe_lib,
'numRC' => $numRC,
'numRC2' => $numRC2,
'dateCreation' => $dateCre,
'dateRadiation' => $dateRad,
'dateCloture' => $dateCloture,
'ca' => $ca,
'res' => $res,
'eff' => $eff,
);
$dateInsert=date('Y-m-d H:i:s');
$id=$this->iDb->insert('greffes_identite', $tabInsert, true);
//sendMail('debug@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMGreffes.php : Debug identite $siren", $this->body);
// 997536917
}
$tabRet=array( 'id' => $id,// A calculer après insert
'Pertinence' => 100,
@ -1753,7 +1754,7 @@ class MGreffes {
);
return $tabRet;
}
function getListeEtab($siren) {
//POSTDATA=
$tabIdentite=$this->getIdentite($siren, true);
@ -1798,14 +1799,14 @@ class MGreffes {
/* [22] => ^M
AUTOMOBILES PEUGEOT^M
PARC DU GRIFFON 38 AV DES GEORGE S DE CAB RIES BP 258 . 13747 VITROLLES - Etablissement Secondaire^M
*/
if (preg_match('/^(.*)<\/a>/Uis', $tabEtabs[$i], $matches))
$nom=htm2txt(trim($matches[1]));
if (preg_match('/^(?:.*)<\/a>(?:.*)<br \/>(.*) - /Uis', $tabEtabs[$i], $matches)) {
if (preg_match('/Enseigne \:(.*)<br\/>(.*)/Uis',$matches[1],$matches2)) {
$ens=htm2txt(trim($matches2[1]));
@ -1813,17 +1814,17 @@ class MGreffes {
} elseif (preg_match('/Nom commercial \:(.*)<br\/>(.*)/Uis',$matches[1],$matches2)) {
$nomCom=htm2txt(trim($matches2[1]));
$adr=htm2txt(trim($matches2[2]));
} else
$adr=htm2txt(trim($matches[1]));
} else
$adr=htm2txt(trim($matches[1]));
$tabAdr=$this->iInsee->structureVoie($adr.'.');
}
if (preg_match("/([0-9]{3,3} [0-9]{3,3} [0-9]{3,3}) (R\.C\.S\.|R\.S\.A\.C\.) (.*)<br/Uis", $tabEtabs[$i], $matches)) {
$siren=$matches[1];
$typeRCS=$matches[2];
$greffe_lib=htm2txt(trim($matches[3]));
}
if (preg_match('/<br\/>(.*)$/sUi', $tabEtabs[$i], $matches))
$nafEtab=htm2txt(trim($matches[1]));
@ -1833,11 +1834,11 @@ class MGreffes {
$princip=1;
elseif (preg_match('/- Siège Social/Uis', htm2txt($tabEtabs[$i])))
$siege=1;
if (preg_match('/<span class="text-orange-xsmall">Radi&eacute;<\/span>/Uis', $tabEtabs[$i]))
$actif=0;
$greffe_num = substr($docId,0,4);
$numRC = substr($docId,4,8);
if (strlen($numRC)>4 && strlen($numRC)<10) {
@ -1849,7 +1850,7 @@ class MGreffes {
$numRC2='';
} else
$numRC2=$numRC;
$tabEt[$i]=@array( 'docId' => $docId, //
'nom' => $nom, //
'nomCommercial' => $nomCom, //
@ -1878,15 +1879,15 @@ class MGreffes {
}
return false;
}
/** http://www.infogreffe.fr/infogreffe/listEtablissement.do?ets=552144503&index=RCS
** numRC des établissements :
** http://www.infogreffe.fr/infogreffe/getEntrepDetail.do?docId=330290B017760010
** http://www.infogreffe.fr/infogreffe/getEntrepDetail.do?docId=130379B005800010
**/
/** Génère une requète sur le Web Service Infogreffe et récupère le résultat
**
** @param unknown_type $siren
@ -1922,13 +1923,13 @@ class MGreffes {
case 'rcs': break;
}*/
// Par défaut, le résultat ne provient pas du cache
// Par défaut, le résultat ne provient pas du cache
$this->enCache=false;
/** Par défaut les documents avec des liens vers les actes ne sont pas périsables
**/
if ($option=='')
$perisable=true;
$perisable=true;
else
$perisable=false;
/*`siren` , `dateRequete` , `strXml` , `type` , , `codeErreur`
@ -1949,12 +1950,12 @@ FROM ``*/
$errMsg=$xml;
}
//echo 'Une requête dans le cache <br/>';
}// else
}// else
//echo 'Pas de requête dans le cache <br/>';
if (INFOGREFFE_DISPO_WS && (
!$this->enCache ||
($perisable && $dateReq*1<>date('Ymd')) ||
!$this->enCache ||
($perisable && $dateReq*1<>date('Ymd')) ||
($this->enCache && !$perisable && strlen($xml)<=200))) {
$query=$this->requeteInfogreffe($siren,$idCommande,$type, $vecteur, $option);
$xml=$this->getInfogreffeXML($query);
@ -1962,10 +1963,10 @@ FROM ``*/
$sirenQuery=$sirenReponse=0;
if (preg_match('/<num_siren>(.*)<\/num_siren>/Uis', $query, $matches))
$sirenQuery=$matches[1];
if (preg_match('/<num_siren>(.*)<\/num_siren>/Uis', $xml, $matches))
$sirenReponse=$matches[1];
/** Réponse pour un autre siren, sans erreur ! **/
if ($sirenQuery<>$sirenReponse && strlen($xml)>=200)
sendMail('debug@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMGreffes.php : Debug requete $siren,$idCommande,$type, $vecteur, $option", "Debug requete $siren,$idCommande,$type, $vecteur, $option
@ -2003,10 +2004,10 @@ $xml");
//echo EOL.'Insertion réponse Infogreffe'.EOL;
}
}
return $xml;
}
/**
* Retourne le résultat du webservice infogreffe.
* @param string $req
@ -2026,7 +2027,7 @@ function getInfogreffeXML($req){
//$url='https://wsrcte.experian.fr/WSContextInfogreffe/INFOGREFFE';
else
$url = INFOGREFFE_WS_URL;
$req = utf8_encode($req);
debugLog('I', "Accès Infogreffe WS Avant = $url", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$post = '<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://webservices.infogreffe.fr/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:getProduitsWebServicesXML><param0 xsi:type="xsd:string">'.$req.'</param0></ns1:getProduitsWebServicesXML></SOAP-ENV:Body></SOAP-ENV:Envelope>';
@ -2037,16 +2038,16 @@ function getInfogreffeXML($req){
$fpErr=fopen(LOG_PATH.'/curlDebug.log', 'a');
curl_setopt($ch, CURLOPT_STDERR, $fpErr);
curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
curl_setopt($ch, CURLOPT_COOKIEFILE,TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
$output = curl_exec($ch);
fclose($fpErr);
$xml = str_replace("<?xml version='1.0' encoding='UTF-8'?><SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'><SOAP-ENV:Body><ns0:getProduitsWebServicesXMLResponse xmlns:ns0='urn:local' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'><return xsi:type='xsd:string'>", '', $output);
$xml = str_replace('</return></ns0:getProduitsWebServicesXMLResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>','', $xml);
// $firephp->log($xml,'XML');
@ -2107,7 +2108,7 @@ function requeteInfogreffe($siren, $idCommande=0, $type='BS', $vecteur='XL', $op
'<type_requete>S</type_requete>'.
'<media>WS</media>'.
'<mode_diffusion>';
if ($type=='AC' && $option=='' && $vecteur=='XL')
$req.= '<mode type="T"/>'.
'<mode type="C"/>';
@ -2161,7 +2162,7 @@ function getListeBilans($siren, $type='*') {
$tabRet=array();
$xml=$this->getProduitWS($siren,'BS', 0);
$dom_object = new DomDocument2();
$dom_object->loadXML($xml, LIBXML_NOERROR | LIBXML_NOWARNING);
$dom_object->loadXML($xml);
// create DOMXPath object with our DOMObject
$xpath = new Domxpath($dom_object);
/**<listeBilanSaisi>
@ -2171,15 +2172,15 @@ function getListeBilans($siren, $type='*') {
$result = $xpath->query("//listeBilanSaisi/bilanSaisi/.");
if (count($result)>0) {
/** On parse chaque noeud XML pour récupérer les infos **/
foreach ($result as $annonce) {
/** Année de Millésime et infos Greffes pour la Ref Commande **/
$title = $xpath->query ('millesime', $annonce);
$mil=trim($title->item(0)->nodeValue);
/*<>7501</greffe>
<>55</dossier_millesime>
<dossier_statut>B</dossier_statut>
/*<>7501</greffe>
<>55</dossier_millesime>
<dossier_statut>B</dossier_statut>
<dossier_chrono>*/
$title = $xpath->query ('num_gest/greffe', $annonce);
$dgre=trim($title->item(0)->nodeValue);
@ -2189,7 +2190,7 @@ function getListeBilans($siren, $type='*') {
$dsta=trim($title->item(0)->nodeValue);
$title = $xpath->query ('num_gest/dossier_chrono', $annonce);
$dchr=trim($title->item(0)->nodeValue);
$title = $xpath->query ('type_comptes', $annonce);
$typeCpt=strtolower(trim($title->item(0)->nodeValue));
$title = $xpath->query ('liasse', $annonce);
@ -2206,7 +2207,7 @@ function getListeBilans($siren, $type='*') {
$title = $xpath->query ('num_depot', $annonce);
$num_depot=strtolower(trim($title->item(0)->nodeValue));
$ref=$mil."_$typeCpt-".str_replace('-', '',$millesime)."-$dgre-$dmil-$dsta-$dchr-$num_depot";
/*elseif ($type=='C') $presta=2001;
@ -2242,7 +2243,7 @@ function getListeBilans($siren, $type='*') {
@$iDb->insert('greffes_actes', $tabInsert);*/
}
//print_r($tabRet2);
/** Ajout des dates de clotures précédentes et des durées d'exercices **/
foreach ($tabRet2 as $i=>$ret) {
$tabRet[$ret['index']]=$ret;
@ -2261,16 +2262,16 @@ function getListeBilans($siren, $type='*') {
$tabRet[$ret['index']]['dateExercicePre']=str_replace('-', '',$millesimePre);
$tabRet[$ret['index']]['dureeExercicePre']=$delta2;
}
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMGreffes::getListeBilans sur $siren", $xml.EOL.print_r($tabRet, true).EOL.'enCache='.$this->enCache.EOL);
return $tabRet;
}
function getBilan($siren, $ref='') {
global $tabGreffe2Sd;
global $tabPostesDGI;
$tabRet=$tabPostes=array();
$xml=$this->getProduitWS($siren,'BS',0,'XL',$ref);
//die($xml);
@ -2279,11 +2280,11 @@ function getBilan($siren, $ref='') {
$xpath = new Domxpath($dom_object);
$title = $xpath->query ('//bilanSaisi/liasse');
$liasse=strtoupper(trim($title->item(0)->nodeValue));
$result = $xpath->query("//bilanSaisi/page/poste/.");
if (count($result)>0) {
//echo count($result).EOL;
/** On parse chaque Poste du Bilans en XML pour récupérer les infos **/
foreach ($result as $poste) {
/** Année de Millésime et infos Greffes pour la Ref Commande **/
@ -2323,10 +2324,10 @@ function getBilan($siren, $ref='') {
$tabPostes[$codeSd]=$valeur;
}
$tabRet['POSTES']=$tabPostes;
$tabRet['DATE_FRAICHE_BILAN']=date('Ymd');
$tabRet['MONNAIE_LIV_UNITE']='';
$title = $xpath->query('//bilanSaisi/date_cloture');
$tabRet['DATE_CLOTURE']=WDate::dateT('Y-m-d','d/m/Y',trim($title->item(0)->nodeValue));
$title = $xpath->query ('//bilanSaisi/duree_exo');
@ -2367,7 +2368,7 @@ function getBilan($siren, $ref='') {
$title = $xpath->query ('//bilanSaisi/devise');
$tabRet['MONNAIE_ORI']=trim($title->item(0)->nodeValue);
if ($tabRet['MONNAIE_ORI']=='') $tabRet['MONNAIE_ORI']='EUR';
// Conversion en EUR car on ne livre qu'en EUROS !
if ($tabRet['MONNAIE_ORI']<>'EUR') {
if ($tabRet['MONNAIE_ORI']=='FRF') {
@ -2385,11 +2386,11 @@ function getBilan($siren, $ref='') {
$tabRet['MONNAIE']='EUR';
$tabBilan['SOURCE']=10; // 167 avant
/*
<denomination>AUTOMOBILES PEUGEOT</denomination>
<adresse>75 AV DE LA GRANDE ARMEE</adresse>
<code_postal>75016</code_postal>
<ville>PARIS</ville>
<pays />
<denomination>AUTOMOBILES PEUGEOT</denomination>
<adresse>75 AV DE LA GRANDE ARMEE</adresse>
<code_postal>75016</code_postal>
<ville>PARIS</ville>
<pays />
*/
}
return $tabRet;
@ -2438,12 +2439,12 @@ function getListeActes($siren) {
</mode_diffusion>
</acte>
</depot_acte>
</liste_depot_acte>**/
$result = $xpath->query("//liste_depot_acte/depot_acte/.");
if (count($result)>0) {
/** On parse chaque noeud XML pour récupérer les infos **/
foreach ($result as $annonce) {
/*// Gestion
@ -2526,7 +2527,7 @@ function getListeActes($siren) {
'vecteurC'=>$vecteurC,
);
}
}*/
}*/
// Greffes et RC
$title = $xpath->query ('num_gest/greffe', $annonce);
$dgre=trim($title->item(0)->nodeValue);
@ -2536,7 +2537,7 @@ function getListeActes($siren) {
$dsta=trim($title->item(0)->nodeValue);
$title = $xpath->query ('num_gest/dossier_chrono', $annonce);
$dchr=trim($title->item(0)->nodeValue);
// Dépôt
$title = $xpath->query ('num_depot', $annonce);
$depot_num=strtolower(trim($title->item(0)->nodeValue));
@ -2546,7 +2547,7 @@ function getListeActes($siren) {
// Siren
$title = $xpath->query ("num_siren", $annonce);
$num_siren = $title->item(0)->nodeValue;
// Actes
$actes = $xpath->query("acte/.", $annonce);
$nbVecteurT=$nbActes=0;
@ -2585,11 +2586,11 @@ function getListeActes($siren) {
if ($title->length==1) //$vecteurC = true;
$tabVecteurs[]='C';
}
if ($date_acte=='') $date=$date_depot; else $date=$date_acte;
$ref="$acte_type-".str_replace('-', '',$acte_date)."-$dgre-$dmil-$dsta-$dchr-$depot_num-$acte_num";
$tabRet[]=array( 'siren' => $siren,
'numRC' => $dmil.'-'.$dsta.'-'.$dchr,
'numGreffe' => $dgre,
@ -2636,9 +2637,9 @@ function getListesProcolVentes() {
Referer[http://www.infogreffe.fr/infogreffe/afficherRechercheActualiteAction.do?paramTypeListe=5]
Cookie[webabacus_id=1259143571392-1; JSESSIONID=5g2VLTDbHFBLJVnPv9TVbNYm17w9KfL90pvPLtdtTj6qydH2D120!1981381761!1657286441]
Données POST:
2 GET
2 GET
3 GET http://www.infogreffe.fr/infogreffe/afficherListeActualitesAction.do?page=2
Referer[http://www.infogreffe.fr/infogreffe/rechercheListeActualiteAction.do]
Cookie[webabacus_id=1259143571392-1; JSESSIONID=5g2VLTDbHFBLJVnPv9TVbNYm17w9KfL90pvPLtdtTj6qydH2D120!1981381761!1657286441]
@ -2654,7 +2655,7 @@ function getListesProcolVentes() {
}
$this->cookie=$page['header']['Set-Cookie'];
$this->referer=$url;
$url='http://www.infogreffe.fr/infogreffe/afficherRechercheActualiteAction.do?paramTypeListe=1';
$page=getUrl($url, $this->cookie, '', $this->referer, false);
$this->body=$page['body'];
@ -2666,8 +2667,8 @@ function getListesProcolVentes() {
//$this->cookie=$page['header']['Set-Cookie'];*/
$this->referer=$url;
print_r($page);
die();
die();
$url='http://www.infogreffe.fr/infogreffe/rechercheListeActualiteAction.do';
$postData=array( 'radImmatRad'=>'FN',
'departement'=>'',
@ -2688,17 +2689,17 @@ function getListesProcolVentes() {
$this->referer=$url;
print_r($page);
die();
$url='http://www.infogreffe.fr/weblogic/infogreffe/index.do';
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr');
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'302') {
$this->libErreur='Erreur Infogreffe 302b !';
return false;
}
$this->referer=$url;
$url='http://www.infogreffe.fr/infogreffe/afficherListeActualitesAction.do?rebuild=true';
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr');
$this->body=$page['body'];
@ -2706,7 +2707,7 @@ function getListesProcolVentes() {
$this->header=$page['header'];
print_r($page);
die();
if ($this->codeRetour==302) {
$this->referer=$url;
$url='http://www.infogreffe.fr/infogreffe/entrepListe.do?index=rcs';
@ -2725,10 +2726,10 @@ function getListesProcolVentes() {
return false;
}
$this->referer=$url;
$fp=fopen('./infogreffe.log', 'a');
$fp=fopen(LOG_PATH.'/infogreffe.log', 'a');
fwrite($fp, $this->body);
fclose($fp);
}
@ -2746,10 +2747,10 @@ function getBilansImages($siren, $ref='') {
$dom_object = new DomDocument2();
$dom_object->loadXML($xml);
// create DOMXPath object with our DOMObject
$xpath = new Domxpath($dom_object);
$xpath = new Domxpath($dom_object);
$result = $xpath->query("//liste_bilan_complet/bilan_complet/.");
if (count($result)>0) {
/** On parse chaque noeud XML pour récupérer les infos **/
foreach ($result as $annonce) {
/** Année de Millésime et infos Greffes pour la Ref Commande **/
@ -2764,15 +2765,15 @@ function getBilansImages($siren, $ref='') {
$dsta=trim($title->item(0)->nodeValue);
$title = $xpath->query ('num_gest/dossier_chrono', $annonce);
$dchr=trim($title->item(0)->nodeValue);
$title = $xpath->query ('type_comptes', $annonce);
$typeCpt=strtolower(trim($title->item(0)->nodeValue));
$title = $xpath->query ('date_cloture', $annonce);
$millesime=strtolower(trim($title->item(0)->nodeValue));
$title = $xpath->query ('date_cloture_iso', $annonce);
$dateClotureIso=strtolower(trim($title->item(0)->nodeValue));
$title = $xpath->query ('num_depot', $annonce);
$num_depot=strtolower(trim($title->item(0)->nodeValue));
@ -2781,7 +2782,7 @@ function getBilansImages($siren, $ref='') {
$tabVecteurs=array();
$vecteurs = $xpath->query("mode_diffusion/.", $annonce);
foreach ($vecteurs as $vecteur) {
$title = $xpath->query ("mode[@type='T']", $vecteur);
$title = $xpath->query ("mode[@type='T']", $vecteur);
if ($title->length==1) //$vecteurT = true;
$tabVecteurs[]='T';
$title = $xpath->query ("mode[@type='C']", $vecteur);
@ -2792,7 +2793,7 @@ function getBilansImages($siren, $ref='') {
$tabRet[]=array( 'siren' => $siren,
'numRC' => $dmil.'-'.$dsta.'-'.$dchr,
'numGreffe' => $dgre,
'numGreffe' => $dgre,
'annee' => $mil,
'type' => $typeCpt,
'dateClotureAff' => $millesime,
@ -2817,9 +2818,9 @@ function getBilansImages($siren, $ref='') {
);
if (!$iDb->insert('greffes_bilans', $tabInsert))
if (!$iDb->update('greffes_bilans', $tabInsert, "siren='$siren' AND num_depot='$num_depot' AND date_cloture='$dateClotureIso' AND type_comptes='$typeCpt'"))
$iDb->update('greffes_bilans', $tabInsert, "siren='$siren' AND num_depot='$num_depot' AND date_cloture='$dateClotureIso' AND type_comptes=''");
$iDb->update('greffes_bilans', $tabInsert, "siren='$siren' AND num_depot='$num_depot' AND date_cloture='$dateClotureIso' AND type_comptes=''");
}
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMGreffes::getListeBilans sur $siren", $xml.EOL.print_r($tabRet, true));
return $tabRet;
@ -2832,15 +2833,15 @@ function getInfosCessions($siren) {
$tabCes=$ret[0];
if (count($ret)>1)
sendMail('debug@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMGreffes.php : Debug getInfosCessions $siren", "Plus de 1 cession pour ce siren");
//id, siren, nom, libGreffe, inscrit, etat, dateImmat,
//id, siren, nom, libGreffe, inscrit, etat, dateImmat,
//pdfLink, pdfSize, pdfVer, pdfPage, ,
// dateLimite, mandataire, dateInsert
// dateLimite, mandataire, dateInsert
return array( 'cessJuge'=> $tabCes['etat'],
'cessDateJuge'=>$tabCes['dateJuge'],
'cessDateConv'=>$tabCes['dateConv'],
'cessDateLJS'=> $tabCes['dateLJS'],
'cessDateInv'=> $tabCes['dateInventaire'],
'cessDateBod'=> $tabCes['dateBodacc'],
'cessDateBod'=> $tabCes['dateBodacc'],
'cessCAdec'=> $tabCes['caDeclare'],
'cessEffectif'=>$tabCes['effectif'],
'cessDesc'=> $tabCes['descriptif'],
@ -2866,7 +2867,7 @@ function getListeCessions($typeProcedure='rj') {
}
$this->cookie=$page['header']['Set-Cookie'];
$this->referer=$url;
$url='http://www.infogreffe.fr/infogreffe/newRechercheEntreprise.xml';
$postData=array( 'denomination'=>'',
'commune'=>'',
@ -2882,13 +2883,13 @@ function getListeCessions($typeProcedure='rj') {
return false;
}
$this->referer=$url;
/*
* Déprécié le 6 octobre 2010
$url='http://www.infogreffe.fr/weblogic/infogreffe/index.do';
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'302') {
$this->libErreur='Erreur Infogreffe 302b !';
return false;
@ -2918,7 +2919,7 @@ function getListeCessions($typeProcedure='rj') {
return false;
}
$this->referer=$url;
$url='http://www.infogreffe.fr/infogreffe/afficherRechercheActualiteAction.do?paramTypeListe=1';
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$this->body=$page['body'];
@ -2929,7 +2930,7 @@ function getListeCessions($typeProcedure='rj') {
}
$this->referer=$url;
sleep(1);
$url='http://www.infogreffe.fr/infogreffe/afficherRechercheActualiteAction.do?paramTypeListe=5';
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$this->body=$page['body'];
@ -2940,7 +2941,7 @@ function getListeCessions($typeProcedure='rj') {
}
$this->referer=$url;
sleep(2);
// Premier POST pour obtenir la liste des RJ ou LJ à céder !
$url='http://www.infogreffe.fr/infogreffe/rechercheListeActualiteAction.do';
$postData=array('radImmatRad'=>'FN',
@ -2961,7 +2962,7 @@ function getListeCessions($typeProcedure='rj') {
*8 Plus de 500M euros
*/
);
$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'200') {
@ -2973,7 +2974,7 @@ function getListeCessions($typeProcedure='rj') {
$nbCessions=trim($matches[1]);
$nbPages=ceil($nbCessions/10);
sleep(1);
/** Liste des entreprises **/
$tabCessions=array();
$nbInsert=$nbDeja=0;
@ -2982,8 +2983,8 @@ function getListeCessions($typeProcedure='rj') {
$url='http://www.infogreffe.fr/infogreffe/afficherListeActualitesAction.do?rebuild=true';
else
$url='http://www.infogreffe.fr/infogreffe/afficherListeActualitesAction.do?page='.$iPage;
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'200') {
@ -2991,7 +2992,7 @@ function getListeCessions($typeProcedure='rj') {
return false;
}
$this->referer=$url;
$tabStrCessions=explode('<td class="titre" style="vertical-align:top;font-weight:normal">',$this->body);
foreach($tabStrCessions as $k=>$strCession) {
if($k==0) continue;
@ -3022,11 +3023,11 @@ function getListeCessions($typeProcedure='rj') {
//@$k2++;
$urlPre=$url;
$nomPdf=$page['header']['Location'];
//echo "Redirection #$k2 : ".$page['header']['Location'].EOL;
//echo "Redirection #$k2 : ".$page['header']['Location'].EOL;
$page=getUrl($page['header']['Location'], $this->cookie, '', $urlPre, false);//, 'www.infogreffe.fr', false, '', '', 21);
}
$strPdf=$page['body'];
$pdfSizeIn=$page['header']['Content-Length'];
$pdfSizeIn=$page['header']['Content-Length'];
$tabInfo['pdfLink']=$nomPdf;
/*
$tabPdf=getPdfInfo($repPdfGreffesCessions.'/'.basename($nomPdf));
@ -3070,13 +3071,13 @@ function getListeCessions($typeProcedure='rj') {
}
return array( 'insert'=>$nbInsert,
'update'=>$nbDeja);//$tabCessions;
// echo "$nbCessions cessions sur $nbPages pages".EOL;
// echo "$nbCessions cessions sur $nbPages pages".EOL;
// die();
}
}
/** Declaration d'une anomalie chez Infogreffe
*
*
* @param $siren Siren de l'entreprise concernée
* @param $type Type d'anomalie 'CB10','IMR10','WS10'
* @param $description Description complète de l'anomalie
@ -3084,7 +3085,7 @@ function getListeCessions($typeProcedure='rj') {
function declareAnomalie($siren, $type, $description) {
/*
CB10 https://www.infogreffe.fr/mantis/issues_rss.php?username=SCOREDECISIONS&key=6b42eafa9888f57858599218f57caa17&project_id=37
IMR10 https://www.infogreffe.fr/mantis/issues_rss.php?username=SCOREDECISIONS&key=6b42eafa9888f57858599218f57caa17&project_id=11
IMR10 https://www.infogreffe.fr/mantis/issues_rss.php?username=SCOREDECISIONS&key=6b42eafa9888f57858599218f57caa17&project_id=11
WS10 https://www.infogreffe.fr/mantis/issues_rss.php?username=SCOREDECISIONS&key=6b42eafa9888f57858599218f57caa17&project_id=36
https://www.infogreffe.fr/mantis/view_all_bug_page.php
@ -3101,13 +3102,13 @@ https://www.infogreffe.fr/mantis/csv_export.php
}
$this->cookie=$page['header']['Set-Cookie'];
$this->referer=$url;
$url='https://www.infogreffe.fr/mantis/login.php';
$postData=array('username'=>'SCOREDECISIONS',
'password'=>'scoredecisions09');
$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
// print_r($page);
$this->referer=$url;
$this->referer=$url;
$this->body=$page['body'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'302') {
@ -3118,7 +3119,7 @@ https://www.infogreffe.fr/mantis/csv_export.php
/*
$url='https://www.infogreffe.fr/mantis/'.$page['header']['Location'];
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$this->referer=$url;
$this->referer=$url;
$this->body=$page['body'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'302') {
@ -3128,7 +3129,7 @@ https://www.infogreffe.fr/mantis/csv_export.php
$this->cookie=$page['header']['Set-Cookie'];
/*print_r($page);
die();*/
$url='https://www.infogreffe.fr/mantis/view_all_bug_page.php';
$url='https://www.infogreffe.fr/mantis/csv_export.php';
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);

View File

@ -1,7 +1,6 @@
<?
include_once(FWK_PATH.'common/curl.php');
/** @todo A faire et sortir du coup la méthode de commande d'enqêtes du WS **/
<?php
require_once 'framework/common/curl.php';
/** @todo A faire et sortir du coup la méthode de commande d'enquêtes du WS **/
class MIntersud {
private $body = '';
@ -14,7 +13,7 @@ class MIntersud {
private $urlRacine='http://www.intersud.fr';
private $referer='';
private $curPage='';
public $siren;
public $siren;
function __construct() {
$this->partGetSession();
@ -48,13 +47,13 @@ class MIntersud {
if (preg_match('/<META HTTP-EQUIV="Refresh" CONTENT="0; URL=(.*)">/i', $this->body, $matches))
$this->url=$this->urlRacine.'/'.$matches[1];
else debugLog('E',"Erreur de communication - Redirection impossible sur ".$this->url,__LINE__,__FILE__,__FUNCTION__,__CLASS__);
debugLog('I','Redirection trouvée sur la page '.$this->url,__LINE__,__FILE__,__FUNCTION__,__CLASS__);
debugLog('I','Redirection trouv<EFBFBD>e sur la page '.$this->url,__LINE__,__FILE__,__FUNCTION__,__CLASS__);
if (preg_match('/\.ow\?WRNCSRV2=(.*)$/i', $matches[1], $matches)) {
$this->wrncsrv2=$matches[1];
debugLog('I','Session partenaire WRNCSRV2='.$this->wrncsrv2,__LINE__,__FILE__,__FUNCTION__,__CLASS__);
}
else debugLog('E','Impossible d\'identifier le numéro de session partenaire',__LINE__,__FILE__,__FUNCTION__,__CLASS__);
else debugLog('E','Impossible d\'identifier le num<EFBFBD>ro de session partenaire',__LINE__,__FILE__,__FUNCTION__,__CLASS__);
$page=getUrl($this->url, '', '',$this->referer, false, 'www.euridile.com');
$this->referer=$this->url;
@ -72,7 +71,7 @@ class MIntersud {
'cliref'=>'K5K3X5',
'PASS'=>'3180',
'WRNCSRV2'=>$this->wrncsrv2);
/** @todo Fair une fonction qui gère les URL commençant par ./ ou ../ ou / afin de pouvoir les concatener
/** @todo Fair une fonction qui g<EFBFBD>re les URL commen<EFBFBD>ant par ./ ou ../ ou / afin de pouvoir les concatener
**/
$this->url=$this->urlRacine.str_replace('..','',$matches[1]);
debugLog('D',"Authentification possible vers $this->url",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
@ -85,7 +84,7 @@ class MIntersud {
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
//echo date('Y/m/d - H:i:s') ." - Après authentification = $this->url (Code retour = $this->codeRetour)<br/>".EOL;
//echo date('Y/m/d - H:i:s') ." - Apr<EFBFBD>s authentification = $this->url (Code retour = $this->codeRetour)<br/>".EOL;
$fp=fopen('./euridile_connexion3.log', 'w');
fwrite($fp,print_r($page,true));
fclose($fp);
@ -93,7 +92,7 @@ class MIntersud {
if(preg_match('/\/'.$this->weur.'\/iden_evaluation_type_(.*)/i', $this->body, $matches))
{ $tabTmp=explode('"', $matches[0]);
$this->url=$this->urlRacine.$tabTmp[0];
debugLog('D',"Page de recherche recherche trouvée = $this->url>",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
debugLog('D',"Page de recherche recherche trouv<EFBFBD>e = $this->url>",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
} else debugLog('E',"Erreur de communication - Recherche introuvable !",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
$this->curPage='recherche';
@ -112,7 +111,7 @@ class MIntersud {
'nb_etab, indRadiation, date_radiation, indProcol, dateUpdate, procedures, dirigeants, etablissements',
"siren=$this->siren ORDER BY dateUpdate DESC LIMIT 0,1", false, MYSQL_ASSOC);
if (count($ret)) {
/** On vérifie qu'aucune annonce n'a été publié depuis au bodacc
/** On v<EFBFBD>rifie qu'aucune annonce n'a <EFBFBD>t<EFBFBD> publi<EFBFBD> depuis au bodacc
**/
$tabRet=$ret[0];
$ret=$iDb->select( 'bodacc_detail', 'count(*)',
@ -130,15 +129,15 @@ class MIntersud {
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
//echo date('Y/m/d - H:i:s') ." - Fiche d'identité = $url (Code retour = $this->codeRetour)<br/>".EOL;
//echo date('Y/m/d - H:i:s') ." - Fiche d'identit<EFBFBD> = $url (Code retour = $this->codeRetour)<br/>".EOL;
//$this->curPage='vitrine';
$tabRet=array();
/**@todo Traiter le cas données provisoires :
<TR><TD bgcolor='#fff0d0'><FONT COLOR=#100070 FACE=ARIAL SIZE=2><B><!-- Données provisoires --> En cours d'immatriculation, données provisoires</B></FONT></TD></TR><TR><TD bgcolor=#fff0d0><FONT COLOR=#100070 FACE=ARIAL SIZE=2>Nombre d'établissements : <FONT COLOR=#100070 FACE=ARIAL SIZE=2><B></B></TD></TR>
/**@todo Traiter le cas donn<EFBFBD>es provisoires :
<TR><TD bgcolor='#fff0d0'><FONT COLOR=#100070 FACE=ARIAL SIZE=2><B><!-- Donn<EFBFBD>es provisoires --> En cours d'immatriculation, donn<6E>es provisoires</B></FONT></TD></TR><TR><TD bgcolor=#fff0d0><FONT COLOR=#100070 FACE=ARIAL SIZE=2>Nombre d'<EFBFBD>tablissements : <FONT COLOR=#100070 FACE=ARIAL SIZE=2><B></B></TD></TR>
</TABLE>
*/
// Identité
// Identit<EFBFBD>
$tabRet['siren']=$this->siren;
$tabRet['codeRetour']=$this->codeRetour;
$tabRet['rcs']=@getTextInHtml($this->body, 'FACE="ARIAL,HELVETICA" SIZE=2>RCS : ', '<b>','</b>');
@ -147,7 +146,7 @@ class MIntersud {
$tabRet['nom']=strip_tags($tabTmp[0]);
// ... adresse
for ($i=1; $i<5; $i++) {
if (strpos($tabTmp[$i], 'Nom commercial - Enseigne :')===false &&
if (strpos($tabTmp[$i], 'Nom commercial - Enseigne :')===false &&
strpos($tabTmp[$i], 'Sigle :')===false ) {
$ligne=trim(strip_tags($tabTmp[$i]));
if (preg_match("/^([0-9]{5,5})([\D]*)/i", $ligne, $matches)) {
@ -159,8 +158,8 @@ class MIntersud {
}
$pp_nais=trim(strip_tags(@getTextInHtml($this->body, 'FACE=\'ARIAL,HELVETICA\' SIZE=2>Date et lieu de naissance :', '<B>','</B>')));
$tabTmp=explode(' à ', $pp_nais);
$tabRet['naiss_date']=trim(str_replace('Né(e) le ', '', strip_tags($tabTmp[0])));
$tabTmp=explode(' <EFBFBD> ', $pp_nais);
$tabRet['naiss_date']=trim(str_replace('N<EFBFBD>(e) le ', '', strip_tags($tabTmp[0])));
$tabRet['naiss_lieu']=trim(strip_tags($tabTmp[1]));
$tabRet['sexe']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=\'ARIAL,HELVETICA\' SIZE=2>Sexe :', '<B>','</B>')));
@ -174,7 +173,7 @@ class MIntersud {
$tabRet['date_crea']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Date de cr&eacute;ation :', '<B>','</B>')));
$tabRet['date_imma']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Date d\'immatriculation :', '<B>','</B>')));
$tabRet['greffe']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Greffe :', '<B>','</B>')));
$tabRet['num_gestion']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>N°de gestion :', '<B>','</B>')));
$tabRet['num_gestion']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>N<EFBFBD>de gestion :', '<B>','</B>')));
$strTmp=@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Capital :', '<B>','</B>');
if (preg_match('/([0-9\.,\s]*)([\D]*)/i', $strTmp, $matches)) {
$tabRet['capital_mnt']=trim(str_replace(' ','',str_replace(',','.',$matches[1])));
@ -185,17 +184,17 @@ class MIntersud {
$tabRet['capital_dev']='';
}
$tabRet['nationalite']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Nationalit&eacute; :', '<B>','</B>')));
$tabRet['nb_etab']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Nombre d\'établissements :', '<B>','</B>')));
$tabRet['nb_etab']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Nombre d\'<EFBFBD>tablissements :', '<B>','</B>')));
if (strpos($this->body,'FACE=ARIAL SIZE=2><B>Radiation</B>')>0) {
$tabRet['indRadiation']=true;
$tabRet['date_radiation']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Entreprise radiée le :', '<B>','</B>')));
$tabRet['date_radiation']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Entreprise radi<EFBFBD>e le :', '<B>','</B>')));
} else
$tabRet['indRadiation']=false;
// Procédures collectives
if (strpos($this->body,'FACE=ARIAL SIZE=2><B>Les procédures collectives</B>')>0) {
// Proc<EFBFBD>dures collectives
if (strpos($this->body,'FACE=ARIAL SIZE=2><B>Les proc<EFBFBD>dures collectives</B>')>0) {
$tabRet['indProcol']=true;
$strTmp=@getTextInHtml($this->body, '<B>Les procédures collectives</B></FONT>', "<img src='./images/rouge.gif' width=4 height=4 border='0'>",
$strTmp=@getTextInHtml($this->body, '<B>Les proc<EFBFBD>dures collectives</B></FONT>', "<img src='./images/rouge.gif' width=4 height=4 border='0'>",
'</TABLE>');
$tabTmp=explode("<img src='./images/rouge.gif' width=4 height=4 border='0'>", $strTmp);
foreach ($tabTmp as $nproc=>$proc) {
@ -226,18 +225,18 @@ class MIntersud {
$nom=trim(strip_tags($tabTmp3[0]));
$prenom=trim(strip_tags($tabTmp3[1]));
$naiss=trim(strip_tags($tabTmp2[3]));
if (strpos($naiss, 'Né(e) le')===false) {
if (strpos($naiss, 'N<EFBFBD>(e) le')===false) {
$fonction=$naiss;
} else {
$tabTmp3=explode(' à ', $naiss);
$naiss_date=trim(str_replace('Né(e) le ', '', strip_tags($tabTmp3[0])));
$tabTmp3=explode(' <EFBFBD> ', $naiss);
$naiss_date=trim(str_replace('N<EFBFBD>(e) le ', '', strip_tags($tabTmp3[0])));
$naiss=trim(strip_tags($tabTmp3[1]));
$tabTmp3=explode('(', $naiss);
$naiss_ville=trim(strip_tags($tabTmp3[0]));
$naiss_depPays=trim(str_replace(')','', strip_tags($tabTmp3[1])));
$fonction=trim(strip_tags($tabTmp2[5]));
}
$tabTmp=explode('&#160;née&#160;', $prenom);
$tabTmp=explode('&#160;n<EFBFBD>e&#160;', $prenom);
$prenom=$tabTmp[0];
$naiss_nom=$tabTmp[1];
$tabRet['dirigeants'][$ndir]=array( 'nom'=>$nom,
@ -259,19 +258,19 @@ class MIntersud {
$nom=trim(strip_tags($tabTmp3[0]));
$prenom=trim(strip_tags($tabTmp3[1]));
$naiss=trim(strip_tags($tabTmp2[3]));
if (strpos($naiss, 'Né(e) le')===false) {
if (strpos($naiss, 'N<EFBFBD>(e) le')===false) {
$naiss_date=$naiss_ville=$naiss_depPays='';
$fonction=$naiss;
} else {
$tabTmp3=explode(' à ', $naiss);
$naiss_date=trim(str_replace('Né(e) le ', '', strip_tags($tabTmp3[0])));
$tabTmp3=explode(' <EFBFBD> ', $naiss);
$naiss_date=trim(str_replace('N<EFBFBD>(e) le ', '', strip_tags($tabTmp3[0])));
$naiss=trim(strip_tags($tabTmp3[1]));
$tabTmp3=explode('(', $naiss);
$naiss_ville=trim(strip_tags($tabTmp3[0]));
$naiss_depPays=trim(str_replace(')','', strip_tags($tabTmp3[1])));
$fonction=trim(strip_tags($tabTmp2[5]));
}
$tabTmp=explode('&#160;née&#160;', $prenom);
$tabTmp=explode('&#160;n<EFBFBD>e&#160;', $prenom);
$prenom=$tabTmp[0];
$naiss_nom=$tabTmp[1];
$tabRet['dirigeants'][$nadm+$ndir+1]=array( 'nom'=>$nom,
@ -285,7 +284,7 @@ class MIntersud {
}
// Etablissements
$strTmp=@getTextInHtml($this->body, '<B>Les établissements</B></FONT>', "<img src='./images/rouge.gif' width=4 height=4 border='0'>",'</TABLE>');
$strTmp=@getTextInHtml($this->body, '<B>Les <EFBFBD>tablissements</B></FONT>', "<img src='./images/rouge.gif' width=4 height=4 border='0'>",'</TABLE>');
$tabTmp=explode("<img src='./images/rouge.gif' width=4 height=4 border='0'>", $strTmp);
foreach ($tabTmp as $netab=>$dir) {
$cp=$ville=$ensEtab=''; $j=0;
@ -303,7 +302,7 @@ class MIntersud {
$j++;
}
/** Gestion des cas où la 1ère ligne d'adresse contient l'enseigne de l'établissement */
/** Gestion des cas o<EFBFBD> la 1<>re ligne d'adresse contient l'enseigne de l'<27>tablissement */
if (strtoupper($adresse[0])==strtoupper($tabRet['enseigne'])) {
$ensEtab=$adresse[0];
array_shift($adresse);
@ -350,7 +349,7 @@ class MIntersud {
$this->siren=$tabTmp[3];
$this->url=$tabTmp[4];
$this->referer=$tabTmp[5];
} else $this->timeOut=0;
} else $this->timeOut=0;
}
private function logEuridileError($message) {

View File

@ -1,14 +1,14 @@
<?
class MLiens {
public $siren=0;
private $iDb;
private $iInsee;
public $tabSirenVisites;
private $tabChars=array('é'=>'é', 'ç'=>'ç','è'=>'è','à '=>'à');
private static $tabFct=array( 'ADM'=>'Administrateur',
'ASS'=>'Associé',
'COG'=>'Co-gérant',
@ -30,15 +30,15 @@ class MLiens {
1600=>'Actes', // S&D : 69642, Associé-Gérant
1700=>'SED',
1800=>'Collecte', // Infolégales
1900=>'Collecte');
1900=>'Collecte');
public function __construct($siren) {
$this->siren=$siren;
$this->siren=$siren;
$this->iDb=new WDB();
$this->iInsee=new MInsee();
}
/** Retourne les actionnaires du siren
** @param int Siren de l'entreprise
** @return array Tableau d'actionnaires
@ -81,7 +81,7 @@ class MLiens {
else $majMin=$lien['MajMin'];
switch ($tabIdentite['FJ']*1) {
case 5488: // Entreprise Unipersonnelle à Responsabilité Limitée
case 5498: // SARL unipersonnelle
case 5498: // SARL unipersonnelle
case 5720: // Société par actions simplifiée à associé unique
$lien['Pmin']=100;
$unique=true;
@ -94,14 +94,17 @@ class MLiens {
$pctTot+=$pctLien;
// On évite d'afficher des totaux de détention > à 100%
if($pctTot>100) $pctLien=0;
if ($lien['dateInsert']>$dateMaj) $dateMaj=$lien['dateInsert'];
if ($lien['dateUpdate']>$dateMaj) $dateMaj=$lien['dateUpdate'];
if ($lien['source']==1800) $libRS=strtoupper(strtr($lien['RaisonSociale'],$this->tabChars));
else $libRS=strtr($lien['RaisonSociale'],$this->tabChars);
$tabRet[]=array( 'Pmin' => number_format($pctLien,2,',',''),
'PminNum' => $pctLien,
'MajMin' => $majMin,
'RaisonSociale' => strtr($lien['RaisonSociale'],$this->tabChars),
'RaisonSociale' => $libRS,
'Pays' => $libPays,
'CodePays' => $codPays,
'Siren' => $lien['Siren2'],
'Actif' => $lien['actif'],
'Source' => $this->tabSources[$source],
@ -111,9 +114,9 @@ class MLiens {
}
$sourcePre=$source;
}
if (count($tabRet)==0) {
switch ($tabIdentite['FJ']*1) {
switch ($tabIdentite['FJ']*1) {
case 7112: // Autorité administrative indépendante
case 7160: // Service déconcentré à compétence nation. D'un ministère (hors Défense)
case 7171: // Service déconcentré de l'État à compétence (inter) régionale
@ -131,9 +134,10 @@ class MLiens {
'MajMin' => '+',
'RaisonSociale' => $tabCC['triNom'],
'Pays' => '',
'CodePays' => 'FRA',
'Siren' => $tabCC['triSiret'],
'Actif' => 1,
'Source' => $this->tabSources[1800],
'Source' => $this->tabSources[1900],
'DateLien' => Wdate::dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
'DateMaj' => Wdate::dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
);
@ -141,7 +145,7 @@ class MLiens {
case 7113: // Ministère
case 7120: // Service central d'un ministère
case 7150: // Service du ministère de la Défense
case 7190: // Ecole nationale non dotée de la personnalité morale
// case 7210: // COMMUNE (traité après)
// case 7220: // DEPARTEMENT (traité après)
@ -161,7 +165,7 @@ class MLiens {
// case 7345: // Syndicat intercommunal à vocation multiple (SIVOM)
// case 7346: // Communauté de communes
// case 7347: // Communauté de villes
// case 7348: // Communauté d'agglomération
// case 7348: // Communauté d'agglomération
case 7349: // Autre établissement public local de coopération non spécialisé ou entente
case 7351: // Institution interdépartemental ou entente
case 7352: // Institution interrégionale ou entente
@ -195,9 +199,10 @@ class MLiens {
'MajMin' => '+',
'RaisonSociale' => 'ETAT FRANCAIS',
'Pays' => '',
'CodePays' => 'FRA',
'Siren' => 0,
'Actif' => 1,
'Source' => $this->tabSources[1800],
'Source' => $this->tabSources[1900],
'DateLien' => date('Y-m-').'01',
'DateMaj' => date('Y-m-').'01',
);
@ -212,7 +217,7 @@ class MLiens {
$strCodeInsee="codeInsee='$codeInsee'";
else
$strCodeInsee="codeInsee IN ('2A$comm','2B$comm','20$comm') ";
$tmp=$this->iDb->select('insee.insee_tabVillesEpci', 'typEPCI, codEPCI, libEPCI, libCommune', $strCodeInsee, true, MYSQL_ASSOC);
$tabCC=$tmp[0];
switch($tabCC['typEPCI']) {
@ -221,15 +226,16 @@ class MLiens {
case 'CU': $typeCC="Communauté urbaine"; break; // CJ=73
case 'SAN': $typeCC="Syndicat d'agglomérations nouvelles"; break; // CJ=73
default: $typeCC='';
}
}
$tabRet[]=array('Pmin' => 0,
'PminNum' => 0,
'MajMin' => '+',
'RaisonSociale' => strtoupper($typeCC.' '.preg_replace('/^(CA|CC|CU|SAN) /Uis', '',$tabCC['libEPCI'])),
'Pays' => '',
'CodePays' => 'FRA',
'Siren' => $tabCC['codEPCI'],
'Actif' => 1,
'Source' => $this->tabSources[1800],
'Source' => $this->tabSources[1900],
'DateLien' => date('Y-m-').'01',
'DateMaj' => date('Y-m-').'01',
);
@ -267,18 +273,19 @@ class MLiens {
'MajMin' => '+',
'RaisonSociale' => 'REGION '.strtoupper($tabCC['NC']),
'Pays' => '',
'CodePays' => 'FRA',
'Siren' => $sirenCom,
'Actif' => 1,
'Source' => $this->tabSources[1800],
'Source' => $this->tabSources[1900],
'DateLien' => date('Y-m-').'01',
'DateMaj' => date('Y-m-').'01',
);
break;
}
}
if (count($tabRet)==0) {
$fj=$tabIdentite['FJ']*1;
$fj=$tabIdentite['FJ']*1;
if ($fj==5498) $strFonctions=",'Gérant'";
else $strFonctions='';
$adresse=end(explode(' ', $tabIdentite['AdresseVoie']));
@ -294,7 +301,7 @@ class MLiens {
$deb=$siren2=0;
$nbRep=$maxRep=200;
$pertinence=$avecSiren=true;
$etabs=$this->iInsee->rechercheEtab($lien['nom'].' '.$lien['prenom'], $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren);
$tabSiren=array();
foreach ($etabs['reponses'] as $etab) {
@ -318,6 +325,7 @@ class MLiens {
'MajMin' => $majMin,
'RaisonSociale' => trim(preg_replace('/ +/', ' ', $lien['dirRS'].' '.$genre.' '.$lien['nom'].' '.$lien['prenom'])),
'Pays' => '',
'CodePays' => 'FRA',
'Siren' => $siren2,
'Actif' => $lien['actif'],
'Source' => $this->tabSources[1600],
@ -361,7 +369,7 @@ class MLiens {
if (!$this->iDb->insert('liens', $tabInsert1, true))
$errMaj=1016167;
}
/* Insertion de la participation pour l'actionnaire précédent */
$tabInsert2=array_merge($tabUpdate, array( 'ActionPart'=>2),
array( 'Siren1'=> $siren2,
@ -404,10 +412,10 @@ class MLiens {
}
}
}
}
}
/** Si l'entreprise n'a aucun actionnaire mais est majoritairement contrôlée par l'état alors on déclare l'état actionnaire **/
if (count($tabRet)==0) {
$tabNotice=$this->iInsee->getInfosNotice($siren, $nic);
@ -417,14 +425,35 @@ class MLiens {
'MajMin' => '+',
'RaisonSociale' => 'ETAT FRANCAIS',
'Pays' => '',
'CodePays' => 'FRA',
'Siren' => 0,
'Actif' => 1,
'Source' => $this->tabSources[1800],
'Source' => $this->tabSources[1900],
'DateLien' => date('Y-m-').'01',
'DateMaj' => date('Y-m-').'01',
);
}
}
/** Si l'entreprise n'a aucun actionnaire, on regarde au niveau des cessions de parts **/
/*if (count($tabRet)==0) {
$tab=$this->iDb->select('rncs_even_info', 'siren, dateDepot, codeEven, depot_num, depot_date, acte_num, acte_date, acte_type, acte_lib, acte_pages, acte_nature, acte_decision, collecte, flux, dateInsert',
"siren='$siren' AND codeEven IN(2,5,6,7,8,9,10,13,31,32,63)", true, MYSQL_ASSOC);
foreach ($tab as $i=>$lien) {
$tabRet[]=array('Pmin' => 0,
'PminNum' => 0,
'MajMin' => '+',
'RaisonSociale' => 'ETAT FRANCAIS',
'Pays' => '',
'Siren' => 0,
'Actif' => 1,
'Source' => $this->tabSources[1900],
'DateLien' => date('Y-m-').'01',
'DateMaj' => date('Y-m-').'01',
);
}
}*/
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug Fin $siren ($actifsUniquement)", print_r($tabRet,true)) ;
return $tabRet;
}
@ -436,7 +465,7 @@ class MLiens {
public function getParticipations($siren=false, $actifsUniquement=true) {
if (!$siren) $siren=$this->siren;
$tab=$this->iDb->select(
'liens l LEFT JOIN tabPays ON codPays3=Pays',
'liens l LEFT JOIN tabPays ON codPays3=Pays',
'Siren1, ActionPart, Pmin, Pmax, MajMin, PpPm, Siren2, RaisonSociale, Pays, libPays, actif, source, dateLien*1 AS dateLien, DATE(l.dateInsert)*1 AS dateInsert, DATE(l.dateUpdate)*1 AS dateUpdate',
"Siren1='$siren' AND ActionPart=2 ORDER BY source DESC, actif DESC, Pmin DESC", true, MYSQL_ASSOC); // OR Siren2='$siren
$tabRet=array();
@ -445,7 +474,7 @@ class MLiens {
if ($lien['source']>=1700) $source=1700;
//if ($lien['source']>=1700 && $lien['source']<=1720) $source=1700;
else $source=$lien['source']*1;
$dateMaj=$lien['dateLien'];
if ($lien['dateInsert']>$dateMaj) $dateMaj=$lien['dateInsert'];
if ($lien['dateUpdate']>$dateMaj) $dateMaj=$lien['dateUpdate'];
@ -454,11 +483,14 @@ class MLiens {
else {
if ($lien['MajMin']=='F') $majMin='A';
else $majMin=$lien['MajMin'];
if ($lien['source']==1800) $libRS=strtoupper(strtr($lien['RaisonSociale'],$this->tabChars));
else $libRS=strtr($lien['RaisonSociale'],$this->tabChars);
$tabRet[]=array('Pmin' => number_format($lien['Pmin']*1,2,',',''),
'PminNum' => $lien['Pmin']*1,
'MajMin' => $majMin,
'RaisonSociale' => strtr($lien['RaisonSociale'],$this->tabChars),
'RaisonSociale' => $libRS,
'Pays' => $lien['libPays'],
'CodePays' => $lien['Pays'],
'Siren' => $lien['Siren2'],
'Actif' => $lien['actif'],
'Source' => $this->tabSources[$source],
@ -468,7 +500,7 @@ class MLiens {
}
$sourcePre=$source;
}
// if (count($tabRet)==0) {
$tabTmp=$this->iInsee->getIdentiteLight($siren);
switch ($tabTmp['FJ']*1) {
@ -488,14 +520,15 @@ class MLiens {
'MajMin' => '+',
'RaisonSociale' => $tabCC['triNom'],
'Pays' => '',
'CodePays' => 'FRA',
'Siren' => $tabCC['triSiret'],
'Actif' => 1,
'Source' => $this->tabSources[1800],
'Source' => $this->tabSources[1900],
'DateLien' => Wdate::dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
'DateMaj' => Wdate::dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
);
}
break;
break;
case 7346: // Communaute de communes
case 7348: // Communaute d'agglomeration
//case 'CC': $typeCC="Communauté de communes"; break; // CJ=73
@ -506,7 +539,7 @@ class MLiens {
$dept=substr($tabCom['codeInsee'],0,2);
if ($dept=='2A' || $dept=='2B' || $dept=='20')
$dept='200';
elseif ($dept*1>95)
elseif ($dept*1>95)
$dept=substr($tabCom['codeInsee'],0,3);
else
$dept=$dept.'0';
@ -520,9 +553,10 @@ class MLiens {
'MajMin' => '+',
'RaisonSociale' => 'COMMUNE DE '.strtoupper($tabCom['libCommune']),
'Pays' => '',
'CodePays' => 'FRA',
'Siren' => $sirenCom,
'Actif' => 1,
'Source' => $this->tabSources[1800],
'Source' => $this->tabSources[1900],
'DateLien' => date('Y-m-').'01',
'DateMaj' => date('Y-m-').'01',
);
@ -534,11 +568,11 @@ class MLiens {
// Siren du 75 22 750001 => Région 237 500 079
// Siren du 972 22 972001 6 => Région 239 720 014
$dept=substr($siren,2,2);
$deptD=$dept.'000';
$deptD=$dept.'000';
$deptF=$dept.'999';
if ($dept*1>95) {
$dept=substr($siren,2,3);
$deptD=$dept.'00';
$deptD=$dept.'00';
$deptF=$dept.'99';
}
$tmp=$this->iDb->select('insee.departements d, insee.insee_tabRegions r',
@ -557,9 +591,10 @@ class MLiens {
'MajMin' => '+',
'RaisonSociale' => 'DEPARTEMENT '.strtoupper($tabCom['libdep']),
'Pays' => '',
'CodePays' => 'FRA',
'Siren' => $sirenCom,
'Actif' => 1,
'Source' => $this->tabSources[1800],
'Source' => $this->tabSources[1900],
'DateLien' => date('Y-m-').'01',
'DateMaj' => date('Y-m-').'01',
);
@ -568,7 +603,7 @@ class MLiens {
}
// }
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug Liens $siren", print_r($tabRet,true)) ;
return $tabRet;
}
@ -593,7 +628,7 @@ class MLiens {
}
return $tabRet;
}
public function getLiens($siren=false) {
$tabA=$this->getActionnaires($siren);
$tabP=$this->getParticipations($siren);
@ -618,8 +653,8 @@ class MLiens {
continue;
}// else
//echo "inconnu".EOL;
if ($debug && $sirenMere>1000) $tabIdentiteA=$this->iInsee->getIdentiteLight($sirenMere);
if ($debug && $sirenMere>1000) $tabIdentiteA=$this->iInsee->getIdentiteLight($sirenMere);
else $tabIdentiteA['Nom']='';
if ($siren*1==$sirenMere*1) {
if ($debug) echo "D. $siren détenu à ".$lien['Pmin']." (".$lien['MajMin'].") par ".$tabIdentiteA['Nom']." ($sirenMere)".EOL;
@ -647,7 +682,7 @@ class MLiens {
}
if ($i==0) return $siren;
}
public function getAllParticipations($siren, $pctMin=33, $nbNiveaux=15, $niveauCour=1, $tabSiren=array(), $sirenIni=0, $sirenMere=0, $appel=0, $actifsUniquement=true, $format='txt', $tabRet=array()) {
$appel++;
$tabP=$this->getParticipations($siren, $actifsUniquement);
@ -682,7 +717,7 @@ class MLiens {
echo "[D]".EOL;
$tabSiren[]=$siren;
}
elseif($sirenFille>100 && ($lien['PminNum']>=$pctMin || $lien['MajMin']=='+') && $appel<=$nbNiveaux) {
elseif($sirenFille>100 && ($lien['PminNum']>=$pctMin || $lien['MajMin']=='+') && $appel<=$nbNiveaux) {
$tabSiren[]=$siren;
if (in_array($sirenFille,$tabSiren))
echo "[Adeja]".EOL;
@ -701,13 +736,13 @@ class MLiens {
$tabSiren[]=$siren;
}
else {
/**1) {
echo "[D]".EOL;
$tabSiren[]=$siren;
}
elseif($sirenFille>100 && ($lien['PminNum']>=$pctMin || $lien['MajMin']=='+') && $niveauCour<=$nbNiveaux) { */
echo "[E]".EOL;// $siren, $sirenFille, ".$lien['PminNum'].">=$pctMin, ".$lien['MajMin'].", $niveauCour<=$nbNiveaux".EOL;
$tabSiren[]=$siren;
}
@ -721,17 +756,76 @@ class MLiens {
$tabRet=$tabParts;
return array_unique($tabSiren);
}
//function getAllParticipations($siren, $pctMin=33, $nbNiveaux=15, $niveauCour=1, $tabSiren=array(), $sirenIni=0, $sirenMere=0, $appel=0, $actifsUniquement=true) {
public function getArboresence($siren, $pctMin=25, $nbNiveaux=50, $niveauCour=1, $tabSiren=array(), $sirenIni=0, $sirenMere=0, $appel=0, $actifsUniquement=true, $tabRet=array()) {
//$tabId=$this->iInsee->getIdentiteLight($siren);
$sirenMere=$this->getMaisonMereFr($siren);
$tabId=$this->iInsee->getIdentiteLight($sirenMere);
echo "Z, $sirenMere,".$tabId['Nom'].EOL;
$tabSirenAll=$this->getAllParticipations($sirenMere, $pctMin, $nbNiveaux, $niveauCour, $tabSiren, $siren, $sirenMere, $appel, $actifsUniquement, 'txt', $tabRet);
return $tabRet;
/**
* Retourne l'arborescence pour les groupes
* @param string $siren
* @param int $pctMin
* @param int $nbNiveaux
*/
public function getArborescence($siren, $pctMin=33, $nbNiveaux=10)
{
//Récupération de la maison mère
$sirenMere = $this->getMaisonMereFr($siren);
//Informations de la maison mère
$tabId = $this->iInsee->getIdentiteLight($sirenMere);
$tabSirenDeja = array();
$tabSirenDeja[] = $tabId['Siren'];
//Retour
$tabRet = array(
'name' => $tabId['Nom'],
'siren' => $tabId['Siren'],
'children' => $this->getArborescenceRecursive($sirenMere, $pctMin, 1, $nbNiveaux, $tabSirenDeja),
);
return $tabRet;
}
/**
* Retourne un sous élement de l'arborescende pour les groupes
* @param string $siren
* @param int $pctMin
* @param int $niveau
* @param int $nbNiveaux
* @param array $tabSirenDeja
*/
public function getArborescenceRecursive( $siren, $pctMin=33, $niveau=0, $nbNiveaux=10, $tabSirenDeja=array() )
{
if ( $niveau > $nbNiveaux ) return array();
$niveau++;
$tabRet = array();
$participations = $this->getParticipations($siren);
if ( count($participations)>0 ) {
foreach ( $participations as $item ) {
if ( $item['Pmin'] > $pctMin ) {
//file_put_contents('test.log', $item['Siren']."\n", FILE_APPEND);
$data = array(
'name' => $item['RaisonSociale'],
'siren' => $item['Siren'],
'pmin' => $item['Pmin'],
'pays' => $item['Pays'],
'children' => array(),
);
//Pour éviter d'avoir des boucles infinis
if ( !in_array($item['Siren'], $tabSirenDeja) && intval($item['Siren'])>1000 ){
$tabSirenDeja[] = $item['Siren'];
$data['children'] = $this->getArborescenceRecursive($item['Siren'], $pctMin, $niveau, $nbNiveaux, $tabSirenDeja);
}
$tabRet[] = $data;
}
}
//file_put_contents('test.log', "\n", FILE_APPEND);
}
return $tabRet;
}
/** Recherche d'entreprise par leur actionnaire
**
** @param string $nom Raison sociale / Nom de l'actionnaire (obligatoire)
@ -745,7 +839,7 @@ class MLiens {
** @param bool $pertinence Recherche orthographique stricte sur les noms et prénoms (si true)
** @return Liste des entreprises trouvées
**/
public function rechercheActionnaire($nom, $cpVille='', $siren=0, $pays='', $pctMin=0, $pctMax=100, $deb=0, $nbRep=20, $maxRep=200, $pertinence=false)
public function rechercheActionnaire($nom, $cpVille='', $siren=0, $pays='', $pctMin=0, $pctMax=100, $deb=0, $nbRep=20, $maxRep=200, $pertinence=false)
{
debugLog('I',"rechercheActionnaire de $nom, $cpVille, $pays, $siren entre $pctMin et $pctMax% (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$formR = array(
@ -754,13 +848,31 @@ class MLiens {
'actNomRS' => join(' ', array($nom, $cpVille)),
'pays' => $pays,
'pctMin' => $pctMin,
'pctMax' => $pctMax,
'pctMax' => $pctMax,
);
return rechercheAct($formR, $deb, $nbRep, $maxRep);
$version = defined('SPHINX_ACT_VERSION') ? SPHINX_ACT_VERSION : 1;
require_once 'Metier/sphinx/rechercheFonc.php';
$result = rechercheAct($formR, $deb, $nbRep, $maxRep);
/*
switch($version)
{
case 1:
require_once 'Metier/sphinx/rechercheFonc.php';
$result = rechercheAct($formR, $deb, $nbRep, $maxRep);
break;
case 2:
require_once 'Metier/sphinx2/rechercheFonc.php';
$recherche = new rechercheFonc();
$result = $recherche->rechercheAct($formR, $deb, $nbRep, $maxRep);
break;
}
*/
return $result;
}
/** Retourne les informations relatives au groupe du siren donné
** @param string $siren Siren de l'entreprise
** @param string $siren Siren de l'entreprise
**/
public function getInfoGroupe($siren) {
if ($siren<1000) return false;
@ -769,7 +881,7 @@ class MLiens {
"siren=(SELECT distinct sirenGrp FROM etablissements_act WHERE siren=$siren AND siege=1) LIMIT 0,1", false, MYSQL_ASSOC);
$tabEnt=$tmp[0];
$sirenGrp=$tabEnt['siren'];
if ($sirenGrp<1000) return false;
/** Table des Nafs5 => Secteurs **/
$tmp=$this->iDb->select('tabNaf5', 'codNaf2, codNaf1', '1 GROUP BY codNAf2', false, MYSQL_ASSOC);
@ -777,7 +889,7 @@ class MLiens {
foreach ($tmp as $tmp2) {
$tabNAf2[$tmp2['codNaf2']]=$tmp2['codNaf1'];
}
$tabNaf2Lib=array( 'A'=>'Agriculture, sylviculture et pêche',
'B'=>'Industries extractives',
'C'=>'Industrie manufacturière',
@ -800,7 +912,7 @@ class MLiens {
'T'=>'Activités des ménages en tant qu\'employeurs ; activités indifférenciées des ménages en tant que producteurs de biens et services pour usage propre',
'U'=>'Activités extra-territoriales',
);
$tabId=$this->iInsee->getIdentiteEntreprise($sirenGrp);
/*
[SiretSiege] => 54205118000066
@ -875,7 +987,7 @@ class MLiens {
@$tabSecteur[$tabNAf2[''.substr($tabEnt['ape_entrep'],0,2)]]['nb']++;
@$tabSecteur[$tabNAf2[''.substr($tabEnt['ape_entrep'],0,2)]]['ca']+=$tabEnt['bilFL'];
@$tabSecteur[$tabNAf2[''.substr($tabEnt['ape_entrep'],0,2)]]['eff']+=$tabEnt['eff_entrep'];
@$tabAvis[$tabEnt['avisCs']]++;
}
foreach ($tabSecteur as $secteur=>$tmp) {
@ -899,7 +1011,7 @@ class MLiens {
// $tabRet['ape5']=$tabApe5;
$tabRet['secteur']=$tabSecteur2;
$tabRet['avisCs']=$tabAvis; // Vérifier les procol
$strSiren=implode(',', $tabSirenGrp);
/*$tmp=$this->iDb->select('insee.insee_notices',
'insSIREN, insNIC, dateNotice',
@ -907,10 +1019,8 @@ class MLiens {
if (count($tmp)>0) $tabRet['grpRecme']=1;
else $tabRet['grpRecme']=0;*/
$tabRet['grpNbProcolHisto']=$nbProcol;
return $tabRet;
}
}
?>
}

View File

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

View File

@ -7,7 +7,7 @@ if ( !function_exists('htmlspecialchars_decode') )
}
}
include_once(FWK_PATH.'common/curl.php');
require_once 'framework/common/curl.php';
function supprDecimales($dec) {
if ($dec>0 )
@ -34,17 +34,17 @@ function ALG0001($phi,$e) {
/** Calcul de la latitude à partir de la latitude isométrique
**/
function ALG0002($L,$e,$epsilon) {
$phi[0] = 2 * atan(exp($L)) - (pi()/2);
$phi[0] = 2 * atan(exp($L)) - (pi()/2);
$i=0;
$i=0;
do {
$i++;
$temp = ( 1 + ( $e * sin( $phi[$i-1] ) ) ) / ( 1 - ( $e * sin( $phi[$i-1] ) ) );
$phi[$i] = 2 * atan ( pow ($temp, ($e/2)) * exp ($L) ) - pi()/2;
$i++;
$temp = ( 1 + ( $e * sin( $phi[$i-1] ) ) ) / ( 1 - ( $e * sin( $phi[$i-1] ) ) );
$phi[$i] = 2 * atan ( pow ($temp, ($e/2)) * exp ($L) ) - pi()/2;
}
while (abs($phi[$i] - $phi[$i - 1]) >= $epsilon);
while (abs($phi[$i] - $phi[$i - 1]) >= $epsilon);
return $phi[$i];
return $phi[$i];
}
/** Transformation de coordonnées en projection conique conforme de Lambert, en coordonnées géographiques
@ -135,10 +135,11 @@ function ALG0012($X,$Y,$Z,$a,$e,$epsilon) {
*/
function ALG0013($Tx,$Ty,$Tz,$D,$Rx,$Ry,$Rz,$U) {
$V=array();
$V['X'] = $Tx + $U['X'] * (1 + $D) + $U['Z'] * $Ry - $U['Y'] * $Rz;
$V['Y'] = $Ty + $U['Y'] * (1 + $D) + $U['X'] * $Rz - $U['Z'] * $Rx;
$V['Z'] = $Tz + $U['Z'] * (1 + $D) + $U['Y'] * $Rx - $U['X'] * $Ry;
return $V;
$V['X'] = $Tx + $U['X'] * (1 + $D) + $U['Z'] * $Ry - $U['Y'] * $Rz;
$V['Y'] = $Ty + $U['Y'] * (1 + $D) + $U['X'] * $Rz - $U['Z'] * $Rx;
$V['Z'] = $Tz + $U['Z'] * (1 + $D) + $U['Y'] * $Rx - $U['X'] * $Ry;
return $V;
}
/** Détermination des paramètres de calcul d'une projection Lambert conique
@ -170,8 +171,9 @@ function ALG0019($lambda0,$phi0,$k0,$X0,$Y0,$a,$e) {
** @return double
**/
function ALG0021($phi,$a,$e) {
$N = $a/sqrt( 1 - $e * $e * sin($phi) * sin($phi) );
return $N;
$N = $a/sqrt( 1 - $e * $e * sin($phi) * sin($phi) );
return $N;
}
/** Calcul des constantes d'une projection Lambert conique conforme dans le cas sécant
@ -194,8 +196,8 @@ function ALG0054($lambda0,$phi0,$X0,$Y0,$phi1,$phi2,$a,$e) {
$Xs = $X0;
$Ys = $Y0;
} else {
$Xs = $X0;
$Ys = $Y0 + $C * exp(-1 * $n * ALG0001($phi0,$e));
$Xs = $X0;
$Ys = $Y0 + $C * exp(-1 * $n * ALG0001($phi0,$e));
}
$tab=array( 'e' => $e,
'n' => $n,
@ -204,6 +206,7 @@ function ALG0054($lambda0,$phi0,$X0,$Y0,$phi1,$phi2,$a,$e) {
'Xs'=> $Xs,
'Ys'=> $Ys);
return $tab;
}
function Lambert2WGS84($X,$Y,$orig='L93') {
@ -219,7 +222,7 @@ function Lambert2WGS84($X,$Y,$orig='L93') {
$Tz = +320;
$D = 0;
$Rx = $Ry = $Rz = 0;
$orig=strtoupper($orig);
switch ($orig) {
case 'LI':
@ -227,13 +230,13 @@ function Lambert2WGS84($X,$Y,$orig='L93') {
$c = 11603796.98;
$Xs = 600000;
$Ys = 5657616.674;
break;
case 'LII':
case 'LIIE':
case 'L2E':
case 'L2': $n = 0.7289686274;
$c = 11745793.39;
$Xs = 600000;
break;
case 'LII':
case 'LIIE':
case 'L2E':
case 'L2': $n = 0.7289686274;
$c = 11745793.39;
$Xs = 600000;
if ($orig=='L2E' || $orig=='LIIE')
$Ys = 8199695.768;
else $Ys = 6199695.768;
@ -410,16 +413,16 @@ print_r(geos2lambert(48.838245134184 ,2.2227849815878));
**/
/** The point-in-polygon algorythm allows you to programmatically check if a particular point is inside a polygon or outside of it. A common way to tackle the problem is to count how many times a line drawn from the point (in any direction) intersects with the polygon boundary. If they intersect an even number of times, then the point is outside.
I used that approach in this PHP code, which doesn't contain detailed comments yet. A few people asked if I could post it anyway, so there it is... I'll try to add some more comment as soon as I have some spare time.
I used that approach in this PHP code, which doesn't contain detailed comments yet. A few people asked if I could post it anyway, so there it is... I'll try to add some more comment as soon as I have some spare time.
The returned values are:
"vertex" if the point sits exactly on a vertex AND you left true as the value for $pointOnVertex.
"boundary" if the point sits on the boundary. If $pointOnVertex is false, then "boundary" is also returned if the point is on a vertex.
"inside" if the point is inside the polygon.
"outside" if, you guessed it, the point is outside of the polygon.
*/
The returned values are:
"vertex" if the point sits exactly on a vertex AND you left true as the value for $pointOnVertex.
"boundary" if the point sits on the boundary. If $pointOnVertex is false, then "boundary" is also returned if the point is on a vertex.
"inside" if the point is inside the polygon.
"outside" if, you guessed it, the point is outside of the polygon.
*/
class pointLocation {
var $pointOnVertex = true; // Check if the point sits exactly on one of the vertices
function pointLocation() {
@ -434,8 +437,8 @@ class pointLocation {
foreach ($polygon as $vertex) {
$vertices[] = $this->pointStringToCoordinates($vertex);
}
//print_r($vertices);
//die();
//print_r($vertices);
//die();
// Check if the point sits exactly on a vertex
if ($this->pointOnVertex == true && $this->pointOnVertex($point, $vertices) == true) {
return "vertex";
@ -445,7 +448,7 @@ class pointLocation {
$intersections = 0;
$vertices_count = count($vertices);
echo "vertices_count=$vertices_count".EOL;
for ($i=1; $i < $vertices_count; $i++) {
$vertex1 = $vertices[$i-1];
$vertex2 = $vertices[$i];
@ -480,7 +483,7 @@ class pointLocation {
}
}
}
function pointStringToCoordinates($pointString) {
$coordinates = explode(' ', $pointString);
return array('x'=>$coordinates[0], 'y'=>$coordinates[1]);
@ -509,7 +512,7 @@ class MMap {
public $altitude = NULL; // Altitude en mètres
public $l93x = NULL; // Lambert 93, coordonnée X
public $l93y = NULL; // Lambert 93, coordonnée Y
public $precision = 0;
public $adresseValidee='';
public $enCache=false;
@ -716,7 +719,7 @@ API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999
$this->codeRetourG=@getTextInHtml($this->body, '<Status>', '<code>', '/code>');
$this->precision=@getTextInHtml($this->body, '<AddressDetails Accuracy', '="', '" ');
$this->adresseValidee=strtoupper(utf8_decode(str_replace('&apos;', "'", htmlspecialchars_decode(@getTextInHtml($this->body, '<Placemark', '<address>', '</address>'),ENT_QUOTES))));
$this->adresseValidee=strtoupper(str_replace('&apos;', "'", htmlspecialchars_decode(utf8_decode(@getTextInHtml($this->body, '<Placemark', '<address>', '</address>')),ENT_QUOTES)));
$strTmp=@getTextInHtml($this->body, '<Point><coordinates>', '<coordinates>', '</coordinates>');
$tabTmp=explode(',', $strTmp);
$this->latitudeDec=@$tabTmp[1];
@ -749,17 +752,17 @@ API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999
return false;
}
/** Géocodage d'une adresse
/** Géocodage d'une adresse
** 0 Unknown location. (Since 2.59)
1 Country level accuracy. (Since 2.59)
2 Region (state, province, prefecture, etc.) level accuracy. (Since 2.59)
3 Sub-region (county, municipality, etc.) level accuracy. (Since 2.59)
4 Town (city, village) level accuracy. (Since 2.59)
5 Post code (zip code) level accuracy. (Since 2.59)
6 Street level accuracy. (Since 2.59)
7 Intersection level accuracy. (Since 2.59)
8 Address level accuracy. (Since 2.59)
**/
1 Country level accuracy. (Since 2.59)
2 Region (state, province, prefecture, etc.) level accuracy. (Since 2.59)
3 Sub-region (county, municipality, etc.) level accuracy. (Since 2.59)
4 Town (city, village) level accuracy. (Since 2.59)
5 Post code (zip code) level accuracy. (Since 2.59)
6 Street level accuracy. (Since 2.59)
7 Intersection level accuracy. (Since 2.59)
8 Address level accuracy. (Since 2.59)
**/
function geoCodeAdresse($adrNum, $adrIndRep, $adrTypeVoieCourt, $adrTypeVoieLong, $adrLibVoie, $cp, $ville='', $pays='France', $codeRivoli='') {
$iDb=new WDB();
$tabRep=array();
@ -776,8 +779,10 @@ API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999
$this->l93y=$zonage['l93_y'];
$this->altitude=$zonage['alt'];
if ($this->altitude==NULL && $this->precision>5) {
$alt=$this->getAltitude($this->latitudeDec,$this->longitudeDec);
$this->altitude=$alt['alt'];
if ($this->accesDist) {
$alt=$this->getAltitude($this->latitudeDec,$this->longitudeDec);
$this->altitude=$alt['alt'];
}
}
if ($this->l93x==NULL && $this->precision>5) {
$tmp=geos2lambert93($this->latitudeDec,$this->longitudeDec);
@ -785,18 +790,18 @@ API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999
$this->l93y=$tmp['y_93'];
}
if ($this->altitude<>NULL || $this->l93x<>NULL) {
$tabUpdate=array( 'alt'=>$this->altitude,
'l93_x'=>$this->l93x,
'l93_y'=>$this->l93y);
//'dateUpdate'=>DATETIME,
$iDb->update('zonageXY', $tabUpdate, "address='$adresse' AND adr_cp='$cp' AND adr_ville='$ville'");
$tabUpdate=array( 'alt'=>$this->altitude,
'l93_x'=>$this->l93x,
'l93_y'=>$this->l93y);
//'dateUpdate'=>DATETIME,
$iDb->update('zonageXY', $tabUpdate, "address='$adresse' AND adr_cp='$cp' AND adr_ville='$ville'");
}
$this->latitudeDeg=dec2dms($this->latitudeDec);
$this->longitudeDeg=dec2dms($this->longitudeDec);
$this->enCache=true;
$ligne='En base : '.print_r($zonage, true);
} else {
} elseif ($this->accesDist) {
$this->enCache=false;
$retM=$retY=false;
if (substr($codeRivoli,0,3)*1==971) $pays='Guadeloupe';
@ -831,7 +836,7 @@ API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999
$tmp=geos2lambert93($this->latitudeDec,$this->longitudeDec);
$this->l93x=$tmp['x_93'];
$this->l93y=$tmp['y_93'];
if ($retG || $retY || $retM) {
$adresse=stripslashes(strtoupper(trim(preg_replace('/ +/',' ', "$adrNum $adrIndRep $adrTypeVoieLong $adrLibVoie"))));
$ville=stripslashes($ville);
@ -867,6 +872,7 @@ API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999
$ligne="Erreur : $adrNum, $adrIndRep, $adrTypeVoieCourt, $adrTypeVoieLong, $adrLibVoie, $cp, $ville, $pays, $codeRivoli, ".$this->body;
}
}
}
/* if (latnorth == 'S') latdir='-'
if (lonwest == 'W') longdir='-'
@ -944,11 +950,18 @@ Example http://api.geonames.org/srtm3?lat=50.01&lng=10.2&username=demo
This service is also available in XML and JSON format :api.geonames.org/srtm3XML?lat=50.01&lng=10.2&username=demo api.geonames.org/srtm3JSON?lat=50.01&lng=10.2&username=demo
The text version of the service also accepts a list of lat/lng for the parameters 'lats' and 'lngs'. On the free server the number of points per call is limited to 20, for the premium service the limit is 2000:
[0] => the daily limit of 30000 credits 78.31.45.206 has been exceeded. Please throttle your requests or use the commercial service
[1] => daily
[2] => 30000
[3] => 78.31.45.206
*/
$url="http://ws.geonames.org/srtm3?lat=$tabLatLon&lng=$lon";
$page=getUrl($url, '', '', '', false, '', '', 3);
$alt=trim($page['body']);
if (preg_match('/the (.*) limit of (.*) credits(.*) has been exceeded\. Please throttle your requests or use the commercial service/Uis', $alt, $matches)) {
print_r($matches);
$alt=NULL;
} elseif ($page['code']<>200 || $alt==-32768) {
if ($page['code']<>200) echo '==========================>'. $page['code']. '<=================================='.EOL;
@ -1025,4 +1038,4 @@ if ( !function_exists('json_encode') ){
return $json->encode($content);
}
}
?>
?>

File diff suppressed because it is too large Load Diff

View File

@ -280,4 +280,4 @@ class MOrias {
}
}
?>
?>

View File

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

View File

@ -2,39 +2,39 @@
class MRncs {
public $tabFctDir=array( 100 =>array('codeSd'=>'1300', 'lib'=>'Président'),
110 =>array('codeSd'=>'1306', 'lib'=>'Président du conseil d\'administration'),
120 =>array('codeSd'=>'1301', 'lib'=>'Président directeur Général'),
public $tabFctDir=array( 100 =>array('codeSd'=>'1300', 'lib'=>'Président'),
110 =>array('codeSd'=>'1306', 'lib'=>'Président du conseil d\'administration'),
120 =>array('codeSd'=>'1301', 'lib'=>'Président directeur Général'),
140 =>array('codeSd'=>'1650', 'lib'=>'Gouverneur'),
150 =>array('codeSd'=>'1651', 'lib'=>'Sous-gouverneur'),
200 =>array('codeSd'=>'0900', 'lib'=>'Gérant'),
210 =>array('codeSd'=>'0912', 'lib'=>'Gérant non associé'),
300 =>array('codeSd'=>'0400', 'lib'=>'Co-gérant'),
400 =>array('codeSd'=>'0709', 'lib'=>'Directeur général'),
410 =>array('codeSd'=>'0713', 'lib'=>'Directeur général non administrateur'),
420 =>array('codeSd'=>'0708', 'lib'=>'Directeur général unique'),
430 =>array('codeSd'=>'0704', 'lib'=>'Directeur général délégué'),
500 =>array('codeSd'=>'1800', 'lib'=>'Vice-président'),
200 =>array('codeSd'=>'0900', 'lib'=>'Gérant'),
210 =>array('codeSd'=>'0912', 'lib'=>'Gérant non associé'),
300 =>array('codeSd'=>'0400', 'lib'=>'Co-gérant'),
400 =>array('codeSd'=>'0709', 'lib'=>'Directeur général'),
410 =>array('codeSd'=>'0713', 'lib'=>'Directeur général non administrateur'),
420 =>array('codeSd'=>'0708', 'lib'=>'Directeur général unique'),
430 =>array('codeSd'=>'0704', 'lib'=>'Directeur général délégué'),
500 =>array('codeSd'=>'1800', 'lib'=>'Vice-président'),
600 =>array('codeSd'=>'0100', 'lib'=>'Administrateur'),
610 =>array('codeSd'=>'0101', 'lib'=>'Administrateur délégué'),
700 =>array('codeSd'=>'1308', 'lib'=>'Président du directoire'),
900 =>array('codeSd'=>'1307', 'lib'=>'Président du conseil de surveillance'),
1200=>array('codeSd'=>'0209', 'lib'=>'Associé-gérant'),
1300=>array('codeSd'=>'0603', 'lib'=>'Contrôleur de gestion'),
610 =>array('codeSd'=>'0101', 'lib'=>'Administrateur délégué'),
700 =>array('codeSd'=>'1308', 'lib'=>'Président du directoire'),
900 =>array('codeSd'=>'1307', 'lib'=>'Président du conseil de surveillance'),
1200=>array('codeSd'=>'0209', 'lib'=>'Associé-gérant'),
1300=>array('codeSd'=>'0603', 'lib'=>'Contrôleur de gestion'),
4000=>array('codeSd'=>'A', 'lib'=>'Administrateur judiciaire'),
4100=>array('codeSd'=>'1900', 'lib'=>'Liquidateur'),
4300=>array('codeSd'=>'0108', 'lib'=>'Administrateur provisoire'),
4400=>array('codeSd'=>'1401', 'lib'=>'Représentant en France d\'une société étrangère'),
4400=>array('codeSd'=>'1401', 'lib'=>'Représentant en France d\'une société étrangère'),
7000=>array('codeSd'=>'U', 'lib'=>'Curateur'),
7100=>array('codeSd'=>'C', 'lib'=>'Commissaire au plan'),
7200=>array('codeSd'=>'S', 'lib'=>'Syndic'),
7300=>array('codeSd'=>'D', 'lib'=>'Commissaire au concordat'),
7500=>array('codeSd'=>'R', 'lib'=>'Représentant des créanciers'),
7500=>array('codeSd'=>'R', 'lib'=>'Représentant des créanciers'),
7600=>array('codeSd'=>'M', 'lib'=>'Mandataire judiciaire'),
7800=>array('codeSd'=>'M', 'lib'=>'Mandataire judiciaire'),
9100=>array('codeSd'=>'T', 'lib'=>'Conciliateur'),
);
public $tabDevises=array();
public $tabPays=array();
public $tabTribunaux=array();
@ -50,7 +50,7 @@ class MRncs {
public $cookie='';
public $infoIMR=array();
public $maxDemJour=10;
function __construct() {
$this->iDb=new WDB();
$this->tabDevises=$this->getTabDevisesInpi();
@ -64,23 +64,23 @@ class MRncs {
$codeFonctionDirectionRncs=$codeFonctionDirectionRncs*1;
return $this->tabFctDir[$codeFonctionDirectionRncs]['lib'];
}
public function getCodFctBodaccFctDir($codeFonctionDirectionRncs) {
$codeFonctionDirectionRncs=$codeFonctionDirectionRncs*1;
return $this->tabFctDir[$codeFonctionDirectionRncs]['codeSd'];
}
/** Initialisation du tableau privé des devises Inpi <=> ISO **/
/** Initialisation du tableau privé des devises Inpi <=> ISO **/
private function getTabDevisesInpi() {
$rep=$this->iDb->select('tabDevises', 'devInpi, devIso', 'devInpi>0', false, MYSQL_ASSOC);
$tabDevises=array();
foreach($rep as $k=>$dev)
$tabDevises[$dev['devInpi']*1]=$dev['devIso'];
return $tabDevises;
}
/** Récupération du code ISO de la devise numérique de l'Inpi
/** Récupération du code ISO de la devise numérique de l'Inpi
**
** @param integer $devise
** @return string Devise ISO
@ -88,37 +88,37 @@ class MRncs {
public function getDeviseInpi($numDeviseInpi) {
if ($numDeviseInpi*1>0 && isset($this->tabDevises[$numDeviseInpi*1]))
return $this->tabDevises[$numDeviseInpi*1];
else
else
return '';
}
public function getTabJugements() {
$rep=$this->iDb->select('tabJugeRncs', 'codJugement, codEven', '1', false, MYSQL_ASSOC);
$tabJug=array();
foreach($rep as $k=>$dev)
$tabJug[$dev['codJugement']*1]=$dev['codEven'];
return $tabJug;
}
public function getCodeEvenJugementInpi($codJugementInpi) {
if ($codJugementInpi*1>0 && isset($this->tabJugements[$codJugementInpi*1]))
return $this->tabJugements[$codJugementInpi*1];
else
else
return $codJugementInpi;
}
/** Initialisation du tableau privé des pays Inpi <=> ISO **/
/** Initialisation du tableau privé des pays Inpi <=> ISO **/
private function getTabPaysInpi() {
$rep=$this->iDb->select('tabPays', 'codePaysInpi, codPays', 'codePaysInpi>0', false, MYSQL_ASSOC);
$tabPays=array();
foreach($rep as $k=>$dev)
$tabPays[$dev['codePaysInpi']*1]=$dev['codPays'];
return $tabPays;
}
/** Tableau des mandataires suceptibles d'être tranmis par l'INPI
/** Tableau des mandataires suceptibles d'être tranmis par l'INPI
**/
private function getTabMandataires() {
$tabTmp=$this->iDb->select('tabMandataires', "UPPER(CONCAT(SUBSTRING(Nom,1,4),'-',SUBSTRING(Prenom,1,3))) AS NomPre, SUBSTRING(cp,1,2) AS dep, COUNT(*) AS Nb, sirenMand, id, sirenGrp, Nom, Prenom, type, coursAppel, tribunal, Statut, adresse, adresseComp, cp, ville, tel, fax, email, web, contact", "TYPE IN ('A', 'M') GROUP BY NomPre, dep, sirenMand ORDER BY NomPre ASC", true, MYSQL_ASSOC);
@ -140,18 +140,18 @@ class MRncs {
}
return $tabMandSD;
}
/** Donne l'id du mandataire en fonction de son libellé INPI
** @param string $strNomPrenom Nom et Prénom du mandataire
** @return int $id Identifiant du mandataire
/** Donne l'id du mandataire en fonction de son libellé INPI
** @param string $strNomPrenom Nom et Prénom du mandataire
** @return int $id Identifiant du mandataire
**/
public function getIdMandataireInpi($strNomPrenom) {
if (trim($strNomPrenom)=='') return false;
if (preg_match('/^(.*) (?:Me|Ma.tre) (.*)$/i', $strNomPrenom, $matches)) {
$nomPrenomToFind=strtr($matches[1],'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy.....");
$nomToFind=strtr($matches[2],'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy.....");
$nomPrenomToFind=strtr($matches[1],'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy.....");
$nomToFind=strtr($matches[2],'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy.....");
} else {
$nomPrenomToFind=strtr($strNomPrenom,'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy.....");
$nomPrenomToFind=strtr($strNomPrenom,'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy.....");
$nomToFind='';
}
$id=false;
@ -179,15 +179,15 @@ class MRncs {
if ($strNomPrenom=='SELARL T.C.A') return 423;
//if ($strNomPrenom=='BEDNAWSKI CORNELIUS,MAXIME') return 0;
//if ($strNomPrenom=='LECA Pierre Alexandre') return 0;
if ($strNomPrenom=='SELAFA MJA Maître LELOUP THOMAS' ||
if ($strNomPrenom=='SELAFA MJA Maître LELOUP THOMAS' ||
$strNomPrenom=='- SELAFA MJA ME LELOUP THOMAS') return 290;
if ($strNomPrenom=='SELAFA MJA Maître LEVY' ||
$strNomPrenom=='- SELAFA MJA Maître LEVY') return 297;
if ($strNomPrenom=='SELAFA MJA Maître FRECHOU' ||
$strNomPrenom=='- SELAFA MJA Maître FRECHOU') return 194;
if ($strNomPrenom=='SELAFA MJA Maître PIERREL' ||
$strNomPrenom=='- SELAFA MJA Maître PIERREL') return 368;
if ($strNomPrenom=='SELAFA MJA Maître PENET- WEILLER' ||
if ($strNomPrenom=='SELAFA MJA Maître LEVY' ||
$strNomPrenom=='- SELAFA MJA Maître LEVY') return 297;
if ($strNomPrenom=='SELAFA MJA Maître FRECHOU' ||
$strNomPrenom=='- SELAFA MJA Maître FRECHOU') return 194;
if ($strNomPrenom=='SELAFA MJA Maître PIERREL' ||
$strNomPrenom=='- SELAFA MJA Maître PIERREL') return 368;
if ($strNomPrenom=='SELAFA MJA Maître PENET- WEILLER' ||
$strNomPrenom=='- SELAFA MJA ME PENET-WEILLER') return 357;
if ($strNomPrenom=='HUILLE PASCALE') return 244;
if ($strNomPrenom=='SCP B.T.S.G. ME BECHERET') return 42;
@ -208,37 +208,37 @@ class MRncs {
if ($strNomPrenom=='ROUSSELOT GEGOUE Marie Adeline') return 361;*/
foreach ($this->tabMandataires as $mand) {
$nomToTest=strtr($mand['nom'],'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy.....");
$nomToTest=strtr($mand['nom'],'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy.....");
$tabTmp=preg_split('/( |-)/', $mand['prenom']);
$preToTest=strtr($tabTmp[0],'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy.....");
$preToTest=strtr($tabTmp[0],'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ…‘-\' ', "aaaaaaaceeeeiiiionooooouuuuyy.....");
if (preg_match("/$nomToTest/i", $nomPrenomToFind)) {
//echo "$nomToTest $preToTest TROUVE".EOL;
// Cas des mandataires en SCP
if ($nomToFind<>'' && preg_match("/$nomToTest/i", $nomToFind) && preg_match("/$preToTest/i", $nomToFind)) {
//if (!$id)
//if (!$id)
$id=$mand['id'];
//else return false; // Afin de ne pas renvoyer d'id si plusieurs mandataires trouvés
//else return false; // Afin de ne pas renvoyer d'id si plusieurs mandataires trouvés
}
elseif ($nomToFind<>'' && preg_match("/$nomToTest/i", $nomToFind)) {
//if (!$id)
//if (!$id)
$id=$mand['id'];
//else return false; // Afin de ne pas renvoyer d'id si plusieurs mandataires trouvés
//else return false; // Afin de ne pas renvoyer d'id si plusieurs mandataires trouvés
}
elseif (!$nomToFind && preg_match("/$preToTest/i", $nomPrenomToFind)) {
//if (!$id)
//if (!$id)
$id=$mand['id'];
//else return false; // Afin de ne pas renvoyer d'id si plusieurs mandataires trouvés
//else return false; // Afin de ne pas renvoyer d'id si plusieurs mandataires trouvés
}
} elseif (preg_match("/$nomToTest/i", $nomToFind) && preg_match("/$preToTest/i", $nomToFind)) {
//if (!$id)
//if (!$id)
$id=$mand['id'];
//else return false; // Afin de ne pas renvoyer d'id si plusieurs mandataires trouvés
//else return false; // Afin de ne pas renvoyer d'id si plusieurs mandataires trouvés
}
}
return $id;
}
/** Récupération du code ISO du code pays numérique de l'Inpi
/** Récupération du code ISO du code pays numérique de l'Inpi
**
** @param integer $pays
** @return string Devise ISO
@ -246,11 +246,11 @@ class MRncs {
public function getPaysInpi($numPays) {
if ($numPays*1>0)
return $this->tabPays[$numPays*1];
else
else
return '';
}
/** Initialisation du tableau privé des codes tribunaux Greffes/Inpi avec le libellé Bodacc **/
/** Initialisation du tableau privé des codes tribunaux Greffes/Inpi avec le libellé Bodacc **/
private function getTabTribunaux() {
$rep=$this->iDb->select('tribunaux', 'triNumGreffe, triNom, triId, triCode', 'triNumGreffe IS NOT NULL', false, MYSQL_ASSOC);
$tabTribunaux=array();
@ -277,8 +277,8 @@ class MRncs {
$res=$this->iDb->fetch(MYSQL_ASSOC);
return $res['LibNaf'];
}
/** Récupération du libellé du code numérique du tribunal Greffe ou Inpi
/** Récupération du libellé du code numérique du tribunal Greffe ou Inpi
**
** @param integer $numTribunal
** @return string Nom du tribunal
@ -286,11 +286,11 @@ class MRncs {
public function getLibTribunal($numTribunal) {
if ($numTribunal*1>0)
return $this->tabTribunaux[$numTribunal*1]['Nom'];
else
else
return '';
}
/** Récupération du code Bodacc du code numérique du tribunal Greffe ou Inpi
/** Récupération du code Bodacc du code numérique du tribunal Greffe ou Inpi
**
** @param integer $numTribunal
** @return string Code Bodacc du tribunal
@ -298,26 +298,26 @@ class MRncs {
public function getCodeBodaccTribunal($numTribunal) {
if ($numTribunal*1>0)
return $this->tabTribunaux[$numTribunal*1]['Code'];
else
else
return '';
}
/** Récupération de l'identifiant S&D du code numérique du tribunal Greffe ou Inpi
/** Récupération de l'identifiant S&D du code numérique du tribunal Greffe ou Inpi
**
** @param integer $numTribunal
** @return string Numéro interne de tribunal S&D
** @return string Numéro interne de tribunal S&D
**/
public function getIdTribunal($numTribunal) {
if ($numTribunal*1>0)
return $this->tabTribunaux[$numTribunal*1]['Id'];
else
else
return '';
}
/** Retourne les informations de l'établissements demandé ou du siège actif ou dernier siège inactif
/** Retourne les informations de l'établissements demandé ou du siège actif ou dernier siège inactif
*
* @param integer $siren Siren de l'entreprise
* @param integer $nic Nic de l'établissement. Si absent, renvoi les informations du siège actif ou du dernier siège actif
* @param integer $nic Nic de l'établissement. Si absent, renvoi les informations du siège actif ou du dernier siège actif
* @return array
*/
public function getIdentiteEtab($siren, $nic=0) {
@ -328,10 +328,10 @@ class MRncs {
$rep=$this->iDb->select('rncs_etab', 'siren, nic, siege, actif, enseigne, nomCommercial, adrNumVoie, adrIndRep, adrLibVoie, adrTypeVoie, adrVoie, cp, commune, adrComp, adresse1, adresse2, adresse3, naf, dateFermeture, flux, DATE(dateUpdate) AS jourUpdate', "siren=$siren $strSql", false, MYSQL_ASSOC);
$entrep=$rep[0];
if ($entrep['jourUpdate']<>'0000-00-00') $dateMaj=$entrep['jourUpdate'];
else $dateMaj=$entrep['flux'];
if (trim($entrep['adresse1'])=='') $adresse1=trim(preg_replace('/ +/',' ', $entrep['adrNumVoie'].' '.strtoupper($entrep['adrIndRep']).' '. strtoupper($entrep['adrLibVoie'])));
else $adresse1=trim(strtoupper($entrep['adresse1']));
if (trim($entrep['adresse2'])=='') $adresse2=trim(strtoupper($entrep['adrComp']));
@ -342,6 +342,7 @@ class MRncs {
'nic' => $entrep['nic'],
'siret' => $entrep['siren'].$entrep['nic'],
'actif' => $entrep['actif'],
'actifEt' => $entrep['actif'],
'siege' => $entrep['siege'],
'enseigne' => strtoupper($entrep['enseigne']),
'nomCommercial' => strtoupper($entrep['nomCommercial']),
@ -349,7 +350,7 @@ class MRncs {
'adrIndRep' => strtoupper($entrep['adrIndRep']),
'adrTypeVoie' => strtoupper($entrep['adrTypeVoie']),
'adrVoie' => strtoupper($entrep['adrVoie']),
'adrComp' => strtoupper($entrep['adrComp']),
'adrComp' => strtoupper($entrep['adrComp']),
'cp' => strtoupper($entrep['cp']),
'commune' => strtoupper($entrep['commune']),
'adresse1' => $adresse1,
@ -368,13 +369,14 @@ class MRncs {
$siren=$siren*1;
$rep=$this->iDb->select('rncs_entrep', 'siren, sirenValide, actif, numGreffe, triCode, triId, numRC, numRC2, raisonSociale, nom, prenom, nomUsage, sigle, dateNaiss, lieuNaiss, sexe, nationalite, pays, naf, cj, capitalMontant, capitalDevise, capitalDevIso, dateImma, dateRad, capitalType, capitalCent, provisoires, flux, DATE(dateUpdate) AS jourUpdate', "siren=$siren", false, MYSQL_ASSOC);
$entrep=$rep[0];
if ($entrep['jourUpdate']<>'0000-00-00') $dateMaj=$entrep['jourUpdate'];
else $dateMaj=$entrep['flux'];
$tabIdentite=array( 'siren' => $entrep['siren'],
'sirenValide' => $entrep['sirenValide'],
'actif' => $entrep['actif'],
'actifEn' => $entrep['actif'],
'numGreffe' => $entrep['numGreffe'],
'triCode' => $entrep['triCode'],
'triId' => $entrep['triId'],
@ -401,37 +403,51 @@ class MRncs {
'provisoires' => $entrep['provisoires'],
'dateMajEnt' => $dateMaj,
);
return $tabIdentite;
}
public function getListeDepots($siren) {
$siren=$siren*1;
$rep=$this->iDb->select('rncs_even e LEFT JOIN tabEvenRncs l ON e.codeEven=l.codeEven',
'e.siren, e.codeInterne, e.dateDepot, e.codeEven, l.libEven, e.flux, DATE(e.dateInsert) AS dateInsert',
"e.siren=$siren ORDER BY e.dateDepot DESC", false, MYSQL_ASSOC);
/**
*
* @param string $siren
* @param string $dateDepot AAAA-MM-JJ
* @return array
*/
public function getListeDepots($siren, $dateDepot = null)
{
$where = "e.siren=$siren ORDER BY e.dateDepot DESC";
if (null != $dateDepot) {
$where = "e.siren=$siren AND e.dateDepot='$dateDepot'";
}
$rep=$this->iDb->select(
'rncs_even e LEFT JOIN tabEvenRncs l ON e.codeEven=l.codeEven',
'e.siren, e.codeInterne, e.dateDepot, e.codeEven, l.libEven, e.flux, DATE(e.dateInsert) AS dateInsert',
$where, false, MYSQL_ASSOC);
$tabDepots=array();
foreach ($rep as $iDepot=>$depot) {
$tabDepots[]=array( 'codDepot' => $depot['codeEven'],
'libDepot' => $depot['libEven'],
'datDepot' => $depot['dateDepot'],
'refDepot' => $depot['codeInterne'],
'datRncs' => $depot['flux'],
'datSed' => $depot['dateInsert'],
);
$tabDepots[]=array(
'codDepot' => $depot['codeEven'],
'libDepot' => $depot['libEven'],
'datDepot' => $depot['dateDepot'],
'refDepot' => $depot['codeInterne'],
'datRncs' => $depot['flux'],
'datSed' => $depot['dateInsert'],
);
}
return $tabDepots;
}
public function getListeJugements($siren) {
$siren=$siren*1;
$rep=$this->iDb->select('rncs_jugements j, tabJugeRncs l, tabEvenements e',
'siren, j.dateEffet, j.codeJugement, j.flux, l.libJugement, e.codEven, e.libEven,
adm1id, adm1codeFct, adm1type, adm1nom, adm1adrNum, adm1adrInd, adm1adrType, adm1adrLibVoie, adm1adrVoie, adm1adr1, adm1adr2, adm1adr3, adm1adrCP, adm1adrVille,
adm1id, adm1codeFct, adm1type, adm1nom, adm1adrNum, adm1adrInd, adm1adrType, adm1adrLibVoie, adm1adrVoie, adm1adr1, adm1adr2, adm1adr3, adm1adrCP, adm1adrVille,
adm2id, adm2codeFct, adm2type, adm2nom, adm2adrNum, adm2adrInd, adm2adrType, adm2adrLibVoie, adm2adrVoie, adm2adr1, adm2adr2, adm2adr3, adm2adrCP, adm2adrVille',
"j.siren=$siren AND j.codeJugement=l.codJugement AND l.codEven=e.codEven ORDER BY j.dateEffet DESC", false, MYSQL_ASSOC);
/*adm1adrNum adm1adrInd adm1adrType adm1adrLibVoie adm1adrVoie adm1adr1 adm1adr2 adm1adr3 adm1adrCP adm1adrVille adm2codeFct adm2type adm2id adm2nom adm2adrNum adm2adrInd adm2adrType adm2adrLibVoie adm2adrVoie adm2adr1 adm2adr2 adm2adr3 adm2adrCP adm2adrVille flux dateSuppr dateInsert
Modifier Effacer 490524055 2010-12-20 11 1 1200 4000 A 0 ME TULIER 0000 IMM LE MAZIERE 4EME ETAGE Immeuble le Mazière - 4ème étage rue René Cassin */
Modifier Effacer 490524055 2010-12-20 11 1 1200 4000 A 0 ME TULIER 0000 IMM LE MAZIERE 4EME ETAGE Immeuble le Mazière - 4ème étage rue René Cassin */
$tabDepots=array();
foreach ($rep as $iDepot=>$depot) {
$tabDepots[]=array( 'codEven' => $depot['codEven'],
@ -451,7 +467,7 @@ class MRncs {
'adm1adrVille' => $depot['adm1adrVille'],
'adm2id' => $depot['adm2id'],
'adm2code' => $depot['adm2codeFct'],
'adm2type' => $depot['adm2type'],
'adm2type' => $depot['adm2type'],
'adm2fonction' => @$this->getLibFctDir($depot['adm2codeFct']),
'adm2nom' => $depot['adm2nom'],
'adm2adrNum' => $depot['adm2adrNum'],
@ -460,23 +476,23 @@ class MRncs {
'adm2adrVoie' => $depot['adm2adrLibVoie'], // @todo : adm1adr1, adm1adr2, adm1adr3,
'adm2adr2' => $depot['adm2adr2'],
'adm2adrCP' => $depot['adm2adrCP'],
'adm2adrVille' => $depot['adm2adrVille'],
'adm2adrVille' => $depot['adm2adrVille'],
);
}
return $tabDepots;
}
public function getEvenements($siren, $nic=0, $type='', $dateDeb='', $dateFin='') {
$tabEven=array( 'p120'=>'Réactivation de l\'entreprise',
$tabEven=array( 'p120'=>'Réactivation de l\'entreprise',
'p410'=>'Cessation juridique de l\'entreprise',
'pCAP'=>'Modification du capital social',
'pCAT'=>'Modification du type de capital',
'pCJ' =>'Modification de la forme juridique',
'pIMM'=>'Modification de la date d\'immatriculation',
'pRAD'=>'Modification de la date de radiation',
'pNTR'=>'Modification du greffe d\'enregistrement',
'pNRC'=>'Modification du numéro du RC',
'pNOM'=>'Modification de la dénomination',
'pCAP'=>'Modification du capital social',
'pCAT'=>'Modification du type de capital',
'pCJ' =>'Modification de la forme juridique',
'pIMM'=>'Modification de la date d\'immatriculation',
'pRAD'=>'Modification de la date de radiation',
'pNTR'=>'Modification du greffe d\'enregistrement',
'pNRC'=>'Modification du numéro du RC',
'pNOM'=>'Modification de la dénomination',
);
$tabRet=array();
$siren=$siren*1;
@ -484,7 +500,7 @@ class MRncs {
if ($type<>'') $strType=" AND champs='$type' ";
if ($dateDeb<>'') $strDateDeb=" AND flux>='$dateDeb' ";
if ($dateFin<>'') $strDateFin=" AND flux<='$dateFin' ";
$rep=$this->iDb->select('rncs_modifs',
'siren, nic, `table`, champs, valeur, flux, dateInsert',
"siren=$siren $strNic $strType $strDateDeb $strDateFin AND `table`='rncs_entrep' ORDER BY flux DESC", false, MYSQL_ASSOC);
@ -493,16 +509,16 @@ class MRncs {
switch($modif['champs']) {
case 'actif':
if ($modif['valeur']*1==0) $codEve[]='410'; // Cessation
elseif ($modif['valeur']*1==1) $codEve[]='120'; // Réactivation
elseif ($modif['valeur']*1==1) $codEve[]='120'; // Réactivation
break;
case 'raisonSociale': $codEve[]='NOM'; break;
case 'capitalMontant': $codEve[]='CAP'; break;
case 'capitalMontant': $codEve[]='CAP'; break;
case 'capitalType': $codEve[]='CAT'; break;
case 'cj': $codEve[]='CJ'; break;
case 'dateImma': $codEve[]='IMM'; break;
case 'dateRad': $codEve[]='RAD'; break;
case 'numGreffe': $codEve[]='NTR'; break;
case 'numRC2': $codEve[]='NRC'; break;
case 'cj': $codEve[]='CJ'; break;
case 'dateImma': $codEve[]='IMM'; break;
case 'dateRad': $codEve[]='RAD'; break;
case 'numGreffe': $codEve[]='NTR'; break;
case 'numRC2': $codEve[]='NRC'; break;
}
foreach ($codEve as $even)
$tabRet[]=array('codeEven' => 'P'.$even,
@ -526,12 +542,12 @@ class MRncs {
'D'=>'Commissaire au concordat',
'H'=>'Huissier',
'J'=>'Juge Commissaire',
'K'=>'Juge Commissaire suppléant',
'K'=>'Juge Commissaire suppléant',
'L'=>'Liquidateur',
'M'=>'Mandataire judiciaire',
'N'=>'Notaire',
'O'=>'Opposition',
'R'=>'Représentant des créanciers',
'R'=>'Représentant des créanciers',
'S'=>'Syndic',
'T'=>'Conciliateur',
'U'=>'Curateur',
@ -551,7 +567,7 @@ class MRncs {
'admadrInd' => $depot['adm1adrInd'],
'admadrType' => $depot['adm1adrType'],
'admadrVoie' => $depot['adm1adrVoie'], // @todo : adm1adr1, adm1adr2, adm1adr3,
'admadr2' => $depot['adm1adr2'],
'admadr2' => $depot['adm1adr2'],
'admadrCP' => $depot['adm1adrCP'],
'admadrVille' => $depot['adm1adrVille'],
);
@ -570,12 +586,12 @@ class MRncs {
'admadrInd' => $depot['adm2adrInd'],
'admadrType' => $depot['adm2adrType'],
'admadrVoie' => $depot['adm2adrVoie'], // @todo : adm1adr1, adm1adr2, adm1adr3,
'admadr2' => $depot['adm2adr2'],
'admadr2' => $depot['adm2adr2'],
'admadrCP' => $depot['adm2adrCP'],
'admadrVille' => $depot['adm2adrVille'],
);
$tabDeja[]=$depot['adm2code'];
}
}
}
if (count($tabDepots)>0) {
$strTypes="IN ('J','K','H','V','N')";
@ -586,7 +602,7 @@ class MRncs {
$forceRecherche=true;
$strDates='';
}
$tabTmp=$this->iDb->select('annonces', 'id, siren, typeEven, dateJugement, dateCessationPaiement, inter1type, inter1id, inter1nom, inter2type, inter2id, inter2nom, inter3type, inter3id, inter3nom, inter4type, inter4id, inter4nom,
dateSource, dateInsert, source, tribunal, raisonSociale',"siren=$siren $strDates AND ( inter1type $strTypes OR inter2type $strTypes OR inter3type $strTypes OR inter4type $strTypes ) AND typeEven BETWEEN 1000 AND 2000 ORDER BY dateJugement DESC", false, MYSQL_ASSOC);
if (isset($tabTmp[0])) {
@ -594,9 +610,9 @@ class MRncs {
$tabRet['dateCessationPaiement']=$depot['dateCessationPaiement'];
for($i=1; $i<4; $i++) {
if ( ($forceRecherche && !in_array($tabTmp['inter'.$i.'type'], $tabDeja)) ||
( $tabTmp['inter'.$i.'type']=='J' || $tabTmp['inter'.$i.'type']=='K' ||
$tabTmp['inter'.$i.'type']=='H' || $tabTmp['inter'.$i.'type']=='V' ||
$tabTmp['inter'.$i.'type']=='N') ) {
( $tabTmp['inter'.$i.'type']=='J' || $tabTmp['inter'.$i.'type']=='K' ||
$tabTmp['inter'.$i.'type']=='H' || $tabTmp['inter'.$i.'type']=='V' ||
$tabTmp['inter'.$i.'type']=='N') ) {
$tabDepots[]=array( 'codEven' => $depot['typeEven'],
'libEven' => $depot['typeEven'],
'dateEffet' => $depot['dateJugement'],
@ -608,8 +624,8 @@ class MRncs {
'admadrNum' => '',
'admadrInd' => '',
'admadrType' => '',
'admadrVoie' => '',
'admadr2' => '',
'admadrVoie' => '',
'admadr2' => '',
'admadrCP' => '',
'admadrVille' => '',
);
@ -620,13 +636,13 @@ class MRncs {
return $tabDepots;
}
/** Mettre à jour un dossier IMR dans le prochain Flux
* @param $siren Siren de l'entreprise à mettre à jour dans les IMR
/** Mettre à jour un dossier IMR dans le prochain Flux
* @param $siren Siren de l'entreprise à mettre à jour dans les IMR
* @param $origineDemande Origine de la demande ('client', 'interne', 'privileges', 'ancienort')
* @param $focerMAJ Forcer la mise à jour même si dossier déjà transmit
* @param $focerMAJ Forcer la mise à jour même si dossier déjà transmit
*/
public function majDossierIMR($siren, $origineDemande='', $focerMAJ=false) {
$this->infoIMR=array();
if ($siren*1==0) {
$this->libErreur='Siren invalide !';
@ -646,7 +662,7 @@ class MRncs {
$this->codeRetour=$page['code'];
//echo date('YmdHis')." - 1. FIN $url ".$this->codeRetour.EOL;
if ($this->codeRetour<>'400') break;
sleep(1);
sleep(1);
}
$this->body=$page['body'];
if ($this->codeRetour<>'200') {
@ -666,7 +682,7 @@ class MRncs {
//echo date('YmdHis')." - 2. FIN $url ".$this->codeRetour.EOL;
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'400') break;
sleep(1);
sleep(1);
}
$this->body=$page['body'];
if ($this->codeRetour<>'200') {
@ -676,7 +692,7 @@ class MRncs {
}
$this->referer=$url;
sleep(1);
/** Etape de logon **/
$url='http://www.infogreffe.fr/ged-extranet/login.do';
$postData=array('codeClient'=>'0034',
@ -689,7 +705,7 @@ class MRncs {
$this->codeRetour=$page['code'];
//echo date('YmdHis')." - 3. FIN $url ".$this->codeRetour.EOL;
if ($this->codeRetour<>'400') break;
sleep(1);
sleep(1);
}
$this->body=$page['body'];
if ($this->codeRetour<>'200') {
@ -703,8 +719,8 @@ class MRncs {
}
$this->referer=$url;
sleep(1);
/** Page de formulaire de demande de réémission de dossier IMR **/
/** Page de formulaire de demande de réémission de dossier IMR **/
$url='http://www.infogreffe.fr/ged-extranet/demandeReemissions.do';
while (1) {
//echo date('YmdHis')." - 4. Deb $url ".$this->codeRetour.EOL;
@ -712,7 +728,7 @@ class MRncs {
$this->codeRetour=$page['code'];
//echo date('YmdHis')." - 4. FIN $url ".$this->codeRetour.EOL;
if ($this->codeRetour<>'400') break;
sleep(1);
sleep(1);
}
$this->body=$page['body'];
if ($this->codeRetour<>'200') {
@ -722,8 +738,8 @@ class MRncs {
}
$this->referer=$url;
sleep(1);
/** Saisie du siren à contrôler dans le formulaire AJAX adéquat **/
/** Saisie du siren à contrôler dans le formulaire AJAX adéquat **/
$url='http://www.infogreffe.fr/ged-extranet/rechercheReemissions.do';
$postData=array('siren'=>$siren);
//$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', '', 5);
@ -731,9 +747,9 @@ class MRncs {
//echo date('YmdHis')." - 5. Deb $url ".$this->codeRetour.EOL;
$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', $query_proxy, $query_timeout);
$this->codeRetour=$page['code'];
//echo date('YmdHis')." - 5. FIN $url ".$this->codeRetour.EOL;
//echo date('YmdHis')." - 5. FIN $url ".$this->codeRetour.EOL;
if ($this->codeRetour<>'400') break;
sleep(1);
sleep(1);
}
$this->body=$page['body'];
if ($this->codeRetour<>'200') {
@ -742,11 +758,11 @@ class MRncs {
return false;
}
$this->referer=$url;
// Le retour AJAX est il positif ?
if (preg_match('/<div class="message-erreur">(.*)<\/div>/Uis', $this->body, $matches))
$this->infoIMR['message-erreur']=trim(preg_replace('/ +/',' ',strip_tags($matches[1])));
if (preg_match('/<div class="titreEntreprise">(?:.*)<b>(.*)<\/b>(?:.*)<\/div>/Uis', $this->body, $matches))
$this->infoIMR['titreEntreprise']=trim(preg_replace('/ +/',' ',strip_tags($matches[1])));
@ -755,7 +771,7 @@ class MRncs {
if (preg_match('/<div class="struct-erreur">(?:.*)<b>(.*)<\/b>(?:.*)<\/div>/Uis', $this->body, $matches))
$this->infoIMR['struct-erreur']=trim(preg_replace('/ +/',' ',strtr(strip_tags($matches[1]),"\r\n\t".chr(160),' ')));
if (preg_match('/Cliquez sur le bouton VALIDER pour confirmer votre demande de/', $this->body, $matches))
$this->infoIMR['validation']=true;
else {
@ -769,18 +785,18 @@ class MRncs {
$this->iDb->insert('rncs_demandes', $tabInsert, false);
}
}
if (preg_match('/atteint le nombre maximal de(.*)Veuillez renouveler votre demande demain/',
$this->infoIMR['message-erreur']))
return false;
if ($this->infoIMR['validation'] && $this->infoIMR['message-erreur']=='') {
/** Doit on forcer la maj si l'entreprise a été transmise récemment ? **/
/** Doit on forcer la maj si l'entreprise a été transmise récemment ? **/
if ($this->infoIMR['struct-erreur']<>'' && !$focerMAJ)
return true;
sleep(1);
/** Validation du siren à réémettre en IMR **/
/** Validation du siren à réémettre en IMR **/
$url='http://www.infogreffe.fr/ged-extranet/validerDemandeReemission.do';
$postData=array('numIdentification'=>$siren);
//$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', '', 5);
@ -790,7 +806,7 @@ class MRncs {
$this->codeRetour=$page['code'];
//echo date('YmdHis')." - 6. FIN $url ".$this->codeRetour.EOL;
if ($this->codeRetour<>'400') break;
sleep(1);
sleep(1);
}
$this->body=$page['body'];
$this->codeRetour=$page['code'];
@ -811,11 +827,11 @@ class MRncs {
if ($origineDemande<>'')
$tabInsert['origineDemande']=$origineDemande;
$this->iDb->insert('rncs_demandes', $tabInsert, false);
// Une erreur ?
if ($this->infoIMR['validation-erreur']<>'')
return false;
return true;
}
} else

View File

@ -445,7 +445,7 @@ $tabOrt2Sd=array( '_130000001'=>'SIREN',
'_103102038'=>'EJ',
);
include_once(FWK_PATH.'common/curl.php');
include_once('framework/common/curl.php');
define('RNCS_WS_URL', 'http://www.services.ort.fr/ProtocoleRNCS/access');
define('RNCS_WS_USER', '167260');
@ -462,64 +462,64 @@ class MRncsFlux {
public $iDb;
public $tabVitrine=array();
public $tabFctDir=array( 100 =>array('codeSd'=>'1300', 'lib'=>'Président'),
110 =>array('codeSd'=>'1306', 'lib'=>'Président du conseil d\'administration'),
120 =>array('codeSd'=>'1301', 'lib'=>'Président directeur Général'),
public $tabFctDir=array( 100 =>array('codeSd'=>'1300', 'lib'=>'Président'),
110 =>array('codeSd'=>'1306', 'lib'=>'Président du conseil d\'administration'),
120 =>array('codeSd'=>'1301', 'lib'=>'Président directeur Général'),
140 =>array('codeSd'=>'1650', 'lib'=>'Gouverneur'),
150 =>array('codeSd'=>'1651', 'lib'=>'Sous-gouverneur'),
200 =>array('codeSd'=>'0900', 'lib'=>'Gérant'),
210 =>array('codeSd'=>'0912', 'lib'=>'Gérant non associé'),
300 =>array('codeSd'=>'0400', 'lib'=>'Co-gérant'),
400 =>array('codeSd'=>'0709', 'lib'=>'Directeur général'),
410 =>array('codeSd'=>'0713', 'lib'=>'Directeur général non administrateur'),
420 =>array('codeSd'=>'0708', 'lib'=>'Directeur général unique'),
430 =>array('codeSd'=>'0704', 'lib'=>'Directeur général délégué'),
500 =>array('codeSd'=>'1800', 'lib'=>'Vice-président'),
200 =>array('codeSd'=>'0900', 'lib'=>'Gérant'),
210 =>array('codeSd'=>'0912', 'lib'=>'Gérant non associé'),
300 =>array('codeSd'=>'0400', 'lib'=>'Co-gérant'),
400 =>array('codeSd'=>'0709', 'lib'=>'Directeur général'),
410 =>array('codeSd'=>'0713', 'lib'=>'Directeur général non administrateur'),
420 =>array('codeSd'=>'0708', 'lib'=>'Directeur général unique'),
430 =>array('codeSd'=>'0704', 'lib'=>'Directeur général délégué'),
500 =>array('codeSd'=>'1800', 'lib'=>'Vice-président'),
600 =>array('codeSd'=>'0100', 'lib'=>'Administrateur'),
610 =>array('codeSd'=>'0101', 'lib'=>'Administrateur délégué'),
700 =>array('codeSd'=>'1308', 'lib'=>'Président du directoire'),
900 =>array('codeSd'=>'1307', 'lib'=>'Président du conseil de surveillance'),
1200=>array('codeSd'=>'0209', 'lib'=>'Associé-gérant'),
1300=>array('codeSd'=>'0603', 'lib'=>'Contrôleur de gestion'),
610 =>array('codeSd'=>'0101', 'lib'=>'Administrateur délégué'),
700 =>array('codeSd'=>'1308', 'lib'=>'Président du directoire'),
900 =>array('codeSd'=>'1307', 'lib'=>'Président du conseil de surveillance'),
1200=>array('codeSd'=>'0209', 'lib'=>'Associé-gérant'),
1300=>array('codeSd'=>'0603', 'lib'=>'Contrôleur de gestion'),
4100=>array('codeSd'=>'1900', 'lib'=>'Liquidateur'),
4300=>array('codeSd'=>'0108', 'lib'=>'Administrateur provisoire'),
4400=>array('codeSd'=>'1401', 'lib'=>'Représentant en France d\'une société étrangère'),
4400=>array('codeSd'=>'1401', 'lib'=>'Représentant en France d\'une société étrangère'),
);
public $tabErreurInpi=array(0=>"Aucune erreur",
10=>"Erreur de protocole avec système distant",
11=>"Système distant inaccessible",
101=>"Type de requête invalide",
10=>"Erreur de protocole avec système distant",
11=>"Système distant inaccessible",
101=>"Type de requête invalide",
102=>"Code d'erreur appelant invalide",
103=>"Identification non reconnue",
107=>"Date invalide",
108=>"Heure invalide",
110=>"Code produit inconnu",
115=>"Numéro de champ invalide",
115=>"Numéro de champ invalide",
116=>"Longueur de champ invalide",
121=>"Code de protocole invalide",
122=>"Code base de données invalide",
122=>"Code base de données invalide",
900=>"Erreur applicative",
990100=>"+ de 50 entreprises trouvées",
990100=>"+ de 50 entreprises trouvées",
990101=>"Recherche complexe",
990102=>"Critères saisis insuffisants",
990103=>"Requête trop imprécise",
990104=>"Dénomination non significative",
990105=>"Critère commune non générall",
990106=>"Critère voie trop général",
990102=>"Critères saisis insuffisants",
990103=>"Requête trop imprécise",
990104=>"Dénomination non significative",
990105=>"Critère commune non générall",
990106=>"Critère voie trop général",
990107=>"Commune obligatoire avec rue",
990108=>"Commune non identifiée",
990109=>"Entreprise non identifiée",
990110=>"Erreur système",
990108=>"Commune non identifiée",
990109=>"Entreprise non identifiée",
990110=>"Erreur système",
990111=>"Devise incorrecte",
990112=>"Autre erreur",
990113=>"Donnée incorrecte",
990114=>"Valeur incohérente",
990113=>"Donnée incorrecte",
990114=>"Valeur incohérente",
990115=>"Surveillance impossible",
990116=>"Entreprise non surveillée",
990117=>"Entreprise déjà surveillée",
990116=>"Entreprise non surveillée",
990117=>"Entreprise déjà surveillée",
990118=>"Produit indisponible",
990119=>"Erreur base de données",
990119=>"Erreur base de données",
990120=>"Erreur facturation",
);
@ -584,10 +584,10 @@ class MRncsFlux {
' <ort:_9 type="010">1</ort:_9>'. "\n". // Version du dictionnaire
' <ort:_10 type="010">1</ort:_10>'. "\n". // Code protocole/version application
' <ort:_11 type="010">PROTORNCS</ort:_11>'. "\n".
' <ort:_12 type="010">'.$prod['Type'].'</ort:_12>'. "\n". // Prestation souhaitée QVIT / QDOC
' <ort:_12 type="010">'.$prod['Type'].'</ort:_12>'. "\n". // Prestation souhaitée QVIT / QDOC
' <ort:_13 type="010">0</ort:_13>'. "\n". // Code retour/erreur
' <ort:_14 type="010">'.RNCS_WS_USER.RNCS_WS_PASS.'</ort:_14>'."\n". // User Password concaténés
' <ort:_15 type="010">'.$prod['Ref'].'</ort:_15>'. "\n". // Réf.
' <ort:_14 type="010">'.RNCS_WS_USER.RNCS_WS_PASS.'</ort:_14>'."\n". // User Password concaténés
' <ort:_15 type="010">'.$prod['Ref'].'</ort:_15>'. "\n". // Réf.
' <ort:_16 type="010">'.date('Ymd').'</ort:_16>'. "\n". // Date SSAAMMJJ
' <ort:_17 type="010">'.date('His').'</ort:_17>'. "\n". // Heure HHMMSS
' <ort:_19 type="010">ORT</ort:_19>'. "\n".
@ -595,7 +595,7 @@ class MRncsFlux {
' <ort:_2 type="110">'. "\n".
' <ort:_1 type="110">'. "\n".
' <ort:_26 type="010">'.$prod['Prod'].'</ort:_26>'. "\n". // Type de produit (vide pour QVIT)
' <ort:_27 type="010">'.$prod['Num'].'</ort:_27>'. "\n". // Numéro de produit souhaité 1 2
' <ort:_27 type="010">'.$prod['Num'].'</ort:_27>'. "\n". // Numéro de produit souhaité 1 2
' <ort:_28 type="010">'.$prod['Ver'].'</ort:_28>'. "\n". // Version du produit 3 2
' <ort:_31 type="010">'.$prod['Presta'].'</ort:_31>'. "\n". // Code prestation (vide pour QVIT)
' </ort:_1>'. "\n";
@ -623,12 +623,12 @@ $req.='
} elseif ($prod['Type']=='QINF') {
$req.=' <ort:_2 type="110">'."\n".'<ort:_130000001 type="010">'.$siren.'</ort:_130000001>';
if ($prod['Presta']=='2000' || $prod['Presta']=='2001' || $prod['Presta']=='2002' || $prod['Presta']=='2003') {
// Liste années bilans
// Liste années bilans
$req.='<ort:_190000025 type="010">'.$prod['Millesime'].'</ort:_190000025>'."\n";
$option=$prod['Millesime'];
}
elseif ($prod['Presta']=='12001')
// Flag limitation du nombre détablissement
// Flag limitation du nombre d’établissement
$req.='<ort:_109105002 type="010">N</ort:_109105002>'."\n";
$req.='</ort:_2>';
} else {
@ -639,7 +639,7 @@ $req.=' <ort:_2 type="110">
}
$req.=' </ort:_2>
</ort:message>';
//echo $req.'<hr/>'; // Commenté récemment / Mettre en débug ???
//echo $req.'<hr/>'; // Commenté récemment / Mettre en débug ???
$postData=array(''=>$req);
$cookie=$referer='';
$enCache=false;
@ -657,10 +657,10 @@ if (count($res)>0) {
$this->errNumInpi=$tabRes['codeErreur'];
$this->errMsgInpi=$tabRes['libErreur'];
$enCache=true;
//echo 'Une requête dans le cache <br/>';
//echo 'Une requête dans le cache <br/>';
//die();
} else {
//echo 'Pas de requête dans le cache <br/>';
//echo 'Pas de requête dans le cache <br/>';
//die();
$page=getUrl(RNCS_WS_URL, $cookie, $postData, $referer, false, 'www.services.ort.fr', '', 7);
$this->body=$page['body'];
@ -673,7 +673,7 @@ if (count($res)>0) {
if ($matches[1]*1<>0) {
$this->errNumInpi=$matches[1];
$this->errMsgInpi=$tabErreurInpi[$this->errNumInpi];
//echo "<!-- ERREUR INPI 13 n°$errNumInpi = $errMsgInpi !!! -->\n";
//echo "<!-- ERREUR INPI 13 n°$errNumInpi = $errMsgInpi !!! -->\n";
}
/**
@ -683,7 +683,7 @@ if (count($res)>0) {
if ($matches[1]*1<>0) {
$this->errNumInpi=$matches[1];
$this->errMsgInpi=$tabErreurInpi[$this->errNumInpi];
//echo "<!-- ERREUR INPI 96 n°$errNumInpi = $errMsgInpi !!! -->\n";
//echo "<!-- ERREUR INPI 96 n°$errNumInpi = $errMsgInpi !!! -->\n";
}
/**
@ -699,7 +699,7 @@ if (count($res)>0) {
if ($this->codeRetour==400 || $this->codeRetour==408){
$this->errNumInpi='c'.$this->codeRetour;
$this->errMsgInpi=$this->body;
//echo "<!-- ERREUR INPI 96 n°$errNumInpi = $errMsgInpi !!! -->\n";
//echo "<!-- ERREUR INPI 96 n°$errNumInpi = $errMsgInpi !!! -->\n";
} else {
$params=md5(serialize($prod));
$tabInsert=array( 'siren' => $siren,
@ -724,7 +724,7 @@ elseif ($prod['Presta']==12003)
// actes image
$pregmatch=preg_match_all('/<ort\:_201 type="110">(?:.*)<ort\:_103000452 type="010">(.*)<\/ort:_103000452>(?:.*)<ort\:_103000402 type="010">(.*)<\/ort:_103000402>(?:.*)<ort\:_103000403 type="010">(.*)<\/ort:_103000403>(?:.*)<ort\:_103000404 type="010">(.*)<\/ort:_103000404>(?:.*)<\/ort:_201>/Uis',$this->body, $matches);
elseif ($prod['Presta']==2000)
// bilan simplifiés ou normaux saisi
// bilan simplifiés ou normaux saisi
$pregmatch=preg_match('/<ort\:_2 type="110">(?:.*)<ort\:_2 type="110">(.*)<\/ort\:_2>(?:.*)<\/ort\:_2>/Uis',$this->body, $matches);
elseif ($prod['Presta']==12001)
// Fiche Identite
@ -743,29 +743,29 @@ else {
$verProduit=$matches[3]; // 1
$libProduit=$matches[4]; // Comptes sociaux
$typProduit=$matches[5]; // 2000 : Bilans sociaux
// 2001 : Bilans consolidés (70)
// 2001 : Bilans consolidés (70)
// 2002 : Bilans de banques (71)
// 2003 : Bilans d'assurances (72)
$synProduit=$matches[6]; // 109104002 : Disponibilité synchrone
$asyProduit=$matches[7]; // 109104003 : Disponibilité asynchrone
$synProduit=$matches[6]; // 109104002 : Disponibilité synchrone
$asyProduit=$matches[7]; // 109104003 : Disponibilité asynchrone
$pregmatch=preg_match_all('/<ort\:_103000038 type="010">(.*)<\/ort:_103000038>/Uis',$matches[8], $matches);
if ($typeBilan==2000) $tabBilans['N']=$matches[1]; // Réel normal SC
elseif ($typeBilan==2001) $tabBilans['C']=$matches[1]; // Consolidé CC
if ($typeBilan==2000) $tabBilans['N']=$matches[1]; // Réel normal SC
elseif ($typeBilan==2001) $tabBilans['C']=$matches[1]; // Consolidé CC
elseif ($typeBilan==2002) $tabBilans['B']=$matches[1]; // Banque SB
elseif ($typeBilan==2003) $tabBilans['A']=$matches[1]; // Assurance SA
else $tabBilans['S']=$matches[1]; // Réel Simplifié SS
else $tabBilans['S']=$matches[1]; // Réel Simplifié SS
}
$tabVitrine['bilans']=$tabBilans;
// Fiche d'identité
// Fiche d'identité
$pregmatch=preg_match('/<ort:_12001 type="110">(?:.*)<ort\:_120000027 type="010">(.*)<\/ort\:_120000027>(?:.*)<ort\:_120000028 type="010">(.*)<\/ort\:_120000028>(?:.*)<ort\:_120000029 type="010">(.*)<\/ort:_120000029>(?:.*)<ort\:_120000031 type="010">(.*)<\/ort\:_120000031>(?:.*)<ort\:_109104002 type="010">(.*)<\/ort\:_109104002>(?:.*)<ort\:_109104003 type="010">(.*)<\/ort\:_109104003>(?:.*)<ort\:_130000401 type="010">(.*)<\/ort\:_130000401>(?:.*)<\/ort:_12001>/Uis',$this->body, $matches);
$numProduit=$matches[1]; // 52
$verProduit=$matches[2]; // 1
$libProduit=$matches[3]; // Comptes sociaux
$typProduit=$matches[4]; // 2000 : Bilans sociaux
$synProduit=$matches[5]; // 109104002 : Disponibilité synchrone
$asyProduit=$matches[6]; // 109104003 : Disponibilité asynchrone
$nbEtab=$matches[7]; // Nombre d'établissements recensés
$synProduit=$matches[5]; // 109104002 : Disponibilité synchrone
$asyProduit=$matches[6]; // 109104003 : Disponibilité asynchrone
$nbEtab=$matches[7]; // Nombre d'établissements recensés
$tabVitrine['identite']=array( 'numProduit'=>$numProduit,
'verProduit'=>$verProduit,
'libProduit'=>$libProduit,
@ -777,7 +777,7 @@ else {
return $tabVitrine;
}
//echo $this->body; // Commenté récemment // Mettre en debug ???
//echo $this->body; // Commenté récemment // Mettre en debug ???
//print_r($tabBilans);
return $matches;
@ -806,11 +806,11 @@ return $matches;
return $tabRet;
}
/** Récupère un bilan INPI
/** Récupère un bilan INPI
**
** @param integer $siren Siren de l'entreprise
** @param date $millesime Date de cloture de l'exercice au format JJ/MM/AAAA
** @param string $type Type de Bilan 'N' Réel Normal, 'C' Consolidé, 'A' Assurance, 'B' Banque
** @param string $type Type de Bilan 'N' Réel Normal, 'C' Consolidé, 'A' Assurance, 'B' Banque
** @return array
*/
function getBilan($siren, $millesime, $type='N') {
@ -1025,4 +1025,4 @@ return $matches;
}
}
?>
?>

View File

@ -445,7 +445,7 @@ $tabOrt2Sd=array( '_130000001'=>'SIREN',
'_103102038'=>'EJ',
);
include_once(FWK_PATH.'common/curl.php');
require_once 'framework/common/curl.php';
define('RNCS_WS_URL', 'http://www.services.ort.fr/ProtocoleRNCS/access');
define('RNCS_WS_USER', '167260');
@ -464,39 +464,39 @@ class MRncsFlux {
public $tabErreurInpi=array(0=>"Aucune erreur",
10=>"Erreur de protocole avec système distant",
11=>"Système distant inaccessible",
101=>"Type de requête invalide",
10=>"Erreur de protocole avec système distant",
11=>"Système distant inaccessible",
101=>"Type de requête invalide",
102=>"Code d'erreur appelant invalide",
103=>"Identification non reconnue",
107=>"Date invalide",
108=>"Heure invalide",
110=>"Code produit inconnu",
115=>"Numéro de champ invalide",
115=>"Numéro de champ invalide",
116=>"Longueur de champ invalide",
121=>"Code de protocole invalide",
122=>"Code base de données invalide",
122=>"Code base de données invalide",
900=>"Erreur applicative",
990100=>"+ de 50 entreprises trouvées",
990100=>"+ de 50 entreprises trouvées",
990101=>"Recherche complexe",
990102=>"Critères saisis insuffisants",
990103=>"Requête trop imprécise",
990104=>"Dénomination non significative",
990105=>"Critère commune non générall",
990106=>"Critère voie trop général",
990102=>"Critères saisis insuffisants",
990103=>"Requête trop imprécise",
990104=>"Dénomination non significative",
990105=>"Critère commune non générall",
990106=>"Critère voie trop général",
990107=>"Commune obligatoire avec rue",
990108=>"Commune non identifiée",
990109=>"Entreprise non identifiée",
990110=>"Erreur système",
990108=>"Commune non identifiée",
990109=>"Entreprise non identifiée",
990110=>"Erreur système",
990111=>"Devise incorrecte",
990112=>"Autre erreur",
990113=>"Donnée incorrecte",
990114=>"Valeur incohérente",
990113=>"Donnée incorrecte",
990114=>"Valeur incohérente",
990115=>"Surveillance impossible",
990116=>"Entreprise non surveillée",
990117=>"Entreprise déjà surveillée",
990116=>"Entreprise non surveillée",
990117=>"Entreprise déjà surveillée",
990118=>"Produit indisponible",
990119=>"Erreur base de données",
990119=>"Erreur base de données",
990120=>"Erreur facturation",
);
@ -561,10 +561,10 @@ class MRncsFlux {
' <ort:_9 type="010">1</ort:_9>'. "\n". // Version du dictionnaire
' <ort:_10 type="010">1</ort:_10>'. "\n". // Code protocole/version application
' <ort:_11 type="010">PROTORNCS</ort:_11>'. "\n".
' <ort:_12 type="010">'.$prod['Type'].'</ort:_12>'. "\n". // Prestation souhaitée QVIT / QDOC
' <ort:_12 type="010">'.$prod['Type'].'</ort:_12>'. "\n". // Prestation souhaitée QVIT / QDOC
' <ort:_13 type="010">0</ort:_13>'. "\n". // Code retour/erreur
' <ort:_14 type="010">'.RNCS_WS_USER.RNCS_WS_PASS.'</ort:_14>'."\n". // User Password concaténés
' <ort:_15 type="010">'.$prod['Ref'].'</ort:_15>'. "\n". // Réf.
' <ort:_14 type="010">'.RNCS_WS_USER.RNCS_WS_PASS.'</ort:_14>'."\n". // User Password concaténés
' <ort:_15 type="010">'.$prod['Ref'].'</ort:_15>'. "\n". // Réf.
' <ort:_16 type="010">'.date('Ymd').'</ort:_16>'. "\n". // Date SSAAMMJJ
' <ort:_17 type="010">'.date('His').'</ort:_17>'. "\n". // Heure HHMMSS
' <ort:_19 type="010">ORT</ort:_19>'. "\n".
@ -572,7 +572,7 @@ class MRncsFlux {
' <ort:_2 type="110">'. "\n".
' <ort:_1 type="110">'. "\n".
' <ort:_26 type="010">'.$prod['Prod'].'</ort:_26>'. "\n". // Type de produit (vide pour QVIT)
' <ort:_27 type="010">'.$prod['Num'].'</ort:_27>'. "\n". // Numéro de produit souhaité 1 2
' <ort:_27 type="010">'.$prod['Num'].'</ort:_27>'. "\n". // Numéro de produit souhaité 1 2
' <ort:_28 type="010">'.$prod['Ver'].'</ort:_28>'. "\n". // Version du produit 3 2
' <ort:_31 type="010">'.$prod['Presta'].'</ort:_31>'. "\n". // Code prestation (vide pour QVIT)
' </ort:_1>'. "\n";
@ -600,12 +600,12 @@ $req.='
} elseif ($prod['Type']=='QINF') {
$req.=' <ort:_2 type="110">'."\n".'<ort:_130000001 type="010">'.$siren.'</ort:_130000001>';
if ($prod['Presta']=='2000' || $prod['Presta']=='2001' || $prod['Presta']=='2002' || $prod['Presta']=='2003') {
// Liste années bilans
// Liste années bilans
$req.='<ort:_190000025 type="010">'.$prod['Millesime'].'</ort:_190000025>'."\n";
$option=$prod['Millesime'];
}
elseif ($prod['Presta']=='12001')
// Flag limitation du nombre détablissement
// Flag limitation du nombre d’établissement
$req.='<ort:_109105002 type="010">N</ort:_109105002>'."\n";
$req.='</ort:_2>';
} else {
@ -634,10 +634,10 @@ if (count($res)>0) {
$this->errNumInpi=$tabRes['codeErreur'];
$this->errMsgInpi=$tabRes['libErreur'];
$enCache=true;
echo 'Une requête dans le cache <br/>';
echo 'Une requête dans le cache <br/>';
//die();
} else {
echo 'Pas de requête dans le cache <br/>';
echo 'Pas de requête dans le cache <br/>';
//die();
$page=getUrl(RNCS_WS_URL, $cookie, $postData, $referer, false, 'www.services.ort.fr');
$this->body=$page['body'];
@ -648,7 +648,7 @@ if (count($res)>0) {
if ($matches[1]*1<>0) {
$this->errNumInpi=$matches[1];
$this->errMsgInpi=$tabErreurInpi[$this->errNumInpi];
//echo "<!-- ERREUR INPI 13 n°$errNumInpi = $errMsgInpi !!! -->\n";
//echo "<!-- ERREUR INPI 13 n°$errNumInpi = $errMsgInpi !!! -->\n";
}
/**
@ -658,7 +658,7 @@ if (count($res)>0) {
if ($matches[1]*1<>0) {
$this->errNumInpi=$matches[1];
$this->errMsgInpi=$tabErreurInpi[$this->errNumInpi];
//echo "<!-- ERREUR INPI 96 n°$errNumInpi = $errMsgInpi !!! -->\n";
//echo "<!-- ERREUR INPI 96 n°$errNumInpi = $errMsgInpi !!! -->\n";
}
/**
@ -690,7 +690,7 @@ elseif ($prod['Presta']==12003)
// actes image
$pregmatch=preg_match_all('/<ort\:_201 type="110">(?:.*)<ort\:_103000452 type="010">(.*)<\/ort:_103000452>(?:.*)<ort\:_103000402 type="010">(.*)<\/ort:_103000402>(?:.*)<ort\:_103000403 type="010">(.*)<\/ort:_103000403>(?:.*)<ort\:_103000404 type="010">(.*)<\/ort:_103000404>(?:.*)<\/ort:_201>/Uis',$this->body, $matches);
elseif ($prod['Presta']==2000)
// bilan simplifiés ou normaux saisi
// bilan simplifiés ou normaux saisi
$pregmatch=preg_match('/<ort\:_2 type="110">(?:.*)<ort\:_2 type="110">(.*)<\/ort\:_2>(?:.*)<\/ort\:_2>/Uis',$this->body, $matches);
elseif ($prod['Presta']==12001)
// Fiche Identite
@ -709,29 +709,29 @@ else {
$verProduit=$matches[3]; // 1
$libProduit=$matches[4]; // Comptes sociaux
$typProduit=$matches[5]; // 2000 : Bilans sociaux
// 2001 : Bilans consolidés (70)
// 2001 : Bilans consolidés (70)
// 2002 : Bilans de banques (71)
// 2003 : Bilans d'assurances (72)
$synProduit=$matches[6]; // 109104002 : Disponibilité synchrone
$asyProduit=$matches[7]; // 109104003 : Disponibilité asynchrone
$synProduit=$matches[6]; // 109104002 : Disponibilité synchrone
$asyProduit=$matches[7]; // 109104003 : Disponibilité asynchrone
$pregmatch=preg_match_all('/<ort\:_103000038 type="010">(.*)<\/ort:_103000038>/Uis',$matches[8], $matches);
if ($typeBilan==2000) $tabBilans['N']=$matches[1]; // Réel normal SC
elseif ($typeBilan==2001) $tabBilans['C']=$matches[1]; // Consolidé CC
if ($typeBilan==2000) $tabBilans['N']=$matches[1]; // Réel normal SC
elseif ($typeBilan==2001) $tabBilans['C']=$matches[1]; // Consolidé CC
elseif ($typeBilan==2002) $tabBilans['B']=$matches[1]; // Banque SB
elseif ($typeBilan==2003) $tabBilans['A']=$matches[1]; // Assurance SA
else $tabBilans['S']=$matches[1]; // Réel Simplifié SS
else $tabBilans['S']=$matches[1]; // Réel Simplifié SS
}
$tabVitrine['bilans']=$tabBilans;
// Fiche d'identité
// Fiche d'identité
$pregmatch=preg_match('/<ort:_12001 type="110">(?:.*)<ort\:_120000027 type="010">(.*)<\/ort\:_120000027>(?:.*)<ort\:_120000028 type="010">(.*)<\/ort\:_120000028>(?:.*)<ort\:_120000029 type="010">(.*)<\/ort:_120000029>(?:.*)<ort\:_120000031 type="010">(.*)<\/ort\:_120000031>(?:.*)<ort\:_109104002 type="010">(.*)<\/ort\:_109104002>(?:.*)<ort\:_109104003 type="010">(.*)<\/ort\:_109104003>(?:.*)<ort\:_130000401 type="010">(.*)<\/ort\:_130000401>(?:.*)<\/ort:_12001>/Uis',$this->body, $matches);
$numProduit=$matches[1]; // 52
$verProduit=$matches[2]; // 1
$libProduit=$matches[3]; // Comptes sociaux
$typProduit=$matches[4]; // 2000 : Bilans sociaux
$synProduit=$matches[5]; // 109104002 : Disponibilité synchrone
$asyProduit=$matches[6]; // 109104003 : Disponibilité asynchrone
$nbEtab=$matches[7]; // Nombre d'établissements recensés
$synProduit=$matches[5]; // 109104002 : Disponibilité synchrone
$asyProduit=$matches[6]; // 109104003 : Disponibilité asynchrone
$nbEtab=$matches[7]; // Nombre d'établissements recensés
$tabVitrine['identite']=array( 'numProduit'=>$numProduit,
'verProduit'=>$verProduit,
'libProduit'=>$libProduit,

View File

@ -40,7 +40,7 @@ class classMSigVille {
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
$this->cookie=$this->header['Cookie']
$this->cookie=$this->header['Cookie'];
if ($this->codeRetour<>200) return false;
}
}
@ -63,7 +63,7 @@ class classMSigVille {
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
$this->cookie=$this->header['Cookie']
$this->cookie=$this->header['Cookie'];
if ($this->codeRetour<>200) return false;
}
@ -130,7 +130,7 @@ class classMSigVille {
try {
if (trim($raisonSociale)=='') $raisonSociale='TEST'; // Le RNVP ne fonctionne pas sans la Raison Sociale qui est la 1ère ligne d'adresse
$rep=$this->client->zonage( new SoapParam(strtr("$raisonSociale:$adresse:$cp:$ville",
'¿°ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ??',
'¿°ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ??',
' aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr'),'adresse'),
new SoapParam(':','separateur'),
new SoapParam('type=M','options')
@ -141,7 +141,7 @@ class classMSigVille {
/** Découpage des ZFU, CUCS etcs...
**/
$fp=fopen('/var/www/log/amabis.log', 'a');
$fp=fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s').' - '.implode("\n", $rep)."\n============================================================================\n");
fclose($fp);
@ -179,7 +179,7 @@ class classMSigVille {
$tabZones=explode(',',$rep['objdesc']);
foreach ($tabZones as $zone) {
$tabTmp=explode('=',$zone);
if (trim($tabTmp[0])<>'')
if (trim($tabTmp[0])<>'')
$tabRepTmp[$tabTmp[0]]=$tabTmp[1];
}
if (!$debug) {
@ -199,7 +199,7 @@ class classMSigVille {
print_r($fault);
echo $this->client->__getLastRequest()."\n";
echo $this->client->__getLastResponse()."\n";
$fp=fopen('/var/www/log/amabis.log', 'a');
$fp=fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s').' - ERREUR SOAP : Requete = '.$this->client->__getLastRequest()."\n Reponse = ".$this->client->__getLastResponse()."\n============================================================================\n");
fclose($fp);
}
@ -232,7 +232,7 @@ class classMSigVille {
$rep=$this->client->rechtel($query);
$fp=fopen('/var/www/log/amabis.log', 'a');
$fp=fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s')." - $query - ".implode("\n", $rep)."\n============================================================================\n");
fwrite($fp, "Requête : ".$this->client->__getLastRequest()."\n");
fwrite($fp, "Réponse : ".$this->client->__getLastResponse()."\n");

View File

@ -1,22 +1,23 @@
<?
class MTel {
public $body = '';
public $header = '';
public $codeRetour = 0;
public $cookie='';
public $urlBase='http://www.pagespro.com/recherche.php';
public $url='';
public $referer='';
public $enCache=false;
private $accesDistant=false;
public $iDb;
public function __construct($accesDistant=false) {
$this->accesDistant=$accesDistant;
$this->accesDistant=false; // Accès bloqué par "pagespro"
if ($this->accesDistant) {
$this->url=$this->urlBase;
$page=getUrl($this->url,$this->cookie,'',$this->referer, false, '', '', 3);
@ -27,14 +28,14 @@ class MTel {
}
$this->iDb=new WDB('jo');
}
/**
* @todo :
* 1. Faire une fonction qui récupère les Logos
* 2. Envoyer les logos par le WS
* 3. Permettre la recherche par Tel
*/
public function getTel($siret, $nic=0) {
$tabRet=array();
@ -44,7 +45,7 @@ class MTel {
$siren=round($siret/100000)*1;
} else
$siren=$siret*1;
if (strlen($siren)<=9) {
/** Si le siren est de taille < à 9, on ajoute des 0 significatifs **/
switch (strlen($siren)) {
@ -66,7 +67,7 @@ class MTel {
case 4: $nic='0'.$nic; break;
}
}
$strNic='';
if ($nic*1>0) $strNic="AND (nic=$nic OR nic=0)";
$ret=$this->iDb->select('telephonie',
@ -77,9 +78,9 @@ class MTel {
foreach ($ret as $tabTel) {
if ($tabTel['typeTel']=='an8' && $tabTel['infoTel']*1>0) {
$an8=$tabTel['infoTel']*1;
$retTmp=$this->iDb->select('tabAn8', 'libAn8', "codAn8='$an8'", false, MYSQL_ASSOC);
$retTmp=$this->iDb->select('tabAn8', 'libAn8', "codAn8='$an8'", false, MYSQL_ASSOC);
$infoTel=ucfirst(strtolower($retTmp[0]['libAn8']));
} else
} else
$infoTel=$tabTel['infoTel'];
$tabRet[]=array('siren'=>$siren,
'nic'=>$tabTel['nic'],
@ -114,11 +115,11 @@ class MTel {
$this->referer=$this->url;
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$nbResults=0;
if (preg_match('/<b class="total_responses_nr">(.*)réponses<\/b>/Uis', $this->body, $matches))
$nbResults=trim(strtr(strip_tags($matches[1]), array('&nbsp;'=>'','&ndash;'=>'')));
if ($nbResults>0) {
$tabResultsHtml=explode('<div class="results_part1">', $this->body);
for ($i=1; isset($tabResultsHtml[$i]);$i++) {
@ -126,16 +127,16 @@ class MTel {
$body=$tabResultsHtml[$i];
$res['nom']=trim(htm2txt(@getTextInHtml($body, '<div class="results_title">', '_title">', '</div>')));
$res['adresse']=trim(htm2txt(@getTextInHtml($body, '<div class="coordonnees">','<div>','<table id="t_coord_')));
$res['urlSite']=trim(htm2txt(@getTextInHtml($body, '<b class="siteweb">Site Web :</b>&nbsp;', "javascript:SiteURL('", "','")));
$res['urlMail']=trim(htm2txt(@getTextInHtml($body, '<b>E-mail :</b>', "&amp;mail=", "', ")));
$res['urlLogo']=trim(htm2txt(@getTextInHtml($body, '<div class="results_inset_logo">', '" src="', '" border="')));
$res['tefet']=trim(htm2txt(@getTextInHtml($body, '<b>Effectif établ : </b>','</b>','</div>')));
$res['tefet']=trim(htm2txt(@getTextInHtml($body, '<b>Effectif établ : </b>','</b>','</div>')));
$res['siret']=trim(htm2txt(@getTextInHtml($body, '<b>Siret : </b>','</b>','</div>')));
$res['nafet']=trim(htm2txt(strip_tags(@getTextInHtml($body, '<b>Code NAF : </b>','</b>','</div>'))));
$res['domaines']=trim(preg_replace('/ +/', ' ', preg_replace('/\r+|\n+|\s+/',' ',htm2txt(strip_tags(@getTextInHtml($body, '<div class="puce_domaine">','<strong>','</div>'))))));
if ($res['urlSite']<>'') {
@ -154,7 +155,7 @@ class MTel {
'typeTel'=>'web',
'infoTel'=>$res['urlSite'],
'telephone'=>0,
);
);
}
if ($res['urlLogo']<>'') {
$this->iDb->insert('telephonie', array( 'siren'=>$siren,
@ -220,7 +221,7 @@ class MTel {
}
$tabTel=array_values($tabTel);
foreach ($tabTel as $tabT) {
$tabRet[]=array('siren'=>$siren,
'nic'=>substr($res['siret'],-5),
@ -248,7 +249,7 @@ class MTel {
$url="http://www.annuaire.com/societe/-$siren/";
//$page=getUrl($this->url,$this->cookie,'',$this->referer, false, '', '', 3);
$page=getUrl($url,'','','',false,'','',3);
if ($page['code']<>301) return false;
$url2=$page['header']['Location'];
$page=getUrl($url2,'','',$url,false,'','',3);
@ -256,12 +257,12 @@ class MTel {
if (!preg_match('/<a href="http:\/\/www\.annuaire\.com\/inscription\/1\/\?companyid=(.*)&amp;go=next"/Uis', $page['body'], $matches)) {
print_r($page);
die($siren);
}
}
}*/
}
return $tabRet;
}
function getOperateur($tel) {
/*http://www.arcep.fr/index.php?id=interactivenumeros
Données POST:
@ -271,7 +272,7 @@ class MTel {
http://www.arcep.fr/index.php?id=interactivenumeros&CMD=DETAILS_SOC&uid=158757&bloc=017543&cHash=0c29e39859
http://www.arcep.fr/uploads/tx_gsavis/05-0233.pdf
*/
}
}

View File

@ -1,28 +1,28 @@
<?
<?php
//ini_set('soap.wsdl_cache_enabled', 1); // 0 en dév
class MTvaOld {
public $vatNumber=''; // Numéro de TVA retourné
public $vatDefined=false; // Le numéro de TVA est il validé ?
public $errnum=0; // Numéro de l'erreur en cas d'erreur
public $errmsg=''; // Message de l'erreur en cas d'erreur
private $siren;
private $siren;
function __construct($siren, $accesDist=true) {
//$accesDist=false;
if ($accesDist==true) {
/*$fp=fopen(LOG_PATH.'/infoVat.log', 'a');
/*$fp=fopen('/var/www/log/infoVat.log', 'a');
fwrite($fp, "MTva->__construct pour $siren $accesDist\n");
fclose($fp);
*/
$this->siren=$siren;
$client = new SoapClient('http://ws1.scores-decisions.com/entreprise/vat.wsdl',
array( 'trace' => 1, 'soap_version' => SOAP_1_1,
'login' => 'TESTTVA', 'password' => 'TVATESTPW'));
'login' => 'TESTTVA', 'password' => 'TVATESTPW'));
try {
$O = $client->getCompanyVat($this->siren);
if ($O->error->errnum) {
@ -57,38 +57,34 @@ class MTvaOld {
class MTva {
public $vatNumber=''; // Numéro de TVA retourné
public $vatDefined=false; // Le numéro de TVA est il validé ?
public $errnum=0; // Numéro de l'erreur en cas d'erreur
public $errmsg=''; // Message de l'erreur en cas d'erreur
private $siren;
function __construct($siren, $accesDist=true) {
private $siren;
function __construct($siren, $accesDist=true)
{
$sirenIn=$siren*1;
if ($sirenIn<000001000) {
/* $this->errnum=0;
$this->errmsg=$O->error->errmsg;
return false;
} else {
$val=$O->result;
$this->vatNumber=$val->vatNumber;
$this->vatDefined=$val->vatDefined;*/
$this->vatNumber='FR00000000000';
$this->vatDefined=false;
return false;
}elseif($sirenIn<000010000) $siren='00000'.$sirenIn;
if ($sirenIn<000001000) {
$this->vatNumber='FR00000000000';
$this->vatDefined=false;
return false;
}
elseif($sirenIn<000010000) $siren='00000'.$sirenIn;
elseif ($sirenIn<000100000) $siren='0000'.$sirenIn;
elseif ($sirenIn<001000000) $siren='000'.$sirenIn;
elseif ($sirenIn<010000000) $siren='00'.$sirenIn;
elseif ($sirenIn<100000000) $siren='0'.$sirenIn;
else $siren=''.$sirenIn;
$siren = str_pad($siren, 9, '0', STR_PAD_LEFT);
$this->siren=$siren;
$cleAlgo=$this->genereCleFr();
if ($cleAlgo<10) $cleAlgo='0'.$cleAlgo;
else $cleAlgo=''.$cleAlgo;
$tabRep=array();
@ -121,20 +117,21 @@ class MTva {
'iso'=>'FR',
'vat'=>$cle.$siren,
'BtnSubmitVat'=>'Verify');
/* $postData=array( 'Lang'=>'FR',
'VAT'=>$cle.$siren,
'ISO'=>'FR',
'MS'=>'FR');*/
/*$postData=array(
* 'Lang'=>'FR',
'VAT'=>$cle.$siren,
'ISO'=>'FR',
'MS'=>'FR'
);*/
$tdeb = microtime_float();
// $url='http://ec.europa.eu/taxation_customs/vies/cgi-bin/viesquer';
// $referer='http://ec.europa.eu/taxation_customs/vies/fr/vieshome.htm';
$url='http://ec.europa.eu/taxation_customs/vies/viesquer.do';
$referer='http://ec.europa.eu/taxation_customs/vies/';
$page=getUrl($url, '', $postData, $referer, false, 'ec.europa.eu', '', 15);
$duree = round(microtime_float()-$tdeb, 3);
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMTva sur $siren en $duree", print_r($page, true));
//sendMail('production@scores-decisions.com', 'mricois@scores-decisions.com', "classMTva sur $siren en $duree", print_r($page, true));
if ($page['err_num']<>0) {
debugLog('W', 'TVA Erreur CURL n°'. $page['err_num'] .', '. $page['err_msg'] ." sur le Siren $siren, numéro de TVA = FR $cle $siren. Durée = $duree s !", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->vatNumber="FR$cle$siren";
@ -156,7 +153,7 @@ class MTva {
$this->vatDefined=true;
return true;
//return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>array('siren'=>$siren, 'vatNumber'=>"FR$cle$siren", 'vatDefined'=>true));
} elseif (strpos($body, 'Service non disponible')>0 ||
} elseif (strpos($body, 'Service non disponible')>0 ||
strpos($body, 'ponse trop long.')>0) {
$nbIndispo++;
if ($nbIndispo<3) {
@ -209,7 +206,7 @@ class MTva {
** @return La clé du numéro de TVA
**/
private function genereCleFr() {
$siren=$this->siren;
// Position du chiffre SIREN (1 à 9)
@ -224,7 +221,7 @@ class MTva {
$tabFirst[7]=array(65,57,95,60,08,61,76,29,34);
$tabFirst[8]=array(17,91,79,39,35,54,85,59,37);
$tabFirst[9]=array(66,28,63,18,62,47,94,89,40);
// Chiffre 0 à 9
$tabPoids=array(1,34,-16,-21,27,-7,9,30,3);
$cle=$first=0;
@ -236,7 +233,7 @@ class MTva {
$cle+=$tabPoids[$pos]*$chiffre;
}
}
while(true) {
while(true) {
if ($cle>96) $cle=$cle-97;
elseif ($cle<0) $cle=$cle+97;
else break;
@ -244,8 +241,8 @@ class MTva {
if ($cle==0) return 96;
return ($cle-1);
}
/** Test de la validité du siren demandé
** @param int SIREN à tester
** @param int NIC (facultatif)
@ -265,7 +262,7 @@ class MTva {
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;
@ -274,7 +271,7 @@ class MTva {
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
@ -286,7 +283,7 @@ class MTva {
$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)));
@ -295,7 +292,7 @@ class MTva {
$som_tmp+=(integer)substr($var_tmp,$j,1);
$somme+=$som_tmp;
}
if ((integer)($somme/10)!=($somme/10))
{ // Le Siren est faux
if (substr($siren,0,3)!='200') // Les siren débutant par 200 sont toujours valides (sirens provisoires de la BDF?!)
@ -304,7 +301,7 @@ class MTva {
} else {
if (!valideData($nic,1,5,'N')) // Nic de format incorrect.
return $erreur;
$SIRET=$siren.$nic;
$somme=0;
for ($i=0; $i<=12; $i+=2)
@ -317,7 +314,7 @@ class MTva {
}
for ($i=1; $i<=13; $i+=2) // Traitement IMPAIR
$somme+=(integer)substr($SIRET,$i,1);
if ((integer)($somme/10)!=($somme/10))// Le Siret est faux
return $erreur;
}
@ -326,5 +323,4 @@ class MTva {
}
}
?>

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,38 +1,250 @@
<?
/** Ratios pour les collectivités **/
global $tabZones2Ratios;
/** Tableau de conversion des communes **/
$tabZones2Ratios=array(
'R01a'=>'R[801]',
'R01b'=>'Rh[801]',
'R01c'=>'Rs[801]',
'R02a'=>'R[802]',
'R02b'=>'Rh[802]',
'R02c'=>'Rs[802]',
'R02d'=>'Rq[802]',
'R02e'=>'Rt[802]',
'R03a'=>'R[803]',
'R03b'=>'Rh[803]',
'R03c'=>'Rs[803]',
'R03d'=>'Rq[803]',
'R03e'=>'Rt[803]',
'R04a'=>'R[804]',
'R04b'=>'Rh[804]',
'R04c'=>'Rs[804]',
'R04d'=>'Rq[804]',
'R04e'=>'Rt[804]',
'R05a'=>'R[805]',
'R05b'=>'Rh[805]',
'R05c'=>'Rs[805]',
'R06a'=>'R[806]',
'R06b'=>'Rh[806]',
'R06c'=>'Rs[806]',
'R06d'=>'Rq[806]',
'R06e'=>'Rt[806]',
'R07a'=>'R[807]',
'R07b'=>'Rh[807]',
'R07c'=>'Rs[807]',
'R07d'=>'Rq[807]',
'R07e'=>'Rt[807]',
'R08a'=>'R[808]',
'R08b'=>'Rh[808]',
'R08c'=>'Rs[808]',
'R08d'=>'Rq[808]',
'R08e'=>'Rt[808]',
'R09a'=>'R[809]',
'R09b'=>'Rh[809]',
'R09c'=>'Rs[809]',
'R09d'=>'Rq[809]',
'R09e'=>'Rt[809]',
'R10a'=>'R[810]',
'R10b'=>'Rh[810]',
'R10c'=>'Rs[810]',
'R10d'=>'Rq[810]',
'R10e'=>'Rt[810]',
'R11a'=>'R[811]',
'R11b'=>'Rh[811]',
'R11c'=>'Rs[811]',
'R12a'=>'R[812]',
'R12b'=>'Rh[812]',
'R12c'=>'Rs[812]',
'R13a'=>'R[813]',
'R13b'=>'Rh[813]',
'R13c'=>'Rs[813]',
'R13d'=>'Rq[813]',
'R13e'=>'Rt[813]',
'R14a'=>'R[814]',
'R14b'=>'Rh[814]',
'R14c'=>'Rs[814]',
'R14d'=>'Rq[814]',
'R14e'=>'Rt[814]',
'R15a'=>'R[815]',
'R15b'=>'Rh[815]',
'R15c'=>'Rs[815]',
'R15d'=>'Rq[815]',
'R15e'=>'Rt[815]',
'R16a'=>'R[816]',
'R16b'=>'Rh[816]',
'R16c'=>'Rs[816]',
'R16d'=>'Rq[816]',
'R16e'=>'Rt[816]',
'R17a'=>'R[817]',
'R17b'=>'Rh[817]',
'R17c'=>'Rs[817]',
'R18a'=>'R[818]',
'R18b'=>'Rh[818]',
'R18c'=>'Rs[818]',
'R18d'=>'Rq[818]',
'R18e'=>'Rt[818]',
'R19a'=>'R[819]',
'R19b'=>'Rh[819]',
'R19c'=>'Rs[819]',
'R19d'=>'Rq[819]',
'R19e'=>'Rt[819]',
'R20a'=>'R[820]',
'R20b'=>'Rh[820]',
'R20c'=>'Rs[820]',
'R20d'=>'Rq[820]',
'R20e'=>'Rt[820]',
'R21a'=>'R[821]',
'R21b'=>'Rh[821]',
'R21c'=>'Rs[821]',
'R21d'=>'Rq[821]',
'R21e'=>'Rt[821]',
'R22a'=>'R[822]',
'R22b'=>'Rh[822]',
'R22c'=>'Rs[822]',
'R23a'=>'R[823]',
'R23b'=>'Rh[823]',
'R23c'=>'Rs[823]',
'R24a'=>'R[824]',
'R24b'=>'Rh[824]',
'R24c'=>'Rs[824]',
'R25a'=>'R[825]',
'R25b'=>'Rh[825]',
'R25c'=>'Rs[825]',
'R26a'=>'R[826]',
'R26b'=>'Rh[826]',
'R26c'=>'Rs[826]',
'R26d'=>'Rq[826]',
'R26e'=>'Rt[826]',
'R27a'=>'R[827]',
'R27b'=>'Rh[827]',
'R27c'=>'Rs[827]',
'R27d'=>'Rq[827]',
'R27e'=>'Rt[827]',
'R28a'=>'R[828]',
'R28b'=>'Rh[828]',
'R28c'=>'Rs[828]',
'R28d'=>'Rq[828]',
'R28e'=>'Rt[828]',
'R29a'=>'R[829]',
'R29b'=>'Rh[829]',
'R29c'=>'Rs[829]',
'R29d'=>'Rq[829]',
'R29e'=>'Rt[829]',
'R30a'=>'R[830]',
'R30b'=>'Rh[830]',
'R30c'=>'Rs[830]',
'R30d'=>'Rq[830]',
'R30e'=>'Rt[830]',
'R31a'=>'R[843]',
'R31b'=>'Rh[843]',
'R31c'=>'Rs[843]',
'R31d'=>'Rq[843]',
'R31e'=>'Rt[843]',
'R32a'=>'R[831]',
'R32b'=>'Rh[831]',
'R32c'=>'Rs[831]',
'R33a'=>'R[832]',
'R33b'=>'Rh[832]',
'R33c'=>'Rs[832]',
'R33d'=>'R[845]',
'R33e'=>'Rh[845]',
'R33f'=>'Rs[845]',
'R34a'=>'R[833]',
'R34b'=>'Rh[833]',
'R34c'=>'Rs[833]',
'R34d'=>'R[846]',
'R34e'=>'Rh[846]',
'R34f'=>'Rs[846]',
'R35a'=>'R[834]',
'R35b'=>'Rh[834]',
'R35c'=>'Rs[834]',
'R35d'=>'R[847]',
'R35e'=>'Rh[847]',
'R35f'=>'Rs[847]',
'R36a'=>'R[835]',
'R36b'=>'Rh[835]',
'R36c'=>'Rs[835]',
'R36d'=>'R[849]',
'R36e'=>'Rh[849]',
'R36f'=>'Rs[849]',
'R37a'=>'R[844]',
'R37b'=>'Rh[844]',
'R37c'=>'Rs[844]',
'R37d'=>'R[848]',
'R37e'=>'Rh[848]',
'R37f'=>'Rs[848]',
'R38a'=>'R[836]',
'R38b'=>'Rh[836]',
'R38c'=>'Rs[836]',
'R38d'=>'Rq[836]',
'R38e'=>'Rt[836]',
'R39a'=>'R[837]',
'R39b'=>'Rh[837]',
'R39c'=>'Rs[837]',
'R39d'=>'Rq[837]',
'R39e'=>'Rt[837]',
'R40a'=>'R[838]',
'R40b'=>'Rh[838]',
'R40c'=>'Rs[838]',
'R40d'=>'Rq[838]',
'R40e'=>'Rt[838]',
'R41a'=>'R[842]',
'R41b'=>'Rh[842]',
'R41c'=>'Rs[842]',
'R41d'=>'Rq[842]',
'R41e'=>'Rt[842]',
'R42a'=>'R[839]',
'R42b'=>'Rh[839]',
'R42c'=>'Rs[839]',
'R42d'=>'Rq[839]',
'R42e'=>'Rt[839]',
'R43a'=>'R[840]',
'R43b'=>'Rh[840]',
'R43c'=>'Rs[840]',
'R43d'=>'Rq[840]',
'R43e'=>'Rt[840]',
'R44a'=>'R[841]',
'R44b'=>'Rh[841]',
'R44c'=>'Rs[841]',
);
function genereCacheRatios() {
$tabMoy=array();
$strFonctions='$tabInfla=array();
';
$iDb=new WDB("jo");
$tabTmp=$iDb->select("sdv1.inflation", "annee, infla", "annee>1990 ORDER BY annee", false, MYSQL_ASSOC);
foreach ($tabTmp as $tabTmp2) {
$strFonctions.='$tabInfla['.$tabTmp2['annee'].']='.$tabTmp2['infla'].";\n";
}
$strFonctions.='
/** Donne le taux d\'inflation pour une année donnée **/
function getInflation($annee) {
global $tabInfla;
global $tabInfla;
if (!isset($tabInfla[$annee]))
sendMail("production@scores-decisions.com", "ylenaour@scores-decisions.com", "ERREUR, il manque le taux d\'inflation pour l\'année $annee", "il manque le taux d\'inflation pour l\'année $annee dans la table sdv1.inflation");
sendMail("production@scores-decisions.com", "ylenaour@scores-decisions.com", "ERREUR, il manque le taux d\'inflation pour l\'année $annee", "il manque le taux d\'inflation pour l\'année $annee dans la table sdv1.inflation");
return $tabInfla[$annee];
}
';
$iDb=new WDB('jo');
$fp=fopen(INCLUDE_PATH.'tmp/configMRatios.tmp.php', 'w');
$configFileTmp = realpath(dirname(__FILE__)).'/../tmp/configMRatios.tmp.php';
$configFile = realpath(dirname(__FILE__)).'/../tmp/configMRatios.php';
$fp=fopen($configFileTmp, 'w');
fwrite($fp, '<?'."\n");
fwrite($fp, 'error_reporting(E_ALL ^ E_NOTICE);' ."\n");
fwrite($fp, '$tva=19.6;' ."\n");
fwrite($fp, $strFonctions ."\n");
fwrite($fp, '$tabFormules=array();' ."\n"."\n");
fwrite($fp, '$tabFormules=array();' ."\n"."\n");
$tabFormules=$iDb->select( 'ratios_formules',
'id, libelle, formule, unite, commentaires, borneMin, borneMax, deleted',
'deleted=0');
@ -48,29 +260,29 @@
fwrite($fp, '$tabFormules['.$i.'][\'formule\']=\''.$formule['formule'].'\';' ."\n");
}
fwrite($fp, "\n".'function calculRatios($tabBilans, $tabIdentite, $accesPartenaire) {' ."\n");
fwrite($fp, ' global $tva, $tabFormules, $mBil, $tabBilan, $efftr;' ."\n");
fwrite($fp, ' global $tva, $tabFormules, $mBil, $tabBilan, $efftr;' ."\n");
fwrite($fp, ' $numBil=0;' ."\n");
fwrite($fp, ' $numBilType=array();' ."\n");
fwrite($fp, ' foreach ($tabBilans as $millesime=>$bil) {' ."\n");
fwrite($fp, ' $tabTmp=@$mBil->getBilan(substr($millesime,-10), substr($millesime,0,1), @$bil[\'ref\'], $accesPartenaire);' ."\n");
fwrite($fp, ' $tabTmp=@$mBil->getBilan(substr($millesime,-10), substr($millesime,0,1), @$bil[\'ref\'], $accesPartenaire, $nbRatiosMax=5);' ."\n");
fwrite($fp, ' $numBilType[substr($millesime,0,1)]++;' ."\n");
fwrite($fp, ' if (substr($millesime,0,1)==\'S\') {' ."\n");
fwrite($fp, ' if ($numBilType[\'S\']>5) continue;' ."\n");
fwrite($fp, ' if ($numBilType[\'S\']>$nbRatiosMax) continue;' ."\n");
fwrite($fp, ' $tabTmp2=$mBil->bilanSimplifie2Normal($tabTmp);' ."\n");
fwrite($fp, ' $tabBilan[$numBil]=array_merge($tabTmp2, $tabTmp);' ."\n");
fwrite($fp, ' } elseif (substr($millesime,0,1)==\'N\') {' ."\n");
fwrite($fp, ' if ($numBilType[\'N\']>5) continue;' ."\n");
fwrite($fp, ' if ($numBilType[\'N\']>$nbRatiosMax) continue;' ."\n");
fwrite($fp, ' $tabBilan[$numBil]=$tabTmp;' ."\n");
fwrite($fp, ' } elseif (substr($millesime,0,1)==\'C\') {' ."\n");
fwrite($fp, ' if ($numBilType[\'C\']>5) continue;' ."\n");
fwrite($fp, ' if ($numBilType[\'C\']>$nbRatiosMax) continue;' ."\n");
fwrite($fp, ' $tabBilan[$numBil]=$tabTmp;' ."\n");
fwrite($fp, ' } elseif (substr($millesime,0,1)==\'A\') {' ."\n");
fwrite($fp, ' if ($numBilType[\'A\']>5) continue;' ."\n");
fwrite($fp, ' if ($numBilType[\'A\']>$nbRatiosMax) continue;' ."\n");
fwrite($fp, ' $tabBilan[$numBil]=$tabTmp;' ."\n");
fwrite($fp, ' //return(array());' ."\n");
fwrite($fp, ' } elseif (substr($millesime,0,1)==\'B\') {' ."\n");
fwrite($fp, ' if ($numBilType[\'B\']>5) continue;' ."\n");
fwrite($fp, ' if ($numBilType[\'B\']>$nbRatiosMax) continue;' ."\n");
fwrite($fp, ' $tabBilan[$numBil]=$tabTmp;' ."\n");
fwrite($fp, ' //return(array());' ."\n");
fwrite($fp, ' }' ."\n");
@ -79,91 +291,95 @@
fwrite($fp, ' $p=$tabBilan[$numBil];' ."\n");
fwrite($fp, ' $nm=$p[\'DUREE_MOIS\'];' ."\n");
fwrite($fp, ' $nmp=$p[\'DUREE_MOIS_PRE\'];' ."\n");
fwrite($fp, ' $R=array();' ."\n"."\n");
fwrite($fp, ' $R=array();' ."\n"."\n");
foreach ($tabFormules as $i=>$formule) {
$id=$formule['id']*1;
$libelle=$formule['libelle'];
$unite=$formule['unite'];
$formule=$formule['formule'];
if (preg_match("/^MOY\(R\[(.*)\],(.*)\)/Ui", $formule, $matches)) {
$tabMoy[$id]=array( 'ratio'=>$matches[1]*1,
'nbExo'=>$matches[2]*1,
);
continue;
}
// Gestion des variables minuscules de 1 à 8 caractères alphanumériques
$formule1=preg_replace('/([a-z]{1,8})/','\$$1', $formule);
// Gestion des postes du BILAN AX, BX, YP, FL1, etc...
$formule1=preg_replace('/\b([A-Z]{2,2}[1-9]{0,1})\b/','\$p[\'$1\']', $formule1);
// Gestion des ratios précédent
$formule1=preg_replace('/\bR\[(.*)\]/U', '\$R['."'\\1'*1".']', $formule1);
// Gestion des valeurs Absolues
$formule1=preg_replace('/\|(.*)\|/U', 'abs($1)', $formule1);
// Gestion de l'inflation pour l'année du bilan
$formule1=preg_replace('/\INFLATION/U', 'getInflation(substr($millesime,-4))', $formule1);
// Ecriture de la formule
$formule1="\$R[$id]=".$formule1.';';
/** fonction ou **/
if (preg_match('/ \$ou (.*)/', $formule1, $matches)) {
$formule1=preg_replace('/ \$ou (.*)/',';', $formule1);
$alternative=$matches[1];
$formule1.="if (\$R[$id]==0) \$R[$id]=$alternative";
}
/** Bornage des résultats en cas de dépassement **/
if (preg_match('/;BORN\((.*)\)/U', $formule1, $matches)) {
$formule1=preg_replace('/(;BORN\(.*\))/U','', $formule1);
$tabBornes=explode(':', $matches[1]);
if (trim($tabBornes[0])<>'') {
$bMin=trim($tabBornes[0])*1;
$formule1.="if (\$R[$id]<$bMin) \$R[$id]=$bMin;";
}
if (isset($tabBornes[1]) && trim(@$tabBornes[1])<>'') {
$bMax=trim($tabBornes[1])*1;
$formule1.="if (\$R[$id]>$bMax) \$R[$id]=$bMax;";
}
}
/** Bornage des résultats en cas de dépassement **/
if (preg_match('/;LIM\((.*)\)/U', $formule1, $matches)) {
$formule1=preg_replace('/(;LIM\(.*\))/U','', $formule1);
$bMax=trim($matches[1])*1;
$formule1.="if (\$R[$id]>$bMax) \$R[$id]=$bMax;";
}
/** Mémorisation des formules pour les moyennes **
*
$valeur='( (R'.$matches[1];
for($iMoy=0; $iMoy<$matches[2]; $iMoy++) {
if ($iMoy==1)
$valeur.='+Rp'.$matches[1];
else
$valeur.='+Rp'.$iMoy.$matches[1];
}
$valeur.=')/'.$matches[2].')';
}
else
$valeur=preg_replace('/([A-Z\_]{1,20})\((.*)\)$/i','substr(\$$1,$2)', $valeur);
/** Ratios avec formules à calculer **/
if ($formule['calcul']) {
*/
$formule2=$formule1;
fwrite($fp, $formule2."\n");
//@eval($formule2);
fwrite($fp, 'if (!isset($R['.$id.'])) $R['.$id.']=\'NS\';'."\n");
if (!isset($R[$id])) $R[$id]='NS';
if (preg_match("/^MOY\(R\[(.*)\],(.*)\)/Ui", $formule, $matches)) {
$tabMoy[$id]=array( 'ratio'=>$matches[1]*1,
'nbExo'=>$matches[2]*1,
);
continue;
}
// Gestion des variables minuscules de 1 à 8 caractères alphanumériques
$formule1=preg_replace('/([a-z]{1,8})/','\$$1', $formule);
// Gestion des postes du BILAN AX, BX, YP, FL1, etc...
$formule1=preg_replace('/\b([A-Z]{2,2}[1-9]{0,1})\b/','\$p[\'$1\']', $formule1);
// Gestion des ratios précédent
$formule1=preg_replace('/\bR\[(.*)\]/U', '\$R['."'\\1'*1".']', $formule1);
// Gestion des valeurs Absolues
$formule1=preg_replace('/\|(.*)\|/U', 'abs($1)', $formule1);
// Gestion de l'inflation pour l'année du bilan
$formule1=preg_replace('/\INFLATION/U', 'getInflation(substr($millesime,-4))', $formule1);
// Ecriture de la formule
$formule1="\$R[$id]=".$formule1.';';
/** fonction ou **/
if (preg_match('/ \$ou (.*)/', $formule1, $matches)) {
$formule1=preg_replace('/ \$ou (.*)/',';', $formule1);
$alternative=$matches[1];
$formule1.="if (\$R[$id]==0) \$R[$id]=$alternative";
}
/** Bornage des résultats en cas de dépassement **/
if (preg_match('/;BORN\((.*)\)/U', $formule1, $matches)) {
$formule1=preg_replace('/(;BORN\(.*\))/U','', $formule1);
$tabBornes=explode(':', $matches[1]);
if (trim($tabBornes[0])<>'') {
$bMin=trim($tabBornes[0])*1;
$formule1.="if (\$R[$id]<$bMin) \$R[$id]=$bMin;";
}
if (isset($tabBornes[1]) && trim(@$tabBornes[1])<>'') {
$bMax=trim($tabBornes[1])*1;
$formule1.="if (\$R[$id]>$bMax) \$R[$id]=$bMax;";
}
}
/** Bornage des résultats en cas de dépassement **/
if (preg_match('/;LIM\((.*)\)/U', $formule1, $matches)) {
$formule1=preg_replace('/(;LIM\(.*\))/U','', $formule1);
$bMax=trim($matches[1])*1;
$formule1.="if (\$R[$id]>$bMax) \$R[$id]=$bMax;";
}
/** Mémorisation des formules pour les moyennes **
*
$valeur='( (R'.$matches[1];
for($iMoy=0; $iMoy<$matches[2]; $iMoy++) {
if ($iMoy==1)
$valeur.='+Rp'.$matches[1];
else
$valeur.='+Rp'.$iMoy.$matches[1];
}
$valeur.=')/'.$matches[2].')';
}
else
$valeur=preg_replace('/([A-Z\_]{1,20})\((.*)\)$/i','substr(\$$1,$2)', $valeur);
*/
$formule2=$formule1;
fwrite($fp, $formule2."\n");
//@eval($formule2);
fwrite($fp, 'if (!isset($R['.$id.'])) $R['.$id.']=\'NS\';'."\n");
if (!isset($R[$id])) $R[$id]='NS';
}
}
fwrite($fp, "\n".' $tabRatios[$numBil]=$R;'."\n");
fwrite($fp, ' $numBil++;'."\n");
fwrite($fp, ' }'."\n"."\n");
foreach($tabMoy as $iRatio=>$tMoy) {
$irMoy=$tMoy['ratio'];
$nbExo=$tMoy['nbExo'];
@ -174,15 +390,15 @@
fwrite($fp, ')/'.$nbExo.';');
fwrite($fp, ' }'."\n"."\n");
}
fwrite($fp, 'return $tabRatios;'."\n");
fwrite($fp, '}'."\n");
fwrite($fp, ' ?>');
fclose ($fp);
$strOutput=exec('php -l '.INCLUDE_PATH.'tmp/configMRatios.tmp.php', $output);
$strOutput=exec('php -l '.$configFileTmp, $output);
if (preg_match('/^No syntax errors detected in /', $strOutput)) {
move(INCLUDE_PATH.'tmp/configMRatios.tmp.php', INCLUDE_PATH.'tmp/configMRatios.php');
move($configFileTmp, $configFile);
} else {
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMRatios sur $siren : Erreur de compilation '$strOutput'", print_r($output, true).EOL);
print_r($output);
@ -191,4 +407,19 @@
return true;
}
/** Conversion des zones pour les collectivités **/
function convertZones($codeR, $zonesDB) {
global $tabZones2Ratios;
foreach($tabZones2Ratios as $oldR=>$newR) {
if (preg_match('/(\D+)\[(\d+)\]/Uis', $newR, $matches) && $matches[1]==$codeR) {
$iRatio=$matches[2];
if ($codeR=='R')
$ret[$iRatio]=$zonesDB[$oldR]*1000;
else
$ret[$iRatio]=$zonesDB[$oldR];
}
}
return $ret;
}
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,5 @@
<?
include_once(INCLUDE_PATH.'scores/classMFinancier.php');
<?php
require_once realpath(dirname(__FILE__)).'/classMFinancier.php';
class MSolvabilite {
@ -810,23 +809,30 @@ class MSolvabilite {
'990Z'=>6,
'9999'=>6,
);
/*La tranche deffectifs permet de regrouper les sociétés en fonction de leur effectif siège. LINSEE a défini 15 tranches deffectifs : 0 salarié ; 1 à 2 salariés ; 3 à 5 salariés ; 6 à 9 salariés ; 10 à 19 salariés ; 20 à 49 salariés ; 50 à 99 salariés ; 100 à 199 salariés ; 200 à 249 salariés ; 250 à 499 salariés ; 500 à 999 salariés ; 1 000 à 1 999 salariés ; 2 000 à 4 999 salariés ; plus ; plus de.*/
private $tabPtTeff=array( 'NN'=>3, // de 5 000 à 9 999 salariés
'00'=>3, // 0 salariés
'01'=>1, // de 1 à 2 salarié(s)
'02'=>1, // de 3 à 5 salariés
'03'=>1, // de 6 à 9 salariés
'11'=>0, // de 10 à 19 salariés
'12'=>1, // de 20 à 49 salariés
'21'=>2, // de 50 à 99 salariés
'22'=>2, // de 100 à 199 salariés
'31'=>3, // de 200 à 249 salariés // 3
'32'=>5, // de 250 à 499 salariés // 3
'41'=>7, // de 500 à 999 salariés // 3
'42'=>10, // de 1 000 à 1 999 salariés // 3
'51'=>15, // de 2 000 à 4 999 salariés // 4
'52'=>20, // de 5 000 à 9 999 salariés // 4
'53'=>25, // + de 10 000 salariés // 4
/*
* La tranche d'effectifs permet de regrouper les sociétés en fonction de leur
* effectif siège. L'INSEE a défini 15 tranches d'effectifs : 0 salarié ;
* 1 à 2 salariés ; 3 à 5 salariés ; 6 à 9 salariés ; 10 à 19 salariés ;
* 20 à 49 salariés ; 50 à 99 salariés ; 100 à 199 salariés ;
* 200 à 249 salariés ; 250 à 499 salariés ; 500 à 999 salariés ;
* 1 000 à 1 999 salariés ; 2 000 à 4 999 salariés ; plus ; plus de.
*/
private $tabPtTeff=array( 'NN'=>3, // de 5 000 à 9 999 salariés
'00'=>3, // 0 salariés
'01'=>1, // de 1 à 2 salarié(s)
'02'=>1, // de 3 à 5 salariés
'03'=>1, // de 6 à 9 salariés
'11'=>0, // de 10 à 19 salariés
'12'=>1, // de 20 à 49 salariés
'21'=>2, // de 50 à 99 salariés
'22'=>2, // de 100 à 199 salariés
'31'=>3, // de 200 à 249 salariés // 3
'32'=>5, // de 250 à 499 salariés // 3
'41'=>7, // de 500 à 999 salariés // 3
'42'=>10, // de 1 000 à 1 999 salariés // 3
'51'=>15, // de 2 000 à 4 999 salariés // 4
'52'=>20, // de 5 000 à 9 999 salariés // 4
'53'=>25, // + de 10 000 salariés // 4
);
private $tabPtDep=array('01'=>6,
'02'=>5,
@ -934,68 +940,68 @@ class MSolvabilite {
private $tabPtFJ=array( '10'=>11, // PP
'11'=>9, // Artisan Commerçant
'12'=>9, // Commerçant
'11'=>9, // Artisan Commerçant
'12'=>9, // Commerçant
'13'=>8, // Artisan
'15'=>12, // Profession libérale
'15'=>12, // Profession libérale
'16'=>12, // Exploitant agricole
'17'=>12, // Agent commercial
'18'=>12, // Associé Gérant de société
'18'=>12, // Associé Gérant de société
'19'=>12, // Personne Physique Autre
'21'=>12, // Indivision
'22'=>12, // Société créée de fait
'23'=>13, // Société en participation
'22'=>12, // Société créée de fait
'23'=>13, // Société en participation
'27'=>13, // Paroisse
'29'=>12, // Autre groupement de droit privé non doté de la personnalité morale
'31'=>10, // Personne morale de droit étranger immatriculée au RCS
'32'=>12, // Personne morale de droit étranger, non immatriculée au RCS
'41'=>25, // Etab public ou régie à caractère industriel // 13
'51'=>11, // Société coopérative commerciale particulière
'52'=>11, // Société en nom collectif
'5306'=>10, // Société en commandite
'5308'=>11, //
'29'=>12, // Autre groupement de droit privé non doté de la personnalité morale
'31'=>10, // Personne morale de droit étranger immatriculée au RCS
'32'=>12, // Personne morale de droit étranger, non immatriculée au RCS
'41'=>25, // Etab public ou régie à caractère industriel // 13
'51'=>11, // Société coopérative commerciale particulière
'52'=>11, // Société en nom collectif
'5306'=>10, // Société en commandite
'5308'=>11, //
'54'=>5, // SARL
'5410'=>4, //
'5458'=>0, //
'5460'=>2, //
'5485'=>12, //
'5498'=>6, //
'55'=>8, // SA à conseil d'administration
'5510'=>9, //
'5515'=>11, //
'5532'=>11, //
'5553'=>6, //
'5558'=>6, //
'5560'=>9, //
'5585'=>11, //
'56'=>8, // SA à directoire
'57'=>9, // SA par actions simplifiées
'61'=>13, // Caisse épargne et prévoyance
'62'=>12, // Groupement d'intérêt économique
'63'=>12, // Société coopérative agricole
'65'=>12, // Société civile
'69'=>13, // Autre Pers de droit privé inscrit au RCS
'71'=>25, // Administration de l'état // 13
'72'=>25, // Collectivité locale // 13
'5410'=>4, //
'5458'=>0, //
'5460'=>2, //
'5485'=>12, //
'5498'=>6, //
'55'=>8, // SA à conseil d'administration
'5510'=>9, //
'5515'=>11, //
'5532'=>11, //
'5553'=>6, //
'5558'=>6, //
'5560'=>9, //
'5585'=>11, //
'56'=>8, // SA à directoire
'57'=>9, // SA par actions simplifiées
'61'=>13, // Caisse épargne et prévoyance
'62'=>12, // Groupement d'intérêt économique
'63'=>12, // Société coopérative agricole
'65'=>12, // Société civile
'69'=>13, // Autre Pers de droit privé inscrit au RCS
'71'=>25, // Administration de l'état // 13
'72'=>25, // Collectivité locale // 13
'73'=>25, // Etab publique administratif // 13
'74'=>25, // Autre PM de droit public administratif // 13
'81'=>13, // Organisme gérant un régime de SECU
'81'=>13, // Organisme gérant un régime de SECU
'82'=>9, // Organisme mutualiste
'83'=>13, // CE
'84'=>12, // Organisme professionnel Syndicat de propriétaires
'84'=>12, // Organisme professionnel Syndicat de propriétaires
'91'=>13, // Syndicat copro / ASL
'9210'=>12, // Association loi 1901 ou assimilé
'9220'=>12, //
'9221'=>6, //
'9222'=>10, //
'9223'=>12, //
'9230'=>12, //
'9210'=>12, // Association loi 1901 ou assimilé
'9220'=>12, //
'9221'=>6, //
'9222'=>10, //
'9223'=>12, //
'9230'=>12, //
'9260'=>12, //
'93'=>13, // Fondations
'99'=>13, // Autre PM de droit privé
'99'=>13, // Autre PM de droit privé
);
/* Points par age : 1=>xx : 1ère année, 2=>yy : 2ème année */
/* Points par age : 1=>xx : 1ère année, 2=>yy : 2ème année */
private $tabPtAge=array(1=>9,
2=>5,
3=>4,
@ -1013,7 +1019,6 @@ class MSolvabilite {
);
function __construct($siren, $naf='', $trancheEff='', $effectifReel='', $depSiege_CodePosSiege='', $fj='', $capital='', $capitalDev='', $dateCreaEn='', $dateCreaSiege='', $singularite='', $recme=0) {
//$this->siren=$siren;
$this->naf=$naf;
$this->trEff=$trancheEff;
@ -1064,7 +1069,7 @@ class MSolvabilite {
if (strlen($this->naf)==4)
if (isset($this->tabPtNaf[$this->naf]))
$nbPoints=$this->tabPtNaf[$this->naf];
else
else
$nbPoints=5;
elseif (strlen($this->naf)==5) {
$iCotation=new ICotation(array());
@ -1074,13 +1079,13 @@ class MSolvabilite {
$naf4=$iCotation->tabNaf21[$this->naf];
if (isset($this->tabPtNaf[$naf4]))
$nbPoints=$this->tabPtNaf[$naf4];
else
else
$nbPoints=5;
}
else
else
$nbPoints=5;
}
else
else
$nbPoints=5;
return $nbPoints;
@ -1091,8 +1096,7 @@ class MSolvabilite {
$naf5=$this->naf;
if (strlen($naf5)==5) {
$iCotation=new ICotation(array());
//die($naf5.'='.$iCotation->tabNaf21[''.$naf5]);
$iCotation = new ICotation(array());
return $iCotation->tabNaf21[$naf5];
}
return $naf5;
@ -1110,7 +1114,7 @@ class MSolvabilite {
function getPtGeographie() {
//print_r($this->tabPtDep);
//die ("Département ='".$this->dep."'");
//die ("Département ='".$this->dep."'");
return $this->tabPtDep[$this->dep];
}
@ -1164,7 +1168,7 @@ class MSolvabilite {
case 2: $pt=1; break;
case 1: $pt=2; break;
default: $pt=3; break;
}
}
return $pt;
}
@ -1176,14 +1180,14 @@ class MSolvabilite {
}
function getSolvabilite($anneeCalcul=0) {
return ( $this->getPtActivite() + $this->getPtAge($anneeCalcul) + $this->getPtCapital() + $this->getPtEffectif() +
return ( $this->getPtActivite() + $this->getPtAge($anneeCalcul) + $this->getPtCapital() + $this->getPtEffectif() +
$this->getPtFormeJuridique() + $this->getPtGeographie() + $this->getPtSingularite() + $this->getPtRecme() ) / 4.2;//3.9;
}
/** Indique si une catégorie juridique et un NAF sont soumis à publication
/** Indique si une catégorie juridique et un NAF sont soumis à publication
**
** @param integer $cj Catégorie juridique sur 4 chiffres
** @param string $naf APE sur 4 ou 5 positions (NAF rév 1 ou 2)
** @param integer $cj Catégorie juridique sur 4 chiffres
** @param string $naf APE sur 4 ou 5 positions (NAF rév 1 ou 2)
** @return bool
**/
function doitPublier($cj, $naf) {
@ -1191,16 +1195,16 @@ class MSolvabilite {
$cj4=$cj*1;
$publie=false;
switch ($cj2) {
case 53: // Société en Commandite Simple (sauf 5306, 5307)
case 53: // Société en Commandite Simple (sauf 5306, 5307)
if ($cj4==5306 || $cj4==5307)
$publie=false;
else
$publie=true;
break;
case 54: // SARL
case 55: // SA à CA
case 56: // SA à Directoire
case 57: // SA par Actions simplifiéees
case 55: // SA à CA
case 56: // SA à Directoire
case 57: // SA par Actions simplifiéees
$publie=true;
break;
}
@ -1208,35 +1212,35 @@ class MSolvabilite {
switch ($naf) {
case '651A': // Banque centrale
case '6411Z':
case '651C': // Banques
case '651C': // Banques
case '6419Z':
case '651D': // Banques mutualistes
case '651D': // Banques mutualistes
case '6419Z':
case '651F': // Intermédiations monétaires n.c.a.
case '651F': // Intermédiations monétaires n.c.a.
case '6419Z':
case '672Z': // Auxiliaires d'assurance
case '672Z': // Auxiliaires d'assurance
case '6621Z':
case '6622Z':
case '6629Z':
case '660E': // Assurance dommages
case '660E': // Assurance dommages
case '6512Z':
case '660F': // Réassurance
case '660F': // Réassurance
case '6520Z':
case '660C': // Caisses de retraite
case '660C': // Caisses de retraite
case '6530Z':
case '660G': // Assurance relevant du code de la mutualité
case '660G': // Assurance relevant du code de la mutualité
case '6512Z':
case '753A': // Activités générales de sécurité sociale
case '753A': // Activités générales de sécurité sociale
case '8430A':
case '753B': // Gestion des retraites complémentaires
case '753B': // Gestion des retraites complémentaires
case '8430B':
case '753C': // Distribution sociale de revenus
case '652E': // Organismes de placement en valeurs mobilières
case '753C': // Distribution sociale de revenus
case '652E': // Organismes de placement en valeurs mobilières
case '6420Z':
case '6430Z':
case '671A': // Administration de marchés financiers
case '671A': // Administration de marchés financiers
case '6611Z':
case '671C': // Gestion de portefeuilles
case '671C': // Gestion de portefeuilles
case '6612Z':
case '6630Z':
$publie=false;
@ -1246,5 +1250,4 @@ class MSolvabilite {
return $publie;
}
}
?>
?>

File diff suppressed because it is too large Load Diff

View File

@ -9,12 +9,6 @@ if (defined('LOCAL') == false) {
define( 'LOCAL', 0);
}
if (LOCAL) {
require_once('../sphinx/api/sphinxapi.php');
} else {
include_once(INCLUDE_PATH.'sphinx/sphinxapi.php');
}
// --------------------------------------------------------------------------- //
// Nouvelle sequence
// --------------------------------------------------------------------------- //
@ -23,7 +17,7 @@ function nouvelleSequence(&$criteres)
if (LOCAL == true) {
$crit2seq = file('crit2seq.prn');
} else {
$crit2seq = file(INCLUDE_PATH.'sphinx/crit2seq.prn');
$crit2seq = file(realpath(dirname(__FILE__)).'/crit2seq.prn');
}
foreach ($crit2seq as $ligne) {
if (($pos = strpos($ligne, ';')) != false) {

View File

@ -6,7 +6,7 @@ define('DEBUG', 1);
define('LOCAL', 0);
define('NBREP', 25);
include_once(realpath(dirname(__FILE__)).'/config.php');
include_once('/var/www/includes/config.php');
require_once('rechercheFonc.php');
$vue = $_GET['vue'];

View File

@ -0,0 +1,260 @@
<?php
require_once 'framework/common/strings.php';
require_once realpath(dirname(__FILE__)).'/sphinxapi2.php';
function search2($index, $findMe, $tabFiltres=array(), $deb=0, $nbRep=20, $max=200, $any=false) {
$deb=$deb*1;
$nbRep=$nbRep*1;
$max=$max*1;
debugLog('I',"Search Sphinx dans $index de $findMe ($deb, $nbRep, $max) avec ".implode(',',$tabFiltres),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$iDb=new WDB();
//$any = false; // si false $index='xxx'
$cl = new SphinxClient2();
if ($index == 'histo'){
$cl->SetServer (SPHINX_HISTO_HOST, SPHINX_HISTO_PORT);
} else {
$cl->SetServer (SPHINX_HOST, SPHINX_PORT);
}
$cl->SetConnectTimeout ( 1 );
$cl->SetLimits ($deb, $nbRep, $max);//0, $nbRep*10);
//$cl->SetSortMode(SPH_SORT_ATTR_DESC, 'actif');//siege');
if (substr($index,0,4)=='etab')
$cl->SetSortMode(SPH_SORT_EXTENDED, 'rang DESC, actif DESC, siege DESC');//, nic DESC
//$cl->SetWeights ( array ( 100, 1 ) );
//$cl->SetMatchMode ( $any ? SPH_MATCH_ANY : SPH_MATCH_ALL );
$cl->SetMatchMode (SPH_MATCH_EXTENDED);
foreach ($tabFiltres as $nomFiltre => $valFiltre)
$cl->SetFilter($nomFiltre, array(0=>$valFiltre));
$cl->SetRankingMode ( SPH_RANK_PROXIMITY_BM25 );
//$cl->SetArrayResult ( true );
$res = $cl->Query ( $findMe, $index );
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug", print_r($res,true)) ;
if ($res===false) {
debugLog('I',"Search Sphinx : Pas de réponse pour $findMe avec ".implode(',',$tabFiltres).' ('.$cl->GetLastError() .')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array( 'results'=>false,
'nbRet'=>0,
'nbTot'=>0,
'error'=>$cl->GetLastError(),
'warning'=>$cl->GetLastWarning(),
'duration'=>$res[time]);//return false;
} else { // Le moteur est op<6F>rationel
if ( $cl->GetLastWarning() ) {
debugLog('I',"Search Sphinx : Warning pour $findMe - ".$cl->GetLastWarning(),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
print "WARNING: " . $cl->GetLastWarning() . "\n\n";
}
/* print "Query '$findMe' retrieved $res[total] of $res[total_found] matches in $res[time] sec.\n";
print "Query stats :\n";
if ( is_array($res["words"]) )
foreach ( $res["words"] as $word => $info )
print " - '$word' found $info[hits] times in $info[docs] documents\n";
print "\n";*/
debugLog('I',"'Search Sphinx dans $index de $findMe (Filtre=".implode(',',$tabFiltres)."), Deb=$deb, nbRep=$nbRep, max=$max, any=$any",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
// debugLog('I',"Search Sphinx dans $index ". print_r($tabFiltres, true));
$tabRet=array();
if ( @is_array($res['matches'])) { // il y a des donn<6E>es <20> renvoyer
if (substr($index,0,4)=='etab') { // Recherche par <20>tab
foreach ( $res['matches'] as $doc => $docinfo ) { // On balaye chaque ligne
$listeEtab=$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",
"id=$doc LIMIT 0,1", true);
$etab=$listeEtab[0];
$tabRet[]=array( 'Localisation'=>$etab['Loc'],
'id'=>$doc,
'Pertinence'=>$docinfo['weight'],
'Siret'=>$etab['siret'],
'Siege'=>$etab['siege'],
'Nom'=>$etab['raisonSociale'],
'Sigle'=>$etab['sigle'],
'Enseigne'=>$etab['enseigne'],
'Adresse'=>trim($etab['adr_num'] .' '.
$etab['adr_btq'] .' '.
$etab['adr_typeVoie'] .' '.
$etab['adr_libVoie'] .' '.
$etab['adr_comp']),
'CP'=>$etab['adr_cp'],
'Ville'=>$etab['adr_ville'],
'Tel'=>$etab['tel'],
'Fax'=>$etab['fax'],
'FJ'=>$etab['cj'],
'Siren'=>$etab['siren'],
'Nic'=>$etab['nic'],
'Actif'=>$etab['actif'],
'NafEtab'=>$etab['ape_etab'], // Etablissement
//'NafEtabLib'=>$etab['LibNafEt'],
'NafEnt'=>$etab['ape_entrep'], // Entreprise
//'NafEntLib'=>$etab['LibNafEt'],
);
}
} elseif ($index=='histo') {
foreach ( $res['matches'] as $doc => $docinfo ) {
$listeEtab=$iDb->select('histobodacc.bodacc_ocr',
"'Histo' as Loc, id, nomFichier, annee1, bod, texte",
"id=$doc");
$etab=$listeEtab[0];
$tabRet[]=array( 'Localisation'=>$etab['Loc'],
'id'=>$doc,
'Pertinence'=>$docinfo['weight'],
'Fichier'=>$etab['nomFichier'],
'Annee'=>$etab['annee1'],
'Code'=>$etab['bod'],
'Texte'=>$etab['texte'],
);
}
} else { // Recherche par dirigeant
$findMe4=trim(substr($findMe,0,4));
foreach ( $res['matches'] as $doc => $docinfo ) { // On balaye chaque ligne dirigeant
$listeEtab=$iDb->select('rncs_dirigeants d, 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, /*d.rs,*/ d.nom, d.prenom, /*d.nomUsage,*/ d.naissance_date, d.naissance_lieu, ".
"d.fonction_lib, /*d.depart,*/ e.actif",
"d.id=$doc AND d.siren=e.siren AND e.siege=1 ORDER BY e.actif DESC LIMIT 0,1", true);
//die(print_r($listeEtab));
$etab=$listeEtab[0];
$tabRet[]=array( 'Localisation'=>$etab['Loc'],
'id'=>$doc,
'Pertinence'=>$docinfo['weight'],
'Siret'=>$etab['siret'],
'Siege'=>$etab['siege'],
'Nom'=>$etab['raisonSociale'],
'Sigle'=>$etab['sigle'],
'Enseigne'=>$etab['enseigne'],
'Adresse'=>trim($etab['adr_num'] .' '.
$etab['adr_btq'] .' '.
$etab['adr_typeVoie'] .' '.
$etab['adr_libVoie'] .' '.
$etab['adr_comp']),
'CP'=>$etab['adr_cp'],
'Ville'=>$etab['adr_ville'],
'Tel'=>$etab['tel'],
'Fax'=>$etab['fax'],
'FJ'=>$etab['cj'],
'Siren'=>$etab['siren'],
'Nic'=>$etab['nic'],
'Actif'=>$etab['actif'],
'NafEtab'=>$etab['ape_etab'], // Etablissement
'NafEnt'=>$etab['ape_entrep'], // Entreprise
'rs'=>'',//$etab['rs'],
'nomD'=>$etab['nom'],
'prenom'=>$etab['prenom'],
'nomUsage'=>'',//$etab['nomUsage'],
'dateEffet'=>'',//$etab['dateEffet'],
'fonction'=>$etab['fonction_lib'],
'depart'=>0,//$etab['depart'],
);
}
}
}
}
debugLog('I','Search Sphinx : Retourne '. $res[total].'/'. $res[total_found] .' en '.$res[time] .'secondes',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array( 'results'=>$tabRet,
'nbRet'=>$res[total],
'nbTot'=>$res[total_found],
'duration'=>$res[time],
'words'=>$res['words'],
);
}
/*
<nafen>7020z<
*/
function comptage($findMe, $tabFiltres=array(), $deb=0, $nbRep=20, $max=1000, $any=false, $fichierCsv=false) {
$deb=$deb*1;
$nbRep=$nbRep*1;
$max=$max*1;
$index='comptage';
$iDb=new WDB();
/*
$cl = new SphinxClient ();
$cl->SetServer ( $host, $port );
$cl->SetWeights ( array ( 100, 1 ) );
$cl->SetMatchMode ( $mode );
if ( count($filtervals) ) $cl->SetFilter ( $filter, $filtervals );
if ( $groupby ) $cl->SetGroupBy ( $groupby, SPH_GROUPBY_ATTR, $groupsort );
if ( $sortby ) $cl->SetSortMode ( SPH_SORT_EXTENDED, $sortby );
if ( $sortexpr ) $cl->SetSortMode ( SPH_SORT_EXPR, $sortexpr );
if ( $distinct ) $cl->SetGroupDistinct ( $distinct );
if ( $limit ) $cl->SetLimits ( 0, $limit, ( $limit>1000 ) ? $limit : 1000 );
$res = $cl->Query ( $q, $index );
*/
$cl = new SphinxClient ();
$cl->SetServer ('192.168.3.24', 3312);
$cl->SetConnectTimeout(1);
$cl->SetLimits ($deb, $nbRep, $max);
// if (substr($index,0,4)=='etab')
// $cl->SetSortMode(SPH_SORT_EXTENDED, 'rang DESC, actif DESC, siege DESC');//, nic DESC
//$cl->SetWeights ( array ( 100, 1 ) );
//$cl->SetMatchMode ( $any ? SPH_MATCH_ANY : SPH_MATCH_ALL );
$cl->SetMatchMode (SPH_MATCH_EXTENDED);
foreach ($tabFiltres as $nomFiltre => $valFiltre)
$cl->SetFilter($nomFiltre, $valFiltre);
/*8.4.3. SetFilterRange
Prototype: function SetFilterRange ( $attribute, $min, $max, $exclude=false )
Adds new integer range filter. */
$cl->SetRankingMode ( SPH_RANK_PROXIMITY_BM25 );
//$cl->SetArrayResult ( true );
$res = $cl->Query ( $findMe, $index );
if ($res===false) {
// debugLog('I',"Search Sphinx : Pas de r<>ponse pour $findMe avec ".implode(',',$tabFiltres).' ('.$cl->GetLastError() .')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array( 'results'=>false,
'nbRet'=>0,
'nbTot'=>0,
'error'=>$cl->GetLastError(),
'warning'=>$cl->GetLastWarning(),
'durationCpt'=>$res[time],
'durationExp'=>0);//return false;);//return false;
} else { // Le moteur est op<6F>rationel
$tdeb=microtime(1);
if ( $cl->GetLastWarning() ) {
//debugLog('I',"Search Sphinx : Warning pour $findMe - ".$cl->GetLastWarning(),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
print "WARNING: " . $cl->GetLastWarning() . "\n\n";
}
$tabRet=array();
if ( @is_array($res['matches'])) { // il y a des donn<6E>es <20> renvoyer
$tabIdDoc=array();
foreach ( $res['matches'] as $doc => $docinfo ) //{ // On balaye chaque ligne
$tabIdDoc[]=$doc;
$strDoc='('.implode(',',$tabIdDoc).')';
$tabTmp=$iDb->select( 'etablissements_act',
'id,ape_etab,ape_entrep,source,siren,nic,actif,siege,adr_cp,adr_dep,adr_com,tel,fax,cj,capital,age_entrep,age_etab,tca,tcaexp,teff_entrep,teff_etab,rang,dateCrea_etab,eff_entrep,eff_etab,nbEtab,bilType,bilAnnee,bilTca,bilCA,bilCAexp,bilRN',
"id IN $strDoc", false, MYSQL_ASSOC);
if ($fichierCsv) {
$fp=fopen($fichierCsv, 'w');
foreach ($tabTmp as $iTmp=>$tmp) {
$tabRet[]=$tmp;
fwrite($fp, implode("\t", $tmp).EOL);
}
fclose($fp);
}
}
}
return array( 'results'=>$tabRet,
'nbRet'=>$res[total],
'nbTot'=>$res[total_found],
'durationCpt'=>$res[time],
'durationExp'=>round(microtime(1)-$tdeb,3),
'error'=>$cl->GetLastError(),
'warning'=>$cl->GetLastWarning(),
'words'=>$res['words'],
);
}
?>

View File

@ -103,45 +103,65 @@ function filtreAdresse(&$formR, &$criteres, &$sphinx)
}
$adressePostale = $formR['cpVille'];
if (preg_match('/[0-9]{5}/',
$adressePostale, $codePostaux) > 0) {
if (strstr($criteres, 'L') != false) {
//If we have a CEDEX
if (preg_match('/^[0-9]{5}\s(.*)\sCEDEX/i', $adressePostale, $codePostaux)) {
$formR['departement'] = '';
$formR['ville'] = $codePostaux[1];
}
//If we have a Code Postal
elseif (preg_match('/[0-9]{5}/', $adressePostale, $codePostaux) > 0)
{
if (strstr($criteres, 'L') != false)
{
debugln("filtre adr_cp='$codePostaux[0]'");
$sphinx->SetFilter('adr_cp', $codePostaux);
} else if (strstr($criteres, 'D') != false) {
}
else if (strstr($criteres, 'D') != false)
{
$departement = substr($codePostaux[0], 0, 2);
if ($departement == 97 ||
$departement == 98) {
if ($departement == 97 || $departement == 98)
{
$departement = substr($codePostaux[0], 0, 3);
}
debugln("filtre adr_dep='$departement'");
$sphinx->SetFilter('adr_dep', array($departement));
}
$formR['ville'] = str_replace($codePostaux[0], '',
$adressePostale);
$formR['ville'] = str_replace($codePostaux[0], '', $adressePostale);
$dep = intval(substr($codePostaux[0], 0, 2));
//Monaco
if ($codePostaux[0] == '98000') {
$formR['departement'] = 99;
$formR['localite'] = 0;
} else if ($dep == 97 ||
$dep == 98) {
//DOM-TOM
} else if ($dep == 97 || $dep == 98) {
$formR['departement'] = substr($codePostaux[0], 0, 3);
$formR['localite'] = substr($codePostaux[0], 3, 2);
} else {
$formR['departement'] = substr($codePostaux[0], 0, 2);
$formR['localite'] = substr($codePostaux[0], 2, 3);
}
} else if (preg_match('/[0-9]{3}/',
$adressePostale, $departements) > 0 ||
preg_match('/[0-9]{2}/',
$adressePostale, $departements) > 0) {
if (strstr($criteres, 'D') != false) {
debugln("filtre adr_dep='$departements[0]'");
$sphinx->SetFilter('adr_dep', $departements);
}
//If we have a Departement
else if (preg_match('/(2[A|B]|[0-9]{2})/', $adressePostale, $departements)
|| preg_match('/([0-9]{3})/', $adressePostale, $departements))
{
$departement = $departements[1];
if ($departement == '2A'){
$departement = 201;
}
$formR['ville'] = str_replace($departements[0], '',
$adressePostale);
$formR['departement'] = $departements[0];
if ($departement == '2B' ) {
$departement = 202;
}
if (strstr($criteres, 'D') != false) {
debugln("filtre adr_dep='$departement'");
$sphinx->SetFilter('adr_dep', array($departement));
}
$formR['ville'] = str_replace($departement, '', $adressePostale);
$formR['departement'] = $departement;
} else {
$formR['ville'] = $adressePostale;
}
@ -249,6 +269,21 @@ function filtreActif(&$formR, &$criteres, &$sphinx)
}
}
//Filtre sur les sieges
function filtreSiege(&$formR, &$criteres, &$sphinx)
{
if ( array_key_exists('siege', $formR) && $formR['siege']==1 ) {
$sphinx->setFilter('siege', array(1));
}
}
//Filtre forme juridique
function filtreFormeJuridique(&$formR, &$criteres, &$sphinx)
{
if ( array_key_exists('fj', $formR) && $formR['fj']!==null ) {
$sphinx->setFilter('cj', array(intval($formR['fj'])));
}
}
// --------------------------------------------------------------------------- //
// Premiere requete Sphinx
@ -259,13 +294,15 @@ function filtreActif(&$formR, &$criteres, &$sphinx)
function premiereRequeteSphinx(&$sphinx, &$index, &$formR, &$criteres,
&$criteresSphinx, &$form2crit, $sirenValide)
{
filtreSiege($formR, $criteres, $sphinx);
filtreActif($formR, $criteres, $sphinx);
filtreFormeJuridique($formR, $criteres, $sphinx);
filtreSiret ($formR, $criteres, $sphinx);
filtreAdresse($formR, $criteres, $sphinx);
filtreNumero ($formR, $criteres, $sphinx);
if ($sirenValide == true) {
$sphinx->SetFilter('sirenValide', array(1));
}
filtreActif($formR, $criteres, $sphinx);
$requete_sphinx = '';
foreach ($formR as $label => $valeur) {
@ -305,13 +342,15 @@ function requeteSphinx(&$sphinx, &$index, &$formR, &$criteres,
&$criteresSphinx, &$form2crit, $quorum_actif, $quorum,
$sirenValide)
{
filtreSiege($formR, $criteres, $sphinx);
filtreActif($formR, $criteres, $sphinx);
filtreFormeJuridique($formR, $criteres, $sphinx);
filtreSiret ($formR, $criteres, $sphinx);
filtreAdresse($formR, $criteres, $sphinx);
filtreNumero ($formR, $criteres, $sphinx);
if ($sirenValide == true) {
$sphinx->SetFilter('sirenValide', array(1));
}
filtreActif($formR, $criteres, $sphinx);
if ($quorum_actif == true) {
foreach ($quorum as $label => $valeur) {
@ -333,9 +372,7 @@ function requeteSphinx(&$sphinx, &$index, &$formR, &$criteres,
}
debugln("requete='$requete_sphinx'");
if (substr($index, 0, 3) == 'ent') {
$sphinx->
SetSortMode(SPH_SORT_EXTENDED,
'sirenValide DESC, rang DESC, actif DESC, siege DESC');
$sphinx->SetSortMode(SPH_SORT_EXTENDED,'sirenValide DESC, rang DESC, actif DESC, siege DESC');
} else if (substr($index, 0, 3) == 'dir') {
$sphinx->SetSortMode(SPH_SORT_EXTENDED, 'actif DESC');
}
@ -616,7 +653,7 @@ function clientSphinx(&$formR)
require_once realpath(dirname(__FILE__)).'/sphinxapi.php';
break;
case 2:
require_once 'sphinxapi/sphinxapi-2.0.2.php';
require_once 'sphinxapi/sphinxapi-2.0.8.php';
break;
}
@ -706,108 +743,76 @@ function reponse(&$resSphinx, &$resDB, $criteres, $time, $formR, $form2crit,
//print 'Pertinence generale: '.$pertinence_generale.'<br/>';
}
$decalage = false;
for ($i = 0, $k = 0; $k < $resDB->num_rows || $decalage == true; ++$i) {
if ($decalage == false) {
if ( is_object($resDB) ) {
$resDB->data_seek(0);
for ($i = 0; $i < $resDB->num_rows; $i++) {
$ligne = $resDB->fetch_assoc();
++$k;
} else {
$decalage = false;
}
$ret['reponses'][$i]['id'] = $ligne['id'];
$pertinence = $pertinence_generale;
if ($formR['type'] == 'ent') {
if (empty($formR['raisonSociale']) == false) {
$pertinence *= compare($formR['raisonSociale'], $ligne['raisonSociale']);
}
if (empty($formR['voie']) == false) {
$pertinence *= compare($formR['voie'], $ligne['adr_typeVoie'].' '.$ligne['adr_libVoie']);
}
if (empty($formR['ville']) == false) {
$pertinence *= compare($formR['ville'], $ligne['adr_ville']);
}
}
$ret['reponses'][$i]['Pertinence'] = $pertinence;
$ret['reponses'][$i]['Siret'] = $ligne['siret'];
$ret['reponses'][$i]['Siren'] = $ligne['siren'];
$ret['reponses'][$i]['Nic'] = $ligne['nic'];
$ret['reponses'][$i]['Siege'] = $ligne['siege'];
$ret['reponses'][$i]['Nom'] = $ligne['raisonSociale'];
$ret['reponses'][$i]['Nom2'] = '';
$ret['reponses'][$i]['Sigle'] = $ligne['sigle'];
$ret['reponses'][$i]['Enseigne'] = $ligne['enseigne'];
$ret['reponses'][$i]['Adresse'] =
$ligne['adr_num'].' '.
$ligne['adr_typeVoie'].' '.
$ligne['adr_libVoie'];
$ret['reponses'][$i]['Adresse2'] = $ligne['adr_comp'];
$ret['reponses'][$i]['CP'] = $ligne['adr_cp'];
$ret['reponses'][$i]['Ville'] = $ligne['adr_ville'];
$ret['reponses'][$i]['Tel'] = $ligne['tel'];
$ret['reponses'][$i]['Fax'] = $ligne['fax'];
$ret['reponses'][$i]['FJ'] = $ligne['cj'];
$ret['reponses'][$i]['Actif'] = $ligne['actif'];
$ret['reponses'][$i]['NafEtab'] = $ligne['ape_etab'];
$ret['reponses'][$i]['NafEnt'] = $ligne['ape_entrep'];
//file_put_contents('test.log', print_r($ligne,1), FILE_APPEND);
if ($formR['type']=='dir') {
// Dirigeant
$ret['reponses'][$i]['DirRs'] = '';
$ret['reponses'][$i]['DirNom'] = $ligneDir[$i]['nom'];
$ret['reponses'][$i]['DirPrenom'] = $ligneDir[$i]['prenom'];
$ret['reponses'][$i]['DirNomUsage'] = $ligneDir[$i]['naissance_nom'];
$ret['reponses'][$i]['DirDateNaiss'] = $ligneDir[$i]['naissance_date'];
$ret['reponses'][$i]['DirLieuNaiss'] = $ligneDir[$i]['naissance_lieu'];
$ret['reponses'][$i]['DirDateEffet'] = '';
$ret['reponses'][$i]['DirFonction'] = $ligneDir[$i]['fonction_lib'];
$ret['reponses'][$i]['DirDepart'] = '';
} elseif ($formR['type']=='act') {
// Actionnaire
$ret['reponses'][$i]['ActNomRs'] = $ligneDir[$i]['ActNomRs'];
$ret['reponses'][$i]['ActPays'] = $ligneDir[$i]['ActPays'];
$ret['reponses'][$i]['ActDateLien'] = $ligneDir[$i]['ActDateLien'];
$ret['reponses'][$i]['ActActif'] = $ligneDir[$i]['ActActif'];
$ret['reponses'][$i]['ActPmin'] = $ligneDir[$i]['ActPmin'];
}
}
if ($formR['type']=='dir') {
for (; $i < count($ligneDir); ++$i) {
debugln($ligneDir[$i]['id'].' ==> '.$i);
for ($j = $i - 1; $j >= 0; --$j) {
if ($ret['reponses'][$j]['id'] == $ligneDir[$i]['id']) {
$ret['reponses'][$i] = $ret['reponses'][$j];
$ret['reponses'][$i]['DirRs'] = '';
$ret['reponses'][$i]['DirNom'] = $ligneDir[$i]['nom'];
$ret['reponses'][$i]['DirPrenom'] = $ligneDir[$i]['prenom'];
$ret['reponses'][$i]['DirNomUsage'] = $ligneDir[$i]['naissance_nom'];
$ret['reponses'][$i]['DirDateNaiss'] = $ligneDir[$i]['naissance_date'];
$ret['reponses'][$i]['DirLieuNaiss'] = $ligneDir[$i]['naissance_lieu'];
$ret['reponses'][$i]['DirDateEffet'] = '';
$ret['reponses'][$i]['DirFonction'] = $ligneDir[$i]['fonction_lib'];
$ret['reponses'][$i]['DirDepart'] = '';
break;
$ret['reponses'][$i]['id'] = $ligne['id'];
$pertinence = $pertinence_generale;
if ($formR['type'] == 'ent') {
if (empty($formR['raisonSociale']) == false) {
$pertinence *= compare($formR['raisonSociale'], $ligne['raisonSociale']);
}
if (empty($formR['voie']) == false) {
$pertinence *= compare($formR['voie'], $ligne['adr_typeVoie'].' '.$ligne['adr_libVoie']);
}
if (empty($formR['ville']) == false) {
$pertinence *= compare($formR['ville'], $ligne['adr_ville']);
}
}
if ($j < 0) debugln('erreur '.$ligneDir[$i]['id'].' non trouve');
}
} elseif ($formR['type']=='act') {
for (; $i < count($ligneDir); ++$i) {
debugln($ligneDir[$i]['id'].' ==> '.$i);
for ($j = $i - 1; $j >= 0; --$j) {
if ($ret['reponses'][$j]['id'] == $ligneDir[$i]['id']) {
$ret['reponses'][$i] = $ret['reponses'][$j];
$ret['reponses'][$i]['ActNomRs'] = $ligneDir[$i]['ActNomRs'];
$ret['reponses'][$i]['ActPays'] = $ligneDir[$i]['ActPays'];
$ret['reponses'][$i]['ActDateLien'] = $ligneDir[$i]['ActDateLien'];
$ret['reponses'][$i]['ActActif'] = $ligneDir[$i]['ActActif'];
$ret['reponses'][$i]['ActPmin'] = $ligneDir[$i]['ActPmin'];
break;
}
$ret['reponses'][$i]['Pertinence'] = $pertinence;
$ret['reponses'][$i]['Siret'] = $ligne['siret'];
$ret['reponses'][$i]['Siren'] = $ligne['siren'];
$ret['reponses'][$i]['Nic'] = $ligne['nic'];
$ret['reponses'][$i]['Siege'] = $ligne['siege'];
$ret['reponses'][$i]['Nom'] = $ligne['raisonSociale'];
$ret['reponses'][$i]['Nom2'] = '';
$ret['reponses'][$i]['Sigle'] = $ligne['sigle'];
$ret['reponses'][$i]['Enseigne'] = $ligne['enseigne'];
$ret['reponses'][$i]['Adresse'] =
$ligne['adr_num'].' '.
$ligne['adr_typeVoie'].' '.
$ligne['adr_libVoie'];
$ret['reponses'][$i]['Adresse2'] = $ligne['adr_comp'];
$ret['reponses'][$i]['CP'] = $ligne['adr_cp'];
$ret['reponses'][$i]['Ville'] = $ligne['adr_ville'];
$ret['reponses'][$i]['Pays'] = $ligne['pays'];
$ret['reponses'][$i]['Tel'] = $ligne['tel'];
$ret['reponses'][$i]['Fax'] = $ligne['fax'];
$ret['reponses'][$i]['FJ'] = $ligne['cj'];
$ret['reponses'][$i]['Actif'] = $ligne['actif'];
$ret['reponses'][$i]['NafEtab'] = $ligne['ape_etab'];
$ret['reponses'][$i]['NafEnt'] = $ligne['ape_entrep'];
if ($formR['type']=='dir') {
// Dirigeant
$ret['reponses'][$i]['DirRs'] = '';
$ret['reponses'][$i]['DirNom'] = $ligneDir[$i]['nom'];
$ret['reponses'][$i]['DirPrenom'] = $ligneDir[$i]['prenom'];
$ret['reponses'][$i]['DirNomUsage'] = $ligneDir[$i]['naissance_nom'];
$ret['reponses'][$i]['DirDateNaiss'] = $ligneDir[$i]['naissance_date'];
$ret['reponses'][$i]['DirLieuNaiss'] = $ligneDir[$i]['naissance_lieu'];
$ret['reponses'][$i]['DirDateEffet'] = '';
$ret['reponses'][$i]['DirFonction'] = $ligneDir[$i]['fonction_lib'];
$ret['reponses'][$i]['DirDepart'] = '';
} elseif ($formR['type']=='act') {
// Actionnaire
$ret['reponses'][$i]['ActNomRs'] = $ligne['ActRaisonSociale'];
$ret['reponses'][$i]['ActPays'] = $ligne['ActPays'];
$ret['reponses'][$i]['ActDateLien'] = $ligne['dateLien'];
$ret['reponses'][$i]['ActActif'] = $ligne['ActActif'];
$ret['reponses'][$i]['ActPmin'] = $ligne['ActPmin'];
}
if ($j < 0) debugln('erreur '.$ligneDir[$i]['id'].' non trouve');
}
}
//file_put_contents('test.log', print_r($ret,1), FILE_APPEND);
if ($formR['type'] == 'ent') {
$ret['pass'] = $resSphinx['pass'];
}
@ -928,43 +933,66 @@ function rechercheDir(&$formR, $deb, $nbRep, $max)
'erreur' => 'Aucun r&eacute;sultat');
}
/*
file_put_contents('test.log', print_r($formR,1));
file_put_contents('test.log', $sphinx->GetLastError()."\n", FILE_APPEND);
file_put_contents('test.log', 'TEST='.print_r($resSphinx,1), FILE_APPEND);
*/
$requeteDB =
"SELECT e.id, d.nom, d.prenom, d.naissance_nom, d.naissance_date, d.naissance_lieu, l.libelle AS fonction_lib".
" FROM dirigeants d, etablissements e, bodacc_fonctions l".
" WHERE d.fonction_code=l.codeFct AND d.id IN (".$resSphinx['matches'][0]['id'];
for ($i = 1; $i + $deb < $resSphinx['total'] && $i < $nbRep; ++$i) {
$requeteDB .= ",".$resSphinx['matches'][$i]['id'];
"SELECT
d.nom,
d.prenom,
d.naissance_nom,
d.naissance_date,
d.naissance_lieu,
l.libelle AS fonction_lib,
e.id, CONCAT(e.siren,e.nic) AS siret,
e.siren,
e.nic,
e.siege,
e.raisonSociale,
e.sigle,
e.enseigne,
e.adr_num,
e.adr_typeVoie,
e.adr_libVoie,
e.adr_comp,
e.adr_cp,
e.adr_ville,
e.tel,
e.fax,
e.cj,
e.actif,
e.ape_etab,
e.ape_entrep
FROM dirigeants d, etablissements e, bodacc_fonctions l
WHERE
d.fonction_code=l.codeFct
AND d.id IN (";
$i = 0;
foreach ($resSphinx['matches'] as $id => $element) {
if($i > 0) $requeteDB.= ',';
$requeteDB.= $element['id'];
$i++;
}
$requeteDB .= ") AND e.id = (";
$requeteDB .= "SELECT tmp.id FROM etablissements tmp ";
$requeteDB .= "WHERE tmp.siren=d.siren ORDER by tmp.actif DESC, tmp.siege DESC LIMIT 1";
$requeteDB .= ")";
//file_put_contents('test.log', $requeteDB);
debugln();
debugln("requeteDB='$requeteDB'");
$resDB = $gDatabaseJO->query($requeteDB);
// Reponse
$ligneDir = array();
$ligne = $resDB->fetch_assoc();
$requeteDB = 'select id, CONCAT(siren,nic) AS siret, siren, nic, siege, '.
'raisonSociale, sigle, enseigne, adr_num, adr_typeVoie, adr_libVoie, '.
'adr_comp, adr_cp, adr_ville, tel, fax, cj, actif, ape_etab, '.
'ape_entrep from etablissements where id IN ('.$ligne['id'];
$ligneDir[0] = array(
'id' => $ligne['id'],
'nom' => $ligne['nom'],
'prenom' => $ligne['prenom'],
'fonction_lib' => $ligne['fonction_lib'],
'naissance_nom'=> $ligne['naissance_nom'],
'naissance_date'=> $ligne['naissance_date'],
'naissance_lieu'=> $ligne['naissance_lieu']
);
for ($i = 1; $i < $resDB->num_rows; ++$i) {
for ($i = 0; $i < $resDB->num_rows; $i++) {
$ligne = $resDB->fetch_assoc();
$requeteDB .= ','.$ligne['id'];
$nom = $ligne['nom'];
if ( $ligne['naissance_nom']!='' ) {
@ -980,10 +1008,9 @@ function rechercheDir(&$formR, $deb, $nbRep, $max)
'naissance_lieu'=> $ligne['naissance_lieu']
);
}
$requeteDB .= ') ORDER BY actif DESC, siege DESC';
debugln();
debugln("requeteDB='$requeteDB'");
$resDB = $gDatabaseJO->query($requeteDB);
return reponse($resSphinx, $resDB, $criteres, $total_time, $formR,
$form2crit, $deb, $ligneDir);
@ -1068,77 +1095,144 @@ function rechercheAct($formR, $deb, $nbRep, $max)
$pass = 0;
initSphinx($sphinx, $mode, $pass, $deb, $nbRep, $max);
$Criteres = array('Siren2' => 'siren',
'Req' => 'actNomRS',
'@Pays' => 'pays',
'PminNum' => 'pctMax'
$Criteres = array(
'Siren2' => 'siren',
'Req' => 'actNomRS',
'@Pays' => 'pays',
//'PDetention' => 'pctMax',
);
$form2crit = array('actNomRS' => 'N',
'pays' => 'P',
'pctMax' => 'M'
$form2crit = array(
'actNomRS' => 'N',
'pays' => 'P',
'pctMax' => 'M'
);
$Requete = constructRequete($formR, $Criteres);
if(!empty($formR['pctMin']))
$sphinx->SetFilterRange('PminNum', $formR['pctMin'], 99);
if(!empty($formR['pctMax']))
$sphinx->SetFilterRange('PminNum', $formR['pctMin'], 99);
if(!empty($formR['pctMin']) and !empty($formR['pctMax']))
$sphinx->SetFilterRange('PminNum', $formR['pctMix'], $formR['pctMax']);
if(!empty($formR['pctMin']))
$sphinx->SetFilterFloatRange('PDetention', $formR['pctMin'], 99);
if(!empty($formR['pctMax']))
$sphinx->SetFilterFloatRange('PDetention', $formR['pctMin'], 99);
if(!empty($formR['pctMin']) && !empty($formR['pctMax']))
$sphinx->SetFilterFloatRange('PDetention', $formR['pctMin'], $formR['pctMax']);
$sphinxreturn = $sphinx->Query($Requete, $index);
/*
file_put_contents('test.log', print_r($formR,1));
file_put_contents('test.log', $sphinx->GetLastError()."\n", FILE_APPEND);
file_put_contents('test.log', 'TEST='.print_r($sphinxreturn,1), FILE_APPEND);
*/
$criteres = 'NPM';
$requette = 'SELECT l.id AS lienId, l.actif AS lienActif, l.source, l.Pmin, l.PpPm, l.id2, '.
'l.Siren2, l.RaisonSociale, l.Pays, '.
'IF(l.dateUpdate>IF(l.dateInsert>l.dateLien,l.dateInsert,l.dateLien),l.dateUpdate,IF(l.dateInsert>l.dateLien,l.dateInsert,l.dateLien)) AS dateLien, '.
'e.id, siren ' .
'FROM liens l, etablissements e '.
'WHERE l.Siren1=e.siren AND e.siege=1 AND l.id IN(';
$i = 0;
//file_put_contents('test.log', print_r($sphinxreturn['matches'],1));
$requette = "
(SELECT
/*Liens*/
l.PDetention AS ActPmin,
l.MajMin,
l.dateEffetLien AS dateLien,
IF(l.dateUpdate>l.dateInsert,l.dateUpdate,l.dateInsert) AS date,
foreach($sphinxreturn['matches'] as $id => $element) {
if($i > 0) $requette.= ',';
/*Participation*/
CONCAT(e.siren, e.nic) AS siret,
par.siren,
e.nic,
e.siege,
par.RS AS raisonSociale,
/*sigle*/
/*enseigne*/
par.actif,
par.PpPm,
par.adresse_num AS adr_num,
par.adresse_codvoie AS adr_typeVoie,
par.adresse_libvoie AS adr_libVoie,
par.adresse_comp AS adr_comp,
par.adresse_cp AS adr_cp,
par.adresse_ville AS adr_ville,
p1.libPays AS pays,
par.tel,
par.fax,
/*Actionnaire*/
act.id AS ActId,
act.actif AS ActActif,
act.RS AS ActRaisonSociale,
p2.libPays AS ActPays
FROM liens2 l, liensRef par, liensRef act, tabPays p1, tabPays p2, etablissements e
WHERE
par.id = l.idPar
AND act.id = l.idAct
AND p1.codPays3 = par.adresse_pays
AND p2.codPays3 = act.adresse_pays
AND e.siren = par.siren
AND par.siren >1000
AND l.id
IN ( ";
$i = 0;
foreach ($sphinxreturn['matches'] as $id => $element) {
if($i > 0) $requette.= ',';
$requette.= $element['id'];
$i++;
}
$requette.= ') GROUP BY l.Siren1, l.id ORDER BY e.actif DESC, e.siege DESC, e.id ASC';
$requette.= " ) ) UNION
(SELECT
/*Liens*/
l.PDetention AS ActPmin,
l.MajMin,
l.dateEffetLien AS dateLien,
IF(l.dateUpdate>l.dateInsert,l.dateUpdate,l.dateInsert) AS date,
//file_put_contents('test.log', $requette."\n", FILE_APPEND);
/*Participation*/
CONCAT(e.siren, e.nic) AS siret,
par.siren,
e.nic,
e.siege,
par.RS AS raisonSociale,
/*sigle*/
/*enseigne*/
par.actif,
par.PpPm,
par.adresse_num AS adr_num,
par.adresse_codvoie AS adr_typeVoie,
par.adresse_libvoie AS adr_libVoie,
par.adresse_comp AS adr_comp,
par.adresse_cp AS adr_cp,
par.adresse_ville AS adr_ville,
p1.libPays AS pays,
par.tel,
par.fax,
$req = $gDatabaseJO->query($requette);
/*Actionnaire*/
act.id AS ActId,
act.actif AS ActActif,
act.RS AS ActRaisonSociale,
p2.libPays AS ActPays
$requette2 ='SELECT id, CONCAT(siren,nic) AS siret, siren, nic, siege, '.
'raisonSociale, sigle, enseigne, adr_num, adr_typeVoie, adr_libVoie, '.
'adr_comp, adr_cp, adr_ville, tel, fax, cj, actif, ape_etab, '.
'ape_entrep FROM etablissements WHERE id IN (';
FROM liens2 l, liensRef par, liensRef act, tabPays p1, tabPays p2, etablissements e
WHERE
par.id = l.idPar
AND act.id = l.idAct
AND p1.codPays3 = par.adresse_pays
AND p2.codPays3 = act.adresse_pays
AND e.source =6
AND e.source_id = l.idPar
AND l.id
IN ( ";
$ligneAct = array();
for($i = 0; $i < $req->num_rows; $i++) {
$ligne = $req->fetch_assoc();
//file_put_contents('test.log', print_r($ligne,1)."\n", FILE_APPEND);
$ligneAct[$i] = array(
'id' => $ligne['id'],
'ActNomRs' => $ligne['RaisonSociale'],
'ActPays' => $ligne['Pays'],
'ActDateLien'=>$ligne['dateLien'],
'ActActif' => $ligne['actif'],
'ActPmin' => $ligne['Pmin'],
);
if($i > 0) $requette2.= ',';
$requette2.= $ligne['id'];
$i = 0;
foreach ($sphinxreturn['matches'] as $id => $element) {
if($i > 0) $requette.= ',';
$requette.= $element['id'];
$i++;
}
$requette2.= ') ORDER BY actif DESC, siege DESC';
$requette.= " ) ) ORDER BY actif DESC, siege DESC, nic DESC";
//file_put_contents('test.log', $requette2."\n", FILE_APPEND);
$req = $gDatabaseJO->query($requette);
$req = $gDatabaseJO->query($requette2);
return reponse($sphinxreturn, $req, $criteres, $sphinxreturn['time'], $formR, $form2crit, $deb, $ligneAct);
return reponse($sphinxreturn, $req, $criteres, $sphinxreturn['time'], $formR, $form2crit, $deb, array());
}
// --------------------------------------------------------------------------- //
@ -1160,26 +1254,30 @@ function rechercheEnt(&$formR, $deb, $nbRep, $max, $sirenValide = false)
}
$criteresSphinx = array(
//'siret' => '@siren',
'raisonSociale' => '@nom',
//'numVoie' => '@adr_num',
//'voie' => '@(adr_typeVoie,adresse)',
'voie' => '@adresse',
//'cpVille' => '@(adr_dep,adr_cp,ville)',
'ville' => '@ville',
'telFax' => '@(tel,fax)',
'naf' => '@ape_etab');
//'siret' => '@siren',
'raisonSociale' => '@nom',
//'numVoie' => '@adr_num',
//'voie' => '@(adr_typeVoie,adresse)',
'voie' => '@adresse',
//'cpVille' => '@(adr_dep,adr_cp,ville)',
'ville' => '@ville',
'telFax' => '@(tel,fax)',
'naf' => '@ape_etab',
//'fj' => '@cj',
);
$form2crit = array('siret' => 'I',
'telFax' => 'T',
'raisonSociale' => 'S',
'enseigne' => 'E',
'prenom' => 'P',
'departement' => 'D',
'localite' => 'L',
'ville' => 'V',
'numVoie' => 'N',
'voie' => 'R');
$form2crit = array(
'siret' => 'I',
'telFax' => 'T',
'raisonSociale' => 'S',
'enseigne' => 'E',
'prenom' => 'P',
'departement' => 'D',
'localite' => 'L',
'ville' => 'V',
'numVoie' => 'N',
'voie' => 'R'
);
filtreCaracteresSpeciaux($formR);
@ -1225,8 +1323,7 @@ function rechercheEnt(&$formR, $deb, $nbRep, $max, $sirenValide = false)
$total_time += $resSphinx['time'];
}
if ($resSphinx['total'] == 0 && isset($formR['departement']) == true) {
debugln('Sans la gestion des mots non significatifs'.
' et sans la localité');
debugln('Sans la gestion des mots non significatifs et sans la localité');
debugln();
$criteres = 'ITSEPD VNR';
$sphinx->resetFilters();
@ -1246,14 +1343,15 @@ function rechercheEnt(&$formR, $deb, $nbRep, $max, $sirenValide = false)
$criteres = 'ITSEPDLVNR';
}
$total_premiere_requete = $resSphinx['total'];
if ($total_premiere_requete == 0 ||
$total_premiere_requete > 500) { // "huit a huit" donne 414
$index = 'ent_mns';
// Requete sans les mots non significatifs
// pour connaitre le nombre de mots trouves pour chaque champ alpha
debugln('Avec la gestion des mots non significatifs'.
' et avec quorum si l\'adresse est complete');
debugln('Avec la gestion des mots non significatifs et avec quorum si l\'adresse est complete');
$raisonSociale = $formR['raisonSociale'];
if ((empty($formR['ville']) == false ||
empty($formR['departement']) == false) &&
@ -1299,6 +1397,8 @@ function rechercheEnt(&$formR, $deb, $nbRep, $max, $sirenValide = false)
}
while ($pass > 0) {
filtreSiege($formR, $criteres, $sphinx);
filtreActif($formR, $criteres, $sphinx);
// Requete Sphinx
$resSphinx = requeteSphinx($sphinx, $index, $formR, $criteres,
$criteresSphinx, $form2crit,
@ -1356,8 +1456,7 @@ function rechercheEnt(&$formR, $deb, $nbRep, $max, $sirenValide = false)
}
// Combinaison
$combinaison = nouvelleCombinaison($sequence, $sequencePos,
$pass, $index, $mode);
$combinaison = nouvelleCombinaison($sequence, $sequencePos, $pass, $index, $mode);
if ($combinaison == '') {
debugln('fin des combinaisons');
if (changePass($pass, $mode, $index,
@ -1421,57 +1520,86 @@ function rechercheEnt(&$formR, $deb, $nbRep, $max, $sirenValide = false)
}
if ($resSphinx['total'] == 0) {
return array('nbReponses' => 0,
'nbReponsesTotal' => 0,
'duree' => $total_time,
'pass' => $pass,
'criteres' => $criteres);
return array(
'nbReponses' => 0,
'nbReponsesTotal' => 0,
'duree' => $total_time,
'pass' => $pass,
'criteres' => $criteres);
}
if (DEBUG) {
$base2form = array('adr_dep' => 'departement',
'adr_cp' => 'localite',
'adr_num' => 'numVoie',
'adr_libVoie' => 'voie',
'adr_comp' => 'voie',
'adr_ville' => 'ville',
'raisonSociale' => 'raisonSociale',
'enseigne' => 'raisonSociale',
'sigle' => 'raisonSociale',
'identite_pre' => 'raisonSociale');
afficheDB($resSphinx, $formR, $form2crit, 'etablissements', $base2form,
$deb, $nbRep);
$base2form = array(
'adr_dep' => 'departement',
'adr_cp' => 'localite',
'adr_num' => 'numVoie',
'adr_libVoie' => 'voie',
'adr_comp' => 'voie',
'adr_ville' => 'ville',
'raisonSociale' => 'raisonSociale',
'enseigne' => 'raisonSociale',
'sigle' => 'raisonSociale',
'identite_pre' => 'raisonSociale');
afficheDB($resSphinx, $formR, $form2crit, 'etablissements', $base2form, $deb, $nbRep);
}
//file_put_contents('test.log', print_r($resSphinx,1));
// Reponse
if ($gDatabaseJO == false) {
return array('nbReponses' => 0,
'nbReponsesTotal' => $resSphinx['total'],
'duree' => $total_time,
'erreur' => 'Base inaccessible');
return array(
'nbReponses' => 0,
'nbReponsesTotal' => $resSphinx['total'],
'duree' => $total_time,
'erreur' => 'Base inaccessible');
}
if (isset($resSphinx['matches']) == false) {
return array('nbReponses' => 0,
'nbReponsesTotal' => $resSphinx['total'],
'duree' => $total_time,
'erreur' => 'Aucun r&eacute;sultat');
return array(
'nbReponses' => 0,
'nbReponsesTotal' => $resSphinx['total'],
'duree' => $total_time,
'erreur' => 'Aucun r&eacute;sultat');
}
$requeteDB = 'select id, CONCAT(siren,nic) AS siret, siren, nic, siege, '.
'raisonSociale, sigle, enseigne, adr_num, adr_typeVoie, adr_libVoie, '.
'adr_comp, adr_cp, adr_ville, tel, fax, cj, actif, ape_etab, '.
'ape_entrep, (siren>200) AS sirenValide'.
' from etablissements where id='.$resSphinx['matches'][0]['id'];
for ($i = 1; $i + $deb < $resSphinx['total'] && $i < $nbRep; ++$i) {
$requeteDB .= ' or id='.$resSphinx['matches'][$i]['id'];
$requeteDB = 'SELECT
id,
CONCAT(siren,nic) AS siret,
siren,
nic,
siege,
raisonSociale,
sigle,
enseigne,
adr_num,
adr_typeVoie,
adr_libVoie,
adr_comp,
adr_cp,
adr_ville,
libPays AS pays,
tel,
fax,
cj,
actif,
ape_etab,
ape_entrep,
(siren>200) AS sirenValide
FROM etablissements
LEFT OUTER JOIN tabPays ON codePaysInsee = IF(adr_dep=99,adr_com,null)
WHERE id IN('.
$i = 0;
foreach ($resSphinx['matches'] as $id => $element) {
if($i > 0) $requeteDB.= ',';
$requeteDB.= $element['id'];
$i++;
}
$requeteDB .= ' ORDER BY sirenValide DESC, actif DESC, siege DESC, rang DESC';
$requeteDB.= ') ORDER BY sirenValide DESC, actif DESC, siege DESC, rang DESC';
debugln();
debugln("requeteDB='$requeteDB'");
$resDB = $gDatabaseJO->query($requeteDB);
return reponse($resSphinx, $resDB, $criteres, $total_time, $formR,
$form2crit, $deb);
return reponse($resSphinx, $resDB, $criteres, $total_time, $formR,$form2crit, $deb);
}
// --------------------------------------------------------------------------- //

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,130 @@
<?php
require_once 'framework/common/strings.php';
require_once realpath(dirname(__FILE__)).'/sphinxapi.php';
class SphinxCriteres
{
var $findMe = '';
var $tabFiltres = array();
var $position = 0;
var $nbRep = 20;
var $max = 200;
var $any = false;
}
class SphinxSearch
{
/**
* Effectue une recherche en interrogeant le moteur Sphinx
*
* @param string $index
* @param SphinxCriteres $criteres Critères de recherche
* @return array $return Tableau des résultats
*/
public function search($index, $criteres)
{
debugLog('I',"Search Sphinx dans $name de ".$criteres->findMe." (".$criteres->deb.", ".$criteres->nbRep.", ".$criteres->max.") avec ".implode(',',$criteres->tabFiltres),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$cl = new SphinxClient();
switch (strtolower($index)) {
case 'entrep':
break;
case 'dir':
break;
case 'histo':
$cl->SetServer (SPHINX_HISTO_HOST, SPHINX_HISTO_PORT);
$cl->SetConnectTimeout ( 1 );
$cl->SetLimits ($criteres->position, $criteres->nbRep, $criteres->max);
$cl->SetMatchMode (SPH_MATCH_EXTENDED);
foreach ($criteres->tabFiltres as $nomFiltre => $valFiltre) {
$cl->SetFilter($nomFiltre, array(0=>$valFiltre));
}
$cl->SetRankingMode ( SPH_RANK_PROXIMITY_BM25 );
$res = $cl->Query ( $criteres->findMe, 'histo' );
if ($res===false) {
//Erreur
debugLog('I',"Search Sphinx : Pas de réponse pour ".$criteres->findMe." avec ".implode(',',$criteres->tabFiltres).' ('.$cl->GetLastError() .')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array(
'results' => false,
'nbRet' => 0,
'nbTot' => 0,
'duration' => 0);
} else {
if ( $cl->GetLastWarning() ) {
debugLog('I',"Search Sphinx : Warning pour $criteres->findMe - ".$cl->GetLastWarning(),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
print "WARNING: " . $cl->GetLastWarning() . "\n\n";
}
debugLog('I',"'Search Sphinx dans $index de $criteres->findMe (Filtre=".implode(',',$criteres->tabFiltres)."), Deb=".$criteres->position.", nbRep=".$criteres->nbRep.", max=".$criteres->max.", any=".$criteres->any,__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabRet = array();
if ( is_array($res['matches'])) {
$iDb = new WDB('histobodacc');
$iDb->query("SET NAMES 'latin1';");
foreach ( $res['matches'] as $doc => $docinfo ) {
$listeEtab = $iDb->select(
'bodacc_ocr',
"'Histo' as Loc, id, nomFichier, annee1, bod, texte",
"id=$doc");
$etab = $listeEtab[0];
$tabRet[] = array(
'Localisation' => $etab['Loc'],
'id' => $doc,
'Pertinence' => $docinfo['weight'],
'Fichier' => $etab['nomFichier'],
'Annee' => $etab['annee1'],
'Code' => $etab['bod'],
'Texte' => $etab['texte'],
);
}
}
}
debugLog('I','Search Sphinx : Retourne '. $res[total].'/'. $res[total_found] .' en '.$res[time] .'secondes',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array(
'results' => $tabRet,
'nbRet' => $res[total],
'nbTot' => $res[total_found],
'duration' => $res[time],
'words' => $res['words'],
);
break;
}
}
/**
* Méthode magique __call() permettant d'appeller une méthode virtuelle
* du type searchByEnt(), searchByDir() ou searchByHisto()...
*
* @param string $method Nom de la méthode virtuelle appelée
* @param array $args Tableau des critères de recherche
* @return array|null $return Tableau des résultats ou NULL
*/
public function __call($method, $args)
{
if(preg_match('#^searchBy#i',$method))
{
$name = str_replace('searchBy','',$method);
$criteres = array(
0 => 'findMe',
1 => 'tabFiltres',
2 => 'position',
3 => 'nbRep',
4 => 'max',
5 => 'any',
);
$searchArgs = new stdClass();
$i = 0;
foreach($args as $argument) {
$searchArgs->{$criteres[$i]} = $argument;
$i++;
}
return $this->search($name, $searchArgs);
}
return null;
}
}