Upgrade Class Metier

This commit is contained in:
Michael RICOIS 2013-04-25 08:26:51 +00:00
parent ede1ffdaa5
commit b865936904
19 changed files with 20089 additions and 1365 deletions

View File

@ -0,0 +1,399 @@
<?php
/**
* Infogreffe provider
*/
class Metier_Infogreffe
{
/**
* Activate debug mode
* @var boolean
*/
public $debug = false;
/**
* Config definition
* @var Zend_Config
*/
public $config;
/**
* Reference client - customer reference
* G[Number]
* @var string
*/
public $reference_client;
/**
* Type de document
* @var string
*/
public $type_document;
/**
* Mode de diffusion
* XL : XML
* M : Mail
* C : Courrier
* T : Téléchargement
* @var string
*/
public $mode_diffusion;
/**
*
* @var string
*/
public $greffe;
/**
*
* @var string
*/
public $dossier_millesime;
/**
*
* @var string
*/
public $dossier_statut;
/**
*
* @var string
*/
public $dossier_chrono;
/**
*
* @var unknown
*/
public $date_depot;
/**
*
* @var string
*/
public $num_depot;
/**
* BI : Date de cloture
* @var string
*/
public $date_cloture;
/**
*
* @var unknown
*/
public $date_acte;
/**
* AC : Numéro de l'acte
* @var string
*/
public $num;
/**
* SIREN
* @var string
*/
public $siren;
/**
* Request XML
* @var string
*/
protected $xml = '';
/**
* Initialize configuration
*/
public function __construct()
{
//Load configuration
$c = Zend_Registry::get('config');
$this->config = $c->profil->infogreffe;
if ( null === $this->config ) {
throw new Exception('Unable to load configuration file.');
}
}
public function callRequest()
{
$fromCache = false;
if ( $this->mode_diffusion == 'XL' && $this->fileIsCache($name) ){
$fromCache = true;
}
if ($fromCache) {
$xml = $this->fileFromCache();
} else {
$xml = $this->getProduitsXML();
$this->error($xml);
}
if ( $this->mode_diffusion == 'XL' ){
$this->fileTocache($xml);
}
$this->error($xml);
return $xml;
}
/**
* Save data in cache
* @param string $xml
*/
protected function fileTocache($xml)
{
$filename = $this->type_document . '-' . $this->siren . '.xml';
$file = $this->config->cache->path . DIRECTORY_SEPARATOR . $filename;
file_put_contents($file, $xml);
}
/**
*
* @param string $xml
* @return string
*/
protected function fileFromCache()
{
$filename = $this->type_document . '-' . $this->siren . '.xml';
$file = $file = $this->config->cache->path . DIRECTORY_SEPARATOR . $filename;
return file_get_contents($file);
}
/**
*
* @param string $xml
* @return boolean
*/
protected function fileIsCache($xml)
{
$filename = $this->type_document . '-' . $this->siren . '.xml';
$file = $file = $this->config->cache->path . DIRECTORY_SEPARATOR . $filename;
if ( !file_exists($file) ) {
return false;
}
$dateFile = filemtime($file);
$now = mktime(date('G'), date('i'), date('s'), date('m') , date('d'), date('Y'));
$maxTime = mktime(
date('G',$dateFile)+$this->cacheFiletime,
date('i',$dateFile),
date('s',$dateFile),
date("m",$dateFile),
date("d",$dateFile),
date("Y",$dateFile)
);
if ( $now>$maxTime ) {
return true;
}
return false;
}
/**
* Detect error
* @param string $xml
* @throws Exception
*/
protected function error($xml)
{
if (!empty($xml))
{
$doc = new DOMDocument();
$load = $doc->loadXML($xml, LIBXML_NOERROR | LIBXML_NOWARNING);
if (!$load) {
$tmp = explode('-', $xml);
$errNum = intval($tmp[0]);
$errMsg = $tmp[1];
if( $errNum == '5' ){
$errMsg = 'Service partenaire indisponible.';
}
throw new Exception($errNum . '-' . $errMsg);
}
}
else
{
throw new Exception('Fichier vide');
}
}
/**
* Download file from URL
* @param string $url
* @param string $filename
* @throws Exception
* @return string
*/
protected function download($url, $filename)
{
$file = $file = $this->config->storage->path . DIRECTORY_SEPARATOR . $filename;
$fp = fopen($file, 'w');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fp);
$data = curl_exec($ch);
if( curl_errno($ch) ) {
throw new Exception( curl_error($ch) );
}
curl_close($ch);
fclose($fp);
return $file;
}
/**
* Pdf information
* @param string $pdf
* @return array
* pages => number of pages
* version => pdf version
* size => pdf filesize
*/
protected function pdfInfos($pdf)
{
if ( false !== ( $file = file_get_contents( $pdf ) ) ) {
//Number of page
$pages = preg_match_all( "/\/Page\W/", $file, $matches );
//Pdf Version
preg_match("/^\%PDF\-(.*)\s/U", $buffer, $matches);
$version = $matches[1];
//Pdf size
$size = filesize($pdf);
return array(
'pages' => $pages,
'version' => $version,
'size' => $size,
);
}
return false;
}
/**
* Define XML for the request
*/
protected function setXML()
{
//Construct the request
$xml = new SimpleXMLElement('<demande></demande>');
$emetteur = $xml->addChild('emetteur');
$emetteur->addChild('code_abonne', $this->config->user);
$emetteur->addChild('mot_passe', $this->config->password);
//Set Command ID
$emetteur->addChild('reference_client', $this->reference_client);
$code_requete = $emetteur->addChild('code_requete');
$code_requete->addChild('type_profil', 'A');
$code_requete->addChild('origine_emetteur', 'IC');
// C = Commande de documents
$code_requete->addChild('nature_requete', 'C');
$code_requete->addChild('type_document', $this->type_document);
$code_requete->addChild('type_requete', 'S'); // S = Simple
// Mode de diffusion : C = Courrier, T = Téléchargement, M = Mail, XL = XML
$mode_diffusion = $code_requete->addChild('mode_diffusion');
if ( $this->mode_diffusion=='XL' )
{
//On ajoute tout les types de diffusions pour XL
$mode_diffusion->addChild('mode')->addAttribute('type', 'C');
$mode_diffusion->addChild('mode')->addAttribute('type', 'T');
}
$mode_diffusion->addChild('mode')->addAttribute('type', $this->mode_diffusion);
$code_requete->addChild('media', 'WS');
$commande = $xml->addChild('commande');
$commande->addChild('num_siren', $this->siren);
if ( $this->mode_diffusion!='XL' )
{
// Commande de documents : bilan saisie ou bilan complet
if ( ($this->type_document=='BS' || $this->type_document=='BI') )
{
$commande->addChild('greffe',$this->greffe);
$commande->addChild('dossier_millesime',$this->dossier_millesime);
$commande->addChild('dossier_statut',$this->dossier_statut);
$commande->addChild('dossier_chrono',$this->dossier_chrono);
$commande->addChild('num_depot',$this->num_depot);
$commande->addChild('date_cloture', $this->date_cloture);
}
// Commande de documents : actes
elseif ( $this->type_document=='AC' )
{
$commande->addChild('greffe',$this->greffe);
$commande->addChild('dossier_millesime',$this->dossier_millesime);
$commande->addChild('dossier_statut',$this->dossier_statut);
$commande->addChild('dossier_chrono',$this->dossier_chrono);
$commande->addChild('num_depot',$this->num_depot);
$liste_actes = $commande->addChild('liste_actes');
$liste_actes->addChild('acte')->addAttribute('num', $this->num);
}
}
$xml = str_replace('<?xml version="1.0"?>', '', $xml->asXML());
$this->xml = $xml;
}
/**
* Send XML Request
* We have some problem to use SOAP so we use CURL
* @throws Exception
* @return string XML Response
*/
protected function getProduitsXML()
{
$this->setXML();
//Be sure it's in UTF-8
$req = utf8_encode($this->xml);
if ($this->debug) {
file_put_contents($this->type_document.'-'.$this->siren.'-'.$this->mode_diffusion.'.query');
}
//Create XML request
$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>';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->config->url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_COOKIEFILE,TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($ch);
if ( curl_errno($ch) ) {
throw new Exception( curl_error($ch) );
}
//Remove SOAP part of XML
$response = 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'>", '', $response);
$response = str_replace('</return></ns0:getProduitsWebServicesXMLResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>','', $response);
return $response;
}
}

View File

@ -0,0 +1,459 @@
<?php
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Infogreffe.php';
/**
* Infogreffe : Document Acte
*/
class Metier_Infogreffe_Ac extends Metier_Infogreffe
{
/**
* Db Adapter
* @var Zend_Db_Adapter_Abstract
*/
public $db;
/**
*
* @param string $siren
*/
public function __construct($siren)
{
parent::__construct();
//Set type
$this->type_document = 'AC';
//Set Siren
$this->siren = $siren;
//Get defaut database adapter
$this->db = Zend_Db_Table_Abstract::getDefaultAdapter();
}
/**
* @param $onlyDb
* @return array
*/
public function getList($onlyDb = false)
{
$this->mode_diffusion = 'XL';
$this->reference_client = 'list-' . $this->siren;
//Requete WebService
$actesXML = null;
if ( $onlyDb === false ) {
$this->debug = true;
//Infogreffe webservice
$xml = $this->callRequest();
$actesXML = $this->formatList($xml);
}
//Lecture de la base de données
$actesM = new Application_Model_JoGreffesActes($this->db);
$sql = $actesM->select()
->where('siren=?', $this->siren)
->order('date_acte DESC');
$rows = $actesM->fetchAll($sql);
$actes = array();
if ( count($rows)>0 ) {
foreach ( $rows as $row ) {
$item = new stdClass();
$item->File = $row->pdfLink;
$item->FileSize = $row->pdfSize;
$item->FileNumberOfPages = $row->pdfPage;
$item->DepotNum = $row->num_depot;
$item->DepotDate = $row->date_depot;
$item->ActeNum = $row->num_acte;
$item->ActeDate = $row->date_acte;
$item->ActeNumberOfPages = $row->nbpages_acte;
$item->ActeType = $row->type_acte;
$item->ActeTypeLabel = $row->type_acte_libelle;
$decisions = $row->decision_nature;
if (!empty($row->decision_nature) && !empty($row->decision_libelle)) {
$decisions.= ' : ';
}
$decisions.= $row->decision_libelle;
$item->infos[] = $decisions;
$mode_diffusion = explode(',', $row->mode_diffusion);
if (in_array('T',$mode_diffusion)) {
$item->ModeDiffusion = 'T';
} elseif (in_array('C',$mode_diffusion)) {
$item->ModeDiffusion = 'C';
} else {
$item->ModeDiffusion = '';
}
$actes[] = $item;
}
}
return $actes;
}
/**
*
* @param int $depotNum
* @param string $date
* @param int $num
* @param string $type
* @throws Exception
* @return string
*/
public function getCommandeT($depotNum, $date, $num, $type)
{
$this->mode_diffusion = 'T';
$this->reference_client = 'T'.date('YmdHis');
//Lire dans la base de données
$actesM = new Application_Model_JoGreffesActes($this->db);
$sql = $actesM->select()
->where('siren=?', $this->siren)
->where('date_cloture=?', $dateCloture);
$row = $actesM->fetchRow($sql);
if ( null === $row ) {
throw new Exception('Not exist');
}
//Needed element for filename
$date = $row->date_acte;
$type = $row->type_acte;
if ($row->pdfLink != '') {
//Set the filename
$filename = $this->getFilePath($date) .
DIRECTORY_SEPARATOR .
$this->getFileName($date, $this->num, $type);
//Check if filename exist
if ( !file_exists($this->config->storage->path . DIRECTORY_SEPARATOR . $filename) ) {
throw new Exception('File not found');
}
} else {
$this->greffe = $row->numGreffe;
$this->dossier_millesime = substr($row->numRC,0,2);
$this->dossier_statut = substr($row->numRC,2,1);
$this->dossier_chrono = substr($row->numRC,3);
$this->num_depot = $row->num_depot;
$this->num = $row->num_acte;
$xml = $this->callRequest();
$acte = $this->formatItem($xml);
$url = $acte['url_acces'];
if (empty($url)) {
throw new Exception('File url not given');
}
//Set the filename
$filename = $this->getFilePath($date) .
DIRECTORY_SEPARATOR .
$this->getFileName($date, $this->num, $type);
//Récupérer le fichier
$getfile = $this->download($url, $filename);
//Analyser le fichier - Nombre de page et taille
$infos = $this->pdfInfos($getfile);
//Enregistrer les infos du fichier dans la base de données
if (false !== $infos) {
$this->dbSetFile($filename, $infos['size'], $infos['pages'], $infos['version']);
}
}
return $filename;
}
public function getCommandeC($id)
{
$this->mode_diffusion = 'C';
//Enregistrer la commande dans la base de données
//Récupérer l'id de commande
$this->reference_client = 'G'.$id;
$xml = $this->callRequest();
//@todo :
}
/**
*
* @param string $date
* Date de l'acte au format AAAA-MM-JJ
* @param string $num
* Numéro de l'acte
* @param string $type
* Type de l'acte
* @return string
*/
public function getFileName($date, $num, $type)
{
$dateString = new Zend_Date($date, false);
return 'acte-' . $this->siren . '-' . $type . '-' .
$dateString->toString('YYYYMMdd')
. '-' . $num . '.pdf';
}
/**
*
* @param string $date
* Date de l'acte au format AAAA-MM-JJ
* @return string
*/
public function getFilePath($date)
{
return 'actes' . DIRECTORY_SEPARATOR . substr($date,0,4) . DIRECTORY_SEPARATOR . substr($date,5,2);
}
/**
* Format XML to Array for a list of items
* @param string $xml
* @return array
*/
protected function formatList($xml)
{
$doc = new DOMDocument();
$doc->loadXML($xml);
$liste_depot_acte = $doc->getElementsByTagName('liste_depot_acte')->item(0);
$depot_actes = $liste_depot_acte->getElementsByTagName('depot_acte');
$actes = array();
foreach($depot_actes as $depot_acte)
{
$acte = array();
$acte['num_gest'] = array();
$num_gest = $depot_acte->getElementsByTagName('num_gest')->item(0);
$acte['num_gest']['greffe'] = $num_gest->getElementsByTagName('greffe')->item(0)->nodeValue;
$acte['num_gest']['dossier_millesime'] = $num_gest->getElementsByTagName('dossier_millesime')->item(0)->nodeValue;
$acte['num_gest']['dossier_statut'] = $num_gest->getElementsByTagName('dossier_statut')->item(0)->nodeValue;
$acte['num_gest']['dossier_chrono'] = $num_gest->getElementsByTagName('dossier_chrono')->item(0)->nodeValue;
$acte['num_siren'] = $depot_acte->getElementsByTagName('num_siren')->item(0)->nodeValue;
$acte['num_depot'] = $depot_acte->getElementsByTagName('num_depot')->item(0)->nodeValue;
$acte['date_depot'] = $depot_acte->getElementsByTagName('date_depot')->item(0)->nodeValue;
$infoActes = $depot_acte->getElementsByTagName('acte');
$acte['depot'] = array();
foreach($infoActes as $infoActe)
{
$actenum = array();
$actenum['date_acte'] = $infoActe->getElementsByTagName('date_acte')->item(0)->nodeValue;
$actenum['num_acte'] = $infoActe->getElementsByTagName('num_acte')->item(0)->nodeValue;
$actenum['type_acte'] = $infoActe->getElementsByTagName('type_acte')->item(0)->nodeValue;
$actenum['type_acte_libelle'] = $infoActe->getElementsByTagName('type_acte_libelle')->item(0)->nodeValue;
$actenum['nbpages_acte'] = $infoActe->getElementsByTagName('nbpages_acte')->item(0)->nodeValue;
$decision = $infoActe->getElementsByTagName('decision')->item(0);
if($decision)
{
$actenum['decision'] = array();
$actenum['decision']['nature'] = $decision->getElementsByTagName('nature')->item(0)->nodeValue;
$actenum['decision']['libelle'] = $decision->getElementsByTagName('libelle')->item(0)->nodeValue;
}
$actenum['mode_diffusion'] = array();
$mode_diffusion = $infoActe->getElementsByTagName('mode_diffusion')->item(0)->getElementsByTagName('mode');
foreach($mode_diffusion as $mode)
{
$actenum['mode_diffusion'][] = $mode->getAttribute('type');
}
$acte['depot'][] = $actenum;
}
//Fin listes des infos acte
//Enregistrer dans la bdd
$this->dbUpdateItem($acte);
//Génération de l'index pour le tri
if(!empty($acte['date_depot'])){ $date = $acte['date_depot']; }
else { $date = ''; }
if(!empty($date))
{
$datef = substr($date,0,4).substr($date,5,2).substr($date,8,2);
$key = $datef.'-'.$acte['num_depot'];
//Affectation liste générale avec un index permettant le tri
$actes[$key] = $acte;
}
//Prise en compte de l'acte -1
if($acte['num_depot']==-1)
{
$actes[0] = $acte;
}
}
//Tri suivant la date d'acte ou de depot
krsort($actes);
return $actes;
}
/**
* Format XML to Array for one item
* @param string $xml
* @return array
*/
protected function formatItem($xml)
{
$doc = new DOMDocument();
$doc->loadXML($xml);
$depot_acte = $doc->getElementsByTagName('depot_acte')->item(0);
$info = array();
$info['num_gest'] = array();
$num_gest = $depot_acte->getElementsByTagName('num_gest')->item(0);
$info['num_gest']['greffe'] = $num_gest->getElementsByTagName('greffe')->item(0)->nodeValue;
$info['num_gest']['dossier_millesime'] = $num_gest->getElementsByTagName('dossier_millesime')->item(0)->nodeValue;
$info['num_gest']['dossier_statut'] = $num_gest->getElementsByTagName('dossier_statut')->item(0)->nodeValue;
$info['num_gest']['dossier_chrono'] = $num_gest->getElementsByTagName('dossier_chrono')->item(0)->nodeValue;
$info['num_siren'] = $depot_acte->getElementsByTagName('num_siren')->item(0)->nodeValue;
$info['num_depot'] = $depot_acte->getElementsByTagName('num_depot')->item(0)->nodeValue;
$info['date_depot'] = $depot_acte->getElementsByTagName('date_depot')->item(0)->nodeValue;
$infoActes = $depot_acte->getElementsByTagName('acte');
$info['actes'] = array();
foreach($infoActes as $infoActe)
{
$actenum = array();
$actenum['date_acte'] = $infoActe->getElementsByTagName('date_acte')->item(0)->nodeValue;
$actenum['num_acte'] = $infoActe->getElementsByTagName('num_acte')->item(0)->nodeValue;
$actenum['type_acte'] = $infoActe->getElementsByTagName('type_acte')->item(0)->nodeValue;
$actenum['type_acte_libelle'] = $infoActe->getElementsByTagName('type_acte_libelle')->item(0)->nodeValue;
$actenum['nbpages_acte'] = $infoActe->getElementsByTagName('nbpages_acte')->item(0)->nodeValue;
$decision = $infoActe->getElementsByTagName('decision')->item(0);
if($decision)
{
$actenum['decision'] = array();
$actenum['decision']['nature'] = $decision->getElementsByTagName('nature')->item(0)->nodeValue;
$actenum['decision']['libelle'] = $decision->getElementsByTagName('libelle')->item(0)->nodeValue;
}
$actenum['url_acces'] = htmlspecialchars_decode($infoActe->getElementsByTagName('url_acces')->item(0)->nodeValue);
$info['actes'][] = $actenum;
}
return $info;
}
/**
* Update informations about an item in database
* @param array $list
*/
protected function dbUpdateItem($list)
{
//siren
//numRC
//numGreffe
//num_depot
//date_depot
//date_acte
//num_acte
//type_acte => Attention garder la version 1 et 2
//type_acte_libelle
//nbpages_acte
//decision_nature
//decision_libelle
//mode_diffusion
$data = array(
'siren' => $list['siren'],
'numRC' => $list['num_gest']['dossier_millesime'].
$list['num_gest']['dossier_statut'].$list['num_gest']['dossier_chrono'],
'numGreffe' => $list['num_gest']['greffe'],
'num_depot' => $list['num_depot'],
'date_depot' => $list['date_depot'],
'date_acte' => $list['date_acte'],
'num_acte' => $list['num_acte'],
'type_acte' => $list['type_acte'],
'type_acte_libelle' => $list['type_acte_libelle'],
'nbpages_acte' => $list['nbpages_acte'],
'decision_nature' => $list['decision']['nature'],
'decision_libelle' => $list['decision']['libelle'],
'mode_diffusion' => join(',',$list['mode_diffusion']),
);
//Only new element are inserted
try {
$acteM = new Application_Model_JoGreffesActes($this->db);
$acteM->select()
->where('siren=?', $list['siren'])
->where('num_depot=?', $list['num_depot'])
->where('date_depot=?', $list['date_depot'])
->where('date_acte=?', $list['date_acte'])
->where('num_acte=?', $list['num_acte'])
->where('type_acte=?', $list['type_acte']); //Attention type lors du téléchargement
if ( null === $acteM->fetchRow($sql) ) {
$result = $acteM->insert($data);
}
} catch(Zend_Db_Adapter_Exception $e) {
throw new Exception($e->getMessage());
} catch(Zend_Db_Exception $e) {
throw new Exception($e->getMessage());
}
if ($result) {
return true;
}
return false;
}
/**
* Set file informations in database
* @param string $filename
* @param int $size
* @param int $numberOfPage
* @param string $version
* @return boolean
*/
protected function dbSetFile($filename, $size, $numberOfPage, $version)
{
$data = array(
'pdfLink' => $filename,
'pdfSize' => $size,
'pdfPage' => $numberOfPage,
'pdfVer' => $version
);
//@todo : condition
$where = array(
'siren="'.$this->siren."'",
'date_acte' => $this->date_acte,
'num_acte' => $this->num,
);
try {
$acteM = new Application_Model_JoGreffesActes();
$result = $acteM->update($data, $where);
} catch(Zend_Db_Adapter_Exception $e) {
throw new Exception($e->getMessage());
} catch(Zend_Db_Exception $e) {
throw new Exception($e->getMessage());
}
if ($result) {
return true;
}
return false;
}
}

