suppression library Metier et Scores + utilisation du projet library

This commit is contained in:
benoitpotier 2017-03-29 12:13:02 +02:00
parent 60f238563d
commit 6ccb83fa0a
187 changed files with 99 additions and 191684 deletions

View File

@ -8,15 +8,20 @@
"doctrine/dbal": "^2.5",
"mikehaertl/phpwkhtmltopdf": "^2.2",
"guzzlehttp/guzzle": "^6.2",
"monolog/monolog": "^1.22"
"monolog/monolog": "^1.22",
"scores/library": "dev-master"
},
"repositories": [
{
"type": "git",
"url": "git@gitlab.factory.insight.doubletrade.com:scores/library.git"
}
],
"include-path": ["library/"],
"autoload": {
"classmap": [
"application/",
"library/Application/",
"library/Metier/",
"library/Scores/"
"library/Application/"
]
},
"authors": [

134
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"content-hash": "1b530fbc9321c88cb523070b302fe495",
"content-hash": "4342ba201ccc8d66da9b9034e512bc99",
"packages": [
{
"name": "doctrine/annotations",
@ -285,16 +285,16 @@
},
{
"name": "doctrine/dbal",
"version": "v2.5.11",
"version": "v2.5.12",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
"reference": "1b1effbddbdc0f40d1c8f849f44bcddac4f52a48"
"reference": "7b9e911f9d8b30d43b96853dab26898c710d8f44"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/1b1effbddbdc0f40d1c8f849f44bcddac4f52a48",
"reference": "1b1effbddbdc0f40d1c8f849f44bcddac4f52a48",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/7b9e911f9d8b30d43b96853dab26898c710d8f44",
"reference": "7b9e911f9d8b30d43b96853dab26898c710d8f44",
"shasum": ""
},
"require": {
@ -352,7 +352,7 @@
"persistence",
"queryobject"
],
"time": "2017-02-04T21:20:13+00:00"
"time": "2017-02-08T12:53:47+00:00"
},
{
"name": "doctrine/inflector",
@ -481,14 +481,17 @@
"source": {
"type": "git",
"url": "https://github.com/GeSHi/geshi-1.0.git",
"reference": "57e2186cea10332de1e59d03834a0863f981e1a4"
"reference": "c71a0d7aa7520aa2abc1b2d10c8fed1301ea8329"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/GeSHi/geshi-1.0/zipball/57e2186cea10332de1e59d03834a0863f981e1a4",
"reference": "57e2186cea10332de1e59d03834a0863f981e1a4",
"url": "https://api.github.com/repos/GeSHi/geshi-1.0/zipball/c71a0d7aa7520aa2abc1b2d10c8fed1301ea8329",
"reference": "c71a0d7aa7520aa2abc1b2d10c8fed1301ea8329",
"shasum": ""
},
"require-dev": {
"phpunit/phpunit": "^5.7"
},
"type": "library",
"autoload": {
"classmap": [
@ -510,25 +513,25 @@
],
"description": "Generic Syntax Highlighter",
"homepage": "http://qbnz.com/highlighter/",
"time": "2016-10-09 19:25:28"
"time": "2017-03-17 06:35:45"
},
{
"name": "guzzlehttp/guzzle",
"version": "6.2.2",
"version": "6.2.3",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
"reference": "ebf29dee597f02f09f4d5bbecc68230ea9b08f60"
"reference": "8d6c6cc55186db87b7dc5009827429ba4e9dc006"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/ebf29dee597f02f09f4d5bbecc68230ea9b08f60",
"reference": "ebf29dee597f02f09f4d5bbecc68230ea9b08f60",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/8d6c6cc55186db87b7dc5009827429ba4e9dc006",
"reference": "8d6c6cc55186db87b7dc5009827429ba4e9dc006",
"shasum": ""
},
"require": {
"guzzlehttp/promises": "^1.0",
"guzzlehttp/psr7": "^1.3.1",
"guzzlehttp/psr7": "^1.4",
"php": ">=5.5"
},
"require-dev": {
@ -572,7 +575,7 @@
"rest",
"web service"
],
"time": "2016-10-08T15:01:37+00:00"
"time": "2017-02-28T22:50:30+00:00"
},
{
"name": "guzzlehttp/promises",
@ -627,16 +630,16 @@
},
{
"name": "guzzlehttp/psr7",
"version": "1.3.1",
"version": "1.4.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
"reference": "5c6447c9df362e8f8093bda8f5d8873fe5c7f65b"
"reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/5c6447c9df362e8f8093bda8f5d8873fe5c7f65b",
"reference": "5c6447c9df362e8f8093bda8f5d8873fe5c7f65b",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
"reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
"shasum": ""
},
"require": {
@ -672,29 +675,36 @@
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
{
"name": "Tobias Schultze",
"homepage": "https://github.com/Tobion"
}
],
"description": "PSR-7 message implementation",
"description": "PSR-7 message implementation that also provides common utility methods",
"keywords": [
"http",
"message",
"request",
"response",
"stream",
"uri"
"uri",
"url"
],
"time": "2016-06-24T23:00:38+00:00"
"time": "2017-03-20T17:10:46+00:00"
},
{
"name": "league/csv",
"version": "8.2.0",
"version": "8.2.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/csv.git",
"reference": "ef7eef710810c8bd0cf9371582ccd0123ff96d4b"
"reference": "43fd8b022815a0758d85e925dd92a43fe0d41bb4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/csv/zipball/ef7eef710810c8bd0cf9371582ccd0123ff96d4b",
"reference": "ef7eef710810c8bd0cf9371582ccd0123ff96d4b",
"url": "https://api.github.com/repos/thephpleague/csv/zipball/43fd8b022815a0758d85e925dd92a43fe0d41bb4",
"reference": "43fd8b022815a0758d85e925dd92a43fe0d41bb4",
"shasum": ""
},
"require": {
@ -738,20 +748,20 @@
"read",
"write"
],
"time": "2017-01-25T13:32:07+00:00"
"time": "2017-02-23T08:25:03+00:00"
},
{
"name": "mikehaertl/php-shellcommand",
"version": "1.2.3",
"version": "1.2.4",
"source": {
"type": "git",
"url": "https://github.com/mikehaertl/php-shellcommand.git",
"reference": "a628505cd99b201375dd6bcd0b062ee07c8ba556"
"reference": "b0c0bf3ce49a01bd7ddbe07a9bed4ba85b869fa4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/mikehaertl/php-shellcommand/zipball/a628505cd99b201375dd6bcd0b062ee07c8ba556",
"reference": "a628505cd99b201375dd6bcd0b062ee07c8ba556",
"url": "https://api.github.com/repos/mikehaertl/php-shellcommand/zipball/b0c0bf3ce49a01bd7ddbe07a9bed4ba85b869fa4",
"reference": "b0c0bf3ce49a01bd7ddbe07a9bed4ba85b869fa4",
"shasum": ""
},
"type": "library",
@ -774,7 +784,7 @@
"keywords": [
"shell"
],
"time": "2017-01-26T08:29:31+00:00"
"time": "2017-02-09T18:28:47+00:00"
},
{
"name": "mikehaertl/php-tmpfile",
@ -814,16 +824,16 @@
},
{
"name": "mikehaertl/phpwkhtmltopdf",
"version": "2.2.0",
"version": "2.2.1",
"source": {
"type": "git",
"url": "https://github.com/mikehaertl/phpwkhtmltopdf.git",
"reference": "318aed9ad8d7622c6d00a0fdf3b199e71d48e47e"
"reference": "877dd0b13d7006cbaa4a272d62152e07310f4bd3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/mikehaertl/phpwkhtmltopdf/zipball/318aed9ad8d7622c6d00a0fdf3b199e71d48e47e",
"reference": "318aed9ad8d7622c6d00a0fdf3b199e71d48e47e",
"url": "https://api.github.com/repos/mikehaertl/phpwkhtmltopdf/zipball/877dd0b13d7006cbaa4a272d62152e07310f4bd3",
"reference": "877dd0b13d7006cbaa4a272d62152e07310f4bd3",
"shasum": ""
},
"require": {
@ -859,20 +869,20 @@
"wkhtmltoimage",
"wkhtmltopdf"
],
"time": "2016-06-02T08:06:45+00:00"
"time": "2017-03-16T10:45:28+00:00"
},
{
"name": "monolog/monolog",
"version": "1.22.0",
"version": "1.22.1",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
"reference": "bad29cb8d18ab0315e6c477751418a82c850d558"
"reference": "1e044bc4b34e91743943479f1be7a1d5eb93add0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/bad29cb8d18ab0315e6c477751418a82c850d558",
"reference": "bad29cb8d18ab0315e6c477751418a82c850d558",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/1e044bc4b34e91743943479f1be7a1d5eb93add0",
"reference": "1e044bc4b34e91743943479f1be7a1d5eb93add0",
"shasum": ""
},
"require": {
@ -937,7 +947,7 @@
"logging",
"psr-3"
],
"time": "2016-11-26T00:15:39+00:00"
"time": "2017-03-13T07:08:03+00:00"
},
{
"name": "psr/http-message",
@ -1036,6 +1046,41 @@
],
"time": "2016-10-10T12:19:37+00:00"
},
{
"name": "scores/library",
"version": "dev-master",
"source": {
"type": "git",
"url": "git@gitlab.factory.insight.doubletrade.com:scores/library.git",
"reference": "7b5b8e75283c193e536cd3bec30f271fdb92e509"
},
"require": {
"doctrine/dbal": "^2.5",
"monolog/monolog": "^1.22",
"zendframework/zendframework1": "^1.12"
},
"require-dev": {
"phpunit/phpunit": "^4.8"
},
"type": "library",
"autoload": {
"classmap": [
"src/Metier/",
"src/Scores/"
]
},
"include-path": [
"src/"
],
"authors": [
{
"name": "Scores et Decisions",
"email": "supportdev@scores-decisions.com"
}
],
"description": "library",
"time": "2017-03-29 09:53:56"
},
{
"name": "zendframework/zendframework1",
"version": "1.12.20",
@ -1088,7 +1133,8 @@
"aliases": [],
"minimum-stability": "stable",
"stability-flags": {
"geshi/geshi": 20
"geshi/geshi": 20,
"scores/library": 20
},
"prefer-stable": false,
"prefer-lowest": false,

File diff suppressed because it is too large Load Diff

View File

@ -1,75 +0,0 @@
<?php
class Metier_Bodacc_MBalo
{
public function getLibEven($strEven)
{
$even=9015;
$strEven=trim($strEven);
if (preg_match("/AUTRES OP.RATIONS . Décisions prises par des assemblées d'obligataires et homologation de résolutions/iu", $strEven)) {
$even=9001;
} elseif (preg_match("/AUTRES OP.RATIONS . Désignation de teneurs? de comptes de titres nominatifs/iu", $strEven)) {
$even=9002;
} elseif (preg_match("/AUTRES OP.RATIONS . Fusions et scissions/iu", $strEven)) {
$even=9003;
} elseif (preg_match("/AUTRES OP.RATIONS . Liquidations/iu", $strEven)) {
$even=9004;
} elseif (preg_match("/AUTRES OP.RATIONS . Offre de remboursement d'obligations/iu", $strEven)) {
$even=9005;
} elseif (preg_match("/AUTRES OP.RATIONS . Réduction de capital/iu", $strEven)) {
$even=9006;
} elseif (preg_match("/AUTRES OP.RATIONS . Regroupement d'actions/iu", $strEven)) {
$even=9007;
} elseif (preg_match("/AUTRES OP.RATIONS/iu", $strEven)) {
$even=9000;
} elseif (preg_match("/BULLETIN OFFICIEL de l'AMF/iu", $strEven)) {
$even=9010;
} elseif (preg_match("/BULLETIN OFFICIEL du CMF/iu", $strEven)) {
$even=9011;
} elseif (preg_match("/CONVOCATIONS . Assemblées? d'actionnaires et de porteurs de parts/iu", $strEven)) {
$even=9020;
} elseif (preg_match("/CONVOCATIONS . Assemblées? d'obligataires ou de porteurs de titres d'emprunt/iu", $strEven)) {
$even=9021;
} elseif (preg_match("/CONVOCATIONS . Assemblées? de porteurs de certificats d'investissement/iu", $strEven)) {
$even=9022;
} elseif (preg_match("/CONVOCATIONS . Assemblées? de porteurs de parts de fondateur/iu", $strEven)) {
$even=9023;
} elseif (preg_match("/CONVOCATIONS . Assemblées? de porteurs de titres participatifs/iu", $strEven)) {
$even=9024;
} elseif (preg_match("/MISSIONS ET COTATIONS - Organismes internationaux - Bons, obligations et autres titres/iu", $strEven)) {
$even=9030;
} elseif (preg_match("/MISSIONS ET COTATIONS . Valeurs étrangères . Actions et parts/iu", $strEven)) {
$even=9031;
} elseif (preg_match("/MISSIONS ET COTATIONS . Valeurs étrangères . Bons d'options? sur titres et sur indices/iu", $strEven)) {
$even=9032;
} elseif (preg_match("/MISSIONS ET COTATIONS . Valeurs étrangères . Bons, obligations et autres titres/iu", $strEven)) {
$even=9033;
} elseif (preg_match("/MISSIONS ET COTATIONS . Valeurs européennes . Actions et parts/iu", $strEven)) {
$even=9034;
} elseif (preg_match("/MISSIONS ET COTATIONS . Valeurs françaises . Actions et parts/iu", $strEven)) {
$even=9035;
} elseif (preg_match("/MISSIONS ET COTATIONS . Valeurs françaises . Bons d'options? sur titres et sur indices/iu", $strEven)) {
$even=9036;
} elseif (preg_match("/MISSIONS ET COTATIONS . Valeurs françaises . Bons, obligations et autres titres/iu", $strEven)) {
$even=9037;
} elseif (preg_match("/MISSIONS ET COTATIONS . Valeurs françaises . Certificats d'investissement/iu", $strEven)) {
$even=9038;
} elseif (preg_match("/PUBLICATIONS P.RIODIQUES . Entreprises d'assurances et organismes de retraites/iu", $strEven)) {
$even=9040;
} elseif (preg_match("/PUBLICATIONS P.RIODIQUES . Sociétés commerciales et industrielles/iu", $strEven)) {
$even=9041;
} elseif (preg_match("/PUBLICATIONS P.RIODIQUES . Sociétés commerciales et industrielles (Chiffres d'affaires)/iu", $strEven)) {
$even=9042;
} elseif (preg_match("/PUBLICATIONS P.RIODIQUES . Sociétés commerciales et industrielles (comptes annuels)/iu", $strEven)) {
$even=9045;
} elseif (preg_match("/PUBLICATIONS P.RIODIQUES . Sociétés commerciales et industrielles (Tableaux d'activités et résultats)/iu", $strEven)) {
$even=9044;
} elseif (preg_match("/PUBLICATIONS P.RIODIQUES . Sociétés commerciales et industrielles (Chiffres d'affaires et situations trimestrielles)/iu", $strEven)) {
$even=9043;
} elseif (preg_match("/PUBLICATIONS P.RIODIQUES . Sociétés commerciales et industrielles (Comptes intermédiaires)/iu", $strEven)) {
$even=9046;
}
//else/*if (preg_match("/AVIS DIVERS/i", $strEven))*/ $even=9015;
return $even;
}
}

View File

@ -1,43 +0,0 @@
<?php
class Metier_Bodacc_MBoamp
{
public function getCodEvenSd($codEvenBoamp, $strEvenBoamp='')
{
$codEvenBoamp=str_replace('R', '', $codEvenBoamp)*1;
switch ($codEvenBoamp) {
case 10: $libEvenSd='Annulation'; break;
case 11: $libEvenSd='Annulation - Rectificatif'; break;
case 20: $libEvenSd='Rectificatif'; break;
case 22: $libEvenSd='Procédures accélérées'; break;
case 30: $libEvenSd='Avis d\'appel public à la concurrence - Délai d\'urgence'; break;
case 33: $libEvenSd='Avis de mise en concurrence'; break;
case 44: $libEvenSd='Concessions'; break;
case 50: $libEvenSd='Avis d\'appel public à la concurrence'; break;
case 51: $libEvenSd='Avis informatifs'; break;
case 55: $libEvenSd='Avis d\'appel public à la concurrence'; break;
case 6: $libEvenSd='Avis d\'attribution'; break;
case 8: $libEvenSd='Avis d\'attribution'; break;
case 81: $libEvenSd='Avis d\'attribution - Annulation'; break;
case 82: $libEvenSd='Avis d\'attribution - Rectificatif'; break;
case 83: $libEvenSd='Avis d\'attribution - Rectificatif'; break;
case 84: $libEvenSd='Avis d\'attribution comportant des lots infructueux'; break;
case 9: $libEvenSd='Résultat de marché'; break;
case 91: $libEvenSd='Résultat de marché - Annulation'; break;
case 92: $libEvenSd='Résultat de marché - Rectificatif'; break;
case 93: $libEvenSd='Résultat de marché Infructueux/Sans suite'; break;
case 94: $libEvenSd='Résultat de marché comportant des lots infructueux'; break;
case 96: $libEvenSd='Annulation/Rectificatif/Sans suite/Infructueux'; break;
default: $libEvenSd=$strEvenBoamp; break;
}
if ($strEvenBoamp<>'') {
return $libEvenSd;
}
return substr('95'.$codEvenBoamp.'00', 0, 4)*1;
}
public function getLibEvenBoamp($codEvenBoamp, $strEvenBoamp='')
{
return $this->getCodEvenSd($codEvenBoamp, $strEvenBoamp);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +0,0 @@
<?php
return array(
'DELIBERE' => "Affaire en délibéré",
'ENCOURS' => "Affaire en cours",
'EXPERT' => "Affaire en cours d'expertise",
'JUGRAP' => "Affaire devant le juge",
'TERMJON' => "Affaire terminée (jonction)",
'TERMJUG' => "Affaire jugée et terminée",
'TERMRAD' => "Affaire terminée (radiation)",
);

View File

@ -1,405 +0,0 @@
<?php
class Metier_Defaillance_Detect
{
protected $debug = false;
/**
* Code de la forme juridique
* @var string
*/
protected $FJ;
/**
* Date de cloture du bilan (AAAAMMJJ)
* @var string
*/
protected $BilanCloture;
/**
* Actif Insee
* @var int
*/
protected $InseeActif;
/**
* Actif RCS
* @var unknown
*/
protected $RcsActif;
/**
* Nombre d'établissement actif
* @var int
*/
protected $EtabActifNb;
/**
* Rgsitre des métiers
* @var int
*/
protected $NumRM;
/**
* RCS
* @var int
*/
protected $IsRCS;
protected $Situation = '';
protected $SituationDateStart;
protected $SituationDateEnd;
protected $SituationLastEven = '';
protected $SituationNbMonthPast = 0;
protected $PlanDateStart;
protected $PlanDateEnd;
protected $PlanPeriod = 120;
protected $ListEvenProcol = array();
protected $ListEvenProcolDelete = array();
protected $ListEvenAbsorption = array();
protected $ListEvenRadiation = array();
protected $ListEvenDissolution = array();
protected $ProcolMaxYear = 12;
protected $Even;
protected $EvenDateJugement;
protected $EvenTxt;
protected $EvenDelete = 0;
protected $DateToday;
/**
* Timeline des événements de défaillance
* { Situation, Even, DateStart, DateEnd }
* @var array
*/
protected $Timeline = array();
/**
* Détection des défaillances
* Instancier la class, puis sur chaque annonce faire le traitement.
*/
public function __construct()
{
if ($this->debug) {
file_put_contents('procol.log', "=== Situation Juridique ===\n");
}
// Définir la date du jour
$this->DateToday = date('Ymd');
// Liste des événements au départ d'une procol
$this->ListEvenProcol = include __DIR__ . '/EvenProcol.php';
// Liste des événements d'absorption
$this->ListEvenAbsorption = include __DIR__ . '/EvenAbsorption.php';
// Liste des événements de radiation
$this->ListEvenRadiation = include __DIR__ . '/EvenRadiation.php';
// Liste des événements de dissolution
$this->ListEvenDissolution = include __DIR__ . '/EvenDissolution.php';
// Définir la liste des évenéments de la rubrique procol avec le paramètre d'effacement
$this->ListEvenProcolDelete = include __DIR__ . '/ProcolDelete.php';
}
public function setFJ($val)
{
$this->FJ = $val;
}
public function setBilanCloture($val)
{
$this->BilanCloture = $val;
}
public function setInseeActif($val)
{
$this->InseeActif = $val;
}
public function setRcsActif($val)
{
$this->RcsActif = $val;
}
public function setEtabActif($val)
{
$this->EtabActifNb = $val;
}
public function setRM($val)
{
$this->IsRM = $val;
}
public function setGreffe($val)
{
$this->IsRCS = $val;
}
/**
* Retourne la situation
* @return string
* Code situation juridique
*/
public function getSituation()
{
return $this->Situation;
}
/**
* Retourne la timeline
* @return array
*/
public function getTimeline()
{
return $this->Timeline;
}
/**
* Lecture de la période et de la date
* @param string $txt
*/
public function planPeriod($txt)
{
if (preg_match('/dur.e(?:.*)plan(?:.*)(\d+)\s+ans?/Uisu', $txt, $matches)) {
$this->PlanPeriod = $matches[1] * 12; // 10 ans = 120 mois
}
}
/**
* Calcul de la date de fin du plan
*/
public function planEnd()
{
$calc = \DateTime::createFromFormat('Ymd', $this->PlanDateStart);
$interval = new \DateInterval('P'.$this->PlanPeriod.'M');
$calc->add($interval);
$this->PlanDateEnd = $calc->format('Ymd');
}
public function situationEnd()
{
$calc = \DateTime::createFromFormat('Ymd', $this->SituationDateStart);
$interval = new \DateInterval('P'.$this->ProcolMaxYear.'Y');
$calc->add($interval);
$this->SituationDateEnd = $calc->format('Ymd');
}
public function nbMonthPast($date)
{
$date1 = new \DateTime();
$date1->createFromFormat('Ymd', $date);
$date2 = new \DateTime();
$diff = $date2->diff($date1)->m;
return $diff;
}
/**
* Traite l'annonce dans le flux en executant les règles
* @param stdClass $ann
* date, code, txt
*/
public function parse($ann)
{
$this->Even = $ann->code;
$this->EvenDateJugement = $ann->date;
$this->EvenTxt = $ann->txt;
if ($this->debug) {
file_put_contents('procol.log', "Annonce : ".$ann->date . '-' . $ann->code."\n", FILE_APPEND);
}
// Marqueur d'effacement de la procol
if (array_key_exists($this->Even, $this->ListEvenProcolDelete)) {
$this->EvenDelete = $this->ListEvenProcolDelete[$this->Even];
}
// Evenement procol précédent
if (count($this->Timeline) > 0) {
$last = end($this->Timeline);
$this->SituationLastEven = $last['even'];
$this->SituationNbMonthPast = $this->nbMonthPast($last['DateStart']);
}
// --- Variable pour le plan
$this->PlanDateStart = $this->EvenDateJugement;
$this->planPeriod($this->EvenTxt);
$this->planEnd();
// Lancement des règles
$this->rules();
if ($this->debug) {
file_put_contents('procol.log', "\n", FILE_APPEND);
}
}
/**
* Execution des règles
*/
protected function rules()
{
$rules = include __DIR__ . '/DetectTable.php';
$setSituation = false;
// Parcours des règles
foreach ($rules as $rule) {
if ($this->debug) {
file_put_contents('procol.log', $rule['name']."\n", FILE_APPEND);
}
$result = $this->params($rule['params']);
if ($result === true) {
// Defintion paramètres situation
$this->SituationDateStart = $this->EvenDateJugement;
$this->situationEnd();
// Enregistrement dans la timeline
$this->Timeline[] = array(
'Situation' => $this->Situation,
'Even' => $this->Even,
'DateStart' => $this->SituationDateStart,
'DateEnd' => $this->SituationDateEnd,
);
file_put_contents('procol.log', print_r($this->Timeline, 1)."\n", FILE_APPEND);
}
if ($this->debug) {
if ($result === true) {
file_put_contents('procol.log', "=> OK\n", FILE_APPEND);
} else {
file_put_contents('procol.log', "=> PASS\n", FILE_APPEND);
}
}
}
}
/**
* Execution des conditions
* @param array $conditions
*/
protected function params($conditions)
{
$cNb = count($conditions);
$cIncr = 1;
foreach ($conditions as $cond) {
if ($this->debug) {
file_put_contents('procol.log', "\t".$cond['var']." ".$cond['op']." ".$cond['value']."\n", FILE_APPEND);
}
$result = $this->paramEval($cond['var'], $cond['op'], $cond['value']);
if ($result === false) {
return false;
}
if ($cNb == $cIncr) {
return true;
}
$cIncr++;
}
}
/**
* Transformation des variables
* @param string $val
* @return number|mixed|NULL
*/
protected function paramValue($val)
{
if (is_numeric($val)) {
return (float) $val;
}
if (is_array($val)) {
return $val;
}
if (is_string($val) && property_exists($this, $val)) {
return $this->{$val};
}
if (is_string($val) && defined('self::'.$val)) {
return constant('self::'.$val);
}
if (is_string($val)) {
return $val;
}
return null;
}
/**
* Evaluation de la condition
* @param string $var
* @param string $op
* @param string $value
* @return boolean|NULL
*/
protected function paramEval($var, $op, $value)
{
// Operation
switch ($op) {
case 'SET':
$this->{$var} = $value;
if ($this->debug) {
file_put_contents('procol.log', "\t\tSET ".$var." = ".$value."\n", FILE_APPEND);
}
return true;
break;
case 'MIN':
$valueReal = $this->paramValue($value);
if ($this->debug) {
file_put_contents('procol.log', "\t".$this->{$var}." > ".$valueReal."\n", FILE_APPEND);
}
if ($this->{$var} !== null && $this->{$var} > $valueReal) {
return true;
}
return false;
break;
case 'MAX':
$valueReal = $this->paramValue($value);
if ($this->debug) {
file_put_contents('procol.log', "\t".$this->{$var}." < ".$valueReal."\n", FILE_APPEND);
}
if ($this->{$var} !== null && $this->{$var} < $valueReal) {
return true;
}
return false;
break;
case 'EGAL':
$valueReal = $this->paramValue($value);
if (is_array($valueReal)) {
if ($this->debug) {
file_put_contents('procol.log', "\t".$this->{$var}." = ".$value."\n", FILE_APPEND);
}
if (in_array($this->{$var}, $valueReal)) {
return true;
}
} elseif ($this->{$var} == $valueReal) {
if ($this->debug) {
file_put_contents('procol.log', "\t".$this->{$var}." = ".$valueReal."\n", FILE_APPEND);
}
return true;
}
return false;
break;
case 'LIST':
$valueReal = $this->paramValue($value);
if ($this->debug) {
file_put_contents('procol.log', "\t".$this->{$var}." = ".print_r($valueReal, 1)."\n", FILE_APPEND);
}
if ($valueReal !== null && in_array($this->{$var}, $valueReal)) {
return true;
}
return false;
break;
}
return null;
}
}

View File

@ -1,307 +0,0 @@
<?php
/**
* Liste des situation juridiques
* RR : Radié du registre du commerce et des sociétés
* RP : Radiation publié
* PL : Plan en cours
* P : Procédure collective
* PA : Appel de jugement
* A : Absorbtion
* D : Dissolution
* CL : Cloture
*/
return array(
// --- Départ du plan
array(
'name' => 'PLAN',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'PlanPeriod', 'op' => 'EGAL', 'value'=> array(0,120)),
array( 'var' => 'Even', 'op' => 'EGAL', 'value' => array(
'1407', // Modification de plan
'1409', // Modification du plan de continuation
'1413', // Arrêt du plan de continuation
'1414', // Arrêt du plan de redressement
'1101', // Arrêt du plan de sauvegarde
)),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => 'PL'),
),
),
// -- Period par defaut
array(
'name' => 'PLAN-DUREE-DEFAUT1',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'PlanPeriod', 'op' => 'MAX', 'value'=> 1),
array( 'var' => 'PlanPeriod', 'op' => 'SET', 'value' => 120),
),
),
array(
'name' => 'PLAN-DUREE-DEFAUT2',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'PlanPeriod', 'op' => 'MIN', 'value'=> 120),
array( 'var' => 'PlanPeriod', 'op' => 'SET', 'value' => 120),
),
),
// --- Period par default pour FJ spécifique
array(
'name' => 'PLAN-DUREE-FJ1',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'PlanPeriod', 'op' => 'MAX', 'value'=> 1),
array( 'var' => 'FJ', 'op' => 'EGAL', 'value' => array(
16,1600, // Exploitant agricole
63,6316,6317,6318, // Société coopérative agricole
5431,5432,5531,5532, // SMIA, SICA
5631,5632,6532,
6533,6534,6535, // GAEC, GFA, Gpt Agricole Foncier
6597,6598,
)),
array( 'var' => 'PlanPeriod', 'op' => 'SET', 'value' => 180),
),
),
// --- Period par default pour FJ spécifique
array(
'name' => 'PLAN-DUREE-FJ2',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'PlanPeriod', 'op' => 'MIN', 'value'=> 120),
array( 'var' => 'FJ', 'op' => 'EGAL', 'value' => array(
16,1600, // Exploitant agricole
63,6316,6317,6318, // Société coopérative agricole
5431,5432,5531,5532, // SMIA, SICA
5631,5632,6532,
6533,6534,6535, // GAEC, GFA, Gpt Agricole Foncier
6597,6598,
)),
array( 'var' => 'PlanPeriod', 'op' => 'SET', 'value' => '180'),
),
),
// --- Elimination du plan : période atteinte
array(
'name' => 'PLAN-PERIOD-ATTEINTE',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => 'PL'),
array( 'var' => 'PlanDateEnd', 'op' => 'MIN', 'value' => 'DateToday'),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => ''),
),
),
// --- Elimination du plan : appel de jugement
array(
'name' => 'PLAN-APPEL-JUGEMENT',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => 'PL'),
array( 'var' => 'EvenDelete', 'op' => 'EGAL', 'value' => 4),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => 'PA'),
),
),
// --- Elimination du plan : cutoff
array(
'name' => 'PLAN-CUT-OFF',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => 'PL'),
array( 'var' => 'Cutoff', 'op' => 'EGAL', 'value' => true),
array( 'var' => 'ScoreSolv', 'op' => 'MIN', 'value' => 0),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => ''),
),
),
// --- Début de procol
array(
'name' => 'PROCOL-START',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Even', 'op' => 'EGAL', 'value' => 'ListEvenProcol'),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => 'P'),
),
),
// --- Pas de mention de la procol
array(
'name' => 'PROCOL-EFFACEMENT-1',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => 'P'),
array( 'var' => 'EvenDelete', 'op' => 'EGAL', 'value' => 1),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => ''),
),
),
// --- Ne pas mentionner la procol si CJ=1xxx
array(
'name' => 'PROCOL-EFFACEMENT-2.1',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => 'P'),
array( 'var' => 'EvenDelete', 'op' => 'EGAL', 'value' => 2),
array( 'var' => 'FJ', 'op' => 'MIN', 'value' => 1000),
array( 'var' => 'FJ', 'op' => 'MAX', 'value' => 1999),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => ''),
),
),
// --- Ne pas mentionner la procol si actif et CJ!=9xxx et even de plus d'un mois
array(
'name' => 'PROCOL-EFFACEMENT-2.2',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => 'P'),
array( 'var' => 'EvenDelete', 'op' => 'EGAL', 'value' => 2),
array( 'var' => 'InseeActif', 'op' => 'EGAL', 'value' => 1),
array( 'var' => 'FJ', 'op' => 'MAX', 'value' => 9000),
array( 'var' => 'SituationNbMonthPast', 'op' => 'MIN', 'value' => 1),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => ''),
),
),
// --- Pas Procol si actif RCS
array(
'name' => 'PROCOL-EFFACEMENT-3',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => 'P'),
array( 'var' => 'EvenDelete', 'op' => 'EGAL', 'value' => 3),
array( 'var' => 'RcsActif', 'op' => 'EGAL', 'value' => 1),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => ''),
),
),
// --- Le dernier jugement est un appel => Procol Suspendu
array(
'name' => 'PROCOL-EFFACEMENT-4',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => 'P'),
array( 'var' => 'EvenDelete', 'op' => 'EGAL', 'value' => 4),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => 'PA'),
),
),
// --- Procédure trop ancienne plus de 12 ans et actif
array(
'name' => 'PROCOL-ANCIEN',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => 'P'),
array( 'var' => 'InseeActif', 'op' => 'EGAL', 'value' => 1),
array( 'var' => 'SituationDateEnd', 'op' => 'MAX', 'value' => 'DateToday'),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => ''),
),
),
// --- En Procol mais présence d'une annonce de cloture ou LJ avec Bilan publié ultérieurement
array(
'name' => 'PROCOL-CLOTURE-LJ-BILAN',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => 'P'),
array( 'var' => 'Even', 'op' => 'EGAL', 'value' => array(
1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1311,1312,1313,
1500,1501,1502,1503,1504
)),
array( 'var' => 'BilanCloture', 'op' => 'MIN', 'value' => 'DateToday'),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => ''),
),
),
// --- En Procol mais présence d'une annonce LJ avec Bilan publié ultérieurement, uniquement FJ!=1xxx
array(
'name' => 'PROCOL-CLOTURE',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => 'P'),
array( 'var' => 'FJ', 'op' => 'MIN', 'value' => 1999),
//Si l'evenement procol de départ, précédent est
array( 'var' => 'SituationLastEven', 'op' => 'EGAL', 'value' => array(
1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1311,1312,1313,1314,1417
)),
array( 'var' => 'Even', 'op' => 'EGAL', 'value' => array(
1502,1503
)),
array( 'var' => 'BilanCloture', 'op' => 'MIN', 'value' => 'DateToday'),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => 'CL'),
),
),
// --- En procol mais cutoff manuel
array(
'name' => 'PROCOL-CUT-OFF',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => 'P'),
array( 'var' => 'Cutoff', 'op' => 'EGAL', 'value' => true),
array( 'var' => 'ScoreSolv', 'op' => 'MIN', 'value' => 0),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => ''),
),
),
// --- Absorbé ?? ICI uniquement lorsque Situation = ''
array(
'name' => 'ABSORPTION',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => ''),
array( 'var' => 'Even', 'op' => 'EGAL', 'value' => 'ListEvenAbsorption'),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => 'A'),
),
),
// --- Dissolution ?? ICI uniquement lorsque Situation = ''
array(
'name' => 'DISSOLUTION',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => ''),
array( 'var' => 'Even', 'op' => 'EGAL', 'value' => 'ListEvenDissolution'),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => 'D'),
),
),
// --- Dissolution mais bilan après événements ?? ICI uniquement lorsque Situation = ''
array(
'name' => 'DISSOLUTION-AVEC-BILAN',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => ''),
array( 'var' => 'Even', 'op' => 'EGAL', 'value' => 'ListEvenDissolution'),
array( 'var' => 'BilanCloture', 'op' => 'MIN', 'value' => 'EvenDateJugement'),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => ''),
),
),
// --- Radiation RM
array(
'name' => 'RADIATION-RM',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => ''),
array( 'var' => 'IsRM', 'op' => 'EGAL', 'value' => 1),
array( 'var' => 'InseeActif', 'op' => 'EGAL', 'value' => 0),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => 'RR'),
),
),
// --- Radiation RCS
array(
'name' => 'RADIATION-RCS',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => ''),
array( 'var' => 'IsRCS', 'op' => 'EGAL', 'value' => 1),
array( 'var' => 'InseeActif', 'op' => 'EGAL', 'value' => 0),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => 'RR'),
),
),
// --- Radiation Publié 1
array(
'name' => 'RADIATION-PUB1',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => ''),
array( 'var' => 'Even', 'op' => 'EGAL', 'value' => 'ListEvenRadiation'),
array( 'var' => 'EtabActifNb', 'op' => 'EGAL', 'value' => 0),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => 'RP'),
),
),
// Radiation Publié 2
array(
'name' => 'RADIATION-PUB2',
'value' => 'CONTINUE',
'params' => array(
array( 'var' => 'Situation', 'op' => 'EGAL', 'value' => ''),
array( 'var' => 'Even', 'op' => 'EGAL', 'value' => 'ListEvenRadiation'),
array( 'var' => 'InseeActif', 'op' => 'EGAL', 'value' => 0),
array( 'var' => 'IsRCS', 'op' => 'EGAL', 'value' => 1),
array( 'var' => 'Situation', 'op' => 'SET', 'value' => 'RP'),
),
),
);

View File

@ -1,5 +0,0 @@
<?php
return array(
2720, //Fusion/Absorption (entitée absorbée)
2721, //Fusion/Absorption (entitée absorbée non identifiée)
);

View File

@ -1,9 +0,0 @@
<?php
return array(
2202, //Dissolution
2203, //Dissolution de la société
2204, //Cessation d'activité avec dissolution
2210, //Déclaration de dissolution par l'associé unique.
2211, //Clôture de la liquidation
2212, //Liquidation amiable
);

View File

@ -1,170 +0,0 @@
<?php
return array(
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
1100, //Ouverture sauvegarde
1101, //Jugement arrêtant plan de sauvegarde
1102, //Réforme de Redressement Judiciaire en Sauvegarde
1110, //Ouverture Sauvegarde Financière Accélérée
1111, //Ouverture Sauvegarde Accélérée
1115, //Plan de Sauvegarde Financière Accélérée
1116, //Plan de Sauvegarde Accélérée
1118, //Clôture de sauvegarde accélérée
1119, //Clôture de sauvegarde financière accélérée
1120, //Exécution du plan de sauvegarde
1200, //Redressement Judiciaire
1201, //Conversion sauvegarde en Redressement Judiciaire
1202, //Renouvellement de la période d'observation
1203, //Avis de dépôt de l'état de collocation
1204, //Avis de dépôt de l'état des créances
1205, //Avis de dépôt de l'état des créances complémentaires nées après jugement d'ouverture
1206, //Avis de dépôt de l'état des créances nées après jugement d'ouverture
1207, //Règlements amiables
1208, //Avis de dépôt du projet de répartition
1209, //Règlement judiciaire
1210, //Production de titres et créances
1211, //Redressement Judiciaire par extension au(x) gérant(s)
1212, //Réforme de Liquidation Judiciaire en Redressement Judiciaire
1214, //Avis de dépôt de l'état des créances (Loi de 1985)
1215, //Jugement de désignation des organes de la procédure
1216, //Autre avis de dépôt
1217, //Redressement Judiciaire sur résolution du plan de sauvegarde
1218, //Avis de dépôt de l'état des créances et du projet de répartition
1219, //Avis aux salariés
1300, //Conversion Redressement Judiciaire en Liquidation Judiciaire
1301, //Ouverture Liquidation Judiciaire
1302, //Ouverture Liquidation Judiciaire Simplifiée
1303, //Ouverture Liquidation Judiciaire sur résolution du plan
1304, //Réouverture Liquidation Judiciaire
1305, //Liquidation Judiciaire
1306, //Liquidation Judiciaire simplifiée
1307, //Conversion sauvegarde en Liquidation Judiciaire
1308, //Fin du régime de Liquidation Judiciaire Simplifiée
1309, //Conversion Liquidation Judiciaire en Liquidation Judiciaire Simplifiée
1310, //Procédure d'insolvabilité européenne
1311, //Liquidation Judiciaire par extension au(x) gérant(s)
1312, //Liquidation Judiciaire avec continuation d'exploitation
1313, //Liquidation Judiciaire sans remise des accessoires
1314, //Ouverture Liquidation Judiciaire sur résolution du plan de sauvegarde
1346, //Procédure d'insolvabilité (Règlement 1346/2000 du Conseil Européen)
1400, //Nomination d'un administrateur judiciaire
1401, //Nomination d'un mandataire judiciaire
1402, //Nomination d'un représentant des créanciers
1403, //Nominnation/Remplacement de commissaire à l'exécution du plan
1404, //Prolongement de la mission du commissaire à l'exécution du plan
1405, //Nomination d'un juge commissaire
1406, //Changement de SYNDIC
1407, //Modification de plan
1408, //Modification du plan de cession
1409, //Modification du plan de continuation
1410, //Suite de jugement/règlement/liquidation
1411, //Arrêt du plan de cession
1412, //Arrêt du plan de cession partielle
1413, //Arrêt du plan de continuation
1414, //Arrêt du plan de redressement
1415, //Prolongement du plan cession
1416, //Jugement constatant la bonne exécution du plan
1417, //Jugement d'extension de liquidation judiciaire
1418, //Jugement d'extension d'une procédure de redressement judiciaire
1419, //Jugement d'extension d'une procédure de sauvegarde
1420, //Nomination d'un liquidateur judiciaire
1421, //Jugement prorogeant le plan de redressement
1423, //Entreprise / Fond de commerce en faillite à céder
1425, //Plan de cession avec location gérance
1430, //Jugement autorisant la poursuite d'activité
1431, //Jugement de cessation partielle d'activité
1435, //Suspension de l'exécution provisoire
1436, //Suspension provisoire des poursuites
1440, //Jugement accordant un délai pour déposer la liste des créances
1445, //Concordat
1450, //Jugement modifiant la date de cessation des paiements
1455, //Jugement arrêtant le plan d'apurement du passif
1460, //Homologation du plan
1463, //Modification du plan de sauvegarde
1465, //Clôture de la procédure suite à l'homologation du plan
1470, //Fin de mission d'administrateur judiciaire
1472, //Fin de mission du commissaire à l'exécution du plan
1474, //Modification d'intervenant(s)
1475, //Modification de la mission d'un intervenant
1480, //Jugement ordonnant la jonction des procédures
1490, //Confusion des patrimoines de sociétés
1500, //Clôture de la procédure
1501, //Clôture de la procédure après cession totale
1502, //Clôture de la procédure pour extinction du passif
1503, //Clôture de la procédure pour insuffisance d'actif
1504, //Clôture sauvegarde pour absence de projet de plan
1505, //Appel de jugement
1506, //Infirmation Jugement
1507, //Extrait d'arrêt de la cour d'appel
1508, //Extinction du plan de sauvegarde
1509, //Extinction du plan de redressement
1510, //Rejet du plan
1511, //Résolution du plan de cession
1512, //Résolution du plan de continuation
1513, //Résolution du plan de sauvegarde
1514, //Clôture de la procédure de sauvegarde
1515, //Arrêt divers
1517, //Rectification d'une erreur matérielle
1518, //Infirmation Interdiction de gérer/Faillite Personnelle
1519, //Infirmation de jugement d'extension de liquidation judiciaire
1520, //Ordonnance
1521, //Délocalisation de la procédure vers un autre Tribunal
1522, //Clôture de la procédure par dissolution de l'union
1525, //Appel du ministère public
1530, //Jugement constatant l'impécuniosité de la procédure de liquidation
1535, //Jugement modifiant le délai imparti pour la clôture des opérations de liquidation
1540, //Ordonnance statuant sur les contestations du projet de répartition
1541, //Rétractation de prononcé de liquidation judiciaire sur tierce opposition
1542, //Rétractation de jugement d'ouverture d'une procédure de sauvegarde sur tierce opposition
1543, //Rétractation de jugement d'ouverture d'une procédure de redressement judiciaire sur tierce opposition
1544, //Rétractation de jugement d'ouverture d'une procédure de liquidation judiciaire sur tierce opposition
1545, //Rétractation de jugement d'ouverture sur tierce opposition
1546, //Rétractation de jugement (sur tierce opposition)
1580, //Jugement prononçant la continuation de l'activité par apurement du passif
1600, //Faillite personnelle
1601, //Interdiction de gérer
1602, //Jugement de réhabilitation
1603, //Liquidation de biens
1604, //Banqueroute
1605, //Jugement autorisant la reprise des poursuites individuelles
1610, //Faillite personnelle (Loi de 1985)
1611, //Interdiction de gérer (Loi de 1985)
1620, //Jugement condamnant le dirigeant en comblement du passif
1640, //Rétablissement Professionnel
1645, //Clôture du Rétablissement Professionnel
1650, //Rétablissement Personnel
1700, //Décision soumise à publicité
1800, //Suppression des mentions relatives à une procédure collective du K-Bis (Art. R123-135)
1801, //Clôture de la procédure collective (mention faite au K-Bis, Art. R631-43)
1900, //Interdiction temporaire d'exercice de la profession de CAC
1901, //Radiation de la liste des CAC
1999, //Autre procédure collective
);

View File

@ -1,26 +0,0 @@
<?php
return array(
40,
41,
42,
2202, //Dissolution
2203, //Dissolution de la société
2204, //Cessation d'activité avec dissolution
2210, //Déclaration de dissolution par l'associé unique.
2211, //Clôture de la liquidation
2212, //Liquidation amiable
6000, //Radiation pour cause de clôture de la liquidation (amiable/simplifié/général)
6001, //Radiation pour cause de clôture de la liquidation amiable
6002, //Radiation pour cause de clôture de la liquidation judiciaire pour insuffisance d'actif
6003, //Radiation pour cause de clôture de la liquidation judiciaire
6004, //Radiation pour cause de clôture de la liquidation judiciaire simplifié
6005, //Radiation pour clôture du plan de cession
6100, //Radiation pour cause de décès
6200, //Radiation pour cause de mention d'office
6300, //Radiation pour cause de non-exercice
6400, //Radiation pour cause de transfert
6500, //Radiation pour cause de jugement de clôture du plan de cession
6600, //Radiation d'un établissement
6700, //Radiation
8090, //Dissolution d'association
);

View File

@ -1,46 +0,0 @@
<?php
return array(
1005 => 1, //Vente aux enchères suite à saisie
1010 => 1, //Déclaration de cessation de paiement
1050 => 1, //Homologation de la conciliation
1055 => 1, //Résolution de la conciliation
1110 => 1, //Ouverture Sauvegarde Financière Accélérée
1111 => 1, //Ouverture Sauvegarde Accélérée
1115 => 1, //Plan de Sauvegarde Financière Accélérée
1116 => 1, //Plan de Sauvegarde Accélérée
1118 => 1, //Clôture de sauvegarde accélérée
1119 => 1, //Clôture de sauvegarde financière accélérée
1120 => 1, //Exécution du plan de sauvegarde
1203 => 1, //Avis de dépôt de l'état de collocation
1207 => 1, //Règlements amiables
1416 => 1, //Jugement constatant la bonne exécution du plan
1435 => 1, //Suspension de l'exécution provisoire
1436 => 1, //Suspension provisoire des poursuites
1500 => 2, //Clôture de la procédure
1501 => 2, //Clôture de la procédure après cession totale
1502 => 1, //Clôture de la procédure pour extinction du passif
1503 => 2, //Clôture de la procédure pour insuffisance d'actif
1504 => 2, //Clôture sauvegarde pour absence de projet de plan
1505 => 1, //Appel de jugement
1506 => 1, //Infirmation Jugement
1507 => 4, //Extrait d'arrêt de la cour d'appel
1514 => 1, //Clôture de la procédure de sauvegarde
1515 => 1, //Arrêt divers
1517 => 1, //Rectification d'une erreur matérielle
1520 => 1, //Ordonnance
1522 => 1, //Clôture de la procédure par dissolution de l'union
1525 => 4, //Appel du ministère public
1541 => 1, //Rétractation de prononcé de liquidation judiciaire sur tierce opposition
1542 => 1, //Rétractation de jugement d'ouverture d'une procédure de sauvegarde sur tierce opposition
1543 => 1, //Rétractation de jugement d'ouverture d'une procédure de redressement judiciaire sur tierce opposition
1544 => 1, //Rétractation de jugement d'ouverture d'une procédure de liquidation judiciaire sur tierce opposition
1545 => 1, //Rétractation de jugement d'ouverture sur tierce opposition
1550 => 1, //Jugement d'homologation de l'accord
1645 => 1, //Clôture du Rétablissement Professionnel
1650 => 1, //Rétablissement Personnel
1700 => 1, //Décision soumise à publicité
1800 => 1, //Suppression des mentions relatives à une procédure collective du K-Bis (Art. R123-135)
1801 => 1, //Clôture de la procédure collective (mention faite au K-Bis, Art. R631-43)
1900 => 1, //Interdiction temporaire d'exercice de la profession de CAC
1901 => 1, //Radiation de la liste des CAC
);

View File

@ -1,77 +0,0 @@
Graydon WebService
==================
Get the report, or place an order on a company.
- Store report in database
- Move the report to an history if a more recent is available
Identify item that can be interesting for us and our customer.
a CLI could assemble all items, from the differents partners Graydon, Giant, Interne in order to
create an international database.
How Graydon works
=================
http://localhost:9080/CompanyData_webservice/services/SOAPPort_v1_2
getCompanyMatchesByAll
getCompanyMatchesByIdentifier
getCompanyMatchesByKeyword
getCompanyMatchesByName
getCompanyMatchesByPostCode
getCompanyProducts
getCompanyReport
getCompanyMatchIdentifiers
getCompanyMatchMethods
getCountryAvailability
- By cli get regurlarly the available product by country (store it in database)
Country
Code
ServiceSpeed
enum { 'Normal', 'Express', 'Superflash', 'Immediate', 'ImmediateWithUpdate', 'Unknown', 'Delayed' }
Level
Type
enum { 'Database', 'Investigation', 'Unknown' }
DaysFrom
DaysTo
CompanyProductIdentifier => use in placeOrder
TypeHtml
TypeXml => is our prefer format
TypePdf
TypeDoc
getCountryStylesheets
placeOrder
checkOrders
getDemoCompanies
ping
Store report in database
========================
getCompanyReport
IN => OrderReference
MimeType (html, xml, doc, pdf)
OUT =>
Orders
======
placeOrder
IN => ClientReference
CompanyProductIdentifier
OUT =>
XML Data Schema
===============
http://www.graydon.co.uk/GraydonXMLSchema/xsd/GraydonUKCompanySchema.xsd
http://www.graydon.co.uk/GraydonXMLSchema/documentation/GraydonUKCompanySchema/GraydonUKCompanySchema.html

View File

@ -1,51 +0,0 @@
<?php
class Metier_Graydon_Service extends Zend_Soap_Client
{
protected $PartnerClientId = '32790';
protected $PartnerUserId = 'SESS38R7';
protected $ParterPassword = 'E88MSU4p';
public function __construct()
{
//Set the WSDL
$this->_wsdl = __DIR__ . DIRECTORY_SEPARATOR . 'GraydonCompanyData.wsdl';
//Set options
$options = array(
'features' => SOAP_USE_XSI_ARRAY_TYPE + SOAP_SINGLE_ELEMENT_ARRAYS,
'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
);
}
/**
*
* @return stdClass
*/
protected function _AuthenticationParameters()
{
$params = new stdClass();
$params->PartnerUserId = $this->PartnerUserId;
$params->PartnerPassword = $this->ParterPassword;
$params->PartnerClientId = '';
$params->SessionID = '';
return $params;
}
/**
*
* @param string $country
*/
public function getCountryAvailability($country = null)
{
$client = $this->getSoapClient();
$params = new stdClass();
$params->Authentication_Parameters = $this->_AuthenticationParameters();
if ($country !== null) {
$params->Country = $country;
}
return $client->getCountryAvailability($params);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,340 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by Chris Boyce (Graydon UK Limited) -->
<schema targetNamespace="http://xml.graydon.co.uk/GraydonUKCommonTypes" xmlns:tns="http://xml.graydon.co.uk/GraydonUKCommonTypes" xmlns="http://www.w3.org/2001/XMLSchema">
<simpleType name="CompanyTypesType">
<restriction base="string">
<enumeration value="Associate"/>
<enumeration value="Branch"/>
<enumeration value="Client"/>
<enumeration value="Enquiry"/>
<enumeration value="Holding"/>
<enumeration value="Known_As"/>
<enumeration value="Lender"/>
<enumeration value="OtherDirectorship"/>
<enumeration value="Parent"/>
<enumeration value="Shareholder"/>
<enumeration value="Subject"/>
<enumeration value="Subsidiary"/>
<enumeration value="Trustee"/>
<enumeration value="UltimateHolding"/>
</restriction>
</simpleType>
<simpleType name="NameTypesType">
<restriction base="string"/>
</simpleType>
<simpleType name="CompanyIdTypesType">
<restriction base="string">
<enumeration value="Buyers_Number"/>
<enumeration value="Chamber_Of_Commerce"/>
<enumeration value="SIREN_Number"/>
<enumeration value="SIRET_Number"/>
<enumeration value="Unique_Company_Number"/>
<enumeration value="National2"/>
<enumeration value="VAT"/>
<enumeration value="Internal"/>
<enumeration value="National1"/>
<enumeration value="Web_Address"/>
<enumeration value="Fiscal_Code"/>
<enumeration value="National_Government_Business_Identification_Number"/>
<enumeration value="NIT"/>
<enumeration value="RIF"/>
<enumeration value="RUC_Number"/>
<enumeration value="TSR"/>
<enumeration value="Unknown"/>
<enumeration value="Company_Registration_Number"/>
</restriction>
</simpleType>
<simpleType name="CountryDialCodeType">
<restriction base="string"/>
</simpleType>
<simpleType name="CountryISOCodeType">
<restriction base="string"/>
</simpleType>
<simpleType name="CountryType" final="list">
<restriction base="string">
<minLength value="0"/>
<maxLength value="100"/>
<whiteSpace value="preserve"/>
</restriction>
</simpleType>
<complexType name="AddressType">
<sequence>
<element name="EntireAddress" type="string" minOccurs="0" maxOccurs="1"/>
<element name="Building" minOccurs="0" type="string"/>
<element name="Street" minOccurs="0" type="string"/>
<element name="Town" minOccurs="0" type="string"/>
<element name="City" minOccurs="0" type="tns:CityType"/>
<element name="County" minOccurs="0" type="string"/>
<element name="PostCode" minOccurs="0" type="tns:PostCodeType"/>
<element name="Country" type="tns:CountryType" minOccurs="0"/>
</sequence>
</complexType>
<simpleType name="FreeTextTypesType">
<restriction base="string">
<enumeration value="Accounts"/>
<enumeration value="Activities"/>
<enumeration value="Additional Info"/>
<enumeration value="Amount_Secured"/>
<enumeration value="Amount_Satisfied"/>
<enumeration value="Annual_Report"/>
<enumeration value="Auditors"/>
<enumeration value="Auditors_Qualification"/>
<enumeration value="Augur_Score_Description"/>
<enumeration value="Augur_Score_Explanation"/>
<enumeration value="Brief History"/>
<enumeration value="Capital"/>
<enumeration value="Credit_Score_Description"/>
<enumeration value="Credit_Score_Explanation"/>
<enumeration value="Current Scorecard"/>
<enumeration value="Description"/>
<enumeration value="Document_Description"/>
<enumeration value="Enquiry_Answer"/>
<enumeration value="Enquiry_Question"/>
<enumeration value="Error_Message"/>
<enumeration value="Financial Notes"/>
<enumeration value="Financial/commercial situation"/>
<enumeration value="Fixed_Assets"/>
<enumeration value="Gearing trend"/>
<enumeration value="General Info"/>
<enumeration value="Increase_in_CCJs_Or_Scottish_Decrees"/>
<enumeration value="Interview"/>
<enumeration value="Liquidity"/>
<enumeration value="Long_Term_Liabilities"/>
<enumeration value="Mortgage_Description"/>
<enumeration value="Nace_disclaimer"/>
<enumeration value="Net_Income"/>
<enumeration value="Net_Worth"/>
<enumeration value="No_Accounts_at_CRO"/>
<enumeration value="No_Pre_Tax"/>
<enumeration value="No_Pre-Tax_Profit"/>
<enumeration value="No_Turnover"/>
<enumeration value="Non_trading_position"/>
<enumeration value="Note"/>
<enumeration value="Occupation"/>
<enumeration value="Only_Turnover"/>
<enumeration value="Operating_Loss"/>
<enumeration value="Operating_Profit"/>
<enumeration value="Payment Trend"/>
<enumeration value="Payments"/>
<enumeration value="Position"/>
<enumeration value="Pre_Tax"/>
<enumeration value="Pre_Tax_Profit"/>
<enumeration value="Premises"/>
<enumeration value="Product_Description"/>
<enumeration value="Product_Secondary_Warning"/>
<enumeration value="Profit_or_Loss"/>
<enumeration value="Property_Details"/>
<enumeration value="Public Info"/>
<enumeration value="Reference"/>
<enumeration value="Registered_Objectives"/>
<enumeration value="Serviced_by"/>
<enumeration value="Share_Description"/>
<enumeration value="Summary"/>
<enumeration value="Total_Equity"/>
<enumeration value="Trade morality"/>
<enumeration value="Trade_Reference_Comment"/>
<enumeration value="Trend"/>
<enumeration value="Turnover"/>
<enumeration value="Working_Capital"/>
<enumeration value="Xseption"/>
<enumeration value="Xseption Description"/>
<enumeration value="Business trend"/>
</restriction>
</simpleType>
<simpleType name="DateTypesType">
<restriction base="string">
<enumeration value="Account_Opened"/>
<enumeration value="Accounting_Reference"/>
<enumeration value="Accounts"/>
<enumeration value="Accounts_Lodged"/>
<enumeration value="Age_of_Company"/>
<enumeration value="Annual_Return"/>
<enumeration value="Appointment"/>
<enumeration value="Current"/>
<enumeration value="Date_Created"/>
<enumeration value="Date_Fully_Satisfied"/>
<enumeration value="Date_of_Birth"/>
<enumeration value="Date_of_Document"/>
<enumeration value="Date_of_Latest_Mortgage_Created"/>
<enumeration value="Date_of_Latest_Satisfaction"/>
<enumeration value="Date_of_Issue"/>
<enumeration value="Date_Registered"/>
<enumeration value="Enquiry"/>
<enumeration value="Expirary"/>
<enumeration value="Filed_at_Companies_House"/>
<enumeration value="In"/>
<enumeration value="Incorporation"/>
<enumeration value="Latest_Accounts"/>
<enumeration value="Legal_Form_Since"/>
<enumeration value="Message"/>
<enumeration value="Out"/>
<enumeration value="Research"/>
<enumeration value="Resignation"/>
<enumeration value="Settled"/>
<enumeration value="Summary"/>
<enumeration value="Terms_in_Days"/>
<enumeration value="Generation"/>
<enumeration value="Order"/>
<enumeration value="Last database update"/>
<enumeration value="Latest_Accounts_at_CRO"/>
<enumeration value="Registered"/>
</restriction>
</simpleType>
<simpleType name="DateFormatType">
<restriction base="string">
<enumeration value="CCYY"/>
<enumeration value="CCYYMMDD"/>
<enumeration value="DD"/>
<enumeration value="DDMM"/>
<enumeration value="DDMMCCYY"/>
<enumeration value="MM"/>
<enumeration value="MMCCYY"/>
<enumeration value="MMDDCCYY"/>
<enumeration value="DD/MM/CCYY"/>
</restriction>
</simpleType>
<simpleType name="TimeTypesType">
<restriction base="string">
<enumeration value="HHMMSS"/>
<enumeration value="HHMM"/>
</restriction>
</simpleType>
<simpleType name="LanguageCodesType">
<restriction base="string">
<enumeration value="E"/>
<enumeration value="F"/>
<enumeration value="D"/>
</restriction>
</simpleType>
<simpleType name="CurrencyDescriptionType">
<restriction base="string">
<enumeration value="Euro"/>
<enumeration value="Japanese Yen"/>
<enumeration value="US Dollar"/>
</restriction>
</simpleType>
<simpleType name="TaxonomyTypesType">
<restriction base="string"/>
</simpleType>
<simpleType name="CommunicationTypesType">
<restriction base="string">
<enumeration value="Telephone"/>
<enumeration value="Fax"/>
<enumeration value="Email"/>
</restriction>
</simpleType>
<simpleType name="Credit_RatingTypesType">
<restriction base="string">
<enumeration value="Augur_Score"/>
<enumeration value="Credit_Rating"/>
<enumeration value="Credit_Score"/>
<enumeration value="Historical_Credit_Rating"/>
<enumeration value="Maximum_Credit_Guide"/>
<enumeration value="Monthly_Credit_Guide"/>
<enumeration value="Previous_Credit_Score"/>
<enumeration value="Requested_Credit_Amount"/>
<enumeration value="Risk_Category"/>
<enumeration value="Risk_Class"/>
</restriction>
</simpleType>
<simpleType name="DirectorsTypesType">
<restriction base="string">
<enumeration value="Director"/>
</restriction>
</simpleType>
<simpleType name="TitleTypesType">
<restriction base="string">
<enumeration value="Mr"/>
<enumeration value="Mrs"/>
</restriction>
</simpleType>
<simpleType name="EmployeesTypesType">
<restriction base="string">
<enumeration value="Employed"/>
<enumeration value="Full_Time_Employees"/>
<enumeration value="Head_Office_Employees"/>
<enumeration value="Staff_Employeed"/>
<enumeration value="Staff_Employees"/>
</restriction>
</simpleType>
<simpleType name="UnitsTypesType">
<restriction base="string">
<enumeration value="1"/>
<enumeration value="10"/>
<enumeration value="100"/>
<enumeration value="1000"/>
</restriction>
</simpleType>
<simpleType name="CurrencyType" final="list">
<restriction base="string">
<enumeration value="GBP"/>
<enumeration value="EUR"/>
<enumeration value="USD"/>
<enumeration value="JYP"/>
<enumeration value="DKK"/>
</restriction>
</simpleType>
<simpleType name="ProductCode">
<restriction base="int"/>
</simpleType>
<simpleType name="CompanyIdType">
<restriction base="string">
<minLength value="1"/>
<whiteSpace value="collapse"/>
</restriction>
</simpleType>
<simpleType name="CompanyNameType">
<restriction base="string">
<minLength value="0"/>
<maxLength value="60"/>
<whiteSpace value="preserve"/>
</restriction>
</simpleType>
<simpleType name="CityType">
<restriction base="string">
<minLength value="0"/>
<maxLength value="100"/>
<whiteSpace value="preserve"/>
</restriction>
</simpleType>
<simpleType name="PostCodeType">
<restriction base="string">
<minLength value="0"/>
<maxLength value="10"/>
<whiteSpace value="preserve"/>
</restriction>
</simpleType>
<simpleType name="MimeTypesType">
<restriction base="string">
<enumeration value="html"/>
<enumeration value="xml"/>
<enumeration value="pdf"/>
<enumeration value="doc"/>
</restriction>
</simpleType>
<simpleType name="CommunicationType">
<restriction base="string"/>
</simpleType>
<simpleType name="OrderReferenceType">
<annotation>
<documentation>Unique order reference assigned to the customer for company product ordered</documentation>
</annotation>
<restriction base="int">
<whiteSpace value="collapse"/>
</restriction>
</simpleType>
<simpleType name="ActivityTypesType">
<restriction base="string">
<enumeration value="NACE"/>
<enumeration value="SIC"/>
</restriction>
</simpleType>
</schema>

File diff suppressed because it is too large Load Diff

View File

@ -1,33 +0,0 @@
Graydon UK Web Services
This document explains the PHP scripts used to communicate with the Web Service functions.
Run Requests:
1) Install PHP onto the computer.
2) Add the php root directory to the system PATH.
3) From the command line run the php scripts passing the correct command line options.
Examples:
1) php checkorders.php <username> <password> Delivered 0 " " 2008-10-02
2) php getCompanyMatchesByKeyword.php <username> <password> "United Kingdom" Company " " " "
3) php companyproducts.php <username> <password> "UNITED KINGDOM:National1:GR064240"
Php version:
5.2.8
Web Service:
requests - checkorders: Returns a list of orders that match the search criteria.
- companyproducts: Returns a list of products for a company that match the company match identifier.
- getCompanyMatchesByKeyword: Returns a list of Companies that match the search criteria.
Command Line Arguments:
All the scripts use command line arguments, the two constant arguments for all scripts is the
username and password. Both the username and password are used by the web service to authenticate
the request.
argument 1 = Username
argument 2 = Password
argument 3 = Function parameters
. = Function parameters
. = Function parameters
. = Function parameters
argument x = Function parameters

View File

@ -1,61 +0,0 @@
<?php
/*
* Created on 12 Feb 2009
* This PHP script demonstrates how to consume a Graydon Web Service <companyproducts>.
* The output will consist of a list of the transaction identifier, the user id, the company name
* and a list of the product codes for that company.
* Command line arguments
* 1) Username
* 2) Password
* 3) Order State ( <Delivered>, <ReCompleted>, <Completed>, <Notified>, <Assigned>, <Initialised> )
* 4) Order Reference
* 5) Client Reference
* 6) Date ( YYYY-MM-DD xsd format )
*/
// Create a soap client
$client = new SoapClient("GraydonCompanyData.wsdl", array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));
// Create the authentication parameters object
$authentication = new StdClass();
// Initialise the authentication parameters
$authentication->PartnerUserId = $argv[1];
$authentication->PartnerPassword = $argv[2];
$authentication->PartnerClientId = '';
$authentication->SessionID = '';
// Create a new request parameters object
$request = new StdClass();
// Initialise the parameters object
$request->Authentication_Parameters = $authentication;
$request->OrderState = $argv[3];
$request->OrderReference = $argv[4];
$request->ClientReference = $argv[5];
$request->DateFrom = $argv[6];
try {
// Make request to the web service
$result = $client->checkOrders($request);
// Print out the result
print "\nThe Returned data: ";
print "\n * Service Log: ";
print "\n * Transaction Identifier - ";
print $result->Service_Log->TransactionIdentifier;
print "\n * Partner User Id - ";
print $result->Service_Log->PartnerUserId;
print "\n * Orders: ";
// Get the orders returned from the request
$orders = $result->CheckOrders->OrderStatus;
$count = count($orders);
// For each order
for ($i = 0; $i < $count; $i ++) {
// Print out the order details
print "\n *Order: ";
print print $orders[$i]->Order->Name;
print "\n * Order Reference - ";
print $orders[$i]->OrderReference;
print "\n * Order State - ";
print $orders[$i]->OrderState;
}
} catch (SoapFault $exception) {
// Print the exception
print "\n Exception ";
var_dump($exception->detail);
}

View File

@ -1,55 +0,0 @@
<?php
/*
* Created on 11 Feb 2009
* This PHP script demonstrates how to consume a Graydon Web Service <companyproducts>.
* The output will consist of a list of the transaction identifier, the user id, the company name
* and a list of the product codes for that company.
* Command line arguments
* 1) Username
* 2) Password
* 3) Company Match Identifier
*/
// Create a soap client
$client = new SoapClient("GraydonCompanyData.wsdl");
// Create the authentication parameters object
$authentication = new StdClass();
// Initialise the authentication parameters
$authentication->PartnerUserId = $argv[1];
$authentication->PartnerPassword = $argv[2];
$authentication->PartnerClientId = '';
$authentication->SessionID = '';
// Create the company identifier object
$identifier = $argv[3];
// Create the getCompanyProducts parameters object
$parameters = new StdClass();
// Initialise the parameters
$parameters->Authentication_Parameters = $authentication;
$parameters->CompanyMatchIdentifier = $identifier;
try {
// Make a request on the webservice
$result = $client->getCompanyProducts($parameters);
// Output the xml
print "\nThe Returned data: ";
print "\n * Service Log: ";
print "\n * Transaction Identifier - ";
print $result->Service_Log->TransactionIdentifier;
print "\n * Partner User Id - ";
print $result->Service_Log->PartnerUserId;
print "\n * Company: ";
print $result->Company->Name;
print "\n * Products: ";
$array = $result->Products->Product;
$count = count($array);
// For each Product
for ($i = 0; $i < $count; $i ++) {
// Output the product name
print "\n * Product Code - ";
print $array[$i]->Code;
}
} catch (SoapFault $exception) {
// Print the exception
print "\n Exception ";
var_dump($exception->detail);
}

View File

@ -1,64 +0,0 @@
<?php
/*
* Created on 12 Feb 2009
* This PHP script demonstrates how to consume a Graydon Web Service <companyproducts>.
* The output will consist of the transaction identifier, the user id and for each company matching
* to the keyword its name and its CompanyMatchIdentifier.
* Command line arguments
* 1) Username
* 2) Password
* 3) Country
* 4) Keyword
* 5) City
* 6) PostCode
*/
// Create a soap client
$client = new SoapClient("GraydonCompanyData.wsdl");
// Create the authentication parameters object
$authentication = new StdClass();
// Initialise the authentication parameters
$authentication->PartnerUserId = $argv[1];
$authentication->PartnerPassword = $argv[2];
$authentication->PartnerClientId = '';
$authentication->SessionID = '';
// Create a new country parameters object
$company = new StdClass();
// Initialise the country object
$company->Country = $argv[3];
$company->ClientReference = '';
// Create the request parameters
$request = new StdClass();
// Initialise the request object
$request->Authentication_Parameters = $authentication;
$request->CompanyMatches_Parameters = $company;
$request->Keyword = $argv[4];
$request->City = $argv[5];
$request->PostCode = $argv[6];
try {
// Make a request on the web service
$result = $client->getCompanyMatchesByKeyword($request);
// Print out the result
print "\nThe Returned data: ";
print "\n * Service Log: ";
print "\n * Transaction Identifier - ";
print $result->Service_Log->TransactionIdentifier;
print "\n * Partner User Id - ";
print $result->Service_Log->PartnerUserId;
print "\n * Companies: ";
// Get the list of companies
$companies = $result->CompanyMatches->Company;
$count = count($companies);
for ($i = 0; $i < $count; $i ++) {
print "\n * Company - ";
print $companies[$i]->Name;
print "\n * Company Match Identifier - ";
print $companies[$i]->CompanyMatchIdentifier;
}
} catch (SoapFault $exception) {
// Print the exception
print "\n Exception ";
var_dump($exception->detail);
}

View File

@ -1,627 +0,0 @@
<?php
require_once dirname(__FILE__) . '/Service.php';
/**
* Infogreffe : Document Acte
*/
class Metier_Infogreffe_DocAC extends Metier_Infogreffe_Service
{
const INT = 1000;
/**
* PDO Connection with Doctrine
* @var \Doctrine\DBAL\Connection
*/
protected $conn;
/**
* Infogreffe : Document Bilan
* @param \Doctrine\DBAL\Connection $conn
*/
public function __construct($conn = null)
{
parent::__construct();
// Set Database
if ($conn === null) {
$this->conn = Zend_Registry::get('doctrine');
} else {
$this->conn = $conn;
}
// Set type
$this->type_document = 'AC';
}
/**
* Défini le SIREN
* @param string $siren
* @return void
*/
public function setSiren($siren)
{
$this->siren = $siren;
}
/**
* @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) {
//Infogreffe webservice
try {
$xml = $this->callRequest();
$requestOk = true;
} catch (Exception $e) {
$requestOk = false;
//file_put_contents('debug.log', $e->getMessage());
//@todo : get error message
//echo $e->getMessage();
}
if ($requestOk === true) {
// Set All line state to 0
try {
$this->conn->update('jo.greffes_actes',
array('actif' => 0), array('siren' => $this->siren));
} catch (\Doctrine\DBAL\DBALException $e) {
}
$actesXML = $this->formatList($xml);
}
}
// Lecture de la base de données
$columns = array(
'siren',
'numRC',
'LPAD(numGreffe,4,0) AS numGreffe',
'pdfLink',
'pdfSize',
'pdfPage',
'num_depot',
'date_depot',
'date_acte',
'LPAD(num_acte,2,0) AS num_acte',
'type_acte',
'type_acte_libelle',
'nbpages_acte',
'decision_nature',
'decision_libelle',
'mode_diffusion',
);
try {
$qb = $this->conn->createQueryBuilder();
$qb->select($columns)->from('jo.greffes_actes')
->where('siren=:siren')->setParameter('siren', $this->siren)->andWhere('actif=1')
->orderBy('date_depot', 'DESC')->orderBy('num_depot', 'DESC')
->orderBy('num_acte', 'ASC')->orderBy('date_acte', 'DESC');
$stmt = $qb->execute();
} catch (\Doctrine\DBAL\DBALException $e) {
throw new Exception(__METHOD__ . ': ' . $e->getMessage());
}
$actes = array();
if ($stmt->rowCount() > 0) {
$rows = $stmt->fetchAll(\PDO::FETCH_OBJ);
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;
$item->ActeDecisionNature = $row->decision_nature;
$item->ActeDecisionLabel = $row->decision_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) || !empty($item->File)) {
$item->ModeDiffusion = 'T';
} elseif (in_array('C', $mode_diffusion)) {
$item->ModeDiffusion = 'C';
} else {
$item->ModeDiffusion = '';
}
$actes[] = $item;
}
}
return $actes;
}
/**
* Commande Téléchargement
* @param string $depotDate
* @param int $depotNum
* @param string $acteType
* @param string $acteDate
* @param int $acteNum
* @param int $orderId
* @throws Exception
* @return string
* Return the full path of the file
*/
public function getCommandeT($depotDate, $depotNum, $acteType, $acteDate, $acteNum, $orderId = null)
{
// Lire dans la base de données
$columns = array(
'siren',
'numRC',
'LPAD(numGreffe,4,0) AS numGreffe',
'pdfLink',
'num_depot',
'date_depot',
'date_acte',
'LPAD(num_acte,2,0) AS num_acte',
'type_acte',
);
$qb = $this->conn->createQueryBuilder();
$qb->select($columns)->from('jo.greffes_actes')
->where('siren=:siren')->setParameter('siren', $this->siren)
->andWhere('num_depot=:depotNum')->setParameter('depotNum', $depotNum)
->andWhere('date_depot=:depotDate')->setParameter('depotDate', $depotDate)
->andWhere('num_acte=:acteNum')->setParameter('acteNum', $acteNum)
->andWhere('date_acte=:acteDate')->setParameter('acteDate', $acteDate)
->andWhere('type_acte=:acteType')->setParameter('acteType', $acteType);
$stmt = $qb->execute();
if ($stmt->rowCount() == 0) {
throw new Exception('Not exist');
}
$row = $stmt->fetch(\PDO::FETCH_OBJ);
$this->mode_diffusion = 'T';
$this->reference_client = 'T'.date('YmdHis');
$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->date_depot = $row->date_depot;
$this->num_depot = $row->num_depot;
$this->date_acte = $row->date_acte;
$this->num = $row->num_acte;
//Needed element for filename
$date = $row->date_acte;
if ($date == '0000-00-00') {
$date = $row->date_depot;
}
$type = $row->type_acte;
$num = $row->num_acte;
$options = $row->numGreffe . '-' . substr($row->numRC, 0, 2) . '-' . substr($row->numRC, 2, 1) . '-' . substr($row->numRC, 3) . '-' . $row->num_depot;
$dir = $this->getFilePath($date);
if (! file_exists($this->config->storage->path . '/' . $dir)) {
mkdir($this->config->storage->path . '/' . $dir, 0777, true);
}
// Set filename
$filename = $dir . '/' . $this->getFileName($date, $num, $type, $options);
if ($row->pdfLink != '') {
// Set the filename
$filename = $dir . '/' . $row->pdfLink;
// Check if filename exist
if (!file_exists($this->config->storage->path . '/' . $filename)) {
throw new Exception('File not found', self::INT);
}
} elseif (file_exists($this->config->storage->path . '/' . $filename)) {
// Analyser le fichier - Nombre de page et taille
$infos = $this->pdfInfos($this->config->storage->path . '/' . $filename);
// Enregistrer les infos du fichier dans la base de données
if (false !== $infos) {
$this->dbSetFile(basename($filename), $infos['size'], $infos['pages'], $infos['version']);
} else {
$this->dbSetFile(basename($filename));
}
} else {
try {
$xml = $this->callRequest();
} catch (Exception $e) {
throw new Exception($e->getMessage(), $e->getCode());
}
$acte = $this->formatItem($xml);
$url = $acte['actes'][0]['url_acces'];
if (empty($url)) {
throw new Exception('File url not given');
}
if ($orderId !== null) {
$this->conn->update('sdv1.greffe_commandes_ac', array(
'cmdUrl' => $url,
'dateCommande' => date('YmdHis')),
array('id' => $orderId));
}
// 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(basename($filename), $infos['size'], $infos['pages'], $infos['version']);
} else {
$this->dbSetFile(basename($filename));
}
}
return $filename;
}
/**
* Commande courrier
* @param string $depotDate
* @param int $depotNum
* @param string $acteType
* @param string $acteDate
* @param int $acteNum
* @param string $reference
* @throws Exception
* @return boolean
*/
public function getCommandeC($depotDate, $depotNum, $acteType, $acteDate, $acteNum, $reference = '')
{
// Lire dans la base de données
$columns = array(
'siren',
'numRC',
'LPAD(numGreffe,4,0) AS numGreffe',
'pdfLink',
'num_depot',
'date_depot',
'date_acte',
'LPAD(num_acte,2,0) AS num_acte',
'type_acte',
);
$qb = $this->conn->createQueryBuilder();
$qb->select($columns)->from('jo.greffes_actes')
->where('siren=:siren')->setParameter('siren', $this->siren)
->andWhere('num_depot=:depotNum')->setParameter('depotNum', $depotNum)
->andWhere('date_depot=:depotDate')->setParameter('depotDate', $depotDate)
->andWhere('num_acte=:acteNum')->setParameter('acteNum', $acteNum)
->andWhere('date_acte=:acteDate')->setParameter('acteDate', $acteDate)
->andWhere('type_acte=:acteType')->setParameter('acteType', $acteType);
$stmt = $qb->execute();
if ($stmt->rowCount() == 0) {
throw new Exception('Not exist');
}
$this->mode_diffusion = 'C';
$this->reference_client = $reference;
$row = $stmt->fetch(\PDO::FETCH_OBJ);
// 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->type_acte = $row->type_acte;
$this->date_acte = $row->date_acte;
$this->num = $row->num_acte;
// Faire la requete
try {
$xml = $this->callRequest();
} catch (Exception $e) {
// La prise en charge du courrier est effective
if ($e->getCode() != 17) {
throw new Exception($e->getMessage());
}
}
return true;
}
/**
*
* @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
* @param string $options
* (Numéro du Greffe)-(dossier_millesime)-(dossier_statut)-(dossier_chrono)-(num_depot)
* @return string
*/
public function getFileName($date, $num, $type, $options)
{
$date = substr($date, 0, 4) . substr($date, 5, 2) . substr($date, 8, 2);
return 'acte-' . $this->siren . '-' . $type . '-' . $date . '-' . $options . '-' . $num . '.pdf';
}
/**
*
* @param string $date
* Date de l'acte au format AAAA-MM-JJ
* @return string
*/
public function getFilePath($date)
{
return 'actes/' . substr($date, 0, 4) . '/' . 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;
if ($infoActe->getElementsByTagName('date_acte')->item(0)->nodeValue == '') {
$actenum['date_acte'] = '0000-00-00';
}
$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)
{
foreach ($list['depot'] as $depot) {
$data = array(
'siren' => $list['num_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' => $depot['date_acte'],
'num_acte' => $depot['num_acte'],
'type_acte' => $depot['type_acte'],
'type_acte_libelle' => $depot['type_acte_libelle'],
'nbpages_acte' => $depot['nbpages_acte'],
'decision_nature' => empty($depot['decision']['nature']) ? '' : $depot['decision']['nature'] ,
'decision_libelle' => empty($depot['decision']['libelle']) ? '' : $depot['decision']['libelle'] ,
'mode_diffusion' => join(',', $depot['mode_diffusion']),
'actif' => 1,
);
try {
$sql = "SELECT * FROM jo.greffes_actes
WHERE siren=:siren AND num_depot=:depotNum AND date_depot=:depotDate
AND num_acte=:acteNum ORDER BY dateInsert";
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('siren', $this->siren);
$stmt->bindValue('depotNum', intval($list['num_depot']));
$stmt->bindValue('depotDate', $list['date_depot']);
$stmt->bindValue('acteNum', intval($depot['num_acte']));
$stmt->execute();
// Insert
if ($stmt->rowCount() == 0) {
$data['dateInsert'] = date('YmdHis');
try {
$result = $this->conn->insert('jo.greffes_actes', $data);
} catch (\Doctrine\DBAL\DBALException $e) {
throw new Exception($e->getMessage());
}
}
// Update
else {
// Get first Item
$item = $stmt->fetch(\PDO::FETCH_OBJ);
// Correction anomalie item multiple
if ($stmt->rowCount() > 1) {
$this->conn->beginTransaction();
try {
while ($rowDel = $stmt->fetch(\PDO::FETCH_OBJ)) {
$this->conn->delete('jo.greffes_actes', array(
'id' => $rowDel->id));
}
$this->conn->commit();
} catch (\Doctrine\DBAL\DBALException $e) {
$this->conn->rollBack();
throw new Exception($e->getMessage());
}
}
// Real Update
try {
$result = $this->conn->update('jo.greffes_actes', $data,
array('id' => $item->id));
} catch (\Doctrine\DBAL\DBALException $e) {
throw new Exception($e->getMessage());
}
}
} catch (\Doctrine\DBAL\DBALException $e) {
throw new Exception($e->getMessage());
}
}
if ($result) {
return true;
}
return true;
}
/**
* Set file informations in database
* @param string $filename
* @param int $size
* @param int $numberOfPage
* @param string $version
* @return boolean
*/
protected function dbSetFile($filename, $size = 0, $numberOfPage = '', $version = '')
{
$data = array(
'pdfLink' => $filename,
'pdfSize' => $size,
'pdfPage' => $numberOfPage,
'pdfVer' => $version,
'pdfDate' => date('Ymd'),
);
$identifier = array(
'siren' => $this->siren,
'num_depot' => $this->num_depot,
'date_depot' => $this->date_depot,
'date_acte' => $this->date_acte,
'num_acte' => $this->num,
);
try {
$result = $this->conn->update('jo.greffes_actes', $data, $identifier);
} catch (\Doctrine\DBAL\DBALException $e) {
throw new Exception($e->getMessage());
}
if ($result) {
return true;
}
return false;
}
}

View File

@ -1,584 +0,0 @@
<?php
require_once dirname(__FILE__) . '/Service.php';
/**
* Infogreffe : Document Bilan
*/
class Metier_Infogreffe_DocBI extends Metier_Infogreffe_Service
{
const INT = 1000;
/**
* Type de comptes
* consolides|sociaux
* @var string
*/
public $type_comptes;
/**
* PDO Connection with Doctrine
* @var \Doctrine\DBAL\Connection
*/
protected $conn;
/**
* Infogreffe : Document Bilan
* @param \Doctrine\DBAL\Connection $conn
*/
public function __construct($conn = null)
{
parent::__construct();
// Set Database
if ($conn === null) {
$this->conn = Zend_Registry::get('doctrine');
} else {
$this->conn = $conn;
}
// Set type
$this->type_document = 'BI';
}
/**
* Défini le SIREN
* @param string $siren
* @return void
*/
public function setSiren($siren)
{
$this->siren = $siren;
}
/**
*
* @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) {
// Infogreffe webservice
try {
$xml = $this->callRequest();
$requestOk = true;
} catch (Exception $e) {
$requestOk = false;
// @todo : get error message
}
if ($requestOk === true) {
// Set All line state to 0
try {
$this->conn->update('jo.greffes_bilans',
array('actif' => 0), array('siren' => $this->siren));
} catch (\Doctrine\DBAL\DBALException $e) {
}
$bilansXML = $this->formatList($xml);
}
}
// Lecture de la base de données
$columns = array(
'siren',
'numRC',
'LPAD(numGreffe,4,0) AS numGreffe',
'pdfLink',
'pdfSize',
'pdfPage',
'millesime',
'num_depot',
'date_cloture',
'type_comptes',
'mode_diffusion',
'duree_exercice',
'saisie_date',
'saisie_code',
'pages',
);
try {
$qb = $this->conn->createQueryBuilder();
$qb->select($columns)->from('jo.greffes_bilans')
->where('siren=:siren')->setParameter('siren', $this->siren)->andWhere('actif=1')
->orderBy('date_cloture', 'DESC')->orderBy('num_depot', 'DESC')
->orderBy('date_cloture', 'DESC');
$stmt = $qb->execute();
} catch (\Doctrine\DBAL\DBALException $e) {
throw new Exception(__METHOD__ . ': ' . $e->getMessage());
}
$bilans = array();
if ($stmt->rowCount() > 0) {
$rows = $stmt->fetchAll(\PDO::FETCH_OBJ);
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;
if (empty($row->type_comptes)) {
$item->Type = 'sociaux';
} else {
$item->Type = $row->type_comptes;
}
$mode_diffusion = explode(',', $row->mode_diffusion);
if (in_array('T', $mode_diffusion) || !empty($item->File)) {
$item->ModeDiffusion = 'T';
} elseif (in_array('C', $mode_diffusion)) {
$item->ModeDiffusion = 'C';
} else {
$item->ModeDiffusion = '';
}
$item->DureeExercice = $row->duree_exercice;
/**
* Following data are not as expected as the type and other data could change
* Only num depot don't change.
*/
$item->SaisieDate = $row->saisie_date;
$item->SaisieCode = $row->saisie_code;
switch ($row->saisie_code) {
case '00': $item->SaisieLabel = "Bilan saisi sans anomalie"; break;
case '01': $item->SaisieLabel = "Bilan saisi avec des incohérences comptables à la source du document (issues du remettant)"; break;
case '02': $item->SaisieLabel = "Bilan avec Actif, Passif ou Compte de Résultat nul"; break;
case '03': $item->SaisieLabel = "Bilan incomplet (des pages manquent)"; break;
case '04': $item->SaisieLabel = "Bilan complet non détaillé (seuls les totaux et sous totaux sont renseignés)"; break;
case '05': $item->SaisieLabel = "Bilan reçu en double exemplaire"; break;
case '06': $item->SaisieLabel = "Bilan intermédiaire - Situation provisoire"; break;
case '07': $item->SaisieLabel = "Bilan illisible"; break;
case 'A7': $item->SaisieLabel = "Bilan illisible, présentant un cadre gris très foncés (dans lesquels sont inscrits en général les totaux)"; break;
case 'B7': $item->SaisieLabel = "Bilan manuscrits"; break;
case 'C7': $item->SaisieLabel = "Bilan illisible, présentant des caractères trop gras"; break;
case 'D7': $item->SaisieLabel = "Bilan scanné en biais ou qui présentent des pages rognées"; break;
case 'E7': $item->SaisieLabel = "Bilan numérisés trop clairement (comme une imprimante dont la cartouche est presque vide)"; break;
case 'F7': $item->SaisieLabel = "Bilan illisible"; break;
case '08': $item->SaisieLabel = "Bilan consolidé"; break;
case '09': $item->SaisieLabel = "Déclaration d'impôts"; break;
case '10': $item->SaisieLabel = "Document autre que bilan"; break;
case '11': $item->SaisieLabel = "Bilan de clôture de liquidation"; break;
case '12': $item->SaisieLabel = "Bilan de Société financière"; break;
case '13': $item->SaisieLabel = "Bilan de Société d'assurance"; break;
case '14': $item->SaisieLabel = "Bilan de Société immobilière"; break;
case '15': $item->SaisieLabel = "Bilan de Société étrangère"; break;
default: $item->SaisieLabel = ""; break;
}
$bilans[] = $item;
}
}
return $bilans;
}
/**
* Download file
* @param string $dateCloture
* Format AAAA-MM-DD
* @param string $type
* sociaux ou consolides
* @params int $orderId
* Id de commande pour l'enregistrement dans la table de gestion
* @throws Exception
* @return string
* Return path (not complete) and filename
*/
public function getCommandeT($dateCloture = null, $type = 'sociaux', $orderId = null)
{
// Lire dans la base de données
$columns = array(
'siren',
'numRC',
'LPAD(numGreffe,4,0) AS numGreffe',
'pdfLink',
'millesime',
'num_depot',
'date_cloture',
'type_comptes',
);
$qb = $this->conn->createQueryBuilder();
$qb->select($columns)->from('jo.greffes_bilans')
->where('siren=:siren')->setParameter('siren', $this->siren)
->andWhere('date_cloture=:date')->setParameter('date', $dateCloture);
if ($type == 'sociaux' || $type == '') {
$qb->andWhere("(type_comptes='sociaux' OR type_comptes='')");
} else {
$qb->andWhere('type_comptes=:type')->setParameter('type', $type);
}
$qb->orderBy('dateInsert', 'DESC')->orderBy('num_depot', 'DESC');
$stmt = $qb->execute();
if ($stmt->rowCount() == 0) {
throw new Exception("Element doesn't exist");
}
$row = $stmt->fetch(\PDO::FETCH_OBJ);
$this->mode_diffusion = 'T';
$this->reference_client = 'T'.date('YmdHis');
$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;
$this->type_comptes = $row->type_comptes;
$dir = $this->getFilePath($type, $dateCloture);
if (! file_exists($this->config->storage->path . '/' . $dir)) {
mkdir($this->config->storage->path . '/' . $dir, 0777, true);
}
//Set the filename
$filename = $dir . '/' . $this->getFileName($type, $dateCloture);
if ($row->pdfLink != '') {
//Check if filename exist
if (! file_exists($this->config->storage->path . '/' . $filename)) {
throw new Exception('File not found', self::INT);
}
} elseif (file_exists($this->config->storage->path . '/' . $filename)) {
//Analyser le fichier - Nombre de page et taille
$infos = $this->pdfInfos($this->config->storage->path . '/' . $filename);
//Enregistrer les infos du fichier dans la base de données
if (false !== $infos) {
$this->dbSetFile(basename($filename), $infos['size'], $infos['pages'], $infos['version']);
} else {
$this->dbSetFile(basename($filename));
}
} else {
try {
$xml = $this->callRequest();
} catch (Exception $e) {
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');
}
if ($orderId !== null) {
$this->conn->update('sdv1.greffe_commandes_bi', array(
'cmdUrl' => $url,
'dateCommande' => date('YmdHis')),
array('id' => $orderId));
}
//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(basename($filename), $infos['size'], $infos['pages'], $infos['version']);
} else {
$this->dbSetFile(basename($filename));
}
}
return $filename;
}
/**
* @todo : Vérifier fonctionnement
* @param string $dateCloture
* @param string $type
* @param string $reference
* @throws Exception
* @return boolean
*/
public function getCommandeC($dateCloture = null, $type = 'sociaux', $reference = '')
{
$this->mode_diffusion = 'C';
// Lire dans la base de données
$columns = array(
'siren',
'numRC',
'LPAD(numGreffe,4,0) AS numGreffe',
'pdfLink',
'millesime',
'num_depot',
'date_cloture',
'type_comptes',
);
$qb = $this->conn->createQueryBuilder();
$qb->select($columns)->from('jo.greffes_bilans')
->where('siren=:siren')->setParameter('siren', $this->siren)
->andWhere('date_cloture=:date')->setParameter('date', $dateCloture);
if ($type == 'sociaux') {
$qb->andWhere("(type_comptes='sociaux' OR type_comptes='')");
} else {
$qb->andWhere('type_comptes=:type')->setParameter('type', $type);
}
$stmt = $qb->execute();
if ($stmt->rowCount() == 0) {
throw new Exception('Not exist');
}
$this->reference_client = $reference;
$row = $stmt->fetch(\PDO::FETCH_OBJ);
//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) {
//La prise en charge du courrier est effective
if ($e->getCode() != 17) {
throw new Exception($e->getMessage());
}
}
return true;
}
/**
* Name of file
* @param string $type
* @param string $dateCloture
* Format : AAAA-MM-JJ
* @return string
*/
public function getFileName($type, $dateCloture)
{
if ($type == '') {
$type = 'sociaux';
}
$date = substr($dateCloture, 0, 4).substr($dateCloture, 5, 2).substr($dateCloture, 8, 2);
return 'bilan-' . $this->siren . '-' . $type . '-' . $date . '.pdf';
}
/**
* Path of file
* @param string $type
* @param string $dateCloture
* Format : AAAA-MM-JJ
* @return string
*/
public function getFilePath($type, $dateCloture)
{
if ($type == '') {
$type = 'sociaux';
}
return 'bilans' . '/' . $type . '/' . 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)) {
$key = substr($date, 0, 4).substr($date, 5, 2).substr($date, 8, 2).'-'.$bilan['num_depot'];
//Affectation liste générale avec un index permettant le tri
$bilans[$key] = $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' => intval($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']),
'actif' => 1,
);
try {
$sql = "SELECT * FROM jo.greffes_bilans
WHERE siren=:siren AND num_depot=:num AND date_cloture=:date ORDER BY dateInsert";
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('siren', $this->siren);
$stmt->bindValue('num', $list['num_depot']);
$stmt->bindValue('date', $list['date_cloture_iso']);
$stmt->execute();
// Insert
if ($stmt->rowCount() == 0) {
$data['dateInsert'] = date('YmdHis');
try {
$result = $this->conn->insert('jo.greffes_bilans', $data);
} catch (\Doctrine\DBAL\DBALException $e) {
throw new Exception($e->getMessage());
}
}
// Update
else {
// Get first Item
$item = $stmt->fetch(\PDO::FETCH_OBJ);
// Correction anomalie item multiple
if ($stmt->rowCount() > 1) {
$this->conn->beginTransaction();
try {
while ($rowDel = $stmt->fetch(\PDO::FETCH_OBJ)) {
$this->conn->delete('jo.greffes_bilans', array(
'id' => $rowDel->id));
}
$this->conn->commit();
} catch (\Doctrine\DBAL\DBALException $e) {
$this->conn->rollBack();
throw new Exception($e->getMessage());
}
}
// Real Update
try {
$result = $this->conn->update('jo.greffes_bilans', $data,
array('id' => $item->id));
} catch (\Doctrine\DBAL\DBALException $e) {
throw new Exception($e->getMessage());
}
}
} catch (\Doctrine\DBAL\DBALException $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
*/
public function dbSetFile($filename, $size = 0, $numberOfPage = '', $version = '')
{
$data = array(
'pdfLink' => $filename,
'pdfSize' => $size,
'pdfPage' => $numberOfPage,
'pdfVer' => $version,
'pdfDate' => date('Ymd'),
);
$identifier = array(
'siren' => $this->siren,
'date_cloture' => $this->date_cloture,
'type_comptes' => $this->type_comptes,
);
try {
$result = $this->conn->update('jo.greffes_bilans', $data, $identifier);
} catch (\Doctrine\DBAL\DBALException $e) {
throw new Exception($e->getMessage());
}
if ($result) {
return true;
}
return false;
}
}

View File

@ -1,165 +0,0 @@
<?php
require_once dirname(__FILE__) . '/Service.php';
/**
* Infogreffe : Document Statut
*/
class Metier_Infogreffe_DocST extends Metier_Infogreffe_Service
{
/**
* PDO Connection with Doctrine
* @var \Doctrine\DBAL\Connection
*/
protected $conn;
/**
* Infogreffe : Document Bilan
* @param \Doctrine\DBAL\Connection $conn
*/
public function __construct($conn = null)
{
parent::__construct();
// Set Database
if ($conn === null) {
$this->conn = Zend_Registry::get('doctrine');
} else {
$this->conn = $conn;
}
// Set type
$this->type_document = 'ST';
}
/**
* Défini le SIREN
* @param string $siren
* @return void
*/
public function setSiren($siren)
{
$this->siren = $siren;
}
public function getList()
{
}
public function getCommandeT()
{
$this->mode_diffusion = 'T';
$this->reference_client = 'T'.date('YmdHis');
$dir = $this->getFilePath($type, $dateCloture);
if (! file_exists($this->config->storage->path . '/' . $dir)) {
mkdir($this->config->storage->path . '/' . $dir, 0777, true);
}
//Set the filename
$filename = $dir . '/' . $this->getFileName($type, $dateCloture);
try {
$xml = $this->callRequest();
} catch (Exception $e) {
throw new Exception($e->getMessage(), $e->getCode());
}
$item = $this->formatItem($xml);
$url = $item['url_acces'];
if (empty($url)) {
throw new Exception('File url not given');
}
if ($orderId !== null) {
$this->conn->update('sdv1.greffe_commandes_st', array(
'cmdUrl' => $url,
'dateCommande' => date('YmdHis')),
array('id' => $orderId));
}
//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(basename($filename), $infos['size'], $infos['pages'], $infos['version']);
} else {
$this->dbSetFile(basename($filename));
}
return $filename;
}
/**
* Name of file
* @param string $type
* @param string $dateCloture
* Format : AAAA-MM-JJ
* @return string
*/
public function getFileName($type, $dateCloture)
{
if ($type=='') {
$type = 'sociaux';
}
$date = substr($dateCloture, 0, 4).substr($dateCloture, 5, 2).substr($dateCloture, 8, 2);
return 'ST-' . $this->siren . '-' . $type . '-' . $date . '.pdf';
}
/**
* Path of file
* @param string $type
* @param string $dateCloture
* Format : AAAA-MM-JJ
* @return string
*/
public function getFilePath($type, $dateCloture)
{
return 'statut/' . $type . '/' . substr($dateCloture, 0, 4);
}
/**
* Format XML to Array for a list of items
* @param string $xml
* @return array
*/
protected function formatList($xml)
{
}
/**
* Format XML to Array for one item
* @param string $xml
* @return array
*/
protected function formatItem($xml)
{
}
/**
* Update informations about an item in database
* @param array $list
* @return boolean
*/
protected function dbUpdateItem($list)
{
}
/**
* Set file informations in database
* @param string $filename
* @param int $size
* @param int $numberOfPage
* @param string $version
* @return boolean
*/
public function dbSetFile($filename, $size = 0, $numberOfPage = '', $version = '')
{
}
}

View File

@ -1,54 +0,0 @@
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

@ -1,419 +0,0 @@
<?php
/**
* Infogreffe provider
*/
class Metier_Infogreffe_Service
{
/**
* 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;
/**
*
* @var unknown
*/
public $type_acte;
/**
* AC : Numéro de l'acte
* @var string
*/
public $num;
/**
* SIREN
* @var string
*/
public $siren;
/**
* Request XML
* @var string
*/
protected $xml = '';
/**
* Cache delay
* @var unknown
*/
protected $cacheFiletime;
/**
* Initialize configuration
*/
public function __construct()
{
//Load configuration
if (Zend_Registry::isRegistered('config')) {
$c = Zend_Registry::get('config');
} else {
$c = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', 'production');
}
$this->config = $c->profil->infogreffe;
if (null === $this->config) {
throw new Exception('Unable to load configuration file.');
}
$this->cacheFiletime = $c->profil->infogreffe->cache->time;
}
public function callRequest()
{
$fromCache = false;
if ($this->mode_diffusion == 'XL' && $this->fileIsCache()) {
$fromCache = true;
}
if ($fromCache) {
$xml = $this->fileFromCache();
} else {
$xml = $this->getProduitsXML();
}
$this->error($xml);
if ($this->mode_diffusion == 'XL') {
$this->fileTocache($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);
}
/**
*
* @return boolean
*/
protected function fileIsCache()
{
$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];
throw new Exception($errMsg, $errNum);
}
} else {
throw new Exception('XML content is empty.');
}
}
/**
* Download file from URL
* @todo : Use Guzzle
* @param string $url
* @param string $filename
* @throws Exception
* @return string
*/
protected function download($url, $filename)
{
$file = $this->config->storage->path . '/' . $filename;
try {
$client = new Zend_Http_Client($url);
$client->setStream();
$response = $client->request('GET');
if ($response->isSuccessful() && substr($response->getBody(), 0, 4)=='%PDF') {
if (copy($response->getStreamName(), $file)) {
return $file;
} else {
throw new Exception("Erreur lors de l'ecriture du fichier");
}
} else {
throw new Exception("Fichier non PDF");
}
} catch (Zend_Http_Client_Exception $e) {
throw new Exception($e->getMessage());
}
}
/**
* Pdf information
* @param string $pdf
* @return array
* pages => number of pages
* version => pdf version
* size => pdf filesize
*/
public 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", $file, $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);
$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')) {
$num_gest = $commande->addChild('num_gest');
$num_gest->addChild('greffe', $this->greffe);
$num_gest->addChild('dossier_millesime', $this->dossier_millesime);
$num_gest->addChild('dossier_statut', $this->dossier_statut);
$num_gest->addChild('dossier_chrono', $this->dossier_chrono);
$commande->addChild('num_depot', $this->num_depot);
//Date de cloture au format dd/MM/yyyy
$commande->addChild('date_cloture', $this->date_cloture);
}
// Commande de documents : actes
elseif ($this->type_document=='AC') {
$num_gest = $commande->addChild('num_gest');
$num_gest->addChild('greffe', $this->greffe);
$num_gest->addChild('dossier_millesime', $this->dossier_millesime);
$num_gest->addChild('dossier_statut', $this->dossier_statut);
$num_gest->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);
}
}
//Set Command ID
$commande->addChild('reference_client', $this->reference_client);
$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();
$req = $this->xml;
if ($this->debug) {
file_put_contents($this->type_document.'-'.$this->siren.'-'.$this->mode_diffusion.'.query', $this->xml);
}
//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);
if ($this->debug) {
file_put_contents($this->type_document.'-'.$this->siren.'-'.$this->mode_diffusion.'.response', $response);
}
return $response;
}
}

View File

@ -1,80 +0,0 @@
<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

@ -1,80 +0,0 @@
<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://wsrcte.extelia.fr:80/WSContextInfogreffe/INFOGREFFE"/>
</port>
</service>
</definitions>

File diff suppressed because it is too large Load Diff

View File

@ -1,964 +0,0 @@
<?php
class Metier_Insee_Table
{
/**
* Code fonction
* @var array
*/
protected static $tabFct = array(
'ADM' => "Administrateur",
'ASS' => "Associé",
'COG' => "Co-gérant",
'CON' => "Contrôleur de gestion",
'DID' => "Directeur Général Délégué",
'DIR' => "Directeur",
'GER' => "Gérant",
'PCS' => "Président du Conseil de Surveillance",
'PDG' => "Président Directeur Général",
'PP' => "Personne Physique",
'PRD' => "Président du directoire",
'PRE' => "Président du Conseil d'Administration",
'VIC' => "Vice président du CA ou Surv.",
);
/**
* Départements
* @var array
*/
protected static $tabDep = array(
'01' => "Ain",
'1' => "Ain",
'02' => "Aisne",
'2' => "Aisne",
'03' => "Allier",
'3' => "Allier",
'04' => "Alpes-de-Haute-Provence",
'4' => "Alpes-de-Haute-Provence",
'05' => "Hautes-Alpes",
'5' => "Hautes-Alpes",
'06' => "Alpes-Maritimes",
'6' => "Alpes-Maritimes",
'07' => "Ardèche",
'7' => "Ardèche",
'08' => "Ardennes",
'8' => "Ardennes",
'09' => "Ariège",
'9' => "Ariège",
'10' => "Aube",
'11' => "Aude",
'12' => "Aveyron",
'13' => "Bouches-du-Rhône",
'14' => "Calvados",
'15' => "Cantal",
'16' => "Charente",
'17' => "Charente-Maritime",
'18' => "Cher",
'19' => "Corrèze",
'20' => "Corse",
'2A' => "Corse-du-Sud",
'20A' => "Corse-du-Sud",
'2B' => "Haute-Corse",
'20B' => "Haute-Corse",
'21' => "Côte-d'Or",
'22' => "Côtes-d'Armor",
'23' => "Creuse",
'24' => "Dordogne",
'25' => "Doubs",
'26' => "Drôme",
'27' => "Eure",
'28' => "Eure-et-Loir",
'29' => "Finistère",
'30' => "Gard",
'31' => "Haute-Garonne",
'32' => "Gers",
'33' => "Gironde",
'34' => "Hérault",
'35' => "Ille-et-Vilaine",
'36' => "Indre",
'37' => "Indre-et-Loire",
'38' => "Isère",
'39' => "Jura",
'40' => "Landes",
'41' => "Loir-et-Cher",
'42' => "Loire",
'43' => "Haute-Loire",
'44' => "Loire-Atlantique",
'45' => "Loiret",
'46' => "Lot",
'47' => "Lot-et-Garonne",
'48' => "Lozère",
'49' => "Maine-et-Loire",
'50' => "Manche",
'51' => "Marne",
'52' => "Haute-Marne",
'53' => "Mayenne",
'54' => "Meurthe-et-Moselle",
'55' => "Meuse",
'56' => "Morbihan",
'57' => "Moselle",
'58' => "Nièvre",
'59' => "Nord",
'60' => "Oise",
'61' => "Orne",
'62' => "Pas-de-Calais",
'63' => "Puy-de-Dôme",
'64' => "Pyrénées-Atlantiques",
'65' => "Hautes-Pyrénées",
'66' => "Pyrénées-Orientales",
'67' => "Bas-Rhin",
'68' => "Haut-Rhin",
'69' => "Rhône",
'70' => "Haute-Saône",
'71' => "Saône-et-Loire",
'72' => "Sarthe",
'73' => "Savoie",
'74' => "Haute-Savoie",
'75' => "Paris",
'76' => "Seine-Maritime",
'77' => "Seine-et-Marne",
'78' => "Yvelines",
'79' => "Deux-Sèvres",
'80' => "Somme",
'81' => "Tarn",
'82' => "Tarn-et-Garonne",
'83' => "Var",
'84' => "Vaucluse",
'85' => "Vendée",
'86' => "Vienne",
'87' => "Haute-Vienne",
'88' => "Vosges",
'89' => "Yonne",
'90' => "Territoire de Belfort",
'91' => "Essonne",
'92' => "Hauts-de-Seine",
'93' => "Seine-Saint-Denis",
'94' => "Val-de-Marne",
'95' => "Val-d'Oise",
'971' => "Guadeloupe",
'972' => "Martinique",
'973' => "Guyane",
'974' => "Réunion",
'975' => "Saint-Pierre-et-Miquelon",
'976' => "Mayotte",
'985' => "Mayotte", // Codification au Bodacc
'986' => "Wallis-et-Futuna",
'987' => "Polynésie-Française",
'988' => "Nouvelle-Calédonie",
);
/**
* Département avec articles
* @var array
*/
protected static $tabDepArt = array(
'01' => "de l'Ain",
'1' => "de l'Ain",
'02' => "de l'Aisne",
'2' => "de l'Aisne",
'03' => "de l'Allier",
'3' => "de l'Allier",
'04' => "des Alpes-de-Haute-Provence",
'4' => "des Alpes-de-Haute-Provence",
'05' => "des Hautes-Alpes",
'5' => "des Hautes-Alpes",
'06' => "Ades lpes-Maritimes",
'6' => "des Alpes-Maritimes",
'07' => "de l'Ardèche",
'7' => "de l'Ardèche",
'08' => "des Ardennes",
'8' => "des Ardennes",
'09' => "de l'Ariège",
'9' => "de l'Ariège",
'10' => "de l'Aube",
'11' => "de l'Aude",
'12' => "de l'Aveyron",
'13' => "des Bouches-du-Rhône",
'14' => "du Calvados",
'15' => "du Cantal",
'16' => "de la Charente",
'17' => "de la Charente-Maritime",
'18' => "du Cher",
'19' => "de la Corrèze",
'20' => "de la Corse",
'2A' => "de la Corse-du-Sud",
'20A' => "de la Corse-du-Sud",
'2B' => "de la Haute-Corse",
'20B' => "de la Haute-Corse",
'21' => "de la Côte-d'Or",
'22' => "des Côtes-d'Armor",
'23' => "de la Creuse",
'24' => "de la Dordogne",
'25' => "du Doubs",
'26' => "de la Drôme",
'27' => "de l'Eure",
'28' => "de l'Eure-et-Loir",
'29' => "du Finistère",
'30' => "du Gard",
'31' => "de la Haute-Garonne",
'32' => "du Gers",
'33' => "de la Gironde",
'34' => "de l'Hérault",
'35' => "de l'Ille-et-Vilaine",
'36' => "de l'Indre",
'37' => "de l'Indre-et-Loire",
'38' => "de l'Isère",
'39' => "du Jura",
'40' => "des Landes",
'41' => "du Loir-et-Cher",
'42' => "de la Loire",
'43' => "de la Haute-Loire",
'44' => "de la Loire-Atlantique",
'45' => "du Loiret",
'46' => "du Lot",
'47' => "du Lot-et-Garonne",
'48' => "de la Lozère",
'49' => "du Maine-et-Loire",
'50' => "de la Manche",
'51' => "de la Marne",
'52' => "de la Haute-Marne",
'53' => "de la Mayenne",
'54' => "de la Meurthe-et-Moselle",
'55' => "de la Meuse",
'56' => "du Morbihan",
'57' => "de la Moselle",
'58' => "de la Nièvre",
'59' => "du Nord",
'60' => "de l'Oise",
'61' => "de l'Orne",
'62' => "du Pas-de-Calais",
'63' => "du Puy-de-Dôme",
'64' => "des Pyrénées-Atlantiques",
'65' => "des Hautes-Pyrénées",
'66' => "des Pyrénées-Orientales",
'67' => "du Bas-Rhin",
'68' => "du Haut-Rhin",
'69' => "du Rhône",
'70' => "de la Haute-Saône",
'71' => "de la Saône-et-Loire",
'72' => "de la Sarthe",
'73' => "de la Savoie",
'74' => "de la Haute-Savoie",
'75' => "de Paris",
'76' => "de la Seine-Maritime",
'77' => "de la Seine-et-Marne",
'78' => "des Yvelines",
'79' => "des Deux-Sèvres",
'80' => "de la Somme",
'81' => "du Tarn",
'82' => "du Tarn-et-Garonne",
'83' => "du Var",
'84' => "du Vaucluse",
'85' => "de la Vendée",
'86' => "de la Vienne",
'87' => "de la Haute-Vienne",
'88' => "des Vosges",
'89' => "de l'Yonne",
'90' => "du Territoire de Belfort",
'91' => "de l'Essonne",
'92' => "des Hauts-de-Seine",
'93' => "de la Seine-Saint-Denis",
'94' => "du Val-de-Marne",
'95' => "du Val-d'Oise",
'971' => "de la Guadeloupe",
'972' => "de la Martinique",
'973' => "de la Guyane",
'974' => "de la Réunion",
'975' => "de Saint-Pierre-et-Miquelon",
'976' => "de Mayotte",
'985' => "de Mayotte", // Codification au Bodacc
'986' => "de Wallis-et-Futuna",
'987' => "de la Polynésie-Française",
'988' => "de la Nouvelle-Calédonie",
);
/**
* Nature d'établissements
* @var array
*/
protected static $tabNature = array(
'20' => "Petit magasin (moins de 300m²)",
'21' => "Magasin (de 300m² à 400m²)",
'22' => "Grande surface (de 400 à 2500m²)",
'23' => "Très grande surface (plus de 2500m²)",
'91' => "Base d'activité sur chantiers",
'92' => "Base d'activité sur marchés",
'93' => "Base d'activité en clientèle",
'99' => "Autre",
);
/**
* Régions du code officiel géographique
* @var array
*/
protected static $tabRegion = array(
'1' => "Guadeloupe",
'2' => "Martinique",
'3' => "Guyane",
'4' => "Réunion",
'11' => "Ile-de-France",
'21' => "Champagne-Ardenne",
'22' => "Picardie",
'23' => "Haute-Normandie",
'24' => "Centre",
'25' => "Basse-Normandie",
'26' => "Bourgogne",
'31' => "Nord-Pas-de-Calais",
'41' => "Lorraine",
'42' => "Alsace",
'43' => "Franche-Comté",
'52' => "Pays de la Loire",
'53' => "Bretagne",
'54' => "Poitou-Charentes",
'72' => "Aquitaine",
'73' => "Midi-Pyrénées",
'74' => "Limousin",
'82' => "Rhône-Alpes",
'83' => "Auvergne",
'91' => "Languedoc-Roussillon",
'93' => "Provence Alpes Côte d Azur",
'94' => "Corse",
'98' => "Territoire d outre-mer (TOM)",
'99' => "Etranger",
);
/**
* Tranches de Chiffre d'Affaires INSEE
* @var array
*/
protected static $tabTCA = array(
'0' => "N/C",
'1' => "de 500 000 à 1 ME",
'2' => "de 1 à 2 ME",
'3' => "de 2 à 5 ME",
'4' => "de 5 à 10 ME",
'5' => "de 10 à 20 ME",
'6' => "de 20 à 50 ME",
'7' => "de 50 à 100 ME",
'8' => "de 100 à 200 ME",
'9' => "plus de 200 ME",
);
/**
* Tranche de CA Export
* @var array
*/
protected static $tabTCAexp = array(
'0' => "0%",
'1' => "moins de 5%",
'2' => "de 5 à 25%",
'3' => "de 25 à 50%",
'4' => "plus de 50%",
);
/**
* Tranche d'habitants de commune détaillée
* @var array
*/
protected static $tabTCD = array(
'1' => "Commune de moins de 50 habitants",
'2' => "Commune de 50 à 99 habitants",
'3' => "Commune de 100 à 149 habitants",
'4' => "Commune de 150 à 199 habitants",
'5' => "Commune de 200 à 249 habitants",
'6' => "Commune de 250 à 299 habitants",
'7' => "Commune de 300 à 399 habitants",
'8' => "Commune de 400 à 499 habitants",
'11' => "Commune de 500 à 699 habitants",
'12' => "Commune de 700 à 999 habitants",
'13' => "Commune de 1000 à 1499 habitants",
'14' => "Commune de 1500 à 1999 habitants",
'15' => "Commune de 2000 à 2499 habitants",
'16' => "Commune de 2500 à 2999 habitants",
'17' => "Commune de 3000 à 3999 habitants",
'18' => "Commune de 4000 à 4999 habitants",
'21' => "De 5 000 à 6 999 habitants",
'22' => "De 7 000 à 9 999 habitants",
'31' => "De 10 000 à 14 999 habitants",
'32' => "De 15 000 à 19 999 habitants",
'41' => "De 20 000 à 24 999 habitants",
'42' => "De 25 000 à 29 999 habitants",
'43' => "De 30 000 à 39 999 habitants",
'44' => "De 40 000 à 49 999 habitants",
'51' => "De 50 000 à 69 999 habitants",
'52' => "De 70 000 à 99 999 habitants",
'61' => "De 100 000 à 149 999 habitants",
'62' => "De 150 000 à 199 999 habitants",
'71' => "De 200 000 à 299 999 habitants",
'72' => "De 300 000 à 499 999 habitants",
'73' => "De 500 000 à 1 499 999 habitants",
'80' => "Plus de 1 500 000 habitants",
);
/**
* Tranches d'effectifs INSEE
* @var array
*/
protected static $tabEffectif = array(
0 => "N/C",
1 => "de 1 à 2 salarié(s)",
2 => "de 3 à 5 salariés",
3 => "de 6 à 9 salariés",
11 => "de 10 à 19 salariés",
12 => "de 20 à 49 salariés",
21 => "de 50 à 99 salariés",
22 => "de 100 à 199 salariés",
31 => "de 200 à 249 salariés",
32 => "de 250 à 499 salariés",
41 => "de 500 à 999 salariés",
42 => "de 1 000 à 1 999 salariés",
51 => "de 2 000 à 4 999 salariés",
52 => "de 5 000 à 9 999 salariés",
53 => "plus de 10 000 salariés",
);
/**
* Libellé des singularités INSEE
* @var array
*/
protected static $tabSingularite = array(
'1' => "Propiétaire Exploitant direct",
'2' => "Locataire Gérant",
'10' => "Loueur de fonds",
'30' => "Unité singulière de première espèce: avocats assocés, stations services sous mandat..",
'31' => "Associé d'exploitation en commun; ce groupe comprend notamment: associé de société de fait, associé d'indivision",
'33' => "Employeur non exploitant: prestataire de personnel, gérant mandataire",
'34' => "Membre d'une société civile professionnelle",
'40' => "Siège d'une unité SIREN de droit privé sans activité",
'41' => "Siège d'un organisme public sans activité",
'42' => "Siège d'un établissement public local non doté de l'autonomie comptable: une partie des centres communaux d'action sociale, une partie des caisses des écoles",
'43' => "Sièges de domiciliation",
'52' => "Sans domicile fixe",
'60' => "Activité occasionnelle ou accessoire: Expert auprès des tribunaux, médecin, infirmier, pharmacien remplçant, avocat stagiaire, sportif amateur",
'70' => "Activité en location (autre que le fond de commerce): Exploitant de terrain de camping, location de garage ou parking, locations de meublés, location de terres agricoles",
'80' => "Gestion immobilière de biens propres: syndicats de copropriétaires",
'90' => "Unité singulière de seconde espèce: établissement d'une entreprise installée à Monaco, siège à l'etranger de sociétés, associé gérant de sociétés",
);
/**
* Libellé des origines de création INSEE
* @var array
*/
protected static $tabOrigine = array(
'0' => "Non renseigné",
'1' => "Création pure",
'2' => "Création suite à déménagement", // Création S&D du 20/04/2011 ancien 'Réinstallation après transfert'
'3' => "Achat",
'4' => "Apport",
'5' => "Reprise au conjoint ou apport reçu",
'6' => "Prise en location-gérance",
'7' => "Partage",
'8' => "Reprise",
'9' => "Autre modalité d'acquisition",
'A' => "Reprise globale d'une exploitation agricole",
'B' => "Poursuite de l'exploitation agricole par le conjoint",
'C' => "Transfert de propriété d'une exploitation agricole",
'D' => "Apport d'exploitation(s) agricole(s) individuelle(s)",
'E' => "Reprise totale ou partielle d'exploitation individuelle",
);
/**
* Evenements
* @var array
*/
protected static $tabEven = array(
'i110' => "Création d'une entreprise",
'i120' => "Réactivation d'une entreprise",
'i125' => "Réactivation d'une entreprise suite à une mise à jour du répertoire",
'i130' => "Création d'un établissement",
'i145' => "Reprise d'activité dans un établissement suite à une mise à jour du répertoire",
'i400' => "Suppression d'un double",
'i410' => "Cessation juridique de l'entreprise",
'i420' => "Absence d'activité de l'entreprise (cessation économique de l'entreprise)",
'i425' => "Absence d'activité d'une entreprise suite à une mise à jour au répertoire",
'i430' => "Fermeture d'un établissement",
'i435' => "Fermeture d'un établissement suite à une mise à jour au répertoire",
'i510' => "Création de l'établissement d'arrivée et cessation de l'établissement de départ dans le cadre d'un transfert",
'i520' => "Création de l'établissement d'arrivée et modification de l'établissement de départ dans le cadre d'un transfert",
'i530' => "Modification de l'établissement d'arrivée et cessation de l'établissement de départ dans le cadre d'un transfert",
'i540' => "Modification de l'établissement d'arrivée et modification de l'établissement de départ dans le cadre d'un transfert",
'i610' => "Modification d'activité au niveau du SIREN associé à une activation économique par adjonction de moyens de production",
'i620' => "Modification d'activité au niveau du SIREN associé à une désactivation économique par suppression de moyens de production",
'i621' => "Modification d'activité du SIREN associé à une désactivation économique par suppression de moyens de production suite à une correction d'erreur",
'i631' => "Autre modification d'activité du SIREN associé",
'i640' => "Modification d'activité au niveau de l'établissement associée à une activation économique par adjonction de moyens de production",
'i650' => "Modification d'activité au niveau de l'établissement associée à une désactivation économique par suppression de moyens de production",
'i661' => "Autre modification d'activité au niveau de l'établissement",
'i710' => "Modification de l'identification du SIREN",
'i711' => "Modification de l'identification du SIREN suite à correction d'erreur",
'i720' => "Modification de l'adresse ou de l'identification de l'établissement",
'i780' => "Autre modification entraînant la mise à jour d'au moins une variable du répertoire",
'i781' => "Autre modification entraînant la mise à jour d'au moins une variable du répertoire suite à correction d'erreur",
'i795' => "Personne radiée à sa demande de de la base SIRENE diffusion",
// Nouveaux évènements Sirene4 de la quotidienne Insee (Syracuse)
'iCE' => "Création établissement",
'iCS' => "Création siège",
'iCTE' => "Création établissement (transfert)",
'iCTS' => "Création siège (transfert)",
'iSU' => "Cessation juridique",
'iME' => "Modification établissement",
'iMS' => "Modification siège",
'iMTDE' => "Modification établissement départ (transfert)",
'iMTAE' => "Modification établissement arrivée (transfert)",
'iMTDS' => "Modification siège départ (transfert)",
'iMTAS' => "Modification siège arrivée (transfert)",
'iMU' => "Modification entreprise",
'iRE' => "Réactivation établissement",
'iRS' => "Réactivation siège",
'iSE' => "Fermeture (ou désactivation) établissement",
'iSS' => "Fermeture (ou désactivation) siège",
'iSTE' => "Fermeture établissement (transfert)",
'iSTS' => "Fermeture siège (transfert)",
'iRI' => "Refus d'immatriculation au RCS",
'iCC' => "Création par le calage",
'iMC' => "Modification par le calage",
'iSC' => "Suppression par le calage",
'iI' => "Entrée dans le champ de la diffusion commerciale",
'iO' => "Sortie du champ de la diffusion commerciale",
);
/**
* Evenements Insee
* @var array
*/
protected $tabEvenInsee = array(
// Anciens évènements de la quotidienne Insee
'i00' => "Modification de l'établissement",
'iOA' => "Activation économique de l'établissement par adjonction de moyens de production",
'i0C' => "Création de l'établissement",
'iOD' => "Désactivation économique de l'établissement par suppression de moyens de production",
'i0F' => "Fermeture de l'établissement",
'iOR' => "Modification simple ou modification de moyen de production de l'établissement",
'iCC' => "Création de l' entreprise par création du premier établissement",
'iRC' => "Réactivation de l'entreprise par création de l'établissement",
'iRR' => "Réactivation de l'entreprise par réactivation de l'établissement",
'iFF' => "Fermeture de l'établissement entraînant la fermeture de l'entreprise",
'iTC' => "Création de l'établissement dans le cadre d'un transfert",
'iTR' => "Réactivation de l'établissement dans le cadre d'un transfert",
'iT0' => "Modification simple ou de moyens de production sur l'établissement dans le cadre d'un transfert",
'iTA' => "Activation économique de l'établissement par adjonction de moyens de production dans le cadre d'un transfert",
'iTD' => "Désactivation économique de l'établissement par suppression de moyens de production dans le cadre d'un transfert",
'iTF' => "Fermeture de l'établissement dans le cadre d'un transfert",
'iER' => "Modification ERR de l'établissement",
// Evènements Crées par différentiel de la Mensuelle Insee par S&D
'iM0C' => "Création de l'établissement",
'iM0F' => "Fermeture de l'établissement",
'iM0R' => "Réactivation de l'établissement",
'iM00' => "Modification de l'établissement",
'iMAS' => "Modification de la nature d'activité et de la saisonalité",
'iMAC' => "Modification de la nature d'activité de l'établissement",
'iMSA' => "Modification de la saisonalité de l'établissement",
// Evènements Crées par diff3+4
'iMPF' => "Etablissement présumé fermé (formalités de création faites par le repreneur)",
'iMNP' => "Etablissement présumé fermé (retour de courrier en NPAI)",
// Décret n°2010-1042 du 01/09/2010 relatif à l'inscription au registre du commerce et des sociétés et au répertoire national mentionné à l'article R. 123-220 du code de commerce
// Codification provisoire à changer dans l'attente de l'INSEE
'i810' => "Suppression du SIREN suite au refus d'inscription au Registre du Commerce et des Sociétés", // Anciennement iRCS
// Nouveaux évènements Sirene3 de la quotidienne Insee
'i110' => "Création de l'entreprise",
'i120' => "Réactivation de l'entreprise",
'i125' => "Réactivation de l'entreprise suite à une mise à jour du répertoire SIRENE",
'i130' => "Création de l'établissement",
'i145' => "Reprise d'activité de l'établissement suite à une mise à jour du répertoire SIRENE",
'i400' => "Suppression du doublon",
'i410' => "Cessation juridique de l'entreprise",
'i420' => "Absence d'activité de l'entreprise (cessation économique de l'entreprise)",
'i425' => "Absence d'activité d'une entreprise suite à une mise à jour au répertoire SIRENE",
'i430' => "Fermeture de l'établissement",
'i435' => "Fermeture de l'établissement suite à une mise à jour au répertoire SIRENE",
'i510' => "Création de l'établissement d'arrivée et cessation de l'établissement de départ dans le cadre d'un transfert",
'i520' => "Création de l'établissement d'arrivée et modification de l'établissement de départ dans le cadre d'un transfert",
'i530' => "Modification de l'établissement d'arrivée et cessation de l'établissement de départ dans le cadre d'un transfert",
'i540' => "Modification de l'établissement d'arrivée et modification de l'établissement de départ dans le cadre d'un transfert",
'i610' => "Modification d'activité au niveau du SIREN associé à une activation économique par adjonction de moyens de production",
'i620' => "Modification d'activité au niveau du SIREN associé à une désactivation économique par suppression de moyens de production",
'i621' => "Modification d'activité du SIREN associé à une désactivation économique par suppression de moyens de production suite à une correction d'erreur",
'i631' => "Modification d'activité du SIREN associé",
'i640' => "Modification d'activité au niveau de l'établissement associée à une activation économique par adjonction de moyens de production",
'i650' => "Modification d'activité au niveau de l'établissement associée à une désactivation économique par suppression de moyens de production",
'i661' => "Modification d'activité de l'établissement",
'i710' => "Modification de l'identification du SIREN",
'i711' => "Modification de l'identification du SIREN suite à correction d'erreur",
'i720' => "Modification de l'adresse ou de l'identification de l'établissement",
'i780' => "Modification de l'établissement",
'i781' => "Modification de l'établissement suite à correction d'erreur",
'i795' => "Personne radiée à sa demande de de la base SIRENE diffusion",
// Nouveaux évènements Sirene4 de la quotidienne Insee (Syracuse)
'iCE' => "Création établissement",
'iCS' => "Création siège",
'iCTE' => "Création établissement (transfert)",
'iCTS' => "Création siège (transfert)",
'iSU' => "Cessation juridique",
'iME' => "Modification établissement",
'iMS' => "Modification siège",
'iMTDE' => "Modification établissement départ (transfert)",
'iMTAE' => "Modification établissement arrivée (transfert)",
'iMTDS' => "Modification siège départ (transfert)",
'iMTAS' => "Modification siège arrivée (transfert)",
'iMU' => "Modification entreprise",
'iRE' => "Réactivation établissement",
'iRS' => "Réactivation siège",
'iSE' => "Fermeture (ou désactivation) établissement",
'iSS' => "Fermeture (ou désactivation) siège",
'iSTE' => "Fermeture établissement (transfert)",
'iSTS' => "Fermeture siège (transfert)",
'iRI' => "Refus d'immatriculation au RCS",
'iCC' => "Création par le calage",
'iMC' => "Modification par le calage",
'iSC' => "Suppression par le calage",
'iI' => "Entrée dans le champ de la diffusion commerciale",
'iO' => "Sortie du champ de la diffusion commerciale",
);
/**
* Type d'etablissements
* @var array
*/
protected $tabTypEtab = array(
'i00' => "Rappel des données de l'établissement du siège en cas de modification exclusive de l'entreprise",
'i08' => "Siège avant transfert non fermé",
'i09' => "Siège après transfert non créé",
'i10' => "Siège avant transfert fermé",
'i11' => "Siège après transfert créé",
'i12' => "Siège créé (hors transfert)",
'i13' => "Siège fermé (hors transfert)",
'i14' => "Siège modifié (hors transfert) : modification de l'activité principale avec activation économique",
'i15' => "Siège modifié (hors transfert) : modification de l'activité principale avec désactivation économique",
'i16' => "Siège modifié (hors transfert) : modification de l'activité principale de l'établissement",
'i17' => "Siège modifié (hors transfert) : modification de l'identification de l'établissement",
'i19' => "Siège modifié (hors transfert) : autre modification de l'établissement",
'i20' => "Établissement avant transfert fermé",
'i21' => "Établissement après transfert créé",
'i22' => "Établissement créé (hors transfert)",
'i23' => "Établissement fermé (hors transfert)",
'i24' => "Établissement modifié (hors transfert) : modification de l'activité principale avec activation économique",
'i25' => "Établissement modifié (hors transfert) : modification de l'activité principale avec désactivation économique",
'i26' => "Établissement modifié (hors transfert) : autre modification de l'activité principale de l'établissement",
'i27' => "Établissement modifié (hors transfert) : modification de l'identification de l'établissement",
'i29' => "Établissement modifié (hors transfert) : modification d'une autre variable de l'établissement",
'i30' => "Établissement avant transfert non fermé",
'i31' => "Établissement après transfert non créé",
'i32' => "Établissement supprimé",
);
/**
* Destination
* @var array
*/
protected $tabDestinat = array(
'i3' => "Etablissement vendu",
'i7' => "Maintien d'activité, l'établissement devient siège",
'i8' => "Maintien d'activité, l'établissement devient principal",
'iA' => "Maintien d'activité, l'établissement devient secondaire",
'iB' => "Etablissement fermé",
'iC' => "Etablissement supprimé",
'iD' => "Mise en location-gérance de la totalité du fonds",
'iE' => "Mise en location-gérance d'une partie du fonds",
'iF' => "Cessation d'activité (pour les liasses agricoles)",
'iG' => "Mise en location-gérance de la totalité des terres et des bâtiments agricoles (pour les liasses agricoles)",
'iH' => "Mise en location-gérance d'une partie des terres et des bâtiments agricoles (pour les liasses agricoles)",
'iI' => "Transmission au conjoint (pour les liasses agricoles)",
'iJ' => "Cession (pour les liasses agricoles)",
'iVP' => "Suppression partielle d'activité par vente",
'iDP' => "Suppression partielle d'activité par disparition",
'iRP' => "Suppression partielle d'activité par reprise par le propriétaire",
);
/**
* Conversion anciens codes evenements avec nouveaux codes evenements
* @var array
*/
protected $HistoEvenConvert = array(
10 => '4000', // Création d'entreprise
11 => '4000',
13 => '4000',
14 => '4000',
15 => '4000',
16 => '4000',
17 => '4200', // Création d'établissement
18 => '4200',
19 => '4200',
20 => '5999', // ou 5700 en fonction du code xxx
21 => '5999',
22 => '5999',
24 => '5999',
25 => '5999',
30 => '2500', // Confirmation Ets
31 => '2318',
32 => '2318',
33 => '2318',
34 => '2318',
35 => '2318',
36 => '2318',
37 => '2800', // Loc. Gérance recue
38 => '2860', // Loc. Gérance donnée
39 => '2318',
40 => '6700', // Radiation
41 => '2202', // Dissolution
42 => '2885', // Fin location gérance
51 => '1209', // Règlement Judiciaire
52 => '1200', // Redressement Judiciaire
53 => '1207', // Règlemement amiable
//53 => Conciliation ????????????????????????????????????????
56 => '1310', // Procédure d'Insolvabilité Européenne
57 => '1100', // Jugement de sauvegarde
58 => '1101', // Plan de sauvegarde
59 => '1506', // Rectif ou Annulation RJ
60 => '1305', // Redr.& liq.Judiciaire
61 => '1603', // Liquidation de Biens
62 => '1305',
63 => '1600', // Faillite personnelle
64 => '1601', // Interdiction de gérer
65 => '1305',
66 => '1306', // Liquidation Judiciaire Simplifiée
69 => '1506', //Rectif ou Annul.LJ
70 => '1550', // Suites de jugements
71 => '1550', // Suite reglement/L
72 => '1550', // Suite redressement/L
73 => '1550', // Susp.Provis.pours. ?????????????????????????????????????????
74 => '1505', // Appel de jugement
75 => '1407', // Modif. de Plan
76 => '1502', // Extinction Passif
77 => '1210', // Production
78 => '1204', // Dépôt des créances
79 => '1503', // Cloture insuf.Actif
92 => '1450', //Cessation paiement ??
);
/**
* Conversion role avec nouveaux codes evénéments
* @var array
*/
protected $HistoRoleConvert = array(
'' => '2318',
'a' => '2308', // Chg de dénomination(RS,Ens,Sigle)
'b' => '2300', // Changement d'Adresse
'c' => '2101', // Chg.Capital/Cess.apport de parts
'd' => '2315', // Changement de Dirigeants
'e' => '2313', // Mod Act/obj.soc./Cess./Mise somm.
'f' => '2307', // Changement de Forme juridique
'g' => '2318', // Opération sur Participations
'h' => '2725', // Fusion Absorption
'i' => '2318', // Mod.garantie financière/Caution
'j' => '2401', // Changement de régime matrimonial
'k' => '2319', // Non dissolution anticipée
'l' => '2318', // Non dissolution anticipée
'm' => '2318', // Dissolution anticipée (ou non)
'n' => '2303', // Mod.date cloture exercice social
'o' => '2300;2101', // Mod.Adresse + Capital
'p' => '2300;2315', // Mod.Adresse + Dirigeants
'q' => '2300;2313', // Mod.Adresse + Activité
'r' => '2300;2307', // Mod.Adresse + F.Juridique
's' => '2101;2315', // Modification Capital + Dirigeants
't' => '2101;2313', // Modification Capital + Activité
'u' => '2101;2307', // Mod.Capital + Forme Juridique
'v' => '2315;2313', // Mod.Dirigeants + Activité
'w' => '2315;2307', // Mod.Dirigeants + Forme Juridique
'x' => '2313;2307', // Mod.Activité + Forme Juridique
'y' => '2318', // Changement de Dirigeants ?
'z' => '2318', //
//'K'=>
);
/**
* Liste des codes voies
* @var array
*/
protected $tabCodeVoie = array(
'ABE' => "Abbaye",
'AGL' => "Agglomération",
'AIRE' => "Aire",
'ALL' => "Allée",
'ALL' => "Allee",
'ACH' => "Ancien chemin",
'ART' => "Ancienne route",
'ANSE' => "Anse",
'ARC' => "Arcade",
'AUT' => "Autoroute",
'AV' => "Avenue",
'BRE' => "Barrière",
'BCH' => "Bas chemin",
'BSTD' => "Bastide",
'BAST' => "Baston",
'BEGI' => "Beguinage",
'BER' => "Berge",
'BOIS' => "Bois",
'BCLE' => "Boucle",
'BD' => "Boulevard",
'BRG' => "Bourg",
'BUT' => "Butte",
'CALE' => "Cale",
'CAMP' => "Camp",
'CGNE' => "Campagne",
'CPG' => "Camping",
'CARR' => "Carré",
'CAU' => "Carreau",
'CAR' => "Carrefour",
'CARE' => "Carrière",
'CST' => "Castel",
'CAV' => "Cavée",
'CTRE' => "Central",
'CTRE' => "Centre",
'CHL' => "Chalet",
'CHP' => "Chapelle",
'CHI' => "Charmille",
'CHT' => "Château",
'CHS' => "Chaussée",
'CHE' => "Chemin",
'CHV' => "Chemin vicinaux",
'CHV' => "Chemin vicinal",
'CHEM' => "Cheminement",
'CITE' => "Cîte",
'CLOI' => "Cloître",
'CLOS' => "Clos",
'COL' => "Col",
'COLI' => "Colline",
'CTR' => "Contour",
'COR' => "Corniche",
'COTE' => "Côte",
'COTT' => "Cottage",
'COUR' => "Cour",
'CRS' => "Cours",
'DARS' => "Darse",
'DEG' => "Degré",
'DSG' => "Descente",
'DSC' => "Descente",
'DIG' => "Digue",
'DOM' => "Domaine",
'ECA' => "Ecart",
'ECL' => "Ecluse",
'EGL' => "Eglise",
'EN' => "Enceinte",
'ENV' => "Enclave",
'ENC' => "Enclos",
'ESC' => "Escalier",
'ESPA' => "Espace",
'ESP' => "Esplanade",
'ETING' => "Etang",
'FG' => "Faubourg",
'FRM' => "Ferme",
'FON' => "Fontaine",
'FORT' => "Fort",
'FORM' => "Forum",
'FOS' => "Fosse",
'FOYR' => "Foyer",
'GAL' => "Galerie",
'GARE' => "Gare",
'GARN' => "Garenne",
'GBD' => "Grand boulevard",
'GDEN' => "Grande ensemble",
'GR' => "Grande rue",
'GRI' => "Grille",
'GRIM' => "Grimpette",
'GPE' => "Groupe",
'GPT' => "Groupement",
'HLE' => "Halle",
'HAM' => "Hameau",
'HCH' => "Haut chemin",
'HIP' => "Hippodrome",
'HLM' => "HLM",
'ILE' => "Ile",
'IMM' => "Immeuble",
'IMP' => "Impasse",
'JARD' => "Jardin",
'JTE' => "Jetée",
'LEVE' => "Levée",
'LD' => "Lieu dit",
'LD' => "Lieudit",
'LOT' => "Lotissement",
'MAIL' => "Mail",
'MF' => "Maison forestière",
'MAN' => "Manoir",
'MAR' => "Marche",
'MAS' => "Mas",
'MET' => "Métro",
'MTE' => "Montée",
'MLN' => "Moulin",
'MUS' => "Musée",
'NTE' => "Nouvelle route",
'PAL' => "Palais",
'PARC' => "Parc",
'PKG' => "Parking",
'PRV' => "Parvis",
'PAS' => "Passage",
'PN' => "Passage à niveau",
'PASS' => "Passe",
'PLE' => "Passerelle",
'PAT' => "Patio",
'PAV' => "Pavillon",
'PERI' => "Périphérique",
'PSTY' => "Péristyle",
'PTA' => "Petites allée",
'PCH' => "Petit chemin",
'PAE' => "Petite avenue",
'PIM' => "Petite impasse",
'PRT' => "Petite route",
'PTR' => "Petite rue",
'PL' => "Place",
'PLCI' => "Placis",
'PLAG' => "Plage",
'PLN' => "Plaine",
'PLAN' => "Plan",
'PLT' => "Plateau",
'PNT' => "Pointe",
'PONT' => "Pont",
'PCH' => "Porche",
'PORT' => "Port",
'PTE' => "Porte",
'PORQ' => "Portique",
'POT' => "Poterne",
'POUR' => "Pourtour",
'PRE' => "Pré",
'PRQ' => "Presqu'île",
'PROM' => "Promenade",
'QU' => "Quai",
'QUAI' => "Quai",
'QUA' => "Quartier",
'RAC' => "Raccourci",
'RAID' => "Raidillon",
'RPE' => "Rampe",
'REM' => "Rempart",
'RES' => "Résidence",
'ROC' => "Roc",
'ROC' => "Rocade",
'RPT' => "Rond point",
'ROQT' => "Roquet",
'RTD' => "Rotonde",
'RTE' => "Route",
'R' => "Rue",
'RUE' => "Rue",
'RLE' => "Ruelle",
'SEN' => "Sente",
'SEN' => "Sentier",
'SQ' => "Square",
'STDE' => "Stade",
'STA' => "Station",
'TPL' => "Terre plein",
'TRN' => "Terrain",
'TSSE' => "Terrasse",
'TRT' => "Tertre",
'TOUR' => "Tour",
'TRA' => "Traverse",
'VAL' => "Vallon",
'VAL' => "Vallée",
'VEN' => "Venelle",
'VIA' => "Via",
'VTE' => "Vieille route",
'VCHE' => "Vieux chemin",
'VLA' => "Villa",
'VGE' => "Village",
'VLGE' => "Village",
'VOI' => "Voie",
'VOIE' => "Voie",
'ZONE' => "Zone",
'ZAC' => "Zone d'aménagement concerté",
'Z A C' => "Zone d'aménagement concerté",
'ZAD' => "Zone d'aménagement différé",
'Z A D' => "Zone d'aménagement différé",
'ZA' => "Zone artisanale",
'Z A' => "Zone artisanale",
'ZI' => "Zone industrielle",
'Z I' => "Zone industrielle",
'ZUP' => "Zone à urbaniser en priorité",
'Z U P' => "Zone à urbaniser en priorité",
);
}

View File

@ -1,151 +0,0 @@
<?php
class Metier_Intersud_Service
{
/**
* Stockage du cookie
* @var string
*/
protected $ckfile;
protected $login = 'YLENA';
protected $pass = 'WYLFE';
/**
* Gestion des demandes d'enquêtes au service Infogreffe
*/
public function __construct()
{
}
public function setDemandeur()
{
}
public function setEnquete()
{
}
public function call()
{
$this->ckfile = __DIR__.'/'.uniqid('cookie-');
if (file_exists($ckfile)) {
unlink($ckfile);
}
// --- Authentification
$url = 'http://www.intersud.fr/espace_client/';
$data = array(
'login' => $this->login,
'pwd' => $this->pass,
);
$result = $this->page($url, $data);
// --- Post de la demande
$url = 'http://intersud.fr/espace_client/demande_enquete.php';
$data = array(
//Expediteur - Email
'email_exp' => 'support@scores-decisions.com',
//Type enquete - Prestation Nationales
'type_enk' => $enqType, // 0=Premier, 1=Gold, 2=Distrimat, 3=Star, 4=Avis bancaire, 5=Autre
'delai_enk' => $enqDelai, // 6=24h, 7=72h, 8=+de5jours
//Type enquete - Prestation Internationales
//Société
'soc' => $tabIdentite['Nom'],
'cible_enk' => 9, // 9
'siret' => $siren,
'acti' => '',
'soc_exp' => $tabInterSud['soc_exp'],
'nom_diri' => '',
'adr' => $tabIdentite['Adresse'],
'ref_exp' => $tabInterSud['ref_exp'],
'autre_type_enk' => '', // Texte libre
'adr2' => $tabIdentite['Adresse2'],
'ville' => $tabIdentite['Ville'],
'cp' => $tabIdentite['CP'],
'pays' => '', // International ?
'nom_exp' => $tabInterSud['nom_exp'],
'tel' => $tabIdentite['Tel'],
'port' => $infoEnq['Entrep']['AutreTel'],
'tel_exp' => $tabInterSud['tel_exp'],
'bank' => trim(implode(' ', $infoEnq['Entrep']['Rib'])),
'int_enk' => $tabInterSud['int_enk'], // International ?
'encours' => $infoEnq['Encours'],
'nb_ech' => $infoEnq['NbEcheances'],
'delai2_enk' => $tabInterSud['delai2_enk'], // International ?
'cred' => '',
'comment' => urlencode($comment),
'val_ret' => $tabInterSud['val_ret'],
);
$result = $this->page($url, $data);
}
protected function page($url, $curl_data = '', $override = null)
{
//$user_agent = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';
//$user_agent = 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)';
$user_agent = 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)';
$verbose = false;
$post = false;
$fields = '';
if (is_array($curl_data) && count($curl_data)>0) {
foreach ($curl_data as $key=>$value) {
$fields .= $key.'='.$value.'&';
}
rtrim($fields, '&');
$post = true;
}
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => false, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => $user_agent, // who am i
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
CURLOPT_POST => $post, // i am sending post data
CURLOPT_POSTFIELDS => $fields, // this are my post vars
CURLOPT_SSL_VERIFYHOST => 0, // don't verify ssl
CURLOPT_SSL_VERIFYPEER => false, //
CURLOPT_VERBOSE => $verbose , //
//CURLOPT_COOKIESESSION => true,
CURLOPT_COOKIEFILE => $ckfile,
CURLOPT_COOKIEJAR => $ckfile, // Stockage du cookie de session
);
//Override define CURL option
if (is_array($override) && count($override)>0) {
$options = $override + $options;
}
$ch = curl_init($url);
curl_setopt_array($ch, $options);
$content = curl_exec($ch);
$err = curl_errno($ch);
$errmsg = curl_error($ch) ;
$header = curl_getinfo($ch);
curl_close($ch);
//Rewrite encoding to UTF-8
//text/html; charset=ISO-8859-1
//$encoding = getPageHeader('text\/html; charset=', '', $header['content_type']);
//$encoding = 'ISO-8859-1';
//$content = iconv($encoding, 'UTF-8//TRANSLIT', $content);
// $header['errno'] = $err;
// $header['errmsg'] = $errmsg;
// $header['content'] = $content;
return array('header'=>$header, 'content'=>$content);
}
}

View File

@ -1,550 +0,0 @@
<?php
class Metier_Liens_Base
{
/**
* Company Reference id
* @var int
*/
protected $idRef = null;
/**
* Company SIREN
* @var string
*/
protected $siren = null;
/**
* Array to list id find during list of childrens
* @var array
*/
protected $findId = array();
/**
* Coutry List ISO3 => Label
* @var array
*/
protected $country = null;
/**
* Stop the process to looks for company group head
* @var boolean
*/
public $stopAtFirstIsin = false;
/**
* Stop the process to looks for physical person
* @var boolean
*/
public $stopAtPP = true;
/**
* PDO Connection with Doctrine
* @var \Doctrine\DBAL\Connection
*/
protected $conn;
/**
* Gestion des liens inter entreprises
* @param \Doctrine\DBAL\Connection $conn
*/
public function __construct($conn = null)
{
if ($conn === null) {
$this->conn = Zend_Registry::get('doctrine');
} else {
$this->conn = $conn;
}
}
/**
* Identifiant
* @param string $id
* @param string $type ref|siren
*/
public function setId($id, $type = 'ref')
{
// Get Id
if ($type == 'siren') {
$this->siren = $id;
try {
$sql = "SELECT * FROM jo.liensRef WHERE siren = :id AND dateSuppr = 0";
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('id', $id);
$stmt->execute();
if ($stmt->rowCount() > 0) {
$result = $stmt->fetch(\PDO::FETCH_OBJ);
$this->idRef = $result->id;
}
} catch (\Doctrine\DBAL\DBALException $e) {
throw new Exception(__METHOD__ . ': ' . $e->getMessage());
}
} else {
$this->idRef = $id;
}
}
/**
* Retourne les actionnaires
* @param int $id
* @param boolean $actif
* @return array Tableau d'actionnaires
*/
public function getActionnaires($id = null, $actif = null)
{
if (null === $id) {
$id = $this->idRef;
}
$liens = array();
if (null === $id) {
return $liens;
}
try {
$qb = $this->conn->createQueryBuilder();
$qb->select(array(
'l.id', 'l.idAct', 'l.PDetention', 'l.Pvote', 'l.MajMin', 'l.idPar',
'l.dateEffetLien', 'l.dateInsert', 'l.dateUpdate',
'LPAD(r.siren, 9, 0) AS siren', 'r.PpPm', 'r.RS', 'r.sigle', 'r.civilite', 'r.nom',
'r.prenom', 'r.nom_usage', 'r.naissance_date', 'r.naissance_dept_pays',
'r.naissance_lieu', 'r.nat', 'r.adresse_num', 'r.adresse_btq', 'r.adresse_codvoie',
'r.adresse_libvoie', 'r.adresse_comp', 'r.adresse_cp', 'r.adresse_ville',
'r.adresse_pays', 'r.idLoc1Type', 'r.idLoc1Num', 'r.idLoc2Type', 'r.idLoc2Num',
'r.idLoc3Type', 'r.idLoc3Num'
)
)->from('jo.liens2', 'l')->join('l', 'jo.liensRef', 'r', 'l.idAct = r.id')
->where('l.idPar = :id')->setParameter('id', $id)
->orderBy('l.PDetention', 'DESC');
// Actif / Inactif
if (null !== $actif) {
if (false === $actif) {
$qb->andWhere('l.actif = 0');
} else {
$qb->andWhere('l.actif = 1');
}
}
// Don't display deleted - anomaly
$qb->andWhere("l.dateSuppr = '0000-00-00 00:00:00'");
$stmt = $qb->execute();
$liens = $stmt->fetchAll(\PDO::FETCH_OBJ);
} catch (\Doctrine\DBAL\DBALException $e) {
throw new Exception(__METHOD__ . ': ' . $e->getMessage());
}
return $liens;
}
/**
* Retourne les participations
* @param int $id
* @param boolean $actif
* @return array Tableau des participations
*/
public function getParticipations($id = null, $actif = null)
{
if (null === $id) {
$id = $this->idRef;
}
if (false === $actif) {
$actif = 0;
} else {
$actif = 1;
}
$liens = array();
if (null === $id) {
return $liens;
}
try {
$qb = $this->conn->createQueryBuilder();
$qb->select(array(
'l.id', 'l.idAct', 'l.PDetention', 'l.Pvote', 'l.MajMin', 'l.idPar',
'l.dateEffetLien', 'l.dateInsert', 'l.dateUpdate',
'LPAD(r.siren, 9, 0) AS siren', 'r.PpPm', 'r.RS', 'r.sigle', 'r.civilite', 'r.nom',
'r.prenom', 'r.nom_usage', 'r.naissance_date', 'r.naissance_dept_pays',
'r.naissance_lieu', 'r.nat', 'r.adresse_num', 'r.adresse_btq', 'r.adresse_codvoie',
'r.adresse_libvoie', 'r.adresse_comp', 'r.adresse_cp', 'r.adresse_ville',
'r.adresse_pays', 'r.idLoc1Type', 'r.idLoc1Num', 'r.idLoc2Type', 'r.idLoc2Num',
'r.idLoc3Type', 'r.idLoc3Num'
)
)->from('jo.liens2', 'l')->join('l', 'jo.liensRef', 'r', 'l.idPar=r.id')
->where('l.idAct = :id')->setParameter('id', $id)
->orderBy('l.PDetention', 'DESC');
// Actif / Inactif
if (null !== $actif) {
if (false === $actif) {
$qb->andWhere('l.actif = 0');
} else {
$qb->andWhere('l.actif = 1');
}
}
//Don't display deleted - anomaly
$qb->andWhere("l.dateSuppr = '0000-00-00 00:00:00'");
$stmt = $qb->execute();
$liens = $stmt->fetchAll(\PDO::FETCH_OBJ);
} catch (\Doctrine\DBAL\DBALException $e) {
throw new Exception(__METHOD__ . ': ' . $e->getMessage());
}
return $liens;
}
/**
* Fonctions de direction
* @param boolean $actif
* @return array
*/
public function getDirections($actif = null)
{
if (null === $this->siren) {
$sql = "SELECT LPAD(siren, 9, 0) AS siren FROM jo.liensRef WHERE id = :id";
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('id', $this->idRef);
if ($stmt->rowCount() > 0) {
$result = $stmt->fetch(\PDO::FETCH_OBJ);
$siren = $result->siren;
}
} else {
$siren = $this->siren;
}
$result = array();
if (null !== $siren && intval($siren) != 0) {
try {
$qb = $this->conn->createQueryBuilder();
$qb->select(array('LPAD(siren, 9, 0) AS siren', 'raisonSociale',
'dirSiren', 'dirRS', 'civilite', 'nom', 'prenom', 'naissance_date',
'naissance_lieu', 'fonction_code', 'fonction_lib')
)->from('jo.rncs_dirigeants')->where("typeDir IN ('PM', 'PP')")
->andWhere('dirSiren = :siren')->setParameter('siren', $siren);
// Actif / Inactif
if (null !== $actif) {
if (false === $actif) {
$qb->andWhere('actif = 0');
} else {
$qb->andWhere('actif = 1');
}
}
$qb->orderBy('fonction_code', 'DESC');
$qb->orderBy('raisonSociale', 'ASC');
$stmt = $qb->execute();
$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
} catch (\Doctrine\DBAL\DBALException $e) {
throw new Exception(__METHOD__ . ': ' . $e->getMessage());
}
}
return $result;
}
/**
* Retourne la maison mère
* @param int $id
* Id de la fiche de départ
* @param int $detention
* Niveau de détention (Une filiale est une entreprise détenue à plus de 50% par une autre entreprise)
* @return int
*/
public function getHead($id = null, $detention = 0)
{
if (null === $id) {
$id = $this->idRef;
}
//Add ID to the list of known
$this->findId[] = $id;
//Through the list
$liens = $this->getActionnaires($id, true);
//Find the following up entity
if (count($liens)>0) {
foreach ($liens as $item) {
//Don't through again and again
if (in_array($item->idAct, $this->findId)) {
return $item->idAct;
} elseif ($this->stopAtFirstIsin === true && !empty($item->isin)) {
break;
}
//Remove physical person
elseif ($item->PpPm == 'PP' && $this->stopAtPP) {
continue;
}
//Same id
elseif ($item->idAct == $id) {
return $id;
}
//PDetention>50
elseif ($item->PDetention > 50 && $item->idAct > 1000) {
return $this->getHead($item->idAct, $detention);
}
//MajMin=+
elseif ($item->PDetention > $detention && $item->MajMin == '+' && $item->idAct > 1000) {
return $this->getHead($item->idAct, $detention);
}
//--
elseif ($item->PDetention > $detention && $item->idAct > 1000) {
return $this->getHead($item->idAct, $detention);
}
}
}
return $id;
}
/**
* Retourne les éléments identitaire présent dans lienRef
* @param string $id
* @return array
*/
public function getIdentity($id = null)
{
if (null === $id) {
$id = $this->idRef;
}
$sql = "SELECT * FROM jo.liensRef WHERE id = :id";
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('id', $id);
$stmt->execute();
if ($stmt->rowCount() > 0) {
return $stmt->fetch(\PDO::FETCH_OBJ);
}
return null;
}
/**
* Retourne l'arborescence pour les groupes
* @param int $pctMin
* @param int $nbNiveaux
* @return array
*/
public function getTree($pctMin = 33, $nbNiveaux = 10)
{
//Get identity to stop at isin
$itemWithIsin = null;
if ($this->stopAtFirstIsin === true) {
$id = $this->idRef;
$identity = $this->getIdentity($this->idRef);
if (!empty($identity->isin)) {
$itemWithIsin = true;
}
}
if ($itemWithIsin !== true) {
//Récupération de la maison mère
$id = $this->getHead(null, 50);
//Informations de la maison mère
$identity = $this->getIdentity($id);
}
$this->findId = array();
$this->findId[] = $identity->id;
$nom = $identity->RS;
if ($identity->nom != '') {
$nom = $identity->civilite.' '.$identity->nom.' '.$identity->prenom;
}
if ($this->country === null) {
$this->country = $this->getCountry();
}
$pays = $identity->adresse_pays;
if (array_key_exists($identity->adresse_pays, $this->country)) {
$pays = $this->country[$identity->adresse_pays];
}
//Retour
$tabRet = array(
'id' => $identity->id,
'name' => $nom,
'siren' => str_pad($identity->siren, 9, '0', STR_PAD_LEFT),
'pmin' => $item->PDetention,
'pays' => $pays,
'children' => $this->getTreeRecursive($identity->id, $pctMin, 1, $nbNiveaux),
);
return $tabRet;
}
/**
* Retourne un sous élement de l'arborescence pour les groupes
* @param int $id
* @param int $pctMin
* @param int $niveau
* @param int $nbNiveaux
* @return array
*/
public function getTreeRecursive($id, $pctMin=33, $niveau=0, $nbNiveaux=10)
{
if ($niveau > $nbNiveaux) {
return array();
}
$niveau++;
$tabRet = array();
$participations = $this->getParticipations($id, true);
if (count($participations)>0) {
foreach ($participations as $item) {
if ($item->PDetention > $pctMin) {
$identity = $this->getIdentity($item->idPar);
$nom = $identity->RS;
if ($identity->nom != '') {
$nom = $identity->civilite.' '.$identity->nom.' '.$identity->prenom;
}
if ($this->country === null) {
$this->country = $this->getCountry();
}
$pays = $identity->adresse_pays;
if (array_key_exists($identity->adresse_pays, $this->country)) {
$pays = $this->country[$identity->adresse_pays];
}
$data = array(
'id' => $identity->id,
'name' => $nom,
'siren' => str_pad($identity->siren, 9, '0', STR_PAD_LEFT),
'pmin' => $item->PDetention,
'pays' => $pays,
'children' => array(),
);
//Pour éviter d'avoir des boucles infinis
if (!in_array($identity->id, $this->findId)) {
$this->findId[] = $identity->id;
$data['children'] = $this->getTreeRecursive($identity->id, $pctMin, $niveau, $nbNiveaux);
}
$tabRet[] = $data;
}
}
}
return $tabRet;
}
/**
* Liste des entités du CAC40
* @return array
*/
public function getCAC40()
{
$sql = "SELECT isin, nom, MAX(date) AS dateMAJ FROM sdv1.bourse_listes
WHERE lstCode='xcac40p' GROUP BY lstCode, isin HAVING MAX(date) ORDER BY dateMAJ DESC;";
$stmt = $this->conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
$output = array();
foreach ($result as $item) {
$output[] = $item->isin;
}
return $output;
}
/**
*
* @param number $pctMin
* @return array
*/
public function getGroupeCAC40($pctMin = 50)
{
$listeIsin = $this->getCAC40();
$isin = "'".implode("','", $listeIsin)."'";
$this->findId = array();
$sql = "SELECT id FROM jo.liensRef WHERE (idLoc1Type=63 AND idLoc1Num IN (".$isin."))
OR (idLoc2Type=63 AND idLoc2Num IN (".$isin.")) OR (idLoc3Type=63 AND idLoc3Num IN (".$isin."))";
$stmt = $this->conn->executeQuery($sql);
$output = array();
if ($stmt->rowCount() > 0) {
$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
foreach ($result as $item) {
$output = $output + $this->getListeGroupeCAC40($item->id, $pctMin);
}
}
return $output;
}
/**
*
* @param int $id
* @param number $pctMin
* @return array
*/
public function getListeGroupeCAC40($id, $pctMin=50)
{
$participations = $this->getParticipations($id, true);
$output = array();
if (count($participations)>0) {
foreach ($participations as $item) {
if ($item->PDetention > $pctMin) {
$identity = $this->getIdentity($item->idPar);
if (intval($identity->siren)!=0) {
$output[] = $identity->siren;
}
if (!in_array($identity->id, $this->findId)) {
$this->findId[] = $identity->id;
$output = $output + $this->getListeGroupeCAC40($identity->id, $pctMin);
}
}
}
}
return $output;
}
/**
*
* @param number $pctMin
* @return boolean
*/
public function isInGroupeCAC40($pctMin = 50)
{
//Si pas d'actionnaires => false
if (count($this->getActionnaires()) == 0) {
return false;
}
$listeInGroupeCAC40 = $this->getGroupeCAC40($pctMin);
if (in_array($this->siren, $listeInGroupeCAC40)) {
return true;
}
return false;
}
/**
* Get all countries
*/
protected function getCountry()
{
$sql = "SELECT codPays3, libPays FROM jo.tabPays WHERE codPays3 IS NOT NULL";
$stmt = $this->conn->prepare($sql);
$stmt->execute();
if ($stmt->rowCount() > 0) {
$data = array();
while($item = $stmt->fetch(PDO::FETCH_OBJ)) {
$data[$item->codPays3] = $item->libPays;
}
return $data;
}
return false;
}
}

View File

@ -1,386 +0,0 @@
<?php
ini_set('soap.wsdl_cache_enabled', 0);
ini_set('default_socket_timeout', 30);
class Metier_Partenaires_MAmabis
{
protected $client;
/**
* PDO Connection with Doctrine
* @var \Doctrine\DBAL\Connection
*/
protected $conn;
/**
* Logger
* @var \Monolog\Logger
*/
protected $logger;
public function __construct()
{
$this->conn = Zend_Registry::get('doctrine');
if (Zend_Registry::isRegistered('logger')) {
$this->logger = Zend_Registry::get('logger');
}
$this->client = new SoapClient(null, array(
'location' => 'http://sw2.amabis.com:5100/',
'uri' => 'http://www.amabis.com/ns.xsd',
'connection_timeout' => 2,
'soap_version' => SOAP_1_1,
'trace' => 1,
'style' => SOAP_RPC,
'use' => SOAP_ENCODED,
));
}
public function getZonage($adrNum, $adrIndRep, $adrTypeVoie, $adrLibVoie, $cp, $ville='', $codeRivoli='', $rnvp=false, $raisonSociale='TEST', $debug=false)
{
$tabRep = array();
if (!$rnvp) {
if ($cp < 10000) {
$cp='0'.$cp;
}
$dep2 = substr($cp, 0, 2)*1;
$dep3 = substr($cp, 0, 3)*1;
switch ($dep2) {
case 0:
case 97: // DOM
case 98: // TOM
case 99: // Etranger
return $tabRep;
break;
default:
break;
}
}
$adresse = addslashes(trim(preg_replace('/ +/', ' ', "$adrNum $adrIndRep $adrTypeVoie $adrLibVoie")));
$ville = addslashes($ville);
$majForcee = false;
$stmtNb = 0;
try {
$sql = "SELECT zus, zru, zfu, cucs, rnvpStatut, rnvpCorr, rnvpTrt, adr3, adr4, adr5, adr6,
adr7, numVoieA, indRepA, typeVoieAlong, typeVoieAcourt, corpVoie, motDir, motDirD,
libVoieSec, adr4n32, adr4n38, clePostaleVoie, secteur, cleRoutage, cpx, cleAd,
codPaysIso2, codPaysIso3, libPays, codeInsee
FROM jo.zonage WHERE address='$adresse' AND adr_cp='$cp' AND adr_ville='$ville'";
$stmt = $this->conn->prepare($sql);
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
$zones = $stmt->fetch(\PDO::FETCH_ASSOC);
if ($zones['rnvpStatut'] === null && $rnvp) {
$majForcee = true;
}
$tabRep['ZUS'] = $tabRep['ZFU'] = $tabRep['ZRU'] = $tabRep['CUCS'] = 'NON';
if (trim($zones['zus']) != '') {
if (trim($zones['zus']) == 'NSP') {
$tabRep['ZUS'] = 'NSP';
} else {
$tabRep['ZUS'] = 'OUI';
}
$tabRep['NZUS'] = $zones['zus'];
}
if (trim($zones['zru']) != '') {
if (trim($zones['zru']) == 'NSP') {
$tabRep['ZRU'] = 'NSP';
} else {
$tabRep['ZRU'] = 'OUI';
}
$tabRep['NZRU'] = $zones['zru'];
}
if (trim($zones['zfu']) != '') {
if (trim($zones['zfu']) == 'NSP') {
$tabRep['ZFU'] = 'NSP';
} else {
$tabRep['ZFU'] = 'OUI';
}
$tabRep['NZFU'] = $zones['zfu'];
}
if (trim($zones['cucs']) != '') {
if (trim($zones['cucs']) == 'NSP') {
$tabRep['CUCS'] = 'NSP';
} else {
$tabRep['CUCS'] = 'OUI';
}
$tabRep['NCUCS'] = $zones['cucs'];
}
/** Autres Informations de la RNVP **/
if ($rnvp) {
if (strtoupper(@trim($zones['adr7'])) == 'FRANCE') {
$zones['adr7'] = '';
}
$tabRep['ADR3'] = @trim($zones['adr3']);
$tabRep['ADR4'] = @trim($zones['adr4']);
$tabRep['ADR5'] = @trim($zones['adr5']);
$tabRep['ADR6'] = @trim($zones['adr6']);
$tabRep['ADR7'] = trim($zones['adr7']);
}
}
if ($stmtNb == 0 || $majForcee) {
try {
// Le RNVP ne fonctionne pas sans la Raison Sociale qui est la 1ère ligne d'adresse
if (trim($raisonSociale) == '') {
$raisonSociale = 'TEST';
}
$rep = $this->client->zonage(
new SoapParam(strtr(
"$raisonSociale:$adresse:$cp:$ville",
'¿°ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ??',
' aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr'), 'adresse'),
new SoapParam(':', 'separateur'),
new SoapParam('type=M', 'options')
);
/** Découpage des ZFU, CUCS etcs... **/
$fp = fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s').' - '.implode("\n", $rep)."\n============================================================================\n");
fclose($fp);
$tabZones = explode(',', $rep['zonage']); // ZUS=OUI,NZUS=1127020,ZFU=OUI,NZFU=11270ZF,CUCS=OUI,NCUCS=1127020
foreach ($tabZones as $zone) {
$tabTmp = explode('=', $zone);
if (trim($tabTmp[0]) != '') {
$tabRep[$tabTmp[0]]=$tabTmp[1];
}
}
if (@$tabRep['ZUS']=='NSP') {
$tabRep['NZUS']='NSP';
}
if (@$tabRep['ZRU']=='NSP') {
$tabRep['NZRU']='NSP';
}
if (@$tabRep['ZFU']=='NSP') {
$tabRep['NZFU']='NSP';
}
if (@$tabRep['CUCS']=='NSP') {
$tabRep['NCUCS']='NSP';
}
$adresse=stripslashes(trim(preg_replace('/ +/', ' ', "$adrNum $adrIndRep $adrTypeVoie $adrLibVoie")));
$ville=stripslashes($ville);
$tabRepTmp=array();
$tabTmp=explode('=', utf8_decode($rep['objdesc']));
//print_r($tabTmp);
//die();
$tabZones=array();
foreach ($tabTmp as $iZone=>$zone) {
$pos=strrpos($zone, ',');
if ($iZone==0) {
$nomZoneSuiv=$zone;
continue;
}
$tabZones[$nomZoneSuiv]=substr($zone, 0, $pos);
$nomZoneSuiv=substr($zone, $pos+1);
}
if (strtoupper(@trim($tabZones['ADR7']))=='FRANCE') {
$tabZones['ADR7']='';
}
$tabTmp = explode('|', $tabZones['VOIEA']);
$typeVoieAcourt = @trim($tabTmp[1]);
$tabInsert = array(
'address' => $adresse,
'adr_cp' => $cp,
'adr_ville' => $ville,
'zus' => @$tabRep['NZUS'],
'zru' => @$tabRep['NZRU'],
'zfu' => @$tabRep['NZFU'],
'cucs' => @$tabRep['NCUCS'],
);
$tabUpdate=array(
'adrNum' => $adrNum,
'adrIndRep' => $adrIndRep,
'adrTypeVoie' => $adrTypeVoie,
'adrLibVoie' => $adrLibVoie,
'rivoli' => $codeRivoli,
// Ajouté le 16/12/2013
'rnvpStatut' => substr($tabZones['STATUTC'], 0, 2),
'rnvpCorr' => substr($tabZones['STATUTC'], 2, 1),
'rnvpTrt' => trim(substr($tabZones['STATUTC'], 3, 2)),
'adr3' => @trim($tabZones['ADR3']),
'adr4' => @trim($tabZones['ADR4']),
'adr5' => @trim($tabZones['ADR5']),
'adr6' => @trim($tabZones['ADR6']),
'adr7' => trim($tabZones['ADR7']),
'numVoieA' => @trim($tabZones['NUM1']),
'indRepA' => @trim($tabZones['BTQC1']),
'typeVoieAlong' => @trim($tabZones['TYPVOIEL']),
'typeVoieAcourt' => $typeVoieAcourt,
'corpVoie' => @trim($tabZones['CORPSVOIE']),
'motDir' => @trim($tabZones['MOTDIR']),
'motDirD' => @trim($tabZones['MOTDIRD']),
'libVoieSec' => @trim($tabZones['VOIREFLIBS']),
'adr4n32' => @trim($tabZones['VOIREFLIBPOS']),
'adr4n38' => @trim($tabZones['VOIREFLIBPOS2']),
'clePostaleVoie' => @trim($tabZones['VOIREFCLEPOST']),
'secteur' => @trim($tabZones['SECTEUR']),
'cleRoutage' => @trim($tabZones['CLER']),
'cpx' => @trim($tabZones['CPX']),
'cleAd' => @trim($tabZones['CLEAD']),
'codPaysIso2' => @trim($tabZones['NATREFISO2']),
'codPaysIso3' => @trim($tabZones['NATREFISO3']),
'libPays' => @trim($tabZones['NATREFLIB']),
'codeInsee' => @trim($tabZones['LOCREFCLEO']),
'source' => 'Amabis',
);
$dateInsert = 0;
if ($majForcee) {
$adresseL = addslashes($adresse);
$villeL = addslashes($ville);
$sql = "SELECT dateInsert*1 as dateInsert FROM jo.zonage
WHERE address='$adresseL' AND adr_cp='$cp' AND adr_ville='$villeL'";
$majNb = 0;
try {
$majStmt = $this->conn->prepare($sql);
$majStmt->execute();
$majNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($majNb > 0) {
$result = $stmt->fetch(\PDO::FETCH_OBJ);
$dateInsert = $result->dateInsert;
if ($dateInsert != 0) {
try {
$this->conn->update('jo.zonage', array_merge($tabUpdate,
array('dateInsert' => $dateInsert)),
array(
'address' => $adresseL,
'adr_cp' => $cp,
'adr_ville' => $villeL,
));
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
}
}
}
if ($dateInsert == 0) {
try {
$this->conn->insert('jo.zonage', array_merge($tabInsert, $tabUpdate));
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
}
$tabTmp[0] = explode(',', $tabZones['LOCREFCLEP']);
$tabTmp[1] = explode(',', $tabZones['LOCREFCP']);
$tabTmp[2] = explode(',', $tabZones['LOCREFTYPP']);
$tabTmp[3] = explode(',', $tabZones['LOCREFLIBD']);
$tabTmp[4] = explode(',', $tabZones['LOCREFLIBD2']);
foreach ($tabTmp[0] as $iCleP=>$cleP) {
$tabInsert = array(
'codeInsee' => @trim($tabZones['LOCREFCLEO']),
'villeLib' => @trim($tabZones['LOCREFLIBP']),
'villePopu' => @trim($tabZones['LOCREFPOP']),
'cleAchPost' => $cleP,
'codePostal' => $tabTmp[1][$iCleP],
'typePostal' => $tabTmp[2][$iCleP],
'libAchP32' => @preg_replace('/^\//', '', $tabTmp[3][$iCleP]),
'libAchP38' => @preg_replace('/^\//', '', $tabTmp[4][$iCleP]),
'source' => 'Amabis',
'dateInsert' => date('YmdHis'),
);
try {
$this->conn->insert('jo.villesCP', $tabInsert);
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
}
/** Autres Informations de la RNVP **/
if ($rnvp) {
$tabRep['ADR3'] = @trim($tabZones['ADR3']);
$tabRep['ADR4'] = @trim($tabZones['ADR4']);
$tabRep['ADR5'] = @trim($tabZones['ADR5']);
$tabRep['ADR6'] = @trim($tabZones['ADR6']);
$tabRep['ADR7'] = trim($tabZones['ADR7']);
}
} catch (SoapFault $fault) {
$fp = fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s').' - ERREUR SOAP : Requete = '.$this->client->__getLastRequest()."\n Reponse = ".$this->client->__getLastResponse()."\n============================================================================\n");
fclose($fp);
}
}
/** Zonages AFR et ZRR **/
$codeInsee = substr($codeRivoli, 0, 5);
$sql = "SELECT typeZone, arreteDate, decretDate, decretNum, decretModifieDate, decretModifieNum, dateDebut, dateFin
FROM jo.zonageInsee WHERE codeInsee=:code";
$zonageNb = 0;
try {
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('code', $codeInsee);
$stmt->execute();
$zonageNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
$tabRep['ZRR'] = $tabRep['AFR'] = 'NON';
if ($zonageNb > 0) {
while ($zones = $stmt->fetch(\PDO::FETCH_ASSOC)) {
switch ($zones['typeZone']) {
case 'ZRR':
$tabRep['ZRR'] = 'OUI';
$tabRep['NZRR'] = $codeInsee;
break;
case 'ZAFR':
$tabRep['AFR']='OUI';
$tabRep['NAFR']=$codeInsee;
break;
default:
break;
}
}
}
return $tabRep;
}
public function searchByTelFax($tel)
{
return $this->getTelFax('', '', '', '', $tel);
}
public function getTelFax($nom, $cp, $ville='', $prenom='', $tel='')
{
if (trim($tel) != '') {
$query = "<telep>$tel</telep><scoremini>10</scoremini><distinction>30</distinction>";
} elseif (trim($prenom) == '') {
$query = "<rs>$nom</rs><cpville>$cp $ville</cpville><scoremini>90</scoremini><distinction>30</distinction>";
} else {
$query = "<nom>$nom</nom><prenom>$prenom</prenom><cpville>$cp $ville</cpville><scoremini>90</scoremini><distinction>30</distinction>";
}
$rep = $this->client->rechtel($query);
$fp = fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s')." - $query - ".implode("\n", $rep)."\n============================================================================\n");
fwrite($fp, "Requête : ".$this->client->__getLastRequest()."\n");
fwrite($fp, "Réponse : ".$this->client->__getLastResponse()."\n");
fclose($fp);
}
}

View File

@ -1,344 +0,0 @@
<?php
require_once 'framework/common/curl.php';
class Metier_Partenaires_MArtisanat
{
public $body = '';
public $header = '';
public $codeRetour = 0;
public $referer='';
public $libErreur='';
public $cookie='';
/**
* PDO Connection with Doctrine
* @var \Doctrine\DBAL\Connection
*/
protected $conn;
/**
* Flag to get remote data
* @var string
*/
protected $remote = false;
public function __construct()
{
$this->conn = Zend_Registry::get('doctrine');
}
/**
* Active la récupération des données distantes
*/
public function setRemote()
{
$this->remote = true;
}
/**
* Informations artisan
* @param string $siren
* @return array
*/
public function getIdentite($siren)
{
$data = array();
$siren = $siren * 1;
if ($this->remote) {
$data = $this->getRemoteIdentite();
} else {
try {
$stmt = $this->conn->prepare("SELECT id, siren, actif, numRM, denomination, sigle, nomCommercial,
enseigne, fj, effectif, aprm, debutActivite, activite, adresse, cp, ville, cessation,
radiation, nbInscriptions, nom, prenom, nomUsage, dateNaiss, lieuNaiss, natio,
qualite, qualif, dateQualif, dateFctDeb, dateFctFin,
IF(dateInsert>dateUpdate,dateInsert,dateUpdate) AS dateUpdate FROM jo.artisanat
WHERE siren=:siren");
$stmt->bindValue('siren', $siren);
$stmt->execute();
if ($stmt->rowCount() > 0) {
$data = $stmt->fetch(\PDO::FETCH_ASSOC);
}
} catch (\Doctrine\DBAL\DBALException $e) {
}
}
return $data;
}
/**
* Download data from external website
* @return array
*/
public function getRemoteIdentite()
{
$url = 'http://www.cma-paris.fr/CMP/rm_recherche.php?dom=Gerer&fonction=recherche';
$page = getUrl($url, '', '', $this->referer, false, 'www.cma-paris.fr', false, '', '', 21);
$this->body = $page['body'];
$this->codeRetour = $page['code'];
if ($this->codeRetour != '200') {
$this->libErreur = 'Erreur Artisanat 200a !';
return false;
}
$this->cookie = $page['header']['Set-Cookie'];
$this->referer = $url;
$url = 'http://www.cma-paris.fr/CMP/rm_recherche.php?dom=Gerer&fonction=cherche';
$postData = array(
'siren_op' => '%3D',
'siren' => $siren,
'den_rent_op' => '%25',
'den_rent' => '',
'adresse_op' => 'contient',
'adresse' => '',
'bde_rent_op' => '%25',
'bde_rent' => '',
'nom_rdir_op' => '%25',
'nom_rdir' => '',
'pren_rdir_op' => '%25',
'pren_rdir' => '',
'table' => 'rentreprise',//'rentrad',
'x' => 56,
'y' => 14,
);
sleep(rand(1, 2));
$page = getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.cma-paris.fr', false, '', '', 21);
$this->body = $page['body'];
$this->codeRetour = $page['code'];
if ($this->codeRetour != '200') {
$this->libErreur = 'Erreur Artisanat 200b !';
return false;
}
$this->referer = $url;
if (preg_match('/<span.class="rouge">aucune.entreprise.ne.correspond(?:.*)vos.crit(?:.*)de.recherche<\/span>/Uis', $this->body, $matches)) {
$url = 'http://www.cma-paris.fr/CMP/rm_recherche.php?dom=Gerer&fonction=cherche';
$postData = array(
'siren_op' => '%3D',
'siren' => $siren,
'den_rent_op' => '%25',
'den_rent' => '',
'adresse_op' => 'contient',
'adresse' => '',
'bde_rent_op' => '%25',
'bde_rent' => '',
'nom_rdir_op' => '%25',
'nom_rdir' => '',
'pren_rdir_op' => '%25',
'pren_rdir' => '',
'table' => 'rentrad',
'x' => 56,
'y' => 14,
);
sleep(rand(1, 2));
$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.cma-paris.fr', false, '', '', 21);
$this->body = $page['body'];
$this->codeRetour = $page['code'];
if ($this->codeRetour != '200') {
$this->libErreur='Erreur Artisanat 200c !';
return false;
}
$this->referer=$url;
}
/** Gestion des multi-inscriptions au RM **/
if (preg_match('/<b class="gris">(.*)entreprises.correspondent(?:.*)vos.crit(?:.*)de.recherche<\/span>/Uis', $this->body, $matches)) {
$nbRep = trim($matches[1])*1;
$iRadMax = -1;
if (preg_match_all('/<a class="turquoise" href="(rm\.php\?dom=Gerer&amp;fonction=dossier&amp;(.*))">/Uis', $this->body, $matches)) {
$tabUrls = array_unique($matches[1]);
$anRadMax = 0;
// Recherche de la dernière inscription
foreach ($tabUrls as $iUrl => $url) {
// On prend la dernière inscription
$tabTmp = explode('&amp;', $url);
if (substr($tabTmp[3], 0, 8) == 'an_rera=') {
$anRad=substr($tabTmp[3], 8);
if ($anRad > $anRadMax) {
$anRadMax = $anRad;
$iRadMax = $iUrl;
}
}
}
}
if ($iRadMax==-1) {
die('$iRadMax==-1 Cas impossible !'.PHP_EOL.print_r($tabUrls, true).PHP_EOL.print_r($matches, true));
}
// Accès à la dernière fiche
$url = 'http://www.cma-paris.fr/CMP/'.strtr(trim($tabUrls[$iRadMax]), array('&amp;'=>'&'));
sleep(rand(1, 2));
$page = getUrl($url, $this->cookie, '', $this->referer, false, 'www.cma-paris.fr', false, '', '', 21);
$this->body = $page['body'];
$this->codeRetour = $page['code'];
if ($this->codeRetour != '200') {
$this->libErreur = 'Erreur Artisanat 200c !';
return false;
}
$this->referer = $url;
}
$tabInsert = array();
if (preg_match('/n&deg; d\'identification \(SIREN\)<\/span><\/td>(?:.*)<td align="left" nowrap>(.*)&nbsp;<\/td>((?:.*)n&deg; de gestion rm<\/span><\/td>(?:.*)<td align="left" nowrap>(.*)<\/td>)?/Uis', $this->body, $matches)) {
$sirenLu = $matches[1]*1;
if ($siren == $sirenLu) {
$tabInsert['siren'] = $matches[1];
$tabInsert['numRM'] = @$matches[2];
} else {
$this->libErreur = 'Erreur Siren $sirenLu<>$siren !';
return false;
}
} elseif (preg_match('/<span class="rouge">aucune entreprise ne correspond &agrave; vos crit&egrave;res de recherche<\/span>/Uis', $this->body, $matches)) {
$this->libErreur = 'Erreur Artisan absent de la base Artisanat !';
return false;
} else {
$this->libErreur = 'Erreur Siren absent dans la page !';
return false;
}
$actif = null;
if (preg_match("/Renseignements.relatif(?:.*)entreprise(.*)<\/b>/Uis", $this->body, $matches)) {
switch (trim(strtr($matches[1], array(chr(160)=>'')))) {
case 'en activit&eacute;': $actif = 1; break;
case 'radi&eacute;e': $actif = 0; break;
default: print_r($matches); die(); break;
}
}
$tabInsert['actif'] = $actif;
if ($actif === null) {
$this->libErreur = 'Erreur Actif/Radié non trouvé !';
return false;
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">d&eacute;nomination<\/span><\/td>(?:.*)<td align="left" colspan="5">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['denomination'] = $matches[1];
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">d&eacute;nomination<\/span><\/td>(?:.*)<td align="left" colspan="5">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['denomination']=$matches[1];
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">sigle<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['sigle']=$matches[1];
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">&nbsp;nom&nbsp;commercial<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['nomCommercial']=$matches[1];
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">enseigne<\/span><\/td>(?:.*)<td align="left" colspan="4">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['enseigne']=$matches[1];
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">forme&nbsp;juridique<\/span><\/td>(?:.*)<td align="left" colspan="5">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['fj']=$matches[1];
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">effectif<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['effectif']=$matches[1];
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">code APRM<\/span><\/td>(?:.*)<td align="left">(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['aprm']=$matches[1];
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">d&eacute;but&nbsp;d\'activit&eacute;<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['debutActivite']=Metier_Util_Date::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches[1]), chr(160), ' ')));
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">&nbsp;activit&eacute;\(s\) exerc&eacute;e\(s\) donnant lieu &agrave; immatriculation<\/span>(?:.*)<td colspan="5">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['activite']=trim($matches[1]);
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">adresse&nbsp;de&nbsp;l\'entreprise<\/span><\/td>(?:.*)<td align="left" colspan="5">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['adresse']=trim($matches[1]);
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">code postal<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['cp']=trim($matches[1]);
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">ville<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['ville']=trim($matches[1]);
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">cessation d\'activit&eacute;<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['cessation']=Metier_Util_Date::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches[1]), chr(160), ' ')));
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">radiation du RM<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['radiation']=Metier_Util_Date::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches[1]), chr(160), ' ')));
}
$tabEtabs=array();
if (preg_match('/<!--deb Etablissements secondaires-->(?:.*)<b class="gris">Aucune inscription compl&eacute;mentaire<\/b>(?:.*)<!--fin Etablissements secondaires-->/Uis', $this->body, $matches)) {
$tabInsert['nbInscriptions']=0;
} elseif (preg_match('/<!--deb Etablissements secondaires-->(?:.*)<b class="gris">Inscription compl&eacute;mentaire<\/b>(.*)<!--fin Etablissements secondaires-->/Uis', $this->body, $matches)) {
$tabInsert['nbInscriptions']=0;
if (preg_match_all('/<tr>(?:.*)<td><img alt="" src="inter\/pixtrans\.gif" width="30" height="1"><\/td>(?:.*)<td nowrap>(?:.*)<!-- adresse -->(.*)<\/td>(?:.*)<td nowrap>(?:.*)<!-- code postal et ville -->(.*)<\/td>(?:.*)<td nowrap>(?:.*)<!-- enseigne -->(.*)<\/td>(?:.*)<td>(?:.*)<!-- debut activite -->(.*)<\/td>(?:.*)<td>(?:.*)<!-- fin activite -->(.*)<\/td>(?:.*)<\/tr>/Uis', $matches[1], $matches2)) {
foreach ($matches2[1] as $i=>$adresse) {
$tabEtabs[$i]['siren'] = $siren;
$tabEtabs[$i]['num'] = $i;
$tabEtabs[$i]['adresse'] = trim(strtr(html_entity_decode($adresse), chr(160), ' '));
$tabEtabs[$i]['cpVille'] = trim(strtr(html_entity_decode($matches2[2][$i]), chr(160), ' '));
$tabEtabs[$i]['enseigne']= trim(strtr(html_entity_decode($matches2[3][$i]), chr(160), ' '));
$tabEtabs[$i]['actDeb'] = Metier_Util_Date::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches2[4][$i]), chr(160), ' ')));
$tabEtabs[$i]['actFin'] = Metier_Util_Date::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches2[5][$i]), chr(160), ' ')));
$tabInsert['nbInscriptions']++;
}
}
}
/** Informations sur la Personne Physique **/
if (preg_match('/<a class="turquoise" href="(rm\.php\?dom=Gerer&amp;fonction=dirigeant&amp;dept_re(.*))" onclick="window\.open\(this\.href/Uis', $this->body, $matches)) {
$urlDir='http://www.cma-paris.fr/CMP/'.strtr(trim($matches[1]), array('&amp;'=>'&'));
//die($urlDir);
sleep(rand(1, 2));
$page = getUrl($urlDir, $this->cookie, '', $this->referer, false, 'www.cma-paris.fr', false, '', '', 21);
$this->body = $page['body'];
$this->codeRetour = $page['code'];
if ($this->codeRetour != '200') {
$this->libErreur = 'Erreur Artisanat 200d !';
return false;
}
$this->referer = $url;
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">nom<\/span><\/td>(?:.*)<td align="left" nowrap>(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['nom']=trim(strtr(html_entity_decode($matches[1]), chr(160), ' '));
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">pr&eacute;nom<\/span><\/td>(?:.*)<td align="left" nowrap>(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['prenom']=trim(strtr(html_entity_decode($matches[1]), chr(160), ' '));
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">nom d\'usage<\/span><\/td>(?:.*)<td align="left" nowrap>(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['nomUsage']=trim(strtr(html_entity_decode($matches[1]), chr(160), ' '));
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"(?:.*)<span class="turquoise">&nbsp;date&nbsp;de&nbsp;naissance<\/span><\/td>(?:.*)-->(?:.*)<td(?: +)align="left">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['dateNaiss']=Metier_Util_Date::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches[1]), chr(160), ' ')));
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">&nbsp;lieu&nbsp;de&nbsp;naissance<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['lieuNaiss']=trim(strtr(html_entity_decode($matches[1]), chr(160), ' '));
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">nationalit&eacute;<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['natio']=trim(strtr(html_entity_decode($matches[1]), chr(160), ' '));
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">qualit&eacute;<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['qualite']=trim(strtr(html_entity_decode($matches[1]), chr(160), ' '));
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right" nowrap><span class="turquoise">qualification&nbsp;artisanale<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['qualif']=trim(strtr(html_entity_decode($matches[1]), chr(160), ' '));
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">date&nbsp;d\'obtention<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['datequalif']=Metier_Util_Date::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches[1]), chr(160), ' ')));
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">prise de fonction<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['dateFctDeb']=Metier_Util_Date::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches[1]), chr(160), ' ')));
}
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">fin de fonction<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabInsert['dateFctFin']=Metier_Util_Date::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches[1]), chr(160), ' ')));
}
}
// Insertion en base de données
try {
$tabInsert = array('dateInsert' => date('Y-m-d H:i:s'));
$this->conn->insert('jo.artisanat', $tabInsert);
$tabInsert['id'] = $this->conn->lastInsertId();
foreach ($tabEtabs as $etab) {
$etab['dateInsert'] = $tabInsert['dateInsert'];
$this->conn->insert('jo.artisanat_etab', $etab);
}
} catch (\Doctrine\DBAL\DBALException $e) {
}
$tabInsert['dateUpdate'] = substr($tabInsert['dateInsert'], 0, 10);
unset($tabInsert['dateInsert']);
return $tabInsert;
}
}

View File

@ -1,185 +0,0 @@
<?php
class Metier_Partenaires_MBanques
{
/**
*
* @var array
*/
public $tabActivite = array(
0 => 'établissements et services autorisés à effectuer des opérations de banque',
1 => 'banques',
2 => 'banques mutualistes ou coopératives',
4 => 'caisses de crédit municipal',
5 => 'sociétés financières 5', // la distinction entre les codes 5 et 6 ne concerne que les
6 => 'sociétés financières 6', // applications internes à la Banque de France
7 => 'institutions financières spécialisées',
9 => 'entreprises d\'investissement'
);
/**
*
* @var array
*/
public $tabNatureGuichet = array(
1 => 'Guichet permanent de plein exercice domiciliataire (ouvert au public)',
2 => 'Identifiant de domiciliation (adresse active 5 jours par semaine)',
3 => 'Guichet permanent non domiciliataire (ouvert au public)',
4 => 'Libre Prestation de services (LPS)',
'A' => 'Guichet fictif',
'P' => 'Guichet fictif'
);
/**
*
* @var array
*/
public $tabOrgane = array(
0 => 'Association française des établissements de crédit et des entreprises d\'investissement',
11 => 'Association française des sociétés financières',
12 => 'Groupement des institutions financières spécialisées',
13 => 'Conférence permanente des caisses de crédit municipal',
14 => 'Association française des entreprises d\'investissement',
15 => 'Association française des entreprises d\'investissement-courtiers',
16 => 'Association française des fonds et sociétés d\'investissements et de gestion d\'actifs financiers',
17 => 'Association française des intermédiaires transmetteurs d\'ordres ',
18 => 'Fédération bancaire française',
19 => 'Ass Franc Marchés Financiers',
20 => 'Caisse nationale de crédit agricole',
21 => 'Chambre syndicale des banques populaires',
22 => 'Confédération nationale du crédit mutuel',
23 => 'Caisse centrale de crédit coopératif',
25 => 'Caisse nationale des caisses d\'épargne et de prévoyance',
27 => 'Chambre syndicale des SACI',
28 => 'Double affiliation CNCE-BFBP',
29 => 'Crédit Immobilier France Développement',
30 => 'BPCE',
98 => 'non concerné',
99 => 'en instance d\'adhésion'
);
/**
* PDO Connection with Doctrine
* @var \Doctrine\DBAL\Connection
*/
protected $conn;
/**
* Logger
* @var \Monolog\Logger
*/
protected $logger;
/**
* Banque
*/
public function __construct()
{
$this->conn = Zend_Registry::get('doctrine');
if (Zend_Registry::isRegistered('logger')) {
$this->logger = Zend_Registry::get('logger');
}
}
/**
* Banque
* @param unknown $codeBanque
* @return mixed
*/
public function getInfoBanque($codeBanque)
{
$result = array();
$stmtNb = 0;
try {
$sql = "SELECT bdfFibCodeEtab, bdfFibCodeSituation, bdfFibDenom40,
bdfFibDenom10, bdfFibCodeActivite, bdfFibCodeOrganeRepr, bdfFibDateAgrement, *
bdfFibDateRetraitAgr, bdfFibDateFinDiffus, bdfFibAdresse1, bdfFibAdresse2,
bdfFibAdresse3, CP, Ville, bdfFibCodeEtabAbsorb, bdfFibOptionIdInvar,
bdfFibDateOptIdInvar FROM insee.BDF_Etabs WHERE bdfFibCodeEtab=:code LIMIT 0,1";
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('code', $codeBanque);
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
$result = $stmt->fetch(\PDO::FETCH_ASSOC);
}
return $result;
}
/**
* Guichet
* @param unknown $codeBanque
* @param unknown $codeGuichet
*/
public function getInfoGuichet($codeBanque, $codeGuichet)
{
$result = array();
$tabBanque = $this->getInfoBanque($codeBanque);
$tabTel = $this->getTelGuichet($codeBanque, $codeGuichet);
$stmtNb = 0;
try {
$sql = "SELECT bdfFibCodeEtab, bdfFibCodeGuichet, bdfFibCodeSituation AS guichetCodeSituation,
bdfFibDenom40 AS guichetDenom40, bdfFibDenom20 AS guichetDenom20, bdfFibCodeEtabCible,
bdfFibCodeGuichetRepr, bdfFibCodeGeoInsee, bdfFibCodeLocalite1, bdfFibCodeLocalite2,
bdfFibComptoirBDF, bdfFibAdresse1 AS guichetAdresse1, bdfFibAdresse2 AS guichetAdresse2,
bdfFibAdresse3 AS guichetAdresse3, CP AS guichetCP, Ville AS guichetVille,
bdfFibAdresseSWIFT, bdfFibDateOuverture, bdfFibDateFermeture, bdfFibDateFinDiffus,
bdfFibCodeRoutage, bdfFibLibelleRIB, bdfFibNatureGuichet, bdfFibCodeAchOperBDF,
bdfFibNomComptoirBDF FROM WHERE bdfFibCodeEtab=:banque AND bdfFibCodeGuichet=:guichet LIMIT 0,1";
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('banque', $codeBanque);
$stmt->bindValue('guichet', $codeGuichet);
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
$result = $stmt->fetch(\PDO::FETCH_ASSOC);
}
return array_merge($result, $tabBanque, $tabTel);
}
/**
* Téléphone guichet
* @param unknown $codeBanque
* @param unknown $codeGuichet
*/
public function getTelGuichet($codeBanque, $codeGuichet)
{
$result = array();
$stmtNb = 0;
try {
$sql = "SELECT Tel, Fax FROM insee.Mandel_banques WHERE CodeB=:banque AND CodeG=:guichet LIMIT 0,1";
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('banque', $codeBanque);
$stmt->bindValue('guichet', $codeGuichet);
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
$result = $stmt->fetch(\PDO::FETCH_ASSOC);
}
return $result;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,254 +0,0 @@
<?php
class Metier_Partenaires_MBilansInput
{
public $CtrlEcartMax = 10;
public $Ctrl = array(
// --- Bilan Simplifié
'S' => array(
// Actif Simplifié
'010-012=013'=>'Fonds commercial (Brut,Amor/Prov et Net incohérents)',
'014-016=017'=>'Immos incorpo. autres (Brut,Amor/Prov et Net incohérents)',
'028-030=031'=>'Immos corpo. (Brut,Amor/Prov et Net incohérents)',
'040-042=043'=>'Immos finan. (Brut,Amor/Prov et Net incohérents)',
'044-048=049'=>'Total (I) Actif Immos (Brut,Amor/Prov et Net incohérents)',
'010+014+028+040=044'=>'Total Actif immobilisé Brut',
'012+016+030+042=048'=>'Total Actif immobilisé Amor/Prov',
'013+017+031+043=049'=>'Total Actif immobilisé Net',
'050-052=053'=>'Stocks MP (Brut,Amor/Prov et Net incohérents)',
'060-062=063'=>'Stocks Marchandises (Brut,Amor/Prov et Net incohérents)',
'064-066=067'=>'Avances et acomptes/cmds (Brut,Amor/Prov et Net incohérents)',
'068-070=071'=>'Créances clients et CR (Brut,Amor/Prov et Net incohérents)',
'072-074=075'=>'Autres créances (Brut,Amor/Prov et Net incohérents)',
'080-082=083'=>'VMP (Brut,Amor/Prov et Net incohérents)',
'084-086=087'=>'Disponibilités (Brut,Amor/Prov et Net incohérents)',
'088-090=091'=>' (Brut,Amor/Prov et Net incohérents)',
'092-094=095'=>'Ch. constatées d\'avance (Brut,Amor/Prov et Net incohérents)',
'096-098=099'=>'Total (II) Actif Circulant (Brut,Amor/Prov et Net incohérents)',
'110-112=113'=>'Total ACTIF (Brut,Amor/Prov et Net incohérents)',
'050+060+064+068+072+080+084+088+092=096'=>'Total Actif circulant Brut',
'052+062+066+070+074+082+086+090+094=098'=>'Total Actif circulant Amor/Prov',
'053+063+067+071+075+083+087+091+092=099'=>'Total Actif circulant Net',
'044+096=110'=>'Total ACTIF Brut',
'048+098=112'=>'Total ACTIF Amor/Prov',
'049+099=113'=>'Total ACTIF Net',
// Passif Simplifié
'120+124+126+130+132+134+136+140=142'=>'Total Capitaux Propres',
'156+164+166+172+174=176'=>'Total Dettes',
'142+154+176=180'=>'Total Passif',
'113=180'=>'Actif=Passif',
// CDR Simplifié
'210+214+218+222+224+226+230=232'=>'Total des produits d\'exploitation',
'234+236+238+240+242+244+250+252+254+256+262=264'=>'Total des charges d\'exploitation',
'210+214+218+222+224+226+230=232'=>'Total des produits d\'exploitation',
'232-264=270'=>'Résultat d\'exploitation',
'232+280+290-264-294-300-306=310'=>'Résultat d\'exploitation',
),
// --- Bilan Réel Normal
'N' => array(
// Actif immobilisé
'AA=AA2'=>'Capital souscrit non appelé',
'AB-AC=AC1'=>'Frais d\'étab. (Brut,Amor/Prov et Net incohérents)',
'AD-AE=AE1'=>'Frais de R&D (Brut,Amor/Prov et Net incohérents)',
'AF-AG=AG1'=>'Brevets (Brut,Amor/Prov et Net incohérents)',
'AH-AI=AI1'=>'Fonds commercial (Brut,Amor/Prov et Net incohérents)',
'AJ-AK=AK1'=>'Autres immo inc. (Brut,Amor/Prov et Net incohérents)',
'AL-AM=AM1'=>'Acomptes immo inc. (Brut,Amor/Prov et Net incohérents)',
'AN-AO=AO1'=>'Terrains (Brut,Amor/Prov et Net incohérents)',
'AP-AQ=AQ1'=>'Constructions (Brut,Amor/Prov et Net incohérents)',
'AR-AS=AS1'=>'Installations (Brut,Amor/Prov et Net incohérents)',
'AT-AU=AU1'=>'Autres immo corp. (Brut,Amor/Prov et Net incohérents)',
'AV-AW=AW1'=>'Immos en cours (Brut,Amor/Prov et Net incohérents)',
'AX-AY=AY1'=>'Acomptes immo corp. (Brut,Amor/Prov et Net incohérents)',
'CS-CT=CT1'=>'Immo Fi participations/équiv. (Brut,Amor/Prov et Net incohérents)',
'CU-CV=CV1'=>'Autres participations (Brut,Amor/Prov et Net incohérents)',
'BB-BC=BC1'=>'Créances rattachées à des particip. (Brut,Amor/Prov et Net incohérents)',
'BD-BE=BE1'=>'Autres titres immo. (Brut,Amor/Prov et Net incohérents)',
'BF-BG=BG1'=>'Prêts (Brut,Amor/Prov et Net incohérents)',
'BH-BI=BI1'=>'Autres Immo Financières (Brut,Amor/Prov et Net incohérents)',
'BJ-BK=BK1'=>'Total de l\'Actif Immobilisé (Brut,Amor/Prov et Net incohérents)',
'AB+AD+AF+AH+AJ+AL+AN+AP+AR+AT+AV+AX+CS+CU+BB+BD+BF+BH=BJ'=>'Total des Immobilisations (Brut)',
'AC+AE+AG+AI+AK+AM+AO+AQ+AS+AU+AW+AY+CT+CV+BC+BE+BG+BI=BK'=>'Total des Immobilisations (Amor.)',
'AC1+AE1+AG1+AI1+AK1+AM1+AO1+AQ1+AS1+AU1+AW1+AY1+CT1+CV1+BC1+BE1+BG1+BI1=BK1'=>'Total des Immobilisations (Net)',
// Actif circulant
'BL-BM=BM1'=>'Stocks de MP (Brut,Amor/Prov et Net incohérents)',
'BN-BO=BO1'=>'Stocks en cours de prod. biens (Brut,Amor/Prov et Net incohérents)',
'BP-BQ=BQ1'=>'Stocks en cours de prod. services (Brut,Amor/Prov et Net incohérents)',
'BR-BS=BS1'=>'Stocks produits finis (Brut,Amor/Prov et Net incohérents)',
'BT-BU=BU1'=>'Stocks de marchandises (Brut,Amor/Prov et Net incohérents)',
'BV-BW=BW1'=>'Avances et acomptes/cmds (Brut,Amor/Prov et Net incohérents)',
'BX-BY=BY1'=>'Créances clients (Brut,Amor/Prov et Net incohérents)',
'BZ-CA=CA1'=>'Autres créances (Brut,Amor/Prov et Net incohérents)',
'CB-CC=CC1'=>'Capital souscrit appelé non versé (Brut,Amor/Prov et Net incohérents)',
'CD-CE=CE1'=>'VMP (Brut,Amor/Prov et Net incohérents)',
'CF-CG=CG1'=>'Disponibilités (Brut,Amor/Prov et Net incohérents)',
'CH-CI=CI1'=>'Charges Const. d\'avance(Brut,Amor/Prov et Net incohérents)',
'CJ-CK=CK1'=>'Total de l\'Actif Circulant (Brut,Amor/Prov et Net incohérents)',
'BL+BN+BP+BR+BT+BV+BX+BZ+CB+CD+CF+CH=CJ'=>'Total l\'Actif Circulant (Brut)',
'BM+BO+BQ+BS+BU+BW+BY+CA+CC+CE+CG+CI=CK'=>'Total l\'Actif Circulant (Amor.)',
'BM1+BO1+BQ1+BS1+BU1+BW1+BY1+CA1+CC1+CE1+CG1+CI1=CK1'=>'Total l\'Actif Circulant (Net)',
'CL=CL2'=>'Charges / plus. ex. (Brut<>Net)',
'CM=CM2'=>'Primes de Rbt obligations (Brut<>Net)',
'CN=CN2'=>'Ecarts de conversion d\'actif (Brut<>Net)',
'CO-1A=1A1'=>'Total Actif (Brut,Amor/Prov et Net incohérents)',
'AA+BJ+CJ+CL+CM+CN=CO'=>'Total Actif Brut',
'BK+CK=1A'=>'Total Actif (Amor.)',
'AA2+BK1+CK1+CL2+CM2+CN2=1A1'=>'Total Actif Net',
// PASSIF
'DA+DB+DC+DD+DE+DF+DG+DH+DI+DJ+DK=DL'=>'Passif : s/total I (Capitaux Propres)',
'DM+DN=DO'=>'Passif : s/total II (Autres fonds propres)',
'DP+DQ=DR'=>'Passif : s/total III (Provisions)',
'DS+DT+DU+DV+DW+DX+DY+DZ+EA+EB=EC'=>'Passif : s/total IV (Dettes+Cpt régul. PCA)',
'DL+DO+DR+EC+ED=EE'=>'Total Passif',
'EE=1A1'=>'Total Actif=Total Passif',
// CDR
'FA+FB=FC'=>'Total Ventes de marchandises',
'FD+FE=FF'=>'Total Production vendue de biens',
'FG+FH=FI'=>'Total Production vendue de services',
'FJ+FK=FL'=>'Total Chiffe d\'Affaires France+Export',
'FA+FD+FG=FJ'=>'Total C.A. France',
'FB+FE+FH=FK'=>'Total C.A. Export',
'FC+FF+FI=FL'=>'Total C.A. Total (Vtes+Biens+Services)',
'FL+FM+FN+FO+FP+FQ=FR'=>'Total I : Produits d\'Exploitation',
'FS+FT+FU+FV+FW+FX+FY+FZ+GA+GB+GC+GD+GE=GF'=>'Total II :Charges d\'Exploitation',
'FR-GF=GG'=>'1 - Résultat d\'Exploitation',
'GJ+GK+GL+GM+GN+GO=GP'=>'Total V : Produits Financiers',
'GQ+GR+GS+GT=GU'=>'Total VI : Charges Financières',
'GP-GU=GV'=>'2 - Résultat Financier',
'GG+GH-GI+GV=GW'=>'3 - R.C.A.I.',
'HA+HB+HC=HD'=>'Total VII : Produits Exceptionnels',
'HE+HF+HG=HH'=>'Total VIII : Charges Exceptionnels',
'HD-HH=HI'=>'4 - Résultat Exceptionnel',
'FR+GH+GP+HD=HL'=>'CDR : Total des Produits',
'GF+GI+GU+HH+HJ+HK=HM'=>'CDR : Total des Charges',
'HL-HM=HN'=>'5 - Résultat de l\'exercice',
),
);
public $LibCodeCtrl = array(
'_0' => '-',
'_1' => 'Corrigé',
'_3' => 'Capital',
'_5' => 'Calculs', // Anciennement 2 mais maintenant >=5 correspond à une erreur grave
'_7' => 'Effectif',
'_9' => 'Unité',
);
public $LibCodeSaisie = array(
// Code Saisie Bilans par Infogreffe
'_00' => 'Bilan saisi sans anomalie',
'_01' => 'Bilan saisi avec des incohérences comptables à la source du document (issues du remettant)',
'_02' => 'Bilan avec Actif, Passif ou Compte de Résultat nul',
'_03' => 'Bilan incomplet (des pages manquent)',
'_04' => 'Bilan complet non détaillé (seuls les totaux et sous totaux sont renseignés)',
'_05' => 'Bilan reçu en double exemplaire',
'_06' => 'Bilan intermédiaire - Situation provisoire',
'_07' => 'Bilan illisible',
'_A7' => 'Bilan illisible, présentant un cadre gris très foncés (dans lesquels sont inscrits en général les totaux)',
'_B7' => 'Bilan manuscrits',
'_C7' => 'Bilan illisible, présentant des caractères trop gras',
'_D7' => 'Bilan scanné en biais ou qui présentent des pages rognées',
'_E7' => 'Bilan numérisés trop clairement (comme une imprimante dont la cartouche est presque vide)',
'_F7' => 'Bilan illisible',
'_08' => 'Bilan consolidé',
'_09' => 'Déclaration d\'impôts',
'_10' => 'Document autre que bilan',
'_11' => 'Bilan de clôture de liquidation',
'_12' => 'Bilan de Société financière',
'_13' => 'Bilan de Société d\'assurance',
'_14' => 'Bilan de Société immobilière',
'_15' => 'Bilan de Société étrangère',
// Codes saisie de Bilans spécifique às S&D
'_70' => 'Document relatif à une autre société',
);
/**
* Décompose le tableau de controle
* @param string $type (S | N)
* Type du bilan
* @return array
* Retourne un tableau
* [
* operation => Chaine de caractère contenant l'operation à effectuer sur les postes
* total => Code du poste résultant de l'operation pour comparaison
* ]
*/
protected function formules($type)
{
$formules = array();
if (array_key_exists($type, $this->Ctrl)) {
foreach ($this->Ctrl[$type] as $formule => $lib) {
$posEgal = strpos($formule, '=');
$partLeft = substr($formule, 0, $posEgal);
preg_match_all('/([A-Z0-9]+|(\+|\-))/', $partLeft, $matches);
$total = substr($formule, $posEgal+1);
$formules[] = array(
'operation' => $matches[0],
'total' => $total,
);
}
}
return $formules;
}
/**
* Control les postes
* @param string $type (S | N)
* Type du bilan
* @param array $postes
* Tableau des postes d'un bilan Code => Valeur
* @throws Exception
* @return boolean
*/
public function control($type, $postes = array())
{
$formules = $this->formules($type);
if (count($formules) > 0) {
foreach ($formules as $formule) {
$checkPostes = array();
// --- Réaliser le calcul
$calc = 0;
$signe = null;
foreach ($formule['operation'] as $operation) {
if ($operation == '-') {
$signe = '-';
} elseif ($operation == '+') {
$signe = '+';
} else {
$checkPostes[] = $operation;
// --- Vérification valeur poste
if (!array_key_exists($operation, $postes)) {
$postes[$operation] = 0;
}
// --- Calcul
if (empty($signe)) {
$calc = $postes[$operation];
} elseif ($signe == '+') {
$calc+= $postes[$operation];
} elseif ($signe == '-') {
$calc-= $postes[$operation];
}
}
}
$checkPostes[] = $formule['total'];
// --- Effecteur la vérification avec le total
if (!array_key_exists($formule['total'], $postes)) {
$total = 0;
} else {
$total = $postes[$formule['total']];
}
if ($calc != $total && !(($calc - $this->CtrlEcartMax < $total) && ($calc + $this->CtrlEcartMax > $total))) {
throw new Exception(join(';', $checkPostes));
}
}
return true;
}
return false;
}
}

View File

@ -1,286 +0,0 @@
<?php
class Metier_Partenaires_MBourse
{
/**
* SIREN
* @var string
*/
protected $siren = false;
/**
* PDO Connection with Doctrine
* @var \Doctrine\DBAL\Connection
*/
protected $conn;
/**
* Logger
* @var \Monolog\Logger
*/
protected $logger;
public function __construct()
{
$this->conn = Zend_Registry::get('doctrine');
if (Zend_Registry::isRegistered('logger')) {
$this->logger = Zend_Registry::get('logger');
}
}
/**
* Set SIREN
* @param string $id
*/
public function setCompany($id)
{
$this->siren = $id;
}
/**
* Libellé de la source
*
* @param string $source
* @return string
*/
public function getLibSource($code)
{
switch ($code) {
case 'B':
return 'Business Wire';
break;
case 'H':
return 'Hugin';
break;
case 'A':
return 'ActusNews';
break;
case 'D':
return 'DiRelease';
break;
case 'E':
return 'Les Echos';
break;
default:
return 'N/C';
break;
}
}
/**
* Vérifie la validité de la structure d'un code ISIN
*
* @param string $isin
* @return boolean
*/
public function isIsin($isin)
{
if (strlen(trim($isin))) {
$cle = substr($isin, -1);
$isinLeft = substr($isin, 0, strlen($isin)-1);
$letter2number = array(
'A'=>10, 'B'=>11, 'C'=>12, 'D'=>13, 'E'=>14,
'F'=>15, 'G'=>16, 'H'=>17, 'I'=>18, 'J'=>19,
'K'=>20, 'L'=>21, 'M'=>22, 'N'=>23, 'O'=>24,
'P'=>25, 'Q'=>26, 'R'=>27, 'S'=>28, 'T'=>29,
'U'=>30, 'V'=>31, 'W'=>32, 'X'=>33, 'Y'=>34, 'Z'=>35
);
$isinConvertion = strtr($isinLeft, $letter2number);
$sum = '';
$sumFinal = 0;
for ($i=0; $i<strlen($isinConvertion); ++$i) {
$sum .= (($i % 2) ? 1 : 2) * $isinConvertion[$i];
}
for ($i=0; $i<strlen($sum); ++$i) {
$sumFinal += $sum[$i];
}
if ($sumFinal % 10) {
$cleVerif = ((int)($sumFinal / 10) + 1) * 10 - $sumFinal;
} else {
$cleVerif = 0;
}
if ($cle == $cleVerif) {
return true;
} else {
return false;
}
} else {
return false;
}
}
/**
* Obtenir le code ISIN à partir d'un siren
* @param string $siren
* @return string
*/
public function getCodeIsin($siren = false)
{
if (!$siren) {
$siren = $this->siren;
}
$nb = 0;
try {
$sql = "SELECT isin FROM jo.infos_entrep WHERE siren=:siren AND isin!='' LIMIT 0,1";
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('siren', $siren);
$stmt->execute();
$nb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($nb > 0) {
$result = $stmt->fetch(\PDO::FETCH_ASSOC);
return trim($result['isin']);
}
return '';
}
/**
* Obtenir le SIREN à partir d'un code ISIN
* @param string $isin
* @return string
*/
public function getCodeSiren($isin)
{
$nb = 0;
try {
$sql = "SELECT siren FROM jo.infos_entrep WHERE isin=:isin AND siren!=0 LIMIT 0,1";
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('isin', $isin);
$stmt->execute();
$nb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($nb > 0) {
$result = $stmt->fetch(\PDO::FETCH_ASSOC);
return trim($result['siren']);
}
return '';
}
/**
* A partir d'un siren, récupère les informations règlementés
* @param string $siren
* @param integer $id
* @return array
*/
public function getInfosReg($siren = false, $id = null)
{
if (!$siren) {
$siren = $this->siren;
}
$isin = $this->getCodeIsin($siren);
$result = array();
if ($isin != '') {
$sqlID = '';
if (null !== $id) {
$sqlID =" AND id=$id";
}
$bodaccSql = "SELECT id, companyName, companyIsin, companySiren, companyWebSite,
pressReleaseDate, pressReleaseTitle, pressReleaseText, pressReleaseHtml,
pressReleaseAttachments, pressReleaseUrl, source, dateInsert
FROM presse.articles
WHERE companyIsin=:isin $sqlID ORDER BY pressReleaseDate DESC";
$nb = 0;
try {
$bodaccStmt = $this->conn->prepare($bodaccSql);
$bodaccStmt->bindValue('isin', $isin);
$bodaccStmt->execute();
$nb = $bodaccStmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($nb > 0) {
while($ann = $bodaccStmt->fetch(\PDO::FETCH_ASSOC)) {
$format = 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'],
);
if (null != $id) {
$format['communique'] = $ann['pressReleaseText'];
$format['communiqueHtml'] = $ann['pressReleaseHtml'];
}
$result[] = $format;
}
}
}
return $result;
}
/**
* A partir d'un siren, récupère les informations boursières
*
* @param string $siren
* @return array
*/
public function getInfosBourse($siren=false)
{
if (!$siren) {
$siren = $this->siren;
}
$isin = $this->getCodeIsin($siren);
$result = array();
if ($isin != '') {
$sql = "SELECT siren, raisonSociale, adresse, effectif, code_sicovam, code_mnemo,
code_bloomberg, code_datastream, code_isin, logo, code_ric, dateIntroduction,
dateDerAG, dateRadiation, autre_isin, eligibleSRD, eligiblePEA, nombreTitres,
tel1, tel2, fax1, fax2, web, mail, marche, placeCotation, description, secteur,
activite, activiteDet, dirigeants, actionnaires, chiffresTrim, c.autre,
c.`date`, c.`heure`, c.`open` , c.`high` , c.`low` , c.`close` , c.`volume`
FROM sdv1.bourse_isin b, sdv1.bourse_cours c
WHERE code_isin=:isin AND b.code_isin=c.isin AND c.autre IN('','e','f','g','m','s','u')
ORDER BY c.`date` DESC, c.`heure` DESC LIMIT 0,1";
$nb = 0;
try {
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('isin', $isin);
$stmt->execute();
$nb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($nb > 0) {
$result = $stmt->fetch(\PDO::FETCH_ASSOC);
$courSql = "SELECT min(close) AS coursMin, avg(close) AS coursMoy,
max(close) AS coursMax FROM sdv1.bourse_cours
WHERE isin=:isin GROUP BY isin";
$courStmt = $this->conn->prepare($courSql);
$courStmt->bindValue('isin', $isin);
$courStmt->execute();
if ($courStmt->rowCount() > 0) {
$cour = $courStmt->fetch(\PDO::FETCH_ASSOC);
$result['coursMin'] = $cour['coursMin'];
$result['coursMoy'] = $cour['coursMoy'];
$result['coursMax'] = $cour['coursMax'];
}
}
}
return $result;
}
}

View File

@ -1,553 +0,0 @@
<?php
class Metier_Partenaires_MCadastre
{
/**
* Siren
* @var string
*/
protected $siren = null;
/**
* PDO Connection with Doctrine
* @var \Doctrine\DBAL\Connection
*/
protected $conn;
/**
* Logger
* @var \Monolog\Logger
*/
protected $logger;
/**
* Droits des locaux
* @var array
*/
private static $codeDroit = array(
'A' => 'Locataire-Attributaire', // (associé avec P)
'B' => 'Bailleur à construction', // (associé avec R)
'C' => 'Fiduciaire',
'D' => 'Domanier', // (associé avec F)
'E' => 'Emphytéote', // (associé avec P)
'F' => 'Foncier', // (associé avec D ou T)
'G' => 'Gérant, mandataire, gestionnaire',
'H' => 'Associé dans une société en transparence fiscale', // (associé avec P)
'J' => 'Jeune agriculteur',
'K' => 'Antichrésiste', // (associé avec P)
'L' => 'Fonctionnaire logé',
'M' => 'Occupant d\'une parcelle appartenant au département de Mayotte ou à l\'Etat', // (associé avec P)
'N' => 'Nu-propriétaire', // (associé avec U)
'O' => 'Autorisation d\'occupation temporaire (70 ans)',
'P' => 'Propriétaire',
'Q' => 'Gestionnaire taxe sur les bureaux (Ile-de-France)',
'R' => 'Preneur à construction', // (associé avec B)
'S' => 'Syndic de copropriété',
'T' => 'Tenuyer', // (associé avec F)
'U' => 'Usufruitier', // (associé avec N)
'V' => 'Bailleur d\'un bail à réhabilitation', // (associé avec W)
'W' => 'Preneur d\'un bail à réhabilitation', // (associé avec V)
'X' => 'La Poste Occupant et propriétaire',
'Y' => 'La Poste Occupant et non propriétaire',
);
/**
* Nature des locaux
* @var array
*/
private static $natureLocaux = array(
'AP' => 'Appartement',
'AT' => 'Antenne téléphone',
'AU' => 'Autoroute',
'CA' => 'Commerce sans boutique',
'CB' => 'Local divers',
'CD' => 'Dépendance commerciale',
'CH' => 'Chantier',
'CM' => 'Commerce avec boutique',
'DC' => 'Dépendance lieux communs',
'DE' => 'Dépendance bâtie isolée',
'LC' => 'Local commun',
'MA' => 'Maison',
'ME' => 'Maison exceptionnelle',
'MP' => 'Maison partagée par une limite territoriale',
'PP' => 'ND',
'SM' => 'Sol de maison',
'U' => 'Etablissement industriel',
'U1' => 'Gare',
'U2' => 'Gare - Triage',
'U3' => 'Gare - Atelier matériel',
'U4' => 'Gare - Atelier magasin',
'U5' => 'Gare - Dépôt Titulaire',
'U6' => 'Gare - Dépôt Réel',
'U7' => 'Gare - Matériel transport',
'U8' => 'Gare - Entretien matériel roulant',
'U9' => 'Gare - Station usine',
'UE' => 'Transformateur électrique',
'UG' => 'Appareil à gaz',
'UN' => 'Usine nucléaire',
'US' => 'Etablissement industriel',
);
/**
* Code Affectation des PEV (Partie d'EValuation)
* @var array
*/
private static $PEV = array(
'A' => 'Locaux commerciaux/Biens divers passibles de la TH', // Nouveau en 2014
'B' => 'Bâtiment industriel', // lié à CCOEVA = A OU E
'C' => 'Commerce',
'E' => 'Locaux commerciaux/Biens divers non passibles de TH et TP', // Nouveau en 2014
'H' => 'Habitation',
'K' => 'Locaux administratifs non passibles de la TH',
'L' => 'Hôtel',
'P' => 'Professionnel',
'S' => 'Biens divers passibles de la TH',
'T' => 'Terrain industriel', // lié à CCOEVA = A OU E
);
/**
* Code Groupes Personnes Morales
* @var array
*/
private static $grpPersonnesMorales = array(
// Si suivi de la lettre "A" : personnes soumises à la CAAA (caisses d'assurance accidents agricoles) en Alsace et en Moselle
0 => 'Personne morale', // non remarquable
1 => 'Etat',
2 => 'Région',
3 => 'Département',
4 => 'Commune',
5 => 'Office HLM',
6 => 'Personne morale représentant des sociétés',
7 => 'Copropriétaire',
8 => 'Associé',
9 => 'Etablissement public ou organismes assimilés',
);
/**
* Code Formes Juridiques spécifiques du Cadastre
* @var array
*/
private static $FjCad = array(
'F001' => 'Les copropriétaires',
'F002' => 'Les associés de la SCI (en transparence fiscale)',
'F003' => 'Professionnels très pauvres du foncier',
);
/**
* Nature des parcelles (cultures)
* @var array
*/
private static $natureParcelles = array(
'AB' => 'Terrains à batir',
'AG' => 'Terrains d\'agrément',
'B' => 'Bois',
'BF' => 'Futaies feuillues',
'BM' => 'Futaies mixtes',
'BO' => 'Oseraies',
'BP' => 'Peupleraies',
'BR' => 'Futaies résineuses',
'BS' => 'Taillies sous futaies',
'BT' => 'Taillies simples',
'CA' => 'Carrières',
'CH' => 'Chemins de fer, Canaux de Navigation',
'E' => 'Eaux',
'J' => 'Jardins',
'L' => 'Landes',
'LB' => 'Landes Boisées',
'P' => 'Prés',
'PA' => 'Pâtures ou Pâturages',
'PC' => 'Pacages ou Pâtis',
'PE' => 'Prés d\'embouche',
'PH' => 'Herbages',
'PP' => 'Prés, Pâtures ou Herbages plantes',
'S' => 'Sols',
'T' => 'Terre',
'TP' => 'Terres plantées',
'VE' => 'Vergers',
'VI' => 'Vignes',
);
/**
* Cadastre
* @param \Doctrine\DBAL\Connection $conn
*/
public function __construct($conn = null)
{
$this->conn = Zend_Registry::get('doctrine');
if (Zend_Registry::isRegistered('logger')) {
$this->logger = Zend_Registry::get('logger');
}
}
/**
* Identifiant
* @param string $companyId
*/
public function setId($companyId)
{
$this->siren = $companyId;
}
/**
* Type de personne morale au cadastre
* @param string $ccogrm
* @return string
*/
public function getTypeRM($ccogrm)
{
$ccogrm = trim($ccogrm);
if (array_key_exists($ccogrm, self::$grpPersonnesMorales)) {
$lib = self::$grpPersonnesMorales[$ccogrm];
} elseif (array_key_exists(intval(substr($ccogrm, 0, 1)), self::$grpPersonnesMorales)) {
$lib = self::$grpPersonnesMorales[intval(substr($ccogrm, 0, 1))];
if (substr($ccogrm, 1, 1) == 'A') {
$lib.= " soumis à CAAA (Caisses d'Assurance Accidents Agricoles) en Alsace et en Moselle";
}
} else {
$lib = '';
}
return $lib;
}
/**
* Nature des locaux ou parcelles
* @param string $code
* @param string $type
* @return string
*/
public function getNatureLabel($code, $type = 'local')
{
if ($type == 'local') {
if (array_key_exists($code, self::$PEV)) {
return self::$PEV[$code];
}
} elseif ($type == 'parcelle') {
if (array_key_exists($code, self::$natureParcelles)) {
return self::$natureParcelles[$code];
}
}
return '';
}
/**
* Locaux : Propriétés baties
* @param string $siren
* @return array
*/
public function getLocaux($siren = null)
{
if ($siren === null) {
$siren = $this->siren;
}
$locaux = array();
$sql = "SELECT e.INTCIF, e.DNUPER, e.CCOGRM, e.DDENPM, e.DSIPMO, e.DFORME, e.DSIREN, e.DLIGN3, e.DLIGN4, e.DLIGN5, e.DLIGN6, e.CCODEP, e.CCOCOM AS companyCCOCOM,
l.CCODRO, l.CCOCOM, l.CCOPRF, l.CCOSEC, l.DNUPLA, l.DNUBAT, l.DESC, l.DNIV, l.DPOR, l.CCONLC, l.CCOAFF0, l.DSUPOD0, l.CCOAFF1, l.DSUPOD1, l.CCOAFF2, l.DSUPOD2, l.CCOAFF3, l.DSUPOD3, l.CCOAFF4, l.DSUPOD4, l.CCOAFF5, l.DSUPOD5, l.CCOAFF6, l.DSUPOD6, l.CCOAFF7, l.DSUPOD7, l.CCOAFF8, l.DSUPOD8, l.CCOAFF9, l.DSUPOD9, l.CCODEP, l.DLICOM, l.CCORIV, l.CNAVOI, l.DLIVOI, l.DNUVOI, l.DLTNUV
FROM sdv1.cad_perloc l, sdv1.cad_permor e WHERE e.DSIREN='$siren' AND e.INTCIF=l.INTCIF AND e.DNUPER=l.DNUPER";
$nb = 0;
try {
$stmt = $this->conn->executeQuery($sql);
$nb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($nb > 0) {
while ($loc = $stmt->fetch(\PDO::FETCH_ASSOC)) {
$format = array(
'idCentre' => $loc['INTCIF'],
'idPmMajic' => $loc['DNUPER'],
'pmGroupe' => trim($loc['CCOGRM']),
'pmGroupeLib' => $this->getTypeRM(trim($loc['CCOGRM'])),
'pmNom' => trim($loc['DDENPM']),
'pmSigle' => trim($loc['DSIPMO']),
'pmFJ' => $loc['DFORME'],
'siren' => trim($loc['DSIREN']),
'pmAdrL3' => trim($loc['DLIGN3']),
'pmAdrL4' => trim($loc['DLIGN4']),
'pmAdrL5' => trim($loc['DLIGN5']),
'pmAdrL6' => trim($loc['DLIGN6']),
'pmAdrDep' => trim($loc['CCODEP']),
'pmAdrCom' => trim($loc['companyCCOCOM']),
'localDroit' => trim($loc['CCODRO']),
'localDroitLib' => self::$codeDroit[trim($loc['CCODRO'])],
'localDep' => trim($loc['CCODEP']),
'localCom' => trim($loc['CCOCOM']),
'localComLib' => trim($loc['DLICOM']),
'localComAbs' => trim($loc['CCOPRF']),
'localRivoli' => trim($loc['CCORIV']),
'localNumVoie' => trim($loc['DNUVOI']),
'localIndVoie' => trim($loc['DLTNUV']),
'localTypVoie' => trim($loc['CNAVOI']),
'localLibVoie' => trim($loc['DLIVOI']),
'localSection' => trim($loc['CCOSEC']),
'localNumPlan' => trim($loc['DNUPLA']),
'localNumBat' => trim($loc['DNUBAT']),
'localEntEsc' => trim($loc['DESC']),
'localNiveau' => trim($loc['DNIV']),
'localEntEsc' => trim($loc['CCONLC']),
'localPEV' => array(),
);
// Calcul de surface
$surface = 0;
for ($j = 0; $j < 10; $j++) {
$pevCode = trim($loc['CCOAFF'.$j]);
$pevSurf = intval(trim($loc['DSUPOD'.$j]));
if ($pevCode != '' && $pevSurf > 0) {
$format['localPEV'][$j] = array(
'pevCode' => $pevCode,
'pevType' => self::$PEV[$pevCode],
'pevSurface' => $pevSurf,
);
$surface+= $pevSurf;
}
}
$format['localSurface'] = $surface;
$locaux[] = $format;
}
}
return $locaux;
}
/**
* Parcelles : Propriétés non baties
* @param string $siren
* @return array
*/
public function getParcelles($siren = null)
{
if ($siren === null) {
$siren = $this->siren;
};
$parcelles = array();
$sql = "SELECT e.INTCIF, e.DNUPER, e.CCOGRM, e.DDENPM, e.DSIPMO, e.DFORME, e.DSIREN, e.DLIGN3, e.DLIGN4, e.DLIGN5, e.DLIGN6, e.CCODEP, e.CCOCOM AS companyCCOCOM,
p.CCODRO, p.CCOCOM, p.CCOPRF, p.CCOSEC, p.DNUPLA, p.DCNPAR, p.DSGRPF0, p.DCNSUF0, p.DSGRPF1, p.DCNSUF1, p.DSGRPF2, p.DCNSUF2, p.DSGRPF3, p.DCNSUF3, p.DSGRPF4, p.DCNSUF4, p.DSGRPF5, p.DCNSUF5, p.DSGRPF6, p.DCNSUF6, p.DSGRPF7, p.DCNSUF7, p.DSGRPF8, p.DCNSUF8, p.DSGRPF9, p.DCNSUF9, p.CCODEP, p.DLICOM, p.CCORIV, p.CNAVOI, p.DLIVOI, p.DNUVOI, p.DLTNUV
FROM sdv1.cad_perpar p, sdv1.cad_permor e
WHERE e.DSIREN='$siren' AND e.INTCIF=p.INTCIF AND e.DNUPER=p.DNUPER";
$nb = 0;
try {
$stmt = $this->conn->executeQuery($sql);
$nb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($nb > 0) {
while ($loc = $stmt->fetch(\PDO::FETCH_ASSOC)) {
$format = array(
'idCentre' => $loc['INTCIF'],
'idPmMajic' => $loc['DNUPER'],
'pmGroupe' => trim($loc['CCOGRM']),
'pmGroupeLib' => $this->getTypeRM(trim($loc['CCOGRM'])),
'pmNom' => trim($loc['DDENPM']),
'pmSigle' => trim($loc['DSIPMO']),
'pmFJ' => $loc['DFORME'],
'siren' => trim($loc['DSIREN']),
'pmAdrL3' => trim($loc['DLIGN3']),
'pmAdrL4' => trim($loc['DLIGN4']),
'pmAdrL5' => trim($loc['DLIGN5']),
'pmAdrL6' => trim($loc['DLIGN6']),
'pmAdrDep' => trim($loc['CCODEP']),
'pmAdrCom' => trim($loc['companyCCOCOM']),
'parcelDroit' => trim($loc['CCODRO']),
'parcelDroitLib' => self::$codeDroit[trim($loc['CCODRO'])],
'parcelDep' => trim($loc['CCODEP']),
'parcelCom' => trim($loc['CCOCOM']),
'parcelComLib' => trim($loc['DLICOM']),
'parcelComAbs' => trim($loc['CCOPRF']),
'parcelRivoli' => trim($loc['CCORIV']),
'parcelNumVoie' => trim($loc['DNUVOI']),
'parcelIndVoie' => trim($loc['DLTNUV']),
'parcelTypVoie' => trim($loc['CNAVOI']),
'parcelLibVoie' => trim($loc['DLIVOI']),
'parcelSection' => trim($loc['CCOSEC']),
'parcelNumPlan' => trim($loc['DNUPLA']),
'parcelSurface' => trim($loc['DCNPAR'])*1,
'parcelTer' => array(),
);
// Calcul de surface
$surface = 0;
for ($j = 0; $j < 10; $j++) {
$pevCode = trim($loc['DSGRPF'.$j]);
$pevSurf = trim($loc['DCNSUF'.$j])*1;
if ($pevCode != '' && $pevSurf > 0) {
$format['parcelTer'][$j] = array(
'terCode' => $pevCode,
'terType' => self::$natureParcelles[$pevCode],
'terSurface' => $pevSurf,
);
$surface+= $pevSurf;
}
}
$format['parcelSurfaceCalc'] = $surface;
$parcelles[] = $format;
}
}
return $parcelles;
}
/**
* Nombre d'éléments et surface total
* @param string $types (local, parcelle)
* @param string $droit (P:Propriétaire, L:Locataire)
* @return mixed
* false | [itemTotal, surfaceTotal]
*/
public function getSurfaceTotal($type = 'local', $droit = 'P')
{
if ($type == 'local') {
$droitSql = " AND l.CCODRO='P'";
if ($droit != 'P') {
$droitSql = " AND l.CCODRO!='P'";
}
$sql = "SELECT count(*) AS itemTotal, (SUM(l.DSUPOD0) + SUM(l.DSUPOD1) + SUM(l.DSUPOD2) + SUM(l.DSUPOD3) + SUM(l.DSUPOD4) + SUM(l.DSUPOD5) + SUM(l.DSUPOD7) + SUM(l.DSUPOD8) + SUM(l.DSUPOD9)) AS surfaceTotal
FROM sdv1.cad_perloc l, sdv1.cad_permor e
WHERE e.DSIREN='".$this->siren."' AND e.INTCIF=l.INTCIF AND e.DNUPER=l.DNUPER".$droitSql;
} elseif ($type == 'parcelle') {
$droitSql = " AND p.CCODRO='P'";
if ($droit != 'P') {
$droitSql = " AND p.CCODRO!='P'";
}
$sql = "SELECT count(*) AS itemTotal, sum(p.DCNPAR) AS surfaceTotal
FROM sdv1.cad_perpar p, sdv1.cad_permor e
WHERE e.DSIREN='".$this->siren."' AND e.INTCIF=p.INTCIF AND e.DNUPER=p.DNUPER".$droitSql;
}
$results = array();
$nb = 0;
try {
$stmt = $this->conn->executeQuery($sql);
$nb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($nb > 0) {
$results = $stmt->fetchAll(\PDO::FETCH_ASSOC);
}
return $results;
}
/**
* List des éléments du patrimoine
* @return array
*/
public function patrimoine()
{
$locauxSql = "SELECT 'local' AS type, " .
"l.CCODRO AS role, " .
"l.DNUVOI AS adresseNum, " .
"l.DLTNUV AS adresseInd, " .
"l.CNAVOI AS adresseType, " .
"l.DLIVOI AS adresseLib, " .
"l.CCODEP AS departement, " .
"l.CCOCOM AS communeCode, " .
"l.DLICOM AS communeLib, " .
"l.CCOSEC AS section, " .
"l.DNUPLA AS planNum, " .
"l.CCORIV AS fantoir, " .
"l.DNUBAT AS batiment, " .
"l.DESC AS ent, " .
"l.DNIV AS niveau, " .
"(l.DSUPOD0 + l.DSUPOD1 + l.DSUPOD2 + l.DSUPOD3 + l.DSUPOD4 + l.DSUPOD5 + l.DSUPOD7 + l.DSUPOD8 + l.DSUPOD9) AS surfaceTotal, " .
"l.CCOAFF0 AS nature0, " .
"l.DSUPOD0 AS surface0, " .
"l.CCOAFF1 AS nature1, " .
"l.DSUPOD1 AS surface1, " .
"l.CCOAFF2 AS nature2, " .
"l.DSUPOD2 AS surface2, " .
"l.CCOAFF3 AS nature3, " .
"l.DSUPOD3 AS surface3, " .
"l.CCOAFF4 AS nature4, " .
"l.DSUPOD4 AS surface4, " .
"l.CCOAFF5 AS nature5, " .
"l.DSUPOD5 AS surface5, " .
"l.CCOAFF6 AS nature6, " .
"l.DSUPOD6 AS surface6, " .
"l.CCOAFF7 AS nature7, " .
"l.DSUPOD7 AS surface7, " .
"l.CCOAFF8 AS nature8, " .
"l.DSUPOD8 AS surface8, " .
"l.CCOAFF9 AS nature9, " .
"l.DSUPOD9 AS surface9, " .
"l.dateInsert " .
"FROM sdv1.cad_perloc l, sdv1.cad_permor e " .
"WHERE e.DSIREN='$this->siren' AND e.INTCIF=l.INTCIF AND e.DNUPER=l.DNUPER";
$parcellesSql = "SELECT 'parcelle' AS type, " .
"p.CCODRO AS role, " .
"p.DNUVOI AS adresseNum, " .
"p.DLTNUV AS adresseInd, " .
"p.CNAVOI AS adresseType, " .
"p.DLIVOI AS adresseLib ," .
"p.CCODEP AS departement, " .
"p.CCOCOM AS communeCode, " .
"p.DLICOM AS communeLib, " .
"p.CCOSEC AS section, " .
"p.DNUPLA AS planNum, " .
"p.CCORIV AS fantoir, " .
"'' AS batiment, " .
"'' AS ent, " .
"'' AS niveau, " .
"p.DCNPAR AS surfaceTotal, " .
"p.DSGRPF0 AS nature0, " .
"p.DCNSUF0 AS surface0, " .
"p.DSGRPF1 AS nature1, " .
"p.DCNSUF1 AS surface1, " .
"p.DSGRPF2 AS nature2, " .
"p.DCNSUF2 AS surface2, " .
"p.DSGRPF3 AS nature3, " .
"p.DCNSUF3 AS surface3, " .
"p.DSGRPF4 AS nature4, " .
"p.DCNSUF4 AS surface4, " .
"p.DSGRPF5 AS nature5, " .
"p.DCNSUF5 AS surface5, " .
"p.DSGRPF6 AS nature6, " .
"p.DCNSUF6 AS surface6, " .
"p.DSGRPF7 AS nature7, " .
"p.DCNSUF7 AS surface7, " .
"p.DSGRPF8 AS nature8, " .
"p.DCNSUF8 AS surface8, " .
"p.DSGRPF9 AS nature9, " .
"p.DCNSUF9 AS surface9, " .
"p.dateInsert " .
"FROM sdv1.cad_perpar p, sdv1.cad_permor e " .
"WHERE e.DSIREN='$this->siren' AND e.INTCIF=p.INTCIF AND e.DNUPER=p.DNUPER";
$sql = "SELECT * FROM ( ($locauxSql) UNION ALL ($parcellesSql) ) results";
$nb = 0;
try {
$stmt = $this->conn->executeQuery($sql);
$nb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
$list = array();
if ($nb > 0) {
while ($result = $stmt->fetch(\PDO::FETCH_ASSOC)) {
// Libellé role
$result['roleLib'] = self::$codeDroit[trim($result['role'])];
$list[] = $result;
}
}
return $list;
}
}

View File

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

View File

@ -1,138 +0,0 @@
<?php
class Metier_Partenaires_MGreffes
{
/**
* PDO Connection with Doctrine
* @var \Doctrine\DBAL\Connection
*/
protected $conn;
/**
* Logger
* @var \Monolog\Logger
*/
protected $logger;
/**
* Greffes
*/
public function __construct()
{
$this->conn = Zend_Registry::get('doctrine');
if (Zend_Registry::isRegistered('logger')) {
$this->logger = Zend_Registry::get('logger');
}
}
/**
* Retourne Identite Greffe
* @param string $siren
*/
public function getIdentite($siren)
{
$sql = "SELECT id, siren, nom, nomCommercial, adresse, adresse2, cp, ville, enseigne, siege,
fj, fjLib, naf, nafLib, numRC, numRC2, typeRCS, numGreffe, libGreffe, dateCreation,
dateRadiation, dateCloture, ca, res, eff, dateInsert
FROM jo.greffes_identite WHERE siren=:siren";
$nb = 0;
try {
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('siren', $siren);
$stmt->execute();
$nb = $stmt->rowCount();
} catch(\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($nb > 0) {
$result = $stmt->fetch(PDO::FETCH_ASSOC);
return array(
'id' => $result['id'],
'Pertinence' => 100,
'Siret' => $result['siren'].'00000',
'Siege' => $result['siege'],
'Nom' => $result['nom'],
'Nom2' => $result['nomCommercial'],
'Sigle' => '',
'Enseigne' => $result['ens'],
'Adresse' => $result['adresse'],
'Adresse2' => $result['adresse2'],
'CP' => $result['cp'],
'Ville' => $result['ville'],
'Tel' => '',
'Fax' => '',
'FJ' => $result['fj'],
'FJLib' => $result['fjLib'],
'Siren' => $result['siren'],
'Nic' => '00000',
'Actif' => 0,
'NafEtab' => $result['naf'],
'NafEtabLib' => $result['nafLib'],
'NafEnt' => $result['naf'],
'NafEntLib' => $result['nafLib'],
'NumRC' => $result['numRC'],
'NumRC2' => $result['numRC2'],
'NumGreffe' => $result['numGreffe'],
'DateCreation' => $result['dateCreation'],
'DateRadiation' => $result['dateRadiation'],
'DateCloture' => $result['dateCloture'],
'DateUpdate' => substr($result['dateInsert'], 0, 10),
);
}
return false;
}
/**
* Cession
* @param string $siren
*/
public function getInfosCessions($siren)
{
$sql = "SELECT id, siren, nom, libGreffe, inscrit, etat, dateImmat, dateJuge, dateConv,
dateLJS, dateInventaire, dateBodacc, caDeclare, effectif, descriptif, pdfLink, pdfSize,
pdfVer, pdfPage, descDateDepot, dateLimite, mandataire, dateInsert
FROM jo.greffes_cessions WHERE siren=:siren";
$nb = 0;
try {
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('siren', $siren);
$stmt->execute();
$nb = $stmt->rowCount();
} catch(\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($nb > 0) {
if ($nb > 1) {
$mail = new Metier_Common_Mail();
$mail->send('debug@scores-decisions.com', 'ylenaour@scores-decisions.com',
"classMGreffes.php : Debug getInfosCessions $siren", "Plus de 1 cession pour ce siren");
}
$result = $stmt->fetch(\PDO::FETCH_ASSOC);
return array(
'cessJuge' => $result['etat'],
'cessDateJuge' => $result['dateJuge'],
'cessDateConv' => $result['dateConv'],
'cessDateLJS' => $result['dateLJS'],
'cessDateInv' => $result['dateInventaire'],
'cessDateBod' => $result['dateBodacc'],
'cessCAdec' => $result['caDeclare'],
'cessEffectif' => $result['effectif'],
'cessDesc' => $result['descriptif'],
'cessDateDesc' => $result['descDateDepot'],
'cessDateLim' => $result['dateLimite'],
'cessMand' => $result['mandataire'],
);
}
return false;
}
}

View File

@ -1,760 +0,0 @@
<?php
require_once 'framework/common/curl.php';
require_once __DIR__ . '/MMapFunctions.php';
class Metier_Partenaires_MMap
{
/**
* Logger
* @var \Monolog\Logger
*/
protected $logger;
private $referer ='';
private $body = '';
private $header = '';
private $cookie = '';
private $codeRetour = 0;
public $codeRetourG = 0; // Code retour de l'api Google
public $codeRetourY = 0; // Code retour de l'api Yahoo
public $codeRetourM = 0; // Code retour de l'api Mappy
public $codeRetourC = 0; // Code retour de l'api Cloudmade
public $geocodeur='';
public $latitudeDec= 0; // Latitude en Décimal
public $latitudeDeg= 0; // Latitude en Dégrés
public $longitudeDec= 0; // Longitude en Décimal
public $longitudeDeg= 0; // Longitude en Dégrés
public $altitude = null; // Altitude en mètres
public $l93x = null; // Lambert 93, coordonnée X
public $l93y = null; // Lambert 93, coordonnée Y
public $precision = 0;
public $adresseValidee='';
public $enCache=false;
// private $apiKeyG='ABQIAAAAuKBtUyFonYJBl1fqfc78tRQvADPcxwXf3Q2QIE-M32vuSkrxiBRLUHDB_YSLeTscTDeWRKM_wILaaw';
private $apiKeyG='AIzaSyBfyIMaVwm1nn8AupBf-asC816R71LZl8g';
// private $apiKey='ABQIAAAAuKBtUyFonYJBl1fqfc78tRT4Qe_2x2fax4Crd4sBzQI-tDkl3BRm2l2feTV5Lnx0Ah-aTIlwHtglpA';
private $apiKeyY='klII0gzV34Ho2TCsN3XiXeh4No033AifxMeDXfFXj8TDCXO3WAtOLj9c74VsV45HcII-';
private $apiKeyC='ae5216123e414fcd84b8ca9a0f43a68c';
/**
* Flag to get remote data
* @var string
*/
protected $remote = false;
/**
* PDO Connection with Doctrine
* @var \Doctrine\DBAL\Connection
*/
protected $conn;
public function __construct()
{
$this->conn = Zend_Registry::get('doctrine');
}
/**
* Active la récupération des données distantes
*/
public function setRemote()
{
$this->remote = true;
}
/*
http://platform.beta.mapquest.com/geocoding/v1/address?key=YOUR_KEY_HERE&location=Lancaster,PA&callback=renderGeocode
http://platform.beta.mapquest.com/geocoding/v1/address?key=YOUR_KEY_HERE&callback=renderOptions&inFormat=kvp&outFormat=json&location=77 rue lost al lann, 29000 quimper,france
Client ID: 83955
Email Address: buzuk77@aim.com
Registry Password: tU2cA4qV
Forums User Name:
JS/AS3 Key: Fmjtd%7Clu61nuuzlu%2Cr0%3Do5-5a1sd
*/
/*
GeoCodingHandler.ashx?addr=
<wsdl:import namespace="http://dev.virtualearth.net/webservices/v1/imagery/contracts" location="http://dev.virtualearth.net/webservices/v1/metadata/imageryservice/imageryservice1.wsdl" />
API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999
*/
public function geoCodeAdrCpVilleM($adresse, $cp, $ville, $pays='')
{
if ($pays=='') {
$pays='France';
}
if (preg_match('/^([0-9]{1,4} )(.*)$/', $adresse, $matches)) {
$adresseVoie=trim($matches[2]);
$adresseNum=trim($matches[1]);
} else {
$adresseVoie=trim($adresse);
$adresseNum='';
}
$url='http://axe.mappy.com/services/loc/get.aspx?countryName='.urlencode($pays).'&townName='.urlencode($ville).'&wayName='.urlencode($adresseVoie).'&number='.urlencode($adresseNum).'&namedPlaceSearch=0&interactive=1&auth=maiaTest&format=json';
$page=getUrl($url, '', '', '', false, '', '', 3);
$res=json_decode($page['body']);
$result=$res->geocode->answer;
//print_r($page);
//print_r($result);die($url);
//$this->codeRetourM=
switch ($result->geocode_level->code) {
case 0: $this->precision=0; break; // No geocoding
case 1: $this->precision=1; break; // Country level geocoding
case 2: $this->precision=4; break; // Town level geocoding
case 3: $this->precision=6; break; // Way level geocoding
case 4: $this->precision=8; break; // Road element level geocoding
default: /*die('Precisions Inconnue : "'.$result->geocode_level->code.'"='.$result->geocode_level->label.PHP_EOL.$page['body']);*/ break;
}
$this->adresseValidee=@preg_replace('/ +/', ' ', strtoupper(str_replace('&apos;', "'", trim(htmlspecialchars_decode($result->road_element->number.' '.$result->way->name, ENT_QUOTES)))));
$this->codeRetourM=@$result->global_score;
/*
$result->postal_code->postal_code
$result->subcountry->iso_code // 11
$result->subcountry->language
$result->subcountry->Ile-de-France
$result->town->language] => FRE
$result->town->name] => Nanterre
$result->town->official_code] => 92050
$result->town->postal_codes->postal_code] => 92000
*/
/*
0 Unknown location. (Since 2.59)
1 Country level accuracy. (Since 2.59)
2 Region (state, province, prefecture, etc.) level accuracy. (Since 2.59)
3 Sub-region (county, municipality, etc.) level accuracy. (Since 2.59)
4 Town (city, village) level accuracy. (Since 2.59)
5 Post code (zip code) level accuracy. (Since 2.59)
6 Street level accuracy. (Since 2.59)
7 Intersection level accuracy. (Since 2.59)
8 Address level accuracy. (Since 2.59)
*/
$this->latitudeDec=@$result->location->coordinates->y;
$this->longitudeDec=@$result->location->coordinates->x;
$this->latitudeDeg=dec2dms($this->latitudeDec);
$this->longitudeDeg=dec2dms($this->longitudeDec);
$this->geocodeur='Mappy';
//if ($this->codeRetourM>0)
return true;
return false;
}
public function geoCodeAdrCpVilleC($adresse, $cp, $ville, $pays='')
{
$this->geocodeur='Cloudmade';
$this->precision=0;
$fileName=LOG_PATH.'/geoCodeur'.$this->geocodeur.'.log';
$tmp=@explode('|', file_get_contents($fileName));
$nbQuery=@$tmp[1]*1;
if ($pays=='') {
$pays='France';
}
/*if (preg_match('/^([0-9]{1,4} )(.*)$/', $adresse, $matches)) {
$adresseVoie=trim($matches[2]);
$adresseNum=trim($matches[1]);
} else {
$adresseVoie=trim($adresse);
$adresseNum='';
}*/
$url='http://beta.geocoding.cloudmade.com/v3/'.$this->apiKeyC.'/api/geo.location.search.2?format=json&source=OSM&enc=UTF-8&limit=10&locale=fr&q='.urlencode("$adresse $cp $ville $pays");
$page=getUrl($url, '', '', '', false, '', '', 15);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
$nbQuery++;
file_put_contents($fileName, $this->geocodeur.'|'.$nbQuery.'|'.$this->codeRetour."|$url|".date('Y-m-d H:i:s').'|'.$this->body.PHP_EOL);
$res=@json_decode(utf8_decode($page['body']));
if ($this->codeRetour==200 && $res->status->success==1) {
$geoCodage=$res->places[0];
$this->codeRetourC=1;
switch ($geoCodage->addressType) {
case 'housenumber': $this->precision=8; break;
case 'street': $this->precision=6; break;
case 'zip': $this->precision=5; break;
case 'city': $this->precision=4; break;
case 'district': $this->precision=3; break;
case 'sight': $this->precision=0; break;
default:
//print_r($res);
//die('addressType inconnue : '.$geoCodage->addressType.PHP_EOL);
break;
}
$this->adresseValidee=@trim(strtoupper(preg_replace('/\s+/', ' ', $geoCodage->houseNumber.' '.$geoCodage->street.', '.
$geoCodage->zip.' '.$geoCodage->city.', '.str_replace(',', ' ', $geoCodage->country))));
$this->latitudeDec=$geoCodage->position->lat;
$this->longitudeDec=$geoCodage->position->lon;
$this->latitudeDeg=dec2dms($this->latitudeDec);
$this->longitudeDeg=dec2dms($this->longitudeDec);
/*print_r($res);
echo $this->adresseValidee.PHP_EOL;
echo 'lat='.$this->latitudeDec.PHP_EOL;
echo 'lon='.$this->longitudeDec.PHP_EOL;
echo 'precis='.$this->precision.PHP_EOL;
die($url);*/
if ($this->precision>0) {
return true;
}
}
//print_r($page);
//print_r($res);
//die($url);
return false;
}
private function geoCodeAdrCpVilleY($address)
{
$this->geocodeur='Yahoo';
$this->precision=0;
$fileName=LOG_PATH.'/geoCodeur'.$this->geocodeur.'.log';
$tmp=@explode('|', file_get_contents($fileName));
$nbQuery=@$tmp[1]*1;
$url='http://query.yahooapis.com/v1/public/yql?q=select+*+from+geo.placefinder+where+text%3D%22'.rawurlencode($address).'%22&format=xml';
$_result = false;
$page=getUrl($url, '', '', '', false, '', '', 3);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
$nbQuery++;
file_put_contents($fileName, $this->geocodeur.'|'.$nbQuery.'|'.$this->codeRetour."|$url|".date('Y-m-d H:i:s').'|'.$this->body.PHP_EOL);
if ($this->codeRetour==200) {
/*Réponse Yahoo = <?xml version="1.0" encoding="UTF-8"?>
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:count="1" yahoo:created="2013-09-25T13:52:43Z" yahoo:lang="en-US"><results><Result><quality>71</quality>
<latitude>45.782864</latitude><longitude>4.828002</longitude><offsetlat>45.782864</offsetlat><offsetlon>4.828002</offsetlon><radius>400</radius>
<name/><line1>Rue Jacques Louis-Henon</line1><line2>69004 Lyon</line2><line3/><line4>France</line4><house/><street>Rue Jacques Louis-Henon</street><xstreet/>
<unittype/><unit/><postal>69004</postal><neighborhood>4E Arrondissement</neighborhood><city>Lyon</city><county>Rhône</county><state>Rhone-Alpes</state>
<country>France</country><countrycode>FR</countrycode><statecode/><countycode/><uzip>69004</uzip><hash/><woeid>20068131</woeid><woetype>11</woetype></Result></results>
</query><!-- total: 90 -->
<!-- engine8.yql.bf1.yahoo.com -->
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:count="1" yahoo:created="2014-05-20T18:13:30Z" yahoo:lang="en-US"><results><Result><quality>87</quality>
<addressMatchType>POINT_ADDRESS</addressMatchType>
<latitude>48.281769</latitude><longitude>4.09041</longitude><offsetlat>48.281731</offsetlat><offsetlon>4.09047</offsetlon><radius>400</radius>
<name/><line1>38B, Rue Maurice Romagon</line1><line2>10800 Saint-Julien-les-Villas</line2><line3/><line4>France</line4><house>38B</house><street>Rue Maurice Romagon</street><xstreet/>
<unittype/><unit/><postal>10800</postal><neighborhood/><city>Saint-Julien-les-Villas</city><county>Aube</county><state>Champagne-Ardenne</state><country>France</country><countrycode>FR</countrycode><statecode/><countycode>10</countycode><uzip>10800</uzip><hash>D49A3CF6AD6DEB1C</hash><woeid>12722975</woeid><woetype>11</woetype></Result></results></query><!-- total: 49 -->
<!-- engine4.yql.bf1.yahoo.com -->
*/
//echo "Yahoo :'$address'".PHP_EOL.$this->body.PHP_EOL;
if (preg_match('! yahoo:count="0" !U', $this->body, $_match)) {
$this->codeRetourY='ZERO_RESULTS';
//echo $this->codeRetourY.PHP_EOL;
return false;
} elseif (preg_match('!<quality>(.*)</quality>(?:.*)<latitude>(.*)</latitude><longitude>(.*)</longitude>!U', $this->body, $_match)) {
if (preg_match('!<quality>(.*)</quality><addressMatchType>(.*)</addressMatchType><latitude>(.*)</latitude><longitude>(.*)</longitude>!U', $this->body, $_match2)) {
$quality=$_match2[1];
$qualityTxt=$_match2[2];
$this->codeRetourY='OK';
if ($quality>87 || $qualityTxt=='POINT_ADDRESS') {
$this->precision=9;
} // POI or Coordinate
elseif ($quality>82 || $qualityTxt=='INTERPOLATED') {
$this->precision=8;
} // Address (N° compris dans une Tranche d'adresse)
elseif ($quality>75) {
$this->precision=-7;
} // Intersection
elseif ($quality>70) {
$this->precision=-6;
} // Street match
elseif ($quality>40) {
$this->precision=-5;
} // Zip Code
elseif ($quality>30) {
$this->precision=-4;
} // Town
elseif ($quality>20) {
$this->precision=-3;
} // Sous/Région
elseif ($quality>10) {
$this->precision=-2;
} // Region/state
elseif ($quality> 8) {
$this->precision=-1;
} // Country
else {
$this->precision=0; // Not an address
$this->codeRetourY='ZERO_RESULTS';
}
} else {
$quality=$_match[1];
$this->codeRetourY='OK';
if ($quality>87) {
$this->precision=9;
} // POI or Coordinate
elseif ($quality>82) {
$this->precision=8;
} // Address
elseif ($quality>75) {
$this->precision=7;
} // Intersection
elseif ($quality>70) {
$this->precision=6;
} // Street match
elseif ($quality>40) {
$this->precision=5;
} // Zip Code
elseif ($quality>30) {
$this->precision=4;
} // Town
elseif ($quality>20) {
$this->precision=3;
} // Sous/Région
elseif ($quality>10) {
$this->precision=2;
} // Region/state
elseif ($quality> 8) {
$this->precision=1;
} // Country
else {
$this->precision=0; // Not an address
$this->codeRetourY='ZERO_RESULTS';
}
}
$this->latitudeDec=$_match[2];
$this->longitudeDec=$_match[3];
$this->latitudeDeg=dec2dms($this->latitudeDec);
$this->longitudeDeg=dec2dms($this->longitudeDec);
if (preg_match('!<line1>(.*)</line1>(?:|.*)<line2>(.*)</line2>(?:|.*)<line4>(.*)</line4>!Ui', $this->body, $_match)) {
$adrValide=utf8_decode($_match[1].', '.$_match[2].', '.$_match[3]);
$this->adresseValidee=strtoupper(str_replace('&apos;', "'", htmlspecialchars_decode($adrValide, ENT_QUOTES)));
$this->codeRetourY='OK';
} elseif (preg_match('!<line2>(.*)</line2>(?:|.*)<line4>(.*)</line4>!Ui', $this->body, $_match)) {
$adrValide=utf8_decode($_match[2].', '.$_match[3]);
$this->adresseValidee=strtoupper(str_replace('&apos;', "'", htmlspecialchars_decode($adrValide, ENT_QUOTES)));
$this->codeRetourY='OK';
} else {
$this->codeRetourY='INVALID_REQUEST';
}
}
if ($this->latitudeDec==0 && ($this->longitudeDec==0 || $this->precision==0)) {
//die('Réponse Yahoo = '.$this->body.PHP_EOL);
return false;
}
return true;//array("lat"=>$lat,"lng"=>$lng,"address"=>$address);
} else {
$this->codeRetourY='INVALID_REQUEST';
}
return false;
}
private function geoCodeAdrCpVilleG($adresse, $cp, $ville, $pays, $proxy='')
{
$this->geocodeur='Google';
$this->precision=0;
$fileName=LOG_PATH.'/geoCodeur'.$this->geocodeur.'.log';
$tmp=@explode('|', file_get_contents($fileName));
$nbQuery=@$tmp[1]*1;
//$url='http://maps.googleapis.com/maps/api/geocode/xml?address='.urlencode($adresse.', '.$cp.' '. $ville.', '.$pays).'&sensor=false';
$url='https://maps.googleapis.com/maps/api/geocode/xml?address='.urlencode($adresse.', '.$cp.' '. $ville.', '.$pays).'&sensor=false&key='.$this->apiKeyG;
$page=getUrl($url, '', '', $this->referer, false, 'maps.googleapis.com', $proxy, 3);
//print_r($page);
//die($url);
//getUrl($url, $strCookies='', $postData='', $referer='', $debug=false, $host='', $proxy='', $timeout=0) {
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
$nbQuery++;
file_put_contents($fileName, $this->geocodeur.'|'.$nbQuery.'|'.$this->codeRetour."|$url|".date('Y-m-d H:i:s').'|'.$this->body.PHP_EOL);
if ($this->codeRetour==200) {
$this->codeRetourG=@getTextInHtml($this->body, '<GeocodeResponse>', '<status>', '</status>');
$location_type=@getTextInHtml($this->body, '<geometry>', '<location_type>', '</location_type>');
switch ($location_type) {
case 'ROOFTOP': // Precise geocode for which we have location information accurate down to street address precision.
$this->precision=8;
break;
case 'RANGE_INTERPOLATED': // Approximation (usually on a road) interpolated between two precise points (such as intersections). Interpolated results are generally returned when rooftop geocodes are unavailable for a street address.
$this->precision=7;
break;
case 'GEOMETRIC_CENTER': // Geometric center of a result such as a polyline (for example, a street) or polygon (region).
$this->precision=6;
break;
case 'APPROXIMATE': // indicates that the returned result is approximate.
$this->precision=4;
break;
default:
if ($this->codeRetourG=='ZERO_RESULTS') { // Indicates that the geocode was successful but returned no results.
$this->precision=0;
} // This may occur if the geocode was passed a non-existent address or a latlng in a remote location.
break;
}
$this->adresseValidee=strtoupper(str_replace('&apos;', "'", htmlspecialchars_decode(utf8_decode(@getTextInHtml($this->body, '<result', '<formatted_address>', '</formatted_address>')), ENT_QUOTES)));
if (preg_match('!<geometry>(?:.*)<location>(?:.*)<lat>(.*)</lat>(?:.*)<lng>(.*)</lng>(?:.*)</location>!Uis', $this->body, $matches2)) {
$this->latitudeDec=@$matches2[1];
$this->longitudeDec=@$matches2[2];
$this->latitudeDeg=dec2dms($this->latitudeDec);
$this->longitudeDeg=dec2dms($this->longitudeDec);
}
/*
200 G_GEO_SUCCESS No errors occurred; the address was successfully parsed and its geocode has been returneds->geocodeur='Google';
400 G_GEO_BAD_REQUEST A directions request could not be successfully parsed.
500 G_GEO_SERVER_ERROR A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.
601 G_GEO_MISSING_QUERY The HTTP q parameter was either missing or had no value. For geocoding requests, this means that an empty address was
specified as input. For directions requests, this means that no query was specified in the input.
602 G_GEO_UNKNOWN_ADDRESS No corresponding geographic location could be found for the specified address. This may be due to the fact that the address
is relatively new, or it may be incorrect.
603 G_GEO_UNAVAILABLE_ADDRESS The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual
reasons.
604 G_GEO_UNKNOWN_DIRECTIONS The GDirections object could not compute directions between the points mentioned in the query. This is usually because
there is no route available between the two points, or because we do not have data for routing in that region.
610 G_GEO_BAD_KEY The given key is either invalid or does not match the domain for which it was given.
620 G_GEO_TOO_MANY_QUERIES The given key has gone over the requests limit in the 24 hour period.
<GeocodeResponse><status>OK</status><result><type>street_address</type><formatted_address>2 Route du Cure, 92410 Ville-d'Avray, France</formatted_address><address_component><long_name>2</long_name><short_name>2</short_name><type>street_number</type></address_component><address_component><long_name>Route du Cure</long_name><short_name>Route du Cure</short_name><type>route</type></address_component><address_component><long_name>Ville-d'Avray</long_name><short_name>Ville-d'Avray</short_name><type>locality</type><type>political</type></address_component><address_component><long_name>Hauts-de-Seine</long_name><short_name>92</short_name><type>administrative_area_level_2</type><type>political</type></address_component><address_component><long_name>Île-de-France</long_name><short_name>IDF</short_name><type>administrative_area_level_1</type><type>political</type></address_component><address_component><long_name>France</long_name><short_name>FR</short_name><type>country</type><type>political</type></address_component><address_component><long_name>92410</long_name><short_name>92410</short_name><type>postal_code</type></address_component><geometry><location><lat>48.8252802</lat><lng>2.1821693</lng></location>
/*
"OK" indicates that no errors occurred; the address was successfully parsed and at least one geocode was returned.
"OVER_QUERY_LIMIT" indicates that you are over your quota.
"REQUEST_DENIED" indicates that your request was denied, generally because of lack of a sensor parameter.
"" generally indicates that the query (address or latlng) is missing.
UNKNOWN_ERROR indicates that the request could not be processed due to a server error. The request may succeed if you try again.
*/
if ($this->codeRetourG=='OK') {
return true;
} elseif ($this->codeRetourG=='ZERO_RESULTS' || // http://maps.googleapis.com/maps/api/geocode/xml?address=0044+RUE+JACQUES+-+LOUIS+HENON%2C+69004+LYON+4EME%2C+France&sensor=false
$this->codeRetourG=='INVALID_REQUEST' || // http://maps.googleapis.com/maps/api/geocode/xml?address=0028+B+RUE+MGR+DE+BEAUMONT%2C+97400+SAINT+DENIS%2C+La+R%E9union&sensor=false
$this->codeRetourG=='OVER_QUERY_LIMIT') {
return false;
} else {
return false;
}
}
return false;
}
/** Géocodage d'une adresse
0 Unknown location. (Since 2.59)
1 Country level accuracy. (Since 2.59)
2 Region (state, province, prefecture, etc.) level accuracy. (Since 2.59)
3 Sub-region (county, municipality, etc.) level accuracy. (Since 2.59)
4 Town (city, village) level accuracy. (Since 2.59)
5 Post code (zip code) level accuracy. (Since 2.59)
6 Street level accuracy. (Since 2.59)
7 Intersection level accuracy. (Since 2.59)
8 Address level accuracy. (Since 2.59)
9 Address level accuracy +++
**/
public function geoCodeAdresse($adrNum, $adrIndRep, $adrTypeVoieCourt, $adrTypeVoieLong, $adrLibVoie, $cp, $ville='', $pays='France', $codeRivoli='')
{
$tabRep = array();
$adrNum = str_pad($adrNum, 4, 0, STR_PAD_LEFT);
$adresse = addslashes(trim(preg_replace('/ +/', ' ', "$adrNum $adrIndRep $adrTypeVoieLong $adrLibVoie")));
$adresseCourt = addslashes(trim(preg_replace('/ +/', ' ', "$adrNum $adrIndRep $adrTypeVoieCourt $adrLibVoie")));
$ville = addslashes($ville);
$sql = "SELECT lat, lon, l93_x, l93_y, alt, precis, adresseValidee, IF(dateUpdate>dateInsert, dateUpdate, dateInsert) AS dateInsert
FROM jo.zonageXY WHERE (address='$adresse' OR address='$adresseCourt') AND adr_cp='$cp' AND adr_ville='$ville'
ORDER BY dateInsert DESC LIMIT 1";
$stmt = $this->conn->prepare($sql);
$stmt->execute();
// Existe dans la base
if ($stmt->rowCount() > 0) {
$zonage = $stmt->fetch(\PDO::FETCH_ASSOC);
$this->precision=$zonage['precis']*1;
$this->adresseValidee=strtoupper($zonage['adresseValidee']);
$this->latitudeDec=$zonage['lat']*1;
$this->longitudeDec=$zonage['lon']*1;
$this->l93x=$zonage['l93_x'];
$this->l93y=$zonage['l93_y'];
$this->altitude=$zonage['alt'];
if ($this->altitude==null && $this->precision>5) {
if ($this->remote) {
$alt=$this->getAltitude($this->latitudeDec, $this->longitudeDec);
$this->altitude=$alt['alt'];
}
}
if ($this->l93x==null && $this->precision>5) {
$tmp=geos2lambert93($this->latitudeDec, $this->longitudeDec);
$this->l93x=$tmp['x_93'];
$this->l93y=$tmp['y_93'];
}
if ($this->altitude<>null || $this->l93x<>null) {
$tabUpdate=array(
'alt'=>$this->altitude,
'l93_x'=>$this->l93x,
'l93_y'=>$this->l93y
);
try {
$this->conn->update('jo.zonageXY', $tabUpdate, array(
'address' => $adresse,
'adr_cp' => $cp,
'adr_ville' => $ville,
));
} catch (\Doctrine\DBAL\DBALException $e) {}
}
$this->latitudeDeg = dec2dms($this->latitudeDec);
$this->longitudeDeg = dec2dms($this->longitudeDec);
$this->enCache=true;
$ligne='En base : '.print_r($zonage, true);
}
//Acces Distant
elseif ($this->remote) {
$this->enCache=false;
$retG=$retY=$retC=$retM=false;
if (substr($codeRivoli, 0, 3)*1==971) {
$pays='Guadeloupe';
} elseif (substr($codeRivoli, 0, 3)*1==972) {
$pays='Martinique';
} elseif (substr($codeRivoli, 0, 3)*1==973) {
$pays='Guyane';
} elseif (substr($codeRivoli, 0, 3)*1==974) {
$pays='La Réunion';
} elseif (substr($codeRivoli, 0, 3)*1==975) {
$pays='Saint-Pierre-et-Miquelon';
} elseif (substr($codeRivoli, 0, 3)*1==976) {
$pays='Mayotte';
} elseif (substr($codeRivoli, 0, 3)*1==977) {
$pays='Saint-Martin';
} elseif (substr($codeRivoli, 0, 3)*1==978) {
$pays='Saint-Barthélémy';
} elseif (substr($codeRivoli, 0, 3)*1==985) {
$pays='Saint-Pierre-et-Miquelon';
}//98501 à 98502 St Pierre et Miquelon (anciens codes non compatibles 97501 à 97502)
elseif (substr($codeRivoli, 0, 3)*1==986) {
$pays='Wallis-et-Futuna';
} // 98601 à 98617 Mayotte (anciens codes non compatibles : 98501 à 98517)
elseif (substr($codeRivoli, 0, 3)*1==987) {
$pays='Polynésie française';
} // 98711 à 98758,98799 Polynésie française (sans changement)
elseif (substr($codeRivoli, 0, 3)*1==988) {
$pays='Nouvelle Calédonie';
} // 98801 à 98832 Nouvelle Calédonie (sans changement)
elseif (substr($codeRivoli, 0, 3)*1==989) {
$pays='Wallis-et-Futuna';
} // 98911 à 98913 Wallis et Futuna (anciens codes non compatibles : 98611 à 98613)
/*elseif (substr($codeRivoli,0,2)*1>96 && substr($codeRivoli,0,2)*1<99)
die("Code Rivoli non géré : '$codeRivoli'".PHP_EOL);*/
$retG=$this->geoCodeAdrCpVilleG($adresse, $cp, $ville, $pays);
if ($this->codeRetourG=='OVER_QUERY_LIMIT' || $this->precision==0) {
$retY=$this->geoCodeAdrCpVilleY("$adresse, $cp $ville, $pays");
if ($this->codeRetourY=='OVER_QUERY_LIMIT' || $this->codeRetourY<>'OK' || $this->precision==0) {
$retC=$this->geoCodeAdrCpVilleC($adresse, $cp, $ville, $pays);
}
// $retM=$this->geoCodeAdrCpVilleM($adresse, $cp, $ville, $pays);
}
// On récupère l'altitude
//echo ('Précision : '. $this->precision.PHP_EOL);
if ($this->precision>5 && $this->latitudeDec<>0 && $this->longitudeDec<>0) {
$alt=$this->getAltitude($this->latitudeDec, $this->longitudeDec);
$this->altitude=$alt['alt'];
}
$tmp=geos2lambert93($this->latitudeDec, $this->longitudeDec);
$this->l93x=$tmp['x_93'];
$this->l93y=$tmp['y_93'];
if ($retG || $retY || $retM || $retC) {
$adresse=stripslashes(strtoupper(trim(preg_replace('/ +/', ' ', "$adrNum $adrIndRep $adrTypeVoieLong $adrLibVoie"))));
$ville=stripslashes($ville);
$tabInsert = array(
'address' => $adresse,
'adr_cp' => $cp,
'adr_ville' => $ville,
'adrNum' => $adrNum,
'adrIndRep' => $adrIndRep,
'adrTypeVoie' => $adrTypeVoieCourt,
'adrLibVoie' => $adrLibVoie,
'rivoli' => $codeRivoli,
'adresseValidee'=> $this->adresseValidee,
'lat' => $this->latitudeDec,
'lon' => $this->longitudeDec,
'l93_x' => $this->l93x,
'l93_y' => $this->l93y,
'alt' => $this->altitude,
'precis' => $this->precision,
'source' => $this->geocodeur,
'dateInsert' => date('YmdHis'),
);
/** Insertion de l'adresse que si elle est possible **/
if ($this->latitudeDec<>0 && $this->longitudeDec<>0 && $this->precision>0) {
$this->conn->insert('jo.zonageXY', $tabInsert);
} else {
$this->precision=$this->latitudeDec=$this->longitudeDec=0;
$this->adresseValidee='';
$this->latitudeDeg=$this->longitudeDeg='';
$ligne="Erreur Geocodage : $adrNum, $adrIndRep, $adrTypeVoieCourt, $adrTypeVoieLong, $adrLibVoie, $cp, $ville, $pays, $codeRivoli, ".$this->body;
//die('Latitude et longitude à zero :'.$this->latitudeDec.PHP_EOL.$this->longitudeDec.PHP_EOL);
}
//echo ('Après Insert : '.$this->latitudeDec.PHP_EOL.$this->longitudeDec.PHP_EOL);
$ligne='Accès Google : '.print_r($tabInsert, true);
} else {
$this->precision=$this->latitudeDec=$this->longitudeDec=0;
$this->adresseValidee='';
$this->latitudeDeg=$this->longitudeDeg='';
$ligne="Erreur : $adrNum, $adrIndRep, $adrTypeVoieCourt, $adrTypeVoieLong, $adrLibVoie, $cp, $ville, $pays, $codeRivoli, ".$this->body;
}
}
}
/** Retourne la distance en kilomètres entre 2 coordonnées GPS à la surface de la terre
**
** @param double $latA Latitude du point A en décimal
** @param double $lonA Longitude du point A en décimal
** @param double $latB Latitude du point B en décimal
** @param double $lonB Longitude du point B en décimal
** @param string $sphere Type de sphère
** @return unknown
**/
public function distance($latA=0, $lonA=0, $latB=0, $lonB=0, $sphere='GRS80')
{
switch ($sphere) {
case 'HAYFORD': $R=6378.388; // Demi grand axe ou Rayon de la sphère International Hayford 1909 en Kms
$f=1/297; // Aplatissement
break;
case 'PICARD': $R=6371.598; // Demi grand axe ou Rayon de la sphère Picard en Kms
break;
case 'GRS80':
default: $R=6378.137; // Demi grand axe ou Rayon de la sphère GRS80 en Kms
$f=1/298.257222101;
break;
}
$a=pi()/180;
$e=$latA*$a;
$f=$lonA*$a;
$g=$latB*$a;
$h=$lonB*$a;
$j=acos(cos($e)*cos($g)*cos($f)*cos($h) + cos($e)*sin($f)*cos($g)*sin($h) + sin($e)*sin($g));
return round($R*$j, 3); // div par 1.852 ==> résultat en miles nautiques
}
/** Retourne la distance en mètres entre 2 points sur une surface plane
** @param double $x1 Coordonnée X du point 1 en décimal
** @param double $y1 Coordonnée Y du point 1 en décimal
** @param double $x2 Coordonnée X du point 2 en décimal
** @param double $y2 Coordonnée Y du point 2 en décimal
** @return double
**/
public function distanceLambert($x1, $y1, $x2, $y2)
{
return sqrt(pow($x1-$x2, 2) + (pow($y1-$y2, 2)));
}
/** Retourne l'altitude en mètres d'un point GPS. Shuttle Radar Topography Mission (SRTM) elevation data (resolution 90mx90m)
** @url http://ws.geonames.org/export/web-services.html
** @param double $tabLatLon Latitude du point ou Tableau de Points avec latitudes longitudes array('lat'=>x,'lon'=>y)
** @param double $lon Longitude ou false si tableau
** @return double
**/
public function getAltitude($tabLatLon, $lon=false)
{
if ($lon) {
/*
Elevation - SRTM3
Shuttle Radar Topography Mission (SRTM) elevation data. SRTM consisted of a specially modified radar system that flew onboard the Space Shuttle Endeavour during an 11-day mission in February of 2000. The dataset covers land areas between 60 degrees north and 56 degrees south.
This web service is using SRTM3 data with data points located every 3-arc-second (approximately 90 meters) on a latitude/longitude grid. Documentation : Nasa
Webservice Type : REST
Url : api.geonames.org/srtm3?
Parameters : lat,lng;
sample area: ca 90m x 90m Result : a single number giving the elevation in meters according to srtm3, ocean areas have been masked as "no data" and have been assigned a value of -32768
Example http://api.geonames.org/srtm3?lat=50.01&lng=10.2&username=demo
This service is also available in XML and JSON format :api.geonames.org/srtm3XML?lat=50.01&lng=10.2&username=demo api.geonames.org/srtm3JSON?lat=50.01&lng=10.2&username=demo
The text version of the service also accepts a list of lat/lng for the parameters 'lats' and 'lngs'. On the free server the number of points per call is limited to 20, for the premium service the limit is 2000:
[0] => the daily limit of 30000 credits 78.31.45.206 has been exceeded. Please throttle your requests or use the commercial service
[1] => daily
[2] => 30000
[3] => 78.31.45.206
*/
$url="http://ws.geonames.org/srtm3?lat=$tabLatLon&lng=$lon&username=scores_et_decisions&password=bj10sx";
$page=getUrl($url, '', '', '', false, '', '', 3);
$alt=trim($page['body']);
if (preg_match('/the (.*) limit of (.*) credits(.*) has been exceeded\. Please throttle your requests or use the commercial service/Uis', $alt, $matches)) {
print_r($matches);
$alt=null;
} elseif ($page['code']<>200 || $alt==-32768) {
if ($page['code']<>200) {
echo '==========================>'. $page['code']. '<=================================='.PHP_EOL;
}
$alt=null;
}
return array('lat'=>$tabLatLon,'lon'=>$lon,'alt'=>$alt);
} else {
$LatLon='';
$Lats='';
$Lons='';
foreach ($tabLatLon as $i=>$latlon) {
$lat=$latlon['lat'];
$lon2=$latlon['lon'];
if ($i>0) {
$LatLon.="%0D%0A";
$Lats.=',';
$Lons.=',';
}
$LatLon.="$lat%2C$lon2";
$Lats.=$lat;
$Lons.=$lon;
}
}
$url='http://www.fredorando.fr/Pages/altitude.php';
$post=array('LatLon'=>$LatLon,'qui'=>'');
$page=getUrl($url, '', $post, '', false, '', '', 3);
$body=$page['body'];
$tabRet=false;
if (preg_match('/<BODY>\s+IP\:(?:.*)<br\/>\s+url\:(?:.*)<br\/>(?:.*)<br\/>(?:.*)<br\/>(.*)<br\/>(?:.*)<a href="http/Uis', $body, $matches)) {
$tabRet=array();
$tabTmp=explode('<br />', $matches[1]);
foreach ($tabTmp as $i=>$ret) {
$ret2=explode(',', trim($ret));
$alt=$ret2[2];
if ($alt==-32768) {
$alt=null;
}
$tabRet[$i]=@array('lat'=>$ret2[0],'lon'=>$ret2[1],'alt'=>$alt);
}
unset($tabRet[$i]);
}
if ($lon) {
return $tabRet[0];
}
return $tabRet;
}
}

View File

@ -1,404 +0,0 @@
<?php
function supprDecimales($dec)
{
if ($dec>0) {
return floor($dec);
} else {
return ceil($dec);
}
}
function dec2dms($dec)
{
$d = supprDecimales($dec);
$m = supprDecimales(($dec - $d) * 60);
$s = abs(round(((($dec - $d) * 60) - $m) * 60));
$m = abs($m);
return $d.'°'.$m."'".$s.'"';
}
/**/
function ALG0001($phi, $e)
{
$temp = (1 - ($e * sin($phi))) / (1 + ($e * sin($phi)));
$L = log(tan((pi()/4) + ($phi/2)) * pow($temp, ($e/2)));
return $L;
}
/** Calcul de la latitude à partir de la latitude isométrique
**/
function ALG0002($L, $e, $epsilon)
{
$phi[0] = 2 * atan(exp($L)) - (pi()/2);
$i=0;
do {
$i++;
$temp = (1 + ($e * sin($phi[$i-1]))) / (1 - ($e * sin($phi[$i-1])));
$phi[$i] = 2 * atan(pow($temp, ($e/2)) * exp($L)) - pi()/2;
} while (abs($phi[$i] - $phi[$i - 1]) >= $epsilon);
return $phi[$i];
}
/** Transformation de coordonnées en projection conique conforme de Lambert, en coordonnées géographiques
** @param double $X Coordonnée X en projection conique conforme de Lambert du point
** @param double $Y Coordonnée Y en projection conique conforme de Lambert du point
** @param double $n Exposant de la projection
** @param double $c Constante de la projection
** @param double $Xs Coordonnée Xs en projection du pôle
** @param double $Ys Coordonnée Ys en projection du pôle
** @param double $lambdac Longitude de l'origine par rapport au méridien origine
** @param double $e Première excentricité de l'ellipsoïde
** @param double $epsilon Tolérance de convergence
** @return array lambda Longitude par rapport au méridien origine
** phi Latitude
**/
function ALG0004($X, $Y, $n, $c, $Xs, $Ys, $lambdac, $e, $epsilon)
{
$R = sqrt(pow(($X - $Xs), 2) + pow(($Y - $Ys), 2));
$gamma = atan(($X - $Xs)/($Ys - $Y));
$lambda = $lambdac + ($gamma / $n);
$L = (-1 / $n) * log(abs($R/$c));
$phi = ALG0002($L, $e, $epsilon);
$coords['lambda']=$lambda;
$coords['phi']=$phi;
return $coords;
}
/** Transformation des coordonnées géographiques ellipsoïdales en coordonnées cartésiennes
**
**/
function ALG0009($lambda, $phi, $he, $a, $e)
{
$N = ALG0021($phi, $a, $e);
$X = ($N + $he) * cos($phi) * cos($lambda);
$Y = ($N + $he) * cos($phi) * sin($lambda);
$Z = ($N * (1 - $e*$e) + $he) * sin($phi);
$coords['X']=$X;
$coords['Y']=$Y;
$coords['Z']=$Z;
return $coords;
}
/**/
function ALG0012($X, $Y, $Z, $a, $e, $epsilon)
{
$lambda = atan($Y/$X);
$P = sqrt($X*$X + $Y*$Y);
$phi[0] = atan($Z/ ($P * (1 - (($a*$e*$e)/sqrt($X*$X + $Y*$Y + $Z*$Z)))));
$i = 0;
do {
$i++;
$temp = pow((1 - ($a * $e*$e * cos($phi[$i - 1])/($P * sqrt(1 - $e*$e * sin($phi[$i - 1])*sin($phi[$i - 1]))))), -1);
$phi[$i] = atan($temp * $Z / $P);
} while (abs($phi[$i] - $phi[$i - 1]) >= $epsilon);
$phix = $phi[$i];
$he = ($P/cos($phix)) - ($a/sqrt(1 - $e*$e * sin($phix)*sin($phix)));
$coords['lambda']=$lambda;
$coords['phi']=$phix;
$coords['he']=$he;
return $coords;
}
/** Transformation d'un jeu de 7 paramètres entre 2 systèmes géodésiques
** @param double $Tx Translation suivant l'axe des X (de 1 vers 2)
** @param double $Ty Translation suivant l'axe des Y (de 1 vers 2)
** @param double $Tz Translation suivant l'axe des Z (de 1 vers 2)
** @param double $D Facteur d'échelle de 1 vers 2
** @param double $Rx Angle de rotation autour de l'axe des X en radian (de 1 vers 2)
** @param double $Ry Angle de rotation autour de l'axe des Y en radian (de 1 vers 2)
** @param double $Rz Angle de rotation autour de l'axe des Z en radian (de 1 vers 2)
** @param double $U Vecteur de coordonnées cartésiennes tridimensionnelles dans le système 1 : U=(Ux,Uy,Uz)
** @return array Vecteur de coordonnées cartésiennes tridimensionnelles dans le système 2, V=(Vx,Vy,Vz)
*/
function ALG0013($Tx, $Ty, $Tz, $D, $Rx, $Ry, $Rz, $U)
{
$V=array();
$V['X'] = $Tx + $U['X'] * (1 + $D) + $U['Z'] * $Ry - $U['Y'] * $Rz;
$V['Y'] = $Ty + $U['Y'] * (1 + $D) + $U['X'] * $Rz - $U['Z'] * $Rx;
$V['Z'] = $Tz + $U['Z'] * (1 + $D) + $U['Y'] * $Rx - $U['X'] * $Ry;
return $V;
}
/** Détermination des paramètres de calcul d'une projection Lambert conique
** dans le cas tangent, avec ou sans facteur d'échelle en fonction des paramètres de définition usuels
** @return array n, C, lambdac, Xs, Ys
**/
function ALG0019($lambda0, $phi0, $k0, $X0, $Y0, $a, $e)
{
$lambdac = $lambda0;
$n = sin($phi0);
$C = $k0 * ALG0021($phi0, $a, $e) * tan(pi()/2 - $phi0) * exp($n * ALG0001($phi0, $e));
$Xs = $X0;
$Ys = $Y0 + $k0 * ALG0021($phi0, $a, $e) * tan(pi()/2 - $phi0) ;
$tab ['e'] = $e;
$tab ['n'] = $n;
$tab ['C'] = $C;
$tab ['lambdac'] = $lambdac;
$tab ['Xs'] = $Xs;
$tab ['Ys'] = $Ys;
return $tab;
}
/** Calcul de la grande normale de l'ellipsoïde
** @param double $phi Latitude
** @param double $a Demi-grand axe de l'ellipsoïde
** @param double $e Première excentricité de l'ellipsoïde
** @return double
**/
function ALG0021($phi, $a, $e)
{
$N = $a/sqrt(1 - $e * $e * sin($phi) * sin($phi));
return $N;
}
/** Calcul des constantes d'une projection Lambert conique conforme dans le cas sécant
** @param double $lambda0 Longitude origine en radian par rapport au méridien origine
** @param double $phi0 Latitude origine
** @param double $X0 Coordonnée X en projection du point origine
** @param double $Y0 Coordonnée Y en projection du point origine
** @param double $phi1 Latitude en radian du 1er parallèle automécoïque
** @param double $phi2 Latitude en radian du 2ème parallèle automécoïque
** @param double $a Demi-grand axe de l'ellipsoïde
** @param double $e Première excentricité de l'ellipsoïde
** @return array n, C, lambdac, Xs, Ys
**/
function ALG0054($lambda0, $phi0, $X0, $Y0, $phi1, $phi2, $a, $e)
{
$lambdac = $lambda0;
$n = ((log((ALG0021($phi2, $a, $e)*cos($phi2))/(ALG0021($phi1, $a, $e)*cos($phi1))))/(ALG0001($phi1, $e) - ALG0001($phi2, $e)));
$C = ((ALG0021($phi1, $a, $e)* cos($phi1))/$n) * exp($n * ALG0001($phi1, $e));
if ($phi0 == (pi()/2)) {
$Xs = $X0;
$Ys = $Y0;
} else {
$Xs = $X0;
$Ys = $Y0 + $C * exp(-1 * $n * ALG0001($phi0, $e));
}
$tab=array( 'e' => $e,
'n' => $n,
'C' => $C,
'lambdac' => $lambdac,
'Xs'=> $Xs,
'Ys'=> $Ys);
return $tab;
}
function Lambert2WGS84($X, $Y, $orig='L93')
{
$epsilon = 0.00000000001;
$lambdac = 0.04079234433; // pour greenwich
$e = 0.08248325676; // première excentricité de l ellipsoïde Clarke 1880 français
$he = 100;
$a = 6378249.2; // demi-grand axe de l'ellipsoide
$Tx = -168;
$Ty = -60;
$Tz = +320;
$D = 0;
$Rx = $Ry = $Rz = 0;
$orig=strtoupper($orig);
switch ($orig) {
case 'LI':
case 'L1': $n = 0.7604059656;
$c = 11603796.98;
$Xs = 600000;
$Ys = 5657616.674;
break;
case 'LII':
case 'LIIE':
case 'L2E':
case 'L2': $n = 0.7289686274;
$c = 11745793.39;
$Xs = 600000;
if ($orig=='L2E' || $orig=='LIIE') {
$Ys = 8199695.768;
} else {
$Ys = 6199695.768;
}
break;
case 'LIII':
case 'L3': $n = 0.6959127966;
$c = 11947992.52;
$Xs = 600000;
$Ys = 6791905.085;
break;
case 'LIV':
case 'L4': $n = 0.6712679322;
$c = 12136281.99;
$Xs = 234.358;
$Ys = 7239161.542;
break;
case 'L93':
default: $n = 0.7256077650;
$c = 11745255.426;
$Xs = 700000;
$Ys = 12655612.050;
break;
}
$coords = ALG0004($X, $Y, $n, $c, $Xs, $Ys, $lambdac, $e, $epsilon);
$coords = ALG0009($coords['lambda'], $coords['phi'], $he, $a, $e);
$coords = ALG0013($Tx, $Ty, $Tz, $D, $Rx, $Ry, $Rz, $coords);
$a = 6378137.0; // ellipsoïdes WGS84
$f = 1/298.257223563;
$b = $a*(1-$f);
$e = sqrt(($a*$a - $b*$b)/($a*$a));
$X = $coords['X'];
$Y = $coords['Y'];
$Z = $coords['Z'];
$coords = ALG0012($X, $Y, $Z, $a, $e, $epsilon);
$xy['long'] = rad2deg($coords['lambda']);
$xy['lat'] = rad2deg($coords['phi']);
return $xy;
}
/**
* Function to convert geographic coordinates to "lambert 2 etendue" coordinates
* from: http://www.forumsig.org/showthread.php?p=64050#post64050
**/
function geos2lambert($latitude, $longitude)
{
//0)degres-minutes-secondes + orientation (d,m,s,o) en radian
$lambda_w = $longitude * pi()/180 ;
$phi_w = $latitude * pi()/180 ;
//1) coordonnées géographiques WGS84 (phi_w,lambda_w) en coordonnées cartésiennes WGS84 (X_w,Y_w,Z_w)
$a_w = 6378137.0;
$b_w = 6356752.314;
$e2_w = ($a_w*$a_w-$b_w*$b_w)/($a_w*$a_w);
//et on a la grande normale de l'ellipsoide WGS84
$N = $a_w/sqrt(1-$e2_w*pow(sin($phi_w), 2));
//ainsi on obtient
$X_w = $N * cos($phi_w) * cos($lambda_w);
$Y_w = $N * cos($phi_w) * sin($lambda_w);
$Z_w = $N * (1-$e2_w) * sin($phi_w);
//Ref.: http://www.ign.fr/telechargement/MPr...RCE/NTG_80.pdf and http://de.wikipedia.org/wiki/WGS84
//2) coordonnées cartésiennes WGS84 (X_w,Y_w,Z_w) en coordonnées cartésiennes NTF (X_n,Y_n,Z_n)
$dX = 168.0;
$dY = 60.0;
$dZ = -320.0;
$X_n = $X_w + $dX;
$Y_n = $Y_w + $dY;
$Z_n = $Z_w + $dZ;
//ref.: http://support.esrifrance.fr/Documents/Generalites/Projections/Generalites/Generalites.htm#2
//3) coordonnées cartésiennes NTF (X_n,Y_n,Z_n) en coordonnées géographiques NTF (phi_n,lambda_n)
$a_n = 6378249.2;
$b_n = 6356515.0;
$e2_n = ($a_n*$a_n-$b_n*$b_n)/($a_n*$a_n);
//on définit une tolérance de convergence
$epsilon = pow(10, -10);
//puis on amorce une boucle de calcul
$p0=atan($Z_n/sqrt($X_n*$X_n+$Y_n*$Y_n)*(1-($a_n*$e2_n)/(sqrt($X_n*$X_n+$Y_n*$Y_n+$Z_n*$Z_n))));
$p1=atan(($Z_n/sqrt($X_n*$X_n+$Y_n*$Y_n))/(1-($a_n*$e2_n*cos($p0))/(sqrt(($X_n*$X_n+$Y_n*$Y_n)*(1-$e2_n*pow(sin($p0), 2))))));
while (!(abs($p1-$p0)<$epsilon)) {
$p0 = $p1;
$p1 = atan(($Z_n/sqrt($X_n*$X_n+$Y_n*$Y_n))/(1-($a_n*$e2_n*cos($p0))/(sqrt(($X_n*$X_n+$Y_n*$Y_n)*(1-$e2_n*pow(sin($p0), 2))))));
}
$phi_n = $p1;
$lambda_n = atan($Y_n/$X_n);
//4) coordonnées géographiques NTF (phi_n,lambda_n) en coordonnées projetées en Lambert II étendu (X_l2e, Y_l2e)
$n = 0.7289686274;
$c = 11745793.39;
$Xs = 600000.0;
$Ys = 8199695.768;
$e_n = sqrt($e2_n);
$lambda0 = 0.04079234433198; //correspond à la longitude en radian de Paris (2°20'14.025" E) par rapport à Greenwich
//puis on calcule la latitude isométrique
$L = log(tan(pi()/4 + $phi_n/2) * pow(((1-$e_n*sin($phi_n))/(1+$e_n*sin($phi_n))), ($e_n/2)));
//enfin on projette
$X_l2e = $Xs + $c*exp((-$n*$L))*sin($n*($lambda_n-$lambda0));
$Y_l2e = $Ys - $c*exp((-$n*$L))*cos($n*($lambda_n-$lambda0));
return array("x_l2e"=>$X_l2e,"y_l2e"=>$Y_l2e);
}
/** Conversion WGS84 en Lambert93
** NTG_71.pdf
** http://www.ign.fr/affiche_rubrique.asp?rbr_id=1700&lng_id=FR
**/
function geos2lambert93($latitude, $longitude)
{
// Système WGS84
$a=6378137; // demi grand axe de l'ellipsoide (m)
$e=0.08181919106; // première excentricitè de l'ellipsoide
// Paramètres de projections
$l0=$lc=deg2rad(3); // longitude de référence
$phi0=deg2rad(46.5); // latitude d'origine en radian
$phi1=deg2rad(44); // 1er parallele automécoïque
$phi2=deg2rad(49); // 2eme parallele automécoïque
$x0=700000; //coordonnées à l'origine
$y0=6600000; //coordonnées à l'origine
// coordonnées du point à traduire
$phi=deg2rad($latitude);
$l=deg2rad($longitude);
// calcul des grandes normales
$gN1=$a/sqrt(1-$e*$e*sin($phi1)*sin($phi1));
$gN2=$a/sqrt(1-$e*$e*sin($phi2)*sin($phi2));
//calculs de slatitudes isométriques
$gl1=log(tan(pi()/4+$phi1/2)*pow((1-$e*sin($phi1))/(1+$e*sin($phi1)), $e/2));
$gl2=log(tan(pi()/4+$phi2/2)*pow((1-$e*sin($phi2))/(1+$e*sin($phi2)), $e/2));
$gl0=log(tan(pi()/4+$phi0/2)*pow((1-$e*sin($phi0))/(1+$e*sin($phi0)), $e/2));
$gl=log(tan(pi()/4+$phi/2)*pow((1-$e*sin($phi))/(1+$e*sin($phi)), $e/2));
//calcul de l'exposant de la projection
$n=(log(($gN2*cos($phi2))/($gN1*cos($phi1))))/($gl1-$gl2);//ok
//calcul de la constante de projection
$c=(($gN1*cos($phi1))/$n)*exp($n*$gl1);//ok
//calcul des coordonnées
$ys=$y0+$c*exp(-1*$n*$gl0);
//calcul des coordonnées lambert
$x93=$x0+$c*exp(-1*$n*$gl)*sin($n*($l-$lc));
$y93=$ys-$c*exp(-1*$n*$gl)*cos($n*($l-$lc));
return array("x_93"=>$x93,"y_93"=>$y93);
}

View File

@ -1,153 +0,0 @@
<?php
class Metier_Partenaires_MMarques
{
/**
* PDO Connection with Doctrine
* @var \Doctrine\DBAL\Connection
*/
protected $conn;
/**
* Logger
* @var \Monolog\Logger
*/
protected $logger;
public function __construct()
{
$this->conn = Zend_Registry::get('doctrine');
if (Zend_Registry::isRegistered('logger')) {
$this->logger = Zend_Registry::get('logger');
}
}
/**
* Liste des marques pour un siren donné ou détail d'une marque d'une entreprise
* @param $siren int
* @param $idDepot int Numéro de la marque ou Néant/0 si liste des marques
*/
public function getMarques($siren, $idDepot=0)
{
$marques = array();
$sql = "SELECT nomMarque, rayonMarque, detailDeposant, sirenDeposant, dateDepot, lieuDepot,
numeroMarque, classesMarque, periMarque, detailDeposant, detailMandataire, detailStatut,
dateExpir, idObjetImg, idObjetPdf FROM bopi.marques WHERE";
if ($siren > 0) {
if (substr($sql, -5) != "WHERE") {
$sql.= " AND";
}
$sql.= " sirenDeposant=$siren";
}
if ($idDepot > 0) {
if (substr($sql, -5) != "WHERE") {
$sql.= " AND";
}
$sql.= " numeroMarque=$idDepot";
}
try {
$stmt = $this->conn->prepare($sql);
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
while ($marque = $stmt->fetch(\PDO::FETCH_ASSOC)) {
if ($marque['nomMarque'] == '&nbsp;') {
$nomMarque = '(figurative)';
} else {
$nomMarque = $marque['nomMarque'];
}
if ($idDepot != 0) {
if ($marque['numeroMarque'] == $idDepot) {
//Produits et Services
try {
$psSql = "SELECT remarque FROM bopi.marques_classes WHERE numeroMarque=:id";
$psStmt = $this->conn->prepare($psSql);
$psStmt->bindValue('id', $idDepot);
$psStmt->execute();
$pNb = $psStmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
$txt = array();
if ($pNb > 0) {
while ($ps = $psStmt->fetch(\PDO::FETCH_ASSOC)) {
$txt[] = $ps['remarque'];
}
}
$marque['PS'] = $txt;
//Historique
try {
$hSql = "SELECT histo2 FROM bopi.marques_histo WHERE numeroMarque=:id ORDER BY dat DESC";
$hStmt = $this->conn->prepare($psSql);
$hStmt->bindValue('id', $idDepot);
$hStmt->execute();
$hNb = $hStmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
$txt = array();
if ($hNb > 0) {
while ($h = $hStmt->fetch(\PDO::FETCH_ASSOC)) {
$txt[] = $h['histo2'];
}
}
$marque['histo'] = $txt;
return 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'],
'PS' => $marque['PS'],
'histo' => $marque['histo'],
);
}
}
$marques[] = 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'],
);
}
return $marques;
}
return false;
}
}

View File

@ -1,336 +0,0 @@
<?php
require_once 'framework/common/curl.php';
class Metier_Partenaires_MOrias
{
private $referer ='';
private $body = '';
private $header = '';
private $cookie = '';
private $codeRetour = 0;
private $iDb;
public $annee=0;
public $erreur='';
/**
* Remote Flag
* @var boolean
*/
protected $remote = false;
/**
* SIREN
* @var string
*/
protected $siren;
/**
* Num ORIAS
* @var integer
*/
protected $num;
public function __construct($db = null)
{
if ($db === null) {
$this->iDb = new Metier_Util_Db();
} else {
$this->iDb = $db;
}
}
/**
* Active la récupération des données distantes
*/
public function setRemote()
{
$this->remote = true;
}
/**
* Numero ORIAS
* @param int $annee
* @return string
* Retourne le numéro ORIAS
*/
public function getMaxOrias($annee = 0)
{
if ($annee*1 > 0 && $annee*1 < 100) {
$this->annee = '20'.$annee;
$annee++;
$strWhere = "(numOrias/1000000)<=$annee";
} elseif ($annee*1 > 1900 && $annee*1 < 9999) {
$this->annee = $annee;
$annee = substr(''.$annee, 2, 2)*1+1;
$strWhere = "(numOrias/1000000)<=$annee";
} else {
$strWhere = '1';
$this->annee = date('Y')*1;
}
$ret = $this->iDb->select('sdv1.orias', 'MAX(numOrias) AS numOrias', $strWhere, false, MYSQL_ASSOC);
return sprintf('%08d', $ret[0]['numOrias']);
}
/**
* Infos ORIAS
* @param string $siren
* @param int $num
*/
public function getInfosOrias($siren, $num=0)
{
$this->siren = $siren;
$this->num = $num;
// Remote
if ($this->remote) {
$result = $this->getRemoteInfosOrias();
if ($result !== false && count($result) > 0) {
return $result;
}
}
// Database
if ($this->siren * 1 > 1000) {
$strWhere = "siren=$this->siren";
} elseif ($this->num * 1 > 0) {
$strWhere = "numOrias=$this->num";
} else {
return false;
}
$ret = $this->iDb->select('sdv1.orias',
'siren, id, nom, cp, ville, adresse, numOrias, numOriasAttribue',
$strWhere, false, MYSQL_ASSOC);
if (count($ret) > 0) {
$tabRet = $ret[0];
$ret = $this->iDb->select('sdv1.orias',
'categorie, cat, dateInscription, typeStatut, rcsVille, rcsCode, rcsSiren, contact, encaissement, nature, paysPresta, paysEtab',
$strWhere, false, MYSQL_ASSOC);
foreach ($ret as $i=>$tabTmp) {
$tabRet['categories'][] = $tabTmp;
}
}
return $tabRet;
}
protected function getRemoteInfosOrias()
{
// Initialisation Cookies
if ($this->num > 0) {
$this->referer='http://www.orias.fr/orias/public/index.jsp';
} else {
$this->referer='http://www.orias.fr/orias/public/rechercheavance.html';
}
$page = getUrl($this->referer, '', '', '', false, '', '', 15);
if ($page['code'] == 200) {
$this->cookie = str_replace(' Path=/orias', '', $page['header']['Set-Cookie']);
if (preg_match('/id="javax\.faces\.ViewState" value="(.*)"/Ui', $page['body'], $matches)) {
$this->codeRetour = $matches[1];
} else {
echo 'Erreur Url='.$this->referer.PHP_EOL;
print_r($page['body']);
return false;
}
} else {
return false;
}
if ($this->num > 0) {
$url = 'http://www.orias.fr/orias/public/index.html';
$post = array(
'menu%3AiasSearchForm'=>'menu%3AiasSearchForm',
'menu%3AiasSearchForm%3AiasInputText'=>sprintf('%08s', $this->num),
'javax.faces.ViewState'=>$this->codeRetour,
'menu%3AiasSearchForm%3AiasSearch'=>'menu%3AiasSearchForm%3AiasSearch',
);
} else {
// Recherche avec Siren
$url = 'http://www.orias.fr/orias/public/rechercheavance.html';
$post = array(
'j_id_id45'=>'j_id_id45',
'j_id_id45%3Aj_id_id52'=>'',
'j_id_id45%3AtagRCS'=>'',
'j_id_id45%3AtagSIREN'=>$siren,//441921574,
'j_id_id45%3Aj_id_id160'=>'',
'j_id_id45%3Aj_id_id167'=>'',
'j_id_id45%3Aj_id_id175'=>'',
'javax.faces.ViewState'=>$this->codeRetour,
'j_id_id45%3Aj_id_id203'=>'j_id_id45%3Aj_id_id203'
);
$this->referer = 'http://www.orias.fr/orias/public/list.html';
}
sleep(rand(1, 2));
$page = getUrl($url, $this->cookie, $post, $this->referer, false, '', '', 15);
$this->referer = $url;
if ($page['code'] == 302) {
$url = $page['header']['Location'];
} else {
if (preg_match("/Le num&eacute;ro d'immatriculation n'existe pas/", $page['body'])) {
$tabInsert = array(
'actif' => 0,
'numOrias' => $this->num,
'numOriasAttribue' => 0,
'dateInsert' => date('YmdHis')
);
$this->erreur = 'Numéro Orias inexistant';
// On enregistre ce numéro comme non attribué si < au dernier numéro attribué
if ($this->num < $this->getMaxOrias()) {
$this->iDb->insert('sdv1.orias', $tabInsert);
}
}
return false;
}
if ($url == 'http://www.orias.fr/orias/public/intermediaire.html') {
$page = getUrl($url, $this->cookie, '', $this->referer, false, '', '', 24);
$this->referer = $url;
$this->body = $page['body'];
echo "Recherche par Orias : url=$url".PHP_EOL;
die(print_r($page));
}
// Liste contenant l'entreprise
$url = 'http://www.orias.fr/orias/public/list.html';
sleep(rand(1, 2));
$page = getUrl($url, $this->cookie, '', $this->referer, false, '', '', 24);
$this->referer = $url;
$this->body = $page['body'];
if (preg_match('/<td>R\&eacute\;sultat\(s\) de votre recherche \:(?:.*)<strong>(.*)<(?:.*)Interm\&eacute\;diaire\(s\)/Uis', $this->body, $matches)) {
$nbInter = trim($matches[1])*1;
if ($nbInter == 0) {
return false;
}
if ($nbInter > 1) {
return false;
}
}
// Initalisation du tableau retour
$tabRet = array('siren'=>$siren);
//id="formResult:intermediariesList:13910
if (preg_match('/<td class="dr-table-cell rich-table-cell haut " id="formResult\:intermediariesList\:(.*)\:j_id_id117">(?:.*)<center>(.*)<\/center>/Uis', $this->body, $matches)) {
$tabRet['id'] = trim($matches[1]);
$tabRet['nom'] = html_entity_decode(trim($matches[2]));
}
if (preg_match('/<td class="dr-table-cell rich-table-cell r.cp_ville " id="formResult\:intermediariesList\:(?:.*)\:j_id_id124">(?:.*)<center>(.*)<\/center>/Uis', $this->body, $matches)) {
$tabTmp = explode('&nbsp;', $matches[1]);
$tabRet['cp'] = trim($tabTmp[0]);
$tabRet['ville'] = html_entity_decode(trim($tabTmp[1]));
}
if (preg_match('/<td class="dr-table-cell rich-table-cell r.adresse " id="formResult\:intermediariesList\:(?:.*)\:j_id_id133">(.*)<\/td>/Uis', $this->body, $matches)) {
$tabRet['adresse'] = html_entity_decode(trim($matches[1]));
}
$tabRet['actif'] = 1;
$tabRet['numOriasAttribue'] = 1;
if (preg_match('/<td class="dr-table-cell rich-table-cell r.immat " id="formResult\:intermediariesList\:(?:.*)\:j_id_id138">(?:.*|)(<span style="white-space\: no-wrap;">|Radi\&eacute\; le \:)(.*)(?:<\/span>|<\/td>)/Uis', $this->body, $matches)) {
$str = trim(strtr($matches[2], array('&nbsp;'=>'', ' '=>'')));
if (html_entity_decode(trim(str_replace(':', '', $matches[1]))) == 'Radié le') {
$tabRet['actif'] = 0;
$tabRet['numOrias'] = $this->num;
$tabRet['dateRadiation'] = $str;
} else {
$tabRet['numOrias'] = $str;
}
}
if (preg_match('/ id="javax\.faces\.ViewState" value="(.*)" /Uis', $this->body, $matches)) {
$this->codeRetour = $matches[1];
}
$tabTmp = explode("<a href=\"#\" onclick=\"if(typeof jsfcljs == 'function'){jsfcljs(document.getElementById('formResult'),{'", $this->body);
foreach ($tabTmp as $i => $strCat) {
if ($i == 0) {
if (count($tabTmp) == 1) {
$tabInsert = array_merge($tabRet, array('dateInsert'=>date('YmdHis')));
$this->iDb->insert('sdv1.orias', $tabInsert);
}
$tabRet['categories'] = array();
continue;
}
$tabCat = array();
if (preg_match('/<span style="text-align\: left">(.*)<\/span>/Ui', $strCat, $matches)) {
$tabCat['categorie'] = html_entity_decode(trim($matches[1]));
}
if (preg_match('/intermediaryRoleIdParam\'\:\'(.*)\'/Uis', $strCat, $matches)) {
$tabCat['cat'] = $matches[1];
}
// Tout est dans la même page Html
if ($i==1) {
// Construction du lien vers la fiche d'identité de l'entreprise
$url = 'http://www.orias.fr/orias/public/list.html';
$post = array(
'formResult' => 'formResult',
'formResult%3AajaxLoadingModalBoxOpenedState' => '',
'javax.faces.ViewState' => $this->codeRetour,
'intermediaryIdParam' => $tabRet['id'],
'intermediaryRoleIdParam' => $tabCat['cat'],
);
if (preg_match('/(formResult\:intermediariesList\:(?:.*)),intermediaryIdParam,/Ui', $strCat, $matches)) {
$tabTmp2 = explode(',', $matches[1]);
$post[urlencode($tabTmp2[0])] = urlencode($tabTmp2[1]);
}
sleep(rand(1, 2));
$page = getUrl($url, $this->cookie, $post, $this->referer, false, '', '', 24);
$tmpCat = explode('class="dr-tbpnl-cntnt-pstn rich-tabpanel-content-position"', $page['body']);
}
if (preg_match('/<dd class="col3">Date d\'inscription \: <strong>(.*)<\/strong><\/dd>/Uis', $tmpCat[$i], $matches)) {
$tabCat['dateInscription'] = trim($matches[1]);
}
if (preg_match('/<td align="right"(?: |)>Statut \:<\/td>(.*)<\/strong>/Uis', $tmpCat[$i], $matches)) {
$tabCat['typeStatut'] = trim(strip_tags($matches[1]));
}
if (preg_match('/<td align="right">RCS \:<\/td>(?:.*)<td width="5%"><\/td>(?:.*)<td width="70%"><strong>(.*)<\/strong>(.*)SIREN \:(?:.*)<strong>(.*)<\/strong>/Uis', $tmpCat[$i], $matches)) {
$tabCat['rcsVille'] = trim($matches[1]);
$tabCat['rcsCode'] = trim(strtr(strip_tags($matches[2]), array(' '=>'', '&nbsp;'=>'', chr(160)=>'', "\r"=>'', "\n"=>'')));
$tabCat['rcsSiren'] = trim($matches[3]);
if ($siren == 0) {
$tabRet['siren'] = $tabCat['rcsSiren'];
}
}
if (preg_match('/<td align="right">Contact<\/td>(.*)<\/tr>/Uis', $tmpCat[$i], $matches)) {
$tabCat['contact'] = html_entity_decode(trim(strip_tags($matches[1])));
}
if (preg_match("/<strong>(.*)Cet interm&eacute;diaire n'est pas autoris&eacute; &agrave; encaisser les primes ou cotisations d'assurances(.*)<\/strong>/Uis", $tmpCat[$i])) {
$tabCat['encaissement'] = 0;
} else {
$tabCat['encaissement'] = 1;
}
if (preg_match('/<span class="txt_ssTitre">(?:.*)Nature de l\'activit\&eacute\; d\'interm\&eacute\;diation(.*)<\/dd>/Uis', $tmpCat[$i], $matches)) {
$tabCat['nature'] = html_entity_decode(trim(strip_tags($matches[1])));
}
if (preg_match('/<td width="50%" valign="top" align="left">\- Etats dans lesquels cet interm\&eacute\;diaire exerce en libre prestation de service(.*)<\/table>(.*)<\/tr>/Uis', $tmpCat[$i], $matches)) {
$tabCat['paysPresta'] = trim(strip_tags($matches[1]));
}
if (preg_match('/<td width="222" align="left">\- Etats dans lesquels cet interm\&eacute\;diaire exerce en libert\&eacute\; d\'\&eacute\;tablissement(.*)<\/table>(.*)<\/tr>/Uis', $tmpCat[$i], $matches)) {
$tabCat['paysEtab'] =trim(strip_tags($matches[1]));
}
$tabRet['categories'][] = $tabCat;
$tabInsert = $tabRet;
unset($tabInsert['categories']);
$tabInsert = array_merge($tabInsert, $tabCat, array('dateInsert'=>date('YmdHis')));
$this->iDb->insert('sdv1.orias', $tabInsert);
}
return $tabRet;
}
}

View File

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

View File

@ -1,448 +0,0 @@
<?php
require_once 'framework/common/curl.php';
class Metier_Partenaires_MQualibat
{
protected $iBodacc;
protected $iInsee;
/**
* PDO Connection with Doctrine
* @var \Doctrine\DBAL\Connection
*/
protected $conn;
/**
* Logger
* @var \Monolog\Logger
*/
protected $logger;
/**
* Enable remote
* @var string
*/
protected $remote = false;
/**
* MQualibat
*/
public function __construct()
{
$this->conn = Zend_Registry::get('doctrine');
if (Zend_Registry::isRegistered('logger')) {
$this->logger = Zend_Registry::get('logger');
}
$this->iBodacc = new Metier_Bodacc_MBodacc();
$this->iInsee = new Metier_Insee_MInsee();
}
/**
* Active la récupération des données distantes
*/
public function setRemote()
{
$this->remote = true;
}
private function getCodeFctDirigeant($strLibDirigeant, $siren = 0)
{
$tabTmp = $this->iBodacc->getDirigeants($strLibDirigeant);
if (isset($tabTmp[0]['fonction']) && $tabTmp[0]['fonction'] > 0) {
return $tabTmp[0]['fonction'];
} else {
if (preg_match("/directeur.{1,6}agence/iu")) {
return 8;
} elseif (preg_match("/directeur.{1,6}ETABLISSEMENT/iu")) {
return 8;
} elseif (preg_match("/directeur.{1,6}technique/iu")) {
return 19;
} elseif (preg_match("/chef.{1,8}agence/iu")) {
return 38;
} elseif (preg_match("/cadre.{1,8}Comptable/iu")) {
return 55;
} elseif (preg_match("/Charg.{1,6}affair/iu")) {
return 60;
} elseif (preg_match("/chef.{1,8}Atelier/iu")) {
return 60;
} elseif (preg_match("/(conducteur|chef).{1,9}travaux/iu")) {
return 61;
} elseif (preg_match("/directeur.{1,6}technique/iu")) {
return 19;
} elseif (preg_match("/resp.{1,16}technique/iu")) {
return 49;
} elseif (preg_match("/resp.{1,16}Expl/iu")) {
return 37;
} elseif (preg_match("/di.{1,16}Expl/iu")) {
return 7;
} elseif (preg_match("/Chef.{1,6}Ent/iu")) {
$tabTmp = $this->iInsee->getIdentiteLight($siren);
if ($tabTmp['FJ']>=1000 && $tabTmp['FJ']<2000) {
return 1050;
}
}
return false;
}
}
public function getMaxQualibat()
{
$sql = "SELECT MAX(id) AS id FROM sdv1.qualibat";
try {
$stmt = $this->conn->executeQuery($sql);
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
$result = $stmt->fetch(\PDO::FETCH_OBJ);
return $result->id;
}
public function getTabQualibatManquants()
{
$tabRet = $tabQualibatCalc = $tabQualibatBase = array();
// Liste des Qualibat Calculés
$maxQualibat = $this->getMaxQualibat();
for ($i=1; $i<=$maxQualibat; $i++) {
$tabQualibatCalc[] = $i;
}
// Liste des Qualibat en base
$sql = "SELECT id FROM sdv1.qualibat ORDER BY id ASC";
try {
$stmt = $this->conn->executeQuery($sql);
while ($result = $stmt->fetch(PDO::FETCH_OBJ)) {
$tabQualibatBase[] = $result->id;
}
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
return array_diff($tabQualibatCalc, $tabQualibatBase);
}
public function getInfosQualibat($siren, $idQualibat=0)
{
if ($siren*1 > 1000) {
$strWhere = "siren=$siren";
} elseif ($idQualibat*1 > 0) {
$strWhere = "id=$idQualibat";
} else {
return false;
}
$sql = "SELECT siren, actif, id, nom, adresse, cp, ville, tel, fax, email, web, eff, teff,
ca, tca, libFJ, nace, dateFondation, dateDeb, dateFin, dateInsert
FROM sdv1.qualibat WHERE $strWhere";
try {
$stmt = $this->conn->executeQuery($sql);
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
// In database
if ($this->remote === false && $stmt->rowCount() > 0) {
$tabRet = $stmt->fetch(\PDO::FETCH_ASSOC);
// Ajout des qualifications
$sql = "SELECT code, periodQualif, niveauQualif, mentions, nomQualif, dateAttrib, dateEch
FROM sdv1.qualibatqualif WHERE $strWhere";
try {
$stmt = $this->conn->executeQuery($sql);
if ($stmt->rowCount() > 0) {
while ($result = $stmt->fetch(\PDO::FETCH_ASSOC)) {
$tabRet['qualifications'][] = $result;
}
}
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
// Ajout des dirigeants
$sql = "SELECT civNomPrenom, civilite, nom, prenom, fonction
FROM sdv1.qualibatdir WHERE $strWhere";
try {
$stmt = $this->conn->executeQuery($sql);
if ($stmt->rowCount() > 0) {
while ($result = $stmt->fetch(\PDO::FETCH_ASSOC)) {
$tabRet['dirigeants'][] = $result;
}
}
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
}
// WebSite
if ($this->remote === true) {
$url = 'http://www.qualibat.com/Views/EntreprisesRechercheDetail.aspx?id='.$idQualibat;
$page = getUrl($url, '', '', '', false, '', '', 3);
if ($page['code'] != 200) {
return false;
}
$body = $page['body'];
$tabRet['id'] = $idQualibat;
if (preg_match('/<th>(?:.*)Raison sociale(?:.*)<\/th>(?:.*)<td>(.*)<\/td>/Uis', $body, $matches)) {
$tabRet['nom'] = trim(strip_tags($matches[1]));
if (preg_match('/<th>(?:.*)Adresse(?:.*)<\/th>(?:.*)<td>(.*)<br \/>(.*)<\/td>/Uis', $body, $matches)) {
$tabRet['adresse'] =strtoupper(trim($matches[1]));
$adresse2 = trim(preg_replace('/ +/', ' ', strtr(strip_tags($matches[2]), "\r\n\t".chr(160), ' ')));
$tabRet['cp'] = substr($adresse2, 0, 5);
$tabRet['ville'] = trim(substr($adresse2, 5));
}
if (preg_match('/<th>(?:.*)Téléphone(?:.*)<\/th>(?:.*)<td>(.*)<\/td>/Uisu', $body, $matches)) {
$tabRet['tel'] = trim(str_replace(' ', '', $matches[1]));
}
if (preg_match('/<th>(?:.*)Fax(?:.*)<\/th>(?:.*)<td>(.*)<\/td>/Uis', $body, $matches)) {
$tabRet['fax'] = trim(str_replace(' ', '', $matches[1]));
}
if (preg_match('/<th>E-mail<\/th><td>(?:.*)<a href= "mailto\:(.*)">/Uis', $body, $matches)) {
$tabRet['email'] = trim($matches[1]);
}
if (preg_match('/<th>(?:.*)SIREN(?:.*)<\/th>(?:.*)<td>(.*)<\/td>/Uis', $body, $matches)) {
$tabRet['siren']= $siren = trim(str_replace(' ', '', $matches[1]));
}
if (preg_match('/<th>(?:.*)Effectif total(?:.*)<\/th>(?:.*)<td>(.*)\(Classification - (.*)\)(?:.*)<\/td>/Uis', $body, $matches)) {
$tabRet['eff'] = trim(str_replace(' ', '', $matches[1]));
$tabRet['teff'] = trim($matches[2]);
}
if (preg_match('/<th>(?:.*)CA total(?:.*)<\/th>(?:.*)<td >(.*)\(Classification - (.*)\)(?:.*)<\/td>/Uis', $body, $matches)) {
$tabRet['ca'] = trim(str_replace(' ', '', $matches[1]));
if ($tabRet['ca'] == '') {
$tabRet['ca'] = null;
}
$tabRet['tca'] = trim($matches[2]);
if ($tabRet['tca'] == '') {
$tabRet['tca'] = null;
}
}
if (preg_match('/<th>(?:.*)Forme Juridique(?:.*)<\/th>(?:.*)<td>(.*)<\/td>/Uis', $body, $matches)) {
$tabRet['libFJ'] = trim($matches[1]);
}
if (preg_match('/<th>(?:.*)NACE(?:.*)<\/th>(?:.*)<td>(.*)<\/td>/Uis', $body, $matches)) {
$tabRet['nace'] = trim($matches[1]);
}
if (preg_match('/<th>(?:.*)Fondation(?:.*)<\/th>(?:.*)<td>(.*)<\/td>/Uis', $body, $matches)) {
$tabRet['dateFondation'] = Metier_Util_Date::dateT('d/m/Y', 'Y-m-d', trim($matches[1]));
}
if (preg_match('/<tr><td align="center"><img src="(?:.*)internet_contact\.gif(?:.*)<\/td><td> <a href= "(.*)" target="_blank">/Uis', $body, $matches)) {
$tabRet['web'] = trim($matches[1]);
}
/** Qualifications ? **/
$qualifs = '';
if (preg_match('/<table class="recherche_entreprise_detail">(?:.*)<th colspan="4">(?:.*)(Qualifications professionnelles|Certifications m..tier)(?:.*)<tbody>(.*)<\/table>/Uisu', $body, $matches)) {
$typeQualifs = trim($matches[1]);
$qualifs = trim($matches[2]);
}
if (preg_match('/<th>(?:.*)Fondation(?:.*)<\/th>(?:.*)<td>(.*)<\/td>(.*)<div class="buttons">/Uis', $body, $matches)) {
$tabRet['tmpDirQualif'] = trim($matches[2]);
$tabRet['tmpLenDirQualif'] = strlen(trim($matches[2]));
}
$tabDateAttrib = $tabDateFin = array();
if (preg_match_all('/<tr>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<\/tr>/Uis', $qualifs, $matches)) {
foreach ($matches[1] as $i => $code) {
$tabTmp = explode(' ', trim($code));
$nomQualif = trim($matches[2][$i]);
if (preg_match("/\(Tech?nicit. (.*)\)/Uiu", $nomQualif, $matches2)) {
$niveau = trim($matches2[1]);
} else {
$niveau = '';
}
$tabMentions = array();
if (preg_match_all('/Mention (.*)(?:,|$)/Uis', $nomQualif, $matches2)) {
foreach ($matches2[1] as $i2 => $mention) {
$tabMentions[] = $mention;
}
}
$tabRet['qualifications'][$i] = array(
'code' => trim($tabTmp[0]),
'periodQualif' => trim($tabTmp[1]),
'nomQualif' => $nomQualif,
'niveauQualif' => $niveau,
'typeQualif' => $typeQualifs,
'mentions' => implode(', ', $tabMentions),
'dateAttrib' => Metier_Util_Date::dateT('d/m/Y', 'Y-m-d', trim($matches[3][$i])),
'dateEch' => Metier_Util_Date::dateT('d/m/Y', 'Y-m-d', trim($matches[4][$i]))
);
$tabDateAttrib[] = Metier_Util_Date::dateT('d/m/Y', 'Ymd', trim($matches[3][$i]))*1;
$tabDateFin[] = Metier_Util_Date::dateT('d/m/Y', 'Ymd', trim($matches[4][$i]))*1;
}
}
sort($tabDateAttrib);
rsort($tabDateFin);
/** Dirigeants ? **/
$dirs='';
if (preg_match('/<table class="recherche_entreprise_detail">(?:.*)<th colspan="2">(?:.*)Dirigeants(?:.*)<tbody>(.*)<\/table>/Uis', $body, $matches)) {
$dirs = trim($matches[1]);
}
if (preg_match_all('/<tr>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<\/tr>/Uis', $dirs, $matches)) {
foreach ($matches[1] as $i => $nom) {
$strNom = trim($nom);
switch (strtoupper(substr($strNom, 0, 6))) {
case 'MONSIE': $civ='M'; $pDeb=8; break;
case 'MADAME': $civ='MME'; $pDeb=6; break;
case 'MADEMO': $civ='MLLE'; $pDeb=12; break;
default: $civ=''; $pDeb=0; break;
}
$libFonction = ucwords(strtolower(trim($matches[2][$i])));
$tabRet['dirigeants'][$i] = array(
'civNomPrenom' => $strNom,
'civilite' => $civ,
'nom' => strtoupper(trim(substr($strNom, $pDeb, 65))),
'prenom' => ucwords(strtolower(trim(substr($strNom, $pDeb+66)))),
'fonction' => $libFonction,
'fonctionCode' => $this->getCodeFctDirigeant($libFonction, $siren),
);
}
}
/** Insertion de l'entreprise **/
$tabInsert = array_merge($tabRet, array(
'idQualibatAttribue' => 1,
'dateInsert' => date('YmdHis'),
'dateDeb' => @$tabDateAttrib[0],
'dateFin' => @$tabDateFin[0]));
unset($tabInsert['qualifications']);
$sql = "SELECT id FROM sdv1.qualibat WHERE id=$idQualibat";
try {
$stmt = $this->conn->executeQuery($sql);
if ($stmt->rowCount() > 0) {
$this->conn->update('sdv1.qualibat', $tabInsert, array('id' => $idQualibat));
} else {
$this->conn->insert('sdv1.qualibat', $tabInsert);
}
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
/** Insertion des qualifications **/
if (isset($tabRet['qualifications']) && count($tabRet['qualifications']) > 0) {
foreach ($tabRet['qualifications'] as $i => $tabInsert) {
$tabInsert['id'] = $idQualibat;
$tabInsert['siren'] = $siren;
$tabInsert['dateInsert'] = date('YmdHis');
$sql = "SELECT id FROM sdv1.qualibatqualif
WHERE id=$idQualibat AND code='".$tabInsert['code']."' AND periodQualif='".$tabInsert['periodQualif']."'";
try {
$stmt = $this->conn->executeQuery($sql);
if ($stmt->rowCount() > 0) {
$this->conn->update('sdv1.qualibatqualif', $tabInsert, array(
'id' => $idQualibat,
'code' => $tabInsert['code'],
'periodQualif' => $tabInsert['periodQualif'],
));
} else {
$this->conn->insert('sdv1.qualibatqualif', $tabInsert);
}
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
}
}
/** Insertion des dirigeants **/
if (isset($tabRet['dirigeants']) && count($tabRet['dirigeants']) > 0) {
foreach ($tabRet['dirigeants'] as $i => $tabInsert) {
$tabInsert['id'] = $idQualibat;
$tabInsert['siren'] = $siren;
$tabInsert['dateInsert'] = date('YmdHis');
$sql = "SELECT id FROM sdv1.qualibatdir
WHERE id=$idQualibat AND civNomPrenom='".addslashes($tabInsert['civNomPrenom'])."' AND fonction='".addslashes($tabInsert['fonction'])."'";
try {
$stmt = $this->conn->executeQuery($sql);
if ($stmt->rowCount() > 0) {
$this->conn->update('sdv1.qualibatdir', $tabInsert, array(
'id' => $idQualibat,
'civNomPrenom' => $tabInsert['civNomPrenom'],
'fonction' => $tabInsert['fonction'],
));
} else {
$this->conn->insert('sdv1.qualibatdir', $tabInsert);
}
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
unset($tabRet['dirigeants'][$i]['civNomPrenom']);
}
}
return $tabRet;
} else {
$tabInsert = array(
'actif' => 0,
'id' => $idQualibat,
'idQualibatAttribue' => 0,
'dateInsert' => date('YmdHis')
);
$this->erreur = 'Numéro Qualibat inexistant';
// On enregistre ce numéro comme non attribué si < au dernier numéro attribué
if ($idQualibat < $this->getMaxQualibat()) {
try {
$stmt = $this->conn->insert('sdv1.qualibat', $tabInsert);
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
}
return false;
}
}
return false;
}
/**
* Get Remote Infos
* @param unknown $id
*/
protected function getRemote($id)
{
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,838 +0,0 @@
<?php
class Metier_Partenaires_MRnvp
{
public $tabDevises = array();
public $nomTronque = 0;
protected $tabAdrCQ = array(
10 => 'Adresse correcte',
20 => 'Adresse correcte (Voie non reconue dans un CEDEX ou BP)',
21 => 'Adresse correcte mais numéro de facade hors borne (petite ville)',
22 => 'Adresse correcte mais numéro de facade absent (petite ville)',
23 => 'Adresse correcte mais numéro de facade hors borne (grande ville)',
24 => 'Adresse correcte mais numéro de facade absent (grande ville)',
30 => 'Voie non reconnue (petite ville)',
31 => 'Voie non reconnue (petite ville, quartier reconnu)',
40 => 'Voie absente (petite ville, quartier reconnu)',
41 => 'Voie absente (petite ville)',
50 => 'Voie non reconnue (grande ville)',
51 => 'Voie non reconnue (grande ville, quartier reconnu)',
60 => 'Voie absente (grande ville, quartier reconnu)',
61 => 'Voie absente (grande ville)',
70 => 'Voie présente mais Cp/Ville non corrigeable',
80 => 'Voie absente et Cp/Ville non corrigeable',
90 => 'Adresse à l\'étranger',
);
protected $iInsee;
protected $iDb;
public function __construct()
{
$this->iDb = new Metier_Util_Db();
$this->iInsee = new Metier_Insee_MInsee();
}
/**
* Initialisation du tableau privé des devises Inpi <=> ISO
* @return multitype:Ambigous <multitype:>
*/
protected function getTabDevisesInpi()
{
$rep = $this->iDb->select('jo.tabDevises', 'devInpi, devIso', 'devInpi>0', false, MYSQL_ASSOC);
$tabDevises = array();
foreach ($rep as $k => $dev) {
$tabDevises[$dev['devInpi']*1] = $dev['devIso'];
}
return $tabDevises;
}
/**
* Récupération du code ISO de la devise numérique de l'Inpi
* @param integer $numDeviseInpi
* @return multitype:|string
*/
public function getDeviseInpi($numDeviseInpi)
{
if ($numDeviseInpi*1>0 && isset($this->tabDevises[$numDeviseInpi*1])) {
return $this->tabDevises[$numDeviseInpi*1];
} else {
return '';
}
}
/**
* @todo Corriger les adresses présentes dans CEDEXA (toutes les lignes)
* @todo Ligne 3, acheter HEXALIGNE3
* @param unknown $adrL1
* @param unknown $adrL2
* @param unknown $adrL3
* @param unknown $adrL4
* @param unknown $adrL5
* @param unknown $adrL6
* @param string $adrL7
* @param number $norme
* @param string $debug
* @return multitype:string number |string|unknown
*/
public function normaliseAdresse($adrL1, $adrL2, $adrL3, $adrL4, $adrL5, $adrL6, $adrL7='', $norme=38, $debug=false)
{
$tDeb=microtime(1);
$erreur=false;
if ($norme<>32 && $norme<>38) {
return array(
'dureeRnvp'=>round(microtime(1)-$tDeb, 3),
'errRNVPcode'=>'I8',
'errRNVPlib'=>'La norme doit être 32 ou 38 caractères (38 par défaut)'
);
}
$adrL=$tabRetI=$tabRetV=$tabRetR=$tabRetE=array();
$L1tr=$L2tr=$L3tr=0; // Par défaut, les lignes ne sont pas indiquées comme tronquées
$adrL[1]=$adrL1=trim(preg_replace('/\s+/', ' ', preg_replace('/[^a-z\d ]/i', ' ', strtoupper(Metier_Util_String::trimAccent($adrL1)))));
$adrL[2]=$adrL2=trim(preg_replace('/\s+/', ' ', preg_replace('/[^a-z\d ]/i', ' ', strtoupper(Metier_Util_String::trimAccent($adrL2)))));
$adrL[3]=$adrL3=trim(preg_replace('/\s+/', ' ', preg_replace('/[^a-z\d ]/i', ' ', strtoupper(Metier_Util_String::trimAccent($adrL3)))));
$adrL[4]=$adrL4=trim(preg_replace('/\s+/', ' ', preg_replace('/[^a-z\d ]/i', ' ', strtoupper(Metier_Util_String::trimAccent($adrL4)))));
$adrL[5]=$adrL5=trim(preg_replace('/\s+/', ' ', preg_replace('/[^a-z\d ]/i', ' ', strtoupper(Metier_Util_String::trimAccent($adrL5)))));
$adrL[6]=$adrL6=trim(preg_replace('/\s+/', ' ', preg_replace('/[^a-z\d ]/i', ' ', strtoupper(Metier_Util_String::trimAccent($adrL6)))));
$adrL[7]=$adrL7=trim(preg_replace('/\s+/', ' ', preg_replace('/[^a-z\d ]/i', ' ', strtoupper(Metier_Util_String::trimAccent($adrL7)))));
$dureeM=round(microtime(1)-$tDeb, 3);
if ($adrL7<>'' || $adrL7<>'FRANCE' || $adrL7<>'MONACO') {
$L1=$adrL1;
}
$L2=$adrL2;
// Ligne 3, acheter HEXALIGNE3
$L3=$adrL3;
// Ligne 5 et 7 par défaut
$L7=$adrL7;
$L5=$adrL5;
// Ligne 6 : CP + Localité
$idAdr56=false;
$tabAdr56k=$tabAdr56L=array();
$cp=substr(trim($adrL6), 0, 5);
if ($cp*1>0) {
$cp2=substr($cp, 0, 2);
$ville=trim(strtr(substr($adrL6, 5), array(' SAINT '=>' ST ', ' SAINTE '=>' STE ')));
} else {
$cp=$cp2='';
$ville=trim(strtr($adrL6, array(' SAINT '=>' ST ', ' SAINTE '=>' STE ')));
}
$ville=preg_replace('/ CEDEX\s?.*$/ui', '', $ville);
$tabRetI=array(
'operateurRnvp'=>'SED',
'in_cp'=>$cp,
'in_dep'=>$cp2,
'in_ville'=>$ville,
'in_L1'=>$adrL1,
'in_L2'=>$adrL2,
'in_L3'=>$adrL3,
'in_L4'=>$adrL4,
'in_L5'=>$adrL5,
'in_L6'=>$adrL6,
'in_L7'=>$adrL7);
//$dureeM=round(microtime(1)-$tDeb,3);
$tD=microtime(1);
$ret=$this->iDb->select('villes.hexaviaVilles',
"idAdr56, codeInseeCom, libCom$norme, codeInseeGlobal, indPluridis, libLigne5n$norme, indRoudis, codePostal, libLigne6n$norme, codeInseePre, codeMaj$norme, dateMaj$norme, MATCH (codePostal, libCom38) AGAINST ('$cp $ville' IN NATURAL LANGUAGE MODE) AS score",
"(MATCH (codePostal, libCom38) AGAINST ('$cp $ville' IN NATURAL LANGUAGE MODE) OR MATCH (codePostal, libCom38) AGAINST ('$cp2 $ville' IN NATURAL LANGUAGE MODE)) ORDER BY score DESC /*OR codePostal='$cp' AND libCom$norme='$ville'*/", false, MYSQL_ASSOC);
$nbRet=count($ret);
if ($nbRet==0) {
$tabRetE=array(
'dureeV'=> round(microtime(1)-$tD, 3),
'errRNVPcode'=>'V0',
'errRNVPlib'=> "Aucune correspondance CP VILLE (cp=$cp, ville=$ville)");
$erreur=true;
} else {
foreach ($ret as $i=>$iRet) {
if ($debug) {
echo "je compare '$cp' avec '".$iRet['codePostal']."' et '$ville' avec '".$iRet["libCom$norme"]."' (".$iRet['idAdr56'].", score=".$iRet['score'].")".PHP_EOL;
}
if (($iRet['codePostal']==$cp || substr($iRet['codePostal'], 0, 2)==$cp2) && ($iRet["libCom$norme"]==$ville || preg_replace('/ 0/', ' ', $iRet["libCom$norme"])==$ville) || (strpos($iRet["libCom$norme"], $ville)>0 && $nbRet==1)) {
$idAdr56=$iRet['idAdr56'];
$dateMajHexavia=$iRet["dateMaj$norme"];
$codeMajHexaviaVille=$iRet["codeMaj$norme"];
$hexaViaComCod=$iRet['codeInseeCom'];
$hexaViaComLib=$iRet["libCom$norme"];
$hexaViaCP=$iRet['codePostal'];
$L5=$iRet["libLigne5n$norme"];
$L6=$iRet['codePostal'].' '.$iRet["libLigne6n$norme"];
$L7='';
$tabAdr56k[]=$idAdr56;
$tabAdr56L['_'.$idAdr56]=array('L5'=>$L5,'L6'=>$L6,'L7'=>$L7,);
$tabRetV=array(
'HexaviaDateRef'=> $dateMajHexavia,
'HexaviaCMAJVille'=>$codeMajHexaviaVille,
'HexaviaComCod'=> $hexaViaComCod,
'HexaviaComLib'=> $hexaViaComLib,
'HexaviaCP'=> $hexaViaCP,
'codeInseeGlobal'=> $iRet['codeInseeGlobal'],
'codeInseePre'=> $iRet['codeInseePre'],
'indPluridis'=> $iRet['indPluridis'],
'indRoudis'=> $iRet['indRoudis'],
'libLigne5'=> $iRet["libLigne5n$norme"],
'libLigne6'=> $iRet["libLigne6n$norme"],
'dureeV'=> round(microtime(1)-$tD, 3),
);
}
}
if (!$idAdr56) {
$iRet=$ret[0];
if ($debug) {
echo "On prend le score le + élevé s'il est > à 15 : je compare '$cp' avec '".$iRet['codePostal']."' et '$ville' avec '".$iRet["libCom$norme"]."' (".$iRet['idAdr56'].")".PHP_EOL;
}
//echo '['.trim(preg_replace('/ (1ER|2EME|3EME|\d+)/', ' ',$iRet["libCom$norme"])) .'-v/s-'.trim(preg_replace('/ (1ER|2EME|3EME|\d+)/', ' ',$ville)).']'.PHP_EOL;
if (($iRet['codePostal']==$cp || substr($iRet['codePostal'], 0, 2)==$cp2) && ($iRet["libCom$norme"]==$ville || (substr(trim(preg_replace('/ (1ER|2EME|3EME|\d+)/', ' ', $iRet["libCom$norme"])), 0, 26)==trim(preg_replace('/ (1ER|2EME|3EME|\d+)/', ' ', $ville)) && $iRet['score']>15) || (strpos($iRet["libCom$norme"], $ville)>0 && $nbRet==1))) {
$idAdr56=$iRet['idAdr56'];
$dateMajHexavia=$iRet["dateMaj$norme"];
$hexaViaComCod=$iRet['codeInseeCom'];
$hexaViaComLib=$iRet["libCom$norme"];
$hexaViaCP=$iRet['codePostal'];
$L5=$iRet["libLigne5n$norme"];
$L6=$iRet['codePostal'].' '.$iRet["libLigne6n$norme"];
$L7='';
$tabAdr56k[]=$idAdr56;
$tabAdr56L['_'.$idAdr56]=array('L5'=>$L5,'L6'=>$L6,'L7'=>$L7,);
$tabRetV=array(
'HexaviaDateRef'=> $dateMajHexavia,
'HexaviaCMAJVille'=>$codeMajHexaviaVille,
'HexaviaComCod'=> $hexaViaComCod,
'HexaviaComLib'=> $hexaViaComLib,
'HexaviaCP'=> $hexaViaCP,
'codeInseeGlobal'=> $iRet['codeInseeGlobal'],
'codeInseePre'=> $iRet['codeInseePre'],
'indPluridis'=> $iRet['indPluridis'],
'indRoudis'=> $iRet['indRoudis'],
'libLigne5'=> $iRet["libLigne5n$norme"],
'libLigne6'=> $iRet["libLigne6n$norme"],
'dureeV'=> round(microtime(1)-$tD, 3),
);
} else {
if ($debug) {
print_r($ret);
}
$erreur = true;
$tabRetE = array(
'dureeRnvp'=>round(microtime(1)-$tDeb, 3),
'errRNVPcode'=>'V2',
'errRNVPlib'=>"Plusieurs correspondances CP VILLE pour $cp $ville"
);
}
}
}
if ($erreur) {
return array_merge($tabRetI, $tabRetE);
}
// Ligne 4 : Découpage N° Répétition TypeVoie et LibelléVoie
$tD=microtime(1);
$matriculeHexavia=false;
$tabAdr=$this->iInsee->structureVoie($adrL4);
$numVoie=@$tabAdr['num'];
$indRep=@$tabAdr['indRep'];
$typeVoie=@$tabAdr['typeVoie'];
$libVoie=@$tabAdr['libVoie'];
$libVoie5=trim(substr($libVoie, 0, 5));
$derMot='';
if (preg_match('/([a-z\d]{1,20})$/i', $libVoie, $matches2)) {
$derMot=trim($matches2[1]);
}
$derMot5=trim(substr($derMot, 0, 5));
$strAdr56=implode("','", $tabAdr56k);
$ret=$this->iDb->select(
'villes.hexaviaVoies',
"idAdr56, codeVoie, derElemVoie, libVoie$norme, typeVoie, descLibVoie, indStand$norme, indScind, indHomo, codePostal, codeRoudis, codeMaj$norme, dateMaj$norme,
numImpMin, numImpMinExt, numImpMax, numImpMaxExt, numPairMin, numPairMinExt, numPairMax, numPairMaxExt, MATCH (codeInseeCom, libVoie38) AGAINST ('$hexaViaComCod $typeVoie $libVoie' IN NATURAL LANGUAGE MODE) AS score",
"idAdr56 IN ('$strAdr56') AND (MATCH (codeInseeCom, libVoie38) AGAINST ('$hexaViaComCod $typeVoie $libVoie' IN NATURAL LANGUAGE MODE) OR derElemVoie LIKE '$derMot5%') ORDER BY score DESC LIMIT 0,20
/*AND typeVoie='$typeVoie' AND derElemVoie='$derMot'*/", false, MYSQL_ASSOC
);
$nbRet=count($ret);
if ($nbRet==0) {
// Vérifier si la commune à des voies normées 98816
$ret=$this->iDb->select('villes.hexaviaVoies', "codeVoie", "idAdr56 IN('$strAdr56')", false, MYSQL_ASSOC);
$nbVoiesCom=count($ret);
if ($nbVoiesCom==0) {
$erreur=true;
if ($debug) {
echo "Aucune Voie recensée dans cette commune ('$strAdr56') !".PHP_EOL;
}
$tabRetE=array(
'dureeRnvp'=>round(microtime(1)-$tDeb, 3),
'errRNVPcode'=>'R0',
'errRNVPlib'=>"Aucune Voie recensée dans cette commune ('$strAdr56')"
);
} else {
$tabRetE=array(
'dureeRnvp'=>round(microtime(1)-$tDeb, 3),
'errRNVPcode'=>'R1',
'errRNVPlib'=>"Aucune correspondance Voie pour '$adrL4', '$libVoie' ($nbVoiesCom voies dans la commune #$idAdr56)"
);
}
return array_merge($tabRetI, $tabRetV, $tabRetE);
} else {
foreach ($ret as $i=>$iRet) {
$libVoieRet=preg_replace('/^[A-Z]{1,4}\s+/', '', $iRet["libVoie$norme"]);
if ($debug) {
echo "je compare '$typeVoie $libVoie' avec '".$iRet["typeVoie"]." $libVoieRet' ainsi que '$derMot' avec '". $iRet['derElemVoie']."'";
}
if ($iRet['typeVoie']==$typeVoie && ($iRet["libVoie$norme"]==$libVoie || $iRet['derElemVoie']==$derMot || substr($iRet['derElemVoie'], 0, 5)==$derMot5)) {
// echo ' OK';
$idAdr56=$iRet['idAdr56'];
$L4=preg_replace('/\s+/', ' ', trim($numVoie.' '.$indRep.' '.$iRet["libVoie$norme"]));
$L4=preg_replace('/^0+/', '', $L4);
$hexaViaVoie=$iRet["libVoie$norme"];
if (strlen($L4)>$norme) {
return "Taille de la ligne 4 générée en sortie plus longue que $norme !".PHP_EOL;
}
$matriculeHexavia=$iRet['codeVoie'];
$codeRoudis=$iRet['codeRoudis'];
$L5=$tabAdr56L['_'.$idAdr56]['L5'];
$L6=$tabAdr56L['_'.$idAdr56]['L6'];
$L7=$tabAdr56L['_'.$idAdr56]['L7'];
// Si c'est le meilleur score trouvé on sort
if ($iRet['score']>17 && isset($ret[$i+1]) && $iRet['score']>$ret[$i+1]['score']) {
break;
}
}
}
$dureeR=round(microtime(1)-$tD, 3);
if (!$matriculeHexavia) {
if ($debug) {
print_r($ret);
}
if ($debug) {
echo("Plusieurs correspondances Voies pour $adrL4 $adrL6 dans cette commune ('$strAdr56') !".PHP_EOL);
}
//die("Plusieurs correspondances Voies pour $adrL4 $adrL6 dans cette commune ('$strAdr56') !".PHP_EOL);
$tabRetE=array( 'dureeRnvp'=>round(microtime(1)-$tDeb, 3),
'errRNVPcode'=>'R2',
'errRNVPlib'=>"Plusieurs correspondances Voies pour $adrL4 $adrL6 dans cette commune ('$strAdr56')");
return array_merge($tabRetI, $tabRetV, $tabRetE);
}
}
if (!$matriculeHexavia && @strlen($L4)==0) {
$L4=$adrL4;
}
$tD=microtime(1);
$tabLen=$tabMaxLen=array();
$tabLen[1]=strlen($L1);
if ($tabLen[1]>$norme) {
$L1=$this->normaliseRS($L1, $norme);
if ($this->nomTronque==1) {
$L1tr=1;
}
$tabLen[1]=strlen($L1);
if ($tabLen[1]>$norme) {
$tabMaxLen[]=1;
}
}
$tabLen[2]=strlen($L2);
if ($tabLen[2]>$norme) {
$L2=$this->normaliseRS($L2, $norme);
if ($this->nomTronque==1) {
$L2tr=1;
}
$tabLen[2]=strlen($L2);
if ($tabLen[2]>$norme) {
$tabMaxLen[]=2;
}
}
$tabLen[3]=strlen($L3);
if ($tabLen[3]>$norme) {
$L3=$this->normaliseRS($L3, $norme);
if ($this->nomTronque==1) {
$L3tr=1;
}
$tabLen[3]=strlen($L3);
if ($tabLen[3]>$norme) {
$tabMaxLen[]=3;
}
}
$tabLen[4]=strlen($L4);
if ($tabLen[4]>$norme) {
$tabMaxLen[]=4;
}
$tabLen[5]=strlen($L5);
if ($tabLen[5]>$norme) {
$tabMaxLen[]=5;
}
$tabLen[6]=strlen($L6);
if ($tabLen[6]>$norme) {
$tabMaxLen[]=6;
}
$tabLen[7]=strlen($L7);
if ($tabLen[7]>$norme) {
$tabMaxLen[]=7;
}
$tabRetE=array(
'dureeRnvp'=>round(microtime(1)-$tDeb, 3),
'errRNVPcode'=>'00',
'errRNVPlib'=>"Normalisation OK"
);
if (count($tabMaxLen)>0) {
if ($j>1) {
$tabRetE = array(
'dureeRnvp'=>round(microtime(1)-$tDeb, 3),
'errRNVPcode'=>'O0',
'errRNVPlib'=>"Une des lignes fait plus de $norme caractères !"
);
}
}
$dureeN=round(microtime(1)-$tD, 3);
$tabRetR = array(
'L1'=>$L1,
'L2'=>$L2,
'L3'=>$L3,
'L4'=>$L4,
'L5'=>$L5,
'L6'=>$L6,
'L7'=>$L7,
'L1_tr'=>$L1tr,
'L2_tr'=>$L2tr,
'L3_tr'=>$L3tr,
'HexaVia56'=>$idAdr56,
'HexaViaVoie'=>$hexaViaVoie,
'HexaViaMat'=>$matriculeHexavia,
'RoudisId'=>$codeRoudis,
'dureeR'=>$dureeR,
'dureeN'=>$dureeN,
'dureeRnvp'=>round(microtime(1)-$tDeb, 3),
'dureeM'=>$dureeM*1.0,
);
$tabRet = array_merge($tabRetI, $tabRetV, $tabRetR, $tabRetE);
return $tabRet;
}
/**
* Tableau des abbréviations existantes par type d'abréviation
* @param string $typeAbrev
* @return array
*/
public function getAbreviations($typeAbrev)
{
$tabRet = array();
if ($typeAbrev == 'P') {
$ret = $this->iDb->select(
'villes.tabPrenoms',
"prenom",
"LENGTH(prenom)>3 AND nbTot>0 ORDER BY LENGTH(prenom) DESC", false, MYSQL_ASSOC);
foreach ($ret as $iRet) {
$tabTmp = explode('-', $iRet['prenom']);
$tabTmp2 = array();
foreach ($tabTmp as $subPrenom) {
$tabTmp2[]=substr($subPrenom, 0, 1);
}
$tabRet[$iRet['prenom']] = implode('-', $tabTmp2);
}
} else {
$ret = $this->iDb->select(
'villes.tabAbreviations',
"abrCode, abrLib",
"abrType='$typeAbrev' AND dateSuppr=0 AND idSuppr=0 ORDER BY LENGTH(abrLib) DESC, LENGTH(abrCode) ASC", false, MYSQL_ASSOC);
foreach ($ret as $iRet) {
$tabTmp = explode('/', $iRet['abrLib']);
foreach ($tabTmp as $abrLib) {
if ($typeAbrev == 'A') {
$tabRet[$abrLib] = '';
} else {
$tabRet[$abrLib] = $iRet['abrCode'];
}
}
}
}
return $tabRet;
}
/**
* Normalise une raison sociale ou un nom
* @param string $nomLong
* @param number $taille
* @param string $debug
* @return mixed
*/
public function normaliseRS($nomLong, $taille=38, $debug=false)
{
$nomCourt = preg_replace('/[^A-Z0-9%@&\'\(\)\"\-\*\/\s\+]/', '', trim(strtoupper($nomLong)));
$tabMots = preg_split("[^[:alpha:]]+", $nomCourt);
$passage = 0;
$this->nomTronque = 0;
while (strlen($nomCourt) > $taille) {
// 1. Remplacement des Libellés de Voies par leurs code Voie
$tabTmp = $this->getAbreviations('V');
foreach ($tabTmp as $lib=>$abr) {
$nomCourt = trim(str_replace(" $lib".'ES ', ' '.$abr.' ', " $nomCourt "));
$nomCourt = trim(str_replace(" $lib".'E ', ' '.$abr.' ', " $nomCourt "));
$nomCourt = trim(str_replace(" $lib".'S ', ' '.$abr.' ', " $nomCourt "));
$nomCourt = trim(str_replace(" $lib ", ' '.$abr.' ', " $nomCourt "));
if (strlen($nomCourt) <= $taille) {
break;
}
}
if ($debug) {
echo "1-Voies=$nomCourt".PHP_EOL;
}
if (strlen($nomCourt) <= $taille) {
break;
}
// 2. Remplacement des Titres par leurs abréviation
$tabTmp = $this->getAbreviations('T');
foreach ($tabTmp as $lib=>$abr) {
$nomCourt = trim(str_replace(" $lib".'ES ', ' '.$abr.' ', " $nomCourt "));
$nomCourt = trim(str_replace(" $lib".'E ', ' '.$abr.' ', " $nomCourt "));
$nomCourt = trim(str_replace(" $lib".'S ', ' '.$abr.' ', " $nomCourt "));
$nomCourt = trim(str_replace(" $lib ", ' '.$abr.' ', " $nomCourt "));
if (strlen($nomCourt) <= $taille) {
break;
}
}
if ($debug) {
echo "2a-Titres=$nomCourt".PHP_EOL;
}
if (strlen($nomCourt) <= $taille) {
break;
}
// 2. Remplacement des Formes Juridiques
$tabTmp = $this->getAbreviations('J');
foreach ($tabTmp as $lib => $abr) {
$nomCourt = trim(str_replace(" $lib ", ' '.$abr.' ', " $nomCourt "));
}
if ($debug) {
echo "2b-FJ=$nomCourt".PHP_EOL;
}
if (strlen($nomCourt) <= $taille) {
break;
}
// 4. Suppression des articles
$tabTmp = $this->getAbreviations('A');
foreach ($tabTmp as $lib => $abr) {
if (strpos($lib, "'") > 0) {
$nomCourt = trim(str_replace(' '.$lib, ' ', " $nomCourt "));
} else {
$nomCourt = trim(str_replace(" $lib ", ' ', " $nomCourt "));
}
if (strlen($nomCourt) <= $taille) {
break;
}
}
if ($debug) {
echo "4-Articles=$nomCourt".PHP_EOL;
}
if (strlen($nomCourt) <= $taille) {
break;
}
// 3. Remplacement des Prénoms par leurs initiales
$tabTmp = $this->getAbreviations('P');
foreach ($tabTmp as $lib => $abr) {
$nomCourt = trim(str_replace(" $lib ", ' '.$abr.' ', " $nomCourt "));
if (strlen($nomCourt) <= $taille) {
break;
}
}
if ($debug) {
echo "3-Prenoms=$nomCourt".PHP_EOL;
}
if (strlen($nomCourt) <= $taille) {
break;
}
$tabTmp = $this->getAbreviations('N');
foreach ($tabTmp as $lib => $abr) {
$nomCourt = trim(str_replace(" $lib".'ES ', ' '.$abr.' ', " $nomCourt "));
$nomCourt = trim(str_replace(" $lib".'E ', ' '.$abr.' ', " $nomCourt "));
$nomCourt = trim(str_replace(" $lib".'S ', ' '.$abr.' ', " $nomCourt "));
$nomCourt = trim(str_replace(" $lib ", ' '.$abr.' ', " $nomCourt "));
if (strlen($nomCourt) <= $taille) {
break;
}
}
if ($debug) {
echo "5-Autres Noms=$nomCourt".PHP_EOL;
}
if (strlen($nomCourt) <= $taille) {
break;
}
$nomCourt = substr($nomCourt, 0, $taille);
$this->nomTronque = 1;
$passage++;
}
return $nomCourt;
}
/**
* Code Insee de la commune libCom32 Libellé de la commune (Ancienne norme 32) libCom38 Libellé
* @param string $codeInsee
* @param number $norme
* @return string
*/
public function getLibCommune($codeInsee, $norme = 38)
{
if ($norme != 32 && $norme != 38) {
return 'La norme doit être 32 ou 38 caractères (38 par défaut)'.PHP_EOL;
}
$ret = $this->iDb->select(
'villes.hexaviaVilles',
"libCom32 , libCom38",
"codeInseeCom='$codeInsee' LIMIT 0,1", false, MYSQL_ASSOC);
$nbRet = count($ret);
if ($nbRet == 0 && $codeInsee > 99000) {
$codePaysInsee = substr($codeInsee, 2, 3);
$ret = $this->iDb->select(
'jo.tabPays',
"SUBSTRING(libPays,1,32) AS libCom32, SUBSTRING(libPays,1,38) AS libCom38",
"codePaysInsee='$codeInsee' ORDER BY dependance ASC LIMIT 0,1", false, MYSQL_ASSOC);
$nbRet = count($ret);
}
if ($nbRet == 0) {
return 'Aucune correspondance VILLE';
} elseif ($norme == 32) {
return $ret[0]['libCom32'];
} else {
return $ret[0]['libCom38'];
}
}
/**
* Code postal depuis le code Insee
* @param string $codeInsee
* @return boolean
*/
public function getCPCommune($codeInsee)
{
$ret = $this->iDb->select('villes.hexaviaVilles', "codePostal",
"codeInseeCom='$codeInsee' GROUP BY codePostal", false, MYSQL_ASSOC);
$nbRet = count($ret);
if ($nbRet == 1) {
return $ret[0]['codePostal'];
}
return false;
}
/**
*
* @param unknown $libelleCommune
* @param string $depOuCp
* @param string $debug
* @return string
*/
public function getCodCommune($libelleCommune, $depOuCp = '', $debug = false)
{
$norme = 38;
$codeCommune = false;
$cp = $depOuCp;
$cp2 = substr($cp, 0, 2);
$ret = $this->iDb->select('villes.hexaviaVilles',
"idAdr56, codeInseeCom, libCom$norme, codeInseeGlobal, indPluridis, libLigne5n$norme, indRoudis, codePostal, libLigne6n$norme, codeInseePre, codeMaj$norme, dateMaj$norme, MATCH (codePostal, libCom38) AGAINST ('$depOuCp $libelleCommune' IN NATURAL LANGUAGE MODE) AS score",
"MATCH (codePostal, libCom38) AGAINST ('$depOuCp $libelleCommune' IN NATURAL LANGUAGE MODE) ORDER BY score DESC", false, MYSQL_ASSOC);
$nbRet = count($ret);
if ($nbRet == 0) {
return false;
} else {
foreach ($ret as $i=>$iRet) {
if ($debug) {
echo "je compare '$depOuCp' avec '".$iRet['codePostal']."' et '$libelleCommune' avec '".$iRet["libCom$norme"]."' (".$iRet['idAdr56'].", score=".$iRet['score'].")".PHP_EOL;
}
if (($depOuCp!='' && ($iRet['codePostal']==$cp || substr($iRet['codePostal'], 0, 2)==$cp2)) && ($iRet["libCom$norme"]==$libelleCommune || preg_replace('/ 0/', ' ', $iRet["libCom$norme"])==$libelleCommune) || (strpos($iRet["libCom$norme"], $libelleCommune)>0 && $nbRet==1)) {
$codeCommune = $iRet['codeInseeCom'];
if ($iRet['score']>17) {
break;
}
}
}
if (!$codeCommune) {
$iRet = $ret[0];
if ($debug) {
echo "On prend le score le + élevé s'il est > à 15 : je compare '$cp' avec '".$iRet['codePostal']."' et '$libelleCommune' avec '".$iRet["libCom$norme"]."' (".$iRet['idAdr56'].")".PHP_EOL;
}
if ($debug) {
echo '['.trim(preg_replace('/ (1ER|2EME|3EME|\d+)/', ' ', $iRet["libCom$norme"])) .'-v/s-'.trim(preg_replace('/ (1ER|2EME|3EME|\d+)/', ' ', $libelleCommune)).']'.PHP_EOL;
}
if (($depOuCp != '' && ($iRet['codePostal']==$cp || substr($iRet['codePostal'], 0, 2)==$cp2)) && ($iRet["libCom$norme"]==$libelleCommune || (substr(trim(preg_replace('/ (1ER|2EME|3EME|\d+)/', ' ', $iRet["libCom$norme"])), 0, 26)==trim(preg_replace('/ (1ER|2EME|3EME|\d+)/', ' ', $libelleCommune)) && $iRet['score']>15) || (strpos($iRet["libCom$norme"], $libelleCommune)>0 && $nbRet==1))) {
$codeCommune=$iRet['codeInseeCom'];
}
}
}
return $codeCommune;
}
/**
*
* @param unknown $L1
* @param unknown $L2
* @param unknown $L3
* @param unknown $L4
* @param unknown $L5
* @param unknown $L6
* @param string $L7
*/
public function normaliseAdresse76310($L1, $L2, $L3, $L4, $L5, $L6, $L7 = '')
{
$tDeb = microtime(1);
$tabRetR = $tabRetE = array();
$cp = substr(trim($L6), 0, 5);
$cp2 = substr($cp, 0, 2);
$ville = trim(strtr(substr($L6, 5), array(' SAINT '=>' ST ', ' SAINTE '=>' STE ')));
$ville = preg_replace('/ CEDEX\s?.*$/ui', '', $ville);
$tabRetI = array(
'operateurRnvp'=>'76310WEB',
'in_cp'=>$cp,
'in_dep'=>$cp2,
'in_ville'=>$ville,
'in_L1'=>trim($L1),
'in_L2'=>trim($L2),
'in_L3'=>trim($L3),
'in_L4'=>trim($L4),
'in_L5'=>trim($L5),
'in_L6'=>trim($L6),
'in_L7'=>trim($L7)
);
$client = new SoapClient('http://www.rnvp-en-ligne.com/service_v5.asmx?wsdl');
$nbEssais = 1;
$array = array(
'pi_session' => '-1',
'pi_user' => 'SDPROD',
'pi_password' => '7631014530',
'pi_codedossier' => '0001',
'pi_numfichier' => '1',
'pi_rsoc' => utf8_encode($L1),
'pio_cnom' => utf8_encode($L2), // Ligne 2
'pio_cadrs' => utf8_encode($L3), // Ligne 3
'pio_adresse' => utf8_encode($L4), // Ligne 4
'pio_lieudit' => utf8_encode($L5), // Ligne 5
'pio_cpville' => utf8_encode($L6), // Ligne 6
'pio_pays' => utf8_encode($L7), // Ligne 7
);
while (1) {
try {
$result = $client->Elfyweb_RNVP_Expert_V50($array);
$tabRetR=array(
'L1' => $L1,
'L2' => $L2,
'L3' => strtoupper(utf8_decode($result->pio_cadrs)),
'L4' => strtoupper(utf8_decode($result->pio_adresse)),
'L5' => strtoupper(utf8_decode($result->pio_lieudit)),
'L6' => strtoupper(utf8_decode($result->pio_cpville)),
'Cp' => $result->po_cp,
'Ville' => $result->po_ville,
'Insee' => $result->po_insee,
'dureeRnvp' => round(microtime(1)-$tDeb, 3),
);
if (@$result->pio_pays != 'FRA') {
$tabRet['L7'] = $result->pio_pays;
}
break;
} catch (SoapFault $fault) {
$nbEssais++;
if ($nbEssai < 5) {
continue;
}
$tabRetE = array(
'dureeRnvp' => round(microtime(1)-$tDeb, 3),
'errRNVPcode' => 'S0',
'errRNVPlib' => "Erreur SOAP : ".print_r($fault, 1));
}
}
$tabRet = array_merge($tabRetI, $tabRetR, $tabRetE);
return $tabRet;
}
/**
*
* @param string $cqadrs
* @param string $correctionDouteuse
* @return number
*/
public function getLibQualiteAdresse76310($cqadrs, $correctionDouteuse)
{
switch ($cqadrs*1) {
case 10: // Adresse correcte
case 20: // Adresse correcte (Voie non reconue dans un CEDEX ou BP)
case 21: // Adresse correcte mais numéro de facade hors borne (petite ville)
case 22: // Adresse correcte mais numéro de facade absent (petite ville)
case 23: // Adresse correcte mais numéro de facade hors borne (grande ville)
case 24: // Adresse correcte mais numéro de facade absent (grande ville)
$cqRnvpSed = 1;
break;
case 31: // Voie non reconnue (petite ville, quartier reconnu)
case 51: // Voie non reconnue (grande ville, quartier reconnu)
$cqRnvpSed = 2;
break;
case 30: // Voie non reconnue (petite ville)
case 50: // Voie non reconnue (grande ville)
$cqRnvpSed = 3;
break;
case 40: // Voie absente (petite ville, quartier reconnu)
case 41: // Voie absente (petite ville)
case 60: // Voie absente (grande ville, quartier reconnu)
case 61: // Voie absente (grande ville)
$cqRnvpSed = 4;
break;
case 70: // Voie présente mais Cp/Ville non corrigeable
case 80: // Voie absente et Cp/Ville non corrigeable
$cqRnvpSed = 5;
break;
default:
$cqRnvpSed = 0;
break;
}
if ($correctionDouteuse == 'D') {
$cqRnvpSed = 0;
}
return $cqRnvpSed;
}
/**
* Adresse RNVP
* @param int $source
* @param int $source_id
* @param number $num
* @return array
*/
public function getAdresseRnvpSource($source, $source_id, $num=0)
{
$ret = $this->iDb->select('villes.rnvpSources',
'id, source, source_id, num, L1rnvp, L2rnvp, L3rnvp, L4rnvp, L5rnvp, L6rnvp, L7rnvp, Pays, dateInsert,
operateurRnvp, dateEnvoiRnvp, dateRetourRnvp, codeRetour, NumVoie, BisTer, TypeVoieCourt, TypeVoieLong, LibVoie,
Cp, Ville, Insee, CQadrs, CorrectionImportante, CorrectionDouteuse, HexaCle, CQL3, InseeGlobal, OldInsee,
IsInseeReconstitue, NumDept, IdHexavia, IdHexaposte, Iris_Rivoli, Iris_Ilot99, Iris_CodeIris, Iris_Canton,
Iris_Zus, Iris_Zfu, CqIris, dateUpdate',
"source=$source AND source_id=$source_id AND num=$num LIMIT 0,1", false, MYSQL_ASSOC);
$tabRet = $ret[0];
$tabRet['CQadrsLib'] = $this->tabAdrCQ[$tabRet['CQadrs']];
$tabRet['CQAdrRnvp'] = $this->getLibQualiteAdresse76310($tabRet['CQadrs'], $tabRet['CorrectionDouteuse']);
return $tabRet;
}
}

View File

@ -1,161 +0,0 @@
<?php
class Metier_Partenaires_MTel
{
/**
* PDO Connection with Doctrine
* @var \Doctrine\DBAL\Connection
*/
protected $conn;
/**
* Logger
* @var \Monolog\Logger
*/
protected $logger;
/**
* Tel
*/
public function __construct()
{
$this->conn = Zend_Registry::get('doctrine');
if (Zend_Registry::isRegistered('logger')) {
$this->logger = Zend_Registry::get('logger');
}
}
/**
* Information contact
* @param string $siret
* @param string $nic
* @param boolean $last
* @param int $actif
* @return array Retourne une liste de téléphone
*/
public function getTel($siret, $nic=0, $last=false, $actif=null)
{
$tabRet = array();
if (strlen($siret) > 9) {
$nic = substr($siret, -5)*1;
$siren = round($siret/100000)*1;
} else {
$siren = $siret*1;
}
if ($siren < 1000) {
return $tabRet;
}
/** Si le siren est de taille < à 9, on ajoute des 0 significatifs **/
if (strlen($siren) <= 9) {
$siren = str_pad($siren, 9, '0', STR_PAD_LEFT);
}
if (strlen($nic) > 0) {
$nic = str_pad($nic, 5, '0', STR_PAD_LEFT);
}
$strNic = '';
if ($nic*1 > 0) {
$strNic = "AND (nic=$nic OR nic=0)";
}
$strActif = '';
if ($actif == 1) {
$strActif = " AND actif=1 ";
} elseif ($actif == 0) {
$strActif = " AND actif=0 ";
}
$sql = "SELECT siren, nic, dateProvPartenaire, typeTel, infoTel, LPAD(telephone,10,0) AS telephone,
actif, partenaire, idUtilisateur, dateInsert, dateInsert*1 AS dateInsertYmd, dateConfPartenaire,
partenaireConf, nbConf, idUpdate, dateUpdate, dateUpdate*1 AS dateUpdateYmd
FROM jo.telephonie WHERE siren=:siren $strNic $strActif AND dateSuppr=0
ORDER BY typeTel ASC, nbConf DESC";
$nb = 0;
try {
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('siren', $siren);
$stmt->execute();
$nb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
return $tabRet;
}
if ($nb > 0) {
$this->enCache = true;
while ($tabTel = $stmt->fetch(\PDO::FETCH_ASSOC)) {
if ($tabTel['typeTel'] == 'an8' && $tabTel['infoTel']*1 > 0) {
$an8 = $tabTel['infoTel']*1;
$sql = "SELECT libAn8 FROM jo.tabAn8 WHERE codAn8='$an8'";
$an8Nb = 0;
try {
$an8Stmt = $this->conn->executeQuery($sql);
$an8Nb = $an8Stmt->rowCount();
} catch(\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
$infoTel = '';
if ($an8Nb > 0) {
$result = $an8Stmt->fetch(\PDO::FETCH_ASSOC);
$label = $result['libAn8'];
$infoTel = ucfirst(strtolower($label));
}
} else {
$infoTel = $tabTel['infoTel'];
}
if ($tabTel['partenaireConf'] > 0) {
$source = $tabTel['partenaireConf'];
} else {
$source = $tabTel['partenaire'];
}
if ($tabTel['dateUpdateYmd'] > $tabTel['dateInsertYmd']) {
$dateMAJ = $tabTel['dateUpdateYmd'];
} else {
$dateMAJ = $tabTel['dateInsertYmd'];
}
$tabR = array(
'siren' => $siren,
'nic' => $tabTel['nic'],
'typeTel' => $tabTel['typeTel'],
'infoTel' => $infoTel,
'telephone' => $tabTel['telephone'],
'actif' => $tabTel['actif'],
'source' => $source,
'dateMAJ' => $dateMAJ,
);
$tabRet[] = $tabR;
if ($last) {
if ($source == 175 && !@isset($tabLast[$tabTel['typeTel']][1])) {
@$tabLast[$tabTel['typeTel']][1] = $tabR;
} elseif (($source == 118 || $source == 250 || $source == 253) &&
!@isset($tabLast[$tabTel['typeTel']][2])) {
@$tabLast[$tabTel['typeTel']][2] = $tabR;
} elseif ($source != 2 && !@isset($tabLast[$tabTel['typeTel']][3])) {
@$tabLast[$tabTel['typeTel']][3] = $tabR;
} elseif ($source == 2 && !@isset($tabLast[$tabTel['typeTel']][4])) {
@$tabLast[$tabTel['typeTel']][4] = $tabR;
}
}
}
}
if ($last) {
$tabRet = array();
if ($tabLast != null && count($tabLast) > 0) {
foreach ($tabLast as $typeTel=>$tabPriorite) {
ksort($tabPriorite);
$tabRet[] = current($tabPriorite);
}
}
}
return $tabRet;
}
}

View File

@ -1,370 +0,0 @@
<?php
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
class Metier_Partenaires_MTva
{
public $vatNumber = ''; // Numéro de TVA retourné
public $vatDefined = false; // Le numéro de TVA est il validé ?
public $errnum = 0; // Numéro de l'erreur en cas d'erreur
public $errmsg = ''; // Message de l'erreur en cas d'erreur
/**
* SIREN
* @var string
*/
protected $siren;
/**
* Cle de l'algorithme VAT
* @var string
*/
protected $cle;
/**
* PDO Connection with Doctrine
* @var \Doctrine\DBAL\Connection
*/
protected $conn;
/**
* Logger
* @var \Monolog\Logger
*/
protected $logger;
/**
* Remote Flag
* @var boolean
*/
protected $remote = false;
/**
* TVA
* @return boolean
*/
public function __construct()
{
$this->conn = Zend_Registry::get('doctrine');
if (Zend_Registry::isRegistered('logger')) {
$this->logger = Zend_Registry::get('logger');
}
}
/**
* Return TVA Struct
* @param unknown $db
* @return boolean
*/
public function getTVA()
{
if ($this->siren * 1 < 000001000) {
$this->vatNumber = 'FR00000000000';
$this->vatDefined = false;
return false;
}
$cleAlgo = $this->genereCleFr();
if ($cleAlgo < 10) {
$this->cle = '0'.$cleAlgo;
} else {
$this->cle = ''.$cleAlgo;
}
$tabRep = array();
if (!$this->valideSiren($this->siren) && substr($this->siren, 0, 4) != '0000') {
$this->errnum = 102;
$this->errmsg = 'Siren invalide';
return false;
}
$exist = false;
$sql = "SELECT LPAD(cle,2,0) AS cle, DATE_FORMAT(dateMod,'%Y%m%d') as DateMAJ
FROM sdv1.siren_tva WHERE siren=:siren";
$stmtNb = 0;
try {
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('siren', $this->siren);
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
$exist = true;
$result = $stmt->fetch(\PDO::FETCH_OBJ);
$cle = $result->cle;
$dateRef = new DateTime();
$dateRef->sub(new DateInterval('P6M'));
$dateMaj = DateTime::createFromFormat('Ymd', $result->DateMAJ);
$this->vatNumber = "FR".$this->cle.$this->siren;
if ($cle !== null | $cle != 0) {
$this->vatDefined = true;
return true;
} elseif (($cle === null || $cle == 0) && $dateMaj >= $dateRef) {
$this->vatDefined = false;
return true;
}
}
if ($this->remote) {
return $this->getRemoteVAT($exist);
} else {
$this->vatNumber = "FR".$this->cle.$this->siren;
$this->vatDefined = false;
$this->errnum = 999;
$this->errmsg = "Pas d'accès à la base TVA";
return true;
}
if ($this->logger !== null) {
$this->logger->error("Erreur impossible (car l'algo ne devrait pas passer par ici) sur le Siren $siren, numéro de TVA = FR $cle $siren. Cas impossible !");
}
return true;
}
/**
* Active la récupération des données distantes
*/
public function setRemote()
{
$this->remote = true;
}
/**
* Id Company
* @param string $siren
*/
public function setCompanyId($siren)
{
$this->siren = str_pad($siren, 9, '0', STR_PAD_LEFT);
}
/**
* Get Data form website
* @param boolean $exist
* @return boolean
*/
protected function getRemoteVAT($exist)
{
$url = 'http://ec.europa.eu/taxation_customs/vies/vatResponse.html';
$client = new Client();
try {
$timeStart = microtime(true);
$response = $client->request('POST', $url, [
'form_params' => [
'memberStateCode' => "FR",
'number' => $this->cle.$this->siren,
'traderName' => "",
'traderStreet' => "",
'traderPostalCode' => "",
'traderCity' => "",
'requesterMemberStateCode' => "FR",
'requesterNumber' => $this->cle.$this->siren,
'action' => "check",
'check' => "Vérifier",
],
]);
$timeStop = microtime(true);
$time = $timeStop - $timeStart;
if ($response->getStatusCode() == 200) {
$body = $response->getBody();
if (preg_match('/Yes, valid VAT number/i', $body)
|| preg_match('/Oui, numéro de TVA valide/i', $body)) {
if ($exist) {
try {
$this->conn->update('sdv1.siren_tva', array('cle' => intval($this->cle),
'duree' => $time), array('siren' => $this->siren));
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
} else {
try {
$this->conn->insert('sdv1.siren_tva', array('siren' => $this->siren,
'cle' => intval($this->cle), 'duree' => $time));
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
}
$this->vatNumber = "FR".$this->cle.$this->siren;
$this->vatDefined = true;
return true;
}
}
} catch (RequestException $e) {
$this->logger->error($e->getMessage());
}
// Non disponible
if ($exist) {
try {
$this->conn->update('sdv1.siren_tva', array('cle' => 'NULL', 'duree' => $time),
array('siren' => $this->siren));
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
} else {
try {
$this->conn->insert('sdv1.siren_tva', array('siren' => $this->siren,
'cle' => 'NULL', 'duree' => $time));
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
}
$this->vatNumber = "FR".$this->cle.$this->siren;
$this->vatDefined = false;
return true;
}
/**
* Génère la clé du numéro de TVA pour le siren fournit
* (la validité du numéro de siren et son existance n'est pas effectué par cette méthode)
*
* @return number
* La clé du numéro de TVA
*/
private function genereCleFr()
{
// Position du chiffre SIREN (1 à 9)
$tabFirst = array(
array( 0, 0, 0, 0, 0, 0, 0, 0, 0),
array(62,47,94,89,40,06,22,43,16),
array(14,81,78,68,67,96,31,73,19),
array(63,18,62,47,94,89,40,06,22),
array(15,52,46,26,24,82,49,36,25),
array(64,86,30,05,51,75,58,66,28),
array(16,23,14,81,78,68,67,96,31),
array(65,57,95,60, 8,61,76,29,34),
array(17,91,79,39,35,54,85,59,37),
array(66,28,63,18,62,47,94,89,40),
);
// Chiffre 0 à 9
$tabPoids = array(1,34,-16,-21,27,-7,9,30,3);
$cle = $first = 0;
for ($pos=0; $pos<9; $pos++) {
$chiffre = $this->siren[$pos];
if ($first == 0) {
$first = $cle = $tabFirst[$chiffre][$pos];
} else {
$cle += $tabPoids[$pos] * $chiffre;
}
}
while (true) {
if ($cle > 96) {
$cle = $cle - 97;
} elseif ($cle < 0) {
$cle = $cle + 97;
} else {
break;
}
}
if ($cle == 0) {
return 96;
}
return ($cle-1);
}
/**
* Test de la validité du siren demandé
*
* @param int SIREN à tester
* @param int NIC (facultatif)
* @param mixed Message textuel d'erreur à afficher en cas d'erreur ou false
* @return mixed true, false ou Message d'erreur passé en paramètre
*/
private function valideSiren($siren, $nic='', $erreur=false)
{
$siren = str_pad($siren, 9, '0', STR_PAD_LEFT);
if (!empty($nic)) {
$nic = str_pad($nic, 5, '0', STR_PAD_LEFT);
}
//Siren non précisé ou incorrect.
if (!Metier_Util_String::valideData($siren, 9, 9, 'N')) {
return $erreur;
}
// Siren vide
elseif (intval($siren) == 0) {
return $erreur;
} else {
if (!isset($nic) || trim($nic)=='') {
$somme = 0;
// Traitement IMPAIR
for ($i=0; $i<=8; $i+=2) {
$somme+= (integer) substr($siren, $i, 1);
}
// Traitement PAIR
for ($i=1; $i<=7; $i+=2) {
$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;
}
// Le Siren est faux
if ((integer) ($somme/10) != ($somme/10)) {
// Les siren débutant par 200 sont toujours valides (sirens provisoires de la BDF?!)
if (substr($siren, 0, 3) != '200') {
return $erreur;
}
}
} else {
// Nic de format incorrect.
if (!Metier_Util_String::valideData($nic, 1, 5, 'N')) {
return $erreur;
}
$SIRET = $siren.$nic;
if ($siren == '356000000') {
// 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);
}
// Le NIC de l'établissement de LA POSTE est faux !
if ($somme%5 != 0) {
return $erreur;
}
} else {
$somme=0;
// Traitement PAIR
for ($i=0; $i<=12; $i+=2) {
$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;
}
// Traitement IMPAIR
for ($i=1; $i<=13; $i+=2) {
$somme+= (integer) substr($SIRET, $i, 1);
}
// Le Siret est faux
if ((integer) ($somme/10) != ($somme/10)) {
return $erreur;
}
}
}
}
return true;
}
}

View File

@ -1,162 +0,0 @@
<?php
class Metier_Rnvp_Adresse
{
protected $source;
protected $sourceId;
protected $columns = array(
'L1rnvp',
'L2rnvp',
'L3rnvp',
'L4rnvp',
'L5rnvp',
'L6rnvp',
'L7rnvp',
'dateRetourRnvp',
'codeRetour',
'LPAD(Insee,5,0) as Insee',
'CorrectionImportante',
'CorrectionDouteuse',
'CQadrs',
'HexaCle',
'NumDept',
'IdHexavia',
'IdHexaposte',
'Iris_Rivoli',
'Iris_Ilot99',
'Iris_CodeIris',
'Iris_Canton',
'Cdx_Matricule',
'Cdx_V5Geo',
'Cdx_V6Geo',
'Cdx_V5Cdx',
'Cdx_V6Cdx',
'dateInsert',
'dateUpdate',
);
/**
* PDO Connection with Doctrine
* @var \Doctrine\DBAL\Connection
*/
protected $conn;
/**
* Récupération de l'adresse normalisé
* @param \Doctrine\DBAL\Connection $conn
*/
public function __construct($conn = null)
{
if ($conn === null) {
$this->conn = Zend_Registry::get('doctrine');
} else {
$this->conn = $conn;
}
}
/**
*
* @param unknown $companyId
*/
public function setCompanyId($companyId)
{
$this->source = substr($companyId, 0, 3);
$this->sourceId = substr($companyId, 3, 20);
}
/**
* Id de l'entreprise à partir du siret
* @param string $companyId
* @throws Exception
* @return NULL
*/
public function setCompanyIdProxy($companyId)
{
try {
$sql = "SELECT LPAD(source,3,0) AS source AND LPAD(source_id,20,0) AS source_id
FROM jo.etablissements WHERE siren=:siren AND nic=:nic";
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('siren', substr($companyId, 0, 9));
$stmt->bindValue('nic', substr($companyId, 9, 5));
$stmt->execute();
if ($stmt->rowCount() == 0) {
return null;
} else {
$etabResult = $stmt->fetch(\PDO::FETCH_OBJ);
$this->source = $etabResult->source;
$this->sourceId = $etabResult->source_id;
}
} catch (\Doctrine\DBAL\DBALException $e) {
throw new Exception($e->getMessage(), 'ERR');
}
}
/**
* Formattage de l'adresse normalisé
* @return stdClass
* @throws Exception
*/
public function format()
{
try {
$qb = $this->conn->createQueryBuilder();
$qb->select($this->columns)
->from('villes.rnvpSources')
->where('source = :source')->setParameter('source', $this->source)
->andWhere('source_id = :sourceId')->setParameter('sourceId', $this->sourceId);
$stmt = $qb->execute();
if ($stmt->rowCount() == 0) {
return null;
}
$rnvpResult = $stmt->fetch(\PDO::FETCH_OBJ);
$rnvp = new stdClass();
$rnvp->L1 = $rnvpResult->L1rnvp;
$rnvp->L2 = $rnvpResult->L2rnvp;
$rnvp->L3 = $rnvpResult->L3rnvp;
$rnvp->L4 = $rnvpResult->L4rnvp;
$rnvp->L5 = $rnvpResult->L5rnvp;
$rnvp->L6 = $rnvpResult->L6rnvp;
$rnvp->L7 = $rnvpResult->L7rnvp;
$rnvp->ProcessCode = $rnvpResult->codeRetour;
$process = new Metier_Rnvp_Process();
$correction = '';
if ($rnvpResult->CorrectionImportante == 'I') {
$correction = $rnvpResult->CorrectionImportante;
}
if ($rnvpResult->CorrectionDouteuse == 'D') {
$correction = $rnvpResult->CorrectionDouteuse;
}
$rnvp->ProcessLabel = $process->getLabel($rnvpResult->codeRetour, $correction);
$rnvp->ProcessDate = $rnvpResult->dateRetourRnvp;
// Label CQadrs
$rnvp->QualityCode = $rnvpResult->CQadrs;
$quality = new Metier_Rnvp_Quality();
$rnvp->QualityLabel = $quality->getLabel($rnvp->QualityCode);
$rnvp->GeoInseeCommune = $rnvpResult->Insee;
$rnvp->GeoHexavia = $rnvpResult->IdHexavia;
$rnvp->GeoHexapost = $rnvpResult->IdHexaposte;
$rnvp->GeoHexacle = $rnvpResult->HexaCle;
$rnvp->GeoDepartement = $rnvpResult->NumDept;
$rnvp->GeoRivoliCode = $rnvpResult->Iris_Rivoli;
$rnvp->GeoIlot = $rnvpResult->Iris_Ilot99;
$rnvp->GeoIris = $rnvpResult->Iris_CodeIris;
$rnvp->GeoCanton = $rnvpResult->Iris_Canton;
$rnvp->CedexaMatricule = $rnvpResult->Cdx_Matricule;
$rnvp->CedexaGeoL5 = $rnvpResult->Cdx_V5Geo;
$rnvp->CedexaGeoL6 = $rnvpResult->Cdx_V6Geo;
$rnvp->CedexaCdxL5 = $rnvpResult->Cdx_V5Cdx;
$rnvp->CedexaCdxL6 = $rnvpResult->Cdx_V6Cdx;
$rnvp->DateInsert = $rnvpResult->dateInsert;
$rnvp->DateUpdate = $rnvpResult->dateUpdate;
} catch (\Doctrine\DBAL\DBALException $e) {
throw new Exception($e->getMessage(), 'ERR');
}
return $rnvp;
}
}

View File

@ -1,36 +0,0 @@
<?php
class Metier_Rnvp_Process
{
public function __construct()
{
}
/**
* Libelle de traitement
* @param string $code
* @param string $correction
*/
public function getLabel($code, $correction)
{
$label = '';
switch ($code) {
case 'ND':
$label = "ND";
break;
case 'KO':
$label = "KO";
break;
case 'OK':
$label = "Adresse correcte";
if ($correction == 'I') {
$label = "Adresse avec correction(s) importante(s)";
}
if ($rnvpResult->CorrectionDouteuse == 'D') {
$label = "Adresse mais correction(s) douteuse(s)";
}
break;
}
return $label;
}
}

View File

@ -1,45 +0,0 @@
<?php
class Metier_Rnvp_Quality
{
/**
* Libellé des codes qualités
* @var array
*/
protected $labels = array(
'10' => "Adresse correcte",
'20' => "Adresse correcte (Voie non reconnue, mais il s'agit d'un cedex ou BP)",
'21' => "Petite ville, Numéro de facade hors borne.",
'22' => "Petite ville, Numéro de facade absent (le reste de l'adresse est correcte)",
'23' => "Grande ville, Numéro de facade hors borne.",
'24' => "Grande ville, Numéro de facade absent (le reste de l'adresse est correcte)",
'30' => "Petite ville, voie non reconnue",
'31' => "Petite ville, voie non reconnue (info quartier reconnu, ne permettant pas de déduire la voie)",
'40' => "Petite ville, voie absente (info quartier reconnu, ne permettant pas de déduire la voie)",
'41' => "Petite ville, voie absente",
'50' => "Grande ville, voie non reconnue",
'51' => "Grande ville, voie non reconnue (info quartier reconnu, ne permettant pas de déduire la voie)",
'60' => "Grande ville, voie absente (info quartier reconnu, ne permettant pas de déduire la voie)",
'61' => "Grande ville, voie absente",
'70' => "Cp/Ville non corrigeable (voie présente)",
'80' => "Cp/Ville non corrigeable (voie absente)",
'90' => "Etranger détecté",
);
public function __construct()
{
}
/**
* Label qualité en fonction du code
* @param string $code
*/
public function getLabel($code)
{
$label = '';
if (array_key_exists($code, $this->labels)) {
$label = $this->labels[$code];
}
return $label;
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,175 +0,0 @@
<?php
/** Auto generated - 2015-09-20 18:32:10*/
return array (
5000 => 1000.10005,
7000 => 5000.10007,
7001 => 5000.10007001,
7002 => 5000.10007002,
7003 => 5000.10007003,
9995 => 13101.10009995,
9996 => 13100.10009996,
199000 => 15100.10199,
200000 => 15100.102,
201000 => 15100.10201,
202000 => 15100.10202,
203000 => 15100.10203,
204000 => 15100.10204,
205000 => 15100.10205,
205099 => 15010.10205099,
205200 => 15010.102052,
735100 => 102005.107351,
735110 => 102005.1073511,
735111 => 102005.10735111,
735112 => 102005.10735112,
735200 => 102005.107352,
735300 => 102005.107353,
735500 => 102005.107355,
735930 => 102025.1073593,
735950 => 102025.1073595,
2400101 => 52201.12400101,
2400102 => 52201.12400102,
2400103 => 52201.12400103,
2400109 => 52201.12400109,
2400111 => 52201.12400111,
2400112 => 52201.12400112,
2400119 => 52201.12400119,
2400121 => 52201.12400121,
2400122 => 52201.12400122,
2400123 => 52201.12400123,
2400124 => 52201.12400124,
2400125 => 52201.12400125,
2400126 => 52201.12400126,
2400200 => 52201.124002,
2400210 => 52201.1240021,
2400300 => 52201.124003,
2400310 => 52201.1240031,
2400410 => 52201.1240041,
2400420 => 52201.1240042,
2400430 => 52201.1240043,
3902100 => 102095.139021,
3902101 => 102095.13902101,
3902110 => 102095.1390211,
3902111 => 102095.13902111,
3902130 => 102095.1390213,
3902131 => 102095.13902131,
3902200 => 102095.139022,
3902300 => 102095.139023,
3902301 => 102095.13902301,
3902310 => 102095.1390231,
3902311 => 102095.13902311,
3902330 => 102095.1390233,
3902331 => 102095.13902331,
3902900 => 102095.139029,
3910001 => 101002.13910001,
3910100 => 101002.139101,
3910101 => 101002.13910101,
3910120 => 101002.1391012,
3910121 => 101002.13910121,
3910130 => 101002.1391013,
3910131 => 101002.13910131,
3910135 => 101002.13910135,
3910136 => 101002.13910136,
3910140 => 101002.1391014,
3910141 => 101002.13910141,
3910145 => 101002.13910145,
3910146 => 101002.13910146,
3910150 => 101002.1391015,
3910151 => 101002.13910151,
3910155 => 101002.13910155,
3910156 => 101002.13910156,
3910160 => 101002.1391016,
3910161 => 101002.13910161,
3910170 => 101002.1391017,
3910171 => 101002.13910171,
3910180 => 101002.1391018,
3910181 => 101002.13910181,
3910190 => 101002.1391019,
3910191 => 101002.13910191,
3911001 => 101003.13911001,
3911100 => 101003.139111,
3911101 => 101003.13911101,
3911110 => 101003.1391111,
3911111 => 101003.13911111,
3911120 => 101003.1391112,
3911121 => 101003.13911121,
3911130 => 101003.1391113,
3911131 => 101003.13911131,
3911145 => 101003.13911145,
3911146 => 101003.13911146,
3911150 => 101003.1391115,
3911151 => 101003.13911151,
3911160 => 101003.1391116,
3911161 => 101003.13911161,
3911170 => 101003.1391117,
3911171 => 101003.13911171,
3911180 => 101003.1391118,
3911181 => 101003.13911181,
20001000 => 100101.30001,
20011000 => 101001.30011,
20011900 => 101009.300119,
20012000 => 101201.30012,
20012001 => 101201.30012001,
20012002 => 101201.30012002,
20012100 => 101201.300121,
20012110 => 101201.3001211,
20012120 => 101201.3001212,
20012200 => 101301.300122,
20012210 => 101301.3001221,
20012220 => 101351.3001222,
20012400 => 101401.300124,
20012410 => 101201.3001241,
20012420 => 101351.3001242,
20020100 => 102001.300201,
20020110 => 102006.3002011,
20021200 => 102011.300212,
20021210 => 102016.3002121,
20022200 => 102021.300222,
20022210 => 102026.3002221,
20022500 => 102041.300225,
20022510 => 102046.3002251,
20023100 => 102051.300231,
20023110 => 102056.3002311,
20025200 => 102061.300252,
20025210 => 102066.3002521,
20026100 => 102071.300261,
20026101 => 102071.30026101,
20026110 => 102076.3002611,
20027100 => 102091.300271,
20028100 => 102101.300281,
20028110 => 102106.3002811,
20050100 => 103001.300501,
20080201 => 104001.30080201,
20080210 => 104001.3008021,
20080215 => 104001.30080215,
20080217 => 104001.30080217,
20080220 => 104001.3008022,
20080230 => 104001.3008023,
20080240 => 104001.3008024,
20080250 => 104001.3008025,
20080260 => 104001.3008026,
20080270 => 104001.3008027,
20080280 => 104001.3008028,
20080290 => 104001.3008029,
20090310 => 109001.3009031,
20090510 => 109101.3009051,
20090610 => 109101.3009061,
20090611 => 109101.30090611,
20090710 => 109101.3009071,
20090711 => 109101.30090711,
20090712 => 109101.30090712,
20090810 => 109101.3009081,
20090830 => 109101.3009083,
20090840 => 109101.3009084,
20090910 => 109101.3009091,
100000100 => 100100.1100001,
100001000 => 101000.110001,
100002000 => 101200.110002,
100003000 => 101300.110003,
100004000 => 101400.110004,
100005000 => 101500.110005,
100010000 => 108999.11001,
100015000 => 103000.110015,
100016000 => 104000.110016,
100019000 => 109000.110019,
100019100 => 109100.1100191,
);

View File

@ -1,176 +0,0 @@
<?php
/** Auto generated - 2015-09-20 18:32:15*/
return array (
100 => 100.100001,
5000 => 1000.10005,
7000 => 5000.10007,
7001 => 5000.10007001,
7002 => 5000.10007002,
7003 => 5000.10007003,
9995 => 13101.10009995,
9996 => 13100.10009996,
199000 => 15100.10199,
200000 => 15100.102,
201000 => 15100.10201,
202000 => 15100.10202,
203000 => 15100.10203,
204000 => 15100.10204,
205000 => 15100.10205,
205099 => 15010.10205099,
205200 => 15010.102052,
735100 => 102005.107351,
735110 => 102005.1073511,
735111 => 102005.10735111,
735112 => 102005.10735112,
735200 => 102005.107352,
735300 => 102005.107353,
735500 => 102005.107355,
735930 => 102025.1073593,
735950 => 102025.1073595,
2400101 => 52201.12400101,
2400102 => 52201.12400102,
2400103 => 52201.12400103,
2400109 => 52201.12400109,
2400111 => 52201.12400111,
2400112 => 52201.12400112,
2400119 => 52201.12400119,
2400121 => 52201.12400121,
2400122 => 52201.12400122,
2400123 => 52201.12400123,
2400124 => 52201.12400124,
2400125 => 52201.12400125,
2400126 => 52201.12400126,
2400200 => 52201.124002,
2400210 => 52201.1240021,
2400300 => 52201.124003,
2400310 => 52201.1240031,
2400410 => 52201.1240041,
2400420 => 52201.1240042,
2400430 => 52201.1240043,
3902100 => 102095.139021,
3902101 => 102095.13902101,
3902110 => 102095.1390211,
3902111 => 102095.13902111,
3902130 => 102095.1390213,
3902131 => 102095.13902131,
3902200 => 102095.139022,
3902300 => 102095.139023,
3902301 => 102095.13902301,
3902310 => 102095.1390231,
3902311 => 102095.13902311,
3902330 => 102095.1390233,
3902331 => 102095.13902331,
3902900 => 102095.139029,
3910001 => 101002.13910001,
3910100 => 101002.139101,
3910101 => 101002.13910101,
3910120 => 101002.1391012,
3910121 => 101002.13910121,
3910130 => 101002.1391013,
3910131 => 101002.13910131,
3910135 => 101002.13910135,
3910136 => 101002.13910136,
3910140 => 101002.1391014,
3910141 => 101002.13910141,
3910145 => 101002.13910145,
3910146 => 101002.13910146,
3910150 => 101002.1391015,
3910151 => 101002.13910151,
3910155 => 101002.13910155,
3910156 => 101002.13910156,
3910160 => 101002.1391016,
3910161 => 101002.13910161,
3910170 => 101002.1391017,
3910171 => 101002.13910171,
3910180 => 101002.1391018,
3910181 => 101002.13910181,
3910190 => 101002.1391019,
3910191 => 101002.13910191,
3911001 => 101003.13911001,
3911100 => 101003.139111,
3911101 => 101003.13911101,
3911110 => 101003.1391111,
3911111 => 101003.13911111,
3911120 => 101003.1391112,
3911121 => 101003.13911121,
3911130 => 101003.1391113,
3911131 => 101003.13911131,
3911145 => 101003.13911145,
3911146 => 101003.13911146,
3911150 => 101003.1391115,
3911151 => 101003.13911151,
3911160 => 101003.1391116,
3911161 => 101003.13911161,
3911170 => 101003.1391117,
3911171 => 101003.13911171,
3911180 => 101003.1391118,
3911181 => 101003.13911181,
20001000 => 1001.30001,
20011000 => 101001.30011,
20011900 => 101009.300119,
20012000 => 101201.30012,
20012001 => 101201.30012001,
20012002 => 101201.30012002,
20012100 => 101201.300121,
20012110 => 101201.3001211,
20012120 => 101201.3001212,
20012200 => 101301.300122,
20012210 => 101301.3001221,
20012220 => 101351.3001222,
20012400 => 101401.300124,
20012410 => 101201.3001241,
20012420 => 101351.3001242,
20020100 => 102001.300201,
20020110 => 102006.3002011,
20021200 => 102011.300212,
20021210 => 102016.3002121,
20022200 => 102021.300222,
20022210 => 102026.3002221,
20022500 => 102041.300225,
20022510 => 102046.3002251,
20023100 => 102051.300231,
20023110 => 102056.3002311,
20025200 => 102061.300252,
20025210 => 102066.3002521,
20026100 => 102071.300261,
20026101 => 102071.30026101,
20026110 => 102076.3002611,
20027100 => 102071.300271,
20028100 => 102101.300281,
20028110 => 102106.3002811,
20050100 => 103001.300501,
20080201 => 104001.30080201,
20080210 => 104001.3008021,
20080215 => 104001.30080215,
20080217 => 104001.30080217,
20080220 => 104001.3008022,
20080230 => 104001.3008023,
20080240 => 104001.3008024,
20080250 => 104001.3008025,
20080260 => 104001.3008026,
20080270 => 104001.3008027,
20080280 => 104001.3008028,
20080290 => 104001.3008029,
20090310 => 109001.3009031,
20090510 => 109101.3009051,
20090610 => 109101.3009061,
20090611 => 109101.30090611,
20090710 => 109101.3009071,
20090711 => 109101.30090711,
20090712 => 109101.30090712,
20090810 => 109101.3009081,
20090830 => 109101.3009083,
20090840 => 109101.3009084,
20090910 => 109101.3009091,
100000100 => 100100.1100001,
100001000 => 101000.110001,
100002000 => 101200.110002,
100003000 => 101300.110003,
100004000 => 101400.110004,
100005000 => 101500.110005,
100010000 => 108999.11001,
100015000 => 103000.110015,
100016000 => 104000.110016,
100019000 => 109000.110019,
100019100 => 109100.1100191,
);

View File

@ -1,176 +0,0 @@
<?php
/** Auto generated - 2015-09-20 18:32:15*/
return array(
100 => 100.100001,
5000 => 1000.10005,
7000 => 5000.10007,
7001 => 5000.10007001,
7002 => 5000.10007002,
7003 => 5000.10007003,
9995 => 13101.10009995,
9996 => 13100.10009996,
199000 => 15100.10199,
200000 => 15100.102,
201000 => 15100.10201,
202000 => 15100.10202,
203000 => 15100.10203,
204000 => 15100.10204,
205000 => 15100.10205,
205099 => 15010.10205099,
205200 => 15010.102052,
735100 => 10200.107351,
735110 => 10200.1073511,
735111 => 10200.10735111,
735112 => 10200.10735112,
735200 => 10200.107352,
735300 => 10200.107353,
735500 => 10200.107355,
735930 => 10202.1073593,
735950 => 10202.1073595,
2400101 => 52201.12400101,
2400102 => 52201.12400102,
2400103 => 52201.12400103,
2400109 => 52201.12400109,
2400111 => 52201.12400111,
2400112 => 52201.12400112,
2400119 => 52201.12400119,
2400121 => 52201.12400121,
2400122 => 52201.12400122,
2400123 => 52201.12400123,
2400124 => 52201.12400124,
2400125 => 52201.12400125,
2400126 => 52201.12400126,
2400200 => 52201.124002,
2400210 => 52201.1240021,
2400300 => 52201.124003,
2400310 => 52201.1240031,
2400410 => 52201.1240041,
2400420 => 52201.1240042,
2400430 => 52201.1240043,
3902100 => 10209.139021,
3902101 => 10209.13902101,
3902110 => 10209.1390211,
3902111 => 10209.13902111,
3902130 => 10209.1390213,
3902131 => 10209.13902131,
3902200 => 10209.139022,
3902300 => 10209.139023,
3902301 => 10209.13902301,
3902310 => 10209.1390231,
3902311 => 10209.13902311,
3902330 => 10209.1390233,
3902331 => 10209.13902331,
3902900 => 10209.139029,
3910001 => 10100.13910001,
3910100 => 10100.139101,
3910101 => 10100.13910101,
3910120 => 10100.1391012,
3910121 => 10100.13910121,
3910130 => 10100.1391013,
3910131 => 10100.13910131,
3910135 => 10100.13910135,
3910136 => 10100.13910136,
3910140 => 10100.1391014,
3910141 => 10100.13910141,
3910145 => 10100.13910145,
3910146 => 10100.13910146,
3910150 => 10100.1391015,
3910151 => 10100.13910151,
3910155 => 10100.13910155,
3910156 => 10100.13910156,
3910160 => 10100.1391016,
3910161 => 10100.13910161,
3910170 => 10100.1391017,
3910171 => 10100.13910171,
3910180 => 10100.1391018,
3910181 => 10100.13910181,
3910190 => 10100.1391019,
3910191 => 10100.13910191,
3911001 => 10100.13911001,
3911100 => 10100.139111,
3911101 => 10100.13911101,
3911110 => 10100.1391111,
3911111 => 10100.13911111,
3911120 => 10100.1391112,
3911121 => 10100.13911121,
3911130 => 10100.1391113,
3911131 => 10100.13911131,
3911145 => 10100.13911145,
3911146 => 10100.13911146,
3911150 => 10100.1391115,
3911151 => 10100.13911151,
3911160 => 10100.1391116,
3911161 => 10100.13911161,
3911170 => 10100.1391117,
3911171 => 10100.13911171,
3911180 => 10100.1391118,
3911181 => 10100.13911181,
20001000 => 1001.30001,
20011000 => 10100.30011,
20011900 => 10100.300119,
20012000 => 10120.30012,
20012001 => 10120.30012001,
20012002 => 10120.30012002,
20012100 => 10120.300121,
20012110 => 10120.3001211,
20012120 => 10120.3001212,
20012200 => 10130.300122,
20012210 => 10130.3001221,
20012220 => 10135.3001222,
20012400 => 10140.300124,
20012410 => 10120.3001241,
20012420 => 10135.3001242,
20020100 => 10200.300201,
20020110 => 10200.3002011,
20021200 => 10201.300212,
20021210 => 10201.3002121,
20022200 => 10202.300222,
20022210 => 10202.3002221,
20022500 => 10204.300225,
20022510 => 10204.3002251,
20023100 => 10205.300231,
20023110 => 10205.3002311,
20025200 => 10206.300252,
20025210 => 10206.3002521,
20026100 => 10207.300261,
20026101 => 10207.30026101,
20026110 => 10207.3002611,
20027100 => 10207.300271,
20028100 => 10210.300281,
20028110 => 10210.3002811,
20050100 => 10300.300501,
20080201 => 10400.30080201,
20080210 => 10400.3008021,
20080215 => 10400.30080215,
20080217 => 10400.30080217,
20080220 => 10400.3008022,
20080230 => 10400.3008023,
20080240 => 10400.3008024,
20080250 => 10400.3008025,
20080260 => 10400.3008026,
20080270 => 10400.3008027,
20080280 => 10400.3008028,
20080290 => 10400.3008029,
20090310 => 10900.3009031,
20090510 => 10910.3009051,
20090610 => 10910.3009061,
20090611 => 10910.30090611,
20090710 => 10910.3009071,
20090711 => 10910.30090711,
20090712 => 10910.30090712,
20090810 => 10910.3009081,
20090830 => 10910.3009083,
20090840 => 10910.3009084,
20090910 => 10910.3009091,
100000100 => 10010.1100001,
100001000 => 10100.110001,
100002000 => 10120.110002,
100003000 => 10130.110003,
100004000 => 10140.110004,
100005000 => 10150.110005,
100010000 => 10200.11001,
100015000 => 10300.110015,
100016000 => 10400.110016,
100019000 => 10900.110019,
100019100 => 10910.1100191,
);

View File

@ -1,162 +0,0 @@
<?php
/** Auto generated - 2015-09-20 18:32:29*/
return array(
100 => 100.100001,
5000 => 1000.10005,
7000 => 5000.10007,
7001 => 5000.10007001,
7002 => 5000.10007002,
7003 => 5000.10007003,
9995 => 13101.10009995,
9996 => 13100.10009996,
199000 => 15100.10199,
200000 => 15100.102,
201000 => 15100.10201,
202000 => 15100.10202,
203000 => 15100.10203,
204000 => 15100.10204,
205000 => 15100.10205,
205099 => 15010.10205099,
205200 => 15010.102052,
735100 => 92005.107351,
735110 => 92005.1073511,
735111 => 92005.10735111,
735112 => 92005.10735112,
735200 => 92005.107352,
735300 => 92005.107353,
735500 => 92005.107355,
735930 => 92025.1073593,
735950 => 92025.1073595,
2400101 => 52201.12400101,
2400102 => 52201.12400102,
2400103 => 52201.12400103,
2400109 => 52201.12400109,
2400111 => 52201.12400111,
2400112 => 52201.12400112,
2400119 => 52201.12400119,
2400121 => 52201.12400121,
2400122 => 52201.12400122,
2400123 => 52201.12400123,
2400124 => 52201.12400124,
2400125 => 52201.12400125,
2400126 => 52201.12400126,
2400200 => 52201.124002,
2400210 => 52201.1240021,
2400300 => 52201.124003,
2400310 => 52201.1240031,
2400410 => 52201.1240041,
2400420 => 52201.1240042,
2400430 => 52201.1240043,
3910001 => 91450.13910001,
3910100 => 91450.139101,
3910101 => 91450.13910101,
3910120 => 91450.1391012,
3910121 => 91450.13910121,
3910130 => 91450.1391013,
3910131 => 91450.13910131,
3910135 => 91450.13910135,
3910136 => 91450.13910136,
3910140 => 91450.1391014,
3910141 => 91450.13910141,
3910145 => 91450.13910145,
3910146 => 91450.13910146,
3910150 => 91450.1391015,
3910151 => 91450.13910151,
3910155 => 91450.13910155,
3910156 => 91450.13910156,
3910160 => 91450.1391016,
3910161 => 91450.13910161,
3910170 => 91450.1391017,
3910171 => 91450.13910171,
3910180 => 91450.1391018,
3910181 => 91450.13910181,
3910190 => 91450.1391019,
3910191 => 91450.13910191,
3911001 => 92003.13911001,
3911100 => 92003.139111,
3911101 => 92003.13911101,
3911110 => 92003.1391111,
3911111 => 92003.13911111,
3911120 => 92003.1391112,
3911121 => 92003.13911121,
3911130 => 92003.1391113,
3911131 => 92003.13911131,
3911145 => 92003.13911145,
3911146 => 92003.13911146,
3911150 => 92003.1391115,
3911151 => 92003.13911151,
3911160 => 92003.1391116,
3911161 => 92003.13911161,
3911170 => 92003.1391117,
3911171 => 92003.13911171,
3911180 => 92003.1391118,
3911181 => 92003.13911181,
20001000 => 1001.30001,
20011000 => 91201.30011,
20011900 => 91201.300119,
20012000 => 91201.30012,
20012001 => 91201.30012001,
20012002 => 91201.30012002,
20012100 => 91201.300121,
20012110 => 91201.3001211,
20012120 => 91201.3001212,
20012200 => 91301.300122,
20012210 => 91301.3001221,
20012220 => 91351.3001222,
20012420 => 91451.3001242,
20020100 => 92001.300201,
20020110 => 92006.3002011,
20021200 => 92011.300212,
20021210 => 92016.3002121,
20022200 => 92021.300222,
20022210 => 92026.3002221,
20022500 => 92041.300225,
20022510 => 92046.3002251,
20023100 => 92051.300231,
20023510 => 92056.3002351,
20025200 => 92061.300252,
20025210 => 92066.3002521,
20026100 => 92071.300261,
20026101 => 92071.30026101,
20026109 => 92071.30026109,
20026110 => 92076.3002611,
20027100 => 92071.300271,
20028100 => 92101.300281,
20028110 => 92106.3002811,
20050100 => 93001.300501,
20080201 => 94001.30080201,
20080210 => 94001.3008021,
20080215 => 94001.30080215,
20080217 => 94001.30080217,
20080220 => 94001.3008022,
20080230 => 94001.3008023,
20080240 => 94001.3008024,
20080250 => 94001.3008025,
20080260 => 94001.3008026,
20080270 => 94001.3008027,
20080280 => 94001.3008028,
20080290 => 94001.3008029,
20090310 => 99001.3009031,
20090510 => 99101.3009051,
20090610 => 99101.3009061,
20090611 => 99101.30090611,
20090612 => 99101.30090612,
20090710 => 99101.3009071,
20090711 => 99101.30090711,
20090712 => 99101.30090712,
20090810 => 99101.3009081,
20090830 => 99101.3009083,
20090840 => 99101.3009084,
20090910 => 99101.3009091,
100000100 => 90100.1100001,
100001000 => 91000.110001,
100002000 => 91200.110002,
100003000 => 91300.110003,
100004000 => 91400.110004,
100005000 => 91500.110005,
100010000 => 92000.11001,
100015000 => 93000.110015,
100016000 => 94000.110016,
100019000 => 99000.110019,
100019100 => 99100.1100191,
);

View File

@ -1,33 +0,0 @@
<?php
/** Auto generated - 2015-09-20 18:32:29*/
return array(
100 => 100.100001,
5000 => 1000.10005,
7000 => 5000.10007,
20001000 => 1001.30001,
20050100 => 93001.300501,
20080201 => 94002.30080201,
20080210 => 94001.3008021,
20080215 => 94001.30080215,
20080217 => 94001.30080217,
20080220 => 94001.3008022,
20080230 => 94001.3008023,
20080240 => 94001.3008024,
20080250 => 94001.3008025,
20080260 => 94001.3008026,
20080270 => 94001.3008027,
20080280 => 94001.3008028,
20080290 => 94001.3008029,
20090310 => 99001.3009031,
20090510 => 99101.3009051,
20090610 => 99101.3009061,
20090611 => 99101.30090611,
20090612 => 99101.30090612,
20090710 => 99101.3009071,
20090711 => 99101.30090711,
20090712 => 99101.30090712,
20090810 => 99101.3009081,
20090830 => 99101.3009083,
20090840 => 99101.3009084,
20090910 => 99101.3009091,
);

View File

@ -1,602 +0,0 @@
<?php
/** Auto generated - 2015-09-20 18:32:10*/
return array(
5000 => array(
1 => "Valorisation de {NOMEN} en date du : {JOUR_DATE}
",
),
7000 => array(
10 => "<LI><B>ENTREPRISE INACTIVE</B>",
),
7001 => array(
10 => "<LI><B>ENTREPRISE EN ACTIVITE SELON l'INSEE MAIS DECLAREE INACTIVE EN SOURCE GREFFES</B>",
),
7002 => array(
10 => "<LI><B>ENTREPRISE SANS ACTIVITE SELON l'INSEE MAIS DECLAREE ENCORE EN ACTIVITE EN SOURCE GREFFES</B>",
),
7003 => array(
10 => "COULEUR(VER3,ROU2,BLE3,MAR,MET2,VIO1,ROU3,NOI2,MET,VER2,ROU1,MET3,BLE,MAR2,MET1,VER2)",
),
9995 => array(
1 => "L'objet social publié dans les annonces légales est libellé comme : <I>\"{ANNONCEOBJET}\"
",
),
9996 => array(
1 => "Au répertoire national l'activité est codifiée {APEENT(5)}, {APEENT}
",
),
199000 => array(
0 => "Cette entreprise est une TPE à vocation principalement régionale.",
),
200000 => array(
0 => "Cette entreprise est une PME à vocation principalement régionale.",
),
201000 => array(
0 => "Cette entreprise est une PME importante au sein du bassin économique régional {RPEN}",
),
202000 => array(
0 => "L' entreprise \"{NOMEN}\" est une entreprise importante au sein du bassin économique régional.",
),
203000 => array(
0 => "Cette entreprise est une PME majeure au sein de la région {RPEN}.",
),
204000 => array(
0 => "C'est une des premières entreprises françaises.",
),
205000 => array(
0 => "C'est une PME qui compte dans le département {DEPSIE}.",
),
205099 => array(
0 => "C'est une PME de taille signicative dont le siège situe hors de France ({DEPSIE_DE}).",
),
205200 => array(
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.",
),
735100 => array(
0 => "<B>Projection du CA sur 3 ans:</B>",
10 => "D'après les éléments financiers à notre disposition, nous avons avons procédé à une projection à 3 ans de la valeur du Chiffre d'Affaires. Notre estimation à 3 ans table sur un CA de {CA_Y[3]} en {BILANANNEE3} soit une tendance à la hausse de {CA_TAUX}.<BR>",
),
735110 => array(
10 => "<FONT color=\"red\">L'ampleur de la progression est à relativiser car des opérations de fusion (dont la dernière le {ANNONCEFUSDATE}) ont dopé le Chiffre d'Affaires.</FONT>",
),
735111 => array(
10 => "<FONT color=\"red\">L'ampleur de la progression est à relativiser car une fusion absoption intervenue le {ANNONCEFUSDATE}) a dopé le Chiffre d'Affaires.</FONT>",
),
735112 => array(
10 => "<FONT color=\"red\">L'ampleur de la progression est à relativiser car des opérations de fusion ont dopé le Chiffre d'Affaires.</FONT>",
),
735200 => array(
10 => "D'après les éléments financiers à notre disposition, nous avons avons procédé à une projection à 3 ans de la valeur du Chiffre d'Affaires. Notre estimation à 3 ans table sur un CA de {CA_Y[3]} en {BILANANNEE3} soit tendance à la baisse de {CA_TAUX}.<BR>",
),
735300 => array(
10 => "D'après les éléments financiers à notre disposition, nous avons avons procédé à une projection à 3 ans de la valeur du Chiffre d'Affaires. Notre estimation à 3 ans table sur une stabilité du CA avec une valeur de {CA_Y[3]} en {BILANANNEE3}.<BR>",
),
735500 => array(
9 => "COULEUR(VER3,ROU1,MET3)",
10 => "{GRAPH(\"Evolution du CA et projection sur 3 ans\",R[006]#H,CA_Y#L)}",
),
735930 => array(
10 => "Notre estimation à 3 ans table sur un Résultat Courant avant Impôts de {RCAI_Y[3]} en {BILANANNEE3}.<BR>",
20 => "Le taux de pertinence de notre projection est de {RCAI_TAUX}.",
),
735950 => array(
9 => "COULEUR(JAU1,ROU1,MET3)",
10 => "{GRAPH(\"Evolution du RCAI et projection sur 3 ans\",R[008]#H,RCAI_Y#L)}",
),
2400101 => array(
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}.",
),
2400102 => array(
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}.",
),
2400103 => array(
10 => "L'entreprise se situe à la 1<sup>ere</sup> place dans un marché dont la taille est estimée à {MARCHE}.",
),
2400109 => array(
10 => "L'entreprise se situe dans un marché dont la taille est estimée à {MARCHE} et qui progresse de {!MARCHEVOL}.",
),
2400111 => array(
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}.",
),
2400112 => array(
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}.",
),
2400119 => array(
10 => "L'entreprise se situe dans un marché dont la taille est estimée à {MARCHE} et qui régresse de {MARCHEVOL}.",
),
2400121 => array(
10 => "L'entreprise se situe à la 1<sup>ere</sup> place dans un marché dont la taille est estimée à {MARCHE}.",
),
2400122 => array(
10 => "L'entreprise se situe à la {MARCHEPLACE}<sup>eme</sup> place dans un marché dont la taille est estimée à {MARCHE}.",
),
2400123 => array(
10 => "L'entreprise figure parmi les 200 premières affaires dans un marché dont la taille est estimée à {MARCHE}.",
),
2400124 => array(
10 => "L'entreprise figure parmi les 500 premières affaires dans un marché dont la taille est estimée à {MARCHE}.",
),
2400125 => array(
10 => "L'entreprise figure parmi les 1000 premières affaires dans un marché dont la taille est estimée à {MARCHE}.",
),
2400126 => array(
10 => "L'entreprise figure parmi les 2000 premières affaires dans un marché dont la taille est estimée à {MARCHE}.",
),
2400200 => array(
10 => "<C.>, elle en représente {MARCHEPART}, et sa part de marché évolue favorablement de {MARCHEPARTEVOL}.",
),
2400210 => array(
10 => "<C.>, elle en représente {MARCHEPART}, et sa part de marché évolue défavorablement de {MARCHEPARTEVOL}.",
),
2400300 => array(
10 => "Part conséquent on peut dire que le volume de son marché se developpe de {MARCHEVOLUMEVOL}.",
),
2400310 => array(
10 => "Part conséquent on peut dire que le volume de son marché diminue de {MARCHEVOLUMEVOL}.",
),
2400410 => array(
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.",
),
2400420 => array(
10 => "A noter qu'en termes d'emplois, le marché dans son ensemble représente plus de {MARCHESAL} salariés.",
),
2400430 => array(
10 => "A noter que le marché dans son ensemble représente plus de {MARCHENBENT} entreprises.",
),
3902100 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que {VENTE_VILLE_NB} affaires localisées à {VILLE} se sont négociées dans une fourchette de {VENTEMIN_VILLE_EU} et {VENTEMAX_VILLE_EU}.",
),
3902101 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires localisées à {VILLE} se sont négociées dans une fourchette de {VENTEMIN_VILLE_EU} et {VENTEMAX_VILLE_EU}.",
),
3902110 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule affaire de la même localité est intervenue pour un montant de {VENTEMIN_VILLE_EU}.",
),
3902111 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires de la même localité se sont négociées aux environs de {VENTEMIN_VILLE_EU}.",
),
3902130 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule vente est intervenue dans la même localité pour un montant de {VENTEMAX_VILLE_EU}.",
),
3902131 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires de la même localité se sont négociées aux environs de {VENTEMAX_VILLE_EU}.",
),
3902200 => array(
10 => "<C.>, alors qu'on dénombre {VENTE_DEP_NB} cessions dans le département dans une fourchette de {VENTEMIN_DEP_EU} à {VENTEMAX_DEP_EU}.",
),
3902300 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que {VENTE_DEP_NB} affaires de la proche région se sont négociées dans une fourchette de {VENTEMIN_DEP_EU} et {VENTEMAX_DEP_EU}.",
),
3902301 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires du département se sont négociées dans une fourchette de {VENTEMIN_DEP_EU} et {VENTEMAX_DEP_EU}.",
),
3902310 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule affaire de la même localité est intervenue pour un montant de {VENTEMIN_DEP_EU}.",
),
3902311 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires du même département se sont négociées aux environs de {VENTEMIN_DEP_EU}.",
),
3902330 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule vente est intervenue dans le même département pour un montant de {VENTEMAX_DEP_EU}.",
),
3902331 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires de la proche région se sont négociées aux environs de {VENTEMAX_DEP_EU}.",
),
3902900 => array(
10 => "(Sur l'ensemble du territoire, sur la même période, ce sont {VENTE_FRA_NB} ventes qui sont intervenues pour un montant moyen de {VENTEMOY_FRA_EU})",
),
3910001 => array(
0 => "<TABLE CLASS=\"TABLEAUDEFAUTPLUS\" id=\"TABLEAUPLUS\">",
2 => "<TR CLASS=\"TITRES\"> <TH> LES PLUS <I>(en vert la condition atteinte)</I></TH><TH>Taux ou Valeur</TH></TR>",
),
3910100 => array(
10 => "<TR CLASS=\"VERT\"><TH>Moyenne sur 3 ans du taux de croissance du CA > inflation</TH><TD>{Revol[536]}</TD></TR>",
),
3910101 => array(
10 => "<TR ><TH>Moyenne sur 3 ans du taux de croissance du CA > inflation</TH><TD>{Revol[536]}</TD></TR>",
),
3910120 => array(
10 => "<TR CLASS=\"VERT\"><TH>Résultat courant >0 avec croissance du CA sur 3 ans</TH><TD>{R[170]}</TD></TR>",
),
3910121 => array(
10 => "<TR ><TH>Résultat courant >0 avec croissance du CA sur 3 ans</TH><TD>{R[170]}</TD></TR>",
),
3910130 => array(
10 => "<TR CLASS=\"VERT\"><TH>CAF/actif économique > Inflation sur 3 ans</TH><TD>{R[539]}</TD></TR>",
),
3910131 => array(
10 => "<TR ><TH>CAF/actif économique > Inflation sur 3 ans</TH><TD>{R[539]}</TD></TR>",
),
3910135 => array(
10 => "<TR CLASS=\"VERT\"><TH>CAF/capitaux permanents > Inflation sur 3 ans</TH><TD>{R[541]}</TD></TR>",
),
3910136 => array(
10 => "<TR ><TH>CAF/capitaux permanents > Inflation sur 3 ans</TH><TD>{R[541]}</TD></TR>",
),
3910140 => array(
10 => "<TR CLASS=\"VERT\"><TH>Capitaux propres > 15% Total Bilan </TH><TD>{R[510]}</TD></TR>",
),
3910141 => array(
10 => "<TR ><TH>Capitaux propres > 15% Total Bilan </TH><TD>{R[510]}</TD></TR>",
),
3910145 => array(
10 => "<TR CLASS=\"VERT\"><TH>Capitaux propres/capitaux permanents > 40%</TH><TD>{R[240]}</TD></TR>",
),
3910146 => array(
10 => "<TR ><TH>Capitaux propres/capitaux permanents > 40%</TH><TD>{R[240]}</TD></TR>",
),
3910150 => array(
10 => "<TR CLASS=\"VERT\"><TH>Fonds de Roulement > 0 </TH><TD>{R[231]}</TD></TR>",
),
3910151 => array(
10 => "<TR ><TH>Fonds de Roulement > 0 </TH><TD>{R[231]}</TD></TR>",
),
3910155 => array(
10 => "<TR CLASS=\"VERT\"><TH>Fonds de Roulement/BFR > 70% </TH><TD>{R[234]}</TD></TR>",
),
3910156 => array(
10 => "<TR ><TH>Fonds de Roulement/BFR > 70% </TH><TD>{R[234]}</TD></TR>",
),
3910160 => array(
10 => "<TR CLASS=\"VERT\"><TH>Trésorerie > 30 J de CA</TH><TD>{!R[512]}</TD></TR>",
),
3910161 => array(
10 => "<TR ><TH>Trésorerie > 30 J de CA</TH><TD>{!R[512]}</TD></TR>",
),
3910170 => array(
10 => "<TR CLASS=\"VERT\"><TH>Dettes financières LMT / CAF <= 4 ans </TH><TD>{R[247]}</TD></TR>",
),
3910171 => array(
10 => "<TR ><TH>Dettes financières LMT / CAF <= 4 ans </TH><TD>{R[247]}</TD></TR>",
),
3910180 => array(
10 => "<TR CLASS=\"VERT\"><TH>Résultat d'exploitation/charges financières > 400%</TH><TD>{R[542]}</TD></TR>",
),
3910181 => array(
10 => "<TR ><TH>Résultat d'exploitation/charges financières > 400%</TH><TD>{R[542]}</TD></TR>",
),
3910190 => array(
10 => "<TR CLASS=\"VERT\"><TH>Liquidité > 10 fois la dette exigible </TH><TD>{R[308]} fois</TD></TR>",
),
3910191 => array(
10 => "<TR ><TH>Liquidité > 10 fois la dette exigible </TH><TD>{R[308]} fois</TD></TR>",
),
3911001 => array(
0 => "<TABLE CLASS=\"TABLEAUDEFAUTMOINS\" id=\"TABLEAUMOINS\">",
2 => "<TR CLASS=\"TITRES\"> <TH> LES MOINS <I>(en rouge la condition atteinte)</I></TH><TH>Taux ou Valeur</TH></TR>",
),
3911100 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Baisse du résultat courant sur 3 ans </TH><TD>{Rp2[170]} <LI=> {R[170]}</TD></TR>",
),
3911101 => array(
10 => "<TR ><TH>Baisse du résultat courant sur 3 ans </TH><TD>{Rp2[170]} <LI=> {R[170]}</TD></TR>",
),
3911110 => array(
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>",
),
3911111 => array(
10 => "<TR ><TH>Baisse de la trésorerie en jours de CA (N/N-3) </TH><TD>{Rp2[512]} <LI=> {R[512]}</TD></TR>",
),
3911120 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Fonds propres < 0 & Résultat courant < 0 </TH><TD>{R[070]} & {R[170]}</TD></TR>",
),
3911121 => array(
10 => "<TR ><TH>Fonds propres < 0 & Résultat courant < 0 </TH><TD>{R[070]} & {R[170]}</TD></TR>",
),
3911130 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Fonds propres < 10% Total Bilan </TH><TD>{R[510]}</TD></TR>",
),
3911131 => array(
10 => "<TR ><TH>Fonds propres < 10% Total Bilan </TH><TD>{R[510]}</TD></TR>",
),
3911145 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Capitaux propres/capitaux permanents < 30%</TH><TD>{R[240]}</TD></TR>",
),
3911146 => array(
10 => "<TR ><TH>Capitaux propres/capitaux permanents < 30%</TH><TD>{R[240]}</TD></TR>",
),
3911150 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Credit Clients > 60 jours de CA </TH><TD>{R[278]}</TD></TR>",
),
3911151 => array(
10 => "<TR ><TH>Credit Clients > 60 jours de CA </TH><TD>{R[278]}</TD></TR>",
),
3911160 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Dettes financières LT/CAF > 5ans </TH><TD>{R[247]}</TD></TR>",
),
3911161 => array(
10 => "<TR ><TH>Dettes financières LT/CAF > 5ans </TH><TD>{R[247]}</TD></TR>",
),
3911170 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Résultat d'exploitation/Charges financières < 200% </TH><TD>{R[542]}</TD></TR>",
),
3911171 => array(
10 => "<TR ><TH>Résultat d'exploitation/Charges financières < 200% </TH><TD>{R[542]}</TD></TR>",
),
3911180 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Fonds de Roulement < BFR, Trésorerie < 0 </TH><TD>{R[226]}</TD></TR>",
),
3911181 => array(
10 => "<TR ><TH>Fonds de Roulement < BFR, Trésorerie < 0 </TH><TD>{R[226]}</TD></TR>",
),
20001000 => array(
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).",
30 => "Schématiquement, les méthodes d'évaluation de l'entreprise que nous pouvons utiliser se regroupent en trois catégories:",
31 => "<LI> celles qui relèvent dune approche patrimoniale.",
32 => "<LI> celles qui sappuient sur la rentabilité.",
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.",
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.",
),
20011000 => array(
40 => "<BR>Dans le cadre de notre étude, voici les principales forces et faiblesses que nous avons relevées :",
),
20011900 => array(
0 => "<BR>",
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 :",
20 => "<LI> Potentiel de développement.",
21 => "<LI> Positionnement sur son marché et concurrence.",
22 => "<LI> Lien de dépendance et impact du départ du dirigeant.",
23 => "<LI> Motivation et ambiance interne.",
30 => "Ces caractéristiques jouent sur la valeur en l'améliorant ou en la pénalisant.</I>",
),
20012000 => array(
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.",
),
20012001 => array(
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.",
),
20012002 => array(
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.",
),
20012100 => array(
0 => "<TABLE CLASS=\"TABLEAUBILAN\">",
1 => "<TR CLASS=\"TITRES\"> <TH> BILAN</TH><TH>{BILANDATEp2} ({nmp2} mois)</TH><TH>{BILANDATEp} ({nmp} mois)</TH><TH>{BILANDATE} ({nm} mois)</TH></TR>",
),
20012110 => array(
8 => "<TR CLASS=\"TOTAL\"><TH>Total Actif </TH><TD>{Rp2[069]}</TD><TD>{Rp[069]}</TD><TD>{R[069]}</TD></TR>",
9 => "<TR CLASS=\"BLANC\"><TH>Dont: </TH><TD> </TD><TD> </TD><TD> </TD></TR>",
11 => "<TR CLASS=\"LIGNE1\"><TH>Immobilisations</TH><TD>{Rp2[059]}</TD><TD>{Rp[059]}</TD><TD>{R[059]}</TD></TR>",
21 => "<TR CLASS=\"BLANC\"><TH>Stocks</TH><TD>{Rp2[060]}</TD><TD>{Rp[060]}</TD><TD>{R[060]}</TD></TR>",
31 => "<TR CLASS=\"LIGNE1\"><TH>Créances clients </TH><TD>{Rp2[061]}</TD><TD>{Rp[061]}</TD><TD>{R[061]}</TD></TR>",
41 => "<TR CLASS=\"BLANC\"><TH>Autres créances </TH><TD>{Rp2[062]}</TD><TD>{Rp[062]}</TD><TD>{R[062]}</TD></TR>",
51 => "<TR CLASS=\"LIGNE1\"><TH>Disponibilités </TH><TD>{Rp2[063]}</TD><TD>{Rp[063]}</TD><TD>{R[063]}</TD></TR>",
),
20012120 => array(
1 => "<TR CLASS=\"TOTAL\"><TH>Total Passif </TH><TD>{Rp2[022]}</TD><TD>{Rp[022]}</TD><TD>{R[022]}</TD></TR>",
9 => "<TR CLASS=\"BLANC\"><TH>Dont: </TH><TD> </TD><TD> </TD><TD> </TD></TR>",
11 => "<TR CLASS=\"LIGNE1\"><TH>Capitaux propres </TH><TD>{Rp2[070]}</TD><TD>{Rp[070]}</TD><TD>{R[070]}</TD></TR>",
21 => "<TR CLASS=\"BLANC\"><TH>Provisions pour risques & charges </TH><TD>{Rp2[071]}</TD><TD>{Rp[071]}</TD><TD>{R[071]}</TD></TR>",
31 => "<TR CLASS=\"LIGNE1\"><TH>Dettes financières </TH><TD>{Rp2[083]}</TD><TD>{Rp[083]}</TD><TD>{R[083]}</TD></TR>",
41 => "<TR CLASS=\"BLANC\"><TH>Dettes fournisseurs </TH><TD>{Rp2[084]}</TD><TD>{Rp[084]}</TD><TD>{R[084]}</TD></TR>",
),
20012200 => array(
0 => "<TABLE CLASS=\"TABLEAUSITUFI\">",
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>",
),
20012210 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Dettes </TH><TD>{Rp2[032]}</TD><TD>{Rp[032]}</TD><TD>{R[032]}</TD></TR>",
21 => "<TR CLASS=\"BLANC\"><TH>Capacité d'autofinancement </TH><TD>{Rp2[233]}</TD><TD>{Rp[233]}</TD><TD>{R[233]}</TD></TR>",
31 => "<TR CLASS=\"LIGNE1\"><TH>Fonds de Roulement </TH><TD>{Rp2[231]}</TD><TD>{Rp[231]}</TD><TD>{R[231]}</TD></TR>",
41 => "<TR CLASS=\"BLANC\"><TH>Besoin en Fonds de Roulement </TH><TD>{Rp2[232]}</TD><TD>{Rp[232]}</TD><TD>{R[232]}</TD></TR>",
51 => "<TR CLASS=\"TOTAL\"><TH>Trésorerie </TH><TD>{Rp2[249]}</TD><TD>{Rp[249]}</TD><TD>{R[249]}</TD></TR>",
),
20012220 => array(
0 => "{GRAPH(\"Situation financière\",R[231]#T,R[232]#T,R[249]#T)}",
),
20012400 => array(
0 => "<TABLE CLASS=\"TABLEAURESULTAT\">",
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>",
),
20012410 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Chiffre d'affaires </TH><TD>{Rp2[005]}</TD><TD>{Rp[005]}</TD><TD>{R[005]}</TD></TR>",
21 => "<TR CLASS=\"BLANC\"><TH>Marge commerciale </TH><TD>{Rp2[110]}</TD><TD>{Rp[110]}</TD><TD>{R[110]}</TD></TR>",
31 => "<TR CLASS=\"LIGNE1\"><TH>Valeur ajoutée </TH><TD>{Rp2[130]}</TD><TD>{Rp[130]}</TD><TD>{R[130]}</TD></TR>",
41 => "<TR CLASS=\"BLANC\"><TH>Excédent brut d'exploitation </TH><TD>{Rp2[140]}</TD><TD>{Rp[140]}</TD><TD>{R[140]}</TD></TR>",
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>",
61 => "<TR CLASS=\"BLANC\"><TH>Résultat exceptionnel </TH><TD>{Rp2[180]}</TD><TD>{Rp[180]}</TD><TD>{R[180]}</TD></TR>",
71 => "<TR CLASS=\"LIGNE1\"><TH>Résultat net </TH><TD>{Rp2[010]}</TD><TD>{Rp[010]}</TD><TD>{R[010]}</TD></TR>",
),
20012420 => array(
1 => "<BR>Ci-dessous la comparaison des Chiffres d'affaires, Marge brute et Résultat.",
10 => "{GRAPH(\"CA,Marge,Résultat\",R[005]#T,R[122]#T,R[010]#T)}",
),
20020100 => array(
0 => "<H3> Multiple du Chiffre d'affaires",
51 => "Selon la méthode du multiple du Chiffre d'affaires l'estimation se situe entre {VAL970_EU} et {VAL971_EU}.",
),
20020110 => array(
1 => "<BR>Ci-dessous l'évolution du chiffre d'affaires.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Chiffre d'affaires\",R[006]#H)}",
),
20021200 => array(
0 => "<H3> Méthode de la valeur patrimoniale",
10 => "La valeur patrimoniale correspond souvent à la valeur plancher de l'entreprise.",
51 => "La fourchette de notre estimation selon la méthode de la valeur patrimoniale s'établit entre {VAL978_EU} et {VAL979_EU}.",
),
20021210 => array(
1 => "<BR>Ci-dessous l'évolution de l'actif immobilisé net.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Actif Immobilisé NET\",R[059]#H)}",
),
20022200 => array(
0 => "<H3> Méthode de la valeur de productivité",
51 => "La méthode de la valeur de la productivité est l'expression de la rentabilité de lentreprise au travers la capitalisation du benéfice corrigé des dotations. Elle débouche sur une valorisation entre {VAL974_EU} et {VAL975_EU}.",
),
20022210 => array(
1 => "<BR>Ci-dessous l'évolution du Résultat Courant Avant Impôts.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"RCAI\",R[008]#H)}",
),
20022500 => array(
0 => "<H3> Méthode de la valeur du rendement",
11 => "Cette méthode se fonde sur le bénéfice distribué, elle ne se conçoit quà légard dentreprises sociétaires qui pratiquent une politique régulière de distribution.",
51 => "Le résultat de la méthode de la valeur du rendement se situe entre {VAL982_EU} et {VAL983_EU}.",
),
20022510 => array(
1 => "<BR>Ci-dessous l'évolution des dividendes distribués.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Dividendes distribués\",R[529]#H)}",
),
20023100 => array(
0 => "<H3> Multiple du Bénéfice",
10 => "On peux considérer quune entreprise vaut par sa rentabilité, sur la base dun multiple de ses résultats. Le bénéfice à retenir est établi à partir du résultat net courant (résultat courant avant impôt, minoré de limpôt sur les sociétés), afin déliminer les éléments exceptionnels affectant le résultat net comptable.",
51 => "Par la méthode du multiple du Bénéfice l'entreprise est valorisée entre {VAL984_EU} et {VAL985_EU}.",
),
20023110 => array(
1 => "<BR>Ci-dessous l'évolution du bénéfice réel (RCAI-impôts).",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Bénéfice réel\",R[318]#H)}",
),
20025200 => array(
0 => "<H3> Multiple de l'EBE",
10 => "Cette méthode repose sur une évaluation globale de lentreprise prenant en compte lendettement financier de la société.",
20 => "La valorisation par l'EBE conduit à une fourchette de valeurs entre {VAL986_EU} et {VAL987_EU}.",
),
20025210 => array(
1 => "<BR>Ci-dessous l'évolution de l'Excédent Brut d'Exploitation.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"EBE\",R[301]#H)}",
),
20026100 => array(
0 => "<H3> Multiple de la MBA",
10 => "Cette méthode est plus particulièrement adaptée aux sociétés qui nécessitent des investissements et constatent des amortissements importants.",
11 => "La présence de terrains dans une forte proportion élargit la fourchette de l'estimation. ",
20 => "Selon cette méthode la valeur de l'entreprise se situe entre {VAL988_EU} et {VAL989_EU}.",
),
20026101 => array(
0 => "<H3> Multiple de la MBA",
10 => "Cette méthode est plus particulièrement adaptée aux sociétés qui nécessitent des investissements et constatent des amortissements importants.",
20 => "Selon cette méthode la valeur de l'entreprise se situe entre {VAL988_EU} et {VAL989_EU}.",
),
20026110 => array(
1 => "<BR>Ci-dessous l'évolution de la Marge Brute d'Autofinancement.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"MBA\",R[333]#H)}",
),
20027100 => array(
0 => "<H3> La méthode par comparaison",
),
20028100 => array(
0 => "<H3> La méthode dévaluation par la Situation Nette Comptable (SNC)",
20 => "Valorisation par la Situation Nette Comptable entre {VAL976_EU} et {VAL977_EU}.",
),
20028110 => array(
1 => "<BR>Ci-dessous l'évolution de la Situation Nette Comptable.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Situation nette\",R[091]#H)}",
),
20050100 => array(
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 :",
),
20080201 => array(
0 => "<TABLE CLASS=\"TABLEAURESULTAT\">",
2 => "<TR CLASS=\"TITRES\"> <TH> Pondération des méthodes </TH><TH>Valeur mini</TH><TH>Valeur maxi</TH></TR>",
),
20080210 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Valeur patrimoniale </TH><TD>{VAL978_EU}</TD><TD>{VAL979_EU}</TD></TR>",
),
20080215 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Selon le Chiffre d'affaires </TH><TD>{VAL970_EU}</TD><TD>{VAL971_EU}</TD></TR>",
),
20080217 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Selon la siuation nette comptable </TH><TD>{VAL976_EU}</TD><TD>{VAL977_EU}</TD></TR>",
),
20080220 => array(
21 => "<TR CLASS=\"LIGNE2\"><TH>Valeur de productivité </TH><TD>{VAL982_EU}</TD><TD>{VAL983_EU}</TD></TR>",
),
20080230 => array(
31 => "<TR CLASS=\"LIGNE1\"><TH>Capitalisation du bénéfice </TH><TD>{VAL984_EU}</TD><TD>{VAL985_EU}</TD></TR>",
),
20080240 => array(
41 => "<TR CLASS=\"LIGNE2\"><TH>Capitalisation selon l'EBE </TH><TD>{VAL986_EU}</TD><TD>{VAL987_EU}</TD></TR>",
),
20080250 => array(
51 => "<TR CLASS=\"LIGNE1\"><TH>Capitalisation selon la MBA </TH><TD>{VAL988_EU}</TD><TD>{VAL989_EU}</TD></TR>",
),
20080260 => array(
61 => "<TR CLASS=\"LIGNE2\"><TH>Capitalisation selon la CAF+Trésorerie </TH><TD>{VAL990_EU}</TD><TD>{VAL991_EU}</TD></TR>",
),
20080270 => array(
71 => "<TR CLASS=\"LIGNE1\"><TH>Capitaux risqueurs </TH><TD>{VAL992_EU}</TD><TD>{VAL993_EU}</TD></TR>",
),
20080280 => array(
81 => "<TR CLASS=\"LIGNE2\"><TH>Patrimoniale + GOODWILL </TH><TD>{VAL994_EU}</TD><TD>{VAL995_EU}</TD></TR>",
),
20080290 => array(
81 => "<TR CLASS=\"TOTAL\"><TH>Comparative cessions profils similaires </TH><TD>{VAL996_EU}</TD><TD>{VAL997_EU}</TD></TR>",
),
20090310 => array(
0 => "<TABLE CLASS=\"TABLEAUHAUTBAS\">",
2 => "<TR CLASS=\"TITRES\"> <TH> </TH><TH> estimation haute</TH></TR>",
11 => "<TR CLASS=\"BLANC\"><TD> </TD><TD CLASS=\"TOTAL\">{VAL999_EU}</TD></TR>",
12 => "<TR CLASS=\"TITRES\"> <TH> estimation basse </TH><TH> </TH></TR>",
21 => "<TR CLASS=\"BLANC\"><TD CLASS=\"TOTAL\">{VAL998_EU} </TD><TD> </TD></TR>",
),
20090510 => array(
20 => "<LI> Les immobilisations corporelles doivent être réévaluées à leur valeur de marché et non comptable. ",
),
20090610 => array(
20 => "<LI> L'estimation finale devrait intégrer l'ensemble des dettes à court terme exigibles au moment de la cession.",
),
20090611 => array(
20 => "<LI> L'estimation finale devrait intégrer l'ensemble des dettes à court, moyen et long termes exigibles au moment de la cession.",
),
20090710 => array(
20 => "<LI> Il conviendra de vérifier l'exactitude des dettes financières portées au bilan.",
),
20090711 => array(
20 => "<LI> Il conviendra de vérifier l'exactitude des dettes fournisseurs portées au bilan.",
),
20090712 => array(
20 => "<LI> Il conviendra de vérifier l'exactitude des dettes financières et fournisseurs portées au bilan.",
),
20090810 => array(
20 => "<BR>A noter qu'aucune provision ne figure au bilan.",
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.",
),
20090830 => array(
20 => "<BR> A noter que les provisions semblent anormalement limitées.",
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.",
),
20090840 => array(
20 => "<BR> A noter que les provisions semblent anormalement élevées.",
),
20090910 => array(
20 => "<LI> Le foncier représente une part importante des actifs, une divergeance de sa valeur par rapport au marché aura un fort impact sur l'évaluation. ",
),
100000100 => array(
0 => "<H1>PRESENTATION",
),
100001000 => array(
0 => "<H1>DIAGNOSTIC",
),
100002000 => array(
0 => "<H1>PATRIMOINE & RESULTATS",
),
100003000 => array(
0 => "<H2>BILANS",
),
100004000 => array(
0 => "<H2>COMPTE DE RESULTAT",
),
100005000 => array(
0 => "<H1>RETRAITEMENT",
),
100010000 => array(
0 => "<BLOC><H1>METHODES DE CALCUL",
99 => "</BLOC>",
),
100015000 => array(
0 => "<H2>Les méthodes retenues",
),
100016000 => array(
0 => "<H2>Pondération des méthodes",
),
100019000 => array(
0 => "<H1>CONCLUSION",
),
100019100 => array(
0 => "<H2>Observations",
),
);

View File

@ -1,610 +0,0 @@
<?php
/** Auto generated - 2015-09-20 18:32:15*/
return array(
100 => array(
1 => "Version 2.6",
),
5000 => array(
1 => "Valorisation de {NOMEN} en date du : {JOUR_DATE}",
),
7000 => array(
10 => "<LI><B>ENTREPRISE INACTIVE</B>",
),
7001 => array(
10 => "<LI><B>ENTREPRISE EN ACTIVITE SELON l'INSEE MAIS DECLAREE INACTIVE EN SOURCE GREFFES</B>",
),
7002 => array(
10 => "<LI><B>ENTREPRISE SANS ACTIVITE SELON l'INSEE MAIS DECLAREE ENCORE EN ACTIVITE EN SOURCE GREFFES</B>",
),
7003 => array(
10 => "COULEUR(VER3,ROU2,BLE3,MAR,MET2,VIO1,ROU3,NOI2,MET,VER2,ROU1,MET3,BLE,MAR2,MET1,VER2)",
),
9995 => array(
1 => "L'objet social publié dans les annonces légales est libellé comme : <I>\"{ANNONCEOBJET}\"
",
),
9996 => array(
1 => "Au répertoire national l'activité est codifiée {APEENT(5)}, {APEENT}
",
),
199000 => array(
0 => "Cette entreprise est une TPE à vocation principalement régionale.",
),
200000 => array(
0 => "Cette entreprise est une PME à vocation principalement régionale.",
),
201000 => array(
0 => "Cette entreprise est une PME importante au sein du bassin économique régional {RPEN}",
),
202000 => array(
0 => "L' entreprise \"{NOMEN}\" est une entreprise importante au sein du bassin économique régional.",
),
203000 => array(
0 => "Cette entreprise est une PME majeure au sein de la région {RPEN}.",
),
204000 => array(
0 => "C'est une des premières entreprises françaises.",
),
205000 => array(
0 => "C'est une PME qui compte dans le département {DEPSIE}.",
),
205099 => array(
0 => "C'est une PME de taille signicative dont le siège situe hors de France ({DEPSIE_DE}).",
),
205200 => array(
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.",
),
735100 => array(
0 => "<B>Projection du CA sur 3 ans:</B>",
10 => "D'après les éléments financiers à notre disposition, nous avons avons procédé à une projection à 3 ans de la valeur du Chiffre d'Affaires. Notre estimation à 3 ans table sur un CA de {CA_Y[3]} en {BILANANNEE3} soit une tendance à la hausse de {CA_TAUX}.<BR>",
),
735110 => array(
10 => "<FONT color=\"red\">L'ampleur de la progression est à relativiser car des opérations de fusion (dont la dernière le {ANNONCEFUSDATE}) ont dopé le Chiffre d'Affaires.</FONT>",
),
735111 => array(
10 => "<FONT color=\"red\">L'ampleur de la progression est à relativiser car une fusion absoption intervenue le {ANNONCEFUSDATE}) a dopé le Chiffre d'Affaires.</FONT>",
),
735112 => array(
10 => "<FONT color=\"red\">L'ampleur de la progression est à relativiser car des opérations de fusion ont dopé le Chiffre d'Affaires.</FONT>",
),
735200 => array(
10 => "D'après les éléments financiers à notre disposition, nous avons avons procédé à une projection à 3 ans de la valeur du Chiffre d'Affaires. Notre estimation à 3 ans table sur un CA de {CA_Y[3]} en {BILANANNEE3} soit tendance à la baisse de {CA_TAUX}.<BR>",
),
735300 => array(
10 => "D'après les éléments financiers à notre disposition, nous avons avons procédé à une projection à 3 ans de la valeur du Chiffre d'Affaires. Notre estimation à 3 ans table sur une stabilité du CA avec une valeur de {CA_Y[3]} en {BILANANNEE3}.<BR>",
),
735500 => array(
9 => "COULEUR(VER3,ROU1,MET3)",
10 => "{GRAPH(\"Evolution du CA et projection sur 3 ans\",R[006]#H,CA_Y#L)}",
),
735930 => array(
10 => "Notre estimation à 3 ans table sur un Résultat Courant avant Impôts de {RCAI_Y[3]} en {BILANANNEE3}.<BR>",
20 => "Le taux de pertinence de notre projection est de {RCAI_TAUX}.",
),
735950 => array(
9 => "COULEUR(JAU1,ROU1,MET3)",
10 => "{GRAPH(\"Evolution du RCAI et projection sur 3 ans\",R[008]#H,RCAI_Y#L)}",
),
2400101 => array(
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}.",
),
2400102 => array(
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}.",
),
2400103 => array(
10 => "L'entreprise se situe à la 1<sup>ere</sup> place dans un marché dont la taille est estimée à {MARCHE}.",
),
2400109 => array(
10 => "L'entreprise se situe dans un marché dont la taille est estimée à {MARCHE} et qui progresse de {!MARCHEVOL}.",
),
2400111 => array(
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}.",
),
2400112 => array(
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}.",
),
2400119 => array(
10 => "L'entreprise se situe dans un marché dont la taille est estimée à {MARCHE} et qui régresse de {MARCHEVOL}.",
),
2400121 => array(
10 => "L'entreprise se situe à la 1<sup>ere</sup> place dans un marché dont la taille est estimée à {MARCHE}.",
),
2400122 => array(
10 => "L'entreprise se situe à la {MARCHEPLACE}<sup>eme</sup> place dans un marché dont la taille est estimée à {MARCHE}.",
),
2400123 => array(
10 => "L'entreprise figure parmi les 200 premières affaires dans un marché dont la taille est estimée à {MARCHE}.",
),
2400124 => array(
10 => "L'entreprise figure parmi les 500 premières affaires dans un marché dont la taille est estimée à {MARCHE}.",
),
2400125 => array(
10 => "L'entreprise figure parmi les 1000 premières affaires dans un marché dont la taille est estimée à {MARCHE}.",
),
2400126 => array(
10 => "L'entreprise figure parmi les 2000 premières affaires dans un marché dont la taille est estimée à {MARCHE}.",
),
2400200 => array(
10 => "<C.>, elle en représente {MARCHEPART}, et sa part de marché évolue favorablement de {MARCHEPARTEVOL}.",
),
2400210 => array(
10 => "<C.>, elle en représente {MARCHEPART}, et sa part de marché évolue défavorablement de {MARCHEPARTEVOL}.",
),
2400300 => array(
10 => "Part conséquent on peut dire que le volume de son marché se developpe de {MARCHEVOLUMEVOL}.",
),
2400310 => array(
10 => "Part conséquent on peut dire que le volume de son marché diminue de {MARCHEVOLUMEVOL}.",
),
2400410 => array(
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.",
),
2400420 => array(
10 => "A noter qu'en termes d'emplois, le marché dans son ensemble représente plus de {MARCHESAL} salariés.",
),
2400430 => array(
10 => "A noter que le marché dans son ensemble représente plus de {MARCHENBENT} entreprises.",
),
3902100 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que {VENTE_VILLE_NB} affaires localisées à {VILLE} se sont négociées dans une fourchette de {VENTEMIN_VILLE_EU} et {VENTEMAX_VILLE_EU}.",
),
3902101 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires localisées à {VILLE} se sont négociées dans une fourchette de {VENTEMIN_VILLE_EU} et {VENTEMAX_VILLE_EU}.",
),
3902110 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule affaire de la même localité est intervenue pour un montant de {VENTEMIN_VILLE_EU}.",
),
3902111 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires de la même localité se sont négociées aux environs de {VENTEMIN_VILLE_EU}.",
),
3902130 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule vente est intervenue dans la même localité pour un montant de {VENTEMAX_VILLE_EU}.",
),
3902131 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires de la même localité se sont négociées aux environs de {VENTEMAX_VILLE_EU}.",
),
3902200 => array(
10 => "<C.>, alors qu'on dénombre {VENTE_DEP_NB} cessions dans le département dans une fourchette de {VENTEMIN_DEP_EU} à {VENTEMAX_DEP_EU}.",
),
3902300 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que {VENTE_DEP_NB} affaires de la proche région se sont négociées dans une fourchette de {VENTEMIN_DEP_EU} et {VENTEMAX_DEP_EU}.",
),
3902301 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires du département se sont négociées dans une fourchette de {VENTEMIN_DEP_EU} et {VENTEMAX_DEP_EU}.",
),
3902310 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule affaire de la même localité est intervenue pour un montant de {VENTEMIN_DEP_EU}.",
),
3902311 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires du même département se sont négociées aux environs de {VENTEMIN_DEP_EU}.",
),
3902330 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule vente est intervenue dans le même département pour un montant de {VENTEMAX_DEP_EU}.",
),
3902331 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires de la proche région se sont négociées aux environs de {VENTEMAX_DEP_EU}.",
),
3902900 => array(
10 => "(Sur l'ensemble du territoire, sur la même période, ce sont {VENTE_FRA_NB} ventes qui sont intervenues pour un montant moyen de {VENTEMOY_FRA_EU})",
),
3910001 => array(
0 => "<TABLE CLASS=\"TABLEAUDEFAUTPLUS\" id=\"TABLEAUPLUS\">",
2 => "<TR CLASS=\"TITRES\"> <TH> LES PLUS <I>(en vert la condition atteinte)</I></TH><TH>Taux ou Valeur</TH></TR>",
),
3910100 => array(
10 => "<TR CLASS=\"VERT\"><TH>Moyenne sur 3 ans du taux de croissance du CA > inflation</TH><TD>{Revol[536]}</TD></TR>",
),
3910101 => array(
10 => "<TR ><TH>Moyenne sur 3 ans du taux de croissance du CA > inflation</TH><TD>{Revol[536]}</TD></TR>",
),
3910120 => array(
10 => "<TR CLASS=\"VERT\"><TH>Résultat courant >0 avec croissance du CA sur 3 ans</TH><TD>{R[170]}</TD></TR>",
),
3910121 => array(
10 => "<TR ><TH>Résultat courant >0 avec croissance du CA sur 3 ans</TH><TD>{R[170]}</TD></TR>",
),
3910130 => array(
10 => "<TR CLASS=\"VERT\"><TH>CAF/actif économique > Inflation sur 3 ans</TH><TD>{R[539]}</TD></TR>",
),
3910131 => array(
10 => "<TR ><TH>CAF/actif économique > Inflation sur 3 ans</TH><TD>{R[539]}</TD></TR>",
),
3910135 => array(
10 => "<TR CLASS=\"VERT\"><TH>CAF/capitaux permanents > Inflation sur 3 ans</TH><TD>{R[541]}</TD></TR>",
),
3910136 => array(
10 => "<TR ><TH>CAF/capitaux permanents > Inflation sur 3 ans</TH><TD>{R[541]}</TD></TR>",
),
3910140 => array(
10 => "<TR CLASS=\"VERT\"><TH>Capitaux propres > 15% Total Bilan </TH><TD>{R[510]}</TD></TR>",
),
3910141 => array(
10 => "<TR ><TH>Capitaux propres > 15% Total Bilan </TH><TD>{R[510]}</TD></TR>",
),
3910145 => array(
10 => "<TR CLASS=\"VERT\"><TH>Capitaux propres/capitaux permanents > 40%</TH><TD>{R[240]}</TD></TR>",
),
3910146 => array(
10 => "<TR ><TH>Capitaux propres/capitaux permanents > 40%</TH><TD>{R[240]}</TD></TR>",
),
3910150 => array(
10 => "<TR CLASS=\"VERT\"><TH>Fonds de Roulement > 0 </TH><TD>{R[231]}</TD></TR>",
),
3910151 => array(
10 => "<TR ><TH>Fonds de Roulement > 0 </TH><TD>{R[231]}</TD></TR>",
),
3910155 => array(
10 => "<TR CLASS=\"VERT\"><TH>Fonds de Roulement/BFR > 70% </TH><TD>{R[234]}</TD></TR>",
),
3910156 => array(
10 => "<TR ><TH>Fonds de Roulement/BFR > 70% </TH><TD>{R[234]}</TD></TR>",
),
3910160 => array(
10 => "<TR CLASS=\"VERT\"><TH>Trésorerie > 30 J de CA</TH><TD>{!R[512]}</TD></TR>",
),
3910161 => array(
10 => "<TR ><TH>Trésorerie > 30 J de CA</TH><TD>{!R[512]}</TD></TR>",
),
3910170 => array(
10 => "<TR CLASS=\"VERT\"><TH>Dettes financières LMT / CAF <= 4 ans </TH><TD>{R[247]}</TD></TR>",
),
3910171 => array(
10 => "<TR ><TH>Dettes financières LMT / CAF <= 4 ans </TH><TD>{R[247]}</TD></TR>",
),
3910180 => array(
10 => "<TR CLASS=\"VERT\"><TH>Résultat d'exploitation/charges financières > 400%</TH><TD>{R[542]}</TD></TR>",
),
3910181 => array(
10 => "<TR ><TH>Résultat d'exploitation/charges financières > 400%</TH><TD>{R[542]}</TD></TR>",
),
3910190 => array(
10 => "<TR CLASS=\"VERT\"><TH>Liquidité > 10 fois la dette exigible </TH><TD>{R[308]} fois</TD></TR>",
),
3910191 => array(
10 => "<TR ><TH>Liquidité > 10 fois la dette exigible </TH><TD>{R[308]} fois</TD></TR>",
),
3911001 => array(
0 => "<TABLE CLASS=\"TABLEAUDEFAUTMOINS\" id=\"TABLEAUMOINS\">",
2 => "<TR CLASS=\"TITRES\"> <TH> LES MOINS <I>(en rouge la condition atteinte)</I></TH><TH>Taux ou Valeur</TH></TR>",
),
3911100 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Baisse du résultat courant sur 3 ans </TH><TD>{Rp2[170]} <LI=> {R[170]}</TD></TR>",
),
3911101 => array(
10 => "<TR ><TH>Baisse du résultat courant sur 3 ans </TH><TD>{Rp2[170]} <LI=> {R[170]}</TD></TR>",
),
3911110 => array(
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>",
),
3911111 => array(
10 => "<TR ><TH>Baisse de la trésorerie en jours de CA (N/N-3) </TH><TD>{Rp2[512]} <LI=> {R[512]}</TD></TR>",
),
3911120 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Fonds propres < 0 & Résultat courant < 0 </TH><TD>{R[070]} & {R[170]}</TD></TR>",
),
3911121 => array(
10 => "<TR ><TH>Fonds propres < 0 & Résultat courant < 0 </TH><TD>{R[070]} & {R[170]}</TD></TR>",
),
3911130 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Fonds propres < 10% Total Bilan </TH><TD>{R[510]}</TD></TR>",
),
3911131 => array(
10 => "<TR ><TH>Fonds propres < 10% Total Bilan </TH><TD>{R[510]}</TD></TR>",
),
3911145 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Capitaux propres/capitaux permanents < 30%</TH><TD>{R[240]}</TD></TR>",
),
3911146 => array(
10 => "<TR ><TH>Capitaux propres/capitaux permanents < 30%</TH><TD>{R[240]}</TD></TR>",
),
3911150 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Credit Clients > 60 jours de CA </TH><TD>{R[278]}</TD></TR>",
),
3911151 => array(
10 => "<TR ><TH>Credit Clients > 60 jours de CA </TH><TD>{R[278]}</TD></TR>",
),
3911160 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Dettes financières LT/CAF > 5ans </TH><TD>{R[247]}</TD></TR>",
),
3911161 => array(
10 => "<TR ><TH>Dettes financières LT/CAF > 5ans </TH><TD>{R[247]}</TD></TR>",
),
3911170 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Résultat d'exploitation/Charges financières < 200% </TH><TD>{R[542]}</TD></TR>",
),
3911171 => array(
10 => "<TR ><TH>Résultat d'exploitation/Charges financières < 200% </TH><TD>{R[542]}</TD></TR>",
),
3911180 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Fonds de Roulement < BFR, Trésorerie < 0 </TH><TD>{R[226]}</TD></TR>",
),
3911181 => array(
10 => "<TR ><TH>Fonds de Roulement < BFR, Trésorerie < 0 </TH><TD>{R[226]}</TD></TR>",
),
20001000 => array(
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).",
30 => "Schématiquement, les méthodes d'évaluation de l'entreprise que nous pouvons utiliser se regroupent en trois catégories:",
31 => "<LI> celles qui relèvent dune approche patrimoniale.",
32 => "<LI> celles qui sappuient sur la rentabilité.",
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.",
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.",
),
20011000 => array(
40 => "<BR>Dans le cadre de notre étude, voici les principales forces et faiblesses que nous avons relevées :",
),
20011900 => array(
0 => "<BR>",
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 :",
20 => "<LI> Potentiel de développement.",
21 => "<LI> Positionnement sur son marché et concurrence.",
22 => "<LI> Lien de dépendance et impact du départ du dirigeant.",
23 => "<LI> Motivation et ambiance interne.",
30 => "Ces caractéristiques jouent sur la valeur en l'améliorant ou en la pénalisant.</I>",
),
20012000 => array(
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.",
),
20012001 => array(
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.",
),
20012002 => array(
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.",
),
20012100 => array(
0 => "<TABLE CLASS=\"TABLEAUBILAN\">",
1 => "<TR CLASS=\"TITRES\"> <TH> BILAN</TH><TH>{BILANDATEp2} ({nmp2} mois)</TH><TH>{BILANDATEp} ({nmp} mois)</TH><TH>{BILANDATE} ({nm} mois)</TH></TR>",
),
20012110 => array(
8 => "<TR CLASS=\"TOTAL\"><TH>Total Actif </TH><TD>{Rp2[069]}</TD><TD>{Rp[069]}</TD><TD>{R[069]}</TD></TR>",
9 => "<TR CLASS=\"BLANC\"><TH>Dont: </TH><TD> </TD><TD> </TD><TD> </TD></TR>",
11 => "<TR CLASS=\"LIGNE1\"><TH>Immobilisations</TH><TD>{Rp2[059]}</TD><TD>{Rp[059]}</TD><TD>{R[059]}</TD></TR>",
21 => "<TR CLASS=\"BLANC\"><TH>Stocks</TH><TD>{Rp2[060]}</TD><TD>{Rp[060]}</TD><TD>{R[060]}</TD></TR>",
31 => "<TR CLASS=\"LIGNE1\"><TH>Créances clients </TH><TD>{Rp2[061]}</TD><TD>{Rp[061]}</TD><TD>{R[061]}</TD></TR>",
41 => "<TR CLASS=\"BLANC\"><TH>Autres créances </TH><TD>{Rp2[062]}</TD><TD>{Rp[062]}</TD><TD>{R[062]}</TD></TR>",
51 => "<TR CLASS=\"LIGNE1\"><TH>Disponibilités </TH><TD>{Rp2[063]}</TD><TD>{Rp[063]}</TD><TD>{R[063]}</TD></TR>",
),
20012120 => array(
1 => "<TR CLASS=\"TOTAL\"><TH>Total Passif </TH><TD>{Rp2[022]}</TD><TD>{Rp[022]}</TD><TD>{R[022]}</TD></TR>",
9 => "<TR CLASS=\"BLANC\"><TH>Dont: </TH><TD> </TD><TD> </TD><TD> </TD></TR>",
11 => "<TR CLASS=\"LIGNE1\"><TH>Capitaux propres </TH><TD>{Rp2[070]}</TD><TD>{Rp[070]}</TD><TD>{R[070]}</TD></TR>",
21 => "<TR CLASS=\"BLANC\"><TH>Provisions pour risques & charges </TH><TD>{Rp2[071]}</TD><TD>{Rp[071]}</TD><TD>{R[071]}</TD></TR>",
31 => "<TR CLASS=\"LIGNE1\"><TH>Dettes financières </TH><TD>{Rp2[083]}</TD><TD>{Rp[083]}</TD><TD>{R[083]}</TD></TR>",
41 => "<TR CLASS=\"BLANC\"><TH>Dettes fournisseurs </TH><TD>{Rp2[084]}</TD><TD>{Rp[084]}</TD><TD>{R[084]}</TD></TR>",
),
20012200 => array(
0 => "<TABLE CLASS=\"TABLEAUSITUFI\">",
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>",
),
20012210 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Dettes </TH><TD>{Rp2[032]}</TD><TD>{Rp[032]}</TD><TD>{R[032]}</TD></TR>",
21 => "<TR CLASS=\"BLANC\"><TH>Capacité d'autofinancement </TH><TD>{Rp2[233]}</TD><TD>{Rp[233]}</TD><TD>{R[233]}</TD></TR>",
31 => "<TR CLASS=\"LIGNE1\"><TH>Fonds de Roulement </TH><TD>{Rp2[231]}</TD><TD>{Rp[231]}</TD><TD>{R[231]}</TD></TR>",
41 => "<TR CLASS=\"BLANC\"><TH>Besoin en Fonds de Roulement </TH><TD>{Rp2[232]}</TD><TD>{Rp[232]}</TD><TD>{R[232]}</TD></TR>",
51 => "<TR CLASS=\"TOTAL\"><TH>Trésorerie </TH><TD>{Rp2[249]}</TD><TD>{Rp[249]}</TD><TD>{R[249]}</TD></TR>",
),
20012220 => array(
1 => "<BR>Ci-dessous la comparaison des Fonds de Roulement, Besoin en fonds de Roulement & trésorerie.",
10 => "{GRAPH(\"Situation financière\",R[231]#T,R[232]#T,R[249]#T)}",
),
20012400 => array(
0 => "<TABLE CLASS=\"TABLEAURESULTAT\">",
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>",
),
20012410 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Chiffre d'affaires </TH><TD>{Rp2[005]}</TD><TD>{Rp[005]}</TD><TD>{R[005]}</TD></TR>",
21 => "<TR CLASS=\"BLANC\"><TH>Marge commerciale </TH><TD>{Rp2[110]}</TD><TD>{Rp[110]}</TD><TD>{R[110]}</TD></TR>",
31 => "<TR CLASS=\"LIGNE1\"><TH>Valeur ajoutée </TH><TD>{Rp2[130]}</TD><TD>{Rp[130]}</TD><TD>{R[130]}</TD></TR>",
41 => "<TR CLASS=\"BLANC\"><TH>Excédent brut d'exploitation </TH><TD>{Rp2[140]}</TD><TD>{Rp[140]}</TD><TD>{R[140]}</TD></TR>",
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>",
61 => "<TR CLASS=\"BLANC\"><TH>Résultat exceptionnel </TH><TD>{Rp2[180]}</TD><TD>{Rp[180]}</TD><TD>{R[180]}</TD></TR>",
71 => "<TR CLASS=\"LIGNE1\"><TH>Résultat net </TH><TD>{Rp2[010]}</TD><TD>{Rp[010]}</TD><TD>{R[010]}</TD></TR>",
),
20012420 => array(
1 => "<BR>Ci-dessous la comparaison des Chiffres d'affaires, Marge brute et Résultat.",
10 => "{GRAPH(\"CA,Marge,Résultat\",R[005]#T,R[122]#T,R[010]#T)}",
),
20020100 => array(
0 => "<H3> Multiple du Chiffre d'affaires",
10 => "Cette méthode, la plus connue et la plus simple, est principalement utilisée pour avaluer les fonds de commerce.",
45 => "En labsence de marché, lévaluation des éléments incorporels de ces fonds se fait selon une méthode forfaitaire, selon les performances et lactivité de lentreprise.",
51 => "Selon la méthode du multiple du Chiffre d'affaires l'estimation se situe entre {VAL970_EU} et {VAL971_EU}.",
),
20020110 => array(
1 => "<BR>Ci-dessous l'évolution du chiffre d'affaires.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Chiffre d'affaires\",R[006]#H)}",
),
20021200 => array(
0 => "<H3> Méthode de la valeur patrimoniale",
10 => "La valeur patrimoniale correspond souvent à la valeur plancher de l'entreprise.",
51 => "La fourchette de notre estimation selon la méthode de la valeur patrimoniale s'établit entre {VAL978_EU} et {VAL979_EU}.",
),
20021210 => array(
1 => "<BR>Ci-dessous l'évolution de l'actif immobilisé net.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Actif Immobilisé NET\",R[059]#H)}",
),
20022200 => array(
0 => "<H3> Méthode de la valeur de productivité",
51 => "La méthode de la valeur de la productivité est l'expression de la rentabilité de lentreprise au travers la capitalisation du benéfice corrigé des dotations. Elle débouche sur une valorisation entre {VAL974_EU} et {VAL975_EU}.",
),
20022210 => array(
1 => "<BR>Ci-dessous l'évolution du Résultat Courant Avant Impôts.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"RCAI\",R[008]#H)}",
),
20022500 => array(
0 => "<H3> Méthode de la valeur du rendement",
11 => "Cette méthode se fonde sur le bénéfice distribué, elle ne se conçoit quà légard dentreprises sociétaires qui pratiquent une politique régulière de distribution.",
51 => "Le résultat de la méthode de la valeur du rendement se situe entre {VAL982_EU} et {VAL983_EU}.",
),
20022510 => array(
1 => "<BR>Ci-dessous l'évolution des dividendes distribués.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Dividendes distribués\",R[529]#H)}",
),
20023100 => array(
0 => "<H3> Multiple du Bénéfice",
10 => "On peux considérer quune entreprise vaut par sa rentabilité, sur la base dun multiple de ses résultats. Le bénéfice à retenir est établi à partir du résultat net courant (résultat courant avant impôt, minoré de limpôt sur les sociétés), afin déliminer les éléments exceptionnels affectant le résultat net comptable.",
51 => "Par la méthode du multiple du Bénéfice l'entreprise est valorisée entre {VAL984_EU} et {VAL985_EU}.",
),
20023110 => array(
1 => "<BR>Ci-dessous l'évolution du bénéfice réel (RCAI-impôts).",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Bénéfice réel\",R[318]#H)}",
),
20025200 => array(
0 => "<H3> Multiple de l'EBE",
10 => "Cette méthode repose sur une évaluation globale de lentreprise prenant en compte lendettement financier de la société.",
20 => "La valorisation par l'EBE conduit à une fourchette de valeurs entre {VAL986_EU} et {VAL987_EU}.",
),
20025210 => array(
1 => "<BR>Ci-dessous l'évolution de l'Excédent Brut d'Exploitation.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"EBE\",R[301]#H)}",
),
20026100 => array(
0 => "<H3> Multiple de la MBA",
10 => "Cette méthode est plus particulièrement adaptée aux sociétés qui nécessitent des investissements et constatent des amortissements importants.",
11 => "La présence de terrains dans une forte proportion élargit la fourchette de l'estimation. ",
20 => "Selon cette méthode la valeur de l'entreprise se situe entre {VAL988_EU} et {VAL989_EU}.",
),
20026101 => array(
0 => "<H3> Multiple de la MBA",
10 => "Cette méthode est plus particulièrement adaptée aux sociétés qui nécessitent des investissements et constatent des amortissements importants.",
20 => "Selon cette méthode la valeur de l'entreprise se situe entre {VAL988_EU} et {VAL989_EU}.",
),
20026110 => array(
1 => "<BR>Ci-dessous l'évolution de la Marge Brute d'Autofinancement.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"MBA\",R[333]#H)}",
),
20027100 => array(
0 => "<H3> Méthode par comparaison",
10 => "La méthode par comparaison repose sur le postulat que des sociétés comparables se valorisent sur des critères et des règles identiques. Cette approche consiste donc à établir des comparaisons avec des transactions intervenues sur le marché des fusions-acquisitions et de l'historique des ventes et cessions, d'entreprises du même profil dans la même région.",
20 => "Par l'étude des transactions récentes, la valeur de l'entreprise se situe entre {VAL996_EU} et {VAL997_EU}.",
),
20028100 => array(
0 => "<H3> Méthode dévaluation par la Situation Nette Comptable (SNC)",
1 => "Un des axes de l'évalutation peut s'appuyer sur la situation nette comptable (SNC) de la société, l'actif net, c'est-à-dire amorti, corrigé des dettes.",
20 => "Valorisation par la Situation Nette Comptable entre {VAL976_EU} et {VAL977_EU}.",
),
20028110 => array(
1 => "<BR>Ci-dessous l'évolution de la Situation Nette Comptable.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Situation nette\",R[091]#H)}",
),
20050100 => array(
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 :",
),
20080201 => array(
0 => "<TABLE CLASS=\"TABLEAURESULTAT\">",
2 => "<TR CLASS=\"TITRES\"> <TH> Pondération des méthodes </TH><TH>Valeur mini</TH><TH>Valeur maxi</TH></TR>",
),
20080210 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Valeur patrimoniale </TH><TD>{VAL978_EU}</TD><TD>{VAL979_EU}</TD></TR>",
),
20080215 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Selon le Chiffre d'affaires </TH><TD>{VAL970_EU}</TD><TD>{VAL971_EU}</TD></TR>",
),
20080217 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Selon la siuation nette comptable </TH><TD>{VAL976_EU}</TD><TD>{VAL977_EU}</TD></TR>",
),
20080220 => array(
21 => "<TR CLASS=\"LIGNE2\"><TH>Valeur de productivité </TH><TD>{VAL982_EU}</TD><TD>{VAL983_EU}</TD></TR>",
),
20080230 => array(
31 => "<TR CLASS=\"LIGNE1\"><TH>Capitalisation du bénéfice </TH><TD>{VAL984_EU}</TD><TD>{VAL985_EU}</TD></TR>",
),
20080240 => array(
41 => "<TR CLASS=\"LIGNE2\"><TH>Capitalisation selon l'EBE </TH><TD>{VAL986_EU}</TD><TD>{VAL987_EU}</TD></TR>",
),
20080250 => array(
51 => "<TR CLASS=\"LIGNE1\"><TH>Capitalisation selon la MBA </TH><TD>{VAL988_EU}</TD><TD>{VAL989_EU}</TD></TR>",
),
20080260 => array(
61 => "<TR CLASS=\"LIGNE2\"><TH>Capitalisation selon la CAF+Trésorerie </TH><TD>{VAL990_EU}</TD><TD>{VAL991_EU}</TD></TR>",
),
20080270 => array(
71 => "<TR CLASS=\"LIGNE1\"><TH>Capitaux risqueurs </TH><TD>{VAL992_EU}</TD><TD>{VAL993_EU}</TD></TR>",
),
20080280 => array(
81 => "<TR CLASS=\"LIGNE2\"><TH>Patrimoniale + GOODWILL </TH><TD>{VAL994_EU}</TD><TD>{VAL995_EU}</TD></TR>",
),
20080290 => array(
81 => "<TR CLASS=\"TOTAL\"><TH>Comparative cessions profils similaires </TH><TD>{VAL996_EU}</TD><TD>{VAL997_EU}</TD></TR>",
),
20090310 => array(
0 => "<TABLE CLASS=\"TABLEAUHAUTBAS\">",
2 => "<TR CLASS=\"TITRES\"> <TH> </TH><TH> estimation haute</TH></TR>",
11 => "<TR CLASS=\"BLANC\"><TD> </TD><TD CLASS=\"TOTAL\">{VAL999_EU}</TD></TR>",
12 => "<TR CLASS=\"TITRES\"> <TH> estimation basse </TH><TH> </TH></TR>",
21 => "<TR CLASS=\"BLANC\"><TD CLASS=\"TOTAL\">{VAL998_EU} </TD><TD> </TD></TR>",
),
20090510 => array(
20 => "<LI> Les immobilisations corporelles doivent être réévaluées à leur valeur de marché et non comptable. ",
),
20090610 => array(
20 => "<LI> L'estimation finale devrait intégrer l'ensemble des dettes à court terme exigibles au moment de la cession.",
),
20090611 => array(
20 => "<LI> L'estimation finale devrait intégrer l'ensemble des dettes à court, moyen et long termes exigibles au moment de la cession.",
),
20090710 => array(
20 => "<LI> Il conviendra de vérifier l'exactitude des dettes financières portées au bilan.",
),
20090711 => array(
20 => "<LI> Il conviendra de vérifier l'exactitude des dettes fournisseurs portées au bilan.",
),
20090712 => array(
20 => "<LI> Il conviendra de vérifier l'exactitude des dettes financières et fournisseurs portées au bilan.",
),
20090810 => array(
20 => "<BR>A noter qu'aucune provision ne figure au bilan.",
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.",
),
20090830 => array(
20 => "<BR> A noter que les provisions semblent anormalement limitées.",
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.",
),
20090840 => array(
20 => "<BR> A noter que les provisions semblent anormalement élevées.",
),
20090910 => array(
20 => "<LI> Le foncier représente une part importante des actifs, une divergeance de sa valeur par rapport au marché aura un fort impact sur l'évaluation. ",
),
100000100 => array(
0 => "<H1>PRESENTATION",
),
100001000 => array(
0 => "<H1>DIAGNOSTIC",
),
100002000 => array(
0 => "<H1>PATRIMOINE & RESULTATS",
),
100003000 => array(
0 => "<H2>BILANS",
),
100004000 => array(
0 => "<H2>COMPTE DE RESULTAT",
),
100005000 => array(
0 => "<H1>RETRAITEMENT",
),
100010000 => array(
0 => "<BLOC><H1>METHODES DE CALCUL",
99 => "</BLOC>",
),
100015000 => array(
0 => "<H2>Les méthodes retenues",
),
100016000 => array(
0 => "<H2>Pondération des méthodes",
),
100019000 => array(
0 => "<H1>CONCLUSION",
),
100019100 => array(
0 => "<H2>Observations",
),
);

View File

@ -1,609 +0,0 @@
<?php
/** Auto generated - 2015-09-20 18:32:15*/
return array(
100 => array(
1 => "Version 2.8",
),
5000 => array(
1 => "Valorisation de {NOMEN} en date du : {JOUR_DATE}",
),
7000 => array(
10 => "<LI><B>ENTREPRISE INACTIVE</B>",
),
7001 => array(
10 => "<LI><B>ENTREPRISE EN ACTIVITE SELON l'INSEE MAIS DECLAREE INACTIVE EN SOURCE GREFFES</B>",
),
7002 => array(
10 => "<LI><B>ENTREPRISE SANS ACTIVITE SELON l'INSEE MAIS DECLAREE ENCORE EN ACTIVITE EN SOURCE GREFFES</B>",
),
7003 => array(
10 => "COULEUR(VER3,ROU2,BLE3,MAR,MET2,VIO1,ROU3,NOI2,MET,VER2,ROU1,MET3,BLE,MAR2,MET1,VER2)",
),
9995 => array(
1 => "L'objet social publié dans les annonces légales est libellé comme : <I>\"{ANNONCEOBJET}\"
",
),
9996 => array(
1 => "Au répertoire national l'activité est codifiée {APEENT(5)}, {APEENT}
",
),
199000 => array(
0 => "Cette entreprise est une TPE à vocation principalement régionale.",
),
200000 => array(
0 => "Cette entreprise est une PME à vocation principalement régionale.",
),
201000 => array(
0 => "Cette entreprise est une PME importante au sein du bassin économique régional {RPEN}",
),
202000 => array(
0 => "L' entreprise \"{NOMEN}\" est une entreprise importante au sein du bassin économique régional.",
),
203000 => array(
0 => "Cette entreprise est une PME majeure au sein de la région {RPEN}.",
),
204000 => array(
0 => "C'est une des premières entreprises françaises.",
),
205000 => array(
0 => " C'est une PME qui compte dans le département {DEPSIE}.",
),
205099 => array(
0 => "C'est une PME de taille signicative dont le siège situe hors de France ({DEPSIE_DE}).",
),
205200 => array(
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.",
),
735100 => array(
0 => "<B>Projection du CA sur 3 ans:</B>",
10 => "D'après les éléments financiers à notre disposition, nous avons avons procédé à une projection à 3 ans de la valeur du Chiffre d'Affaires. Notre estimation à 3 ans table sur un CA de {CA_Y[3]} en {BILANANNEE3} soit une tendance à la hausse de {CA_TAUX}.<BR>",
),
735110 => array(
10 => "<FONT color=\"red\">L'ampleur de la progression est à relativiser car des opérations de fusion (dont la dernière le {ANNONCEFUSDATE}) ont dopé le Chiffre d'Affaires.</FONT>",
),
735111 => array(
10 => "<FONT color=\"red\">L'ampleur de la progression est à relativiser car une fusion absoption intervenue le {ANNONCEFUSDATE}) a dopé le Chiffre d'Affaires.</FONT>",
),
735112 => array(
10 => "<FONT color=\"red\">L'ampleur de la progression est à relativiser car des opérations de fusion ont dopé le Chiffre d'Affaires.</FONT>",
),
735200 => array(
10 => "D'après les éléments financiers à notre disposition, nous avons avons procédé à une projection à 3 ans de la valeur du Chiffre d'Affaires. Notre estimation à 3 ans table sur un CA de {CA_Y[3]} en {BILANANNEE3} soit tendance à la baisse de {CA_TAUX}.<BR>",
),
735300 => array(
10 => "D'après les éléments financiers à notre disposition, nous avons avons procédé à une projection à 3 ans de la valeur du Chiffre d'Affaires. Notre estimation à 3 ans table sur une stabilité du CA avec une valeur de {CA_Y[3]} en {BILANANNEE3}.<BR>",
),
735500 => array(
9 => "COULEUR(VER3,ROU1,MET3)",
10 => "{GRAPH(\"Evolution du CA et projection sur 3 ans\",R[006]#H,CA_Y#L)}",
),
735930 => array(
10 => "Notre estimation à 3 ans table sur un Résultat Courant avant Impôts de {RCAI_Y[3]} en {BILANANNEE3}.<BR>",
20 => "Le taux de pertinence de notre projection est de {RCAI_TAUX}.",
),
735950 => array(
9 => "COULEUR(JAU1,ROU1,MET3)",
10 => "{GRAPH(\"Evolution du RCAI et projection sur 3 ans\",R[008]#H,RCAI_Y#L)}",
),
2400101 => array(
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}.",
),
2400102 => array(
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}.",
),
2400103 => array(
10 => "L'entreprise se situe à la 1<sup>ere</sup> place dans un marché dont la taille est estimée à {MARCHE}.",
),
2400109 => array(
10 => "L'entreprise se situe dans un marché dont la taille est estimée à {MARCHE} et qui progresse de {!MARCHEVOL}.",
),
2400111 => array(
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}.",
),
2400112 => array(
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}.",
),
2400119 => array(
10 => "L'entreprise se situe dans un marché dont la taille est estimée à {MARCHE} et qui régresse de {MARCHEVOL}.",
),
2400121 => array(
10 => "L'entreprise se situe à la 1<sup>ere</sup> place dans un marché dont la taille est estimée à {MARCHE}.",
),
2400122 => array(
10 => "L'entreprise se situe à la {MARCHEPLACE}<sup>eme</sup> place dans un marché dont la taille est estimée à {MARCHE}.",
),
2400123 => array(
10 => "L'entreprise figure parmi les 200 premières affaires dans un marché dont la taille est estimée à {MARCHE}.",
),
2400124 => array(
10 => "L'entreprise figure parmi les 500 premières affaires dans un marché dont la taille est estimée à {MARCHE}.",
),
2400125 => array(
10 => "L'entreprise figure parmi les 1000 premières affaires dans un marché dont la taille est estimée à {MARCHE}.",
),
2400126 => array(
10 => "L'entreprise figure parmi les 2000 premières affaires dans un marché dont la taille est estimée à {MARCHE}.",
),
2400200 => array(
10 => "<C.>, elle en représente {MARCHEPART}, et sa part de marché évolue favorablement de {MARCHEPARTEVOL}.",
),
2400210 => array(
10 => "<C.>, elle en représente {MARCHEPART}, et sa part de marché évolue défavorablement de {MARCHEPARTEVOL}.",
),
2400300 => array(
10 => "Part conséquent on peut dire que le volume de son marché se developpe de {MARCHEVOLUMEVOL}.",
),
2400310 => array(
10 => "Part conséquent on peut dire que le volume de son marché diminue de {MARCHEVOLUMEVOL}.",
),
2400410 => array(
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.",
),
2400420 => array(
10 => "A noter qu'en termes d'emplois, le marché dans son ensemble représente plus de {MARCHESAL} salariés.",
),
2400430 => array(
10 => "A noter que le marché dans son ensemble représente plus de {MARCHENBENT} entreprises.",
),
3902100 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que {VENTE_VILLE_NB} affaires localisées à {VILLE} se sont négociées dans une fourchette de {VENTEMIN_VILLE_EU} et {VENTEMAX_VILLE_EU}.",
),
3902101 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires localisées à {VILLE} se sont négociées dans une fourchette de {VENTEMIN_VILLE_EU} et {VENTEMAX_VILLE_EU}.",
),
3902110 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule affaire de la même localité est intervenue pour un montant de {VENTEMIN_VILLE_EU}.",
),
3902111 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires de la même localité se sont négociées aux environs de {VENTEMIN_VILLE_EU}.",
),
3902130 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule vente est intervenue dans la même localité pour un montant de {VENTEMAX_VILLE_EU}.",
),
3902131 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires de la même localité se sont négociées aux environs de {VENTEMAX_VILLE_EU}.",
),
3902200 => array(
10 => "<C.>, alors qu'on dénombre {VENTE_DEP_NB} cessions dans le département dans une fourchette de {VENTEMIN_DEP_EU} à {VENTEMAX_DEP_EU}.",
),
3902300 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que {VENTE_DEP_NB} affaires de la proche région se sont négociées dans une fourchette de {VENTEMIN_DEP_EU} et {VENTEMAX_DEP_EU}.",
),
3902301 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires du département se sont négociées dans une fourchette de {VENTEMIN_DEP_EU} et {VENTEMAX_DEP_EU}.",
),
3902310 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule affaire de la même localité est intervenue pour un montant de {VENTEMIN_DEP_EU}.",
),
3902311 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires du même département se sont négociées aux environs de {VENTEMIN_DEP_EU}.",
),
3902330 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule vente est intervenue dans le même département pour un montant de {VENTEMAX_DEP_EU}.",
),
3902331 => array(
10 => "Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires de la proche région se sont négociées aux environs de {VENTEMAX_DEP_EU}.",
),
3902900 => array(
10 => "(Sur l'ensemble du territoire, sur la même période, ce sont {VENTE_FRA_NB} ventes qui sont intervenues pour un montant moyen de {VENTEMOY_FRA_EU})",
),
3910001 => array(
0 => "<TABLE CLASS=\"TABLEAUDEFAUTPLUS\" id=\"TABLEAUPLUS\">",
2 => "<TR CLASS=\"TITRES\"> <TH> LES PLUS <I>(en vert la condition atteinte)</I></TH><TH>Taux ou Valeur</TH></TR>",
),
3910100 => array(
10 => "<TR CLASS=\"VERT\"><TH>Moyenne sur 3 ans du taux de croissance du CA > inflation</TH><TD>{Revol[536]}</TD></TR>",
),
3910101 => array(
10 => "<TR ><TH>Moyenne sur 3 ans du taux de croissance du CA > inflation</TH><TD>{Revol[536]}</TD></TR>",
),
3910120 => array(
10 => "<TR CLASS=\"VERT\"><TH>Résultat courant >0 avec croissance du CA sur 3 ans</TH><TD>{R[170]}</TD></TR>",
),
3910121 => array(
10 => "<TR ><TH>Résultat courant >0 avec croissance du CA sur 3 ans</TH><TD>{R[170]}</TD></TR>",
),
3910130 => array(
10 => "<TR CLASS=\"VERT\"><TH>CAF/actif économique > Inflation sur 3 ans</TH><TD>{R[539]}</TD></TR>",
),
3910131 => array(
10 => "<TR ><TH>CAF/actif économique > Inflation sur 3 ans</TH><TD>{R[539]}</TD></TR>",
),
3910135 => array(
10 => "<TR CLASS=\"VERT\"><TH>CAF/capitaux permanents > Inflation sur 3 ans</TH><TD>{R[541]}</TD></TR>",
),
3910136 => array(
10 => "<TR ><TH>CAF/capitaux permanents > Inflation sur 3 ans</TH><TD>{R[541]}</TD></TR>",
),
3910140 => array(
10 => "<TR CLASS=\"VERT\"><TH>Capitaux propres > 15% Total Bilan </TH><TD>{R[510]}</TD></TR>",
),
3910141 => array(
10 => "<TR ><TH>Capitaux propres > 15% Total Bilan </TH><TD>{R[510]}</TD></TR>",
),
3910145 => array(
10 => "<TR CLASS=\"VERT\"><TH>Capitaux propres/capitaux permanents > 40%</TH><TD>{R[240]}</TD></TR>",
),
3910146 => array(
10 => "<TR ><TH>Capitaux propres/capitaux permanents > 40%</TH><TD>{R[240]}</TD></TR>",
),
3910150 => array(
10 => "<TR CLASS=\"VERT\"><TH>Fonds de Roulement > 0 </TH><TD>{R[231]}</TD></TR>",
),
3910151 => array(
10 => "<TR ><TH>Fonds de Roulement > 0 </TH><TD>{R[231]}</TD></TR>",
),
3910155 => array(
10 => "<TR CLASS=\"VERT\"><TH>Fonds de Roulement/BFR > 70% </TH><TD>{R[234]}</TD></TR>",
),
3910156 => array(
10 => "<TR ><TH>Fonds de Roulement/BFR > 70% </TH><TD>{R[234]}</TD></TR>",
),
3910160 => array(
10 => "<TR CLASS=\"VERT\"><TH>Trésorerie > 30 J de CA</TH><TD>{!R[512]}</TD></TR>",
),
3910161 => array(
10 => "<TR ><TH>Trésorerie > 30 J de CA</TH><TD>{!R[512]}</TD></TR>",
),
3910170 => array(
10 => "<TR CLASS=\"VERT\"><TH>Dettes financières LMT / CAF <= 4 ans </TH><TD>{R[247]}</TD></TR>",
),
3910171 => array(
10 => "<TR ><TH>Dettes financières LMT / CAF <= 4 ans </TH><TD>{R[247]}</TD></TR>",
),
3910180 => array(
10 => "<TR CLASS=\"VERT\"><TH>Résultat d'exploitation/charges financières > 400%</TH><TD>{R[542]}</TD></TR>",
),
3910181 => array(
10 => "<TR ><TH>Résultat d'exploitation/charges financières > 400%</TH><TD>{R[542]}</TD></TR>",
),
3910190 => array(
10 => "<TR CLASS=\"VERT\"><TH>Liquidité > 10 fois la dette exigible </TH><TD>{R[308]} fois</TD></TR>",
),
3910191 => array(
10 => "<TR ><TH>Liquidité > 10 fois la dette exigible </TH><TD>{R[308]} fois</TD></TR>",
),
3911001 => array(
0 => "<TABLE CLASS=\"TABLEAUDEFAUTMOINS\" id=\"TABLEAUMOINS\">",
2 => "<TR CLASS=\"TITRES\"> <TH> LES MOINS <I>(en rouge la condition atteinte)</I></TH><TH>Taux ou Valeur</TH></TR>",
),
3911100 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Baisse du résultat courant sur 3 ans </TH><TD>{Rp2[170]} <LI=> {R[170]}</TD></TR>",
),
3911101 => array(
10 => "<TR ><TH>Baisse du résultat courant sur 3 ans </TH><TD>{Rp2[170]} <LI=> {R[170]}</TD></TR>",
),
3911110 => array(
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>",
),
3911111 => array(
10 => " <TR ><TH>Baisse de la trésorerie en jours de CA (N/N-3) </TH><TD>{Rp2[512]} <LI=> {R[512]}</TD></TR>",
),
3911120 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Fonds propres < 0 & Résultat courant < 0 </TH><TD>{R[070]} & {R[170]}</TD></TR>",
),
3911121 => array(
10 => "<TR ><TH>Fonds propres < 0 & Résultat courant < 0 </TH><TD>{R[070]} & {R[170]}</TD></TR>",
),
3911130 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Fonds propres < 10% Total Bilan </TH><TD>{R[510]}</TD></TR>",
),
3911131 => array(
10 => "<TR ><TH>Fonds propres < 10% Total Bilan </TH><TD>{R[510]}</TD></TR>",
),
3911145 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Capitaux propres/capitaux permanents < 30%</TH><TD>{R[240]}</TD></TR>",
),
3911146 => array(
10 => "<TR ><TH>Capitaux propres/capitaux permanents < 30%</TH><TD>{R[240]}</TD></TR>",
),
3911150 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Credit Clients > 60 jours de CA </TH><TD>{R[278]}</TD></TR>",
),
3911151 => array(
10 => "<TR ><TH>Credit Clients > 60 jours de CA </TH><TD>{R[278]}</TD></TR>",
),
3911160 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Dettes financières LT/CAF > 5ans </TH><TD>{R[247]}</TD></TR>",
),
3911161 => array(
10 => "<TR ><TH>Dettes financières LT/CAF > 5ans </TH><TD>{R[247]}</TD></TR>",
),
3911170 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Résultat d'exploitation/Charges financières < 200% </TH><TD>{R[542]}</TD></TR>",
),
3911171 => array(
10 => "<TR ><TH>Résultat d'exploitation/Charges financières < 200% </TH><TD>{R[542]}</TD></TR>",
),
3911180 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Fonds de Roulement < BFR, Trésorerie < 0 </TH><TD>{R[226]}</TD></TR>",
),
3911181 => array(
10 => "<TR ><TH>Fonds de Roulement < BFR, Trésorerie < 0 </TH><TD>{R[226]}</TD></TR>",
),
20001000 => array(
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).",
30 => "Schématiquement, les méthodes d'évaluation de l'entreprise que nous pouvons utiliser se regroupent en trois catégories:",
31 => "<LI> celles qui relèvent d'une approche patrimoniale.",
32 => "<LI> celles qui s'appuient sur la rentabilité.",
33 => "<LI> celles qui découlent d'une comparaison, qui valorise une société à partir de données sur des sociétés présentant un profil comparable.",
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.",
),
20011000 => array(
40 => "<BR>Dans le cadre de notre étude, voici les principales forces et faiblesses que nous avons relevées :",
),
20011900 => array(
0 => "<BR>",
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 :",
20 => "<LI> Potentiel de développement.",
21 => "<LI> Positionnement sur son marché et concurrence.",
22 => "<LI> Lien de dépendance et impact du départ du dirigeant.",
23 => "<LI> Motivation et ambiance interne.",
30 => "Ces caractéristiques jouent sur la valeur en l'améliorant ou en la pénalisant.</I>",
),
20012000 => array(
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.",
),
20012001 => array(
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.",
),
20012002 => array(
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.",
),
20012100 => array(
0 => "<TABLE CLASS=\"TABLEAUBILAN\">",
1 => "<TR CLASS=\"TITRES\"> <TH> BILAN</TH><TH>{BILANDATEp2} ({nmp2} mois)</TH><TH>{BILANDATEp} ({nmp} mois)</TH><TH>{BILANDATE} ({nm} mois)</TH></TR>",
),
20012110 => array(
8 => "<TR CLASS=\"TOTAL\"><TH>Total Actif </TH><TD>{Rp2[069]}</TD><TD>{Rp[069]}</TD><TD>{R[069]}</TD></TR>",
9 => "<TR CLASS=\"BLANC\"><TH>Dont: </TH><TD> </TD><TD> </TD><TD> </TD></TR>",
11 => "<TR CLASS=\"LIGNE1\"><TH>Immobilisations</TH><TD>{Rp2[059]}</TD><TD>{Rp[059]}</TD><TD>{R[059]}</TD></TR>",
21 => "<TR CLASS=\"BLANC\"><TH>Stocks</TH><TD>{Rp2[060]}</TD><TD>{Rp[060]}</TD><TD>{R[060]}</TD></TR>",
31 => "<TR CLASS=\"LIGNE1\"><TH>Créances clients </TH><TD>{Rp2[061]}</TD><TD>{Rp[061]}</TD><TD>{R[061]}</TD></TR>",
41 => "<TR CLASS=\"BLANC\"><TH>Autres créances </TH><TD>{Rp2[062]}</TD><TD>{Rp[062]}</TD><TD>{R[062]}</TD></TR>",
51 => "<TR CLASS=\"LIGNE1\"><TH>Disponibilités </TH><TD>{Rp2[063]}</TD><TD>{Rp[063]}</TD><TD>{R[063]}</TD></TR>",
),
20012120 => array(
1 => "<TR CLASS=\"TOTAL\"><TH>Total Passif </TH><TD>{Rp2[022]}</TD><TD>{Rp[022]}</TD><TD>{R[022]}</TD></TR>",
9 => "<TR CLASS=\"BLANC\"><TH>Dont: </TH><TD> </TD><TD> </TD><TD> </TD></TR>",
11 => "<TR CLASS=\"LIGNE1\"><TH>Capitaux propres </TH><TD>{Rp2[070]}</TD><TD>{Rp[070]}</TD><TD>{R[070]}</TD></TR>",
21 => "<TR CLASS=\"BLANC\"><TH>Provisions pour risques & charges </TH><TD>{Rp2[071]}</TD><TD>{Rp[071]}</TD><TD>{R[071]}</TD></TR>",
31 => "<TR CLASS=\"LIGNE1\"><TH>Dettes financières </TH><TD>{Rp2[083]}</TD><TD>{Rp[083]}</TD><TD>{R[083]}</TD></TR>",
41 => "<TR CLASS=\"BLANC\"><TH>Dettes fournisseurs </TH><TD>{Rp2[084]}</TD><TD>{Rp[084]}</TD><TD>{R[084]}</TD></TR>",
),
20012200 => array(
0 => "<TABLE CLASS=\"TABLEAUSITUFI\">",
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>",
),
20012210 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Dettes </TH><TD>{Rp2[032]}</TD><TD>{Rp[032]}</TD><TD>{R[032]}</TD></TR>",
21 => "<TR CLASS=\"BLANC\"><TH>Capacité d'autofinancement </TH><TD>{Rp2[233]}</TD><TD>{Rp[233]}</TD><TD>{R[233]}</TD></TR>",
31 => "<TR CLASS=\"LIGNE1\"><TH>Fonds de Roulement </TH><TD>{Rp2[231]}</TD><TD>{Rp[231]}</TD><TD>{R[231]}</TD></TR>",
41 => "<TR CLASS=\"BLANC\"><TH>Besoin en Fonds de Roulement </TH><TD>{Rp2[232]}</TD><TD>{Rp[232]}</TD><TD>{R[232]}</TD></TR>",
51 => "<TR CLASS=\"TOTAL\"><TH>Trésorerie </TH><TD>{Rp2[249]}</TD><TD>{Rp[249]}</TD><TD>{R[249]}</TD></TR>",
),
20012220 => array(
1 => "<BR>Ci-dessous la comparaison des Fonds de Roulement, Besoin en fonds de Roulement & trésorerie.",
10 => "{GRAPH(\"Situation financière\",R[231]#T,R[232]#T,R[249]#T)}",
),
20012400 => array(
0 => "<TABLE CLASS=\"TABLEAURESULTAT\">",
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>",
),
20012410 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Chiffre d'affaires </TH><TD>{Rp2[005]}</TD><TD>{Rp[005]}</TD><TD>{R[005]}</TD></TR>",
21 => "<TR CLASS=\"BLANC\"><TH>Marge commerciale </TH><TD>{Rp2[110]}</TD><TD>{Rp[110]}</TD><TD>{R[110]}</TD></TR>",
31 => "<TR CLASS=\"LIGNE1\"><TH>Valeur ajoutée </TH><TD>{Rp2[130]}</TD><TD>{Rp[130]}</TD><TD>{R[130]}</TD></TR>",
41 => "<TR CLASS=\"BLANC\"><TH>Excédent brut d'exploitation </TH><TD>{Rp2[140]}</TD><TD>{Rp[140]}</TD><TD>{R[140]}</TD></TR>",
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>",
61 => "<TR CLASS=\"BLANC\"><TH>Résultat exceptionnel </TH><TD>{Rp2[180]}</TD><TD>{Rp[180]}</TD><TD>{R[180]}</TD></TR>",
71 => "<TR CLASS=\"LIGNE1\"><TH>Résultat net </TH><TD>{Rp2[010]}</TD><TD>{Rp[010]}</TD><TD>{R[010]}</TD></TR>",
),
20012420 => array(
1 => "<BR>Ci-dessous la comparaison des Chiffres d'affaires, Marge brute et Résultat.",
10 => "{GRAPH(\"CA,Marge,Résultat\",R[005]#T,R[122]#T,R[010]#T)}",
),
20020100 => array(
0 => "<H3> Multiple du Chiffre d'affaires",
10 => "Cette méthode, la plus connue et la plus simple, est principalement utilisée pour avaluer les fonds de commerce.",
45 => "En l'absence de marché, l'évaluation des éléments incorporels de ces fonds se fait selon une méthode forfaitaire, selon les performances et l'activité de l'entreprise.",
51 => "Selon la méthode du multiple du Chiffre d'affaires l'estimation se situe entre {VAL970_EU} et {VAL971_EU}.",
),
20020110 => array(
1 => "<BR>Ci-dessous l'évolution du chiffre d'affaires.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Chiffre d'affaires\",R[006]#H)}",
),
20021200 => array(
0 => "<H3> Méthode de la valeur patrimoniale",
10 => "La valeur patrimoniale correspond souvent à la valeur plancher de l'entreprise.",
51 => "La fourchette de notre estimation selon la méthode de la valeur patrimoniale s'établit entre {VAL978_EU} et {VAL979_EU}.",
),
20021210 => array(
1 => "<BR>Ci-dessous l'évolution de l'actif immobilisé net.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Actif Immobilisé NET\",R[059]#H)}",
),
20022200 => array(
0 => "<H3> Méthode de la valeur de productivité",
51 => "La méthode de la valeur de la productivité est l'expression de la rentabilité de l'entreprise au travers la capitalisation du benéfice corrigé des dotations. Elle débouche sur une valorisation entre {VAL974_EU} et {VAL975_EU}.",
),
20022210 => array(
1 => "<BR>Ci-dessous l'évolution du Résultat Courant Avant Impôts.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"RCAI\",R[008]#H)}",
),
20022500 => array(
0 => "<H3> Méthode de la valeur du rendement",
11 => "Cette méthode se fonde sur le bénéfice distribué, elle ne se conçoit qu'à l'égard d'entreprises sociétaires qui pratiquent une politique régulière de distribution.",
51 => "Le résultat de la méthode de la valeur du rendement se situe entre {VAL982_EU} et {VAL983_EU}.",
),
20022510 => array(
1 => "<BR>Ci-dessous l'évolution des dividendes distribués.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Dividendes distribués\",R[529]#H)}",
),
20023100 => array(
0 => "<H3> Multiple du Bénéfice",
10 => "On peux considérer qu'une entreprise vaut par sa rentabilité, sur la base d'un multiple de ses résultats. Le bénéfice à retenir est établi à partir du résultat net courant (résultat courant avant impôt, minoré de l'impôt sur les sociétés), afin d'éliminer les éléments exceptionnels affectant le résultat net comptable.",
51 => "Par la méthode du multiple du Bénéfice l'entreprise est valorisée entre {VAL984_EU} et {VAL985_EU}.",
),
20023110 => array(
1 => "<BR>Ci-dessous l'évolution du bénéfice réel (RCAI-impôts).",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Bénéfice réel\",R[318]#H)}",
),
20025200 => array(
0 => "<H3> Multiple de l'EBE",
10 => "Cette méthode repose sur une évaluation globale de l'entreprise prenant en compte l'endettement financier de la société.",
20 => "La valorisation par l'EBE conduit à une fourchette de valeurs entre {VAL986_EU} et {VAL987_EU}.",
),
20025210 => array(
1 => "<BR>Ci-dessous l'évolution de l'Excédent Brut d'Exploitation.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"EBE\",R[301]#H)}",
),
20026100 => array(
0 => "<H3> Multiple de la MBA",
10 => "Cette méthode est plus particulièrement adaptée aux sociétés qui nécessitent des investissements et constatent des amortissements importants.",
11 => "La présence de terrains dans une forte proportion élargit la fourchette de l'estimation. ",
20 => "Selon cette méthode la valeur de l'entreprise se situe entre {VAL988_EU} et {VAL989_EU}.",
),
20026101 => array(
0 => "<H3> Multiple de la MBA",
10 => "Cette méthode est plus particulièrement adaptée aux sociétés qui nécessitent des investissements et constatent des amortissements importants.",
20 => "Selon cette méthode la valeur de l'entreprise se situe entre {VAL988_EU} et {VAL989_EU}.",
),
20026110 => array(
1 => "<BR>Ci-dessous l'évolution de la Marge Brute d'Autofinancement.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"MBA\",R[333]#H)}",
),
20027100 => array(
0 => "<H3> Méthode par comparaison",
10 => "La méthode par comparaison repose sur le postulat que des sociétés comparables se valorisent sur des critères et des règles identiques. Cette approche consiste donc à établir des comparaisons avec des transactions intervenues sur le marché des fusions-acquisitions et de l'historique des ventes et cessions, d'entreprises du même profil dans la même région.",
20 => "Par l'étude des transactions récentes, la valeur de l'entreprise se situe entre {VAL996_EU} et {VAL997_EU}.",
),
20028100 => array(
0 => "<H3> Méthode d'évaluation par la Situation Nette Comptable (SNC)",
1 => "Un des axes de l'évalutation peut s'appuyer sur la situation nette comptable (SNC) de la société, l'actif net, c'est-à-dire amorti, corrigé des dettes.",
20 => "Valorisation par la Situation Nette Comptable entre {VAL976_EU} et {VAL977_EU}.",
),
20028110 => array(
1 => "<BR>Ci-dessous l'évolution de la Situation Nette Comptable.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Situation nette\",R[091]#H)}",
),
20050100 => array(
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 :",
),
20080201 => array(
0 => "<TABLE CLASS=\"TABLEAURESULTAT\">",
2 => "<TR CLASS=\"TITRES\"> <TH> Pondération des méthodes </TH><TH>Valeur mini</TH><TH>Valeur maxi</TH></TR>",
),
20080210 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Valeur patrimoniale </TH><TD>{VAL978_EU}</TD><TD>{VAL979_EU}</TD></TR>",
),
20080215 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Selon le Chiffre d'affaires </TH><TD>{VAL970_EU}</TD><TD>{VAL971_EU}</TD></TR>",
),
20080217 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Selon la siuation nette comptable </TH><TD>{VAL976_EU}</TD><TD>{VAL977_EU}</TD></TR>",
),
20080220 => array(
21 => "<TR CLASS=\"LIGNE2\"><TH>Valeur de productivité </TH><TD>{VAL982_EU}</TD><TD>{VAL983_EU}</TD></TR>",
),
20080230 => array(
31 => "<TR CLASS=\"LIGNE1\"><TH>Capitalisation du bénéfice </TH><TD>{VAL984_EU}</TD><TD>{VAL985_EU}</TD></TR>",
),
20080240 => array(
41 => "<TR CLASS=\"LIGNE2\"><TH>Capitalisation selon l'EBE </TH><TD>{VAL986_EU}</TD><TD>{VAL987_EU}</TD></TR>",
),
20080250 => array(
51 => "<TR CLASS=\"LIGNE1\"><TH>Capitalisation selon la MBA </TH><TD>{VAL988_EU}</TD><TD>{VAL989_EU}</TD></TR>",
),
20080260 => array(
61 => "<TR CLASS=\"LIGNE2\"><TH>Capitalisation selon la CAF+Trésorerie </TH><TD>{VAL990_EU}</TD><TD>{VAL991_EU}</TD></TR>",
),
20080270 => array(
71 => "<TR CLASS=\"LIGNE1\"><TH>Capitaux risqueurs </TH><TD>{VAL992_EU}</TD><TD>{VAL993_EU}</TD></TR>",
),
20080280 => array(
81 => "<TR CLASS=\"LIGNE2\"><TH>Patrimoniale + GOODWILL </TH><TD>{VAL994_EU}</TD><TD>{VAL995_EU}</TD></TR>",
),
20080290 => array(
81 => "<TR CLASS=\"TOTAL\"><TH>Comparative cessions profils similaires </TH><TD>{VAL996_EU}</TD><TD>{VAL997_EU}</TD></TR>",
),
20090310 => array(
0 => "<TABLE CLASS=\"TABLEAUHAUTBAS\">",
2 => "<TR CLASS=\"TITRES\"> <TH> </TH><TH> estimation haute</TH></TR>",
11 => "<TR CLASS=\"BLANC\"><TD> </TD><TD CLASS=\"TOTAL\">{VAL999_EU}</TD></TR>",
12 => "<TR CLASS=\"TITRES\"> <TH> estimation basse </TH><TH> </TH></TR>",
21 => "<TR CLASS=\"BLANC\"><TD CLASS=\"TOTAL\">{VAL998_EU} </TD><TD> </TD></TR>",
),
20090510 => array(
20 => "<LI> Les immobilisations corporelles doivent être réévaluées à leur valeur de marché et non comptable. ",
),
20090610 => array(
20 => "<LI> L'estimation finale devrait intégrer l'ensemble des dettes à court terme exigibles au moment de la cession.",
),
20090611 => array(
20 => "<LI> L'estimation finale devrait intégrer l'ensemble des dettes à court, moyen et long termes exigibles au moment de la cession.",
),
20090710 => array(
20 => "<LI> Il conviendra de vérifier l'exactitude des dettes financières portées au bilan.",
),
20090711 => array(
20 => "<LI> Il conviendra de vérifier l'exactitude des dettes fournisseurs portées au bilan.",
),
20090712 => array(
20 => "<LI> Il conviendra de vérifier l'exactitude des dettes financières et fournisseurs portées au bilan.",
),
20090810 => array(
20 => "<BR>A noter qu'aucune provision ne figure au bilan.",
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.",
),
20090830 => array(
20 => "<BR> A noter que les provisions semblent anormalement limitées.",
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.",
),
20090840 => array(
20 => "<BR> A noter que les provisions semblent anormalement élevées.",
),
20090910 => array(
20 => "<LI> Le foncier représente une part importante des actifs, une divergeance de sa valeur par rapport au marché aura un fort impact sur l'évaluation. ",
),
100000100 => array(
0 => "<H1>PRESENTATION",
),
100001000 => array(
0 => "<H1>DIAGNOSTIC",
),
100002000 => array(
0 => "<H1>PATRIMOINE & RESULTATS",
),
100003000 => array(
0 => "<H2>BILANS",
),
100004000 => array(
0 => "<H2>COMPTE DE RESULTAT",
),
100005000 => array(
0 => "<H1>RETRAITEMENT",
),
100010000 => array(
0 => "<H1>METHODES DE CALCUL",
),
100015000 => array(
0 => "<H2>Les méthodes retenues",
),
100016000 => array(
0 => "<H2>Pondération des méthodes",
),
100019000 => array(
0 => "<H1>CONCLUSION",
),
100019100 => array(
0 => "<H2>Observations",
),
);

View File

@ -1,558 +0,0 @@
<?php
/** Auto generated - 2015-09-20 18:32:29*/
return array(
100 => array(
1 => "Version 2.09",
),
5000 => array(
1 => "<BR>Valorisation de {NOMEN} en date du : {JOUR_DATE}",
),
7000 => array(
10 => "<LI><B>ENTREPRISE INACTIVE</B>",
),
7001 => array(
10 => "<LI><B>ENTREPRISE EN ACTIVITE SELON l'INSEE MAIS DECLAREE INACTIVE EN SOURCE GREFFES</B>",
),
7002 => array(
10 => "<LI><B>ENTREPRISE SANS ACTIVITE SELON l'INSEE MAIS DECLAREE ENCORE EN ACTIVITE EN SOURCE GREFFES</B>",
),
7003 => array(
10 => "COULEUR(VER3,ROU2,BLE3,MAR,MET2,VIO1,ROU3,NOI2,MET,VER2,ROU1,MET3,BLE,MAR2,MET1,VER2)",
),
9995 => array(
1 => "L'objet social publié dans les annonces légales est libellé comme : <I>\"{ANNONCEOBJET}\"",
),
9996 => array(
1 => "Au répertoire national l'activité est codifiée {APEENT(5)}, {APEENT}",
),
199000 => array(
0 => "Cette entreprise est une TPE à vocation principalement régionale.",
),
200000 => array(
0 => "Cette entreprise est une PME à vocation principalement régionale.",
),
201000 => array(
0 => "Cette entreprise est une PME importante au sein du bassin économique régional {RPEN}",
),
202000 => array(
0 => "L' entreprise \"{NOMEN}\" est une entreprise importante au sein du bassin économique régional.",
),
203000 => array(
0 => "Cette entreprise est une PME majeure au sein de la région {RPEN}.",
),
204000 => array(
0 => "C'est une des premières entreprises françaises.",
),
205000 => array(
0 => " C'est une PME qui compte dans le département {DEPSIE}.",
),
205099 => array(
0 => "C'est une PME de taille signicative dont le siège situe hors de France ({DEPSIE_DE}).",
),
205200 => array(
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.",
),
735100 => array(
0 => "<B>Projection du CA sur 3 ans:</B>",
10 => "D'après les éléments financiers à notre disposition, nous avons avons procédé à une projection à 3 ans de la valeur du Chiffre d'Affaires. Notre estimation à 3 ans table sur un CA de {CA_Y[3]} en {BILANANNEE3} soit une tendance à la hausse de {CA_TAUX}.<BR>",
),
735110 => array(
10 => "<FONT color=\"red\">L'ampleur de la progression est à relativiser car des opérations de fusion (dont la dernière le {ANNONCEFUSDATE}) ont dopé le Chiffre d'Affaires.</FONT>",
),
735111 => array(
10 => "<FONT color=\"red\">L'ampleur de la progression est à relativiser car une fusion absoption intervenue le {ANNONCEFUSDATE}) a dopé le Chiffre d'Affaires.</FONT>",
),
735112 => array(
10 => "<FONT color=\"red\">L'ampleur de la progression est à relativiser car des opérations de fusion ont dopé le Chiffre d'Affaires.</FONT>",
),
735200 => array(
10 => "D'après les éléments financiers à notre disposition, nous avons avons procédé à une projection à 3 ans de la valeur du Chiffre d'Affaires. Notre estimation à 3 ans table sur un CA de {CA_Y[3]} en {BILANANNEE3} soit tendance à la baisse de {CA_TAUX}.<BR>",
),
735300 => array(
10 => "D'après les éléments financiers à notre disposition, nous avons avons procédé à une projection à 3 ans de la valeur du Chiffre d'Affaires. Notre estimation à 3 ans table sur une stabilité du CA avec une valeur de {CA_Y[3]} en {BILANANNEE3}.<BR>",
),
735500 => array(
9 => "COULEUR(VER3,ROU1,MET3)",
10 => "{GRAPH(\"Evolution du CA et projection sur 3 ans\",R[006]#H,CA_Y#L)}",
),
735930 => array(
10 => "Notre estimation à 3 ans table sur un Résultat Courant avant Impôts de {RCAI_Y[3]} en {BILANANNEE3}.<BR>",
20 => "Le taux de pertinence de notre projection est de {RCAI_TAUX}.",
),
735950 => array(
9 => "COULEUR(JAU1,ROU1,MET3)",
10 => "{GRAPH(\"Evolution du RCAI et projection sur 3 ans\",R[008]#H,RCAI_Y#L)}",
),
2400101 => array(
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}.",
),
2400102 => array(
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}.",
),
2400103 => array(
10 => "L'entreprise se situe à la 1<sup>ere</sup> place dans un marché dont la taille est estimée à {MARCHE}.",
),
2400109 => array(
10 => "L'entreprise se situe dans un marché dont la taille est estimée à {MARCHE} et qui progresse de {!MARCHEVOL}.",
),
2400111 => array(
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}.",
),
2400112 => array(
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}.",
),
2400119 => array(
10 => "L'entreprise se situe dans un marché dont la taille est estimée à {MARCHE} et qui régresse de {!MARCHEVOL}.",
),
2400121 => array(
10 => "L'entreprise se situe à la 1<sup>ere</sup> place dans un marché dont la taille est estimée à {MARCHE}.",
),
2400122 => array(
10 => "L'entreprise se situe à la {MARCHEPLACE}<sup>eme</sup> place dans un marché dont la taille est estimée à {MARCHE}.",
),
2400123 => array(
10 => "L'entreprise figure parmi les 200 premières affaires dans un marché dont la taille est estimée à {MARCHE}.",
),
2400124 => array(
10 => "L'entreprise figure parmi les 500 premières affaires dans un marché dont la taille est estimée à {MARCHE}.",
),
2400125 => array(
10 => "L'entreprise figure parmi les 1000 premières affaires dans un marché dont la taille est estimée à {MARCHE}.",
),
2400126 => array(
10 => "L'entreprise figure parmi les 2000 premières affaires dans un marché dont la taille est estimée à {MARCHE}.",
),
2400200 => array(
10 => "<C.>, elle en représente {MARCHEPART}, et sa part de marché évolue favorablement de {MARCHEPARTEVOL}.",
),
2400210 => array(
10 => "<C.>, elle en représente {MARCHEPART}, et sa part de marché évolue défavorablement de {MARCHEPARTEVOL}.",
),
2400300 => array(
10 => "Part conséquent on peut dire que le volume de son marché se developpe de {MARCHEVOLUMEVOL}.",
),
2400310 => array(
10 => "Part conséquent on peut dire que le volume de son marché diminue de {MARCHEVOLUMEVOL}.",
),
2400410 => array(
10 => "A noter qu'en terme d'emplois, le marché dans son ensemble représente plus de {MARCHESAL} salariés pour un nombre de {MARCHENBENT} entreprises.",
),
2400420 => array(
10 => "A noter qu'en terme d'emplois, le marché dans son ensemble représente plus de {MARCHESAL} salariés.",
),
2400430 => array(
10 => "A noter que le marché dans son ensemble représente plus de {MARCHENBENT} entreprises.",
),
3910001 => array(
0 => "<TABLE CLASS=\"TABLEAUDEFAUTPLUS\" id=\"TABLEAUPLUS\">",
2 => "<TR CLASS=\"TITRES\"> <TH> LES PLUS <I>(en vert la condition atteinte)</I></TH><TH>Taux ou Valeur</TH></TR>",
),
3910100 => array(
10 => "<TR CLASS=\"VERT\"><TH>Moyenne sur 3 ans du taux de croissance du CA > inflation</TH><TD>{Revol[536]}</TD></TR>",
),
3910101 => array(
10 => "<TR ><TH>Moyenne sur 3 ans du taux de croissance du CA > inflation</TH><TD>{Revol[536]}</TD></TR>",
),
3910120 => array(
10 => "<TR CLASS=\"VERT\"><TH>Résultat courant >0 avec croissance du CA sur 3 ans</TH><TD>{R[170]}</TD></TR>",
),
3910121 => array(
10 => "<TR ><TH>Résultat courant >0 avec croissance du CA sur 3 ans</TH><TD>{R[170]}</TD></TR>",
),
3910130 => array(
10 => "<TR CLASS=\"VERT\"><TH>CAF/actif économique > Inflation sur 3 ans</TH><TD>{R[539]}</TD></TR>",
),
3910131 => array(
10 => "<TR ><TH>CAF/actif économique > Inflation sur 3 ans</TH><TD>{R[539]}</TD></TR>",
),
3910135 => array(
10 => "<TR CLASS=\"VERT\"><TH>CAF/capitaux permanents > Inflation sur 3 ans</TH><TD>{R[541]}</TD></TR>",
),
3910136 => array(
10 => "<TR ><TH>CAF/capitaux permanents > Inflation sur 3 ans</TH><TD>{R[541]}</TD></TR>",
),
3910140 => array(
10 => "<TR CLASS=\"VERT\"><TH>Capitaux propres > 15% Total Bilan </TH><TD>{R[510]}</TD></TR>",
),
3910141 => array(
10 => "<TR ><TH>Capitaux propres > 15% Total Bilan </TH><TD>{R[510]}</TD></TR>",
),
3910145 => array(
10 => "<TR CLASS=\"VERT\"><TH>Capitaux propres/capitaux permanents > 40%</TH><TD>{R[240]}</TD></TR>",
),
3910146 => array(
10 => "<TR ><TH>Capitaux propres/capitaux permanents > 40%</TH><TD>{R[240]}</TD></TR>",
),
3910150 => array(
10 => "<TR CLASS=\"VERT\"><TH>Fonds de Roulement > 0 </TH><TD>{R[231]}</TD></TR>",
),
3910151 => array(
10 => "<TR ><TH>Fonds de Roulement > 0 </TH><TD>{R[231]}</TD></TR>",
),
3910155 => array(
10 => "<TR CLASS=\"VERT\"><TH>Fonds de Roulement/BFR > 70% </TH><TD>{R[234]}</TD></TR>",
),
3910156 => array(
10 => "<TR ><TH>Fonds de Roulement/BFR > 70% </TH><TD>{R[234]}</TD></TR>",
),
3910160 => array(
10 => "<TR CLASS=\"VERT\"><TH>Trésorerie > 30 J de CA</TH><TD>{!R[512]}</TD></TR>",
),
3910161 => array(
10 => "<TR ><TH>Trésorerie > 30 J de CA</TH><TD>{!R[512]}</TD></TR>",
),
3910170 => array(
10 => "<TR CLASS=\"VERT\"><TH>Dettes financières LMT / CAF <= 4 ans </TH><TD>{R[247]}</TD></TR>",
),
3910171 => array(
10 => "<TR ><TH>Dettes financières LMT / CAF <= 4 ans </TH><TD>{R[247]}</TD></TR>",
),
3910180 => array(
10 => "<TR CLASS=\"VERT\"><TH>Résultat d'exploitation/charges financières > 400%</TH><TD>{R[542]}</TD></TR>",
),
3910181 => array(
10 => "<TR ><TH>Résultat d'exploitation/charges financières > 400%</TH><TD>{R[542]}</TD></TR>",
),
3910190 => array(
10 => "<TR CLASS=\"VERT\"><TH>Liquidité > 10 fois la dette exigible </TH><TD>{R[308]} fois</TD></TR>",
),
3910191 => array(
10 => "<TR ><TH>Liquidité > 10 fois la dette exigible </TH><TD>{R[308]} fois</TD></TR>",
),
3911001 => array(
0 => "<TABLE CLASS=\"TABLEAUDEFAUTMOINS\" id=\"TABLEAUMOINS\">",
2 => "<TR CLASS=\"TITRES\"> <TH> LES MOINS <I>(en rouge la condition atteinte)</I></TH><TH>Taux ou Valeur</TH></TR>",
),
3911100 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Baisse du résultat courant sur 3 ans </TH><TD>{Rp2[170]} <LI=> {R[170]}</TD></TR>",
),
3911101 => array(
10 => "<TR ><TH>Baisse du résultat courant sur 3 ans </TH><TD>{Rp2[170]} <LI=> {R[170]}</TD></TR>",
),
3911110 => array(
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>",
),
3911111 => array(
10 => " <TR ><TH>Baisse de la trésorerie en jours de CA (N/N-3) </TH><TD>{Rp2[512]} <LI=> {R[512]}</TD></TR>",
),
3911120 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Fonds propres < 0 & Résultat courant < 0 </TH><TD>{R[070]} & {R[170]}</TD></TR>",
),
3911121 => array(
10 => "<TR ><TH>Fonds propres < 0 & Résultat courant < 0 </TH><TD>{R[070]} & {R[170]}</TD></TR>",
),
3911130 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Fonds propres < 10% Total Bilan </TH><TD>{R[510]}</TD></TR>",
),
3911131 => array(
10 => "<TR ><TH>Fonds propres < 10% Total Bilan </TH><TD>{R[510]}</TD></TR>",
),
3911145 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Capitaux propres/capitaux permanents < 30%</TH><TD>{R[240]}</TD></TR>",
),
3911146 => array(
10 => "<TR ><TH>Capitaux propres/capitaux permanents < 30%</TH><TD>{R[240]}</TD></TR>",
),
3911150 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Credit Clients > 60 jours de CA </TH><TD>{R[278]}</TD></TR>",
),
3911151 => array(
10 => "<TR ><TH>Credit Clients > 60 jours de CA </TH><TD>{R[278]}</TD></TR>",
),
3911160 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Dettes financières LT/CAF > 5ans </TH><TD>{R[247]}</TD></TR>",
),
3911161 => array(
10 => "<TR ><TH>Dettes financières LT/CAF > 5ans </TH><TD>{R[247]}</TD></TR>",
),
3911170 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Résultat d'exploitation/Charges financières < 200% </TH><TD>{R[542]}</TD></TR>",
),
3911171 => array(
10 => "<TR ><TH>Résultat d'exploitation/Charges financières < 200% </TH><TD>{R[542]}</TD></TR>",
),
3911180 => array(
10 => "<TR CLASS=\"ROUGE\"><TH>Fonds de Roulement < BFR, Trésorerie < 0 </TH><TD>{R[226]}</TD></TR>",
),
3911181 => array(
10 => "<TR ><TH>Fonds de Roulement < BFR, Trésorerie < 0 </TH><TD>{R[226]}</TD></TR>",
),
20001000 => array(
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).",
30 => "Schématiquement, les méthodes d'évaluation de l'entreprise que nous pouvons utiliser se regroupent en trois catégories:",
31 => "<LI> celles qui relèvent d'une approche patrimoniale.",
32 => "<LI> celles qui s'appuient sur la rentabilité.",
33 => "<LI> celles qui découlent d'une comparaison, qui valorise une société à partir de données sur des sociétés présentant un profil comparable.",
50 => "<BR>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.<BR>",
),
20011000 => array(
40 => "<BR>Dans le cadre de notre étude, voici les principales forces et faiblesses que nous avons relevées :",
),
20011900 => array(
0 => "<BR>",
10 => "<I>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 :",
20 => "<LI> Potentiel de développement.",
21 => "<LI> Positionnement sur son marché et concurrence.",
22 => "<LI> Lien de dépendance et impact du départ du dirigeant.",
23 => "<LI> Motivation et ambiance interne.",
30 => "Ces caractéristiques jouent sur la valeur en l'améliorant ou en la pénalisant.</I>",
),
20012000 => array(
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.",
),
20012001 => array(
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.",
),
20012002 => array(
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.",
),
20012100 => array(
0 => "<TABLE CLASS=\"TABLEAUBILAN\">",
1 => "<TR CLASS=\"TITRES\"> <TH> BILAN</TH><TH>{BILANDATEp2} ({nmp2} mois)</TH><TH>{BILANDATEp} ({nmp} mois)</TH><TH>{BILANDATE} ({nm} mois)</TH></TR>",
),
20012110 => array(
8 => "<TR CLASS=\"TOTAL\"><TH>Total Actif Circulant</TH><TD>{Rp2[069]}</TD><TD>{Rp[069]}</TD><TD>{R[069]}</TD></TR>",
9 => "<TR CLASS=\"BLANC\"><TH>Dont: </TH><TD> </TD><TD> </TD><TD> </TD></TR>",
11 => "<TR CLASS=\"LIGNE1\"><TH>Immobilisations</TH><TD>{Rp2[059]}</TD><TD>{Rp[059]}</TD><TD>{R[059]}</TD></TR>",
21 => "<TR CLASS=\"BLANC\"><TH>Stocks</TH><TD>{Rp2[060]}</TD><TD>{Rp[060]}</TD><TD>{R[060]}</TD></TR>",
31 => "<TR CLASS=\"LIGNE1\"><TH>Créances clients </TH><TD>{Rp2[061]}</TD><TD>{Rp[061]}</TD><TD>{R[061]}</TD></TR>",
41 => "<TR CLASS=\"BLANC\"><TH>Autres créances </TH><TD>{Rp2[062]}</TD><TD>{Rp[062]}</TD><TD>{R[062]}</TD></TR>",
51 => "<TR CLASS=\"LIGNE1\"><TH>Disponibilités </TH><TD>{Rp2[063]}</TD><TD>{Rp[063]}</TD><TD>{R[063]}</TD></TR>",
),
20012120 => array(
1 => "<TR CLASS=\"TOTAL\"><TH>Total Bilan </TH><TD>{Rp2[022]}</TD><TD>{Rp[022]}</TD><TD>{R[022]}</TD></TR>",
9 => "<TR CLASS=\"BLANC\"><TH>Dont: </TH><TD> </TD><TD> </TD><TD> </TD></TR>",
11 => "<TR CLASS=\"LIGNE1\"><TH>Capitaux propres </TH><TD>{Rp2[070]}</TD><TD>{Rp[070]}</TD><TD>{R[070]}</TD></TR>",
21 => "<TR CLASS=\"BLANC\"><TH>Provisions pour risques & charges </TH><TD>{Rp2[071]}</TD><TD>{Rp[071]}</TD><TD>{R[071]}</TD></TR>",
31 => "<TR CLASS=\"LIGNE1\"><TH>Dettes financières </TH><TD>{Rp2[083]}</TD><TD>{Rp[083]}</TD><TD>{R[083]}</TD></TR>",
41 => "<TR CLASS=\"BLANC\"><TH>Dettes fournisseurs </TH><TD>{Rp2[084]}</TD><TD>{Rp[084]}</TD><TD>{R[084]}</TD></TR>",
),
20012200 => array(
0 => "<TABLE CLASS=\"TABLEAUSITUFI\">",
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>",
),
20012210 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Dettes </TH><TD>{Rp2[032]}</TD><TD>{Rp[032]}</TD><TD>{R[032]}</TD></TR>",
21 => "<TR CLASS=\"BLANC\"><TH>Capacité d'autofinancement </TH><TD>{Rp2[233]}</TD><TD>{Rp[233]}</TD><TD>{R[233]}</TD></TR>",
31 => "<TR CLASS=\"LIGNE1\"><TH>Fonds de Roulement </TH><TD>{Rp2[231]}</TD><TD>{Rp[231]}</TD><TD>{R[231]}</TD></TR>",
41 => "<TR CLASS=\"BLANC\"><TH>Besoin en Fonds de Roulement </TH><TD>{Rp2[232]}</TD><TD>{Rp[232]}</TD><TD>{R[232]}</TD></TR>",
51 => "<TR CLASS=\"TOTAL\"><TH>Trésorerie </TH><TD>{Rp2[249]}</TD><TD>{Rp[249]}</TD><TD>{R[249]}</TD></TR>",
),
20012220 => array(
1 => "<BR>Ci-dessous la comparaison des Fonds de Roulement, Besoin en fonds de Roulement & trésorerie.",
10 => "{GRAPH(\"Situation financière\",R[231]#T,R[232]#T,R[249]#T)}",
),
20012420 => array(
1 => "<BR>Ci-dessous la comparaison des Chiffres d'affaires, Marge brute et Résultat.",
10 => "{GRAPH(\"CA,Marge,Résultat\",R[005]#T,R[122]#T,R[010]#T)}",
),
20020100 => array(
0 => "<H2> Multiple du Chiffre d'affaires",
10 => "Cette méthode, la plus connue et la plus simple, est principalement utilisée pour avaluer les fonds de commerce.",
45 => "En l'absence de marché, l'évaluation des éléments incorporels de ces fonds se fait selon une méthode forfaitaire, selon les performances et l'activité de l'entreprise.",
51 => "<B>Selon la méthode du multiple du Chiffre d'affaires l'estimation se situe entre {VAL970_EU} et {VAL971_EU}.</B>",
),
20020110 => array(
1 => "<BR>Ci-dessous l'évolution du chiffre d'affaires.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Chiffre d'affaires\",R[006]#H)}",
),
20021200 => array(
0 => "<H2> Méthode de la valeur patrimoniale",
10 => "La valeur patrimoniale correspond souvent à la valeur plancher de l'entreprise.",
51 => "<B>La fourchette de notre estimation selon la méthode de la valeur patrimoniale s'établit entre {VAL978_EU} et {VAL979_EU}.</B>",
),
20021210 => array(
1 => "<BR>Ci-dessous l'évolution de l'actif immobilisé net.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Actif Immobilisé NET\",R[059]#H)}",
),
20022200 => array(
0 => "<H2> Méthode de la valeur de productivité",
51 => "La méthode de la valeur de la productivité est l'expression de la rentabilité de l'entreprise au travers la capitalisation du benéfice corrigé des dotations.",
52 => "<B>Elle débouche sur une valorisation entre {VAL974_EU} et {VAL975_EU}.</B>",
),
20022210 => array(
1 => "<BR>Ci-dessous l'évolution du Résultat Courant Avant Impôts.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"RCAI\",R[008]#H)}",
),
20022500 => array(
0 => "<H2> Méthode de la valeur du rendement",
11 => "Cette méthode se fonde sur le bénéfice distribué, elle ne se conçoit qu'à l'égard d'entreprises sociétaires qui pratiquent une politique régulière de distribution.",
51 => "<B>Le résultat de la méthode de la valeur du rendement se situe entre {VAL982_EU} et {VAL983_EU}.</B>",
),
20022510 => array(
1 => "<BR>Ci-dessous l'évolution des dividendes distribués.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Dividendes distribués\",R[529]#H)}",
),
20023100 => array(
0 => "<H2> Multiple du Bénéfice",
10 => "On peux considérer qu'une entreprise vaut par sa rentabilité, sur la base d'un multiple de ses résultats. Le bénéfice à retenir est établi à partir du résultat net courant (résultat courant avant impôt, minoré de l'impôt sur les sociétés), afin d'éliminer les éléments exceptionnels affectant le résultat net comptable.",
51 => "<B>Par la méthode du multiple du Bénéfice l'entreprise est valorisée entre {VAL984_EU} et {VAL985_EU}.</B>",
),
20023510 => array(
1 => "<BR>Ci-dessous l'évolution du bénéfice réel (RCAI-impôts).",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Bénéfice réel\",R[318]#H)}",
),
20025200 => array(
0 => "<H2> Multiple de l'EBE",
10 => "Cette méthode repose sur une évaluation globale de l'entreprise prenant en compte l'endettement financier de la société.",
20 => "<B>La valorisation par l'EBE conduit à une fourchette de valeurs entre {VAL986_EU} et {VAL987_EU}.</B>",
),
20025210 => array(
1 => "<BR>Ci-dessous l'évolution de l'Excédent Brut d'Exploitation.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"EBE\",R[301]#H)}",
),
20026100 => array(
0 => "<H2> Multiple de la MBA",
10 => "Cette méthode est plus particulièrement adaptée aux sociétés qui nécessitent des investissements et constatent des amortissements importants.",
20 => "<B>Selon cette méthode la valeur de l'entreprise se situe entre {VAL988_EU} et {VAL989_EU}.</B>",
),
20026101 => array(
0 => "<H2> Multiple de la MBA",
10 => "Cette méthode est plus particulièrement adaptée aux sociétés qui nécessitent des investissements et constatent des amortissements importants.",
20 => "<B>Selon cette méthode la valeur de l'entreprise se situe entre {VAL988_EU} et {VAL989_EU}.</B>",
),
20026109 => array(
11 => "<I>La fourchette de l'estimation est élargie du fait de la présence de terrains dans les actifs. ",
),
20026110 => array(
1 => "<BR>Ci-dessous l'évolution de la Marge Brute d'Autofinancement.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"MBA\",R[333]#H)}",
),
20027100 => array(
0 => "<H2> Méthode par comparaison",
10 => "La méthode par comparaison repose sur le postulat que des sociétés comparables se valorisent sur des critères et des règles identiques. Cette approche consiste donc à établir des comparaisons avec des transactions intervenues sur le marché des fusions-acquisitions et de l'historique des ventes et cessions, d'entreprises du même profil dans la même région.",
20 => "<B>D'après l'étude des transactions récentes d'entreprises similaires, la valeur se situerait dans la fourchette de {VAL996_EU} et {VAL997_EU}.</B>",
),
20028100 => array(
0 => "<H2> Méthode d'évaluation par la Situation Nette Comptable (SNC)",
1 => "Un des axes de l'évalutation peut s'appuyer sur la situation nette comptable (SNC) de la société, l'actif net, c'est-à-dire amorti et réactualisé, corrigé des dettes.",
20 => "<B>Valorisation par la Situation Nette Comptable entre {VAL976_EU} et {VAL977_EU}.</B>",
),
20028110 => array(
1 => "<BR>Ci-dessous l'évolution de la Situation Nette Comptable.",
9 => "COULEUR(VER3,ROU2,JAU)",
10 => "{GRAPH(\"Situation nette\",R[091]#H)}",
),
20050100 => array(
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 :",
),
20080201 => array(
0 => "<TABLE CLASS=\"TABLEAURESULTAT\">",
2 => "<TR CLASS=\"TITRES\"> <TH> Pondération des méthodes </TH><TH>Valeur mini</TH><TH>Valeur maxi</TH></TR>",
),
20080210 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Valeur patrimoniale </TH><TD>{VAL978_EU}</TD><TD>{VAL979_EU}</TD></TR>",
),
20080215 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Selon le Chiffre d'affaires </TH><TD>{VAL970_EU}</TD><TD>{VAL971_EU}</TD></TR>",
),
20080217 => array(
11 => "<TR CLASS=\"LIGNE1\"><TH>Selon la siuation nette comptable </TH><TD>{VAL976_EU}</TD><TD>{VAL977_EU}</TD></TR>",
),
20080220 => array(
21 => "<TR CLASS=\"LIGNE2\"><TH>Valeur de productivité </TH><TD>{VAL982_EU}</TD><TD>{VAL983_EU}</TD></TR>",
),
20080230 => array(
31 => "<TR CLASS=\"LIGNE1\"><TH>Capitalisation du bénéfice </TH><TD>{VAL984_EU}</TD><TD>{VAL985_EU}</TD></TR>",
),
20080240 => array(
41 => "<TR CLASS=\"LIGNE2\"><TH>Capitalisation selon l'EBE </TH><TD>{VAL986_EU}</TD><TD>{VAL987_EU}</TD></TR>",
),
20080250 => array(
51 => "<TR CLASS=\"LIGNE1\"><TH>Capitalisation selon la MBA </TH><TD>{VAL988_EU}</TD><TD>{VAL989_EU}</TD></TR>",
),
20080260 => array(
61 => "<TR CLASS=\"LIGNE2\"><TH>Capitalisation selon la CAF+Trésorerie </TH><TD>{VAL990_EU}</TD><TD>{VAL991_EU}</TD></TR>",
),
20080270 => array(
71 => "<TR CLASS=\"LIGNE1\"><TH>Capitaux risqueurs </TH><TD>{VAL992_EU}</TD><TD>{VAL993_EU}</TD></TR>",
),
20080280 => array(
81 => "<TR CLASS=\"LIGNE2\"><TH>Patrimoniale + GOODWILL </TH><TD>{VAL994_EU}</TD><TD>{VAL995_EU}</TD></TR>",
),
20080290 => array(
81 => "<TR CLASS=\"TOTAL\"><TH>Comparative cessions profils similaires </TH><TD>{VAL996_EU}</TD><TD>{VAL997_EU}</TD></TR>",
),
20090310 => array(
0 => "<TABLE CLASS=\"TABLEAUHAUTBAS\">",
2 => "<TR CLASS=\"TITRES\"> <TH> </TH><TH> estimation haute</TH></TR>",
11 => "<TR CLASS=\"BLANC\"><TD> </TD><TD CLASS=\"TOTAL\">{VAL999_EU}</TD></TR>",
12 => "<TR CLASS=\"TITRES\"> <TH> estimation basse </TH><TH> </TH></TR>",
21 => "<TR CLASS=\"BLANC\"><TD CLASS=\"TOTAL\">{VAL998_EU} </TD><TD> </TD></TR>",
),
20090510 => array(
20 => "<LI> Les immobilisations corporelles ({R[052]}) doivent être réévaluées à leur valeur de marché.",
),
20090610 => array(
20 => "<LI> L'estimation finale devrait intégrer l'ensemble des dettes à court terme, d'un montant de {R[088]}, exigibles au moment de la cession.",
),
20090611 => array(
20 => "<LI> L'estimation finale devrait intégrer l'ensemble des dettes à court terme de {R[088]} et la part des dettes à moyen et long terme de {R[089]}, exigibles au moment de la cession.",
),
20090612 => array(
20 => "<LI> L'estimation finale devrait intégrer la part des dettes à moyen et long terme de {R[089]}, exigibles au moment de la cession.",
),
20090710 => array(
20 => "<LI> Il conviendra de vérifier l'exactitude des dettes financières: {R[083]}, portées au bilan.",
),
20090711 => array(
20 => "<LI> On devra aussi vérifier l'exactitude des dettes fournisseurs de {R[084]}, portées au bilan.",
),
20090712 => array(
20 => "<LI> Il conviendra de vérifier l'exactitude des dettes financières de {R[083]} et fournisseurs de {R[084]}, portées au bilan.",
),
20090810 => array(
20 => "<BR>A noter qu'aucune provision ne figure au bilan.",
30 => "<C.> Or, au vu de l'effectif de l'entreprise, on pourrait devoir provisionner les congés à payer de l'exercice, d'éventuelles indemnités de fin de carrière ou de départ.",
),
20090830 => array(
20 => "<BR> A noter que les provisions semblent anormalement limitées.",
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.",
),
20090840 => array(
20 => "<BR> A noter que les provisions semblent anormalement élevées.",
),
20090910 => array(
20 => "Le foncier représente une part importante des actifs, une divergeance de sa valeur par rapport au marché aura un fort impact sur l'évaluation. ",
),
100000100 => array(
0 => "<H1>PRESENTATION",
),
100001000 => array(
0 => "<H1>DIAGNOSTIC",
),
100002000 => array(
0 => "<H1>SITUATION FINANCIERE",
),
100003000 => array(
0 => "<H2>BILANS",
),
100004000 => array(
0 => "<H2>COMPTE DE RESULTAT",
),
100005000 => array(
0 => "<H1>RETRAITEMENT",
),
100010000 => array(
0 => "<H1>METHODES DE CALCUL",
),
100015000 => array(
0 => "<H2>Les méthodes retenues",
),
100016000 => array(
0 => "<H2>Pondération des méthodes",
),
100019000 => array(
0 => "<H1>CONCLUSION",
),
100019100 => array(
0 => "<H2>Observations",
),
);

View File

@ -1,95 +0,0 @@
<?php
/** Auto generated - 2015-09-20 18:32:29*/
return array(
100 => array(
1 => "TABLE(LINE(Version 2.09))",
),
5000 => array(
1 => "TABLE(LINE(Valorisation de {NOMEN} en date du : {JOUR_DATE}))",
),
7000 => array(
10 => "TABLE(LINE(ENTREPRISE INACTIVE))",
),
20001000 => array(
10 => "TABLE(LINE(Cette étude a pour but de rechercher la valeur globale de l'entreprise en tenant compte des ses éléments financiers étudiés selon différentes méthodes et le cas échéant par comparaison avec les cessions d'entreprises similaires))",
),
20050100 => array(
10 => "TABLE(LINE(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 :))",
),
20080201 => array(
2 => "TABLE(LINE(Pondération des méthodes#Valeur mini#Valeur maxi)",
99 => ")",
),
20080210 => array(
11 => "LINE(Valeur patrimoniale#{VAL978_EU}#{VAL979_EU})",
),
20080215 => array(
11 => "LINE(Méthode par le Chiffre d'affaires#{VAL970_EU}#{VAL971_EU})",
),
20080217 => array(
11 => "LINE(Méthode par la Situation nette comptable#{VAL976_EU}#{VAL977_EU})",
),
20080220 => array(
21 => "LINE(Méthode par la Valeur de productivité#{VAL982_EU}#{VAL983_EU})",
),
20080230 => array(
31 => "LINE(Méthode par le Capitalisation du bénéfice#{VAL984_EU}#{VAL985_EU})",
),
20080240 => array(
41 => "LINE(Capitalisation selon l'EBE#{VAL986_EU}#{VAL987_EU})",
),
20080250 => array(
51 => "LINE(Capitalisation selon la MBA#{VAL988_EU}#{VAL989_EU})",
),
20080260 => array(
61 => "LINE(Capitalisation selon la CAF+Trésorerie#{VAL990_EU}#{VAL991_EU})",
),
20080270 => array(
71 => "LINE(Méthosde de Capitaux risqueurs#{VAL992_EU}#{VAL993_EU})",
),
20080280 => array(
81 => "LINE(Méthode Patrimoniale + GOODWILL#{VAL994_EU}#{VAL995_EU})",
),
20080290 => array(
81 => "LINE(Comparative cessions profils similaires#{VAL996_EU}#{VAL997_EU})",
),
20090310 => array(
2 => "TABLE(LINE(CONCLUSION #estimation haute)",
11 => "LINE( #{VAL999_EU})",
12 => "LINE(estimation basse# )",
21 => "LINE({VAL998_EU}# ))",
),
20090510 => array(
20 => "TABLE(LINE(Réévaluer les immobilisations corporelles ({R[052]}) à leur valeur de marché et non leur valeur comptable.))",
),
20090610 => array(
20 => "TABLE(LINE(Intégrer l'ensemble des dettes à court terme, ({R[088]}), exigibles au moment de la cession.))",
),
20090611 => array(
20 => "TABLE(LINE(Intégrer l'ensemble des dettes à court terme ({R[088]}) et la part des dettes à moyen et long terme ({R[089]}), exigibles au moment de la cession.))",
),
20090612 => array(
20 => "TABLE(LINE(Intégrer la part des dettes à moyen et long terme ({R[089]}), exigibles au moment de la cession.))",
),
20090710 => array(
20 => "TABLE(LINE(Vérifier l'exactitude des dettes financières (R[083]}), portées au bilan.))",
),
20090711 => array(
20 => "TABLE(LINE(Vérifier l'exactitude des dettes fournisseurs ({R[084]}), portées au bilan.))",
),
20090712 => array(
20 => "TABLE(LINE(Vérifier l'exactitude des dettes financières ({R[083]}) et fournisseurs ({R[084]}), portées au bilan.))",
),
20090810 => array(
20 => "TABLE(LINE(Aucune provision ne figure au bilan.))",
),
20090830 => array(
20 => "TABLE(LINE(Les provisions semblent anormalement limitées.))",
),
20090840 => array(
20 => "TABLE(LINE(Les provisions semblent anormalement élevées.))",
),
20090910 => array(
20 => "TABLE(LINE(Le foncier représente une part importante des actifs, une divergeance de sa valeur par rapport au marché aura un fort impact sur l'évaluation.)",
),
);

File diff suppressed because it is too large Load Diff

View File

@ -1,28 +0,0 @@
<?php
return array(
1991 => 3.2,
1992 => 2.4,
1993 => 2.1,
1994 => 1.7,
1995 => 1.7,
1996 => 2,
1997 => 1.2,
1998 => 0.7,
1999 => 0.5,
2000 => 1.7,
2001 => 1.7,
2002 => 1.9,
2003 => 2.1,
2004 => 2.1,
2005 => 1.8,
2006 => 1.6,
2007 => 1.5,
2008 => 2.8,
2009 => 0.1,
2010 => 1.5,
2011 => 2.1,
2012 => 2,
2013 => 0.9,
2014 => 0.5,
2015 => 0.6,
);

View File

@ -1,22 +0,0 @@
<?php
return array(
1994 => 5.65,
1995 => 5.29,
1996 => 4.69,
1997 => 4.93,
1998 => 3.92,
1999 => 3.99,
2000 => 4.35,
2001 => 3.35,
2002 => 2.83,
2003 => 2.68,
2004 => 2.45,
2005 => 2.46,
2006 => 2.66,
2007 => 2.86,
2008 => 3.45,
2009 => 2.81,
2010 => 2.17,
2011 => 1.7,
2012 => 0,
);

View File

@ -1,12 +0,0 @@
<?php
return array(
196801 => 16.66,
196901 => 19.0,
197001 => 23.0,
197201 => 20.0,
197701 => 17.6,
198201 => 18.6,
199501 => 20.6,
200001 => 19.6,
201401 => 20.0,
);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,622 +0,0 @@
<?php
return array(
'ACTIFINSEE',
'ACTIFRNCS',
'ACTISURF',
'ACTIVNAT',
'ACTIVREG',
'ADRDOM',
'AGE',
'ANNEEp3',
'ANNEEp2',
'ANNEEp',
'ANNEE',
'ANNEE1',
'ANNEE2',
'ANNEE3',
'ANNEE4',
'ANNEE5',
'ANNONCEADR',
'ANNONCEADRDATE',
'ANNONCEBOD',
'ANNONCEBODA',
'ANNONCEBODADATE',
'ANNONCEBODB',
'ANNONCEBODBDATE',
'ANNONCEBODC',
'ANNONCEBODCDATE',
'ANNONCEBODCMANQDATE',
'ANNONCEBODCMANQ_AA',
'ANNONCEBODCREGUL',
'ANNONCEBODDATE',
'ANNONCECAC',
'ANNONCECAC2',
'ANNONCECAC3',
'ANNONCECACDATE',
'ANNONCECAP',
'ANNONCECAPAUG',
'ANNONCECAPAUGDATE',
'ANNONCECAPAUGDIM',
'ANNONCECAPAUG_AAD',
'ANNONCECAPAUG_AAF',
'ANNONCECAPDATE',
'ANNONCECAPDIM',
'ANNONCECAPDIMAUG',
'ANNONCECAPDIMDATE',
'ANNONCECAPDIM_AAD',
'ANNONCECAPDIM_AAF',
'ANNONCECAPSIG',
'ANNONCECLODELAI',
'ANNONCEDATE',
'ANNONCEDER',
'ANNONCEDERDATE',
'ANNONCEDERSOURCE',
'ANNONCEDERTEXTE',
'ANNONCEDIR',
'ANNONCEDIRDATE',
'ANNONCEDISSO',
'ANNONCEDISSODATE',
'ANNONCEDISSONON',
'ANNONCEDISSONONDATE',
'ANNONCEFJUR',
'ANNONCEFJURDATE',
'ANNONCEFUS',
'ANNONCEFUSDATE',
'ANNONCEHISTDATE',
'ANNONCEHOM',
'ANNONCEHOMDATE',
'ANNONCEINTERDIT',
'ANNONCEINTERDITDATE',
'ANNONCELIM',
'ANNONCELJ',
'ANNONCELJDATE',
'ANNONCELJDELAI',
'ANNONCELOC',
'ANNONCELOCDATE',
'ANNONCEOBJET',
'ANNONCEPC',
'ANNONCEPCDATE',
'ANNONCEPCHISTO',
'ANNONCEPC_CESDATE',
'ANNONCEPC_INT1',
'ANNONCEPC_INT1_TIT',
'ANNONCEPC_INT2',
'ANNONCEPC_INT2_TIT',
'ANNONCEPC_NUM',
'ANNONCEPC_OBS',
'ANNONCEPLAN',
'ANNONCEPLANDATE',
'ANNONCEPLANDUREE',
'ANNONCEPLANFINDATE',
'ANNONCEPLANMODIFDATE',
'ANNONCEPOURS',
'ANNONCEPOURSDATE',
'ANNONCEPUB',
'ANNONCERECON',
'ANNONCERECONDATE',
'ANNONCERJ',
'ANNONCERJDATE',
'ANNONCESOMM',
'ANNONCESOMMDATE',
'ANNONCESV',
'ANNONCESVDATE',
'ANNONCEVC',
'ANNONCEVCDATE',
'ANNONCEVC_MT',
'ANNONCEVC_OBJ',
'APE4',
'APE5',
'APEAGRICPAC',
'APEENT',
'APEETAB',
'APEINSEE',
'APERNCS',
'AUXILT',
'AVIS3ANS',
'BILAN',
'BILANANNEE',
'BILANANNEE1',
'BILANANNEE2',
'BILANANNEE3',
'BILANANNEE4',
'BILANANNEE5',
'BILANANNEEp',
'BILANANNEEp2',
'BILANANNEEp3',
'BILANANNEEp4',
'BILANDATE',
'BILANDATEp',
'BILANDATEp2',
'BILANDATEp3',
'BILANDATEp4',
'BILANDERANNEE',
'BILANFACULT',
'BILANFJU',
'BILANMANQUE',
'BILANNONDIF',
'BILANVIEUX',
'BILANp',
'BILANp2',
'BILANp3',
'BILANp4',
'CABILAN',
'CABIOUES',
'CAESTIME',
'CADBAT_NB_TOT',
'CADTER_NB_TOT',
'CADBAT_NB_PROP',
'CADTER_NB_PROP',
'CADBAT_NB_NONPROP',
'CADTER_NB_NONPROP',
'CADBAT_SURF_CUM',
'CADBAT_SURF_TOT',
'CADTER_SURF_CUM',
'CADTER_SURF_TOT',
'CALCUL1',
'CALCUL2',
'CALCUL3',
'CALCUL4',
'CALCUL5',
'CALCUL6',
'CALCUL7',
'CALCUL8',
'CALCUL9',
'CAPITAL',
'CAPITAL_CREA',
'CAPITAL_PRE',
'CAPITAL_NBACTION',
'CAPITAL_MTACTION',
'CAPITAL_TYPE',
'CA_COEF',
'CA_TAUX',
'CA_Y',
'COTELIM',
'COTEOK',
'COTEOK_MMAA',
'COTETYPEHIS',
'COTETYPE_MMAA',
'CSFACTO',
'CSFACTO_MMAA',
'DEPARTEMENT',
'DEPARTEMENT_DE',
'DCREN',
'DCREN_AA',
'DEFAUT_MMAA',
'DELAIPAY',
'DELAIPAY_MMAA',
'DELAIPAYp',
'DEPSIE',
'DEPSIE_DE',
'DIMMAT',
'DIMMAT_AA',
'DIR1_AGE',
'DIR1_FONC',
'DIR1_NOM',
'DIR1_TYPE',
'DIR2_AGE',
'DIR2_FONC',
'DIR2_NOM',
'DIR2_TYPE',
'DIR_NB',
'DOM_NB',
'DOM_NOM',
'DOM_SIREN',
'EFFBILAN',
'EFFECTIF',
'EFFECTIF_POPU',
'ELIMINE',
'ENCOURSDEM',
'ENCOURS', // Encours final attribué
'ENCOURSCALC', // Encours calculé sans cut-off
'ENQUETE',
'ENQUETELIM',
'ENQUETEMAXI',
'ENTREP_ALT',
'ETATINSEE',
'ETATINSEE_MMAA',
'EXPLEN',
'EXPLET',
'EXPORTRANG',
'EXPORTRANG_ARR',
'FJUR',
'FJUR1',
'FJUR2',
'FJUR4',
'FJURINSEE',
'FJURPUB',
'FJURRNCS',
'FJUR_PRE',
'FRANCHISE',
'FUSIONPROJET',
'FUSIONPROJET_DATE',
'FUSIONPROJET_SIREN',
'GERANTMAJ',
'GRANDGROUPE',
'HOLDING',
'IMPAYELOURD_MMAA',
'IMPAYE_MMAA',
'IMPORTRANG',
'IMPORTRANG_ARR',
'INFLA',
'INFLAMOY1',
'INFLAMOY2',
'INFLAMOY3',
'INFLATION',
'INFOCESSATION_MMAA',
'INFOFACTO',
'JOUR_DATE',
'JOUR_HEURE',
'LCASSUR_MMAA',
'LIBARTDEPSIE',
'LIEUACT',
'LISTEPRODUIT',
'MARCHE',
'MARCHEPART',
'MARCHEPARTEVOL',
'MARCHEPARTp',
'MARCHEPLACE',
'MARCHEPLACE_DEP',
'MARCHEVOL',
'MARCHEVOLUMEVOL',
'MARCHEp',
'MARCHESAL',
'MARCHESALp',
'MARCHENBENT',
'MARCHENBENTp',
'MARCHENBENT_DEP',
'MARCHENBENT_VILLE',
'MARCHEPUBLIC3_NB',
'MARCHEPUBLIC3_MT',
'MARCHEPUBLIC3_POURC',
'MARCHEPUBLICAPP3_NB', // Nombre d'avis de marchés attribués par une administration sur les 3 dernières années
'MARCHEPUBLIC3APP_MT', // Montant des avis de marchés attribués par une administration sur les 3 dernières années
'MARCHEPUBLIC3APP_POURC', // % Par rapport au total des produits de fonctionnement
'MARCHEPUBLICDER_OBJ',
'MARCHEPUBLICDER_CLI',
'MARCHEPUBLICDER_MT',
'MARCHEPUBLICDER_DATE',
'MARCHEPUBLICDERAPP_OBJ', // @todo
'MARCHEPUBLICDERAPP_BEN', // Bénéficiaire
'MARCHEPUBLICDERAPP_MT', // ..
'MARCHEPUBLICDERAPP_DATE', // ..
'MARQUENB',
'MARQUENB_INT',
'MARQUENB_EUR',
'MARQUENB_FR',
'MARQUELISTE_INT',
'MARQUELISTE_EUR',
'MARQUELISTE_FR',
'MODEN',
'MODIFBILDATE',
'MODIFDERDATE',
'MODIFINSEE',
'MODIFINSEEDATE',
'MODIFPAIDATE',
'MODIFRNCS',
'MODIFRNCSDATE',
'MONOACT',
'MONOREG',
'NBBILAN',
'NBBILANMANQUE',
'NBBILANSEC',
'NBDIRLIEN',
'NBDIRSCI',
'NBDIRSCIADR',
'NBETEXPL',
'NBFILLE',
'NBINTERRO1',
'NBINTERRO12',
'NBINTERRO3',
'NBINTERRO6',
'NBNIC',
'NBSOCSEC',
'NBSOCSECPUB',
'NBSUIVICLI',
'NIC',
'NICFILLE',
'NICMERE',
'NIVEAU',
'NOMEN',
'NOMFILLE',
'NOMFUSION',
'NOMMERE',
'NOTE100',
'NOTECAP20',
'NOTECFI20',
'NOTEDEFPRO',
'NOTEDEFSEC',
'NOTELED20',
'NOTEMEX20',
'NOTERBT20',
'NOTESBRUTE',
'NOTESCORE',
'NOTETRES20',
'ORIASCAT',
'ORIASID',
'ORIASID_DATE',
'ORIGINE',
'PLAN',
'PLANMODIF',
'POPULATION',
'PPNONDIFF',
'PRESENTINSEE',
'PRESENTRNCS',
'PRIVILEGES',
'PRIVILEGESECU',
'PRIVILEGESECU_MT',
'PRIVILEGESURSSAF_MMAA',
'PRIVILEGES_MMAA',
'PRIVILEGETRES',
'PRIVILEGETRES_MT',
'PRODPART',
'R',
'RCAI_COEF',
'RCAI_TAUX',
'RCAI_Y',
'RECME',
'REGIMP',
'RISQUEACT',
'RISQUEACTBASSIN',
'RISQUEACT_NB',
'RISQUEANALYSE_MMAA',
'RISQUEGEO',
'RISQUEGEOARRETE',
'RISQUEGEOARRETE_AA',
'RISQUEGEOARRETE_DATE',
'RISQUEGEOARRETE_EVTDATE',
'RISQUEGEOARRETE_JODATE',
'RISQUEGEOARRETE_NB',
'RISQUEGEOARRETE_VILLE',
'RISQUEGEO_NB',
'RISQUEGROUPE_MMAA',
'RISQUEIMPAYE_MMAA',
'RJFILLE',
'RJMERE',
'ROUEDELARELANCE',
'RPEN',
'RPS_ACCORDDATE',
'RPS_INFODATE',
'RPS_NEGO',
'RPS_PLAN',
'Ra',
'Rap',
'Rdiff',
'Revol',
'Revolp',
'Revolp2',
'Revolp3',
'Revols',
'Rp',
'Rp2',
'Rp3',
'Rp4',
'Rs',
'Rsp',
'Rsp1',
'Rsp2',
'Rsp3',
'SAISONAT',
'SCORECONF',
'SCOREDEFTAUX',
'SCOREDIRI',
'SIREN',
'SIRENFILLE',
'SIRENMERE',
'SIRET',
'SIRETFILLE',
'SIRETMERE',
'SITUACT',
'SOCIETE_COTE',
'SOCIETE_COTE_CAPITALISATION',
'SOCIETE_COTE_COURS',
'SOCIETE_COTE_COURS_DATE',
'SOCIETE_COTE_COURS_MAX',
'SOCIETE_COTE_COURS_MIN',
'SOCIETE_COTE_ISIN',
'SOCIETE_COTE_MARCHE',
'SOCIETE_COTE_MARCHE_MERE',
'SOCIETE_COTE_PLACE',
'T',
'TAUXRA',
'TAUXRAMOY1',
'TAUXRAMOY2',
'TAUXRAMOY3',
'TCAEXP',
'TEMOINACT',
'TEMOINACT_MAX',
'TEMOINATT',
'TEMOINATT_MAX',
'TEMOINAVI',
'TEMOINAVI_MAX',
'TEMOINCAPFAIBLE',
'TEMOINCAPFAIBLE_MAX',
'TEMOINCLES',
'TEMOINCLES_MAX',
'TEMOINCONF',
'TEMOINCONF_MAX',
'TEMOINCYANO',
'TEMOINCYANO_MAX',
'TEMOINCYC',
'TEMOINCYC_MAX',
'TEMOINDEF',
'TEMOINDEF_MAX',
'TEMOINDIAG',
'TEMOINDIAG_MAX',
'TEMOINDIR',
'TEMOINDIR_MAX',
'TEMOINEXP',
'TEMOINEXP_MAX',
'TEMOINFAV',
'TEMOINFAV_MAX',
'TEMOINFIL',
'TEMOINFIL_MAX',
'TEMOINFIN',
'TEMOINFIN_MAX',
'TEMOINFLANO',
'TEMOINFLANO_MAX',
'TEMOINFLUX',
'TEMOINFLUX_MAX',
'TEMOINGRAPH',
'TEMOINGRAPH_MAX',
'TEMOINHIST',
'TEMOINHIST_MAX',
'TEMOINLOC',
'TEMOINLOC_MAX',
'TEMOINMAR',
'TEMOINMAR_MAX',
'TEMOINMARPUB',
'TEMOINMARPUB_MAX',
'TEMOINMOIN',
'TEMOINMOIN_MAX',
'TEMOINNORM',
'TEMOINNORM_MAX',
'TEMOINOBS',
'TEMOINOBS_MAX',
'TEMOINPAY',
'TEMOINPAY_MAX',
'TEMOINPLUS',
'TEMOINPLUS_MAX',
'TEMOINPROF',
'TEMOINPROF_MAX',
'TEMOINPROJ',
'TEMOINPROJ_MAX',
'TEMOINREPA',
'TEMOINREPA_MAX',
'TEMOINRES',
'TEMOINRES_MAX',
'TEMOINRIS',
'TEMOINRIS_MAX',
'TEMOINSTACTIF',
'TEMOINSTACTIF_MAX',
'TEMOINSTANO',
'TEMOINSTANO_MAX',
'TEMOINSTPASS',
'TEMOINSTPASS_MAX',
'TEMOINSTRUCT',
'TEMOINSTRUCT_MAX',
'TEMOINSTSYNT',
'TEMOINSTSYNT_MAX',
'TEMOINVUL',
'TEMOINVUL_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',
'TEMOINMRQ_MAX',
'TEMOINMRQLIST',
'TEMOINMRQLIST_MAX',
'TRIBUNAL_ACTUEL',
'TRIBUNAL_CREATION',
'TRIBUNAL_PROCOL',
'TU',
'TVAINTRA',
'TVAINTRAFACULT',
'TYPEMERE',
'VALCOEFMINCA', //Table baremCA
'VALCOEFMAXCA', // Table baremCA
'VAL319_EU',
'VAL320_EU',
'VAL322_EU',
'VAL598_EU',
'VAL970_EU',
'VAL971_EU',
'VAL974_EU',
'VAL975_EU',
'VAL976_EU',
'VAL977_EU',
'VAL978_EU',
'VAL979_EU',
'VAL980_EU',
'VAL981_EU',
'VAL982_EU',
'VAL983_EU',
'VAL984_EU',
'VAL985_EU',
'VAL986_EU',
'VAL987_EU',
'VAL988_EU',
'VAL989_EU',
'VAL990_EU',
'VAL991_EU',
'VAL992_EU',
'VAL993_EU',
'VAL994_EU',
'VAL995_EU',
'VAL996_EU',
'VAL997_EU',
'VAL998_EU',
'VAL999_EU',
'VILLE',
'VENTEMAX_VILLE_EU',
'VENTEMAX_VILLE_MT',
'VENTEMOY_VILLE_EU',
'VENTEMOY_VILLE_MT',
'VENTEMIN_VILLE_EU',
'VENTEMIN_VILLE_MT',
'VENTE_VILLE_NB',
'VENTEMAX_DEP_EU',
'VENTEMAX_DEP_MT',
'VENTEMOY_DEP_EU',
'VENTEMOY_DEP_MT',
'VENTEMIN_DEP_EU',
'VENTEMIN_DEP_MT',
'VENTE_DEP_NB',
'VENTEMAX_FRA_EU',
'VENTEMAX_FRA_MT',
'VENTEMOY_FRA_EU',
'VENTEMOY_FRA_MT',
'VENTEMIN_FRA_EU',
'VENTEMIN_FRA_MT',
'VENTE_FRA_NB',
'VENTEMAX_MT', // A supprimer après la 4.02
'VENTEMIN_MT', // A supprimer après la 4.02
'VENTE_NB', // A supprimer après la 4.02
'WALDEC',
'Y',
'ZEMET',
'ZONEPRI',
'ZONEPRIAFR',
'ZONEPRICUCS',
'ZONEPRIZFU',
'ZONEPRIZRR',
'ZONEPRIZRU',
'ZONEPRIZUS',
'nm',
'nmp',
'nmp2',
'nmp3',
'nmp4',
'regR',
'regRs',
);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,117 +0,0 @@
<?php
class Metier_Scores_Projection
{
/**
* Tableau des années de millesime de bilans
*/
public $tabRegX;
/**
* Tableau des années en paramètres
*/
protected $Y;
/**
* + $nbAnnees Projetées
*/
protected $Yaff;
/**
* Taux de projection de n à n+$nbAnnees
*/
protected $PROJECTAUX;
/**
* Coef de corélation linéaire
*/
protected $PROJECCOEF;
public function getY()
{
return $this->Y;
}
public function getYaff()
{
return $this->Yaff;
}
public function getProjecTaux()
{
return $this->PROJECTAUX;
}
public function getProjecCoeff()
{
return $this->PROJECCOEF;
}
/**
* Remplace la function PROJECCOEF
* @param array $tabRegY
* @param array $nbAnnees
* @return boolean|number
*/
public function calcCOEF($tabRegY, $nbAnnees)
{
if (count($this->tabRegX) == 0 || count($tabRegY) == 0) {
return false;
}
$oReg = new Metier_Scores_Regression($tabRegY, $this->tabRegX);
return $oReg->vCoefCorLin;
}
/**
* Remplace la function PROJEC
* @param array $tabRegY
* @param array $nbAnnees
* @return boolean|mixed
*/
public function calc($tabRegY, $nbAnnees)
{
if (count($this->tabRegX) == 0 || count($tabRegY) == 0) {
return false;
}
$oReg = new Metier_Scores_Regression($tabRegY, $this->tabRegX);
$tab = $oReg->GetProjectionDebut($nbAnnees);
$this->Y = $this->Yaff = array();
$nbRegX = count($this->tabRegX);
// Début des clés pour le tableau Y des critères
$j = 0 - $nbRegX;
foreach ($tab as $i=>$valeur) {
$j++;
if (isset($this->tabRegX[$i])) {
$this->Yaff[''.$this->tabRegX[$i].' '] = $this->Y[$j] = $tab[$i];
$lastX = $this->tabRegX[$i];
} else {
$lastX++;
$this->Yaff[''.$lastX.' '] = $this->Y[$j] = $tab[$i];
}
}
$this->PROJECTAUX = $oReg->TauxProgression($nbAnnees);
$this->PROJECCOEF = $oReg->vCoefCorLin*100;
return end($tab);
}
/**
* Remplace la function PROJECTAUX
* @param array $tabRegY
* @param array $nbAnnees
* @return boolean|number
*/
public function calcTAUX($tabRegY, $nbAnnees)
{
if (count($this->tabRegX) == 0 || count($tabRegY) == 0) {
return false;
}
$oReg = new Metier_Scores_Regression($tabRegY, $this->tabRegX);
return $oReg->TauxProgression($nbAnnees);
}
}

View File

@ -1,35 +0,0 @@
Problème à debugger
===================
Version 411 :
FRANCHISE AMO ET SOFT
Commentaires
Faire disparaitre <BLOC>
Code 34810 supprimé espace sur ' {NOMEN}'
Code 9995 ajouté fin de balise </I>
Code 396000, ligne 20 : apostrophe
Code 740160, ligne 10 : apostrophe sur "les frais d'établissement"
Code 770061, ligne 10 : apostrophe sur "la durée moyenne d'extinction"
Code 770221, ligne : apostrophe sur "l'article"
Code 770222, ligne : apostrophe sur "l'article"
Amélioration des scores
=======================
// Valorisation
$tabTxRendObli;
Pousser la date companyEvenDateStop
\$([A-Z]) => \$this-\>$1
20140101 => 20150901
Scoring
Comment / Tri V Version N Niveau
Comment / Txt V Version N Niveau
Data / Données tableaux
Base
Report V Version

View File

@ -1,224 +0,0 @@
<?php
class Metier_Scores_Regression
{
/*
But: Fournir un objet assez complet permettant d'opérer facilement une régression
linéaire, plus connu sur le nom de courbe de tendance sous Excel.
Usage: 0- Dans votre fichier PHP insérer include ("CrbTendance.php");
1- Déclarer l'objet RegLin
ex: $oReg= new RegLin($tDonnees) ou $oReg= new RegLin($tY, $tX)
Les deux syntaxe sont disponible, si une seul tableau est fourni
alors le second est initialisé du même nombre d'occurence commençant à 0
avec un pas de 1
2- Lancer le calcul, avec méthodes fournie de 0 à 4, par défaut 0 sera pris. Pour
tout élément supérieur à 4, la cinquième sera prise.
Cette méthode retourne un tableau à Trois positions,
-avec dans la case "A" le coef directeur de la droite,
-dans la case "B" le positionnement vertical
-dans la case "Cor" le coef de corrélation
-et dans la case "Meth" le numéro de la méthode utlisée
Ex: print_r($oReg0->OptMV(0));
==>Array ( [A] => -649.029426204
[B] => 3037796.68186
[Cor] => -0.143065138366
[Meth] => 0 )
3- De manière optionnel vous pouvez lancer la méthode GetOpt();,
qui vous fournira le point de votre droite en fonction de votre
tableau d'abscisses, si ce dernier n'est pas fourni
vous aurez un tableau de 0 à nb-1 d'occurence du premier tableau
Ex: print_r($oReg1->GetOpt());
==>Array ( [1] => 3037147.65243
[7] => 3033253.47587
[20] => 3024816.09333
[21] => 3024167.06391
[22] => 3023518.03448)
*/
//champ de l'objet
private $tDonnees;
private $tAbscisse;
private $vNbElt; //Nombre déléments des tableaux
private $vMoyX; //Moyenne des X
private $vMoyY; //Moyenne des Y
private $vSumXY;
private $vSumX;
private $vSumY;
private $vSumX2;
private $tPtG; //Le point moyen G est un tableau tPtG(X,Y)=(vMoyX,vMoyY)
//La variance, c'est la moyenne des carrés soustrait du carré de la moyenne
private $vVarianceX;
private $vVarianceY;
//L'écart Type, c'est la racine carrée de la variance
private $vEcartTX;
private $vEcartTY;
//La covariance, la moyenne des produits moins le produit des moyennes
private $vCovariance;
private $vA; //Coef directeur de la droite liée à la régression
private $vB; //Coef B de la droite liée à la régression
public $vCoefCorLin;//Coef de corrélation linéaire
public $tTest;
public function __construct($tDataY, $tDataX=null)
{
$this->tDonnees = $tDataY;
$this->tAbscisse = $tDataX;
$this->vNbElt = $n=count($this->tDonnees); // Nombres d'éléments
//Mise en place des abscisses
if (isset($tDataX)) {
for ($i=0;$i<$this->vNbElt;$i++) {
$this->tAbscisse[$i]=$i;
}
}
//parcours des donnees pour récupération formule nécessaire au calcul des éléments
$sumX=0; //somme des X
$sumY=0; //somme des Y
$sumX2=0; //somme des X²
$sumY2=0; //somme des y²
$sumXY=0; //somme des x*y
for ($i=0;$i<$n;$i++) {
$xVal=$this->tAbscisse[$i];
$yVal=$this->tDonnees[$i];
$sumX+=$xVal;
$sumY+=$yVal;
$sumX2+=$xVal*$xVal;
$sumY2+=$yVal*$yVal;
$sumXY+=$xVal*$yVal;
}
$this->vMoyX=$sumX/$n; //moyenne X
$this->vMoyY=$sumY/$n; //moyenne Y
$this->vSumXY=$sumXY;
$this->vSumX=$sumX;
$this->vSumY=$sumY;
$this->vSumX2=$sumX2;
$this->tPtG=array('X'=>$this->vMoyX,'Y'=>$this->vMoyY); //point moyen G
//La variance, c'est la moyenne des carrés soustrait du carré de la moyenne: Rappel
$this->vVarianceX=($sumX2/$n)-($this->vMoyX*$this->vMoyX);
$this->vVarianceY=($sumY2/$n)-($this->vMoyY*$this->vMoyY);
//L'écart Type, c'est la racine carrée de la variance: Rappel
$this->vEcartTX=sqrt(abs($this->vVarianceX));
$this->vEcartTY=sqrt(abs($this->vVarianceY));
//La covariance, la moyenne des produits moins le produit des moyennes
$this->vCovariance=($sumXY/$n)-($this->vMoyX*$this->vMoyY);
// coef de coorélation linéaire: Covariance que divise l'écart Type X multiplié par l'écart Type de Y
$this->vCoefCorLin=$this->vCovariance/($this->vEcartTX*$this->vEcartTY);
// Calcul de la droite
$this->CoefsDroite(0);
$this->tTest=array(
'vMoyX'=>$this->vMoyX,
'vMoyY'=>$this->vMoyY,
'vA'=>$this->vA, // Coef directeur de la droite liée à la régression
'vB'=>$this->vB, // Coef B de la droite liée à la régression
'tPtG'=>$this->tPtG,
'vVarianceX'=>$this->vVarianceX,
'vVarianceY'=>$this->vVarianceY,
'vEcartTX'=>$this->vEcartTX,
'vEcartTY'=>$this->vEcartTY,
'vCovariance'=>$this->vCovariance,
'vCoefCorLin'=>$this->vCoefCorLin,
);
}
/**
* Calcul de la droite
* (calcul de coef directeur de la régression par théorie de la régression linéaire
* le coef a est obtenu des manières suivantes avec 5 variantes disponibles)
*/
private function CoefsDroite($met=0)
{
switch ($met) {
case 0:
$this->vA=$this->vCovariance/$this->vVarianceX;
break;
case 1:
$this->vA=$this->vVarianceY/$this->vCovariance;
break;
case 2:
$this->vA=($this->vCovariance*$this->vEcartTY)/(abs($this->vCovariance)*$this->vEcartTX);
break;
/*
case 4:
$this->vA=($this->vSumXY-(($this->vSumX*$this->vSumY)/$this->vNbElt)/($this->vSumX2-(pow(2,$this->vSumX)/$this->vNbElt)));
break; */
case 3:
$this->vA=($this->vVarianceY-$this->vVarianceX+sqrt(pow($this->vVarianceY-$this->vVarianceX, 2)+pow(2*$this->vCovariance, 2)))/(2*$this->vCovariance);
break;
case 4:
$this->vA=($this->vSumXY-($this->vSumX*$this->vSumY/$this->vNbElt))/($this->vSumX2-(pow($this->vSumX, 2)/$this->vNbElt));
break;
}
$this->vB=$this->vMoyY-($this->vA*$this->vMoyX);
}
/**
* Calcul la régression Linéaire
*/
public function OptMV($meth=0)
{
$this->CoefsDroite($meth);
$this->CoefCorLin();
return array("A"=>$this->vA,"B"=>$this->vB,"Cor"=>$this->vCoefCorLin,"Meth"=>$meth,"TauxProg"=>(1-$this->vA)*100);
}
/**
* Renvoi le tableau des points optimisés
*/
public function GetOpt()
{
$tOpt=array();
foreach ($this->tAbscisse as $i) {
$tOpt[$i]=$this->vA*$i+$this->vB;
}
return $tOpt;
}
public function GetProjection($nbPeriodes)
{
$iMax=end($this->tAbscisse)+$nbPeriodes+1;
$tOpt=array();
for ($i=end($this->tAbscisse); $i<$iMax; $i++) {
$tOpt[$i]=$this->vA*$i+$this->vB;
}
return $tOpt;
}
public function GetProjectionDebut($nbPeriodes)
{
$iMax=end($this->tAbscisse)+$nbPeriodes+1;
$tOpt=array();
reset($this->tAbscisse);
for ($i=current($this->tAbscisse); $i<$iMax; $i++) {
$tOpt[$i]=$this->vA*$i+$this->vB;
}
return $tOpt;
}
public function TauxProgression($nbPeriodes)
{
$tOpt=$this->GetProjection($nbPeriodes);
reset($tOpt);
//print_r($tOpt);
$deb=abs(current($tOpt));
$fin=abs(end($tOpt));
return (($fin-$deb)*100)/$deb;
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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