suppression library Metier et Scores + utilisation du projet library
This commit is contained in:
parent
60f238563d
commit
6ccb83fa0a
@ -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
134
composer.lock
generated
@ -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
@ -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;
|
||||
}
|
||||
}
|
@ -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
@ -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)",
|
||||
);
|
@ -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;
|
||||
}
|
||||
}
|
@ -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'),
|
||||
),
|
||||
),
|
||||
);
|
@ -1,5 +0,0 @@
|
||||
<?php
|
||||
return array(
|
||||
2720, //Fusion/Absorption (entitée absorbée)
|
||||
2721, //Fusion/Absorption (entitée absorbée non identifiée)
|
||||
);
|
@ -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
|
||||
);
|
@ -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
|
||||
);
|
@ -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
|
||||
);
|
@ -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
|
||||
);
|
@ -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
|
@ -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
@ -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
@ -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
|
||||
|
@ -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);
|
||||
}
|
@ -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);
|
||||
}
|
@ -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);
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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 = '')
|
||||
{
|
||||
}
|
||||
}
|
@ -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
|
@ -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;
|
||||
}
|
||||
}
|
@ -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>
|
@ -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
@ -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é",
|
||||
);
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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&fonction=dossier&(.*))">/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('&', $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('&'=>'&'));
|
||||
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° d\'identification \(SIREN\)<\/span><\/td>(?:.*)<td align="left" nowrap>(.*) <\/td>((?:.*)n° 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 à vos critè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é': $actif = 1; break;
|
||||
case 'radié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é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é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"> nom 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 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ébut d\'activité<\/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"> activité\(s\) exercée\(s\) donnant lieu à 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 de 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é<\/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émentaire<\/b>(?:.*)<!--fin Etablissements secondaires-->/Uis', $this->body, $matches)) {
|
||||
$tabInsert['nbInscriptions']=0;
|
||||
} elseif (preg_match('/<!--deb Etablissements secondaires-->(?:.*)<b class="gris">Inscription complé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&fonction=dirigeant&dept_re(.*))" onclick="window\.open\(this\.href/Uis', $this->body, $matches)) {
|
||||
$urlDir='http://www.cma-paris.fr/CMP/'.strtr(trim($matches[1]), array('&'=>'&'));
|
||||
//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é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"> date de 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"> lieu de 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é<\/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é<\/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 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 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;
|
||||
}
|
||||
}
|
@ -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
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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'],
|
||||
);
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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(''', "'", 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(''', "'", 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(''', "'", 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(''', "'", 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;
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
@ -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'] == ' ') {
|
||||
$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;
|
||||
}
|
||||
}
|
@ -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é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\é\;sultat\(s\) de votre recherche \:(?:.*)<strong>(.*)<(?:.*)Interm\é\;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(' ', $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\é\; le \:)(.*)(?:<\/span>|<\/td>)/Uis', $this->body, $matches)) {
|
||||
$str = trim(strtr($matches[2], array(' '=>'', ' '=>'')));
|
||||
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(' '=>'', ' '=>'', 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édiaire n'est pas autorisé à 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\é\; d\'interm\é\;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\é\;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\é\;diaire exerce en libert\é\; d\'\é\;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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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
@ -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,
|
||||
);
|
@ -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,
|
||||
);
|
@ -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,
|
||||
);
|
@ -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,
|
||||
);
|
@ -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,
|
||||
);
|
@ -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 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(
|
||||
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 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> 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",
|
||||
),
|
||||
);
|
@ -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 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 => "<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",
|
||||
),
|
||||
);
|
@ -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",
|
||||
),
|
||||
);
|
@ -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",
|
||||
),
|
||||
);
|
@ -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
@ -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,
|
||||
);
|
@ -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,
|
||||
);
|
@ -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
@ -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
@ -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);
|
||||
}
|
||||
}
|
@ -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
|
||||
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user