View File

@ -0,0 +1,429 @@
<?php
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Infogreffe.php';
/**
* Infogreffe : Document Bilan
*/
class Metier_Infogreffe_Bi extends Metier_Infogreffe
{
/**
* Db Adapter
* @var Zend_Db_Adapter_Abstract
*/
public $db;
/**
*
* @param string $siren
*/
public function __construct($siren)
{
parent::__construct();
//Set type
$this->type_document = 'BI';
//Set Siren
$this->siren = $siren;
//Get defaut database adapter
$this->db = Zend_Db_Table_Abstract::getDefaultAdapter();
}
/**
* @param $onlyDb
* @return array
*/
public function getList($onlyDb = false)
{
$this->mode_diffusion = 'XL';
$this->reference_client = 'list-' . $this->siren;
//Requete WebService
$bilansXML = null;
if ( $onlyDb === false ) {
$this->debug = true;
//Infogreffe webservice
$xml = $this->callRequest();
$bilansXML = $this->formatList($xml);
}
//Lecture de la base de données
$bilansM = new Application_Model_JoGreffesBilans();
$sql = $bilansM->select()
->where('siren=?', $this->siren)
->order('date_cloture DESC');
$rows = $bilansM->fetchAll($sql);
$bilans = array();
if ( count($rows)>0 ) {
foreach ( $rows as $row ) {
$item = new stdClass();
$item->File = $row->pdfLink;
$item->FileSize = $row->pdfSize;
$item->NumberOfPages = $row->pdfPage;
$item->Millesime = $row->millesime;
$item->NumDepot = $row->num_depot;
$item->DateCloture = $row->date_cloture;
$item->Type = $row->type_comptes;
$mode_diffusion = explode(',', $row->mode_diffusion);
if (in_array('T',$mode_diffusion)) {
$item->ModeDiffusion = 'T';
} elseif (in_array('C',$mode_diffusion)) {
$item->ModeDiffusion = 'C';
} else {
$item->ModeDiffusion = '';
}
$item->DureeExercice = $row->duree_exercice;
$bilans[] = $item;
}
}
return $bilans;
}
public function getCommandeT($dateCloture = null, $type = 'sociaux')
{
$this->mode_diffusion = 'T';
$this->reference_client = 'T'.date('YmdHis');
//Lire dans la base de données
$bilansM = new Application_Model_JoGreffesBilans();
$sql = $bilansM->select()
->where('siren=?', $this->siren)
->where('date_cloture=?', $dateCloture);
if ($type=='sociaux') {
$sql->where("(type='sociaux' OR type='')");
} else {
$sql->where('type=?',$type);
}
$row = $bilansM->fetchRow($sql);
if ( null === $row ) {
throw new Exception('Not exist');
}
if ($row->pdfLink != '') {
//Set filename
$filename = $this->getFilePath($type, $dateCloture) .
DIRECTORY_SEPARATOR .
$this->getFileName($type, $dateCloture);
//Check if filename exist
if ( !file_exists($this->config->storage->path . DIRECTORY_SEPARATOR . $filename) ) {
throw new Exception('File not found');
}
} else {
$this->greffe = $row->numGreffe;
$this->dossier_millesime = substr($row->numRC,0,2);
$this->dossier_statut = substr($row->numRC,2,1);
$this->dossier_chrono = substr($row->numRC,3);
$this->num_depot = $row->num_depot;
$this->date_cloture = $row->date_cloture;
try {
$xml = $this->callRequest();
} catch(Exception $e) {
//@todo : Error
//Erreur commande webservice
throw new Exception($e->getMessage(), $e->getCode());
}
$bilan = $this->formatItem($xml);
$url = $bilan['url_acces'];
if (empty($url)) {
throw new Exception('File url not given');
}
//Set the filename
$filename = $this->getFilePath($type, $dateCloture) .
DIRECTORY_SEPARATOR .
$this->getFileName($type, $dateCloture);
//Récupérer le fichier
$getfile = $this->download($url, $filename);
//Analyser le fichier - Nombre de page et taille
$infos = $this->pdfInfos($getfile);
//Enregistrer les infos du fichier dans la base de données
if (false !== $infos) {
$this->dbSetFile($filename, $infos['size'], $infos['pages'], $infos['version']);
}
}
return $filename;
}
public function getCommandeC($dateCloture = null, $type = 'sociaux', $email = '', $reference = '')
{
$this->mode_diffusion = 'C';
//Lire dans la base de données
$bilansM = new Application_Model_JoGreffesBilans();
$sql = $bilansM->select()
->where('siren=?', $this->siren)
->where('date_cloture=?', $dateCloture);
if ($type=='sociaux') {
$sql->where("(type='sociaux' OR type='')");
} else {
$sql->where('type=?',$type);
}
$row = $bilansM->fetchRow($sql);
if ( null === $row ) {
throw new Exception('Not exist');
}
/*
- Importer table commandes
- Renommer en table greffes_commandes
- Supprimer colonnes idUser, typeCommande
- Ajouter colonnes typeDocument, raisonSociale, refClient
*/
//Attention, si mode diffusion vide => alors faire commande courrier SD
//Enregistrer la commande dans la base de données
// commandes => Créer la table dans BigData
// id => id de la commande
// login => login
// email => email de l'utilisateur
// Ajouter référence client
// typeDocument => BI, AC ($this->type_document)
// siren => siren de la société
// raisonSociale => RS de la société getIdentiteLight()
// refDocument =>
// libDocument =>
// commentaire =>
// dateCommande =>
// dateReception =>
//Récuperer l'id de commande - depuis la base de données
$this->reference_client = 'G'.$id;
//Générer les paramètres de commande depuis la base de données
$this->greffe = $row->numGreffe;
$this->dossier_millesime = substr($row->numRC,0,2);
$this->dossier_statut = substr($row->numRC,2,1);
$this->dossier_chrono = substr($row->numRC,3);
$this->num_depot = $row->num_depot;
$this->date_cloture = $row->date_cloture;
//Faire la requete
try {
$xml = $this->callRequest();
} catch(Exception $e) {
//@todo : Gestion des erreurs
}
return $id;
}
/**
* Name of file
* @param string $type
* @param string $dateCloture
* Format : AAAAMMJJ
* @return string
*/
public function getFileName($type, $dateCloture)
{
if ($type=='') {
$type = 'sociaux';
}
return 'bilan-' . $this->siren . '-' . $type . '-' . $dateCloture . '.pdf';
}
/**
* Path of file
* @param string $type
* @param string $dateCloture
* Format : AAAAMMJJ
* @return string
*/
public function getFilePath($type, $dateCloture)
{
if ($type=='') {
$type = 'sociaux';
}
return 'bilans' . DIRECTORY_SEPARATOR . $type . DIRECTORY_SEPARATOR . substr($dateCloture,0,4);
}
/**
* Format XML to Array for a list of items
* @param string $xml
* @return array
*/
protected function formatList($xml)
{
//Parse XML to make an array
$doc = new DOMDocument();
$doc->loadXML($xml);
$liste_bilan_complet = $doc->getElementsByTagName('liste_bilan_complet')->item(0);
$bilan_complet = $liste_bilan_complet->getElementsByTagName('bilan_complet');
$bilans = array();
if ( count($bilan_complet)>0 )
{
foreach( $bilan_complet as $element )
{
$bilan = array();
$num_gest = $element->getElementsByTagName('num_gest')->item(0);
$bilan['num_gest']['greffe'] = $num_gest->getElementsByTagName('greffe')->item(0)->nodeValue;
$bilan['num_gest']['dossier_millesime'] = $num_gest->getElementsByTagName('dossier_millesime')->item(0)->nodeValue;
$bilan['num_gest']['dossier_statut'] = $num_gest->getElementsByTagName('dossier_statut')->item(0)->nodeValue;
$bilan['num_gest']['dossier_chrono'] = $num_gest->getElementsByTagName('dossier_chrono')->item(0)->nodeValue;
$bilan['dossier_millesime'] = $num_gest->getElementsByTagName('dossier_millesime')->item(0)->nodeValue;
$bilan['dossier_statut'] = $num_gest->getElementsByTagName('dossier_statut')->item(0)->nodeValue;
$bilan['dossier_chrono'] = $num_gest->getElementsByTagName('dossier_chrono')->item(0)->nodeValue;
$bilan['num_siren'] = $element->getElementsByTagName('num_siren')->item(0)->nodeValue;
$bilan['date_cloture'] = $element->getElementsByTagName('date_cloture')->item(0)->nodeValue;
$bilan['date_cloture_iso'] = $element->getElementsByTagName('date_cloture_iso')->item(0)->nodeValue;
$bilan['millesime'] = $element->getElementsByTagName('millesime')->item(0)->nodeValue;
$bilan['num_depot'] = $element->getElementsByTagName('num_depot')->item(0)->nodeValue;
$bilan['type_comptes'] = $element->getElementsByTagName('type_comptes')->item(0)->nodeValue;
$mode_diffusion = $element->getElementsByTagName('mode_diffusion')->item(0)->getElementsByTagName('mode');
foreach($mode_diffusion as $mode)
{
$bilan['mode_diffusion'][] = $mode->getAttribute('type');
}
//Enregistrer dans la bdd
$this->dbUpdateItem($bilan);
//Génération de l'index pour le tri
$date = $bilan['date_cloture_iso'];
if( !empty($date) )
{
$datef = substr($date,0,4).substr($date,5,2).substr($date,8,2);
//Affectation liste générale avec un index permettant le tri
$bilans[$datef] = $bilan;
}
}
}
krsort($bilans);
return $bilans;
}
/**
* Format XML to Array for one item
* @param string $xml
* @return array
*/
protected function formatItem($xml)
{
$doc = new DOMDocument();
$doc->loadXML($xml);
$bilan_complet = $doc->getElementsByTagName('bilan_complet')->item(0);
$bilan = array();
$bilan['num_gest'] = array();
$num_gest = $bilan_complet->getElementsByTagName('num_gest')->item(0);
$bilan['num_gest']['greffe'] = $num_gest->getElementsByTagName('greffe')->item(0)->nodeValue;
$bilan['num_gest']['dossier_millesime'] = $num_gest->getElementsByTagName('dossier_millesime')->item(0)->nodeValue;
$bilan['num_gest']['dossier_statut'] = $num_gest->getElementsByTagName('dossier_statut')->item(0)->nodeValue;
$bilan['num_gest']['dossier_chrono'] = $num_gest->getElementsByTagName('dossier_chrono')->item(0)->nodeValue;
$bilan['num_siren'] = $bilan_complet->getElementsByTagName('num_siren')->item(0)->nodeValue;
$bilan['date_cloture'] = $bilan_complet->getElementsByTagName('date_cloture')->item(0)->nodeValue;
$bilan['date_cloture_iso'] = $bilan_complet->getElementsByTagName('date_cloture_iso')->item(0)->nodeValue;
$bilan['millesime'] = $bilan_complet->getElementsByTagName('millesime')->item(0)->nodeValue;
$bilan['num_depot'] = $bilan_complet->getElementsByTagName('num_depot')->item(0)->nodeValue;
$bilan['type_comptes'] = $bilan_complet->getElementsByTagName('type_comptes')->item(0)->nodeValue;
$bilan['url_acces'] = $bilan_complet->getElementsByTagName('url_acces')->item(0)->nodeValue;
return $bilan;
}
/**
* Update informations about an item in database
* @param array $list
* @return boolean
*/
protected function dbUpdateItem($list)
{
//Insert or Update
$data = array(
'siren' => $list['num_siren'],
'numRC' => $list['num_gest']['dossier_millesime'].
$list['num_gest']['dossier_statut'].$list['num_gest']['dossier_chrono'],
//'numRC2' => '',
'numGreffe' => $list['num_gest']['greffe'],
'millesime' => $list['millesime'],
'num_depot' => $list['num_depot'],
'date_cloture' => $list['date_cloture_iso'],
'type_comptes' => $list['type_comptes'],
'mode_diffusion' => join(',',$list['mode_diffusion']),
);
try {
$bilanM = new Application_Model_JoGreffesBilans();
$sql = $bilanM->select()
->where('siren=?', $this->siren)
->where('date_cloture=?', $list['date_cloture_iso']);
if ( null === $bilanM->fetchRow($sql) ) {
$result = $bilanM->insert($data);
} else {
$result = $bilanM->update($data, array(
'siren="'.$list['num_siren'].'"',
'date_cloture="'.$list['date_cloture_iso'].'"',
));
}
} catch(Zend_Db_Adapter_Exception $e) {
throw new Exception($e->getMessage());
} catch(Zend_Db_Exception $e) {
throw new Exception($e->getMessage());
}
if ($result) {
return true;
}
return false;
}
/**
* Set file informations in database
* @param string $filename
* @param int $size
* @param int $numberOfPage
* @param string $version
* @return boolean
*/
protected function dbSetFile($filename, $size, $numberOfPage, $version)
{
$data = array(
'pdfLink' => $filename,
'pdfSize' => $size,
'pdfPage' => $numberOfPage,
'pdfVer' => $version
);
$where = array(
'siren="'.$this->siren."'",
'date_cloture="'.$this->date_cloture."'",
);
try {
$bilanM = new Application_Model_JoGreffesBilans();
$result = $bilanM->update($data, $where);
} catch(Zend_Db_Adapter_Exception $e) {
throw new Exception($e->getMessage());
} catch(Zend_Db_Exception $e) {
throw new Exception($e->getMessage());
}
if ($result) {
return true;
}
return false;
}
}

View File

@ -0,0 +1 @@
<?php

View File

@ -0,0 +1,54 @@
INFOGREFFE
----------
Document
AC =>
BI =>
ST =>
File name pattern
AC => acte-[siren]-[type]-[YYYYMMdd]-[num].pdf
siren = [0-9]{9}
type =
num = [0-9]{2}
Files are store in actes/YYYY/MM/filename.pdf
BI => bilan-[siren]-[type]-[YYYYMMdd].pdf
siren = [0-9]{9}
type = [consolide|sociaux]
Files are store in bilans/[type]/[YYYY];
ST => statut-
Files are store in status/
Configuration
-------------
Add to the main configuration (application.ini), these keys :
- infogreffe.cache.path => path for storing cache file
- infogreffe.cache.time => define end of life for the cache in hours
- infogreffe.storage.path =>
- infogreffe.wsdl = infogreffe.wsdl
- infogreffe.url = https://webservices.infogreffe.fr/WSContextInfogreffe/INFOGREFFE
- infogreffe.uri = https://webservices.infogreffe.fr/
- infogreffe.user = 85000109
- infogreffe.password = 166
- Rattraper l'historique des documents et les liés à jo.greffes_bilans et jo.greffes_actes
Attention : Type de document 1 et 2
Vérifier que nous possèdons le maximum d'infos sur l'association type 1 et 2
Sinon passer une moulinette, pour chaque siren, récupérer la liste et analyse avec la table actes_files
jo.greffes_actes : Ajout d'une colonne type_acte2
Il est possible sans le type de trouver le fichier
SELECT siren, count(siren) as nb FROM `actes_files` WHERE `type_libelle` = '' GROUP BY siren ORDER BY nb DESC

View File

@ -0,0 +1,80 @@
<definitions
targetNamespace="java:com.experian.webserv.infogreffe"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="java:com.experian.webserv.infogreffe"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>
<types>
<schema targetNamespace='java:com.experian.webserv.infogreffe'
xmlns='http://www.w3.org/2001/XMLSchema'>
</schema>
</types>
<message name="getProduitsWebServicesXMLRequest">
<part name="arg0" type="xsd:string" />
</message>
<message name="getProduitsWebServicesXMLResponse">
<part name="return" type="xsd:string" />
</message>
<message name="getProduitsWebServicesRequest">
<part name="arg0" type="xsd:string" />
<part name="arg1" type="xsd:string" />
<part name="arg2" type="xsd:string" />
<part name="arg3" type="xsd:string" />
<part name="arg4" type="xsd:string" />
<part name="arg5" type="xsd:string" />
<part name="arg6" type="xsd:string" />
<part name="arg7" type="xsd:string" />
<part name="arg8" type="xsd:string" />
<part name="arg9" type="xsd:string" />
<part name="arg10" type="xsd:string" />
</message>
<message name="getProduitsWebServicesResponse">
<part name="return" type="xsd:string" />
</message>
<message name="getVersionRequest">
</message>
<message name="getVersionResponse">
<part name="return" type="xsd:string" />
</message>
<portType name="WebServicesProduitsPortType">
<operation name="getProduitsWebServicesXML">
<input message="tns:getProduitsWebServicesXMLRequest"/>
<output message="tns:getProduitsWebServicesXMLResponse"/>
</operation>
<operation name="getProduitsWebServices">
<input message="tns:getProduitsWebServicesRequest"/>
<output message="tns:getProduitsWebServicesResponse"/>
</operation>
<operation name="getVersion">
<input message="tns:getVersionRequest"/>
<output message="tns:getVersionResponse"/>
</operation>
</portType>
<binding name="WebServicesProduitsBinding" type="tns:WebServicesProduitsPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getProduitsWebServicesXML">
<soap:operation soapAction="urn:getProduitsWebServicesXML"/>
<input><soap:body use="encoded" namespace='urn:WebServicesProduits' encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
<output><soap:body use="encoded" namespace='urn:WebServicesProduits' encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
</operation>
<operation name="getProduitsWebServices">
<soap:operation soapAction="urn:getProduitsWebServices"/>
<input><soap:body use="encoded" namespace='urn:WebServicesProduits' encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
<output><soap:body use="encoded" namespace='urn:WebServicesProduits' encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
</operation>
<operation name="getVersion">
<soap:operation soapAction="urn:getVersion"/>
<input><soap:body use="encoded" namespace='urn:Version' encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
<output><soap:body use="encoded" namespace='urn:Version' encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
</operation>
</binding>
<service name="WebServicesProduits">
<documentation>Service Soap Experian, Service Produit</documentation>
<port name="WebServicesProduitsPort" binding="tns:WebServicesProduitsBinding">
<soap:address location="https://webservices.infogreffe.fr:443/WSContextInfogreffe/INFOGREFFE"/>
</port>
</service>
</definitions>

View File

@ -619,55 +619,64 @@ function valideSiren($siren, $nic='', $erreur=false) {
}
if (!valideData($siren, 9, 9,'N')) //Siren non précisé ou incorrect.
return $erreur;
elseif ($siren*1==0) // Siren vide
return $erreur;
else
if (!valideData($siren, 9, 9,'N')) //Siren non précisé ou incorrect.
return $erreur;
elseif ($siren*1==0) // Siren vide
return $erreur;
else
{
if (!isset($nic) || trim($nic)=='')
{
$somme=0;
for ($i=0; $i<=8; $i+=2) // Traitement IMPAIR
$somme+=(integer)substr($siren,$i,1);
if (!isset($nic) || trim($nic)=='')
{
$somme=0;
for ($i=0; $i<=8; $i+=2) // Traitement IMPAIR
$somme+=(integer)substr($siren,$i,1);
for ($i=1; $i<=7; $i+=2)
{ // Traitement PAIR
$var_tmp=(string)(2*((integer)substr($siren,$i,1)));
$som_tmp=0;
for($j=0;$j<strlen($var_tmp);$j++)
$som_tmp+=(integer)substr($var_tmp,$j,1);
$somme+=$som_tmp;
}
{ // Traitement PAIR
$var_tmp=(string)(2*((integer)substr($siren,$i,1)));
$som_tmp=0;
for($j=0;$j<strlen($var_tmp);$j++)
$som_tmp+=(integer)substr($var_tmp,$j,1);
$somme+=$som_tmp;
}
if ((integer)($somme/10)!=($somme/10))
{ // Le Siren est faux
if (substr($siren,0,3)!='200') // Les siren débutant par 200 sont toujours valides (sirens provisoires de la BDF?!)
return $erreur;
}
} else {
if (!valideData($nic,1,5,'N')) // Nic de format incorrect.
return $erreur;
if ((integer)($somme/10)!=($somme/10))
{ // Le Siren est faux
if (substr($siren,0,3)!='200') // Les siren débutant par 200 sont toujours valides (sirens provisoires de la BDF?!)
return $erreur;
}
} else {
if (!valideData($nic,1,5,'N')) // Nic de format incorrect.
return $erreur;
$SIRET=$siren.$nic;
$somme=0;
for ($i=0; $i<=12; $i+=2)
{ // Traitement PAIR
$var_tmp=(string)(2*((integer)substr($SIRET,$i,1)));
$som_tmp=0;
for($j=0;$j<strlen($var_tmp);$j++)
$som_tmp+=(integer)substr($var_tmp,$j,1);
$somme+=$som_tmp;
}
for ($i=1; $i<=13; $i+=2) // Traitement IMPAIR
$somme+=(integer)substr($SIRET,$i,1);
$SIRET=$siren.$nic;
if ($siren<>356000000) {
$somme=0;
for ($i=0; $i<=12; $i+=2)
{ // Traitement PAIR
$var_tmp=(string)(2*((integer)substr($SIRET,$i,1)));
$som_tmp=0;
for($j=0;$j<strlen($var_tmp);$j++)
$som_tmp+=(integer)substr($var_tmp,$j,1);
$somme+=$som_tmp;
}
for ($i=1; $i<=13; $i+=2) // Traitement IMPAIR
$somme+=(integer)substr($SIRET,$i,1);
if ((integer)($somme/10)!=($somme/10))// Le Siret est faux
return $erreur;
}
}
return true;
}
if ((integer)($somme/10)!=($somme/10))// Le Siret est faux
return $erreur;
} else {
// Cas particulier du siren de LA POSTE : 356 000 000 00000
$somme=14;
for ($i=9; $i<=13; $i++)
$somme+=(integer)substr($SIRET,$i,1);
if ($somme%5!=0) // Le NIC de l'établissement de LA POSTE est faux !
return $erreur;
}
}
}
return true;
}
/** Test de la validité du siren demandé
**
@ -1517,10 +1526,10 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
$limit="LIMIT $deb, $nbRep";
$sqlInfo="'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ".
$sqlInfo="e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ".
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ".
"e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, e.teff_etab, ".
"CONCAT(e.siren, e.nic) as siret, e.actif, e.identite_pre, IF(e.siege=2,0.5,e.siege) AS triSiege";
"e.adr_comp, e.adr_cp, e.adr_ville, e.adr_dep, e.adr_com, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, e.teff_etab, ".
"CONCAT(e.siren, e.nic) as siret, e.actif, e.identite_pre, IF(e.siege=2,0.5,e.siege) AS triSiege";
$strActif='';
if (intval($actif)==1) $strActif=' AND e.actif=1 ';
@ -1528,8 +1537,8 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
$strSiege='';
if ($siege===null) $strSiege='';
elseif ($siege==1) $strSiege=' e.siege=1 ';
elseif ($siege==0) $strSiege=' e.siege IN(0,2) ';
elseif ($siege==1) $strSiege=' AND e.siege=1 ';
elseif ($siege==0) $strSiege=' AND e.siege IN(0,2) ';
//Search with "departement"
if ($dep>0 && $dep<99999) {
@ -1560,7 +1569,6 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
$tabTmp=$this->iDb->select('etablissements e', 'count(*)', "siren=$siren AND (nic=$nic OR siege=1) $strActif $strSiege");
$nbTot=$tabTmp[0][0];
$listeEtab=$this->iDb->select('etablissements e', $sqlInfo,
"siren=$siren AND (nic=$nic OR siege=1) $strActif $strSiege ORDER BY triSiege DESC, e.actif DESC, e.nic DESC $limit", false, MYSQL_ASSOC);
@ -1590,8 +1598,7 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
}
}
foreach ($listeEtab as $etab)
{
foreach ($listeEtab as $etab) {
$tel=sprintf('%010d', strtr($etab['tel'],array('-'=>'', '/'=>'','.'=>'',','=>'')));
if ($tel<>'0000000000') $tel=implode('.', str_split($tel,2));
else $tel='';
@ -1604,33 +1611,40 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
// Cas des noms vides à l'INSEE (une centaine)
if ($nom=='') $nom=@preg_replace('/,.*$/','',$etab['identite_pre']);
$tabRet[]=array(
'Localisation'=>$etab['Loc'],
'id'=>$etab['id'],
'Pertinence'=>100,
'Siret'=>$etab['siret'],
'Siege'=>$etab['siege'],
'Nom'=>$nom,
'Sigle'=>$etab['sigle'],
'Enseigne'=>$etab['enseigne'],
'Adresse'=>trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '.
$pays = 'France';
if ( $etab['adr_dep']==99 ) {
$resultPays = $this->iDb->select("tabPays", "libPays", "codePaysInsee = ".$etab['adr_com'], false, MYSQL_ASSOC);
$pays = $resultPays[0]['libPays'];
}
$tabRet[] = array(
'Localisation' => $etab['Loc'],
'id' => $etab['id'],
'Pertinence' => 100,
'Siret' => $etab['siret'],
'Siege' => $etab['siege'],
'Nom' => $nom,
'Sigle' => $etab['sigle'],
'Enseigne' => $etab['enseigne'],
'Adresse' => trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '.
$etab['adr_typeVoie'] .' '. $etab['adr_libVoie']))),
'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])),
'CP'=>$etab['adr_cp'],
'Ville'=>$etab['adr_ville'],
'Tel'=>$tel,
'Fax'=>$fax,
'FJ'=>$etab['cj'],
'FJLib'=>$this->getLibelleFJ($etab['cj']),
'Siren'=>$etab['siren'],
'Nic'=>$etab['nic'],
'Actif'=>$etab['actif'],
'NafEtab'=>$etab['ape_etab'], // Etablissement
'NafEnt'=>$etab['ape_entrep'], // Entreprise
'NafEtabLib'=>$this->getLibelleNaf($etab['ape_etab']),
'NafEntLib' =>$this->getLibelleNaf($etab['ape_entrep']),
'EffEtTr'=>$etab['teff_etab'],
'EffEtTrLib'=>self::$tabEffectif[$etab['teff_etab']],
'Adresse2' => trim(preg_replace('/ +/', ' ', $etab['adr_comp'])),
'CP' => $etab['adr_cp'],
'Ville' => $etab['adr_ville'],
'Pays' => $pays,
'Tel' => $tel,
'Fax' => $fax,
'FJ' => $etab['cj'],
'FJLib' => $this->getLibelleFJ($etab['cj']),
'Siren' => $etab['siren'],
'Nic' => $etab['nic'],
'Actif' => $etab['actif'],
'NafEtab' => $etab['ape_etab'], // Etablissement
'NafEnt' => $etab['ape_entrep'], // Entreprise
'NafEtabLib' => $this->getLibelleNaf($etab['ape_etab']),
'NafEntLib' => $this->getLibelleNaf($etab['ape_entrep']),
'EffEtTr' => $etab['teff_etab'],
'EffEtTrLib' => self::$tabEffectif[$etab['teff_etab']],
);
}
@ -2385,40 +2399,49 @@ print_r($tabTmp, true));
}
$timer['ancienSiege']=microtime(true);
if ($tabInsee['ACTIF']*1==1 && $tabInsee['actifEco']*1==0) {
/** L'établissement est actif juridiquement à l'INSEE mais sans activité économique
**/
$tabTmp=$this->iDb->select('insee.insee_even', 'insEVE, IF(insDATEVE=0, idFlux*1, insDATEVE) AS insDATEVE',
"insSIREN=$siren AND insEVE IN ('OD','TD','MPF','MNP','420','425','620','621','650') ORDER BY insDATEVE DESC", false, MYSQL_ASSOC);
if (count($tabTmp)>0) {
$tabModif=$tabTmp[0];
switch(''.$tabModif['insEVE']) {
case 'OD':
case 'TD':
case '420': // Absence d'activité de l'entreprise (cessation économique de l.entreprise)
case '425': // Absence d'activité d'une entreprise suite à une mise à jour au répertoire //
case '620':
case '621':
case '650':
// Fermé économiquement
$tabInsee['actifEcoType']='ECOF';
$tabInsee['actifEcoDate']=$tabModif['insDATEVE'];
break;
case 'MPF': // Présumé Fermé
$tabInsee['actifEcoType']='PFER';
$tabInsee['actifEcoDate']=$tabModif['insDATEVE'];
break;
case 'MNP': // NPAI
$tabInsee['actifEcoType']='NPAI';
$tabInsee['actifEcoDate']=$tabModif['insDATEVE'];
break;
default:
$tabInsee['actifEco']=1;
$tabInsee['actifEcoDate']='';
$tabInsee['actifEcoType']='';
break;
}
}
$tabInsee['actifEcoDate']='';
$tabInsee['actifEcoType']='';
if ($tabInsee['ACTIF']*1==1 && $tabInsee['actifEco']*1==0)
{
/** L'établissement est actif juridiquement à l'INSEE mais sans activité économique **/
$tabTmp=$this->iDb->select('insee.insee_even', 'insEVE, IF(insDATEVE=0, idFlux*1, insDATEVE) AS insDATEVE',
"insSIREN=$siren AND insNIC=$nic AND insEVE IN ('MPF','MNP','650') ORDER BY insDATEVE DESC", false, MYSQL_ASSOC);
if (count($tabTmp)>0) {
$tabModif=$tabTmp[0];
switch(''.$tabModif['insEVE']) {
case '650': // Fermé économiquement
$tabInsee['actifEcoType']='ECOF';
$tabInsee['actifEcoDate']=$tabModif['insDATEVE'];
break;
case 'MPF': // Présumé Fermé par la trimestrielle Insee
$tabInsee['actifEcoType']='PFER';
$tabInsee['actifEcoDate']=$tabModif['insDATEVE'];
break;
case 'MNP': // Présumé Fermé par la trimestrille NPAI
$tabInsee['actifEcoType']='NPAI';
$tabInsee['actifEcoDate']=$tabModif['insDATEVE'];
break;
}
}
/** Evènement Relatif à une cessation ECO entreprise **/
$tabTmp=$this->iDb->select('insee.insee_even', 'insEVE, IF(insDATEVE=0, idFlux*1, insDATEVE) AS insDATEVE',
"insSIREN=$siren AND insEVE IN ('OD','TD','420','425','620','621') ORDER BY insDATEVE DESC", false, MYSQL_ASSOC);
if (count($tabTmp)>0) {
$tabModif=$tabTmp[0];
switch(''.$tabModif['insEVE']) {
case 'OD':
case 'TD':
case '420': // Absence d'activité de l'entreprise (cessation économique de l.entreprise)
case '425': // Absence d'activité d'une entreprise suite à une mise à jour au répertoire //
case '620':
case '621':
$tabInsee['actifEcoType']='ECOF';
$tabInsee['actifEcoDate']=$tabModif['insDATEVE'];
break;
}
}
}
$tabRet=array( 'id'=>$etab['id'],
@ -3849,9 +3872,8 @@ TOTAL : $dureeTot s\n";
* Liste des annonces légales pour un siren donnée
* @param integer $siren
* @param integer $idAnnonce
* @param mixed $rubrique
* Filter par rubrique (P)rocol, (D)issolution, (R)adiation, (A)bsorption, (L)ocataire,
* (G)érance:propriétaire, (V)endeur, bodacc (C), (BODA) (BODB) (BODC) ou tableau des codeEven
* @param mixed $rubrique Filter par rubrique (P)rocol, (D)issolution, (R)adiation, (A)bsorption, (L)ocataire,
* (G)érance:propriétaire, (V)endeur, bodacc (C), (BODA) (BODB) (BODC) ou tableau des codeEven
* @param bool $forceVerif
* @return array
*/
@ -3913,19 +3935,18 @@ TOTAL : $dureeTot s\n";
$tabTmp[]=" d.typeEven LIKE '%$codeEven%' ";
$strIdAnn.=implode(' OR ',$tabTmp);
$strIdAnn.=')';
// @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getAnnonces... sur $siren", $strIdAnn);
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getAnnonces... sur $siren", $strIdAnn);
}
//elseif ($rubrique=='V') $strIdAnn=" AND d.Rubrique='ventes' ";
if ($rubrique<>'' && $rubrique<>'P' && $rubrique<>'PH' && $rubrique<>'D' && $rubrique<>'A' && $rubrique<>'C' && $rubrique<>'R'
&& $rubrique<>'L' && $rubrique<>'G' && $rubrique<>'V'
&& $rubrique<>'BODA' && $rubrique<>'BODB' && $rubrique<>'BODC' && !is_array($rubrique))
if ( !is_array($rubrique) && !in_array($rubrique, array('','P','PH','D','A','C','R','L','G','V','BODA','BODB','BODC')) )
return false;
/** On recherche dans les annonces récentes **/
if ($idAnnonce==0 || $idAnnonce>=1)
{
if ($idAnnonce==0 || $idAnnonce>=1) {
//Annonces supprimées ou rectifiées
$strDeleted = "AND d.dateSuppr=0 ";
if ($deleted===true) {
$strDeleted = "AND (d.dateSuppr=0 OR d.dateSuppr!='0000-00-00 00:00:00' AND d.idSuppr=0) ";
@ -4353,7 +4374,7 @@ TOTAL : $dureeTot s\n";
foreach ($tmp as $tmp2)
$tabNoProcol[$tmp2['codEven']]=$tmp2['affProcol'];
if (array_key_exists(current($tabJugements), $tabNoProcol)) {
if (@array_key_exists(current($tabJugements), $tabNoProcol)) {
// Ce code jugement Procol n'appel pas forcément l'indicateur : SituationJuridique=P
// sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnonceProcol sur $siren (avant le SWITCH)", print_r($tabNoProcol, true));
switch($tabNoProcol[current($tabJugements)]) {
@ -4370,7 +4391,7 @@ TOTAL : $dureeTot s\n";
$derProcol =str_replace('-','',key($tabJugements))*1;
$maxLatence=date('Ymd',mktime(0,0,0,(substr($derProcol,4,2)*1)+1,substr($derProcol,6,2),substr($derProcol,0,4)));
if (date('Ymd')>$maxLatence) {
//sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "Vérifier la Procédure Collective sur $siren (cas 2b)", "L'entreprise, siren $siren, fait l'objet d'une clôture de procédure collective de type ".current($tabJugements)." alors qu'elle est encore active !".EOL."Merci de vérifier et de supprimer la procédure le cas échéant !");
sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "Vérifier la Procédure Collective sur $siren (cas 2b)", "L'entreprise, siren $siren, fait l'objet d'une clôture de procédure collective de type ".current($tabJugements)." alors qu'elle est encore active !".EOL."Merci de vérifier et de supprimer la procédure le cas échéant !");
$tabRet=array();
}/*
$iRncs=new MRncs();
@ -4382,7 +4403,7 @@ TOTAL : $dureeTot s\n";
case 3: // Pas Procol si actif RCS
//$tabId=$this->getIdentiteLight($siren);
if ($tabId['Actif']*1>0) {
//sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "MInsee::getAnnonceProcol sur $siren (cas 3)", print_r($tabNoProcol, true));
sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "MInsee::getAnnonceProcol sur $siren (cas 3)", print_r($tabNoProcol, true));
$tabRet=array();
}
break;
@ -4400,7 +4421,7 @@ TOTAL : $dureeTot s\n";
if ($tabId['Actif']*1>0) {
/** Procédure trop ancienne **/
$derPr=WDate::dateT('Ymd','d/m/Y',$derProcol);
//@sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "Vérifier la Procédure Collective sur $siren (cas 5)", "L'entreprise, siren $siren, fait l'objet d'une clôture de procédure collective de type ".current($tabJugements)." en date du $derPr alors que cela fait plus de 12 ans !".EOL."Merci de vérifier et de supprimer la procédure le cas échéant !".EOL.print_r($tabBilans,true).EOL."Liste des derniers jugements :".EOL.print_r($tabJugements,true));
@sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "Vérifier la Procédure Collective sur $siren (cas 5)", "L'entreprise, siren $siren, fait l'objet d'une clôture de procédure collective de type ".current($tabJugements)." en date du $derPr alors que cela fait plus de 12 ans !".EOL."Merci de vérifier et de supprimer la procédure le cas échéant !".EOL.print_r($tabBilans,true).EOL."Liste des derniers jugements :".EOL.print_r($tabJugements,true));
$tabRet=array();
}
} elseif ((current($tabJugements)>=1300 && current($tabJugements)<=1313 && current($tabJugements)!=1310) ||
@ -4418,7 +4439,7 @@ TOTAL : $dureeTot s\n";
if ($derExercice>$derProcol) {
$derEx=WDate::dateT('Ymd','d/m/Y',$derExercice);
$derPr=WDate::dateT('Ymd','d/m/Y',$derProcol);
//@sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "Vérifier la Procédure Collective sur $siren (cas 4)", "L'entreprise, siren $siren, fait l'objet d'une clôture de procédure collective de type ".current($tabJugements)." en date du $derPr alors que le dernier bilan publié date du $derEx !".EOL."Merci de vérifier et de supprimer la procédure le cas échéant !".EOL.print_r($tabBilans,true).EOL."Liste des derniers jugements :".EOL.print_r($tabJugements,true));
@sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "Vérifier la Procédure Collective sur $siren (cas 4)", "L'entreprise, siren $siren, fait l'objet d'une clôture de procédure collective de type ".current($tabJugements)." en date du $derPr alors que le dernier bilan publié date du $derEx !".EOL."Merci de vérifier et de supprimer la procédure le cas échéant !".EOL.print_r($tabBilans,true).EOL."Liste des derniers jugements :".EOL.print_r($tabJugements,true));
$tabRet=array();
}
}
@ -4441,11 +4462,10 @@ TOTAL : $dureeTot s\n";
if ($derExercice>$derProcol) {
$derEx=WDate::dateT('Ymd','d/m/Y',$derExercice);
$derPr=WDate::dateT('Ymd','d/m/Y',$derProcol);
//@sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "MInsee::getAnnonceProcol Dissolution sur $siren (cas 4)", "L'entreprise, siren $siren, fait l'objet d'une dissolution de type ".current($tabJugements)." en date du $derPr alors que le dernier bilan publié date du $derEx !".EOL."Merci de vérifier et de supprimer le code évènement le cas échéant !".EOL.print_r($tabBilans,true).EOL."Liste des dernieres annonces :".EOL.print_r($tabJugements,true));
@sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "MInsee::getAnnonceProcol Dissolution sur $siren (cas 4)", "L'entreprise, siren $siren, fait l'objet d'une dissolution de type ".current($tabJugements)." en date du $derPr alors que le dernier bilan publié date du $derEx !".EOL."Merci de vérifier et de supprimer le code évènement le cas échéant !".EOL.print_r($tabBilans,true).EOL."Liste des dernieres annonces :".EOL.print_r($tabJugements,true));
$tabRet=array();
}
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnonceProcol Debug Fin sur $siren", print_r($tabRet,true));
return $tabRet;
}
@ -5459,91 +5479,94 @@ ORDER BY a.dateJugement DESC".EOL.EOL.print_r($collecte,true));*/
return false;
}
function getAdresse($siren, $nic) {
/* 'Nom'=>$etab['raisonSociale'],
'Tribunal'=>$etab['triCode'],
'Sigle'=>$etab['sigle'],
''=>$etab['enseigne'],
'Adresse'=>trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '.
$etab['adr_typeVoie'] .' '. $etab['adr_libVoie']))),
'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])),
'AdresseNum'=>$etab['adr_num'],
'AdresseBtq'=>$etab['adr_btq'],
'AdresseVoie'=>$etab['adr_typeVoie'],
'AdresseRue'=>$etab['adr_libVoie'],
'CP'=>$etab['adr_cp'],
'Ville'=>$etab['adr_ville'],
*/
/** On prend l'information dans la table etablissements **/
$tabIdentite=$this->getIdentiteLight($siren, $nic);
$codeVoie=@strtoupper($this->getCodeVoie($tabIdentite['AdresseVoie']));
//echo $codeVoie.EOL;
/**
* Retourne l'adresse normalisé
* @param string $siren
* @param string $nic
* @param string $cedexa (1=>On, 0=>Off)
* @return array
* L1_NOM, L2_NOM2, L3_ADRCOMP, L4_VOIE, L5_DISTSP, L6_POST, L7_PAYS
*/
function getAdresse($siren, $nic, $cedexa=1)
{
// Table etablissements
$tabIdentite = $this->getIdentiteLight($siren, $nic);
$codeVoie = strtoupper($this->getCodeVoie($tabIdentite['AdresseVoie']));
if ($codeVoie=='') $codeVoie=$tabIdentite['AdresseVoie'];
$tabRet=array('L1_NOM' => $tabIdentite['Nom'],
'L2_NOM2' => $tabIdentite['Enseigne'],
'L3_ADRCOMP' => '',
'L4_VOIE' => trim(preg_replace('/ +/',' ',preg_replace('/^0+/','',$tabIdentite['AdresseNum'].' '.
$tabIdentite['AdresseBtq'].' '.
$codeVoie.' '.
$tabIdentite['AdresseRue']))),
'L5_DISTSP' => $tabIdentite['Adresse2'],
'L6_POST' => $tabIdentite['CP'].' '.$tabIdentite['Ville'],
'L7_PAYS' => '',
);
if (strlen($tabRet['L4_VOIE'])>38)
$tabRet = array(
'L1_NOM' => $tabIdentite['Nom'],
'L2_NOM2' => $tabIdentite['Enseigne'],
'L3_ADRCOMP' => '',
'L4_VOIE' => trim(preg_replace('/ +/',' ',preg_replace('/^0+/','',$tabIdentite['AdresseNum'].' '.
$tabIdentite['AdresseBtq'].' '. $codeVoie.' '. $tabIdentite['AdresseRue']))),
'L5_DISTSP' => $tabIdentite['Adresse2'],
'L6_POST' => $tabIdentite['CP'].' '.$tabIdentite['Ville'],
'L7_PAYS' => '',
);
if (strlen($tabRet['L4_VOIE'])>38) {
$tabRet['L4_VOIE']=trim(preg_replace('/ +/',' ',preg_replace('/^0+/','',
$tabIdentite['AdresseNum'].' '.
$tabIdentite['AdresseBtq'].' '.
$tabIdentite['AdresseVoie'].' '.
$tabIdentite['AdresseRue'])));
}
$tabNotice=$this->getInfosNotice($siren, $nic);
//if ($tabNotice['insL4_VOIE']<>'' && $tabNotice['insL4_VOIE']<>$tabRet['L4_VOIE'])
// $tabRet['L4_VOIE']=$tabNotice['insL4_VOIE'];
if ($tabNotice['L6_POST']<>'' && $tabNotice['L6_POST']<>$tabRet['L6_POST'])
$tabRet['L6_POST']=$tabNotice['L6_POST'];
//Notice 80 - Override $tabRet
$tabNotice = $this->getInfosNotice($siren, $nic);
if ($tabNotice['L6_POST']<>'' && $tabNotice['L6_POST']<>$tabRet['L6_POST']) {
$tabRet['L6_POST'] = $tabNotice['L6_POST'];
}
$tabTmp=$this->iDbInsee->select('identite','NOM2, ADR_COMP, ADR_DISTSP, PAYS',
$tabTmp = $this->iDbInsee->select('identite','NOM2, ADR_COMP, ADR_DISTSP, PAYS',
"SIREN=$siren AND NIC=$nic", false, MYSQL_ASSOC);
$tabIdentite=$tabTmp[0];
if ($tabIdentite['NOM2']<>'' && $tabIdentite['NOM2']<>$tabRet['L2_NOM2'])
$tabIdentite = $tabTmp[0];
if ($tabIdentite['NOM2']<>'' && $tabIdentite['NOM2']<>$tabRet['L2_NOM2']) {
$tabRet['L2_NOM2']=$tabIdentite['NOM2'];
if ($tabIdentite['ADR_COMP']<>'' && $tabIdentite['ADR_COMP']<>$tabRet['L3_ADRCOMP'])
}
if ($tabIdentite['ADR_COMP']<>'' && $tabIdentite['ADR_COMP']<>$tabRet['L3_ADRCOMP']) {
$tabRet['L3_ADRCOMP']=$tabIdentite['ADR_COMP'];
if ($tabIdentite['ADR_DISTSP']<>'' && $tabIdentite['ADR_DISTSP']<>$tabRet['L5_DISTSP'])
}
if ($tabIdentite['ADR_DISTSP']<>'' && $tabIdentite['ADR_DISTSP']<>$tabRet['L5_DISTSP']) {
$tabRet['L5_DISTSP']=$tabIdentite['ADR_DISTSP'];
if ($tabIdentite['PAYS']<>'' && $tabIdentite['PAYS']<>$tabRet['L7_PAYS'])
}
if ($tabIdentite['PAYS']<>'' && $tabIdentite['PAYS']<>$tabRet['L7_PAYS']) {
$tabRet['L7_PAYS']=$tabIdentite['PAYS'];
}
$tabTmp=$this->iDbInsee->select('cedexa','contrat, hexavia, codePostal, l1_nom, l2_nomComp, l3_compGeo, l4_numVoie, l4_indRep, l4_libVoie, l5_distrib, l5_numMS, l5_libCom, l6_codCedex, l6_achCedex, codeInsee, actif, dateFlux, dateInsert, dateUpdate', "siren=$siren AND nic=$nic", false, MYSQL_ASSOC);
$tabCedex=$tabTmp[0];
//Cedexa
if ($cedexa = 1) {
$tabTmp = $this->iDbInsee->select('cedexa','contrat, hexavia, codePostal, l1_nom, l2_nomComp, l3_compGeo, l4_numVoie, l4_indRep, l4_libVoie, l5_distrib, l5_numMS, l5_libCom, l6_codCedex, l6_achCedex, codeInsee, actif, dateFlux, dateInsert, dateUpdate', "siren=$siren AND nic=$nic", false, MYSQL_ASSOC);
if ( count($tabTmp)>0 ) {
$tabCedex = $tabTmp[0];
if ($tabCedex['l2_nomComp']<>'' && $tabCedex['l2_nomComp']<>$tabRet['L2_NOM2'])
$tabRet['L2_NOM2']=$tabCedex['l2_nomComp'];
if ($tabCedex['l3_compGeo']<>'' && $tabCedex['l3_compGeo']<>$tabRet['L3_ADRCOMP'])
$tabRet['L3_ADRCOMP']=$tabCedex['l3_compGeo'];
$l4=trim(preg_replace('/ +/',' ',preg_replace('/^0+/','', $tabCedex['l4_numVoie'].' '.$tabCedex['l4_indRep'].' '.$tabCedex['l4_libVoie'])));
if ($l4<>'' && $l4<>$tabRet['L4_VOIE'])
$tabRet['L4_VOIE']=$l4;
$l5=trim(preg_replace('/ +/',' ', $tabCedex['l5_distrib'].' '.$tabCedex['l5_numMS'].' '.$tabCedex['l5_libCom']));
if ($l5<>'' && $l5<>$tabRet['L5_DISTSP'])
$tabRet['L5_DISTSP']=$l5;
$l6=trim(preg_replace('/ +/',' ', $tabCedex['l6_codCedex'].' '.$tabCedex['l6_achCedex']));
if ($l6<>'' && $l6<>$tabRet['L6_POST'])
$tabRet['L6_POST']=$l6;
if ($tabCedex['l2_nomComp']<>'' && $tabCedex['l2_nomComp']<>$tabRet['L2_NOM2']) {
$tabRet['L2_NOM2']=$tabCedex['l2_nomComp'];
}
if ($tabCedex['l3_compGeo']<>'' && $tabCedex['l3_compGeo']<>$tabRet['L3_ADRCOMP']) {
$tabRet['L3_ADRCOMP']=$tabCedex['l3_compGeo'];
}
$l4=trim(preg_replace('/ +/',' ',preg_replace('/^0+/','', $tabCedex['l4_numVoie'].' '.$tabCedex['l4_indRep'].' '.$tabCedex['l4_libVoie'])));
if ($l4<>'' && $l4<>$tabRet['L4_VOIE']) {
$tabRet['L4_VOIE']=$l4;
}
$l5=trim(preg_replace('/ +/',' ', $tabCedex['l5_distrib'].' '.$tabCedex['l5_numMS'].' '.$tabCedex['l5_libCom']));
if ($l5<>'' && $l5<>$tabRet['L5_DISTSP']) {
$tabRet['L5_DISTSP']=$l5;
}
$l6=trim(preg_replace('/ +/',' ', $tabCedex['l6_codCedex'].' '.$tabCedex['l6_achCedex']));
if ($l6<>'' && $l6<>$tabRet['L6_POST']) {
$tabRet['L6_POST']=$l6;
}
}
}
return $tabRet;
/** RNCS ? **/
/*$tabTmp=$this->iDb->select('rncs_etab','enseigne, nomCommercial, adrNumVoie, adrIndRep, adrLibVoie, adrTypeVoie,
adrVoie, cp, commune, adrComp, adresse1, adresse2, adresse3',
"siren=$siren AND nic=$nic", false, MYSQL_ASSOC);
$tabIdentite=$tabTmp[0];*/
}
function getActivite($siren, $nic=0) {
function getActivite($siren, $nic=0)
{
$tabIdentite=$this->getIdentiteLight($siren, $nic);
// F.Jur
$fj=$tabIdentite['FJ'];

View File

@ -78,47 +78,51 @@ class MBourse
** @param integer $id
** @return unknown
**/
function getInfosReg($siren=false, $id=false) {
function getInfosReg($siren=false, $id=null)
{
if (!$siren) $siren = $this->siren;
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='';
if ($isin!='') {
$iDb = new WDB('presse');
$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);
$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'],
);
$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'],
'pj'=>$ann['pressReleaseAttachments'],
'url'=>$ann['pressReleaseUrl'],
'dateInsertionSD'=>$ann['dateInsert'],
);
}
}
}
@ -157,7 +161,7 @@ class MBourse
'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);
}
$tabRet=$tabRes[0];
$timer['infosBoursieres-infosIsin']=microtime(true);

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

@ -16,7 +16,7 @@ class MLiens2
/**
* @var Zend_Db_Adapter_Abstract
*/
protected $db = null;
protected $db;
/**
* Array to list id find during list of childrens
@ -24,36 +24,20 @@ class MLiens2
*/
protected $findId = array();
protected $_schema = 'jo';
/**
*
* @param string $id
* @param string $type ref|siren
* @throws SoapFault
*/
public function __construct($id, $type = 'ref', $db=null)
public function __construct($id, $type = 'ref')
{
if (null === $this->db && null === $db) {
//Load configuration
if (Zend_Registry::isRegistered('config')) {
$c = Zend_Registry::get('config');
} else {
$c = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini');
}
//Connect to the database
try {
$this->db = Zend_Db::factory($c->profil->db->jo);
$this->db->getConnection();
} catch (Zend_Db_Adapter_Exception $e) {
throw new Exception($e->getMessage());
} catch (Zend_Exception $e) {
throw new Exception($e->getMessage());
}
} else {
$this->db = $db;
}
Zend_Db_Table::setDefaultAdapter($this->db);
//Get defaut database adapter
$this->db = Zend_Db_Table_Abstract::getDefaultAdapter();
//Get Id
if ( $type == 'siren' ) {
$this->siren = $id;
$refM = new Application_Model_JoLiensRef();
@ -75,7 +59,6 @@ class MLiens2
*/
public function getActionnaires($id = null, $actif = null)
{
if ( null === $id ) {
$id = $this->idRef;
}
@ -88,11 +71,11 @@ class MLiens2
try {
$sql = $this->db->select()
->from(array('l'=>'liens2'),
->from(array('l'=>$this->_schema.'.liens2'),
array('id', 'idAct', 'PDetention', 'Pvote', 'MajMin', 'idPar',
'dateEffetLien', 'dateInsert', 'dateUpdate'))
->where('idPar=?', $id)
->join(array('r'=>'liensRef'), 'l.idAct=r.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',
@ -112,7 +95,7 @@ class MLiens2
$liens = $this->db->fetchAll($sql, null, Zend_Db::FETCH_OBJ);
} catch (Zend_Db_Exception $e) {
throw new Exception($e->getMessage(), 'ERR');
throw new Exception(__METHOD__ . ': ' . $e->getMessage());
}
return $liens;
@ -144,11 +127,11 @@ class MLiens2
try {
$sql = $this->db->select()
->from(array('l'=>'liens2'),
->from(array('l'=>$this->_schema.'.liens2'),
array('id', 'idAct', 'PDetention', 'Pvote', 'MajMin', 'idPar',
'dateEffetLien', 'dateInsert', 'dateUpdate'))
->where('idAct=?', $id)
->join(array('r'=>'liensRef'), 'l.idPar=r.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',
@ -168,7 +151,7 @@ class MLiens2
$liens = $this->db->fetchAll($sql, null, Zend_Db::FETCH_OBJ);
} catch (Zend_Db_Exception $e) {
throw new Exception($e->getMessage(), 'ERR');
throw new Exception(__METHOD__ . ': ' . $e->getMessage());
}
return $liens;
@ -193,24 +176,28 @@ class MLiens2
if ( null !== $siren && intval($siren) != 0 )
{
$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);
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);
}
//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());
}
$sql->order('fonction_code DESC');
$sql->order('raisonSociale ASC');
$result = $directionsM->fetchAll($sql);
}
return $result;
@ -239,28 +226,23 @@ class MLiens2
foreach ( $liens as $item ) {
//Don't through again and again
if ( in_array($item->idAct, $this->findId) ) {
continue;
}
// Remove Special
if ( $item->idAct <= 1000 ) {
return $id;
return $item->idAct;
}
//Same id
elseif ( $item->idAct == $id ) {
return $id;
}
//PDetention>50
elseif ( $item->PDetention > 50 ) {
elseif ( $item->PDetention > 50 && $item->idAct > 1000 ) {
return $this->getHead($item->idAct);
}
//MajMin=+
elseif ( $item->MajMin == '+' ) {
elseif ( $item->MajMin == '+' && $item->idAct > 1000 ) {
return $this->getHead($item->idAct);
}
//--
elseif ( $item->idAct > 1000 ) {
return $item->idAct;
return $this->getHead($item->idAct);
}
}
}

View File

@ -41,26 +41,33 @@ class MMarques {
$strSql="1 ";
if ($siren>0) $strSql.="AND sirenDeposant=$siren ";
if ($idDepot>0) $strSql.="AND numeroMarque=$idDepot ";
$res=$this->iDb->select('marques', 'nomMarque, rayonMarque, detailDeposant, sirenDeposant, dateDepot, numeroMarque, classesMarque, periMarque, dateExpir, idObjetImg, idObjetPdf', "$strSql ORDER BY dateDepot DESC");
$res=$this->iDb->select('marques', 'nomMarque, rayonMarque, detailDeposant, sirenDeposant, dateDepot, lieuDepot, numeroMarque, classesMarque, periMarque, detailDeposant, detailMandataire, detailStatut, dateExpir, idObjetImg, idObjetPdf', "$strSql ORDER BY dateDepot DESC");
if (count($res)>0) {
foreach ($res as $i=>$marque) {
if ($marque['nomMarque']=='&nbsp;') $nomMarque='(figurative)';
else $nomMarque=$marque['nomMarque'];
$marques[$i]=array( 'nomMarque' =>$nomMarque,
'rayonMarque' =>$marque['rayonMarque'],
'detailDeposant'=>$marque['detailDeposant'],
'sirenDeposant' =>$marque['sirenDeposant'],
'dateDepot' =>$marque['dateDepot'],
'classesMarque' =>$marque['classesMarque'],
'periMarque' =>$marque['periMarque'],
'dateExpir' =>$marque['dateExpir'],
'numeroMarque' =>$marque['numeroMarque'],
'imgLink' =>$marque['idObjetImg'],
'pdfLink' =>$marque['idObjetPdf'],
);
$marques[$i] = array (
'nomMarque' => $nomMarque,
'rayonMarque' => $marque['rayonMarque'],
'detailDeposant' => $marque['detailDeposant'],
'detailMandataire' => $marque['detailMandataire'],
'detailStatut' => $marque['detailStatut'],
'sirenDeposant' => $marque['sirenDeposant'],
'dateDepot' => $marque['dateDepot'],
'lieuDepot' => $marque['lieuDepot'],
'classesMarque' => $marque['classesMarque'],
'periMarque' => $marque['periMarque'],
'dateExpir' => $marque['dateExpir'],
'numeroMarque' => $marque['numeroMarque'],
'imgLink' => $marque['idObjetImg'],
'pdfLink' => $marque['idObjetPdf'],
);
if ($idDepot<>0) {
if ($marque['numeroMarque']==$idDepot) {
if (file_exists(DOC_WEB_LOCAL."marques/$idDepot.jpeg") &&
//Recherche des fichiers
if (file_exists(DOC_WEB_LOCAL."marques/$idDepot.jpeg") &&
filesize(DOC_WEB_LOCAL."marques/$idDepot.jpeg")>42)
$marques[$i]['UrlLien']=DOC_WEB_URL."marques/$idDepot.jpeg";
elseif (file_exists(DOC_WEB_LOCAL."marques/$idDepot.gif") &&
@ -68,13 +75,28 @@ class MMarques {
$marques[$i]['UrlLien']=DOC_WEB_URL."marques/$idDepot.gif";
else
$marques[$i]['UrlLien']='';
/*if (!file_exists(DOC_WEB_LOCAL."marques/$siren-$idDepot.jpg") ||
filesize(DOC_WEB_LOCAL."marques/$siren-$idDepot.jpg")<43) {
$fp=@fopen(DOC_WEB_LOCAL."marques/$siren-$idDepot.jpg", 'w');
$fp=@fopen(LOG_PATH."/marques.log", "a");
*/
//return end($marques);
return array($marques[$i]);;
//Produits et Services
$resPS=$this->iDb->select('marques_classes', 'remarque', "numeroMarque=$idDepot");
if (count($resPS)>0) {
$txt = array();
foreach ($resPS as $item) {
$txt[] = $item['remarque'];
}
$marques[$i]['PS'] = $txt;
}
//Historique
$resHisto=$this->iDb->select('marques_histo', 'histo2', "numeroMarque=$idDepot ORDER BY dat DESC");
if (count($resHisto)>0) {
$txt = array();
foreach ($resHisto as $item) {
$txt[] = $item['histo2'];
}
$marques[$i]['histo'] = $txt;
}
return array($marques[$i]);
}
}
}

View File

@ -407,20 +407,34 @@ class MRncs {
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;
}

View File

@ -95,8 +95,19 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
return false;
}
global $tva, $tabInfla, $tabFormules, $tabFormulesRatios, $mBil, $tabBilan,
$efftr, $tabRatiosInfos;
global $tva;
global $tabInfla;
global $tabFormules;
global $tabFormulesRatios;
global $mBil;
global $tabBilan;
global $efftr;
global $tabRatiosInfos;
global $tabVariables;
// Valorisation
global $tabTxRendObli;
global $R, $Rp, $Rp2, $Rp3, $Rp4;
global $Rs, $Rsp, $Rsp2, $Rsp3, $Rsp4;
@ -104,7 +115,10 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
global $regR, $regRs;
global $Ra, $Rap, $Rdiff;
//tabInfla, $tabFormules
require_once 'Metier/tmp/configMRatios.php';
//Définition du nom des variables
require_once realpath(dirname(__FILE__)).'/globalCommentaires.php';
$NIVEAU=$cycleClient; // 1, 2, 3 ou 5 Niveau de version des commentaires
@ -128,48 +142,28 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
$type = 'scores';
}
if ( in_array($cycleClient, array(1, 2, 3, 4, 5)) ) {
$genereComment=true;
} else {
$genereComment=false;
$genereComment=false;
if ( in_array($cycleClient, array(2, 3, 4, 5)) ) {
$genereComment = true;
}
$tabFormulesRatios=array();
//Chargement des phrases de commentaires
if ($genereComment) {
switch( $type ) {
case 'scores':
$version = '_405'; //@todo : Version en RECETTE et en PROD
$tableComments = 'scores_commentaires';
break;
case 'valo':
$version = '_22';
$tableComments = 'valo_commentaires';
break;
}
$tabCommentaires = $tabTri = $tabTriAff = array();
$tabTmp=$iDb->select(
$tableComments.$version,
'code, langue, cycle, ligne, commentaire, tri, deleted',
"deleted=0 AND cycle=$cycleClient AND ligne NOT LIKE '%*%' AND commentaire NOT LIKE '.*%' ORDER BY langue ASC, cycle ASC, code ASC, ligne ASC",
false, MYSQL_ASSOC);
foreach ($tabTmp as $i=>$commentaire) {
$id=$commentaire['code']*1;
$cycle=$commentaire['cycle']*1;
$ligne=$commentaire['ligne']*1;
$tabCommentaires[$id][$cycle][$ligne]=$commentaire['commentaire'];
if ($commentaire['tri']) {
$tabTri[$id]=$commentaire['tri'];
$tabTriAff[$id]=($commentaire['tri'].'.'.(10000000+(1*$commentaire['code'])))*1;
}
}
foreach ($tabFormules as $tmpFormule)
$tabFormulesRatios[$tmpFormule['id']]=$tmpFormule;
//Chargement des phrases de commentaires - @todo : Mettre en cache
$tabCommentaires = $tabTri = $tabTriAff = array();
switch( $type ) {
case 'scores':
$version = '405';
require_once 'Metier/tmp/indiscore_'.$version.'_comments.php';
break;
case 'valo':
$version = '22';
require_once 'Metier/tmp/indiscorevalo_'.$version.'_comments.php';
break;
}
//$tabFormules => configMRatios
$tabFormulesRatios = array();
foreach ($tabFormules as $tmpFormule) {
$tabFormulesRatios[$tmpFormule['id']] = $tmpFormule;
}
$tabRatiosSecteurs = $tabBilansR = $tabRatios2 = $tabRatiosEvol = array();
@ -277,6 +271,40 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
$TEMOINMRQLIST=0; // positionnement de ligne de liste des marques déposées
$TEMOINMRQLIST_MAX=$MAX_TEMOINS; // nombre maxi de lignes des listes des marques déposées
//@todo : Commentaires
$TEMOINVALBIL=0; // positionnement de ligne de liste des marques déposées
$TEMOINVALBIL_MAX=$MAX_TEMOINS; // nombre maxi de lignes des listes des marques déposées
$TEMOINVALCONC=0; // positionnement de ligne de liste des marques déposées
$TEMOINVALCONC_MAX=$MAX_TEMOINS; // nombre maxi de lignes des listes des marques déposées
$TEMOINVALCR=0; // positionnement de ligne de liste des marques déposées
$TEMOINVALCR_MAX=$MAX_TEMOINS; // nombre maxi de lignes des listes des marques déposées
$TEMOINVALDIAG=0; // positionnement de ligne de liste des marques déposées
$TEMOINVALDIAG_MAX=$MAX_TEMOINS; // nombre maxi de lignes des listes des marques déposées
$TEMOINVALMETH=0; // positionnement de ligne de liste des marques déposées
$TEMOINVALMETH_MAX=$MAX_TEMOINS; // nombre maxi de lignes des listes des marques déposées
$TEMOINVALMRET=0; // positionnement de ligne de liste des marques déposées
$TEMOINVALMRET_MAX=$MAX_TEMOINS; // nombre maxi de lignes des listes des marques déposées
$TEMOINVALPATR=0; // positionnement de ligne de liste des marques déposées
$TEMOINVALPATR_MAX=$MAX_TEMOINS; // nombre maxi de lignes des listes des marques déposées
$TEMOINVALPOND=0; // positionnement de ligne de liste des marques déposées
$TEMOINVALPOND_MAX=$MAX_TEMOINS; // nombre maxi de lignes des listes des marques déposées
$TEMOINVALPRES=0; // positionnement de ligne de liste des marques déposées
$TEMOINVALPRES_MAX=$MAX_TEMOINS; // nombre maxi de lignes des listes des marques déposées
$TEMOINVALRESV=0; // positionnement de ligne de liste des marques déposées
$TEMOINVALRESV_MAX=$MAX_TEMOINS; // nombre maxi de lignes des listes des marques déposées
$TEMOINVALRETR=0; // positionnement de ligne de liste des marques déposées
$TEMOINVALRETR_MAX=$MAX_TEMOINS; // nombre maxi de lignes des listes des marques déposées
$TEMOINVALTABB=0; // positionnement de ligne de liste des marques déposées
$TEMOINVALTABB_MAX=$MAX_TEMOINS; // nombre maxi de lignes des listes des marques déposées
$TEMOINVALTABS=0; // positionnement de ligne de liste des marques déposées
$TEMOINVALTABS_MAX=$MAX_TEMOINS; // nombre maxi de lignes des listes des marques déposées
$TEMOINVALTABR=0; // positionnement de ligne de liste des marques déposées
$TEMOINVALTABR_MAX=$MAX_TEMOINS; // nombre maxi de lignes des listes des marques déposées
$TEMOINVALMINMAX=0; // positionnement de ligne de liste des marques déposées
$TEMOINVALMINMAX_MAX=$MAX_TEMOINS; // nombre maxi de lignes des listes des marques déposées
$TEMOINVALMAXMIN=0; // positionnement de ligne de liste des marques déposées
$TEMOINVALMAXMIN_MAX=$MAX_TEMOINS; // nombre maxi de lignes des listes des marques déposées
/** Zones utilisées dans les calculs **/
$CALCUL1=0;
$CALCUL2=0;
@ -449,14 +477,6 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
$tabRatiosInfos=array();
foreach ($tabFormules as $i=>$Rtmp)
$tabRatiosInfos[$Rtmp['id']]=array( 'unite' => $Rtmp['unite']);
/*[id] => 792
[libelle] => PART DES PROVISIONS TECHNIQUES (Placements/Provisions techniques)
[commentaires] => Les sociétés d'assurances doivent diviser les risques de leurs placements : elles ne peuvent pas placer plus de 5 % de leurs provisions techniques en valeurs émises par une même société (actions, obligations ou prêts). La limite de 5 % est portée à 10 %, à condition que le total ne dépasse pas 40 % de l'ensemble des placements admis. Le ratio de dispersion est de 0,5 % pour les actions non cotées. Il est de 10 % pour un immeuble ou des parts d'une société immobilière ou foncière.
[unite] => %
[borneMin] =>
[borneMax] =>
[formule] =>
*/
// Tableau des années de bilans
$tabAnnees=array();
@ -537,7 +557,10 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
if (count($tabAnnees)>2) $strAnnees='AND annee BETWEEN '.$tabAnnees[2].' AND '.$tabAnnees[0];
elseif (count($tabAnnees)>1) $strAnnees='AND annee BETWEEN '.$tabAnnees[1].' AND '.$tabAnnees[0];
else $strAnnees='AND annee='.$tabAnnees[0];
$tabTmp=$iDb->select('ratios_secteurs', 'annee, naf5, naf4, id, (montant/nombre) AS ratio, montant, nombre', "1 $strNaf $strAnnees ORDER BY annee DESC, id ASC", true, MYSQL_ASSOC);
$tabTmp=$iDb->select('ratios_secteurs',
'annee, naf5, naf4, id, (montant/nombre) AS ratio, montant, nombre',
"1 $strNaf $strAnnees ORDER BY annee DESC, id ASC",
INDISCORE_DEBUG, MYSQL_ASSOC);
$anneePre=$tabTmp[0]['annee'];
$iAn=0;
foreach ($tabTmp as $tabTmp2) {
@ -694,7 +717,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
if ($BILANANNEEp4>0) {
$BILANp4=1;
$nbMoisBilDate=WDate::nbMoisEntre($BILANDATEp4, $BILANDATE);
$nbMoisBilCumul+=$nmp4;
//$nbMoisBilCumul+=$nmp4;
$tabClotures[$BILANDATEp4]=$BILANDATEp4;
}
@ -707,7 +730,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
/** Détection fine de l'état de fermeture éventuel à l'INSEE **/
$tabTmp=$iDb->select('insee.insee_even', 'insEVE, insDATEVE',
"insSIREN=$siren AND insEVE IN ('400','410','420','425','MPF','MNP') ORDER BY insDATEVE DESC", false, MYSQL_ASSOC);
"insSIREN=$siren AND insEVE IN ('400','410','420','425','MPF','MNP') ORDER BY insDATEVE DESC", INDISCORE_DEBUG, MYSQL_ASSOC);
if (count($tabTmp)>0) {
$tabModif=$tabTmp[0];
$ETATINSEE_MMAA=substr($tabModif['insDATEVE'],0,7);
@ -734,7 +757,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
/** Eléments provenant des évènements INSEE **/
$tabTmp=$iDb->select('insee.insee_even', 'COUNT(*) AS nb, MAX(insDATEVE) AS dateMaj',
"insSIREN=$siren", false, MYSQL_ASSOC);
"insSIREN=$siren", INDISCORE_DEBUG, MYSQL_ASSOC);
$tabModif=$tabTmp[0];
$MODIFINSEE=$tabModif['nb'];
$MODIFINSEEDATE=$tabModif['dateMaj'];
@ -743,7 +766,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
/** Eléments provenant des évènements RNCS **/
$tabTmp=$iDb->select('jo.rncs_modifs', 'COUNT(*) AS nb, MAX(flux) AS dateMaj',
"siren=$siren", false, MYSQL_ASSOC);
"siren=$siren", INDISCORE_DEBUG, MYSQL_ASSOC);
$tabModif=$tabTmp[0];
$MODIFRNCS=$tabModif['nb'];
$MODIFRNCSDATE=$tabModif['dateMaj'];
@ -780,7 +803,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
$timer['even']=microtime(true);
/** Tableau des taux d'inflation et inflations moyennes **/
$tabTmp=$iDb->select('sdv1.inflation', 'annee, infla', "annee<=$BILANANNEE ORDER BY ANNEE DESC LIMIT 0,10", false, MYSQL_ASSOC);
$tabTmp=$iDb->select('sdv1.inflation', 'annee, infla', "annee<=$BILANANNEE ORDER BY ANNEE DESC LIMIT 0,10", INDISCORE_DEBUG, MYSQL_ASSOC);
$INFLA=array();
foreach ($tabTmp as $iTmp=>$tabTmp2) {
$INFLA[$tabTmp2['annee']]=$tabTmp2['infla'];
@ -1908,7 +1931,7 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
*
**/
$ENQUETE='';
$tabTmp=$iDb->select('scores_cutoff', 'encours, scoreSolv, scoreDir, scoreConf, DATE(dateInsert)*1 AS dateInsert, DATE(dateUpdate)*1 AS dateUpdate', "siren=$siren", true, MYSQL_ASSOC);
$tabTmp=$iDb->select('scores_cutoff', 'encours, scoreSolv, scoreDir, scoreConf, DATE(dateInsert)*1 AS dateInsert, DATE(dateUpdate)*1 AS dateUpdate', "siren=$siren", INDISCORE_DEBUG, MYSQL_ASSOC);
$timer['scores_cutoff'] = microtime(true);
if (isset($tabTmp[0]['encours'])) {
if($tabTmp[0]['dateUpdate']>$tabTmp[0]['dateInsert'])
@ -1934,7 +1957,7 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
/** Grand Groupe **/
$tabTmp=$iDb->select('jo.surveillances_site', 'count(*) as nb',
"login IN ('dgfipb', 'dgfipc', 'dgfipifu1', 'dgfipifu10', 'dgfipifu11', 'dgfipifu12', 'dgfipifu13', 'dgfipifu14', 'dgfipifu2', 'dgfipifu3', 'dgfipifu4', 'dgfipifu5', 'dgfipifu6', 'dgfipifu7', 'dgfipifu8', 'dgfipifu9') AND siren=$siren AND dateSuppr=0",
false, MYSQL_ASSOC);
INDISCORE_DEBUG, MYSQL_ASSOC);
$timer['GrandGroupe'] = microtime(true);
$tabTmp=$tabTmp[0];
if ($tabTmp['nb']>0) $GRANDGROUPE=true;
@ -2334,7 +2357,7 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
case 92: // Association loi 1901 ou assimilé
case 93: // Fondation
case 99: // Fondation
$tabTmp=$iDb->select('jo.asso_bilans', 'dateCloture, dateCloture*1 as dateClotureNum', "siren=$siren ORDER BY dateCloture DESC LIMIT 0,5", true, MYSQL_ASSOC);
$tabTmp=$iDb->select('jo.asso_bilans', 'dateCloture, dateCloture*1 as dateClotureNum', "siren=$siren ORDER BY dateCloture DESC LIMIT 0,5", INDISCORE_DEBUG, MYSQL_ASSOC);
$NBBILAN=count($tabTmp);
$BILANDATE=$tabTmp[0]['dateClotureNum'];
if ($BILANDATE>0 && $tabIdentite['SituationJuridique']=='' && $tabIdentite['Actif']==1) {
@ -2458,7 +2481,7 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
if ($genereComment) {
// NBNIC
$tabTmp=$iDb->select('jo.etablissements', 'MAX(NIC) as NBNIC', "SIREN=$SIREN", true, MYSQL_ASSOC);
$tabTmp=$iDb->select('jo.etablissements', 'MAX(NIC) as NBNIC', "SIREN=$SIREN", INDISCORE_DEBUG, MYSQL_ASSOC);
$NBNIC=$tabTmp[0]['NBNIC'];
$timer['nbNic']=microtime(true);
@ -2478,20 +2501,20 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
/** N°ordre de l'entreprise dans le classement des CA pour le marché de l'entreprise **/
$caTmp=round($CABIOUES,0);
$tabTmp=$iDb->select('etablissements_act', 'count(*) AS nb', "/*siren=$siren AND */siege=1 AND ape_entrep='$naf' AND bilFL>=$caTmp", true, MYSQL_ASSOC);
$tabTmp=$iDb->select('etablissements_act', 'count(*) AS nb', "/*siren=$siren AND */siege=1 AND ape_entrep='$naf' AND bilFL>=$caTmp", INDISCORE_DEBUG, MYSQL_ASSOC);
$MARCHEPLACE=@$tabTmp[0]['nb']*1;
$tabTmp=$iDb->select('etablissements_act', 'count(*) AS nb', "/*siren=$siren AND */siege=1 AND ape_entrep='$naf' AND bilFL>=$caTmp AND adr_dep='".$tabIdentite['Dept']."'", true, MYSQL_ASSOC);
$tabTmp=$iDb->select('etablissements_act', 'count(*) AS nb', "/*siren=$siren AND */siege=1 AND ape_entrep='$naf' AND bilFL>=$caTmp AND adr_dep='".$tabIdentite['Dept']."'", INDISCORE_DEBUG, MYSQL_ASSOC);
$MARCHEPLACE_DEP=@$tabTmp[0]['nb']*1;
$tabTmp=$iDb->select('etablissements_act', 'count(*) AS nb', "siege=1 AND ape_entrep='$naf' AND adr_dep='".$tabIdentite['Dept']."' AND adr_com=".$tabIdentite['codeCommune'], true, MYSQL_ASSOC);
$tabTmp=$iDb->select('etablissements_act', 'count(*) AS nb', "siege=1 AND ape_entrep='$naf' AND adr_dep='".$tabIdentite['Dept']."' AND adr_com=".$tabIdentite['codeCommune'], INDISCORE_DEBUG, MYSQL_ASSOC);
$MARCHENBENT_VILLE=@$tabTmp[0]['nb']*1;
$tabTmp=$iDb->select('etablissements_act', 'count(*) AS nb', "siege=1 AND ape_entrep='$naf' AND adr_dep='".$tabIdentite['Dept']."'", true, MYSQL_ASSOC);
$tabTmp=$iDb->select('etablissements_act', 'count(*) AS nb', "siege=1 AND ape_entrep='$naf' AND adr_dep='".$tabIdentite['Dept']."'", INDISCORE_DEBUG, MYSQL_ASSOC);
$MARCHENBENT_DEP=@$tabTmp[0]['nb']*1;
$timer['marcheEntrepPosition']=microtime(true);
/** Liste des communes couvertes **/
$tabTmp=$iDb->select( 'jo.etablissements',
'siren, nic, adr_dep, adr_com',
"siren=$siren AND nic>0 AND actif=1 ORDER BY siege DESC, teff_etab DESC LIMIT 0,50", false, MYSQL_ASSOC);
"siren=$siren AND nic>0 AND actif=1 ORDER BY siege DESC, teff_etab DESC LIMIT 0,50", INDISCORE_DEBUG, MYSQL_ASSOC);
$tabCommunes=array();
foreach ($tabTmp as $iTmp=>$tabArret) {
$dep=$tabArret['adr_dep']*1;
@ -2515,7 +2538,7 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
$RISQUEGEO=array();
$tabTmp=$iDb->select( 'pollutions.prim_Risques',
'libCommune, risque',
"codeInsee IN ('$strCom') ORDER BY risque", false, MYSQL_ASSOC);
"codeInsee IN ('$strCom') ORDER BY risque", INDISCORE_DEBUG, MYSQL_ASSOC);
foreach ($tabTmp as $iTmp=>$tabArret) {
$RISQUEGEO[]=$tabArret['risque']; // Libellé risque lié à la localisation l'un des etablissements (INNONDATION, TREMBLEMENT DE TERRE etc..)
$RISQUEGEO_NB++;
@ -2530,7 +2553,7 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
$RISQUEGEOARRETE_VILLE=$RISQUEGEOARRETE=$RISQUEGEOARRETE_DATE=$RISQUEGEOARRETE_JODATE=$RISQUEGEOARRETE_EVTDATE=$RISQUEGEOARRETE_AA='';
$tabTmp=$iDb->select( 'pollutions.prim_Arrets',
'libCommune, risque, dateDeb, dateFin, dateArret, dateJO',
"codeInsee IN ('$strCom') ORDER BY dateFin DESC", false, MYSQL_ASSOC);
"codeInsee IN ('$strCom') ORDER BY dateFin DESC", INDISCORE_DEBUG, MYSQL_ASSOC);
foreach ($tabTmp as $iTmp=>$tabArret) {
$RISQUEGEOARRETE_NB++;
if ($iTmp==0) {
@ -2549,7 +2572,7 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
$sirenFin=$siren.'99999';
$tabTmp=$iDb->select( 'pollutions.iREP_etablissements e, pollutions.iREP_rejets_etablissements r',
'e.codecommune, e.nom, e.codesiret, e.idetab, r.idrejet, r.coderejet, r.libellerejet, r.codeouvragedepollution, r.codeentitehydro, r.nomstep, r.nommilieu',
"e.codesiret BETWEEN $sirenDeb AND $sirenFin AND e.idetab=r.idetab GROUP BY e.codesiret, r.libellerejet LIMIT 0,50", false, MYSQL_ASSOC);
"e.codesiret BETWEEN $sirenDeb AND $sirenFin AND e.idetab=r.idetab GROUP BY e.codesiret, r.libellerejet LIMIT 0,50", INDISCORE_DEBUG, MYSQL_ASSOC);
// Nombre d'établissements concernés: neutraliser si >= 10
$RISQUEACT_NB=count($tabTmp);
$RISQUEACT=array();
@ -2564,7 +2587,7 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
**/
$tabTmp=$iDb->select( 'pollutions.bassins',
'codeBassin',
"codeInsee IN ('$strCom') GROUP BY codeBassin", false, MYSQL_ASSOC);
"codeInsee IN ('$strCom') GROUP BY codeBassin", INDISCORE_DEBUG, MYSQL_ASSOC);
$RISQUEACTBASSIN=array();
$tabBassins=array(
'A' =>'Artois-Picardie', // 01 Escaut, Somme et cours d'eau côtiers de la Manche et Mer du Nord
@ -2678,7 +2701,7 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
$tabTmp=$iDb->select( 'sdv1.franchiseurs',
"id, enseigne, MATCH (enseigne) AGAINST ('$tmp') as score",
"MATCH (enseigne) AGAINST ('$tmp')
HAVING score>1 ORDER BY score DESC", false, MYSQL_ASSOC);
HAVING score>1 ORDER BY score DESC", INDISCORE_DEBUG, MYSQL_ASSOC);
// Nombre d'établissements concernés: neutraliser si >= 10
foreach ($tabTmp as $iTmp=>$tabArret) {
$lev=levenshtein(strtoupper($ENSEIGNE), strtoupper($tabArret['enseigne']));
@ -2693,7 +2716,7 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
$codeCommuneInsee=$tabIdentite['Dept'].$tabIdentite['codeCommune'];
$tabTmp = $iDb->select(
'insee.insee_tabVilles', 'Pop_mun_2007, popMunZFU, popMunZUS',
"CODGEO='$codeCommuneInsee'", false, MYSQL_ASSOC
"CODGEO='$codeCommuneInsee'", INDISCORE_DEBUG, MYSQL_ASSOC
);
// Nombre d'habitants de la commune du siège
$POPULATION = (is_array($tabTmp) && count($tabTmp)>0) ?
@ -2798,7 +2821,7 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
$tabTmp = $iDb->select(
'sdv1.gouv_rps',
'idfent, dateMAJ, negotiations, nbreunions, accordsigne, accorddate, absenceEchec',
"siren='$SIREN'", false, MYSQL_ASSOC
"siren='$SIREN'", INDISCORE_DEBUG, MYSQL_ASSOC
);
if (isset($tabTmp[0]) && $tabTmp[0]['idfent']>0) {
$RPS_NEGO=$RPS_PLAN=false;
@ -2819,15 +2842,15 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
// Nb Entrep actives
$tabTmp=$iDb->select(
'jo.scores_secteurs',"sum(nbEntrep) AS nb",
"annee=YEAR(NOW()) AND mois=MONTH(NOW())", false, MYSQL_ASSOC
"annee=YEAR(NOW()) AND mois=MONTH(NOW())", INDISCORE_DEBUG, MYSQL_ASSOC
);
$nbEntrep=$tabTmp[0]['nb'];
// Nb en défaut sur 12 mois glissant
$nbEntrep=$tabTmp[0]['nb'];
// Nb en défaut sur 12 mois glissant
$tabTmp=$iDb->select(
'jo.scores_secteurs',
"sum(nbProcol) AS nb",
"sum(nbProcol) AS nb",
"annee=YEAR(NOW())-1 AND mois>=MONTH(NOW()) OR annee=YEAR(NOW())",
false, MYSQL_ASSOC
INDISCORE_DEBUG, MYSQL_ASSOC
);
$nbEntrepProcol=$tabTmp[0]['nb'];
// Nb en défaut sur 12 mois glissant
@ -2835,7 +2858,7 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
'jo.scores_secteurs',
"MAX(nbEntrep) as nbSecteur, SUM(nbProcol) AS nb",
"naf5='$APEENT' AND (annee=YEAR(NOW())-1 AND mois>=MONTH(NOW()) OR annee=YEAR(NOW()))",
false, MYSQL_ASSOC
INDISCORE_DEBUG, MYSQL_ASSOC
);
$nbEntrepSecteur=$tabTmp[0]['nbSecteur'];
$nbEntrepSecteurProcol=$tabTmp[0]['nb'];
@ -2852,7 +2875,7 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
$tabTmp=$iDb->select(
'jo.annonces',
"MIN(dateCessationPaiement) AS cessPai, MAX(numero) AS numPC",
"siren=$siren", false, MYSQL_ASSOC
"siren=$siren", INDISCORE_DEBUG, MYSQL_ASSOC
);
$ANNONCEPC_CESDATE=$tabTmp[0]['cessPai'];
@ -2876,43 +2899,68 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
$NBINTERRO12=0;
if ( $type == 'valo' ) {
$TAUXRA=$tabTxRendObli;
/** Tableau des taux de rendement **/
$tabTmp=$tabTxRendObli;
krsort($tabTmp);
foreach ($tabTmp as $iTmp=>$tabTmp2) {
if ($iTmp==0) { $tmpTxN=$tabTmp2; }
elseif ($iTmp==1) { $tmpTxN1=$tabTmp2; $TAUXRAMOY1=($tmpTxN+$tabTmp2)/2; }
elseif ($iTmp==2) { $tmpTxN2=$tabTmp2; $TAUXRAMOY2=($tmpTxN+$tmpTxN1+$tabTmp2)/3; }
elseif ($iTmp==3) { $TAUXRAMOY3=($tmpTxN+$tmpTxN1+$tmpTxN2+$tabTmp2)/4; }
}
$VALCOEFMINCA=0;
$VALCOEFMAXCA=0;
$naf2=substr($APEENT,0,2);
$naf3=substr($APEENT,0,3);
$naf4=substr($APEENT,0,4);
$tabTmp=$iDb->select('jo.tabNafValo', 'naf5, MINI, MAXI, TYPE, LENGTH(naf5) AS naf5len',
"naf5 LIKE '$naf2%' OR naf5 LIKE '$naf3%' OR naf5 LIKE '$naf4%' OR naf5='$APEENT' ORDER BY naf5len DESC LIMIT 0,1", INDISCORE_DEBUG, MYSQL_ASSOC);
// On prend le 1er secteur trouvé le + précis
$tabTmp=$tabTmp[0];
$VALCOEFMINCA=$tabTmp['MINI'];
$VALCOEFMAXCA=$tabTmp['MAXI'];
}
// Inclusion du fichier généré lors de la compilation
$fileIndiscore = realpath(dirname(__FILE__)).'/../tmp/indiscore'.$version.'.php';
include_once($fileIndiscore);
if ($type == 'scores') {
$fileIndiscore = 'Metier/tmp/indiscore_'.$version.'.php';
} elseif ( $type == 'valo' ) {
$fileIndiscore = 'Metier/tmp/indiscorevalo_'.$version.'.php';
}
require_once($fileIndiscore);
asort($tabTri);
asort($tabTriAff);
$tabCommentairesATrier=array();
$tabCommentairesTmp=array();
global $idx;
$fp=@fopen(LOG_PATH.'/debugFmt.log', 'w');
fclose($fp);
global $tabVariables;
$tabVariables=unserialize(file_get_contents(DOC_WEB_LOCAL.'tables/tables.bin'));
$timer['calculcommentaires']=microtime(true);
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Trace1", print_r($C,true));
$numC=0;
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Trace 4",'');
foreach ($C as $idx=>$value) {
$numC++;
foreach ($C as $idx=>$value){
$numC++;
if ($value) {
$commentaires=@implode('<br/>',$tabCommentaires[$idx][$cycleClient]);
$commentaires=preg_replace('/\[0+/', '[', $commentaires);
$fp=@fopen(LOG_PATH.'/debugFmt.log', 'a');
fwrite($fp, EOL.date("Y/m/d H:i:s")." - formule 0=$idx : $commentaires".EOL);
if(INDISCORE_DEBUG) $fp=fopen(LOG_PATH.'/debugFmt.log', 'a');
if(INDISCORE_DEBUG) fwrite($fp, EOL.date("Y/m/d H:i:s")." - formule 0=$idx : $commentaires".EOL);
if (preg_match_all('/(\{.*\})/Us',$commentaires, $tabTmp)) {
foreach ($tabTmp[1] as $valeur) {
$set=false;
$valeur2=strtr($valeur, array('{'=>'', '}'=>''));
fwrite($fp, date("Y/m/d H:i:s")." - formule A=$idx : $valeur".EOL);
if(INDISCORE_DEBUG) fwrite($fp, date("Y/m/d H:i:s")." - formule A=$idx : $valeur".EOL);
}
}
fclose($fp);
if(INDISCORE_DEBUG) fclose($fp);
$strCommentaire=strtr(preg_replace_callback('/(\{.*\})/U', 'format', $commentaires), array('"'=>'\''));
$tabCommentairesTmp[$idx]=$strCommentaire;
@ -2921,9 +2969,9 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
eval('echo "'.$strCommentaire.'";');
//echo '<br/><br/>';
// Gestion de la balise <Dxx> signifiant un espacement obligatoire de xx
if (preg_match('/\<D(\d+)\>/Ui', $strCommentaire, $matches)){
$strCommentaire=str_repeat('_', $matches[1]).preg_match('/\<D(\d+)\>/', '', $strCommentaire);
}
if (preg_match('/\<D(\d+)\>/Ui', $strCommentaire, $matches)){
$strCommentaire=str_repeat('_', $matches[1]).preg_match('/\<D(\d+)\>/', '', $strCommentaire);
}
/*if (preg_match('/\<li\+\>(.*)$/Ui', $strCommentaire, $matches))
$strCommentaire='+&nbsp;'.$matches[1];
elseif (preg_match('/\<li\-\>(.*)$/Ui', $strCommentaire, $matches))
@ -3069,42 +3117,63 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
else $variables.="$var='${$var}' NON DEFINIE !!!".EOL;
}
/*
if($genereComment && ENV<>'PRD' && $mailDebug)
sendMail('production@scores-decisions.com', 'mricois@scores-decisions.com,jm.champeau@recocash.com', "Indiscore sur $siren : Variables",
'CA_COEF='.$CA_COEF.EOL.
'CA_Y='.print_r($CA_Y,true).EOL.
EOL.
'RCAI_COEF='.$RCAI_COEF.EOL.
'RCAI_Y='.print_r($RCAI_Y,true).EOL.
"rcai TAUX=$PROJECTAUX".EOL.
"y aff=".print_r($Yaff,true).EOL.
"x=".print_r($tabRegX,true).EOL.
EOL.
print_r($tabComment, true).EOL.EOL.
$variables.EOL."Liste des Ratios :\n".print_r($tabRatios, true).EOL.
"Liste des ratios Evolutions :\n". print_r($tabRatiosEvol, true).EOL.
"Liste des commentaires Debug :\n".print_r($tabCommentairesTmp, true));
*/
/*
if($genereComment && ENV<>'PRD' && $mailDebug)
sendMail('production@scores-decisions.com', 'mricois@scores-decisions.com,jm.champeau@recocash.com', "Indiscore sur $siren : Variables",
'CA_COEF='.$CA_COEF.EOL.
'CA_Y='.print_r($CA_Y,true).EOL.
EOL.
'RCAI_COEF='.$RCAI_COEF.EOL.
'RCAI_Y='.print_r($RCAI_Y,true).EOL.
"rcai TAUX=$PROJECTAUX".EOL.
"y aff=".print_r($Yaff,true).EOL.
"x=".print_r($tabRegX,true).EOL.
EOL.
print_r($tabComment, true).EOL.EOL.
$variables.EOL."Liste des Ratios :\n".print_r($tabRatios, true).EOL.
"Liste des ratios Evolutions :\n". print_r($tabRatiosEvol, true).EOL.
"Liste des commentaires Debug :\n".print_r($tabCommentairesTmp, true));
*/
/*sendMail('production@scores-decisions.com', 'mricois@scores-decisions.com', "Indiscore sur $siren : Commentaires",
"Liste des variables :\n$variables".EOL.
print_r($tabComment, true).EOL.
"Liste des variables :\n".print_r($tabVariables, true).EOL.
"Liste des commentaires Debug :\n".print_r($tabCommentairesTmp, true).EOL.
"Liste des commentaires a trier :\n".print_r($tabCommentairesATrier,true).EOL.
"Tableau des codes de tri pour calcul :\n".print_r($tabTri,true).EOL.
"Tableau des codes de tri pour affichage :\n".print_r($tabTriAff,true).EOL.
$debugFormule.EOL.'-----------------------'.EOL.
"Liste des Bilans :\n".print_r($tabBilans, true).EOL.
//"Détail des postes Bilans :\n".print_r($tabBilan, true).EOL.
//
//"Liste des Formules Ratios :\n".print_r($tabFormulesRatios, true).EOL.
//"Debug variables :\n".file_get_contents('/var/www/log/debugFmt.log').EOL.
"\$tabBil=\n".print_r($tabBil,true).EOL
);*/
/*sendMail('production@scores-decisions.com', 'mricois@scores-decisions.com',
"Indiscore sur $siren : Commentaires",
"Liste des variables :\n$variables".EOL.
print_r($tabComment, true).EOL.
"Liste des variables :\n".print_r($tabVariables, true).EOL.
"Liste des commentaires Debug :\n".print_r($tabCommentairesTmp, true).EOL.
"Liste des commentaires a trier :\n".print_r($tabCommentairesATrier,true).EOL.
"Tableau des codes de tri pour calcul :\n".print_r($tabTri,true).EOL.
"Tableau des codes de tri pour affichage :\n".print_r($tabTriAff,true).EOL.
$debugFormule.EOL.'-----------------------'.EOL.
"Liste des Bilans :\n".print_r($tabBilans, true).EOL.
//"Détail des postes Bilans :\n".print_r($tabBilan, true).EOL.
//
//"Liste des Formules Ratios :\n".print_r($tabFormulesRatios, true).EOL.
//"Debug variables :\n".file_get_contents('/var/www/log/debugFmt.log').EOL.
"\$tabBil=\n".print_r($tabBil,true).EOL
);*/
}
if(INDISCORE_DEBUG)
file_put_contents('test.log',
"Indiscore sur $siren : Commentaires".EOL.
"Liste des variables :\n$variables".EOL.
print_r($tabComment, true).EOL.
"Liste des variables :\n".print_r($tabVariables, true).EOL.
"Liste des commentaires Debug :\n".print_r($tabCommentairesTmp, true).EOL.
"Liste des commentaires a trier :\n".print_r($tabCommentairesATrier,true).EOL.
"Tableau des codes de tri pour calcul :\n".print_r($tabTri,true).EOL.
"Tableau des codes de tri pour affichage :\n".print_r($tabTriAff,true).EOL.
$debugFormule.EOL.'-----------------------'.EOL.
"Liste des Bilans :\n".print_r($tabBilans, true).EOL.
//"Détail des postes Bilans :\n".print_r($tabBilan, true).EOL.
//
//"Liste des Formules Ratios :\n".print_r($tabFormulesRatios, true).EOL.
//"Debug variables :\n".file_get_contents('/var/www/log/debugFmt.log').EOL.
"\$tabBil=\n".print_r($tabBil,true).EOL
);
// EntActiveRCS
if ($ACTIFRNCS || $ACTIFINSEE)
$actif=1;
@ -3114,19 +3183,6 @@ $debugFormule.EOL.'-----------------------'.EOL.
if ($libInfoPaiement<>'' && $tabIdentite['SituationJuridique']=='P')
$libInfoPaiement='En procédure collective';
/*$tabEchange=array();
$tabTmp=unserialize($ECHANGE);
foreach($tabTmp as $tmpVar) {
$tmpVar2='N/D';
$tmpVar2=eval("print_r($tmpVar, true);");
$tabEchange[''.$tmpVar]=$tmpVar2;
}
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Debug ".ENV,
print_r($tabTmp,true).EOL.
print_r($tabEchange,true).EOL.
$ECHANGE
);*/
$tabRet = array(
'id' =>$tabIdentite['id'],
'Siret' =>$tabIdentite['SiretSiege'],
@ -3365,7 +3421,7 @@ $debugFormule.EOL.'-----------------------'.EOL.
}
debugLog('I', 'Etablissement retourné 7 = '. $tabIdentite['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$i=0;$strTime='';
$i=0; $strTime='';
foreach ($timer as $lib=>$time) {
$strTime.="$lib : ";
$duree=round($time-$timePre,3);
@ -3376,12 +3432,13 @@ $debugFormule.EOL.'-----------------------'.EOL.
$i++;
}
$duree=round($time-$timeDeb,3);
$strTime.="---------------------
TOTAL : $duree secondes\n";
if($genereComment && ENV<>'PRD' && $mailDebug)
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Durées ".ENV, $strTime.EOL.$strNote.EOL.$variables.EOL.print_r($tabRatiosInfos,true));
$strTime.="---------------------\nTOTAL : $duree secondes\n";
//sendMail('production@scores-decisions.com', 'mricois@scores-decisions.com', "Indiscore sur $siren : Durées ".ENV, $strTime.EOL.$strNote.EOL.$variables.EOL.print_r($tabRatiosInfos,true));
if (INDISCORE_DEBUG)
file_put_contents('time.log', "Indiscore sur $siren : Durées ".ENV, $strTime.EOL.$strNote.EOL.$variables.EOL.print_r($tabRatiosInfos,true));
// $scoreAfdcc1=round($icotation->scoreAfdcc1(),2);
debugLog('I', 'Etablissement retourné FIN = '. $tabIdentite['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return $tabRet;
@ -3506,9 +3563,9 @@ function formatValeur($variable, $longeur=0, $fonction='')
$strTmp=eval("return $valeur;");
fwrite($fp, date("Y/m/d H:i:s")." - formule D=$idx : formatValeur($variable, $longeur, $fonction)=$valeur, {${$valeur}}, $strTmp".EOL);
if (isset($tabVariables[$nomVar][$strTmp]['lib'])){
return utf8_encode($tabVariables[$nomVar][$strTmp]['lib']);
return $tabVariables[$nomVar][$strTmp]['lib'];
} elseif (isset($tabVariables[$nomVar]['0'.$strTmp]['lib'])){
return utf8_encode($tabVariables[$nomVar]['0'.$strTmp]['lib']);
return $tabVariables[$nomVar]['0'.$strTmp]['lib'];
}
}
}
@ -3533,6 +3590,13 @@ function formatValeur($variable, $longeur=0, $fonction='')
{
$strTmp=eval("return $valeur;");
return number_format($strTmp,2,',',' ').'&nbsp;&euro;';
//@todo : Montant KE, ME, ...
/*
* > 1000 sans décimales
* > 10000 KE
* > 10 000 000 => 10 Milions
*
*/
}
elseif (preg_match('/_NB$/',$nomVar))
{
@ -3739,12 +3803,10 @@ function format($matches)
} elseif (preg_match("/PROJEC\((R.*),(.*)\)/Ui", $strRetour, $matches2)) {
if (preg_match('/Rs/', $matches2[2])) $valeur=$regRs6;
else $valeur=$regR6;
// $ratio=strtr(preg_replace('/R\[0+/', '$regR', $matches[2]),array(']'=>''));
// @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : PROJEC*", "$strRetour".EOL.print_r($matches2, true).EOL);
switch(strtoupper($matches2[1])) {
// case 'PROJECCOEF': return formatRatio('', PROJECCOEF($valeur, $matches2[2]), strtoupper($tabFormulesRatios[6]['unite'])); break;
//case 'PROJECCOEF': return formatRatio('', PROJECCOEF($valeur, $matches2[2]), strtoupper($tabFormulesRatios[6]['unite'])); break;
case 'PROJEC': return formatRatio('', PROJEC($valeur, $matches2[2]), strtoupper($tabFormulesRatios[6]['unite'])); break;
// case 'PROJECTAUX': return formatRatio('', PROJECTAUX($valeur, $matches2[2]), strtoupper($tabFormulesRatios[6]['unite'])); break;
//case 'PROJECTAUX': return formatRatio('', PROJECTAUX($valeur, $matches2[2]), strtoupper($tabFormulesRatios[6]['unite'])); break;
}
} elseif (preg_match('/\$\{(\+|!|)(Rp4|Rp3|Rp2|Rp|Rs|Rsp|Rap|Ra|Rdiff|Revolp2|Revolp|Revol|R|regR)\[(\d+)\]\}/Ui', $strRetour, $matches2)) {
$tmpRatio=$matches2[2];

View File

@ -417,11 +417,10 @@ $tabVar = array(
'SOCIETE_COTE_MARCHE_MERE',
'SOCIETE_COTE_PLACE',
'T',
//TAUXRA[]
//TAUXRAMOY1
//TAUXRAMOY2
//TAUXRAMOY3
//TAUXRA
'TAUXRA',
'TAUXRAMOY1',
'TAUXRAMOY2',
'TAUXRAMOY3',
'TCAEXP',
'TEMOINACT',
'TEMOINACT_MAX',
@ -499,38 +498,38 @@ $tabVar = array(
'TEMOINSTSYNT_MAX',
'TEMOINVUL',
'TEMOINVUL_MAX',
//TEMOINVALBIL
//TEMOINVALBIL_MAX
//TEMOINVALCONC
//TEMOINVALCONC_MAX
//TEMOINVALCR
//TEMOINVALCR_MAX
//TEMOINVALDIAG
//TEMOINVALDIAG_MAX
//TEMOINVALMETH
//TEMOINVALMETH_MAX
//TEMOINVALRET
//TEMOINVALRET_MAX
//TEMOINVALPATR
//TEMOINVALPATR_MAX
//TEMOINVALPOND
//TEMOINVALPOND_MAX
//TEMOINVALPRES
//TEMOINVALPRES_MAX
//TEMOINVALRESV
//TEMOINVALRESV_MAX
//TEMOINVALRETR
//TEMOINVALRETR_MAX
//TEMOINVALTAB
//TEMOINVALTAB_MAX
//TEMOINVALTABS
//TEMOINVALTABS_MAX
//TEMOINVALTABR
//TEMOINVALTABR_MAX
//TEMOINVALMINMAX
//TEMOINVALMINMAX_MAX
//TEMOINVALMAXMIN
//TEMOINVALMAXMIN_MAX
'TEMOINVALBIL',
'TEMOINVALBIL_MAX',
'TEMOINVALCONC',
'TEMOINVALCONC_MAX',
'TEMOINVALCR',
'TEMOINVALCR_MAX',
'TEMOINVALDIAG',
'TEMOINVALDIAG_MAX',
'TEMOINVALMETH',
'TEMOINVALMETH_MAX',
'TEMOINVALMRET',
'TEMOINVALMRET_MAX',
'TEMOINVALPATR',
'TEMOINVALPATR_MAX',
'TEMOINVALPOND',
'TEMOINVALPOND_MAX',
'TEMOINVALPRES',
'TEMOINVALPRES_MAX',
'TEMOINVALRESV',
'TEMOINVALRESV_MAX',
'TEMOINVALRETR',
'TEMOINVALRETR_MAX',
'TEMOINVALTABB',
'TEMOINVALTABB_MAX',
'TEMOINVALTABS',
'TEMOINVALTABS_MAX',
'TEMOINVALTABR',
'TEMOINVALTABR_MAX',
'TEMOINVALMINMAX',
'TEMOINVALMINMAX_MAX',
'TEMOINVALMAXMIN',
'TEMOINVALMAXMIN_MAX',
'TEMOINADIZES',
'TEMOINADIZES_MAX',
'TEMOINMRQ',
@ -544,42 +543,41 @@ $tabVar = array(
'TVAINTRA',
'TVAINTRAFACULT',
'TYPEMERE',
//VALCOEFFMINCA => Table baremCA
//VALCOEFFMAXCA => Table baremCA
//VAL319 => Montant EUR
//VAL320 => Montant EUR
//VAL322 => Montant EUR
//VAL598 => Montant EUR
//VAL970 => Montant EUR
//VAL971 => Montant EUR
//VAL974 => Montant EUR
//VAL975 => Montant EUR
//VAL976 => Montant EUR
//VAL977 => Montant EUR
//VAL978 => Montant EUR
//VAL979 => Montant EUR
//VAL980 => Montant EUR
//VAL981 => Montant EUR
//VAL982 => Montant EUR
//VAL983 => Montant EUR
//VAL984 => Montant EUR
//VAL985 => Montant EUR
//VAL986 => Montant EUR
//VAL987 => Montant EUR
//VAL988 => Montant EUR
//VAL989 => Montant EUR
//VAL990 => Montant EUR
//VAL991 => Montant EUR
//VAL992 => Montant EUR
//VAL993 => Montant EUR
//VAL994 => Montant EUR
//VAL995 => Montant EUR
//VAL996 => Montant EUR
//VAL997 => Montant EUR
//VAL998 => Montant EUR
//VAL999 => Montant EUR
'VILLE',
'VALCOEFMINCA', //Table baremCA
'VALCOEFMAXCA', // Table baremCA
'VAL319_MT',
'VAL320_MT',
'VAL322_MT',
'VAL598_MT',
'VAL970_MT',
'VAL971_MT',
'VAL974_MT',
'VAL975_MT',
'VAL976_MT',
'VAL977_MT',
'VAL978_MT',
'VAL979_MT',
'VAL980_MT',
'VAL981_MT',
'VAL982_MT',
'VAL983_MT',
'VAL984_MT',
'VAL985_MT',
'VAL986_MT',
'VAL987_MT',
'VAL988_MT',
'VAL989_MT',
'VAL990_MT',
'VAL991_MT',
'VAL992_MT',
'VAL993_MT',
'VAL994_MT',
'VAL995_MT',
'VAL996_MT',
'VAL997_MT',
'VAL998_MT',
'VAL999_MT',
'VILLE',
'VENTEMAX_VILLE_MT',
'VENTEMOY_VILLE_MT',
'VENTEMIN_VILLE_MT',

View File

@ -742,7 +742,7 @@ function reponse(&$resSphinx, &$resDB, $criteres, $time, $formR, $form2crit,
for ($i = 0; $i < $resDB->num_rows; $i++) {
$ligne = $resDB->fetch_assoc();
//file_put_contents('test.log', "\n".'i = '.$i.print_r($ligne,1), FILE_APPEND);
//file_put_contents('test.log', print_r($ligne,1), FILE_APPEND);
$ret['reponses'][$i]['id'] = $ligne['id'];
$pertinence = $pertinence_generale;
@ -773,6 +773,7 @@ function reponse(&$resSphinx, &$resDB, $criteres, $time, $formR, $form2crit,
$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'];
@ -793,15 +794,17 @@ function reponse(&$resSphinx, &$resDB, $criteres, $time, $formR, $form2crit,
$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'];
$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'];
}
}
}
//file_put_contents('test.log', print_r($ret,1), FILE_APPEND);
if ($formR['type'] == 'ent') {
$ret['pass'] = $resSphinx['pass'];
}
@ -922,14 +925,49 @@ 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 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 (".$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 ";
@ -1049,79 +1087,146 @@ 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, 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 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
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 ( ";
/*$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 (';
*/
$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);
file_put_contents('test.log',$requette);
//$req = $gDatabaseJO->query($requette2);
$req = $gDatabaseJO->query($requette);
return reponse($sphinxreturn, $req, $criteres, $sphinxreturn['time'], $formR, $form2crit, $deb, $ligneAct);
return reponse($sphinxreturn, $req, $criteres, $sphinxreturn['time'], $formR, $form2crit, $deb, array());
}
// --------------------------------------------------------------------------- //
@ -1405,57 +1510,84 @@ 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);
}
// 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

File diff suppressed because it is too large Load Diff

View File

@ -2737,14 +2737,14 @@ if ( $C[20024100] && $VAL971_MT==0 && $C[1000] && $CABIOUES>0 && !(
if ( $BILAN ) { $C[20021050]=true; $CALCUL9=0; }
// 20021051-01 : dernier bilan calcul valeur terrain age entrep sur valeur terrains +10% p/an
if ( $BILAN && $R[31]>0 && $Age>0 ) { $C[20021051]=true; $CALCUL9=$R[031]*((age*0.1)/12); }
// 20021061-01 : dernier bilan actif réactualisé mini Fonds comm=meth CA(970)-immos nettes(067) +actif circ net (093)
if ( $BILAN ) { $C[20021061]=true; $CALCUL5=$VAL970-$R[067]+$R[093]; }
// 20021061-01 : dernier bilan actif réactualisé mini Fonds comm=meth CA(970)-immos nettes(067) +actif circ net (093)
if ( $BILAN ) { $C[20021061]=true; $CALCUL5=$VAL970_MT-$R[067]+$R[093]; }
// 20021071-01 : dernier bilan dettes Passif réactualisé mini
if ( $BILAN && $R[32]>=0 ) { $C[20021071]=true; $CALCUL6=$R[032]; }
// 20021072-01 : dernier bilan dettes provisions Passif réactualisé mini
if ( $BILAN && $R[32]>=0 && $R[33]>=0 ) { $C[20021072]=true; $CALCUL6=$R[032]+$R[033]; }
// 20021081-01 : dernier bilan actif réactualisé maxi Fonds comm=meth CA(971)-immos nettes(067) +actif circ net (093) +brevets en prime +survaleur terrain
if ( $BILAN ) { $C[20021081]=true; $CALCUL7=$R[030]+$VAL971-$R[067]+$R[093]+$CALCUL9; }
// 20021081-01 : dernier bilan actif réactualisé maxi Fonds comm=meth CA(971)-immos nettes(067) +actif circ net (093) +brevets en prime +survaleur terrain
if ( $BILAN ) { $C[20021081]=true; $CALCUL7=$R[030]+$VAL971_MT-$R[067]+$R[093]+$CALCUL9; }
// 20021085-01 : dernier bilan Passif réactualisé maxi
if ( $BILAN ) { $C[20021085]=true; $CALCUL8=$CALCUL6; }
// 20021191-01 : dernier bilan actif réactualisé mini Passif réactualisé mini actif réactualisé maxi Passif réactualisé maxi calcul valeur patrim mini calcul valeur patrim maxi
@ -2976,7 +2976,7 @@ if ( $VAL998_MT<=0 ) { $C[20090301]=true; $VAL998_MT=$CABIOUES*0.8; }
// 20090302-01 : maxi 120% CA
if ( $VAL999_MT<=0 ) { $C[20090302]=true; $VAL999_MT=$CABIOUES*1.2; }
// 20090303-01 : maxi mini-> maxi maxi-> mini mini-> maxi maxi-> mini
if ( $VAL999_MT<$VAL998_MT ) { $C[20090303]=true; $CALCUL9=$VAL998; $CALCUL8=$VAL999; $VAL998_MT=$CALCUL8; $VAL999_MT=$CALCUL9; }
if ( $VAL999_MT<$VAL998_MT ) { $C[20090303]=true; $CALCUL9=$VAL998_MT; $CALCUL8=$VAL999_MT; $VAL998_MT=$CALCUL8; $VAL999_MT=$CALCUL9; }
// 20090304-01 : maxi creation fourchette
if ( $VAL999_MT==$VAL998_MT ) { $C[20090304]=true; $VAL998_MT=$VAL998_MT*0.9; $VAL999_MT=$VAL999_MT*1.1; }
// 20090310-01 : mini maxi TEMOIN TEMOIN

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;