Compare commits

...

290 Commits
1.0 ... 1.2

Author SHA1 Message Date
Michael RICOIS
af0ad49172 Correction date de jugement 2016-02-19 15:33:25 +00:00
Michael RICOIS
c9c372f805 Etablissement multiligne 2016-02-18 10:09:47 +00:00
Michael RICOIS
ac39391b52 Change key name 2016-02-18 09:47:22 +00:00
Michael RICOIS
1a3d6229e8 Etablissements, ajout database 2016-02-18 09:34:28 +00:00
Michael RICOIS
fc99cca660 Maj Librairies 2016-02-16 10:41:38 +00:00
Michael RICOIS
8159ac06e3 Etablissements multiligne 2016-02-15 13:08:21 +00:00
Michael RICOIS
296bd02d7b Maj Libraries 2016-02-15 11:08:00 +00:00
Michael RICOIS
d4fcd43d43 Revert 2016-02-09 11:02:22 +00:00
Michael RICOIS
3da57e9b07 Change composer 2016-02-09 10:53:50 +00:00
Michael RICOIS
27b659579c Maj Librairie 2016-02-09 10:51:46 +00:00
Michael RICOIS
d11aa7b6ba Lien : Ultimate head, ne pas s'arreter à la personne physique 2016-01-11 13:54:19 +00:00
Michael RICOIS
df6eb2af72 Ajout clé Tête de lien Ultime 2016-01-08 09:56:28 +00:00
Michael RICOIS
36f5465967 Maj library 2015-10-23 13:25:07 +00:00
Michael RICOIS
c195bcd5ce test 2015-09-23 07:09:37 +00:00
Michael RICOIS
18d78bbefa Remove 2015-09-22 18:18:09 +00:00
Michael RICOIS
5ebb507e13 Affichage 2015-09-22 15:45:11 +00:00
Michael RICOIS
1585f90861 Maj script test 2015-09-22 15:20:30 +00:00
Michael RICOIS
8ebe7c31fa Maj Calcul des scores 2015-09-22 14:31:56 +00:00
Michael RICOIS
4443bfd812 Correction include path 2015-09-22 12:31:48 +00:00
Michael RICOIS
3373eaf7f7 Nouvelle entete 2015-09-22 07:22:57 +00:00
Michael RICOIS
898098ef5d Test calculScore 2015-09-22 07:21:58 +00:00
Michael RICOIS
cd7c27e187 Update libraries 2015-09-22 07:19:18 +00:00
Michael RICOIS
6e708f1846 Ajoute library/ dans la config - include_path - de composer 2015-09-18 10:05:28 +00:00
Michael RICOIS
f1f707fb08 Lock composer 2015-09-16 07:22:32 +00:00
Michael RICOIS
4e6e9993bc Zf1 whit composer 2015-09-16 07:12:56 +00:00
Michael RICOIS
b16e669369 Composer 2015-09-16 06:06:02 +00:00
Michael RICOIS
bfc6dfb591 Merge change on user 2015-09-15 09:00:57 +00:00
Michael RICOIS
f113672901 New user 2015-09-15 08:58:51 +00:00
Michael RICOIS
b0ad8171fc Merge change on Geocode for test 2015-09-08 15:29:50 +00:00
Michael RICOIS
3b594e5fa1 Geocode : Meilleur selection 2015-09-08 15:27:53 +00:00
Michael RICOIS
68acb6be1c Merge 2015-09-01 09:54:06 +00:00
Michael RICOIS
a96ccfa6a3 Update Libs 2015-09-01 09:49:45 +00:00
Michael RICOIS
771a3fa41c Merge from 1.1 2015-07-22 12:13:03 +00:00
Michael RICOIS
e3d07e3d4f Dossier autoload 2015-07-22 12:09:15 +00:00
Michael RICOIS
a69bc80c1a Update librairie Metier 2015-07-22 12:00:11 +00:00
Michael RICOIS
986a952e0a Classmap 2015-07-22 11:59:45 +00:00
Michael RICOIS
3577d364c5 Mise à jour libraries 2015-07-10 08:53:18 +00:00
Michael RICOIS
33dc9f0d74 Libraries Update 2015-07-10 08:42:07 +00:00
Michael RICOIS
0a14148a10 Merge 2015-06-30 09:49:38 +00:00
Michael RICOIS
f447dcaadc Update libraries 2015-06-30 09:39:47 +00:00
Michael RICOIS
66496bb872 Master get update on libraries 2015-06-22 14:07:57 +00:00
Michael RICOIS
99adc83c4c Update Librairies Metier 2015-06-22 13:53:34 +00:00
Michael RICOIS
d783cab80f Merge from branch 1.1 2015-06-10 09:44:06 +00:00
Michael RICOIS
19e032a49f Library Update 2015-06-10 09:32:03 +00:00
Michael RICOIS
6010cc6e8d TEST 2015-04-29 10:17:27 +00:00
Michael RICOIS
c2c827ceb3 New WDB 2015-04-29 10:11:06 +00:00
Michael RICOIS
7cf5fcc969 New WDB 2015-04-29 09:55:07 +00:00
Michael RICOIS
0e29030930 Correction retour privilèges 2015-04-29 09:50:32 +00:00
Michael RICOIS
e00fbd8e12 Import lib Metier : correct typo 2015-01-26 14:37:03 +00:00
Michael RICOIS
3a09017688 Merge from branch 1.1 2015-01-21 08:44:31 +00:00
Michael RICOIS
a7b2f74323 Mise à jour des librairies Framework legacy 2015-01-21 08:11:14 +00:00
Michael RICOIS
cf3933a7ab Mise à jour des librairies Metiers 2015-01-21 08:09:33 +00:00
Michael RICOIS
0f0a248f4e Upgrade Zend to version 1.12.10 2015-01-21 07:59:39 +00:00
Michael RICOIS
db29799b8b Following the update code from server 2014-11-06 15:51:45 +00:00
Michael RICOIS
d481c4f5d4 Mise à jour classe Metier 2014-10-14 15:59:03 +00:00
Michael RICOIS
26d69d03dd Upgrade Zend Framework to version 1.12.8 2014-09-17 07:02:50 +00:00
Michael RICOIS
835aaa4c9d Upgrade Zend Framework to version 1.12.8 2014-09-17 06:57:06 +00:00
Michael RICOIS
3b50c5be52 Merge from 1.1 2014-06-09 10:06:10 +00:00
Michael RICOIS
ceafbb024a Validation NIC 2014-06-09 10:03:03 +00:00
Michael RICOIS
21458077bc Merge from branch 1.1 2014-06-02 08:54:23 +00:00
Michael RICOIS
857e670164 Insert db in several contructors 2014-06-02 08:49:19 +00:00
Michael RICOIS
45aaeeabd4 Merge 2014-05-29 16:05:02 +00:00
Michael RICOIS
e4274a0daa Add date to log 2014-05-29 16:03:32 +00:00
Michael RICOIS
e95951dcbd Merge from branch 1.1 2014-05-28 20:22:20 +00:00
Michael RICOIS
9db5dc2128 Remove old 2014-05-28 20:10:54 +00:00
Michael RICOIS
da70a68b6f Insert db in several contructors 2014-05-27 20:58:12 +00:00
Michael RICOIS
2708159037 Merge from branch 1.1 2014-05-27 13:20:53 +00:00
Michael RICOIS
14d4dd99a4 Insert db in classMMap contructor 2014-05-27 13:18:02 +00:00
Michael RICOIS
71dfe8fefb Merge from branch 1.1 2014-05-27 13:01:43 +00:00
Michael RICOIS
e225e6c336 Update 2014-05-27 12:56:14 +00:00
Michael RICOIS
228b93d8c9 Merge from branche 1.1 2014-05-12 13:17:53 +00:00
Michael RICOIS
300e4bd3c9 issue #0001956 : Code Rivoli / Fantoir au bon format 2014-05-12 12:47:06 +00:00
Michael RICOIS
727edd82dd Mise à jour des librairies Metier 2014-05-12 11:54:17 +00:00
Michael RICOIS
3505371a14 issue #0001952 : Affichage du code des éléments 2014-05-12 10:54:32 +00:00
Michael RICOIS
b336b3f6f5 Merge 2014-04-24 10:11:34 +00:00
Michael RICOIS
a14022b977 Remove key db 2014-04-24 09:58:02 +00:00
Michael RICOIS
ef774b522e Update class Metier 2014-04-22 13:57:12 +00:00
Michael RICOIS
47f0ce0ab7 Merge 2014-04-17 13:51:15 +00:00
Michael RICOIS
dc5cbc9ffe id de commande 2014-04-17 13:47:34 +00:00
Michael RICOIS
5adc68641c id de commande 2014-04-17 13:47:03 +00:00
Michael RICOIS
252835f303 Merge 2014-04-17 13:40:56 +00:00
Michael RICOIS
411b7a579c TelOrder 2014-04-17 13:39:00 +00:00
Michael RICOIS
03eb449bf5 Merge 2014-04-16 15:31:30 +00:00
Michael RICOIS
de9dcbca53 Groupe 2014-04-16 15:21:30 +00:00
Michael RICOIS
925ce79650 Merge 2014-04-15 08:45:13 +00:00
Michael RICOIS
18965841d6 Nic telephone TelOrder 2014-04-15 08:43:22 +00:00
Michael RICOIS
1b1dc7d739 Merge 2014-04-14 14:40:42 +00:00
Michael RICOIS
d32445ed71 Référencement clé LienHead 2014-04-14 14:39:49 +00:00
Michael RICOIS
b7abe3c733 Merge 2014-04-14 14:31:39 +00:00
Michael RICOIS
f94d25d7bb Optimisation 2014-04-14 14:30:45 +00:00
Michael RICOIS
bfe9503c53 Merge 2014-04-14 14:06:48 +00:00
Michael RICOIS
51f6d0a690 Specify Db 2014-04-14 14:05:48 +00:00
Michael RICOIS
e1f9d043a6 Update Tete de groupe 2014-04-14 14:01:14 +00:00
Michael RICOIS
17d13761b5 Error 2014-04-10 15:02:08 +00:00
Michael RICOIS
6c2ca119f6 Error 2014-04-10 15:00:54 +00:00
Michael RICOIS
fafda2972e Merge 2014-04-10 14:55:14 +00:00
Michael RICOIS
7268cf15b8 Telephone + optimisation bdd 2014-04-10 14:20:22 +00:00
Michael RICOIS
a88848c1d7 Merge 2014-04-09 08:35:13 +00:00
Michael RICOIS
49a2b41735 Set database 2014-04-09 08:34:27 +00:00
Michael RICOIS
64cb3013d1 Merge 2014-04-09 08:26:51 +00:00
Michael RICOIS
e5815d84f8 Use only one database 2014-04-09 08:13:19 +00:00
Michael RICOIS
21ef066c33 Merge 2014-04-09 06:38:48 +00:00
Michael RICOIS
ff8f1d865a Optimisation bdd 2014-04-08 15:48:55 +00:00
Michael RICOIS
3503fc2ecc Merge 2014-04-08 15:36:48 +00:00
Michael RICOIS
fe1cb4fe89 Test nouvelle classMInsee 2014-04-08 15:34:28 +00:00
Michael RICOIS
3e8367bad4 Merge 2014-04-07 15:13:09 +00:00
Michael RICOIS
27a30b33eb Open only one connection 2014-04-07 15:05:07 +00:00
Michael RICOIS
7112725097 Use persistenent connexion 2014-04-07 13:29:34 +00:00
Michael RICOIS
9ee15c0a2a Merge 2014-04-07 07:55:18 +00:00
Michael RICOIS
3ce297dc98 Add php script executable 2014-04-07 07:47:50 +00:00
Michael RICOIS
e9b25b9f76 Merge 2014-04-04 14:45:42 +00:00
Michael RICOIS
71f83561d3 Database 2014-04-04 14:40:55 +00:00
Michael RICOIS
19f37b66c3 Metier Library upgrade 2014-04-04 13:17:48 +00:00
Michael RICOIS
28ad3cdfb6 Metier Library upgrade 2014-04-04 13:15:08 +00:00
Michael RICOIS
31d8414162 Metier Library upgrade 2014-04-03 15:24:03 +00:00
Michael RICOIS
9d2b99d147 Metier Library upgrade 2014-04-03 14:37:03 +00:00
Michael RICOIS
3e2ae8ed7e Revert 2014-04-01 18:48:29 +00:00
Michael RICOIS
f4e03c5bc7 revert 2014-04-01 18:35:08 +00:00
Michael RICOIS
5b667ef58e Update Sd Librairies 2014-03-27 15:11:56 +00:00
Michael RICOIS
c2298b0679 Nic siege si nic absent 2014-03-27 14:28:12 +00:00
Michael RICOIS
23fd0606b9 Librairies Metier : upgrade 2014-03-13 14:33:41 +00:00
Michael RICOIS
4669f48118 Annonce TXT 2014-03-13 13:21:26 +00:00
Michael RICOIS
e06d7570a2 Remove unuse file 2014-03-13 13:09:53 +00:00
Michael RICOIS
daa02f6e89 Push on VmApps 2014-01-15 10:40:36 +00:00
Michael RICOIS
c44551d968 Ne pas écraser le nic fournit dans le fichier entrant, et ajout colonne "nic du siege" pour controle en automatique. 2014-01-15 10:34:19 +00:00
Michael RICOIS
122196f856 Merge from branch 1.1 : Metier libraries update 2013-12-17 10:25:49 +00:00
Michael RICOIS
60ac783758 Remove sendMail 2013-12-17 10:16:19 +00:00
Michael RICOIS
40e5f20397 Update Bootstrap to version 3.0.3 2013-12-17 09:56:59 +00:00
Michael RICOIS
ea76c2dfd9 Update Metier libraries 2013-12-17 09:54:44 +00:00
Michael RICOIS
1391d77641 Format plus détaillé actionnaire 2013-12-12 16:18:57 +00:00
Michael RICOIS
a5ac54bff0 Delete db key 2013-10-30 16:26:00 +00:00
Michael RICOIS
2053feb2b7 Erreur db 2013-10-29 16:40:12 +00:00
Michael RICOIS
f89ee50e9b Correct resources 2013-10-29 15:00:07 +00:00
Michael RICOIS
47f40ae063 Update configuration 2013-10-29 14:09:50 +00:00
Michael RICOIS
c8e1a1e2d9 Correction chemin script enrichissement 2013-10-29 14:03:51 +00:00
Michael RICOIS
26ef12a99d Correction chemin script enrichissement 2013-10-29 14:02:41 +00:00
Michael RICOIS
69e3119f2d Switch to branch 1.1 2013-10-29 13:55:49 +00:00
Michael RICOIS
7b0d69e7dc Delete files 2013-10-29 13:51:47 +00:00
Michael RICOIS
9751f545c5 Configuration 2013-10-29 13:47:37 +00:00
Michael RICOIS
0b38f0d7ce Javascript et gestion des profils 2013-10-29 10:25:57 +00:00
Michael RICOIS
ead8a5ca94 Update structure 2013-10-29 06:54:05 +00:00
Michael RICOIS
5537e0d270 New bootstrap library 2013-10-28 19:35:17 +00:00
Michael RICOIS
5cd4cad4bd New IP for Business Database 2013-10-28 14:27:50 +00:00
Michael RICOIS
40e002dc86 Suppression profil 2013-10-11 12:51:54 +00:00
Michael RICOIS
7c064101ab Suppression profil 2013-10-11 12:51:33 +00:00
Michael RICOIS
dabd2fe935 Suppression profil 2013-10-11 12:48:30 +00:00
Michael RICOIS
4f70869ecf Changement IP machine 2013-10-10 08:48:42 +00:00
Michael RICOIS
6e7393aa22 Ajout des NACEs 2013-09-11 13:40:45 +00:00
Michael RICOIS
62c0f08418 Update dico 2013-09-11 11:58:08 +00:00
Michael RICOIS
dde9a1ed9a Correction AdresseNormaliseInsee 2013-09-09 15:55:43 +00:00
Michael RICOIS
172ddaff7e Remove db 2013-09-09 15:03:03 +00:00
Michael RICOIS
8933adfd26 Mise à jour des classes Metier 2013-09-09 15:01:52 +00:00
Michael RICOIS
ab1319e527 Mise à jour des librairies Metier 2013-09-05 13:45:23 +00:00
Michael RICOIS
87728a54b5 Correction L5_DISTSP 2013-09-05 13:44:00 +00:00
Michael RICOIS
d4541249f2 Db pour enrichissement 2013-06-12 13:54:37 +00:00
Michael RICOIS
c1ec8f36a9 Suppression sendMail pour l'enrichissement 2013-06-12 13:42:47 +00:00
Michael RICOIS
2c52358c4a Nouvelle version des librairies métiers, issue #0001508 2013-06-07 14:26:35 +00:00
Michael RICOIS
0c08a1facc Remove mysql_insert.log 2013-06-04 08:58:12 +00:00
Michael RICOIS
de5fc859cf change path 2013-05-14 13:03:45 +00:00
Michael RICOIS
f8ff8285f5 Use the config path 2013-05-13 13:45:28 +00:00
Michael RICOIS
677390d46a Add directory separator 2013-05-13 13:38:23 +00:00
Michael RICOIS
5bb31b0723 Use the config path 2013-05-13 13:33:19 +00:00
Michael RICOIS
7196ac3ec1 database access with VmApps 2013-05-03 14:31:01 +00:00
Michael RICOIS
6e990cd6dc database access with VmApps 2013-05-03 14:27:37 +00:00
Michael RICOIS
ae6680881e php copy function 2013-05-03 13:44:15 +00:00
Michael RICOIS
42d02a2771 /home/vhosts 2013-05-03 13:33:08 +00:00
Michael RICOIS
a239830d6f /home/vhosts 2013-05-03 13:26:06 +00:00
Michael RICOIS
7d10c4fb07 new server - new config 2013-05-03 13:06:11 +00:00
Michael RICOIS
bc6933ec2b issue #0001616 : Création clé AdresseNormaliseeInsee pour l'enrichissement d'adresse normalisé uniquement Insee 2013-04-25 09:13:57 +00:00
Michael RICOIS
b865936904 Upgrade Class Metier 2013-04-25 08:26:51 +00:00
Michael RICOIS
ede1ffdaa5 Ajout données 2013-04-19 14:49:02 +00:00
Michael RICOIS
ee7501b5b5 Ajout insee 2013-03-29 15:57:53 +00:00
Michael RICOIS
3b5a52500e Suppression element en attente de profil 2013-03-15 10:12:55 +00:00
Michael RICOIS
ccedc6e981 Correction init ligne 2013-03-14 15:35:06 +00:00
Michael RICOIS
a029f4384f Init file information by default 2013-03-11 09:08:53 +00:00
Michael RICOIS
50b3a33518 Correction retour actionnaire/participation 2013-03-08 14:28:35 +00:00
Michael RICOIS
b33918bf93 Correction actionnaires 2013-02-20 14:56:03 +00:00
Michael RICOIS
d0e385ddf2 Correction actionnaires 2013-02-20 14:53:53 +00:00
Michael RICOIS
c8108cfe18 Correction multiligne 2013-02-20 10:17:50 +00:00
Michael RICOIS
0eb3862689 config 2013-02-20 09:41:16 +00:00
Michael RICOIS
cfa827aba1 config 2013-02-20 09:39:17 +00:00
Michael RICOIS
e473d586d3 Add participations 2013-02-20 09:35:36 +00:00
Michael RICOIS
e9386b670b Correction 2013-02-20 09:25:48 +00:00
Michael RICOIS
db52a51fd2 Résolution dépendance BDD 2013-02-19 15:05:16 +00:00
Michael RICOIS
1bf4300ad1 New database config for crontab 2013-02-19 13:55:53 +00:00
Michael RICOIS
4059e0dd19 actionnaires multiligne, ajout des models et controle.... 2013-02-19 13:53:38 +00:00
Michael RICOIS
eebdaa2303 actionnaires multiligne 2013-02-19 10:28:36 +00:00
Michael RICOIS
5a0f828033 Maj classMLiens 2013-02-18 20:29:19 +00:00
Michael RICOIS
dd681582f0 Protection item 2013-02-18 19:51:07 +00:00
Michael RICOIS
5ce405e224 issue #0001545 : Correction selection bdd 2013-02-15 10:17:53 +00:00
Michael RICOIS
c8b13a3d42 issue #0001545 : Correction retour tabData 2013-02-14 16:56:01 +00:00
Michael RICOIS
40d88bbd5e issue #0001545 : ADR_COM, SIEGE, GPS 2013-02-14 16:03:40 +00:00
Michael RICOIS
337d1e9a9a Ajout element d'aide 2013-02-05 14:09:10 +00:00
Michael RICOIS
f91591c0f3 Défintion element idSd 2013-02-05 13:25:09 +00:00
Michael RICOIS
2a61170f24 Remove sendmail 2013-01-29 18:09:36 +00:00
Michael RICOIS
5efbedfe4e Remove sendmail 2013-01-29 18:09:12 +00:00
Michael RICOIS
3604efd03f Debug 2013-01-29 17:00:20 +00:00
Michael RICOIS
c91db4ab11 Debug 2013-01-29 16:58:51 +00:00
Michael RICOIS
deb045b9b7 Debug 2013-01-29 16:56:12 +00:00
Michael RICOIS
1c1ee832bc Debug 2013-01-29 16:54:15 +00:00
Michael RICOIS
cbc199daa5 Debug 2013-01-29 16:52:16 +00:00
Michael RICOIS
9720b470cc Debug 2013-01-29 16:51:42 +00:00
Michael RICOIS
a453b60ddf Debug 2013-01-29 16:51:04 +00:00
Michael RICOIS
3ae5309c72 Debug 2013-01-29 16:50:23 +00:00
Michael RICOIS
cf1c6383f4 Debug 2013-01-29 16:49:28 +00:00
Michael RICOIS
b9f75c61e1 Debug 2013-01-29 16:48:31 +00:00
Michael RICOIS
7edac18c75 Debug 2013-01-29 16:47:42 +00:00
Michael RICOIS
31327f2f0d Debug 2013-01-29 16:46:31 +00:00
Michael RICOIS
3638f96834 Debug 2013-01-29 16:40:03 +00:00
Michael RICOIS
7b271d0ac3 Debug 2013-01-29 16:37:38 +00:00
Michael RICOIS
61c3f4f358 Debug 2013-01-29 16:29:28 +00:00
Michael RICOIS
28b5aa402c Debug 2013-01-29 16:28:42 +00:00
Michael RICOIS
aa0449aec1 Debug 2013-01-29 16:24:35 +00:00
Michael RICOIS
8e6676d6f1 Debug 2013-01-29 16:22:48 +00:00
Michael RICOIS
32d98f192b Debug 2013-01-29 16:18:02 +00:00
Michael RICOIS
fd812275c0 Correction 2013-01-29 16:17:08 +00:00
Michael RICOIS
aca3830df0 Debug 2013-01-29 16:13:44 +00:00
Michael RICOIS
5119e5e67b Debug 2013-01-29 16:12:25 +00:00
Michael RICOIS
a12a7ab759 Debug 2013-01-29 16:08:53 +00:00
Michael RICOIS
32a15a581f Debug 2013-01-29 16:01:39 +00:00
Michael RICOIS
38270bf738 Debug 2013-01-29 15:57:53 +00:00
Michael RICOIS
5511a535f4 Debug 2013-01-29 15:54:53 +00:00
Michael RICOIS
e797f4e79a isset 2013-01-29 15:49:55 +00:00
Michael RICOIS
8683b0a200 Replace isset 2013-01-29 15:49:17 +00:00
Michael RICOIS
bf1a4c2d07 debug 2013-01-29 15:37:05 +00:00
Michael RICOIS
7123955dd7 debug 2013-01-29 15:36:02 +00:00
Michael RICOIS
59f167ea82 debug 2013-01-29 15:32:37 +00:00
Michael RICOIS
333a1e7d4c debug 2013-01-29 15:30:56 +00:00
Michael RICOIS
4a92b1b7e8 Mise à niveau classe Métier 2013-01-29 15:30:34 +00:00
Michael RICOIS
52abcbbbbb Libellé 2013-01-29 15:19:43 +00:00
Michael RICOIS
4656c46482 Libellé 2013-01-29 15:17:56 +00:00
Michael RICOIS
26050119b1 Libellé 2013-01-29 15:15:47 +00:00
Michael RICOIS
e52e3814d8 Libellé 2013-01-29 15:13:33 +00:00
Michael RICOIS
2e0d38bfb3 Libellé 2013-01-29 15:12:56 +00:00
Michael RICOIS
83378249bd Libellé 2013-01-29 15:10:48 +00:00
Michael RICOIS
6f18be3aa4 Libellé 2013-01-29 15:07:55 +00:00
Michael RICOIS
ea6862b8c1 Libellé 2013-01-29 15:05:14 +00:00
Michael RICOIS
a3bf3e2ef7 Libellé 2013-01-29 14:58:40 +00:00
Michael RICOIS
62292f17bc Libellé 2013-01-29 14:58:01 +00:00
Michael RICOIS
c019b9a8dd Libellé 2013-01-29 14:52:40 +00:00
Michael RICOIS
1f94f5de48 Debug enregistrement profil 2013-01-29 14:28:12 +00:00
Michael RICOIS
3d9fc23707 js 2013-01-29 14:17:39 +00:00
Michael RICOIS
a2ed7c038b js 2013-01-29 14:12:52 +00:00
Michael RICOIS
c4684b7c5e js 2013-01-29 14:11:20 +00:00
Michael RICOIS
d37b8b74f3 Debug enregistrement profil 2013-01-29 14:08:45 +00:00
Michael RICOIS
700499dd47 Debug enregistrement profil 2013-01-29 14:01:59 +00:00
Michael RICOIS
fd589a5708 Privileges sans valeur 2013-01-29 13:50:23 +00:00
Michael RICOIS
79775bc0dc Ajout des tables génériques 2013-01-29 13:36:15 +00:00
Michael RICOIS
16dc7de766 Correction chemin de config 2013-01-29 13:09:15 +00:00
Michael RICOIS
74774b2696 Intégration des tables statiques 2013-01-29 13:04:36 +00:00
Michael RICOIS
e14c56a220 Modification libellé + privilege 2013-01-29 11:09:51 +00:00
Michael RICOIS
d8cd599d24 delete config file configuration.ini 2013-01-28 17:31:29 +00:00
Michael RICOIS
4005d8fb67 Correction following jquery upgrade 2013-01-25 16:29:24 +00:00
Michael RICOIS
02ae8008b3 Upgrade Javascript library Jquery and Jquery-UI 2013-01-25 16:13:00 +00:00
Michael RICOIS
11b2313c8d issue #0001517 : Correction affichage 2013-01-25 16:03:09 +00:00
Michael RICOIS
1f27920764 issue #0001517 : Correction affichage 2013-01-25 15:28:57 +00:00
Michael RICOIS
c012b6f02f issue #0001517 : Affichage explication données, colonnes en sortie,.... 2013-01-25 15:23:46 +00:00
Michael RICOIS
f602c4ccff issue #0001350 : Prise en compte des doublons (validé) 2013-01-25 11:21:11 +00:00
Michael RICOIS
8b3a2e6311 issue #0001350 : Prise en compte des doublons (test) 2013-01-25 11:16:20 +00:00
Michael RICOIS
4a4798cf49 issue #0001350 : Typo 2013-01-25 08:02:52 +00:00
Michael RICOIS
d2b17e2ff7 issue #0001350 : Init doublon 2013-01-25 08:02:02 +00:00
Michael RICOIS
96ba8525d6 issue #0001350 : Typo 2013-01-25 08:00:50 +00:00
Michael RICOIS
609c98cc11 issue #0001350 : Typo 2013-01-25 07:59:37 +00:00
Michael RICOIS
748d9e17dc issue #0001350 : Init doublon 2013-01-25 07:58:46 +00:00
Michael RICOIS
01306f5a1c issue #0001350 : Style 2013-01-25 07:56:22 +00:00
Michael RICOIS
0f3992270e issue #0001350 : Dédoublonnage sans aucun test 2013-01-25 07:54:11 +00:00
Michael RICOIS
7d5546e0d9 Ajout d'une aide 2013-01-22 15:00:20 +00:00
Michael RICOIS
38d1536d01 Ajout d'une aide 2013-01-22 14:59:30 +00:00
Michael RICOIS
bf82895a6a Meilleur sélection du siege (siege=2) 2013-01-22 07:17:48 +00:00
Michael RICOIS
508f42d941 Data type equality 2013-01-22 07:15:39 +00:00
Michael RICOIS
8f6620af04 Data type equality 2013-01-22 07:11:58 +00:00
Michael RICOIS
e52006a29d Modification condition pour l'affichage des fichiers clients 2013-01-21 15:54:53 +00:00
Michael RICOIS
3d4644a732 issue #0001500 : Ajout de la date de calcul de l'indiScore 2013-01-18 14:20:46 +00:00
Michael RICOIS
e8d1f01811 Intégration des modifications du WebService v1.0 2012-12-28 17:00:29 +00:00
Michael RICOIS
543a04387d Update Zend Framework to version 1.12.1 2012-12-20 21:22:25 +00:00
Michael RICOIS
9381565f3e Suppression debuggage 2012-12-05 16:21:57 +00:00
Michael RICOIS
da908028cc Retour getAssoc 2012-12-05 16:18:48 +00:00
Michael RICOIS
8de12160a6 Maj Class Insee 2012-12-05 16:18:30 +00:00
Michael RICOIS
84dc130503 SiretSuc debug 2012-12-05 15:59:03 +00:00
Michael RICOIS
56a58cbe21 SiretSuc 2012-12-05 15:06:06 +00:00
Michael RICOIS
8fbd4f9d22 Protection chaine caractère 2012-12-05 13:59:34 +00:00
Michael RICOIS
f402466a20 Debug 2012-12-05 13:58:19 +00:00
Michael RICOIS
0b1bfe2ca7 Sélection du client 2012-12-04 16:40:37 +00:00
Michael RICOIS
b2721a01fd Correction affichage 2012-12-04 16:38:33 +00:00
Michael RICOIS
58727502d1 Correction dateStart 2012-12-04 16:37:28 +00:00
Michael RICOIS
f559f69d1c Nouvelle présentation des fichiers 2012-12-04 16:36:12 +00:00
Michael RICOIS
81be70c43f Position 2012-11-21 14:26:19 +00:00
Michael RICOIS
93e9bd7481 key 2012-11-21 14:25:46 +00:00
Michael RICOIS
e191a62e7c firebug 2012-11-21 14:21:54 +00:00
Michael RICOIS
353da52a47 Debug name 2012-11-21 14:20:07 +00:00
3230 changed files with 242844 additions and 814223 deletions

View File

@ -1,63 +1,100 @@
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
//Initialisation global des paramètres de vue
protected function _initConfig()
{
$config = new Zend_Config($this->getOptions());
Zend_Registry::set('config', $config);
return $config;
}
//Initialisation global des paramètres de vue
protected function _initViewSettings()
{
$this->bootstrap('view');
$view = $this->getResource('view');
$view->setEncoding('UTF-8');
$view->doctype('XHTML1_STRICT');
$view->doctype('HTML5');
$view->headMeta()
->appendHttpEquiv('viewport', 'width=device-width, initial-scale=1.0')
->appendHttpEquiv('Content-Type', 'text/html; charset=UTF-8')
->appendHttpEquiv('Content-Language', 'fr-FR');
$view->headTitle()->setSeparator(' - ');
->appendHttpEquiv('Content-Language', 'fr-FR');
$view->headLink()
->appendStylesheet('/styles/reset.css', 'all')
->appendStylesheet('/styles/main.css', 'all')
->appendStylesheet('/jqueryui/jquery-ui.css', 'all');
->appendStylesheet('/libs/bootstrap-v3.0.3/css/bootstrap.min.css', 'all');
$view->headScript()
->appendFile('/scripts/jquery.js', 'text/javascript')
->appendFile('/scripts/jquery-ui.js', 'text/javascript')
->appendFile('/scripts/enrichissement.js', 'text/javascript');
->appendFile('/libs/html5shiv.js', 'text/javascript', array('conditional' => 'lt IE 9'))
->appendFile('/libs/respond.min.js', 'text/javascript', array('conditional' => 'lt IE 9'));
$view->inlineScript()
->appendFile('/libs/jquery-2.0.3.min.js', 'text/javascript')
->appendFile('/libs/bootstrap-v3.0.3/js/bootstrap.min.js', 'text/javascript')
->appendFile('/libs/ui-1.10.3/jquery-ui.min.js', 'text/javascript')
->appendFile('/themes/default/js/enrichissement.js', 'text/javascript');
$view->headTitle()->setSeparator(' - ');
$view->headTitle('Enrichissement de fichier');
}
protected function _initLogging()
{
//Firebug
$writer = new Zend_Log_Writer_Firebug();
if(APPLICATION_ENV=='production') {
$writer->setEnabled(false);
}
$logger = new Zend_Log($writer);
Zend_Registry::set('firebug', $logger);
}
protected function _initDb()
{
$dbConfig = new Zend_Config_Ini(APPLICATION_PATH . '/configs/configuration.ini', 'databases');
$c = new Zend_Config($this->getOptions());
try {
$db = Zend_Db::factory($dbConfig->db);
Zend_Db_Table::setDefaultAdapter ($db);
$db = Zend_Db::factory($c->resources->db);
$db->getConnection();
} catch ( Exception $e ) {
exit ( $e->getMessage() );
if (APPLICATION_ENV == 'development') {
echo '<pre>'; print_r($e); echo '</pre>';
} else {
echo "Le service rencontre actuellement un problème technique.";
}
exit;
}
Zend_Registry::set('db', $db);
/**
* Set the default adapter to use with all model
*/
Zend_Db_Table::setDefaultAdapter($db);
/**
* Set Firebug Database profiler
*/
if (APPLICATION_ENV == 'development') {
$profiler = new Zend_Db_Profiler_Firebug('All DB Queries');
$profiler->setEnabled(true);
$db->setProfiler($profiler);
}
return $db;
}
//Initialisation global des paramètres de log
protected function _initLogging()
protected function _initCache()
{
if ( APPLICATION_ENV!='development' ) {
//MetadataCache pour la base de données
$frontendOptions = array(
'lifetime' => 14400,
'automatic_serialization' => true
);
$backendOptions = array();
$cache = Zend_Cache::factory('Core','Apc', $frontendOptions, $backendOptions);
Zend_Db_Table_Abstract::setDefaultMetadataCache($cache);
}
}
protected function _initCache()
{
//MetadataCache pour la base de données
$frontendOptions = array(
'lifetime' => 14400,
'automatic_serialization' => true
);
$backendOptions = array();
$cache = Zend_Cache::factory('Core','Apc', $frontendOptions, $backendOptions);
Zend_Db_Table_Abstract::setDefaultMetadataCache($cache);
//Cache pour les données de la base à stocker
}
}

View File

@ -1,27 +0,0 @@
[production]
phpSettings.date.timezone = "Europe/Paris"
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
autoloaderNamespaces[] = "Application_"
resources.layout.layout = "main"
resources.layout.layoutPath = APPLICATION_PATH "/views"
resources.view.basePath = APPLICATION_PATH "/views"
[staging : production]
resources.frontController.params.displayExceptions = 0
phpSettings.soap.wsdl_cache_enabled = 0
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
phpSettings.soap.wsdl_cache_enabled = 0
resources.frontController.params.displayExceptions = 1
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

View File

@ -0,0 +1,104 @@
<?php
class DoublonController extends Zend_Controller_Action
{
public function indexAction()
{
}
public function fileformAction()
{
$this->view->headScript()->appendFile('/themes/default/js/jquery.form.js', 'text/javascript');
$this->view->headScript()->appendFile('/themes/default/js/jqueryprogressbar.js', 'text/javascript');
$this->view->assign('filesize', ini_get('upload_max_filesize'));
}
public function fileuploadAction()
{
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$request = $this->getRequest();
$c = Zend_Registry::get('config');
$path = realpath($c->profil->path->data).'/doublon';
if(!file_exists($path)) mkdir($path);
if ( isset($_FILES) && count($_FILES)==1 ){
$n = $_FILES['fichier']['name'];
$s = $_FILES['fichier']['size'];
$tmp_name = $_FILES['fichier']['tmp_name'];
$extValide = array('csv');
$extension = strrchr($n,'.');
$extension = substr($extension,1);
//Vérifier l'extension du fichier
if(!in_array($extension, $extValide)){
echo "Extension de fichier incorrect !";
} elseif (move_uploaded_file($tmp_name, $path.'/'.$idClient.'-'.$name.'.'.$extension)){
echo "Fichier envoyé, <a href=\"".
$this->view->url(array(
'controller' => 'envoi',
'action' => 'checkfile',
'file' => $idClient.'-'.$name.'.'.$extension,
))
."\">Vérifier le format</a>";
} else {
echo "Erreur : ".$_FILES['fichier']['error'];
}
}
}
/**
* Etat de progression de l'upload du fichier
*/
public function fileprogressAction()
{
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$request = $this->getRequest();
$key = $request->getParam('key', '');
if (!empty($key)) {
//$rep sera égal à false si la clef n'existe pas dans le cache apc
$rep = apc_fetch('upload_'.$key);
echo json_encode($rep);
}
}
public function checkfileAction()
{
$request = $this->getRequest();
$file = $request->getParam('file');
$c = Zend_Registry::get('config');
$pathIn = $c->profil->path->data.'/doublon';
$pathOut = $c->profil->path->data.'/doublon';
if(!file_exists($pathOut)) mkdir($pathOut);
//Vérifier le format du fichier
require_once 'Scores/Enrichissement.php';
$data = new Enrichissement();
$result = $data->checkFileEntete($pathIn.'/'.$file);
if ($result===FALSE)
{
$this->view->assign('errors',array("Impossible de lire le fichier !"));
//Supprimer le fichier
unlink($pathIn.'/'.$file);
}
elseif (is_array($result))
{
$this->view->assign('errors',$result);
//Supprimer le fichier
unlink($pathIn.'/'.$file);
}
elseif (is_int($result))
{
$this->view->assign('nb', $result);
}
}
}

View File

@ -1,6 +0,0 @@
<?php
class EnrichissementController extends Zend_Controller_Action
{
}

View File

@ -4,8 +4,7 @@ class EnvoiController extends Zend_Controller_Action
public function init()
{
$this->view->headScript()->appendFile('/scripts/enrichissement.js', 'text/javascript');
$this->view->headLink()->appendStylesheet('/styles/enrichissement.css');
$this->view->headLink()->appendStylesheet('/themes/default/css/enrichissement.css');
}
/**
@ -15,21 +14,13 @@ class EnvoiController extends Zend_Controller_Action
public function fileformAction()
{
$this->view->headScript()->appendFile('/scripts/jquery.form.js', 'text/javascript');
$this->view->headScript()->appendFile('/scripts/jqueryprogressbar.js', 'text/javascript');
$this->view->inlineScript()->appendFile('/themes/default/js/jquery.form.js', 'text/javascript');
$this->view->inlineScript()->appendFile('/themes/default/js/jqueryprogressbar.js', 'text/javascript');
$this->view->assign('filesize', ini_get('upload_max_filesize'));
//Récupérer les clients
$dbConfig = array(
'host' => MYSQL_HOST,
'port' => MYSQL_PORT,
'username' => MYSQL_USER,
'password' => MYSQL_PASS,
'dbname' => MYSQL_DEFAULT_DB,
'driver_options' => array(MYSQLI_INIT_COMMAND => 'SET NAMES UTF8;'),
//'driver_options' => array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8;')
);
$sqlmetier = Zend_Db::factory('Mysqli', $dbConfig);
$c = Zend_Registry::get('config');
$sqlmetier = Zend_Db::factory($c->profil->db->jo);
$sql = $sqlmetier->select()
->from('sdv1.clients', array('id', 'nom'))
->where("actif = 'Oui'");
@ -52,8 +43,8 @@ class EnvoiController extends Zend_Controller_Action
}
else
{
$config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/configuration.ini', 'path');
$path = realpath($config->data).'/validation';
$c = Zend_Registry::get('config');
$path = realpath($c->profil->path->data).'/validation';
if(!file_exists($path)) mkdir($path);
if ( isset($_FILES) && count($_FILES)==1 ){
@ -104,10 +95,10 @@ class EnvoiController extends Zend_Controller_Action
$request = $this->getRequest();
$file = $request->getParam('file');
$config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/configuration.ini', 'path');
$c = Zend_Registry::get('config');
$pathIn = $config->data.'/validation';
$pathOut = $config->data.'/clients';
$pathIn =$c->profil->path->data.'/validation';
$pathOut = $c->profil->path->data.'/clients';
if(!file_exists($pathOut)) mkdir($pathOut);
//Vérifier le format du fichier

View File

@ -4,12 +4,16 @@ class IndexController extends Zend_Controller_Action
public function indexAction()
{
//Liste des profils
$request = $this->getRequest();
$idClient = $request->getParam('idClient', null);
$this->view->assign('idClient', $idClient);
//Liste des profils
$profilM = new Application_Model_Profil();
$sql = $profilM->select();
$this->view->assign('listProfil', $profilM->fetchAll($sql));
$commandesM = new Application_Model_Commandes($db);
$commandesM = new Application_Model_Commandes();
//Liste des fichiers en attente de profil
$sql = $commandesM->select()->where('idProfil = ?', 0);
@ -24,9 +28,26 @@ class IndexController extends Zend_Controller_Action
//Liste des enrichissements terminé
$sql = $commandesM->select()
->where("dateStop != '0000-00-00 00:00:00'")
->where("error = ''");
->where("error = ''")
->order('dateStart DESC');
if ( null != $idClient ) {
$sql->where('fichier LIKE "'.$idClient.'-%"');
} else {
$sql->limit(5);
}
$this->view->assign('fileFinish', $commandesM->fetchAll($sql));
//Récupérer les clients
$c = Zend_Registry::get('config');
$sqlmetier = Zend_Db::factory($c->profil->db->jo);
$sql = $sqlmetier->select()
->from('sdv1.clients', array('id', 'nom'))
->where("actif = 'Oui'");
$clients = $sqlmetier->fetchAll($sql, null, Zend_Db::FETCH_OBJ);
$this->view->assign('clients', $clients);
}
@ -55,7 +76,8 @@ class IndexController extends Zend_Controller_Action
$request = $this->getRequest();
$file = $request->getParam('file', '');
$content_type = 'application/csv-tab-delimited-table';
$path = '/sites/dataenrichissement/export/';
$c = Zend_Registry::get('config');
$path = $c->profil->path->data . DIRECTORY_SEPARATOR . 'export' . DIRECTORY_SEPARATOR;
//Envoi du fichier sur la sortie standard
if ( file_exists($path.$file) ) {
header('Content-Transfer-Encoding: none');
@ -68,10 +90,19 @@ class IndexController extends Zend_Controller_Action
ini_set('zlib.output_compression', '0');
echo file_get_contents($path.$file);
} else {
echo 'Impossible de charger le fichier.';
echo "Impossible de charger le fichier. ($path$file)";
}
}
public function delAction()
{
$request = $this->getRequest();
$idfile = $request->getParam('idfile');
$commandesM = new Application_Model_Commandes($db);
$commandesM->delete('id='.$idfile);
$this->redirect('/');
}
public function restartAction()
{
$request = $this->getRequest();

View File

@ -4,123 +4,171 @@ class ProfilController extends Zend_Controller_Action
public function indexAction()
{
$db = Zend_Registry::get('db');
$profilM = new Application_Model_Profil($db);
$profilM = new Application_Model_Profil();
$sql = $profilM->select()->order('reference ASC');
$rows = $profilM->fetchAll($sql);
$this->view->assign('profils', $rows);
}
public function detailAction()
{
$request = $this->getRequest();
$id = $request->getParam('id', null);
require_once 'Scores/Enrichissement.php';
$data = new Enrichissement();
$data = new Enrichissement();
if ( $id != null ) {
$profilM = new Application_Model_Profil();
$profilM = new Application_Model_Profil();
$profil = $profilM->find($id);
$criteres = json_decode($profil->current()->criteres, true);
$tmp = array();
foreach ($criteres as $critere) {
$tmp[] = $data->getDicoLib($critere);
}
}
$this->view->assign('profil', $tmp);
$this->view->assign('reference', $profil->current()->reference);
}
}
}
public function createAction()
{
$this->view->inlineScript()->appendFile('/themes/default/js/profil.js', 'text/javascript');
$request = $this->getRequest();
$id = $request->getParam('id', null);
$id = $request->getParam('id', null);
$doublon = array();
require_once 'Scores/Enrichissement.php';
$data = new Enrichissement();
if ( $id != null ) {
$profilM = new Application_Model_Profil();
$profil = $profilM->find($id);
$criteres = json_decode($profil->current()->criteres, true);
$criteres = json_decode($profil->current()->criteres, true);
if( $profil->current()->doublon!='' ) {
$doublon = json_decode($profil->current()->doublon, true);
}
$tmp = array();
foreach ($criteres as $critere) {
foreach ($criteres as $critere) {
$values = false;
if (preg_match('/(.*)\((.*)\)/', $critere, $matches))
{
$values = $matches[2];
}
$tmp[$critere] = array(
'lib' => $data->getDicoLib($critere),
'values' => $values,
$pos = strpos($critere, '(');
if ($pos === false){
$key = $critere;
} else {
$key = substr($critere, 0, $pos);
}
Zend_Registry::get('firebug')->info($key);
$tmp[$key] = array(
'lib' => $data->getDicoLib($key),
'values' => $values,
);
}
$this->view->assign('criteres', $tmp);
$this->view->assign('reference', $profil->current()->reference);
}
$this->view->assign('doublon', $doublon);
$this->view->assign('id', $id);
$this->view->assign('edit', true);
$this->view->assign('elements', $data->getDico());
}
$this->view->assign('elements', $data->getDico());
}
public function saveAction()
{
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$request = $this->getRequest();
$request = $this->getRequest();
$reference = $request->getParam('reference');
$criteres = $request->getParam('criteres');
$db = Zend_Registry::get('db');
$profilM = new Application_Model_Profil($db);
$doublon = $request->getParam('doublon');
$profilM = new Application_Model_Profil();
$data = array(
'reference' => $reference,
'criteres' => json_encode($criteres),
);
'doublon' => ($doublon!='') ? json_encode($doublon) : '',
);
$id = $request->getParam('id', null);
if ( $id != null ) {
if ( $profilM->update($data, 'id='.$id) ){
echo '';
} else {
echo 'Erreur';
}
if ( $id != null ) {
try {
$result = $profilM->update($data, 'id='.$id);
} catch (Zend_Db_Adapter_Exception $e) {
Zend_Registry::get('firebug')->info($e->getMessage());
}
} else {
if ( $profilM->insert($data) ){
echo '';
} else {
echo 'Erreur';
}
try {
$result = $profilM->insert($data);
} catch (Zend_Db_Adapter_Exception $e) {
Zend_Registry::get('firebug')->info($e->getMessage());
}
}
if ( $result!=0 ){
echo '';
} else {
echo 'Erreur';
}
}
public function setAction()
{
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$request = $this->getRequest();
$idprofil = $request->getParam('idprofil');
$idfile = $request->getParam('idfile');
$db = Zend_Registry::get('db');
$commandesM = new Application_Model_Commandes($db);
$commandesM = new Application_Model_Commandes();
$data = array(
'idProfil' => $idprofil,
);
if ( $commandesM->update($data, "id=$idfile") ){
echo '';
} else {
echo 'Erreur';
}
}
public function deleteAction()
{
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$request = $this->getRequest();
$idfile = $request->getParam('idfile');
$commandesM = new Application_Model_Commandes();
$commandesM->delete("id=$idfile");
$this->redirect('/');
}
public function helpAction()
{
$this->_helper->layout()->disableLayout();
$request = $this->getRequest();
$key = $request->getParam('key');
require_once 'Scores/Enrichissement.php';
$dico = new Enrichissement();
$this->view->assign('key', $key);
$this->view->assign('lib', $dico->getDicoLib($key));
$this->view->assign('help', $dico->getDicoHelp($key));
$this->view->assign('columns', $dico->getDicoColumns($key));
}
}

View File

@ -0,0 +1,5 @@
<?php
class Application_Model_JoLiens extends Zend_Db_Table_Abstract
{
protected $_name = 'liens2';
}

View File

@ -0,0 +1,5 @@
<?php
class Application_Model_JoLiensDoc extends Zend_Db_Table_Abstract
{
protected $_name = 'liensDoc';
}

View File

@ -0,0 +1,15 @@
<?php
class Application_Model_JoLiensRef extends Zend_Db_Table_Abstract
{
protected $_name = 'liensRef';
public function insert(array $data)
{
// Ajout d'un timestamp
if (empty($data['dateInsert'])) {
$data['dateInsert'] = date('YmdHis');
}
return parent::insert($data);
}
}

View File

@ -0,0 +1,5 @@
<?php
class Application_Model_JoTabPays extends Zend_Db_Table_Abstract
{
protected $_name = 'tabPays';
}

View File

@ -0,0 +1,5 @@
<?php
class Application_Model_Sdv1TabIdLocal extends Zend_Db_Table_Abstract
{
protected $_name = 'tabIdLocal';
}

View File

@ -0,0 +1,22 @@
<?php echo $this->doctype(); ?>
<html>
<head>
<?php echo $this->headMeta(); ?>
<?php echo $this->headTitle(); ?>
<?php echo $this->headStyle(); ?>
<?php echo $this->headLink(); ?>
<?php echo $this->headScript(); ?>
</head>
<body>
<div id="wrap">
<?php echo $this->render('header.phtml') ?>
<div class="container">
<?php echo $this->layout()->content; ?>
</div>
</div>
<?php echo $this->inlineScript(); ?>
</body>
</html>

View File

@ -1,20 +0,0 @@
<?php echo $this->doctype();?>
<html>
<head>
<?php echo $this->headMeta();?>
<?php echo $this->headTitle();?>
<?php echo $this->headStyle();?>
<?php echo $this->headLink();?>
<?php echo $this->headScript();?>
</head>
<body>
<div id="global">
<div id="header">
<?php echo $this->render('header.phtml') ?>
</div>
<div id="content">
<?php echo $this->layout()->content;?>
</div>
</div>
</body>
</html>

View File

@ -1,5 +1,12 @@
<h1>Enrichissement</h1>
<h2>Aide</h2>
<p>
Caractéristiques du fichier à charger : <br/>
Les colonnes "siren" et "nic" sont obligatoire, avec "ref" en facultatif.<br/>
Le séparateur utilisé est la virgule (,).
</p>
<p>
<a href="<?=$this->url(array('controller'=>'envoi', 'action'=>'fileform'))?>">Envoi d'un fichier CSV</a>
</p>
@ -10,9 +17,9 @@
<h2>En attente de profil</h2>
<div>
<?php if (count($this->fileAttenteProfil)) {?>
<table>
<table class="table table-striped">
<thead>
<tr><th>Fichier</th><th>Profil</th></tr>
<tr><th>Fichier</th><th>Profil</th><th>Action</th></tr>
</thead>
<tbody>
<?php foreach($this->fileAttenteProfil as $file) {?>
@ -28,6 +35,7 @@
</select>
<a class="setprofil" href="<?=$this->url(array('controller'=>'profil', 'action'=>'set', 'idfile'=>$file->id))?>">Ok</a>
</td>
<td><a class="delprofil" href="<?=$this->url(array('controller'=>'profil','action'=>'delete','idfile'=>$file->id))?>">Supprimer</a></td>
</tr>
<?php }?>
</tbody>
@ -40,11 +48,12 @@
<h2>Enrichissements en cours</h2>
<div>
<?php if (count($this->fileEnCours)) {?>
<table>
<table class="table table-striped">
<thead>
<tr>
<th>Fichier</th>
<th>Date Ajout</th>
<th>Ajout</th>
<th>Départ</th>
<th>Lignes Traités</th>
<th>Lignes Total</th>
<th>Message d'erreur</th>
@ -56,6 +65,7 @@
<tr id="<?=$file->id?>" class="encours">
<td><?=$file->fichier?></td>
<td><?=$file->dateAdded?></td>
<td><?=$file->dateStart?></td>
<td class="ligne"><?=$file->nbLigneT?></td>
<td><?=$file->nbLigne?></td>
<td><?=$file->error?></td>
@ -63,7 +73,7 @@
<a class="restart" href="<?=$this->url(array('action'=>'restart', 'id'=>$file->id))?>">Remise à zéro et redémarrage</a>
<?php if ( !empty($file->error) ) {?>
| <a class="reprise" href="<?=$this->url(array('action'=>'reprise', 'id'=>$file->id))?>">Reprise manuelle sur erreur</a>
<?php }?>
<?php }?>
</td>
</tr>
<?php }?>
@ -76,17 +86,32 @@
<h2>Enrichissements terminés</h2>
<div>
<?php if (count($this->fileFinish)) {?>
<form method="post" action="./">
<label>Client</label>
<select name="idClient">
<option value="">-</option>
<?php foreach ($this->clients as $client) {?>
<?php $select = ''; if ( null!=$this->idClient && $client->id == $this->idClient) { $select = ' selected'; }?>
<option value="<?=$client->id?>"<?=$select?>><?=$client->nom?></option>
<?php }?>
</select>
<input type="submit" name="submit" value="Selection" />
</form>
</div>
<table>
<div>
<?php if (count($this->fileFinish)) {?>
<table class="table table-striped">
<thead>
<tr><th>Fichier</th><th>Date</th><th>Date Fin</th><th>Lignes total</th><th>Fichier enrichi</th></tr>
<tr><th>#</th><th>Fichier</th><th>Ajout</th><th>Départ</th><th>Fin</th><th>Lignes total</th><th>Fichier enrichi</th></tr>
</thead>
<tbody>
<?php foreach($this->fileFinish as $file) {?>
<tr>
<td><?=$file->id?></td>
<td><?=$file->fichier?></td>
<td><?=$file->dateAdded?></td>
<td><?=$file->dateStart?></td>
<td><?=$file->dateStop?></td>
<td><?=$file->nbLigneT?></td>
<td>
@ -100,4 +125,5 @@
<?php } else {?>
<p>Vide</p>
<?php }?>
</div>
</div>

View File

@ -1,78 +1,79 @@
<style>
div#entete {
width:45%;
float:left;
border:1px solid #bebebe;
height:500px;
overflow:auto;
margin:5px 0;
}
div#entete li {
background-color:#4D90FE;
border-top:2px solid #ffffff;
border-bottom:2px solid #ffffff;
line-height:20px;
font-weight:bold;
color:#000000;
margin-left:30px;
padding:5px 10px;
}
div#dico {
width:45%;
height:500px;
float:right;
border:1px solid #bebebe;
overflow:auto;
margin:5px 0;
}
div#dico li {
list-style-type:none;
padding:5px 10px;
background-color:#4D90FE;
border-top:2px solid #ffffff;
border-bottom:2px solid #ffffff;
line-height:20px;
font-weight:bold;
color:#000000;
}
input[type="text"] {
border:1px solid;
}
div#dico .panel-body {
height:500px;
overflow:auto;
}
div#dico .panel-body, div#entete .panel-body {
padding:0;
}
</style>
<div id="entete">
<h1 class="ui-widget-header">Entete</h1>
<div class="ui-widget-content">
<ol>
<?php if (count($this->criteres)==0) {?>
<span class="placeholder">Placer les elements ici</span>
<?php } else {?>
<?php foreach($this->criteres as $key => $element) {?>
<li id="<?=$key?>">
<?php if (isset($element['lib'])) { echo $element['lib']; } else { echo $key; }?>
<?php if (isset($element['values']) && $element['values']!==false ) {
echo "<input type=\"text\" name=\"".$key."\" value=\"".$element['values']."\"/>"; }?>
</li>
<?php }?>
<?php }?>
</ol>
</div>
<div class="row">
<div class="col-md-4">
<div class="panel panel-default" id="entete">
<div class="panel-heading">
<h3 class="panel-title">Entete</h3>
</div>
<div class="panel-body">
<div class="ui-widget-content">
<ul class="list-group">
<?php if (count($this->criteres)==0) {?>
<span class="placeholder">Placer les elements ici</span>
<?php } else {?>
<?php foreach($this->criteres as $key => $element) {?>
<li class="list-group-item" id="<?=$key?>">
<?php if (isset($element['lib'])) { echo $element['lib']; } else { echo $key; }?>
<?php if (isset($element['values']) && $element['values']!==false ) {
echo "<input type=\"text\" name=\"".$key."\" value=\"".$element['values']."\"/>"; }?>
</li>
<?php }?>
<?php }?>
</ol>
</div>
</div>
</div>
</div>
<div id="dico">
<h1 class="ui-widget-header">Elements disponibles</h1>
<ul>
<?php foreach($this->elements as $key => $element) {?>
<li id="<?=$key?>">
<?php if (isset($element['lib'])) { echo $element['lib']; } else { echo $key; }?>
<?php if (isset($element['values'])) { echo "<input type=\"text\" name=\"".$key."\" value=\"\"/>"; }?>
</li>
<?php }?>
</ul>
<div class="col-md-4">
<div class="panel panel-default" id="dico">
<div class="panel-heading">
<h3 class="panel-title">Elements disponibles</h3>
</div>
<div class="panel-body">
<ul class="list-group">
<?php foreach($this->elements as $key => $element) {?>
<li class="list-group-item" id="<?=$key?>">
<?php if (isset($element['lib'])) { echo $element['lib']; } else { echo $key; }?>
<?php if (isset($element['values'])) { echo "<input type=\"text\" name=\"".$key."\" value=\"\"/>"; }?>
</li>
<?php }?>
</ul>
</div>
</div>
</div>
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Aide</h3>
</div>
<div class="panel-body" id="help"></div>
</div>
</div>
</div>
<div>
Clé de dédoublonnage : <br/>
<input type="checkbox" name="doublon" value="siret" <?php if(in_array('siret', $this->doublon)) echo ' checked';?>/> SIRET<br/>
<input type="checkbox" name="doublon" value="siren" <?php if(in_array('siren', $this->doublon)) echo ' checked';?>/> SIREN<br/>
<input type="checkbox" name="doublon" value="nic" <?php if(in_array('nic', $this->doublon)) echo ' checked';?>/> NIC<br/>
<input type="checkbox" name="doublon" value="ref" <?php if(in_array('ref', $this->doublon)) echo ' checked';?>/> REF<br/>
</div>
<div style="clear:both;">
@ -83,64 +84,4 @@ Référence <input type="text" name="profil" value="<?=$this->reference?>" />
<?php } else {?>
<a id="save" href="<?=$this->url(array('controller'=>'profil', 'action'=>'save'))?>">Sauvegarder</a>
<?php }?>
</div>
<script>
$(function() {
$("#dico li").draggable({
appendTo: "body",
helper: "clone"
});
$("#entete ol").droppable({
activeClass: "ui-state-default",
hoverClass: "ui-state-hover",
accept: ":not(.ui-sortable-helper)",
drop: function( e, ui ) {
e.preventDefault();
$( this ).find( ".placeholder" ).remove();
var id = ui.draggable.attr('id');
$('<li id="'+id+'"></li>').html( ui.draggable.html() ).appendTo( this );
}
}).sortable({
items: "li:not(.placeholder)",
sort: function() {
$( this ).removeClass( "ui-state-default" );
}
});
$("#entete").delegate("a.delete","click", function(e){
e.preventDefault();
$(this).parent().remove();
});
$("#entete ol").delegate("li" , "hover", function(e) {
e.preventDefault();
if (e.type === 'mouseenter') {
var html = $(this).html();
$(this).html(html+'<a href="#" style="float:right;" class="delete">Supprimer</a>');
} else {
$( this ).find( ".delete" ).remove();
}
});
$('#save').click(function(e){
e.preventDefault();
var url = $(this).attr('href');
var list = new Array();
$('#entete ol li').each(function(index){
var id = $(this).attr('id');
if($('input[name='+id+']', this).length>0){
id = id + '(' + $('input[name='+id+']', this).val() + ')';
}
list.push(id);
});
var ref = $('input[name=profil]').val();
if (ref!='') {
$.post(url, { reference: ref, criteres: list }, function(data){
if (data!='Erreur'){ window.location.href = '/'; }
}, 'json');
}
});
});
</script>
</div>

View File

@ -0,0 +1,13 @@
<p>Element : <?=$this->lib?></p>
<p>Key : <?=$this->key?>
<p><?=$this->help?></p>
<br/>
<p>Colonnes de sortie</p>
<ul>
<?php if ( $this->columns!==false && count($this->columns)>0 ) {?>
<?php foreach ( $this->columns as $code => $lib ) {?>
<li><?=$code?> : <?=$lib?></li>
<?php }?>
<?php }?>
</ul>

View File

@ -1,7 +1,7 @@
<div>
<h2>Gestion des profils</h2>
<?php if (count($this->profils)>0) {?>
<table>
<table class="table">
<thead>
<tr>
<th>Référence</th>

File diff suppressed because it is too large Load Diff

21
composer.json Normal file
View File

@ -0,0 +1,21 @@
{
"name": "scores/enrichissement",
"description": "Enrichissement",
"require": {
"zendframework/zendframework1": "^1.12"
},
"include-path": ["library/"],
"autoload": {
"classmap": [
"application/",
"library/Scores/",
"library/SdMetier/"
]
},
"authors": [
{
"name": "Scores et Decisions",
"email": "supportdev@scores-decisions.com"
}
]
}

66
composer.lock generated Normal file
View File

@ -0,0 +1,66 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "1bbbaa2f28e815c026b865f1484d8d52",
"content-hash": "edbc67aa513e9f6521d39fb2bb6d3784",
"packages": [
{
"name": "zendframework/zendframework1",
"version": "1.12.16",
"source": {
"type": "git",
"url": "https://github.com/zendframework/zf1.git",
"reference": "8a3c471ef0a337d303cd5ae578e64c2ba1d2c025"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/zendframework/zf1/zipball/8a3c471ef0a337d303cd5ae578e64c2ba1d2c025",
"reference": "8a3c471ef0a337d303cd5ae578e64c2ba1d2c025",
"shasum": ""
},
"require": {
"php": ">=5.2.11"
},
"require-dev": {
"phpunit/dbunit": "1.3.*",
"phpunit/phpunit": "3.7.*"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.12.x-dev"
}
},
"autoload": {
"psr-0": {
"Zend_": "library/"
}
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
"library/"
],
"license": [
"BSD-3-Clause"
],
"description": "Zend Framework 1",
"homepage": "http://framework.zend.com/",
"keywords": [
"ZF1",
"framework"
],
"time": "2015-09-15 15:49:51"
}
],
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": [],
"platform-dev": []
}

View File

@ -1,75 +0,0 @@
#!/usr/bin/php
<?php
// Paramètres
if ( $argc < 1 || in_array($argv[1], array('--help', '-help', '-h', '-?')) ) {
?>
Installation
Avec les options --help, -help, -h, et -?, vous obtiendrez cette aide.
Utilisation : <?php echo $argv[0]; ?> [action]
action :
--install : Configuration
<?php
exit;
}
$action = $argv[1];
$hostname = exec('echo $(hostname)');
$wwwroot = realpath(dirname(__FILE__).'/../../');
switch ($action)
{
case '--install':
writeConfig();
changePermission();
break;
}
/**
* Vérfie si l'utilisateur est ROOT
*/
function isRoot()
{
$uid = exec('echo $(id -u)');
if ((int) $uid == 0){
return true;
} else {
return false;
}
}
function changePermission()
{
passthru('chown -R www-data: '.realpath(dirname(__FILE__).'/../'));
passthru('chmod -R +x '.realpath(dirname(__FILE__).'/../batch/').'/*.php');
}
function changePrimarySymlink()
{
global $wwwroot;
passthru('rm '.$wwwroot.'/webservice');
passthru('ln -s '.realpath(dirname(__FILE__).'/../').' '.$wwwroot.'/webservice');
}
function writeConfig()
{
global $hostname;
$arrayConfig = array(
'mysql.php',
'stockage.php',
);
foreach($arrayConfig as $config) {
passthru('cp -v '.
realpath(dirname(__FILE__)).'/'.$hostname.'/'.$config.' ' .
realpath(dirname(__FILE__)).'/'.$config);
}
passthru('cp -v '.
realpath(dirname(__FILE__)).'/'.$hostname.'/configuration.ini'.' '.
realpath(dirname(__FILE__)).'/../application/configs/configuration.ini');
}

View File

@ -1,22 +0,0 @@
[server]
name = sdsrvdev01
[databases]
db.adapter=mysqli
db.params.host=127.0.0.1
db.params.username=root
db.params.password=password
db.params.dbname=enrichissement
db.params.driver_options.MYSQLI_INIT_COMMAND = "SET NAMES utf8"
[mail]
method = smtp
smpt_port =
smtp_host = smtp.free.fr
support = mricois@scores-decisions.com
supportdev = mricois@scores-decisions.com
contact = mricois@scores-decisions.com
production = mricois@scores-decisions.com
[path]
data = "d:\www\dataenrichissement"

View File

@ -1,22 +0,0 @@
[server]
name = sdsrvdev01
[databases]
db.adapter=mysqli
db.params.host=127.0.0.1
db.params.username=enrichissement
db.params.password=aY5EWvtMmXrqKwK8
db.params.dbname=enrichissement
db.params.driver_options.MYSQLI_INIT_COMMAND = "SET NAMES utf8"
[mail]
method = smtp
smpt_port =
smtp_host = smtp.free.fr
support = mricois@scores-decisions.com
supportdev = mricois@scores-decisions.com
contact = mricois@scores-decisions.com
production = mricois@scores-decisions.com
[path]
data = "/sites/dataenrichissement"

View File

@ -1,9 +0,0 @@
<?php
// Base de données de S&D
define('MYSQL_HOST', '88.190.14.56');
define('MYSQL_PORT', '53336');
define('MYSQL_USER', 'wsuser');
define('MYSQL_PASS', 'wspass2012');
define('MYSQL_DEFAULT_DB', 'jo');
define('MYSQL_SQL_LOG', 'NONE');

View File

@ -1,8 +0,0 @@
<?php
/** Dossiers locaux pour les documents a telecharger (PDF kbis, marques, etc...) **/
define('DOC_WEB_LOCAL', realpath('d:/www/dataenrichissement/').'/');
define('DOC_WEB_URL', '/data/');
/** LOGGING **/
define('LOG_PATH', realpath('d:/www/dataenrichissement/log/'));

View File

@ -0,0 +1,6 @@
<?php
class Metier_Common_Chiffre
{
}

View File

@ -0,0 +1,7 @@
<?php
class Metier_Common_Date
{
}

View File

@ -0,0 +1,6 @@
<?php
class Metier_Common_Debug
{
}

View File

@ -0,0 +1,7 @@
<?php
class Metier_Common_Ftp
{
}

View File

@ -0,0 +1,49 @@
<?php
class Metier_Common_Mail
{
/**
* Envoi un email
* @param unknown $from
* @param unknown $to
* @param unknown $subject
* @param string $text
* @param string $html
* @param array $tabAttachedFiles
*/
public function send($from, $to, $subject, $text='', $html='', $tabAttachedFiles=array())
{
$to = preg_split("/[\s,;]+/", $to);
$mail = new Scores_Mail_Method();
$mail->setFrom($from);
if ( count($to) > 0 ) {
foreach ( $to as $item ) {
$mail->addTo($item);
}
}
$mail->setSubject($subject);
if ($text!='') {
$mail->setBodyText($text);
}
if ($html!='') {
$mail->setBodyHtml($html);
}
if ( count($tabAttachedFiles) > 0 ) {
foreach ($tabAttachedFiles as $file) {
$at = new Zend_Mime_Part( file_get_contents( $file ) );
$mail->addAttachment($at);
}
}
try {
$mail->execute();
} catch (Zend_Mail_Transport_Exception $e) {
file_put_contents(LOG_PATH.'/sendMailError.log', date('Y-m-d H:i:s')." - ".$e->getMessage()."\n", FILE_APPEND);
} catch (Zend_Mail_Protocol_Exception $e) {
file_put_contents(LOG_PATH.'/sendMailError.log', date('Y-m-d H:i:s')." - ".$e->getMessage()."\n", FILE_APPEND);
}
}
}

View File

@ -0,0 +1,6 @@
<?php
class Metier_Common_Mysql
{
}

View File

@ -0,0 +1,7 @@
<?php
class Metier_Common_String
{
}

View File

@ -0,0 +1,7 @@
<?php
class Metier_Common_Utils
{
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,276 @@
<?php
return array(
"$" => "USD",
"DOLLAR" => "USD",
"DOLLARS" => "USD",
"DOLLARS US" => "USD",
"DOLLAR DES ETATS-UNIS" => "USD",
"DOLLARS CANADIENS" => "CAD",
"BRR" => "BRR",
"BRL" => "BRL",
"EURO" => "EUR",
"RÉIS" => "BRL",
"F" => "FRF",
"FRANCS CFA" => "CFA",
"CNY" => "CNY",
"YUAN" => "CNY",
"YUAN REN MIN BI" => "CNY",
"COURONNES TCHÈQUES (RÉPUBLIQUE TCHÈQUE" => "CZK",
"ARIARYS" => "MGA",
"KMF" => "KMF",
"MGA ARIARY" => "MGA",
"MUR" => "MUR",
"ROUPIES MAURICIENNES" => "MUR",
"MURS" => "MUR",
"ROL" => "ROL",
"RON" => "RON",
"FS" => "CHF",
"CHF" => "CHF",
"FRANC SUISSE" => "CHF",
"FRANCS SUISSES" => "CHF",
"YENS" => "JPY",
"DKK" => "DKK",
"COURONNES DANOISES" => "DKK",
"COURONNES NORVÉGIENNES" => "NOK",
"GBP" => "GBP",
"LIVRE STERLING" => "GBP",
"LIVRES STERLING" => "GBP",
"LIVRES STERLINGS" => "GBP",
"ROUBLES BIÉLORUSSES" => "RUB",
"ROUBLES" => "RUB",
"DOLLARS TAIWAN" => "TWD",
"HKD" => "HKD",
"DIRHAMS" => "MAD",
"DINARS TUNISIENS" => "TND",
"FCFA" => "CFA",
"FRANCS BELGES" => "BEF",
"ROUPIE INDIENNE" => "INR",
"DOLLARS HONG KONG" => "HKD",
"RIALS IRANIENS" => "IRR",
"DOLLARS HONG-KONG" => "HKD",
"ECU" => "EUR",
"YUANS" => "CNY",
"DM" => "DEM",
"LEI" => "RON",
"TND" => "TND",
"WON" => "KRW",
"DINAR TUNISIEN" => "TND",
"WONS" => "KRW",
"DIRHAMS MAROCAINS" => "MAD",
"FB" => "BEF",
"CRUZEIROS" => "BRL",
"REALS" => "BRL",
"COURONNES ISLANDAISES" => "ISK",
"DOLLARS AUSTRALIENS" => "AUD",
"DINARS" => "TND",
"RIYAL SAOUDIEN" => "SAR",
"LIVRES SYRIENNES" => "SYP",
"YEN" => "JPY",
"COURONNES SUÉDOISES" => "SEK",
"LIVRES TURQUES" => "TRY",
"SHEKELS" => "ILS",
"FRANC BELGE" => "BEF",
"DOLLAR HONG KONG" => "HKD",
"DOLLARS SINGAPOUR" => "SGD",
"ZLOTY" => "PLN",
"LEVS" => "BGN",
"OUGUIYA" => "MRO",
"ROUPIES INDIENNES" => "INR",
"RIEL" => "KHR",
"COURONNES DANNOISES" => "DKK",
"INR" => "INR",
"ROUPIES DES SEYCHELLES" => "SCR",
"$ CANADIENS" => "CAD",
"LIVRE STERLI" => "GBP",
"NOK" => "NOK",
"LIVRES LIBANAISES" => "LBP",
"RUR" => "RUB",
"USD" => "USD",
"CHS" => "CHE",
"SKK" => "SKK",
"DINAR TUNISI" => "TND",
"PESOS COLOMBIENS" => "COP",
"JIAS" => "CNY",
"DINARS ALGÉRIENS" => "DZD",
"RIELS" => "KHR",
"CLP" => "CLP",
"DINAR ALGÉRIEN" => "DZD",
"RANDS" => "ZAR",
"LEU" => "RON",
"LIVRES CYPRIOTES" => "CYP",
"MAD" => "MAD",
"JPY" => "JPY",
"PNL" => "PLN",
"DOLLARS NÉO-ZÉLANDAIS" => "NZD",
"DOLLAR US" => "USD",
"CYP" => "CYP",
"DIRHAM" => "MAD",
"ZRN" => "ZRN",
"RIYALS SAOUDIENS" => "SAR",
"ZLOTYS" => "PLN",
"FRANCS MALGACHE" => "MGF",
"BAHTS" => "THB",
"SHILLINGS KENYANS" => "KES",
"FRANC COMORIEN" => "KMF",
"KRW" => "KRW",
"$ HONG-KONG" => "HKD",
"COURONNES TCHÈQUES" => "CZK",
"FRANCS CFA-BE" => "XAF",
"DIRHAMS DES E A U" => "AED",
"DOLLAR AUSTRALIEN" => "AUD",
"F, SOIT" => "FRF",
"F SOIT" => "FRF",
"FRANC FRANÇAIS" => "FRF",
"FRANCS GUINÉENS" => "GNF",
"$ US" => "USD",
"REAL" => "BRL",
"LBP" => "LBP",
"TRL" => "TRY",
"RIYAL YÉMÉNITES" => "YER",
"ARIARY" => "MGA",
"PESOS PHILIPPINS" => "PHP",
"KRD" => "DKK",
"WONS CORÉE DU SUD" => "KRW",
"DOLLAR HONG-KONG" => "HKD",
"BAHT" => "THB",
"PESOS CUBAINS" => "CUC",
"DÔNGS" => "VND",
"DINARS JORDANIENS" => "JOD",
"LIVRES ÉGYPTIENNES" => "EGP",
"MALTAISES" => "MTL",
"NOUVEAUX DOLLARS TAÏWAN" => "TWD",
"$ TAIWA" => "TWD",
"F CFA" => "XAF",
"SGD" => "SGD",
"$ SINGAPOUR" => "SGD",
"YUANS RENMINBI" => "CNY",
"DIRHAMS DES EMIRATS ARABES UNIS" => "AED",
"LIVRE TURQUE" => "TRY",
"ERUOS" => "EUR",
"DOLLARS DES ETATS-UNIS" => "USD",
"SCHILLING" => "ATS",
"BIRRS" => "ETB",
"DOLLAR CANADIEN" => "CAD",
"LIVRES CYPRIOBES" => "CYP",
"EUROS (PLANCHER ET" => "EUR",
"FRANCS MALGACHES" => "MGF",
"LEVA" => "BGN",
"DINARDS JORDANIENS" => "JOD",
"PES" => "PHP",
"PESETAS" => "ESP",
"DINARDS" => "DZD",
"NOUVEAUX DOLLARS TAÏWANAIS" => "TWD",
"FRANC" => "FRF",
"COURONNE DANOISE" => "DKK",
"F SUISSES" => "CHF",
"F (SOIT" => "FRF",
"EUROS, COMPRENANT LA CLIENTÈLE ET L'ACHA" => "EUR",
"EUROS, EN CE COMPRIS UN FONDS SIS RÉSIDE" => "EUR",
"F SYMBOLIQUE" => "FRF",
"RIALS" => "IRR",
"EUROS, À L'EXCLUSION DU DROIT AU BAIL DE" => "EUR",
"DH" => "MAD",
"EUROS, CRÉATION L'AUTRE BRANCHE ACTIVITÉ" => "EUR",
"LEI ROUMAIN" => "RON",
"HGK" => "HKD",
"EUROS, ÉTANT PRÉCISÉ QUE LE CÉDANT A CON" => "EUR",
"DZD" => "DZD",
"DON" => "VND",
"EUROS, EN CE COMPRIS LA BRANCHE ACTIVITÉ" => "EUR",
"LEV" => "RON",
"EUROS, AVEC UN DEUXIÈME FONDS SIS À CHEF" => "EUR",
"DÉCEMBRE" => "EUR",
"CEDIS" => "GHS",
"EUROS ; EN CE COMPRIS L'ÉTABLISSEMENT CO" => "EUR",
"EUROS, À L'EXCEPTION LA BOUCHERIE" => "EUR",
"Y" => "JPY",
"EUROS DES ÉLÉMENTS LA BRANCHE ACTIVITÉ >" => "EUR",
"ROUTE BISCHWILLER À SCHILTIGHEIM" => "EUR",
"AVENUE COLMAR, STRASBOURG" => "EUR",
"$ CAN" => "CAD",
"EUUROS" => "EUR",
"EUROS, À L'EXCLUSION L'ACTIVITÉ FABRICAT" => "EUR",
"BRC" => "BRL",
"EUROS ET CRÉATION LA BRANCHE ACTIVITÉ SN" => "EUR",
"EUROS ET CRÉATION LA BRANCHE ACTIVITÉ GL" => "EUR",
"EUROS, ET CRÉATION LA BRANCHE ACTIVITÉ I" => "EUR",
"EGP" => "EGP",
"COURONNE SUE" => "SEK",
"LIVRES" => "GBP",
"EUROS, À L'EXCLUSION LA BRANCHE VENTE AU" => "EUR",
"SOLS" => "PEN",
"EUROS, SOIT LA BRANCHE ACTIVITÉ GROS UV" => "EUR",
"BATHS" => "THB",
"MRO" => "MRO",
"EUROS, À L'EXCLUSION TOUS LES ÉLÉMENTS L" => "EUR",
"PESOS" => "ARS",
"YANS" => "CNY",
"MGF" => "MGF",
"EUROS, CONJOINTEMENT AVEC MME CHERUBINI" => "EUR",
"EUROS, CONSTITUANT UNE BRANCHE COMPLÈTE" => "EUR",
"EUROS, À L'EXCLUSION LA BRANCHE ACTIVITÉ" => "EUR",
"FRANCS SUISSE" => "CHF",
"FL" => "LUF",
"DOLLARS DES CARAÏBES" => "DOP",
"DOLLARS HO" => "HKD",
"EUROS, RÉSULTANT UN PROJET APPORT AUX TE" => "EUR",
"HU" => "HUF",
"EUROS, INCLUANT LES BRANCHES DES FONDS C" => "EUR",
"EUROS, À L'EXCEPTION LA BRANCHE ACTIVITÉ" => "EUR",
"EUROS. ACQUISITION ET ADJONCTION DES NOM" => "EUR",
"BHD" => "TND",
"EUOS" => "EUR",
"TWD" => "TWD",
"RL" => "IRR",
"FRANCS" => "FRF",
"FRF" => "FRF",
"EUROS ; CRÉATION LA BRANCHE ACTIVITÉ VEN" => "EUR",
"EUROS ET CRÉATION LA BRANCHE ACTIVITÉ CA" => "EUR",
"FRANCS FRANCAIS" => "FRF",
"EOROS" => "EUR",
"UROS" => "EUR",
"EUROS - LES OPPOSITIONS SERONT RECUES CH" => "EUR",
"EUROS - JOURNAL PUBLICATEUR : PETITES AF" => "EUR",
"EUROS, SAUF POUR LA BRANCHE JEUX GRATTAG" => "EUR",
"EU" => "EUR",
"EUROS - JOURNAL : LES PETITES AFFICHES D" => "EUR",
"EUROS - JOURNAL ANNONCES LÉGALES : LES A" => "EUR",
"EUORS" => "EUR",
"FRANCS FRANÇAIS. RADIATION PERSONNE PHYS" => "FRF",
"EUROS - JOURNAL PUBLICITE : LES AFFICHES" => "EUR",
"EUROS - JOURNAL PUBLICATEUR LES PETITES" => "EUR",
"EUROS, ANNONCE PARU DANS LES PETITES AFF" => "EUR",
"EUROSO - JOURNAL ANNONCES LES PETITES AF" => "EUR",
"EUROS. LE RECTIFICATIF PORTE SUR LE LIEU" => "EUR",
"EUROS. L'ENTRÉE EN JOUISSANCE EST FIXÉE" => "EUR",
"EUROS. LES OPPOSITIONS SERONT REÇUES POU" => "EUR",
"EUROS ; ACQUIS PAR APPORT PARTIEL ACTIF" => "EUR",
"EUROS JOURNAL ANNONCES LEGALES LES PETIT" => "EUR",
" LIVRES STERLING - PASSIF TRANSMIS :" => "GBP",
"EUROS, PARUTION DANS LES PETITES AFFICHE" => "EUR",
"EUROS - JOURNAL ANNONCES LEGALES LES PET" => "EUR",
"EUROS; LES OPPOSITIONS SERONT REÇU AU SI" => "EUR",
"EUROS - JOURNAL ANNONCES LÉGALES : LES P" => "EUR",
"FRF;F" => "FRF",
"EUROS - PUBLICATION : LES AFFICHES PARIS" => "EUR",
" " => "EUR",
"E" => "EUR",
"EUR (ACQUISITION UNE BRANCHE ACTIVI TÉ)" => "EUR",
"EUROS. VENDEUR : SARL LE TAILLEUR CHEMIS" => "EUR",
"EUROS, PRECEDENT PROPRIÉTAIRE ETURICHEPA" => "EUR",
"£, PASSIF TRANSMIS" => "GBP",
"EUROS LES OPPOSITIONS SERONT REÇUES CHEZ" => "EUR",
"EUROS. ACTIVITÉ : BRANCHE ACTIVITÉ TRANS" => "EUR",
"EUROS ; ACHAT LA CLIENTèLE RELATIVE à L'" => "EUR",
"'" => "EUR",
"EUROS. PUBLICATION : LES PETITES AFFICHE" => "EUR",
"EUROS MADAME BUTON FRANCOIS RCS LA ROCHE" => "EUR",
"EUROS (BRANCHE ACTIVITé)" => "EUR",
"EUROS, LA SOCIéTé GF BATIMENTS A CéDé à" => "EUR",
"USD (SOIT" => "USD",
"EUROS (ACQUISITION UNE BRANCHE ACTIVITé" => "EUR",
"EUROS CONCERNANT L'ACQUISITION UNE BRANC" => "EUR",
"E POUR" => "EUR",
"EUROS, FONDS ACQUIS SIS à LA RICHE (" => "EUR",
"EUROS, OPPOSITIONS PAR ACTE EXTRA JUDICI" => "EUR",
);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,313 @@
<?php
return array(
'1' => "Directeur",
'2' => "Directeur Contentieux",
'3' => "Directeur Recouvrement",
'4' => "Directeur Crédit",
'5' => "Directeur Recherche et Développement",
'6' => "Directeur de la Qualité",
'7' => "Directeur d'Exploitation",
'8' => "Directeur d'Agence/Etablissement",
'9' => "Directeur de la Production",
'10' => "Directeur Commercial",
'11' => "Directeur Financier (DAF)",
'12' => "Directeur Juridique",
'13' => "Directeur des Ressources Humaines DRH",
'14' => "Directeur Informatique",
'15' => "Directeur Administratif",
'16' => "Directeur des Achats",
'17' => "Directeur Marketing",
'18' => "Directeur de la communication",
'19' => "Directeur Technique",
'31' => "Responsable",
'32' => "Responsable Contentieux",
'33' => "Responsable Recouvrement",
'34' => "Responsable Crédit",
'35' => "Responsable Recherche et Développement",
'36' => "Responsable de la Qualité",
'37' => "Responsable d'Exploitation",
'38' => "Responsable d'Agence/Etablissement",
'39' => "Responsable de la Production",
'40' => "Responsable Commercial",
'41' => "Responsable Financier",
'42' => "Responsable Juridique",
'43' => "Responsable des Ressources Humaines RRH",
'44' => "Responsable Informatique",
'45' => "Responsable Administratif",
'46' => "Responsable des Achats",
'47' => "Responsable Marketing",
'48' => "Responsable de la communication",
'49' => "Responsable Technique",
'50' => "Expert comptable",
'55' => "Comptable",
'60' => "Chargé d'affaires",
'61' => "Conducteur de Travaux",
'62' => "Chef de projets",
'63' => "Consultant",
'79' => "Assistant(e) de direction",
'80' => "Avocat",
'81' => "Commissaire-priseur",
'85' => "Agent commercial",
'90' => "Représentant du personnel",
'91' => "Représentant du Comité d'Entreprise",
'92' => "Scrutateur",
'100' => "Administrateur",
'101' => "Administrateur délégué",
'102' => "administrateur de GIE",
'103' => "Administrateur et membre",
'104' => "Administrateur et membre du GIE",
'105' => "Administrateur et président",
'106' => "Administrateur membre engageant le GIE",
'107' => "Administrateur unique",
'108' => "Administrateur provisoire",
'109' => "Administrateur et Directeur",
'200' => "Associé",
'201' => "Associé commandité gérant",
'202' => "Associé commandité",
'203' => "Associé de société civile",
'205' => "Associé en nom",
'206' => "Associé exploitant",
'207' => "Associé non exploitant",
'208' => "Associé non gérant",
'209' => "Associé gérant",
'210' => "Associé Indéfiniment et solidairement responsable",
'211' => "Associé indéfiniment responsable",
'212' => "Associé en nue propriété (avec usufruitier)",
'213' => "Associé unique",
'214' => "Co-Associé",
'215' => "Associé Commanditaire",
'250' => "Propriétaire",
'300' => "Commissaire aux comptes titulaire",
'301' => "Co-commissaire aux comptes suppléant",
'302' => "Co-commissaire aux comptes titulaire",
'303' => "Commissaire aux comptes suppléant",
'304' => "Commissaire aux comptes",
'305' => "Co-commissaire aux comptes",
'400' => "Co-gérant",
'401' => "Co-gérant associé Indéfiniment responsable",
'402' => "Co-gérant associé",
'403' => "Co-gérant non associé",
'404' => "Co-gérant non statutaire",
'405' => "Co-gérant pouvant engager la société",
'406' => "Co-gérant statutaires",
'500' => "Conjoint Collaborateur",
'600' => "Contrôleur",
'601' => "Contrôleur de gestion et des comptes",
'602' => "Contrôleur de gestion du GIE",
'603' => "Contrôleur de gestion",
'604' => "Contrôleur des comptes titulaire",
'605' => "Contrôleur des comptes du GIE",
'606' => "Contrôleur des comptes et de gestion",
'607' => "Contrôleur des comptes et membre du GIE",
'608' => "Contrôleur des comptes",
'700' => "Directeur",
'701' => "Directeur général adjoint",
'702' => "Directeur général délégué et administrateur",
'703' => "Directeur général délégué et membre du comité de surveillance",
'704' => "Directeur général délégué",
'705' => "Directeur général et administrateur",
'706' => "Directeur général et membre du directoire",
'707' => "Directeur général unique du directoire",
'708' => "Directeur général unique",
'709' => "Directeur général",
'710' => "Directeur gérant",
'711' => "Directeur technique",
'712' => "Directeur des transports",
'713' => "Directeur général non administrateur",
'800' => "Dirigeant",
'801' => "Dirigeant à l'étranger et en France",
'802' => "Dirigeant à l'étranger",
'803' => "Dirigeant en France et à l'étranger",
'804' => "Dirigeant en France",
'805' => "Dirigeant",
'900' => "Gérant",
'901' => "Nouveau gérant",
'902' => "Gérant et directeur technique",
'903' => "Gérant associé en nom collectif",
'904' => "Gérant associé en nom",
'905' => "Gérant associé indéfiniment responsable",
'906' => "Gérant associé unique",
'907' => "Gérant associé",
'908' => "Gérant associé majoritaire",
'909' => "Gérant associé minoritaire",
'910' => "Gérant associé tenu indéfiniment et solidairement des dettes sociales",
'911' => "Gérant majoritaire",
'912' => "Gérant non associé",
'913' => "Gérant non statutaire",
'914' => "Gérant pouvant engager la société",
'915' => "Gérant salarié",
'916' => "Gérant statutaire associé",
'917' => "Gérant statutaire",
'918' => "Gérant et administrateur",
'919' => "Gérant technique",
'920' => "Ancien gérant",
'921' => "Gérante",
'923' => "Gérant co-associé",
'924' => "Gérant unique",
'925' => "Premier Gérant",
'926' => "Gérant de fait",
'1000' => "Fondé de pouvoir",
'1001' => "Personne ayant pouvoir d'engager à titre habituel la société vis-à-vis des tiers",
'1002' => "Personne ayant pouvoir d'engager la société en France",
'1003' => "Personne ayant pouvoir d'engager la société",
'1004' => "Personne ayant pouvoir de diriger et gérer",
'1005' => "Personne pouvant engager à titre habituel l'assujetti",
'1006' => "Personne",
'1050' => "Personne Physique",
'1070' => "Exploitant",
'1080' => "Fondateur",
'1081' => "Co-fondateur",
'1090' => "Gérant affaire personnelle",
'1100' => "Mandataire",
'1101' => "Mandataire ad hoc",
'1102' => "Mandataire général",
'1200' => "Membre",
'1201' => "Membre du GIE",
'1202' => "Membre du groupement",
'1203' => "Membre et administrateur",
'1204' => "Membre du comité de direction",
'1205' => "Membre du comité de surveillance",
'1206' => "Membre du conseil de direction",
'1207' => "Membre du conseil de surveillance",
'1208' => "Membre du directoire",
'1209' => "Membre du conseil exécutif",
'1210' => "Membre du conseil de gestion",
'1211' => "Membre du conseil d'administration",
'1230' => "Membre du Comité d'Orientation",
'1232' => "Membre du conseil de famille",
'1300' => "Président",
'1301' => "Président directeur général",
'1302' => "Président du conseil d'administration assumant la direction général",
'1303' => "Président du conseil d'administration et administrateur",
'1304' => "Président du conseil d'administration et directeur général",
'1305' => "Président du conseil d'administration, directeur général et administrateur",
'1306' => "Président du conseil d'administration",
'1307' => "Président du conseil de surveillance",
'1308' => "Président du directoire",
'1309' => "Président du GIE",
'1310' => "Président et membre du conseil de surveillance",
'1311' => "Président et membre du directoire",
'1312' => "Président et président du comité de direction",
'1313' => "Président et président du comité de surveillance",
'1314' => "Président et administrateur",
'1315' => "Président et associé",
'1316' => "Président et associé unique",
'1317' => "Président directeur général et administrateur",
'1318' => "Président non associé",
'1320' => "Président d'honneur",
'1330' => "Président du Comité d'Orientation",
'1331' => "Président du comité de direction",
'1332' => "Président du Conseil de famille",
'1400' => "Représentant",
'1401' => "Représentant de société étrangère",
'1402' => "Représentant tant en France qu'à l'étranger",
'1403' => "Représentant à l'étranger",
'1404' => "Représentant légal en France",
'1405' => "Représentant légal",
'1406' => "Représentant permanent",
'1500' => "Responsable",
'1501' => "Co-responsable en France",
'1502' => "Responsable pour la France",
'1503' => "Responsable tant en France qu'à l'étranger",
'1504' => "Responsable technique",
'1505' => "Responsable à l'étranger",
'1506' => "Responsable de la société en France",
'1507' => "Responsable en France",
'1508' => "Responsable légal en France",
'1600' => "Secrétaire",
'1601' => "Vice-secrétaire",
'1602' => "Secrétaire du conseil d'administration",
'1603' => "Secrétaire du conseil de surveillance",
'1610' => "Secrétaire général",
'1650' => "Gouverneur",
'1651' => "Sous Gouverneur",
'1700' => "Trésorier",
'1701' => "Vice-trésorier",
'1800' => "Vice-président",
'1801' => "Vice-président du conseil d'administration",
'1802' => "vice-président du conseil de surveillance",
'1803' => "Vice-président et administrateur privé",
'1804' => "Vice-président et administrateur",
'1805' => "Vice-président et membre du conseil de surveillance",
'1806' => "Vice-président du directoire",
'1900' => "Liquidateur (amiable)",
'1950' => "Greffier",
'2000' => "Maire",
'2001' => "Premier Adjoint",
'2002' => "Adjoint 3eme Age/Handicapes",
'2003' => "Adjoint Affaires Culturelles",
'2004' => "Adjoint Affaires Economiques",
'2005' => "Adjoint Affaires Générales",
'2006' => "Adjoint Affaires Sociales",
'2007' => "Adjoint Agriculture",
'2008' => "Adjoint Commerce/Artisanat",
'2009' => "Adjoint Communication",
'2010' => "Adjoint Emploi/Insertion",
'2011' => "Adjoint Environnement",
'2012' => "Adjoint Finances/Budget",
'2013' => "Adjoint Intercommunalité",
'2014' => "Adjoint Jeunesse",
'2015' => "Adjoint Logement",
'2016' => "Adjoint Patrimoine",
'2017' => "Adjoint Personnel",
'2018' => "Adjoint Petite Enfance",
'2019' => "Adjoint Politique de la Ville/Logement",
'2020' => "Adjoint Relations Internationales",
'2021' => "Adjoint Santé/Prévention",
'2022' => "Adjoint ServicesTechniques",
'2023' => "Adjoint Sport",
'2024' => "Adjoint Spécial",
'2025' => "Adjoint Sécurité/Prévention",
'2026' => "Adjoint TIC",
'2027' => "Adjoint Tourisme",
'2028' => "Adjoint Transports/Mobilité Urbaine",
'2029' => "Adjoint Urbanisme",
'2030' => "Adjoint Vie Associative",
'2031' => "Adjoint Vie des Quartiers",
'2032' => "Adjoint Voirie",
'2050' => "Secrétariat du Maire",
'2051' => "Premier conseiller",
'2052' => "Conseiller",
'2053' => "Conseiller Communautaire Délégué",
'2054' => "Conseiller Municipal",
'2055' => "Conseiller Municipal Délégué",
'2056' => "Directeur de Cabinet",
'2060' => "Dir/Resp Affaires Juridiques",
'2061' => "Dir/Resp Emploi/Insertion/Urbanisme",
'2062' => "Dir/Resp Petite Enfance/Environnement",
'2063' => "Dir/Resp Ressources Humaines",
'2064' => "Dir/Resp Services Financiers",
'2065' => "Dir/Resp Services Techniques/Transports",
'2066' => "Dir/Resp Technique",
'2067' => "Dir/Resp Urbanisme/Habitat/Voirie",
'2068' => "Directeur 3e Age/Handicapés/Cadre Vie/Esp. Ver",
'2069' => "Directeur Achats",
'2070' => "Directeur Affaires Culturelles/Com. Interne",
'2071' => "Directeur Affaires Economiques",
'2072' => "Directeur Affaires Générales",
'2073' => "Directeur Affaires Sociales/Tourisme",
'2074' => "Directeur Architecture",
'2075' => "Directeur Bibliothèque Municipale",
'2076' => "Directeur Communication",
'2077' => "Directeur Eaux et Services Concédés",
'2078' => "Directeur Enseignement/Affaires Scolaires",
'2079' => "Directeur Espaces Verts",
'2080' => "Directeur Grands Projets",
'2081' => "Directeur Général Adjoint des Services",
'2082' => "Directeur Général des Services",
'2083' => "Directeur Général et Administrateur",
'2084' => "Directeur Informatique",
'2085' => "Directeur Jeunesse/Enseignement",
'2086' => "Directeur Nettoiement/Ordures Ménagères",
'2087' => "Directeur Politique de la Ville",
'2088' => "Directeur Prévention/Sécurité",
'2089' => "Directeur Prévention/Sécurité/Environnement",
'2090' => "Directeur Rel. Internationales",
'2091' => "Directeur Rel. Internationales/Action Culturel",
'2092' => "Directeur Santé",
'2093' => "Directeur Sports/Emploi/Recrutement",
'2094' => "Directeur Tourisme",
'2095' => "Directeur Transports/Mobilité Urbaine",
'2096' => "Directeur Voirie",
'2100' => "Président de section",
);

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -0,0 +1,42 @@
<?php
class 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

File diff suppressed because it is too large Load Diff

View File

@ -1,302 +0,0 @@
<?php
class ICotation {
var $reTrtAuto;
var $tabBilan;
var $tabNotation;
var $tabLibActivite;
var $tabActivite;
var $tabR;
function ICotation ($tabBilan, $retraitementAutomatique=true) {
$this->reTrtAuto = $retraitementAutomatique;
$this->tabBilan = $tabBilan;
include ('paramCotation.inc');
}
function calculProvisionsPourRisque () {
if ( !$this->reTrtAuto )
return $this->tabBilan['DP'] + $this->tabBilan['DQ'] - $this->tabBilan['X04'];
else
return (1/2*$this->tabBilan['DP'])+(1/2*$this->tabBilan['DQ']);
}
function calculEBE () {
return $this->tabBilan['FC'] + $this->tabBilan['FF'] + $this->tabBilan['FI'] + $this->tabBilan['FOB']
+ $this->tabBilan['FM'] + $this->tabBilan['FN'] - $this->tabBilan['FC'] + $this->tabBilan['FC']
- ( $this->tabBilan['FS'] + $this->tabBilan['FT'] + $this->tabBilan['FU'] + $this->tabBilan['FV'] )
- ( $this->tabBilan['FW'] - $this->tabBilan['HP'] - $this->tabBilan['HQ'] - $this->tabBilan['HP2'] - $this->tabBilan['HQ2'] )
- $this->tabBilan['FX'] - ( $this->tabBilan['FY'] + $this->tabBilan['FZ'] ) + ( $this->tabBilan['FO'] - $this->tabBilan['FOB'] ) ;
}
function calculChiffreAffaires () {
return $this->tabBilan['FC']
+ $this->tabBilan['FF']
+ $this->tabBilan['FI']
+ $this->tabBilan['FO']
- $this->tabBilan['FOB'] ;
}
function calculMargeCommerciale () {
return $this->tabBilan['FC'] - ( $this->tabBilan['FS'] + $this->tabBilan['FT'] ) ;
}
function calculProduction () {
return $this->tabBilan['FF'] + $this->tabBilan['FI'] + $this->tabBilan['FM'] + $this->tabBilan['FN'] ;
}
function calculValeurAjoutee () {
return $this->calculMargeCommerciale() + $this->calculProduction()
- ( $this->tabBilan['FU'] + $this->tabBilan['FV'] + $this->tabBilan['FW'] ) ;
}
function calculEBEnonCASA () {
return $this->calculValeurAjoutee() + $this->tabBilan['FO'] - $this->tabBilan['FX'] - ( $this->tabBilan['FY'] + $this->tabBilan['FZ'] ) ;
}
function calculFondsPropresNetsCorriges() {
return $this->tabBilan['DA'] + $this->tabBilan['DC'] + $this->tabBilan['DB'] + $this->tabBilan['DD'] + $this->tabBilan['DE'] + $this->tabBilan['DF'] + $this->tabBilan['DG'] + $this->tabBilan['DK'] - (1/3*$this->tabBilan['X01'])
+ $this->tabBilan['DH'] + $this->tabBilan['DI'] + $this->tabBilan['DJ']
- $this->tabBilan['CL'] - $this->tabBilan['AB'] + $this->tabBilan['AC'] - $this->tabBilan['AA'] - $this->tabBilan['CB'] + $this->tabBilan['CC'] - $this->tabBilan['X02'] - $this->tabBilan['CM'] - $this->tabBilan['CN']
+ $this->tabBilan['DM'] + $this->tabBilan['DN']
- $this->tabBilan['X03'] + $this->calculProvisionsPourRisque() - $this->tabBilan['RAD'] ;
}
function calculDettesFinancieresBancairesBrutes () {
return $this->tabBilan['DS'] - $this->tabBilan['CM1'] + $this->tabBilan['EI'] - $this->tabBilan['CM2']
+ $this->tabBilan['DT'] - $this->tabBilan['CM3'] + $this->tabBilan['DU'] - $this->tabBilan['EH']
+ (3/4*$this->tabBilan['YQ']) + (2/3*$this->tabBilan['YR'])
+ (3/4*$this->tabBilan['YQ2']) + (2/3*$this->tabBilan['YR2'])
+ $this->tabBilan['DV'] - $this->tabBilan['EI'] - $this->tabBilan['DVI1'] - $this->tabBilan['CM2']
+ $this->tabBilan['YS'] + $this->tabBilan['X08']
+ $this->tabBilan['EH'] + $this->tabBilan['VI1'] - ( $this->tabBilan['X20'] + $this->tabBilan['X21'] ) ;
}
function noteCapitalisation () {
if ( !$this->reTrtAuto ) {
$autresDettesExploit = $this->tabBilan['EA'] - $this->tabBilan['EAVI1'] - $this->tabBilan['EAB'] + $this->tabBilan['EB'] + $this->tabBilan['X01'] + $this->tabBilan['X04'] ;
$dettesFiscalesSociales = $this->tabBilan['DY'] - $this->tabBilan['DYA'];
} else {
$autresDettesExploit = $this->tabBilan['EA'] - $this->tabBilan['EAVI1'] - $this->tabBilan['EAB'] + $this->tabBilan['EB'] + $this->tabBilan['X01'] + 2/3*((1/2*$this->tabBilan['DP'])+(1/2*$this->tabBilan['DQ']));
$dettesFiscalesSociales = $this->tabBilan['DY'] + 1/3*((1/2*$this->tabBilan['DP'])+(1/2*$this->tabBilan['DQ'])) - $this->tabBilan['DYA'] ;
}
$numerateur = $this->calculFondsPropresNetsCorriges();
$denominateur = $numerateur + $this->tabBilan['DS'] - $this->tabBilan['CM1'] + $this->tabBilan['EI'] - $this->tabBilan['CM2'] + $this->tabBilan['DU'] - $this->tabBilan['EH']
+ $this->tabBilan['DV'] - $this->tabBilan['DVI1'] - $this->tabBilan['EI'] + $this->tabBilan['DT'] - $this->tabBilan['CM3'] + 3/4*$this->tabBilan['YQ'] + 2/3*$this->tabBilan['YR']
+ 3/4*$this->tabBilan['YQ2'] + 2/3*$this->tabBilan['YR2']
+ $this->tabBilan['DW'] + $this->tabBilan['DX'] + $dettesFiscalesSociales
+ $autresDettesExploit + $this->tabBilan['DZ'] + $this->tabBilan['DIA'] + $this->tabBilan['ED'] + $this->tabBilan['EAB'] + $this->tabBilan['DYA']
+ $this->tabBilan['EH'] + $this->tabBilan['YS'] + $this->tabBilan['VI1'];
// + $this->tabBilan['X08']
// - $this->tabBilan['X20'] + $this->tabBilan['YS'] - $this->tabBilan['X08'];
if ($denominateur==0)
return array('NUMERATEUR'=>$numerateur*100,'DENOMINATEUR'=>$denominateur,'NOTE'=>0);
return array('NUMERATEUR'=>$numerateur* 100,'DENOMINATEUR'=>$denominateur,'NOTE'=>($numerateur* 100)/$denominateur);
}
function noteLevierEndettement () {
$numerateur = $this->calculDettesFinancieresBancairesBrutes();
$denominateur = $this->calculFondsPropresNetsCorriges();
if ($denominateur==0)
return array('NUMERATEUR'=>$numerateur,'DENOMINATEUR'=>$denominateur,'NOTE'=>0);
return array('NUMERATEUR'=>$numerateur,'DENOMINATEUR'=>$denominateur,'NOTE'=>$numerateur/$denominateur);
}
function noteCapaciteRemboursement () {
$numerateur = $this->calculDettesFinancieresBancairesBrutes();
$denominateur = $this->calculEBE();
if ($denominateur==0)
return array('NUMERATEUR'=>$numerateur,'DENOMINATEUR'=>$denominateur,'NOTE'=>0);
return array('NUMERATEUR'=>$numerateur,'DENOMINATEUR'=>$denominateur,'NOTE'=>$numerateur/$denominateur);
}
function noteCouvChargesFi () {
$numerateur = $this->calculEBE();
$denominateur = $this->tabBilan['GR'] + ( 1/4*$this->tabBilan['HP'] + 1/3*$this->tabBilan['HQ'] )
+ ( 1/4*$this->tabBilan['HP2'] + 1/3*$this->tabBilan['HQ2'] )
+ $this->tabBilan['GS']
+ $this->tabBilan['GT']
- $this->tabBilan['GJ']
- $this->tabBilan['GK']
- $this->tabBilan['GL']
- $this->tabBilan['GN']
- $this->tabBilan['GO']
- $this->tabBilan['GH']
+ $this->tabBilan['GI'] ;
if ($denominateur==0)
return array('NUMERATEUR'=>$numerateur,'DENOMINATEUR'=>$denominateur,'NOTE'=>0);
return array('NUMERATEUR'=>$numerateur,'DENOMINATEUR'=>$denominateur,'NOTE'=>$numerateur/$denominateur);
}
function noteTresorerie () {
$numerateur = $this->tabBilan['CD'] - $this->tabBilan['CE'] + $this->tabBilan['CF'] - $this->tabBilan['CG']
- $this->tabBilan['EH'] - ( $this->tabBilan['YS'] + $this->tabBilan['X08'] ) ;
$denominateur = $this->calculChiffreAffaires();
if ($denominateur==0)
return array('NUMERATEUR'=>$numerateur*360,'DENOMINATEUR'=>$denominateur,'NOTE'=>0);
return array('NUMERATEUR'=>$numerateur*360,'DENOMINATEUR'=>$denominateur,'NOTE'=>$numerateur*360/$denominateur);
}
function noteMargeExploitation () {
$numerateur = $this->calculEBE();
$denominateur = $this->calculChiffreAffaires();
if ($denominateur==0)
return array('NUMERATEUR'=>$numerateur*100,'DENOMINATEUR'=>$denominateur,'NOTE'=>0);
return array('NUMERATEUR'=>$numerateur*100,'DENOMINATEUR'=>$denominateur,'NOTE'=>$numerateur*100/$denominateur);
}
function getSecteurActivite($naf) {
$nbSecteurs=count($this->tabActivite);
while (strlen($naf) > 1)
{
for ($i=1; $i<$nbSecteurs; $i++)
{
for ($j=0; isset($this->tabActivite[$i][$j]); $j++)
{
if ($this->tabActivite[$i][$j]==$naf)
// echo 'NAF '.$naf.' TROUVÉ !<br>';
return $i;
}
}
// echo 'NAF '.$naf.' non trouvé !<br>';
$naf=substr($naf,0,strlen($naf)-1);
}
return 17; // Secteur d'activité par défaut si non trouvé
}
function getBorne($note, $borne, $secteur) {
// print_array($this->tabR[$borne][$secteur],0);
for ($j=0; $j<10; $j++)
{
$tabMinMax=explode(':',$this->tabR[$borne][$secteur][$j]);
if ($tabMinMax[0]!='') $min=$tabMinMax[0];
else $min=-1E99;
if ($tabMinMax[1]!='') $max=$tabMinMax[1];
else $max=1E99;
if ( ( $note>$min && $note<=$max ) )
{
// echo "TROUVE ++++ $note > ".$tabMinMax[0]." et $note <= ". $tabMinMax[1].'<br/>';
if ($j==0) return 3;
elseif ($j<4) return $j+4;
else return $j*2+1;
}
// echo "NOK $note < ".$tabMinMax[0]." ou $note > ". $tabMinMax[1].'<br/>';
}
return 3; // On retourne la plus basse note par défaut
}
function getNoteBorne($note, $borne, $secteur, $numerateur, $denominateur) {
$noteBorneBrute=$this->getBorne($note, $borne, $secteur);
switch($borne)
{
case 1:
if ($numerateur<0) return 3;
else return $noteBorneBrute;
break;
case 2:
if ($numerateur==0) return 19;
else return $noteBorneBrute;
break;
case 3:
if ($numerateur==0 && $denominateur>0) return 19;
elseif ($denominateur<0) return 3;
else return $noteBorneBrute;
break;
case 4:
if ($note<0) return 19;
else return $noteBorneBrute;
break;
default:
return $noteBorneBrute;
break;
}
}
function getNotationFin ($coteMoy) {
if( $coteMoy > 18.5 )
return 'A';
elseif( $coteMoy > 16 )
return 'B+';
elseif( $coteMoy > 14 )
return 'B';
elseif( $coteMoy > 12.5 )
return 'C+';
elseif( $coteMoy > 11 )
return 'C';
elseif( $coteMoy > 10 )
return 'C-';
elseif( $coteMoy > 9 )
return 'D+';
elseif( $coteMoy > 8 )
return 'D';
elseif( $coteMoy > 7 )
return 'D-';
elseif( $coteMoy > 6 )
return 'E+';
elseif( $coteMoy > 4.5 )
return 'E';
elseif( $coteMoy > 3 )
return 'E-';
else
return 'E--';
}
function getInfosNotation ($notation, $csv=false) {
if ($csv) {
$str =$this->tabNotation[$notation][1].';'.
$this->tabNotation[$notation][2].';'.
$this->tabNotation[$notation][3].';'.
$this->tabNotation[$notation][4].';';
return $str;
} else {
$str ='Notation : '. $this->tabNotation[$notation][0]."\r\n";
$str.='Equivalence BDF : '. $this->tabNotation[$notation][1]."\r\n";
$str.='Grades Moody\'s : '. $this->tabNotation[$notation][2]."\r\n";
$str.='Grades S&P : '. $this->tabNotation[$notation][3]."\r\n";
$str.='Probabilité de défaillance : '. $this->tabNotation[$notation][4]." %\r\n";
return $str;
}
}
}

View File

@ -1,47 +0,0 @@
<?
function isinPoidsLettre($lettre) {
$ascii=ord($lettre);
if ($ascii>64 && $ascii<91 )
/* En ASCII : A=65 et Z=90
En ISIN... A=10 et Z=35 */
return ($ascii-55);
return false;
}
/** Test si un code ISIN donné est valable à partir de son algo de contrôle.
** @param string $isin Code ISIN à vérifier
** @return bool
**/
function isValidIsin($isin) {
$pays=substr($isin, 0,2);
$nsin=''.substr($isin, 2,9);
$clef=substr($isin,11,1)*1;
$calcul=''.isinPoidsLettre($pays[0]).isinPoidsLettre($pays[1]).$nsin;
//echo "Etape 1 = $calcul".EOL;
$sommeImpair=$sommePair=0;
for ($impair=0; $impair<12; $impair=$impair+2) {
$strImpair=''.$calcul[$impair]*2;
if (isset($strImpair[1])) $reste=$strImpair[1]*1;
else $reste=0;
$sommeImpair+=$strImpair[0]*1+$reste;
}
for ($pair=1; $pair<12; $pair=$pair+2)
$sommePair+=$calcul[$pair]*1;
$totalcalcul=$sommeImpair+$sommePair;
//echo "Etape 3 = $sommeImpair + $sommePair = $totalcalcul".EOL;
$dizSuperieur=ceil($totalcalcul/10)*10;
$delta=$dizSuperieur-$totalcalcul;
//echo "Etape 4 = $dizSuperieur - $totalcalcul = $delta".EOL;
if ($delta==$clef) return true;
return false;
}
?>

View File

@ -1,339 +0,0 @@
<?
/** Parse une page Html et retourne son contenu dans un tableau :
** "code" => Code réponse Serveur
** "header" => Headers du serveur
** "body" => Page HTML
**/
function parse_response($this_response) {
// Split response into header and body sections
list($response_headers, $response_body) = explode("\r\n\r\n", $this_response, 2);
$response_header_lines = explode("\r\n", $response_headers);
// First line of headers is the HTTP response code
$http_response_line = array_shift($response_header_lines);
if(preg_match('@^HTTP/[0-9]\.[0-9] ([0-9]{3})@',$http_response_line, $matches)) { $response_code = $matches[1]; }
// put the rest of the headers in an array
$response_header_array = array();
$nbRMID=0;
foreach($response_header_lines as $header_line)
{
list($header,$value) = explode(': ', $header_line, 2);
if ($header=='Set-cookie' && substr($value,0,5)=='RMID=' && $nbRMID<5)//{
$nbRMID++;
// echo ("Je gicle le RMID n°$nbRMID\r\n");}
else
$response_header_array[$header] .= $value."\n";
}
return array('code' => $response_code, 'header' => $response_header_array, 'body' => $response_body);
}
/** Récupère une page HTML en fonction des paramètres :
** $url Url distante de la page à récupérer
** $strCookies Chaine de caractère contenant les cookies
** $postData Tableau des données à passer en POST uniquement
** $referer Referer à indiquer lors de l'appel de la page
** $debug Activer le débogage (True/False)
**
** ... et retourne son contenu dans un tableau :
** "code" => Code réponse Serveur
** "header" => Headers du serveur
** "body" => Page HTML
**/
function getUrl($url, $strCookies='', $postData='', $referer='', $debug=false, $host='') {
$ch = curl_init();
if ($host=='')
$this_header = array('Host: '. HOST_INSEE);
else
$this_header = array('Host: '. $host);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
//curl_setopt($ch, CURLOPT_PROXY, '10.142.10.254:80');
//curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'username:password'); // Pas nécessaire en authentification NT
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//curl_setopt($ch, CURLOPT_MAXREDIRS, 1);
$user_agent = 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)';
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_REFERER, $referer);
// Add each cookie that has been returned in the response
// If cookies need to be added/deleted or value changed, then add code here
if ($strCookies!='') {
//die('"'.$strCookies.'"');
//echo $strCookies."\r\n";
$cookies = explode("\n", $strCookies);
// Create the basic header
foreach($cookies as $this_cookie) {
if (trim($this_cookie)<>'')
array_push($this_header, 'Cookie: '.$this_cookie);
}
}
if ($postData!='') {
if (is_array($postData))
$post_data=$postData;
$o="";
foreach ($post_data as $k=>$v)
{
$o.= "$k=".utf8_encode($v)."&";
}
$post_data=substr($o,0,-1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
//if in_array('',$this_header
/*array_push($this_header, "Content-type: application/x-www-form-urlencoded");
array_push($this_header, "Content-Length: 44");*/
}
curl_setopt($ch, CURLOPT_HTTPHEADER, $this_header);
//print_r($this_header);
$page=curl_exec($ch);
$response = parse_response($page);
if ($debug){
$url2=str_replace('http://', '', $url);
$url2=str_replace('/', '_', $url2);
$url2=str_replace('?', '(param)', $url2);
$url2=str_replace('&', '(et)', $url2);
$fp=fopen('/var/www/_includes/partenaires/insee/'. date('Ymd-His') .'-'. microtime_float(true) .'-'. $url2 . '.html', 'a');
fwrite($fp, $url."\r\n");
fwrite($fp, $page);
fclose($fp);
//echo strip_tags(html_entity_decode($response['body']), '<td>');
}
//print_r(curl_getinfo($ch));
curl_close($ch);
return $response;
}
function rechercheTelephone($raisonSociale='', $adresse='', $localite='', $departement='', $activite='') {
$response1=getUrl(SITE_PJ.'pj.cgi?', '', '', '', true, HOST_PJ);
//print_r($response1['header']['Set-cookie']);
$pageHtml=$response1['body'];
$SESSION_ID=getTextInHtml($pageHtml, '<input type="hidden" name="SESSION_ID" value="', ' value="', '">');
$VID=getTextInHtml($pageHtml, '<input type="hidden" name="VID" value="', ' value="', '">');
$e_cookie=getTextInHtml($pageHtml, '<noscript><img ALT="" src="http://e.pagesjaunes.fr/m/web/', 'src="', '" BORDER=0 width=1 height=1></noscript>');
$response=getUrl(SITE_PJ.'files/look2002/FR/commun/pji.css', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl(SITE_PJ.'files/look2002/FR/commun/pji_PJ.css', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl(SITE_PJ.'files/look2002/FR/commun/script_open.js', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl(SITE_PJ.'files/look2002/FR/commun/alerte.js', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl(SITE_PJ.'files/look2002/FR/commun/script_VED.js', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl(SITE_PJ.'sitecrm/popup.js', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl('http://sbx.pagesjaunes.fr/RealMedia/ads/Creatives/OasDefault/AUTOPROMO_PJ_banniere_activite/hotel_pj.swf?clickTAG=http://sbx.pagesjaunes.fr/RealMedia/ads/click_lx.ads/www.pagesjaunes.fr/GENERAL/GENERAL/PJ/1238513556/Top/OasDefault/AUTOPROMO_PJ_banniere_activite/hotel_pj.html/61633130323433353434346339306330?', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl(SITE_PJ.'files/look2002/FR/commun/script_VED.js', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl('http://sbx.pagesjaunes.fr/RealMedia/ads/Creatives/OasDefault/EDITO_HOME_RIGHT/anim_HP_v2-04-2006.swf', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl('http://sbx.pagesjaunes.fr/RealMedia/ads/Creatives/OasDefault/EDITO_HOME_RIGHT/visuels_webcam.swf', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl('http://sbx.pagesjaunes.fr/RealMedia/ads/Creatives/OasDefault/EDITO_HOME_RIGHT/visuels_photo.swf', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl('http://sbx.pagesjaunes.fr/RealMedia/ads/Creatives/OasDefault/EDITO_HOME_RIGHT/visuels_trafic.swf', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl('http://sbx.pagesjaunes.fr/RealMedia/ads/Creatives/OasDefault/Edito_webcams/new_04-2006.jpg', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response=getUrl('http://e.pagesjaunes.fr/js/m.js', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ);
$response2=getUrl($e_cookie, $response1['header']['Set-cookie'], '', SITE_PJ, true, HOST_PJ);
$cookies=$response1['header']['Set-cookie'] . $response2['header']['Set-Cookie'];
$input_image=$VALID_ARR=$NUM_RUE=$NEW_DEPARTEMENT=$OBJ_GEO='';
// Requête d'interrogation
$postData=array(
'ACTIVITE_VALIDATED_ASCII'=>'',
'ID_THEME_SDE'=>'',
'LISTE_RUB_AVEC_THEME'=>'',
'input_image'=>$input_image,
'FRM_ACTIVITE'=>$activite,
'FRM_NOM'=>$raisonSociale,
'FRM_ADRESSE'=>$adresse,
'FRM_LOCALITE'=>$localite,
'FRM_DEPARTEMENT'=>$departement,
'JF_INSCRIPTIONS_REQ.x'=>'25',
'JF_INSCRIPTIONS_REQ.y'=>'4',
'faire'=>'decode_input_image',
'DEFAULT_ACTION'=>'jf_inscriptions_req',
'SESSION_ID'=>$SESSION_ID,
'VID'=>$VID,
'INFO_VILLE'=>'non',
'CODE_LOC_INFO_VILLE'=>'00000000',
'IV_ACTIVATION'=>'oui',
'lang'=>'FR',
'pays'=>'FR',
'srv'=>'PJ',
'TYPE_RECHERCHE'=>'ZZZ');
//print_r($postData);//die();
sleep(1);
$response=getUrl(SITE_PJ, $cookies, $postData, SITE_PJ, true, HOST_PJ);
$pageHtml=$response['body'];
if (count($tabNT=getTabListeNonTrouve($pageHtml))>0)
{
// Pas de réponses pour ces critères
// Il faut élargir la recherche !
$tabNTk=array_keys($tabNT);
$input_image=$tabNT[0];
$DEFAULT_ACTION='inscriptions_req';
$NEW_DEPARTEMENT=getTextInHtml($pageHtml, '<input type="hidden" name="NEW_DEPARTEMENT" value="', 'value="', '">');
$OBJ_GEO=getTextInHtml($pageHtml, '<input type=hidden name=OBJ_GEO value="', 'value="', '">');
}
elseif (count($tabGU=getTabListeGU($pageHtml))>0)
{
// Plusieurs Adresses possibles pour l'adresse donnée
// print_r($tabGU);
$input_image=getBonneAdresse($adresse, $tabGU);
$DEFAULT_ACTION='jf_inscriptions_req';
$VALID_ARR=getTextInHtml($pageHtml, '<input type=hidden name=VALID_ARR value="', 'value="', '">');
$NUM_RUE=getTextInHtml($pageHtml, '<input type=hidden name=NUM_RUE value="', 'value="', '">');
}
if ($input_image<>'') {
$CODE_LOC_INFO_VILLE=getTextInHtml($pageHtml, '<input type="hidden" name="CODE_LOC_INFO_VILLE" value="', 'value="', '">');
$postData=array(
'GEO_DEP'=>'', // New
'faire'=>'decode_input_image',
'DEFAULT_ACTION'=>$DEFAULT_ACTION,
'input_image'=>$input_image,// diff
'SESSION_ID'=>$SESSION_ID,
'VID'=>$VID,
'INFO_VILLE'=>'oui', // non dans la recherche préc.
'CODE_LOC_INFO_VILLE'=>$CODE_LOC_INFO_VILLE, // diff
'IV_ACTIVATION'=>'oui',
'lang'=>'FR',
'pays'=>'FR',
'srv'=>'PJ',
'TYPE_RECHERCHE'=>'CLOC', // ZZZ
'SAV_ADRESSE'=>$adresse, //
'SAV_LOCALITE'=>$localite, // New
'SAV_DEPARTEMENT'=>$departement, //
'FRM_NOM'=>$raisonSociale,
'FRM_ADRESSE'=>$adresse,
'FRM_LOCALITE'=>$localite,
'FRM_DEPARTEMENT'=>$departement,
'FRM_TYPE_PUB'=>'TOUS',
'RP_FORM'=>'',
'VALID_LOC'=>$CODE_LOC_INFO_VILLE,
'VALID_ARR'=>$VALID_ARR,
'NUM_RUE'=>$NUM_RUE,
'test_flash'=>'',
'ESPLUS'=>'',
'NEW_DEPARTEMENT'=>$NEW_DEPARTEMENT,
'OBJ_GEO'=>$OBJ_GEO,
);
print_r($postData);
sleep(1);
$response=getUrl(SITE_PJ, $cookies, $postData, SITE_PJ, true, HOST_PJ);
$pageHtml=$response['body'];
}
$nbReponses=trim(getTextInHtml($pageHtml, '<tr><td align="left" class=txtrequetetotal valign=middle nowrap><b>', '<b>', 'r&eacute;ponse(s)</b></td>'));
$tabRep=getTabResponses($pageHtml);
if (count($tabRep)==$nbReponses)
return $tabRep;
else
return false;
}
function getTabResponses($pageHtml) {
$tabRepTmp=explode ('class=fdinscr', $pageHtml);
$tabRep=array();
foreach($tabRepTmp as $key => $value)
{
if ($key>0) {
$raisonSociale=getTextInHtml($value, 'class=fdrsinscr', '<b>', '</b>');
$ligneAdresse=html_entity_decode(getTextInHtml($value, '<td align="left" class=txtinscr ><b>', '<b>', '|'));
$tabligneAdresse=explode('<br>', $ligneAdresse);
$ligneAdresse1=strip_tags($tabligneAdresse[0]);
$ligneAdresse2=strip_tags($tabligneAdresse[1]);
$dispoPlan =(bool)(strpos($value, '<b>Plan</b>'));
$dispoIti =(bool)(strpos($value, '<b>Itin&eacute;raire</b>'));
$dispoPhoto =(bool)(strpos($value, '<b>Photo</b>'));
$dispoWeb =(bool)(strpos($value, '<b>Site</b></a>&nbsp;&nbsp;&nbsp;'));
$lienWeb=getTextInHtml($value, '<a target="_blank" href="http://www.pagesjaunes.fr/CGI/MOD?', 'href="', '" ');
$page=getUrl($lienWeb, '', '', '', true);
$lienWeb=$page['header']['Location'];
/*echo "Enreg n°$key : RS='$raisonSociale'\r\n";
echo "Enreg n°$key : Adresse1='$ligneAdresse1'\r\n";
echo "Enreg n°$key : Adresse2='$ligneAdresse2'\r\n";
echo "Enreg n°$key : Plan ?='$dispoPlan'\r\n";
echo "Enreg n°$key : Itineraire ?='$dispoIti'\r\n";
echo "Enreg n°$key : Photo ?='$dispoPhoto'\r\n";
echo "Enreg n°$key : Web ?='$dispoWeb'\r\n";
echo "Enreg n°$key : Site WEB='$lienWeb'\r\n\r\n";*/
array_push($tabRep, array( 'raisonSociale' =>$raisonSociale,
'AdresseLigne1' =>$ligneAdresse1,
'AdresseLigne2' =>$ligneAdresse2,
'Dispo_Plan' =>$dispoPlan,
'Dispo_Iti' =>$dispoIti,
'Dispo_Photo' =>$dispoPhoto,
'Dispo_Web' =>$dispoWeb,
'LienWeb' =>$lienWeb));
}
}
return $tabRep;
}
function getBonneAdresse($adresse, $tabGU) {
// tableau de mots à vérifier
$words = array_keys($tabGU);
// aucune distance de trouvée pour le moment
$shortest = -1;
// boucle sur les des mots pour trouver le plus près
foreach ($words as $word) {
// calcule la distance avec le mot mis en entrée,
// et le mot courant
$lev = levenshtein($adresse, $word);
// cherche une correspondance exacte
if ($lev == 0) {
// le mot le plus près est celui-ci (correspondance exacte)
$closest = $word;
$shortest = 0;
// on sort de la boucle ; nous avons trouvé une correspondance exacte
break;
}
// Si la distance est plus petite que la prochaine distance trouvée
// OU, si le prochain mot le plus près n'a pas encore été trouvé
if ($lev <= $shortest || $shortest < 0) {
// définission du mot le plus près ainsi que la distance
$closest = $word;
$shortest = $lev;
}
}
/*
echo "Mot entré : $adresse\n";
if ($shortest == 0) {
echo "Correspondance exacte trouvée : $closest\n";
} else {
echo "Vous voulez dire : $closest ?\n";
}*/
return $tabGU[$closest];
}
?>

View File

@ -1,548 +0,0 @@
<?
class Insee {
}
function getDataEtablissement($pageHtml)
{
global $libelleErreur;
$responseSiege=$pageHtml;
$tabRet=array();
// On recherche si on est sur un établissement siège ou secondaire
$pos=strpos($pageHtml, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche Etablissement</B>');
if ($pos>0)
$tabRet['typeEtablissement']='secondaire';
$pos=strpos($pageHtml, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche siège</B>');
if ($pos>0)
$tabRet['typeEtablissement']='siège';
// Recherche Dernière MAJ / Activité
$pos=strpos($responseSiege, '<font face="Arial" size="2">(dernière mise à jour :');
if ($pos>0) {
$tabRet['dateMAJ']=substr($responseSiege, $pos+51, 10);
$tabRet['dateAbsActivite']='';
$tabRet['active']='O';
} else {
$tabRet['active']='N';
$tabRet['dateMAJ']='';
$pos=strpos($responseSiege, '<font face="Arial" size="2">Absence&nbsp;d\'activité notée&nbsp;le&nbsp;:&nbsp;');
if ($pos>0) $tabRet['dateAbsActivite']=substr($responseSiege, $pos+78, 10);
else {
$pos=strpos($responseSiege, '<font face="Arial" size="2">Absence&nbsp;d\'activité');
if ($pos>0) $tabRet['dateAbsActivite']='';
}
}
$pos=strpos($responseSiege, ' size="-1"> <B>n°&nbsp;SIRET&nbsp;:</B></FONT></td><td valign="top"><font face="Arial" size="-1">');
$tabRet['siret']=str_replace(' ', '', html_entity_decode(substr($responseSiege, $pos+97, 32)));
$pos=strpos($responseSiege, 'size="-1"> <B>Date&nbsp;de&nbsp;création&nbsp;:</B></FONT></td><td valign="top"><font face="Arial" size="-1">');
if ($pos>0) {
$posFin=strpos($responseSiege, '</font>', $pos+109);
$tabRet['dateCreation']=str_replace(' ', '', html_entity_decode(substr($responseSiege, $pos+109, $posFin-($pos+109))));
}
else $tabRet['dateCreation']='';
$pos=strpos($responseSiege, ' size="-1"> <B>Raison sociale et Enseigne&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$len=127;
if ($pos==0){
$pos=strpos($responseSiege, ' size="-1"> <B>Raison sociale et Enseigne&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$len=122;
if ($pos==0){
$pos=strpos($responseSiege, ' size="-1"> <B>Raison sociale et Enseigne&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$len=126;
$libelleErreur='Informations INSEE non diffusables';
}
}
if ($libelleErreur=='') {
//LARGE*DOMINIQUE MICHEL/ <BR>GERANT SARL BIMAGIQUE &nbsp;</font>
$posFin=strpos($responseSiege, '</font>', $pos+$len);
$raisonSocialeStr=trim(substr($responseSiege, $pos+$len, $posFin-($pos+$len)));
$raisonSocialeTabLigne=explode('<BR>', $raisonSocialeStr);
$tabRet['raisonSociale']=trim(str_replace(' ', '', html_entity_decode($raisonSocialeTabLigne[0])));
$tabRet['Enseigne']=trim(str_replace(' ', '', html_entity_decode($raisonSocialeTabLigne[1])));
$pos=strpos($responseSiege, ' size="-1"> <B>Activité&nbsp;principale&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$tabRet['NafCode']=substr($responseSiege, $pos+120, 4);
$tabRet['NafLib']=trim(substr($responseSiege, $pos+137, 70));
$pos=strpos($responseSiege, ' size="-1"> <B>Adresse&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$posFin=strpos($responseSiege, '</font>', $pos+103);
$AdresseStr=substr($responseSiege, $pos+103, $posFin-($pos+103));
$AdresseTabLigne=explode('<BR>', $AdresseStr);//'
$tabRet['AdresseLigne1']=str_replace('&nbsp;', '/', $AdresseTabLigne[0]);
$tabRet['AdresseLigne2']=str_replace('&nbsp;', '/', $AdresseTabLigne[1]);
$tabRet['AdresseLigne3']=str_replace('&nbsp;', '/', $AdresseTabLigne[2]);
/*
$AdresseNum=$AdresseTabLigne1[0];
$AdresseVoi=$AdresseTabLigne1[1];
$AdresseRue=$AdresseTabLigne1[2];
$AdresseCP=$AdresseTabLigne2[0];
$AdresseVille=$AdresseTabLigne2[1];
*/
$pos=strpos($responseSiege, '<font face="Arial" size="-1"><b>L\'entreprise&nbsp;est&nbsp;connue&nbsp;au&nbsp;répertoire&nbsp;comme&nbsp;');
if ($pos>0) {
$posFin=strpos($responseSiege, '</b>', $pos+106);
$tabRet['etatJuridique']=html_entity_decode(substr($responseSiege, $pos+106, $posFin-($pos+106)));
$tabRet['dateEtatJuridique']='';
} else {
$pos=strpos($responseSiege, '<font face="Arial" size="-1"><b>L\'entreprise&nbsp;est&nbsp;cessée&nbsp;le&nbsp;:&nbsp;');
$tabRet['dateEtatJuridique']=substr($responseSiege, $pos+86, 10);
$tabRet['etatJuridique']='cessée';
}
//echo 'GetDataEtab="'.$libelleErreur."\"\r\n";
return $tabRet;
}
}
function getDataEntreprise($pageHtml)
{
global $libelleErreur;
$responseEntreprise=$pageHtml;
$tabRet=array();
if ($libelleErreur=='') {
$pos=strpos($responseEntreprise, 'size="-1"> <B>Date&nbsp;de&nbsp;création&nbsp;:</B></FONT></td><td valign="top"><font face="Arial" size="-1">');
if ($pos>0)
$tabRet['dateCreationEntrep']=substr($responseEntreprise, $pos+109, 10);
else
$tabRet['dateCreationEntrep']='';
// Raison sociale et Sigle
$pos=strpos($responseEntreprise, ' size="-1"> <B>Raison sociale et Sigle&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$posFin=strpos($responseEntreprise, '</font>', $pos+123);
$raisonSocialeStr=trim(substr($responseEntreprise, $pos+123, $posFin-($pos+123)));
$raisonSocialeTabLigne=explode('<BR>', $raisonSocialeStr);
$tabRet['raisonSocialeEntrep']=trim(str_replace(' ', '', html_entity_decode($raisonSocialeTabLigne[0])));
$tabRet['sigle']=trim(str_replace(' ', '', html_entity_decode($raisonSocialeTabLigne[1])));
// Activité prinicpale Entrep
$pos=strpos($responseEntreprise, ' size="-1"> <B>Activité&nbsp;principale&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$tabRet['NafCodeEntrep']=substr($responseEntreprise, $pos+120, 4);
$tabRet['NafLibEntrep']=trim(substr($responseEntreprise, $pos+137, 70));
// Forme Juridique
$pos=strpos($responseEntreprise, ' size="-1"> <B>Forme&nbsp;juridique&nbsp;:</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
$tabRet['FJCodeEntrep']=substr($responseEntreprise, $pos+116, 4);
$tabRet['FJLibEntrep']=trim(substr($responseEntreprise, $pos+133, 70));
// Nb Etab Actifs
$pos=strpos($responseEntreprise, ' size="-1"> <B>Nb&nbsp;établissements&nbsp;actifs&nbsp;:</B></FONT></td><td valign="top"><font face="Arial" size="-1">');
$posFin=strpos($responseEntreprise, '</font>', $pos+118);
$tabRet['nbEtabActifs']=trim(str_replace(' ', '', html_entity_decode(substr($responseEntreprise, $pos+118, $posFin-($pos+118)))));
}
return $tabRet;
}
/*
* parseHtml.php
* Author: Carlos Costa Jordao
* Email: carlosjordao@yahoo.com
*
* My notation of variables:
* i_ = integer, ex: i_count
* a_ = array, a_html
* b_ = boolean,
* s_ = string
*
* What it does:
* - parses a html string and get the tags
* - exceptions: html tags like <br> <hr> </a>, etc
* - At the end, the array will look like this:
* ["IMG"][0]["SRC"] = "xxx"
* ["IMG"][1]["SRC"] = "xxx"
* ["IMG"][1]["ALT"] = "xxx"
* ["A"][0]["HREF"] = "xxx"
*
*/
function parseHtml( $s_str )
{
$i_indicatorL = 0;
$i_indicatorR = 0;
$s_tagOption = '';
$i_arrayCounter = 0;
$a_html = array();
// Search for a tag in string
while( is_int(($i_indicatorL=strpos($s_str,'<',$i_indicatorR))) ) {
// Get everything into tag...
$i_indicatorL++;
$i_indicatorR = strpos($s_str,'>', $i_indicatorL);
$s_temp = substr($s_str, $i_indicatorL, ($i_indicatorR-$i_indicatorL) );
$a_tag = explode( ' ', $s_temp );
// Here we get the tag's name
list( ,$s_tagName,, ) = each($a_tag);
$s_tagName = strtoupper($s_tagName);
// Well, I am not interesting in <br>, </font> or anything else like that...
// So, this is false for tags without options.
$b_boolOptions = is_array(($s_tagOption=each($a_tag))) && $s_tagOption[1];
if( $b_boolOptions ) {
// Without this, we will mess up the array
$i_arrayCounter = (int)count($a_html[$s_tagName]);
// get the tag options, like src="htt://". Here, s_tagTokOption is 'src' and s_tagTokValue is '"http://"'
do {
$s_tagTokOption = strtoupper(strtok($s_tagOption[1], "="));
$s_tagTokValue = trim(strtok("="));
$a_html[$s_tagName][$i_arrayCounter][$s_tagTokOption] =
$s_tagTokValue;
$b_boolOptions = is_array(($s_tagOption=each($a_tag))) &&
$s_tagOption[1];
} while( $b_boolOptions );
}
}
return $a_html;
}
function getDataEntrepriseRNCS($pageHtml) {
global $libelleErreur;
$tabRet=array();
// Liste et liens vers les Bilans
$tabRet['tabListeBilans']=getTabListeBilans($pageHtml);
$tabRet['raisonSociale']=getTextInHtml($pageHtml, '<td align="left" valign="top"><span class="boldred"><br>', '<br>', '</span>');
$tabRet['RCS']=getTextInHtml($pageHtml, '<span class="textarial">RCS ', 'RCS ', '</span>', true);
$tabRet['activite']=getTextInHtml($pageHtml, '<td width="185" align="left" valign="top" bgcolor="#FFFFFF" class="boldtextarial">Activit&eacute;</td>', 'class="basictext">', '</td>');
$tabRet['adresseSiege']=getTextInHtml($pageHtml, '<td align="left" valign="top" bgcolor="#FFFFFF" class="boldtextarial">Si&egrave;ge
social</td>', 'class="basictext">', '</td>');
print_r($tabRet);
die();
// Capital social
// Chiffre d'affaires
// Date CA
// Effectif
// Forme Juridique
// Nationalité
// Activité
// Siège social
/*
<tr>
<td bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td align="left" valign="top" bgcolor="#FFFFFF" class="boldtextarial">Si&egrave;ge
social</td>
<td bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td align="left" valign="top" bgcolor="#EBF0F5" class="basictext">75 Avenue la Grande Armee<br>
75116 PARIS 16 </td>
</tr>
</table>
<div align="center"><img src="../images/degrade580grey.jpg" width="580" height="12"><br>
<br>
</div>
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top"><img src="../images/arrowsmallblue.gif" width="9" height="10"><span class="boldtextarialblue15">Renseignements
juridiques</span></td>
<td>&nbsp;</td>
</tr>
</table>
<table width="580" border="0" align="center" cellpadding="1" cellspacing="2">
<tr align="left" valign="top">
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td width="185" bgcolor="#FFFFFF" class="boldtextarial">Forme
juridique</td>
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td width="385" bgcolor="#EBF0F5" class="basictext">SA à conseil d'administration</td>
</tr>
<tr align="left" valign="top">
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td width="185" bgcolor="#FFFFFF" class="boldtextarial">Capital social</td>
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td width="385" bgcolor="#EBF0F5" class="basictext">171.285.000,00
EURO</td>
</tr>
<tr align="left" valign="top">
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td width="185" bgcolor="#FFFFFF" class="boldtextarial">Nationalit&eacute;</td>
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td bgcolor="#EBF0F5" class="basictext">France</td>
</tr>
</table>
<div align="center"><img src="../images/degrade580grey.jpg" width="580" height="12"><br>
<br>
</div>
<div align="center">
<table width="588" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="210" align="left" valign="top"><img src="../images/arrowsmallblue.gif" width="9" height="10"><span class="boldtextarialblue15">Chiffres
cl&eacute;s</span></td>
<td width="378" align="left" valign="top" class="smalltext">au 31-12-2004</td>
</tr>
</table>
<table width="580" border="0" align="center" cellpadding="1" cellspacing="2">
<tr>
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td width="185" align="left" valign="top" bgcolor="#FFFFFF" class="boldtextarial">Chiffre
d'affaires</td>
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td width="385" align="left" valign="top" bgcolor="#EBF0F5" class="basictext">18.049.000.000
EU</td>
</tr>
<tr>
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td width="185" align="left" valign="top" bgcolor="#FFFFFF" class="boldtextarial">Effectif</td>
<td width="5" bgcolor="#336699"><img src="../images/shim.gif" width="2" height="2"></td>
<td width="385" align="left" valign="top" bgcolor="#EBF0F5" class="basictext">De 5150 à 5720</td>
</tr>
</table>
<div align="center"><img src="../images/degrade580grey.jpg" width="580" height="12"><br>
<br>
<br>
</div>
</div>
<table width="600" border="0" cellspacing="2" cellpadding="0">*/
return $tabRet;
}
function getDataEcoCoface($pageHtml) {
global $libelleErreur;
$tabRet=array();
// SIREN
$pos=strpos($pageHtml, '<b><font class="nota">La forme juridique ou la date de création trop récente de l\'entreprise ne nous permettant pas d\'obtenir suffisamment d\'informations, nous vous offrons ce produit.</font></b>');
if ($pos>0) {
$tabRet['infoEco']='OUI';
$tabRet['societeInactive']=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne" > Société inactive</td>', '<td bgcolor="#FFF3DE" class="tabval" > ', '</td>');
$strCapital=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne" > Capital &nbsp (', '(', '</tr><tr>');
$tabTmp=explode('</td>', $strCapital);
$tabRet['capital_source']=str_replace(')', '', $tabTmp[0]);
$tabTmp=explode('&nbsp', $tabTmp[1]);
$tabRet['capital_montant']=str_replace(chr(160), '', trim(strip_tags($tabTmp[0])));
$tabRet['capital_devise']=trim(strip_tags($tabTmp[1]));
$tabRet['dateCreation']=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne" > Date de création</td>', '<td bgcolor="#FFF3DE" class="tabval" > ', '</td>');
$tabRet['formeJuridique']=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne" > Forme juridique</td>', '<td bgcolor="#FFF3DE" class="tabval" > ', '</td>');
$tabRet['cotationBourse']=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne" > Cotation en bourse</td>', '<td bgcolor="#FFF3DE" class="tabval" > ', '</td>');
$tabRet['effectifSociete']=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne" > Effectif société</td>', '<td bgcolor="#FFF3DE" class="tabval" > ', '</td>');
$tabRet['activite']=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne" > Activité</td>', '<td bgcolor="#FFF3DE" class="tabval" > ', '</td>');
$tabRet['sigle']=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne" > Sigle</td>', '<td bgcolor="#FFF3DE" class="tabval" > ', '</td>');
$tabRet['enseigne']=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne" > Enseigne</td>', '<td bgcolor="#FFF3DE" class="tabval" > ', '</td>');
// Dirigeants
$strDir=@getTextInHtml($pageHtml, '<td class="tabtot">IDENTITE</td>', '<td>&nbsp;</td>', '</table>');
$tabDir=explode('</tr>', $strDir);
$nbDir=1;
foreach ($tabDir as $key => $dir)
{
$tabTmp=explode('<td bgcolor="#FFF3DE" class="tabval" > ', $dir);
$typeDir=trim(strip_tags($tabTmp[0]));
$nomDir=trim(strip_tags($tabTmp[1]));
if ($typeDir<>'' && $typeDir<>'Date de création' && $typeDir<>'Forme juridique' && $typeDir<>'Cotation en bourse'
&& $typeDir<>'Effectif société' && $typeDir<>'Société inactive' && $typeDir<>'Activité'
&& $typeDir<>'Sigle' && $typeDir<>'Enseigne'
&& substr($typeDir, 0, 8) <>'Capital ' )
{
//$tabDir['Produits'].=$produit.'/';
//$produit=str_replace(' ','_',$produit);
$tabRet['Dirigeant'.$nbDir.'Type']=trim($typeDir);
$tabTmp=explode('&nbsp', $nomDir);
$tabRet['Dirigeant'.$nbDir.'Genre']=trim($tabTmp[0]);
$tabRet['Dirigeant'.$nbDir.'Prenom']=trim($tabTmp[1]);
$tabRet['Dirigeant'.$nbDir.'Nom']=trim($tabTmp[2]);
$nbDir++;
}
}
$tabRet['NbDirigeants']=$nbDir-1;
// Liens Financiers
$strTmp=@getTextInHtml($pageHtml, '<td class="tabtot">LIENS FINANCIERS</td>', '<td>&nbsp;</td>', '</table>');
if (strpos($strTmp, 'Néant')>0)
$tabRet['LiensFinanciers']='Néant';
else
$tabRet['LiensFinanciers']='Présence liens';
// ELEMENTS FINANCIERS
$strTmp=@getTextInHtml($pageHtml, '<td class="tabtot">ELEMENTS FINANCIERS</td>', '<td>&nbsp;</td>', '</table>');
if (strpos($strTmp, 'Néant')>0)
$tabRet['ElementsFinanciers']='Néant';
else
$tabRet['ElementsFinanciers']='Présence El.Fi.';
}
else
$tabRet['infoEco']='NON';
//echo $pageHtml;
//print_r($tabRet);
//die();
return $tabRet;
}
function getDataEntrepriseCoface($pageHtml) {
global $libelleErreur;
$tabRet=array();
// SIREN
$tabRet['siren']=@getTextInHtml($pageHtml, 'portail/entreprise_identite/identite.asp?nsiren=', '?nsiren=', '&IMPRESSION=OUI');
//$tabRet['siren']=@getTextInHtml($pageHtml, '<a href="http://www.coface.fr" target="_blank">&nbsp;Qui sommes nous&nbsp;</a>-<a href="javascript:;" onClick="MM_openBrWindow(\'../mod_cofacescrl/part_recherche.asp?nscrl=18452&metier=ALL&geo=ALL&idnav=168d25840396c5f38f4
$tabRet['nscrl']=@getTextInHtml($pageHtml, 'Plan du site&nbsp;</a>-<a href="http://www.coface.fr" target="_blank">&nbsp;Qui sommes nous&nbsp;</a>-<a href="javascript:;" onClick="MM_openBrWindow(\'../mod_cofacescrl/part_recherche.asp?nscrl=', '?nscrl=', '&metier=ALL&geo=ALL&idnav=');
// Raison Sociale, Adresse et lien vers Géoloc
$strRS_Adr=@getTextInHtml($pageHtml, '<td WIDTH="40%" bgcolor="#F3E5CC" class="tabligne"> <b> Raison sociale<br>', '<td WIDTH="60%" bgcolor="#FFF3DE" class="tabval"><b>', '</b></td>');
$tabRS_Adr=explode('<br>', $strRS_Adr);
$tabRet['raisonSociale']=trim($tabRS_Adr[0]);
$tabRS_Adr1=explode('&nbsp;', $tabRS_Adr[1]);
$tabRet['AdresseLigne1']=trim($tabRS_Adr1[0]);
$tabRet['AdresseLigne2']=trim($tabRS_Adr1[1]);
$tabRS_Adr1=explode('&nbsp;', $tabRS_Adr[2]);
$tabRet['codePostal']=trim($tabRS_Adr1[0]);
$tabRet['ville']=trim($tabRS_Adr1[1]);
$tabRet['UrlGeoLoc']=@getTextInHtml($pageHtml, '<td WIDTH="60%" bgcolor="#FFF3DE" class="tabval"><a href="javascript:;" onClick="MM_openBrWindow(\'', 'onClick="MM_openBrWindow(\'', '\',\'Planfax');
// Téléphone / Fax
$strTelFax=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne"><b>Téléphone<br>', '<td bgcolor="#FFF3DE" class="tabval" valign="top">', '</td>');
$tabTelFax=explode('<br>', $strTelFax);
$tabRet['tel']=trim($tabTelFax[0]);
$tabRet['fax']=trim($tabTelFax[1]);
// Adresse Internet / Email
$strInet=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne"><b>Adresse internet <br>', '<td bgcolor="#FFF3DE" class="tabval"><a class="tabval" HREF="', '</a></td>');
$tabInet=explode('<br>', $strInet);
$tabRet['web']=trim( @getTextInHtml($tabInet[0], ' target="_new">', '>', '</a>') );
$tabRet['mail']=trim( @getTextInHtml($tabInet[1], ' href="mailto:', ':', '">') );
// Bourse
$strBourse=@getTextInHtml($pageHtml, '<td bgcolor="#F3E5CC" class="tabligne"> <b>'."\r\n".' Code Sicovam<br>', '<td bgcolor="#FFF3DE" class="tabval">', '</td>');
$tabBourse=explode('<br>', $strBourse);
$tabRet['bourse_isin']=trim($tabBourse[0]);
$tabRet['bourse_marche']=trim($tabBourse[1]);
$tabRet['bourse_ville']=trim($tabBourse[2]);
// Activité
$tabRet['activite']=trim(str_replace('&nbsp;', ' ', @getTextInHtml($pageHtml, '<td WIDTH="40%" bgcolor="#F3E5CC" class="tabligne" valign="top"><b>Libellé code activité </b></td>', '<td WIDTH="60%" bgcolor="#FFF3DE" class="tabval">', '</td>')));
// Produits disponibles
$strDispos=@getTextInHtml($pageHtml, '<table border="0" cellpadding="0" cellspacing="0" width="98%"><tr><td class="normal"><b>Produits disponibles</b></td></tr><tr><td bgcolor="#E1D0B6"><img src="../images/vide.gif" border="0" height="1"><br></td></tr><tr><td><img src="../images/vide.gif" border="0" height="5"><br></td></tr></table>', '<table border="0" cellpadding="5" cellspacing="0" width="100%">', '</table>');
$tabDispos=explode('<td align="left" width="25%"', $strDispos);
$tabRet['Produits']='';
foreach ($tabDispos as $key => $produit)
{
$produit=trim(str_replace('>', '', str_replace('nowrap>', '', strip_tags($produit))));
if ($produit<>'' && $produit<>'&nbsp;') {
$tabRet['Produits'].=$produit.'/';
$produit=str_replace(' ','_',$produit);
$tabRet['Produit_'.$produit]='Oui';
}
}
// print_r($tabRet);
// die();
return $tabRet;
}
function getTabListeBilans($pageHtml) {
$tabUrl=array();
$deb=$fin=0;
while( is_int(($deb=strpos($pageHtml,'<a href="http://www.societe.com/cgi-bin/bilan?bil=',$fin))) ) {
$deb=$deb+9;
$fin = strpos($pageHtml,'</a>', $deb);
$s_temp = substr($pageHtml, $deb, ($fin-$deb));
//echo $s_temp."\r\n";
$a_temp = explode('" class="basic">', $s_temp);
$tabUrl[$a_temp[1]]=$a_temp[0];
}
return $tabUrl;
}
function getTabListeGU($pageHtml) {
$tabGU=array();
$deb=$fin=0;
/* <tr><td><img alt="" src="b.gi onMouseOver="javascript:mOvr(this);" onMouseOut="javascript:mOut(this);"><a class=txt9px href="javascript:ChoixGeo('CP_PDR_SUP_LOC_REQ')">Lancer la recherche dans toute la localit&eacute;</td></tr>
<tr><td><img src="b.gif" alt="" border=0></td><td align="left" onMouseOver="javascript:mOvr(this);" onMouseOut="javascript:mOut(this);"><a class=txt9px href="javascript:ChoixGeo('CP_INSCRIPTIONS_REQ')">Lancer la recherche sans l&#39;adresse</td></tr>
*/
while( is_int(($deb=strpos($pageHtml,'<td onMouseOver="javascript:mOvr(this);" onMouseOut="javascript:mOut(this);"><a class="txt9px" href="javascript:ChoixGeo(\'',$fin))) ) {
$deb=$deb+122;
$fin = strpos($pageHtml,'</td></tr>', $deb);
$s_temp = substr($pageHtml, $deb, ($fin-$deb));
//echo $s_temp."\r\n";
$a_temp = explode('\')">', $s_temp);
$tabGU[$a_temp[1]]=$a_temp[0];
}
return $tabGU;
}
function getTabListeNonTrouve($pageHtml) {
$tabGU=array();
$deb=$fin=0;
/* onMouseOver="javascript:mOvr(this);" onMouseOut="javascript:mOut(this);"><a class=txt9px href="javascript:ChoixGeo('CP_PDR_SUP_LOC_REQ')">Lancer la recherche dans toute la localit&eacute;</td></tr>
onMouseOver="javascript:mOvr(this);" onMouseOut="javascript:mOut(this);"><a class=txt9px href="javascript:ChoixGeo('CP_INSCRIPTIONS_REQ')">Lancer la recherche sans l&#39;adresse</td></tr>
*/
while( is_int(($deb=strpos($pageHtml,'onMouseOver="javascript:mOvr(this);" onMouseOut="javascript:mOut(this);"><a class=txt9px href="javascript:ChoixGeo(\'',$fin))) ) {
$deb=$deb+116;
$fin = strpos($pageHtml,'</td></tr>', $deb);
$s_temp = substr($pageHtml, $deb, ($fin-$deb));
//echo $s_temp."\r\n";
$a_temp = explode('\')">', $s_temp);
$tabGU[$a_temp[1]]=$a_temp[0];
}
return $tabGU;
}
/** Recherche un texte dans une page HTML
**
**/
function getTextInHtml($pageHtml, $strToFind, $strDeb, $strEnd, $include_strDeb=false, $include_strEnd=false, $ltrim=true, $rtrim=true, &$fin, $nbOcc=1) {
$tabRet=array();
$deb=$nbOccTrouve=0;
while( is_int(($deb=strpos($pageHtml,$strToFind,$fin))) ) {
$deb++;
$deb2 = strpos($pageHtml,$strDeb, $deb);
$fin = strpos($pageHtml,$strEnd, $deb2);
if (!$include_strDeb)
$deb2+=strlen($strDeb);
$s_temp = substr($pageHtml, $deb2, ($fin-$deb2));
if ($ltrim) $s_temp=ltrim($s_temp);
if ($rtrim) $s_temp=rtrim($s_temp);
if ($nbOcc==1) return $s_temp;
//echo $s_temp."\r\n";
//$a_temp = explode('" class="basic">', $s_temp);
$tabUrl[$nbOccTrouve]=$s_temp;
$nbOccTrouve++;
if ($nbOcc==$nbOccTrouve) {
// echo "j'ai trouvé le nb demandé, je sort\r\n";
break;
};
}
return $tabUrl;
/*<span class="mongrasvert">
<li>Le type de voie a été modifié<br>
<li>L'orthographe du mot directeur a été modifiée<br>
<li>Le code postal a été forcé à partir du département et de la localité<br> </span>
*/
}
?>

View File

@ -1,89 +0,0 @@
<?
//include('fonctions.php');
//include('insee.class.php');
define('HOST_NORMAD', 'www.normad.fr');
define('SITE_NORMAD', 'http://'. HOST_NORMAD .'/');
//$normad2=new Normad('SCI BRYGE', 'Kervegant', '', '', '', '29', 'SCAER');
class Normad {
/** Normalise l'adresse postale donnée en paramètre. Seule la ligne 1 qui devrait comporter la Raison Sociale ou le nom de l'expéditeur reste inchangée !
** @param $adrL1 Obligatoirement le Nom ou la Raison Sociale du destinataire
** @param $adrL2 Normalisation = Appart.,Bâtiment...
** @param $adrL3 Normalisation = Résidence,Cité...
** @param $adrL4 Normalisation = Num./Bis/Type voie/Nom voie
** @param $adrL5 Normalisation = BP,TSA,Lieu-dit...
** @param $codPos Code Postal (ou département)
** @param $ville Ville (orthographe correcte si possible si pas de CP)
** @return array
**/
function Normad ($adrL1, $adrL2, $adrL3, $adrL4, $adrL5, $codPos, $ville) {
$adrL1 =substr(trim($adrL1) , 0, 40);
$adrL2 =substr(trim($adrL2) , 0, 40);
$adrL3 =substr(trim($adrL3) , 0, 40);
$adrL4 =substr(trim($adrL4) , 0, 40);
$adrL5 =substr(trim($adrL5) , 0, 40);
$codPos=substr(trim($codPos), 0, 5);
$ville =substr(trim($ville) , 0, 33);
$postData=array( 'ad1'=>$adrL2, //htmlentities($adrL2),
'ad2'=>$adrL3, //htmlentities($adrL3),
'ad3'=>$adrL4, //htmlentities($adrL4),
'ad4'=>$adrL5, //htmlentities($adrL5),
'cod'=>$codPos,
'loc'=>htmlentities($ville),
'hiddenField'=>'GEN',);
$tabHtml=getUrl(SITE_NORMAD.'traiter_adresse.php', '', $postData, SITE_NORMAD.'validez.php', true, HOST_NORMAD);
$page=$tabHtml['body'];
$posInHtml=0;
$tabRet=array();
$retour=trim(str_replace(chr(173), '', getTextInHtml($page, '<td colspan=2><font face="Arial" size="2" color="#3F5A80"><b>', '<b>', '</b></font>', false, true, true, true, $posInHtml)));
$retour=explode('[*', $retour);
$tabRet['retour_code']=str_replace(']','',$retour[1]);
$tabRet['retour_libelle']=trim($retour[0]);
$tabRet['retour_messages']=getTextInHtml($page, '<li>', 'i>', '<br>', false, false, true, true, $posInHtml, 0);
// Récupération des Lignes d'adresse
$tabRet['ligne1']=$adrL1;
$tabRet['ligne2']=getTextInHtml($page, '<td class="gris2"><span class=grasnoir>Adresse en sortie :</span>', '<td class=gras nowrap>', '</td>', false, false, true, true, $posInHtml);
$tabRet['ligne3']=getTextInHtml($page, '<td class=pet align=right nowrap> Volet 2 : </td>', '<td class=gras nowrap>', '</td>', false, false, true, true, $posInHtml);
$tabRet['ligne4']=getTextInHtml($page, '<td class=pet align=right nowrap> Volet ', '<td class=gras nowrap>', '</td>', false, false, true, true, $posInHtml);
$tabRet['ligne5']=getTextInHtml($page, '<td class=pet align=right nowrap> Volet 4 : </td>', '<td class=gras nowrap>', '</td>', false, false, true, true, $posInHtml);
$tabRet['CP']=getTextInHtml($page, '<td class=pet align=right nowrap> CP : </td>', '<td class=gras nowrap>', '</td>', false, false, true, true, $posInHtml);
$tabRet['ville']=getTextInHtml($page, '<td class=pet align=right nowrap> Localité : </td>', '<td class=gras nowrap>', '</td>', false, false, true, true, $posInHtml);
$tabRet['ligne6']=$tabRet['CP'] .' '. $tabRet['ville'];
// Découpage de la rue
$tabRet['voie_num']=getTextInHtml($page, '<span class=pet>Numéro ', '<span class=gras>', '</span><br>', false, false, true, true, $posInHtml);
$tabRet['voie_btq']=getTextInHtml($page, '<span class=pet>Bis/Ter/Quater/...', '<span class=gras>', '</span><br>', false, false, true, true, $posInHtml);
$tabRet['voie_type']=getTextInHtml($page, '<span class=pet>Type', '<span class=gras>', '</span><br>', false, false, true, true, $posInHtml);
$tabRet['voie_denom']=getTextInHtml($page, '<span class=pet>Dénomination', '<span class=gras>', '</span><br>', false, false, true, true, $posInHtml);
$tabRet['voie_motDir']=getTextInHtml($page, 'directeur :</span> ', '<span class=gras>', '</span><br>', false, false, true, true, $posInHtml);
$tabRet['voie_matric']=getTextInHtml($page, '<span class=pet>Matricule voie :</span>', '</span>', '<br>', false, true, true, true, $posInHtml);
$tabRet['code_insee_commune']=getTextInHtml($page, '<span class=pet>Code INSEE commune :</span>', '</span>', '<br>', false, true, true, true, $posInHtml);
print_r($tabRet);
//echo "$voie_num\r\n$voie_btq\r\n$voie_type\r\n$voie_denom\r\n$voie_motDir\r\n$voie_matric\r\n$code_insee_commune\r\n";
}
/*
<td class="gris2" valign=top><span class=grasnoir>Détails :</span><br>
00441644 <br>
28074 <br>
<br>
<br>
</td>
</tr>
</table>
<hr size=1>
</td>
</tr>
<tr>
<td colspan=3><p class="gris2" align="justify">&nbsp; </p>
<p class="mongrasvert" align="right"> R&eacute;f&eacute;rentiels
d'avril 2006 </p>
*/
} ?>

View File

@ -1,170 +0,0 @@
<?PHP
$this->tabNotation['A+']=array('Exceptionnel', 'A3++', 'Aaa' ,'AAA' ,'0.001');
$this->tabNotation['A'] =array('Excellent', 'A3+', 'Aa1 Aa2 Aa3' ,'AA+ AA AA-' ,'0.01');
$this->tabNotation['B+']=array('Très bon', '3++', 'A1' ,'A+' ,'0.02');
$this->tabNotation['B'] =array('Bon', '3+', 'A2 A3' ,'A A-' ,'0.04');
$this->tabNotation['C+']=array('Assez bon', '3', 'Baa1' ,'BBB+' ,'0.15');
$this->tabNotation['C'] =array('Acceptable', '3', 'Baa2' ,'BBB' ,'0.30');
$this->tabNotation['C-']=array('Moyen', '3', 'Baa3' ,'BBB-' ,'0.60');
$this->tabNotation['D+']=array('Passable', '4+', 'Ba1' ,'BB+' ,'0.90');
$this->tabNotation['D'] =array('Médiocre', '4', 'Ba2' ,'BB' ,'1.25');
$this->tabNotation['D-']=array('Très médiocre', '4', 'Ba3' ,'BB-' ,'1.60');
$this->tabNotation['E+']=array('Mauvais (sous surveillance)', '5', 'B1 B2 B3', 'B+ B B-', '5.00');
$this->tabNotation['E'] =array('Très mauvais (sensible, sans incident)', '6', 'Caa', 'CCC', '14.00');
$this->tabNotation['E-']=array('Très mauvais (sensible avec incidents)', '8', 'Ca C', 'CC C', '17.00');
$this->tabNotation['F'] =array('En défaut, hors procédures judiciaires (douteux)', '8 9', 'D', 'D', 'Défaut');
$this->tabNotation['Z'] =array('En défaut, avec procédures judiciaires ou contentieuses (douteux)', 'P', '', '', 'Défaut');
$this->tabLibActivite[0]='';
$this->tabLibActivite[15]='Industries Alimentaires : Collecte Appro';
$this->tabLibActivite[3]='Industries Alimentaires : Collecte et 1ère transformation';
$this->tabLibActivite[5]='Industries Alimentaires : Eaux de vie et Champagne';
$this->tabLibActivite[2]='Industries Alimentaires : Autres activités';
$this->tabLibActivite[6]='Industries extractives / Production Distribution : Énergie Eau';
$this->tabLibActivite[7]='Construction - BTP';
$this->tabLibActivite[1]='Industries Manufacturières';
$this->tabLibActivite[8]='Négoce';
$this->tabLibActivite[4]='Commerce de Gros';
$this->tabLibActivite[9]='Commerce Distribution';
$this->tabLibActivite[10]='Grande Distribution';
$this->tabLibActivite[12]='Transports';
$this->tabLibActivite[13]='Media Technologie de l\'information';
$this->tabLibActivite[14]='Services';
$this->tabLibActivite[11]='Hôtellerie et Loisirs / Activités immobilières';
$this->tabLibActivite[16]='Banques. Assurances. Activités financières';
$this->tabLibActivite[17]='Agriculture. Sylviculture. Pêche. Aquaculture';
$this->tabActivite[15]=array('512A');
$this->tabActivite[3]=array('151A','151C','152','153E','155','157','159G','159J','159N','159Q');
$this->tabActivite[5]=array('159A','159F');
$this->tabActivite[2]=array('151E','151F','153A','153C','153F','154','156','158','159B','159D','159L','159S','159T');
$this->tabActivite[6]=array('11','10','12','13','14','401','402','403','410');
$this->tabActivite[7]=array('451','452','453','454','455');
$this->tabActivite[1]=array('251','252','241','242','243','245','246','247','261','262','263','264','265','266','267','268','244','297','300','311','312','313','314','315','316','321','322','323','17','18','19','20','21','271','272','273','274','275','281','282','283','284','285','286','287','291','292','293','294','295','296','341','342','343','353','351','352','354','355','223','331','332','333','334','335','361','362','363','364','365','366','231','232','233','222','371','372');
$this->tabActivite[8]=array();
$this->tabActivite[4]=array('511A','511N','511P','512C','512E','512G','512J','513','511C','515A','515C','511E','511G','511J','511L','511R','511T','511U','514','515E','515F','515H','515J','515L','515N','515Q','516','517');
$this->tabActivite[9]=array('501','502','503','504','505','521A','521B','521C','521J','522','523','524A','524C','524E','524F','524H','524J','524L','524N','524R','524T','524U','524V','524W','524X','524Y','524Z','525','526');
$this->tabActivite[10]=array('521D','521E','521F','521H','524P');
$this->tabActivite[12]=array('621','622','623','611','612','602','603','631','632','634','634B','634C','634A','641');
$this->tabActivite[13]=array('221','722','721','723','724','725','726','924','642','922','921');
$this->tabActivite[14]=array('703','712E','711','712A','713','714','712C','741A','741C','741E','741G','742','743','741J','744','745','746','747','748','900','633','801','802','803','804','851','852','853','930','911','912','913','527','950');
$this->tabActivite[11]=array('923','925','926','927','551','552','553','554','555','702');
$this->tabActivite[16]=array('651','660','672','652E','652A','652C','652F','671');
$this->tabActivite[17]=array('751','990','752','990','701');
$this->tabR[1][0]=array();
$this->tabR[1][1]=array('0:15.5','15.5:21.7','21.7:25','25:29.1','29.1:33.4','33.4:37','37:40','40:42.6','42.6:44.9','44.9:100');
$this->tabR[1][2]=array('0:18.7','18.7:22.8','22.8:25','25:27.7','27.7:30.6','30.6:33','33:35','35:36.7','36.7:38.3','38.3:100');
$this->tabR[1][3]=array('0:18.7','18.7:22.8','22.8:25','25:27.7','27.7:30.6','30.6:33','33:35','35:36.7','36.7:38.3','38.3:100');
$this->tabR[1][4]=array('0:8.7','8.7:12.8','12.8:15','15:17.7','17.7:20.6','20.6:23','23:25','25:26.7','26.7:28.3','28.3:100');
$this->tabR[1][5]=array('0:18.7','18.7:22.8','22.8:25','25:27.7','27.7:30.6','30.6:33','33:35','35:36.7','36.7:38.3','38.3:100');
$this->tabR[1][6]=array('0:20.5','20.5:26.7','26.7:30','30:34.1','34.1:38.4','38.4:42','42:45','45:47.6','47.6:49.9','49.9:100');
$this->tabR[1][7]=array('0:13.7','13.7:17.8','17.8:20','20:22.7','22.7:25.6','25.6:28','28:30','30:31.7','31.7:33.3','33.3:100');
$this->tabR[1][8]=array('0:3.7','3.7:7.8','7.8:10','10:12.7','12.7:15.6','15.6:18','18:20','20:21.7','21.7:23.3','23.3:100');
$this->tabR[1][9]=array('0:13.7','13.7:17.8','17.8:20','20:22.7','22.7:25.6','25.6:28','28:30','30:31.7','31.7:33.3','33.3:100');
$this->tabR[1][10]=array('0:5.7','5.7:9.8','9.8:12','12:14.7','14.7:17.6','17.6:20','20:22','22:23.7','23.7:25.3','25.3:100');
$this->tabR[1][11]=array('0:18.7','18.7:22.8','22.8:25','25:27.7','27.7:30.6','30.6:33','33:35','35:36.7','36.7:38.3','38.3:100');
$this->tabR[1][12]=array('0:13.7','13.7:17.8','17.8:20','20:22.7','22.7:25.6','25.6:28','28:30','30:31.7','31.7:33.3','33.3:100');
$this->tabR[1][13]=array('0:23.7','23.7:27.8','27.8:30','30:32.7','32.7:35.6','35.6:38','38:40','40:41.7','41.7:43.3','43.3:100');
$this->tabR[1][14]=array('0:18.7','18.7:22.8','22.8:25','25:27.7','27.7:30.6','30.6:33','33:35','35:36.7','36.7:38.3','38.3:100');
$this->tabR[1][15]=array('0:15.5','15.5:21.7','21.7:25','25:29.1','29.1:33.4','33.4:37','37:40','40:42.6','42.6:44.9','44.9:100');
$this->tabR[1][16]=array('0:6.8','6.8:8.9','8.9:10','10:11.4','11.4:12.8','12.8:14','14:15','15:15.9','15.9:16.6','16.6:100');
$this->tabR[1][17]=array('0:18.7','18.7:22.8','22.8:25','25:27.7','27.7:30.6','30.6:33','33:35','35:36.7','36.7:38.3','38.3:100');
$this->tabR[2][0]=array();
$this->tabR[2][1]=array('1.8:','1.6:1.8','1.5:1.6','1.4:1,5','1.2:1.4','1.0:1.2','0.9:1.0','0.8:0,9','0.7:0,8','0:0.7');
$this->tabR[2][2]=array('2.2:','1.9:2.2','1.8:1.9','1.6:1.8','1.4:1.6','1.2:1.4','1.0:1.2','0.9:1.0','0.7:0.9','0:0.7');
$this->tabR[2][3]=array('2.2:','1.9:2.2','1.8:1.9','1.6:1.8','1.4:1.6','1.2:1.4','1.0:1.2','0.9:1.0','0.7:0.9','0:0.7');
$this->tabR[2][4]=array('3.0:','2.7:3.0','2.5:2.7','2.3:2.5','2.0:2.3','1.7:2.0','1.5:1.7','1.3:1.5','1.1:1.3','0:1.1');
$this->tabR[2][5]=array('2.6:','2.4:2.6','2.2:2.4','2.0:2.2','1.7:2.0','1.5:1.7','1.3:1.5','1.1:1.3','1.0:1.1','0:1');
$this->tabR[2][6]=array('1.7:','1.6:1.7','1.5:1.6','1.4:1.5','1.2:1.4','1.1:1.2','1.0:1.1','0.9:1.0','0.8:0.9','0:0.8');
$this->tabR[2][7]=array('1.5:','1.4:1.5','1.3:1.4','1.1:1.3','1.0:1.2','0.9:1.0','0.8:0.9','0.7:0.8','0.6:0.7','0:0.6');
$this->tabR[2][8]=array('10.1:','8.8:10.1','8:8.8','7:8','5.8:7','4.8:5.8','4:4.8','3.3:4','2.8:3.3','0:2.8');
$this->tabR[2][9]=array('3:','2.7:3','2.5:2.7','2.3:2.5','2:2.3','1.7:2','1.5:1.7','1.3:1.5','1.1:1.3','0:1.1');
$this->tabR[2][10]=array('3.8:','3.3:3.8','3.0:3.3','2.6:3.0','2.2:2.6','1.8:2.2','1.5:1.8','1.2:1.5','1.0:1.2','0:1');
$this->tabR[2][11]=array('2.3:','2.1:2.3','2:2.1','1.8:2','1.6:1.8','1.5:1.6','1.3:1.5','1.2:1.3','1:1.2','0:1');
$this->tabR[2][12]=array('2.3:','2.1:2.3','2:2.1','1.8:2','1.6:1.8','1.5:1.6','1.3:1.5','1.2:1.3','1:1.2','0:1');
$this->tabR[2][13]=array('1.8:','1.6:1.8','1.5:1.6','1.4:1.5','1.2:1.4','1:1.2','0.9:1','0.8:0.9','0.7:0.8','0:0.7');
$this->tabR[2][14]=array('1.8:','1.6:1.8','1.5:1.6','1.4:1.5','1.2:1.4','1:1.2','0.9:1','0.8:0.9','0.7:0.8','0:0.7');
$this->tabR[2][15]=array('2.2:','1.9:2.2','1.7:1.9','1.5:1.7','1.2:1.5','1.0:1.2','0.8:1.0','0.7:0.8','0.5:0.7','0:0.5');
$this->tabR[2][16]=array('10.1:','8.8:10.1','8:8.8','7:8','5.8:7','4.8:5.8','4:4.8','3.3:4','2.8:3.3','0:2.8');
$this->tabR[2][17]=array('2.2:','1.9:2.2','1.8:1.9','1.6:1.8','1.4:1.6','1.2:1.4','1:1.2','0.9:1','0.7:0.9','0:0.7');
$this->tabR[3][0]=array();
$this->tabR[3][1]=array('4.4:','4:4.4','3.8:4','3.5:3.8','3.1:3.5','2.8:3.1','2.5:2.8','2.2:2.5','2:2.2','0:2');
$this->tabR[3][2]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4');
$this->tabR[3][3]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4');
$this->tabR[3][4]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4');
$this->tabR[3][5]=array('8.6:','7.9:8.6','7.5:7.9','6.9:7.5','6.2:6.9','5.6:6.2','5:5.6','4.5:5','4:4.5','0:4');
$this->tabR[3][6]=array('4.4:','4:4.4','3.8:4','3.5:3.8','3.1:3.5','2.8:3.1','2.5:2.8','2.2:2.5','2:2.2','0:2');
$this->tabR[3][7]=array('4.4:','4:4.4','3.8:4','3.5:3.8','3.1:3.5','2.8:3.1','2.5:2.8','2.2:2.5','2:2.2','0:2');
$this->tabR[3][8]=array('10.9:','9.7:10.9','9:9.7','8:9','6.8:8','5.8:6.8','5:5.8','4.3:5','3.7:4.3','0:3.7');
$this->tabR[3][9]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4');
$this->tabR[3][10]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4');
$this->tabR[3][11]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4');
$this->tabR[3][12]=array('5.9:','5.4:5.9','5:5.4','4.5:5','3.9:4.5','3.4:3.9','3:3.4','2.6:3','2.3:2.6','0:2.3');
$this->tabR[3][13]=array('4.2:','3.8:4.2','3.5:3.8','3.1:3.5','2.7:3.1','2.3:2.7','2:2.3','1.7:2','1.5:1.7','0:1.5');
$this->tabR[3][14]=array('4.2:','3.8:4.2','3.5:3.8','3.1:3.5','2.7:3.1','2.3:2.7','2:2.3','1.7:2','1.5:1.7','0:1.5');
$this->tabR[3][15]=array('6.9:','6.3:6.9','6.0:6.3','5.5:6.0','5.0:5.5','4.5:5.0','4.0:4.5','3.6:4.0','3.2:3.6','0:3.2');
$this->tabR[3][16]=array('10.9:','9.7:10.9','9:9.7','8:9','6.8:8','5.8:6.8','5:5.8','4.3:5','3.7:4.3','0:3.7');
$this->tabR[3][17]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4');
$this->tabR[4][0]=array();
$this->tabR[4][1]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][2]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][3]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][4]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][5]=array('0:1.36','1.36:1.44','1.44:1.5','1.5:1.58','1.58:1.71','1.71:1.85','1.85:2','2:2.16','2.16:2.33','2.33:');
$this->tabR[4][6]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][7]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][8]=array('0:1.1','1.1:1.2','1.2:1.3','1.3:1.4','1.4:1.6','1.6:1.8','1.8:2','2:2.2','2.2:2.5','2.5:');
$this->tabR[4][9]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][10]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][11]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][12]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[4][13]=array('0:2.4','2.4:2.7','2.7:3','3:3.4','3.4:4.1','4.1:5','5:6','6:7.2','7.2:8.7','8.7:');
$this->tabR[4][14]=array('0:2.4','2.4:2.7','2.7:3','3:3.4','3.4:4.1','4.1:5','5:6','6:7.2','7.2:8.7','8.7:');
$this->tabR[4][15]=array('0:2.9','2.9:3.4','3.4:3.7','3.7:4.3','4.3:5.2','5.2:6.2','6.2:7.5','7.5:9.1','9.1:10.9','10.9:');
$this->tabR[4][16]=array('0:1.1','1.1:1.2','1.2:1.3','1.3:1.4','1.4:1.6','1.6:1.8','1.8:2','2:2.2','2.2:2.5','2.5:');
$this->tabR[4][17]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:');
$this->tabR[5][0]=array();
$this->tabR[5][1]=array('-99:-40','-40:-34','-34:-30','-30:-24','-24:-16','-16:-8','-8:0','0:8.1','8.1:16.1','16.1:');
$this->tabR[5][2]=array('-99:-40','-40:-34','-34:-30','-30:-24','-24:-16','-16:-8','-8:0','0:8.1','8.1:16.1','16.1:');
$this->tabR[5][3]=array('-99:-40','-40:-34','-34:-30','-30:-24','-24:-16','-16:-8','-8:0','0:8.1','8.1:16.1','16.1:');
$this->tabR[5][4]=array('-99:-16.7','-16.7:-12.7','-12.7:-10','-10:-6','-6:-0.7','-0.7:4.7','4.7:10','10:15.3','15.3:20.7','20.7:');
$this->tabR[5][5]=array('-999:-420','-420:-384','-384:-360','-360:-324','-324:-276','-276:-228','-228:-180','-180:-132','-132:-84','-84:');
$this->tabR[5][6]=array('-99:-40','-40:-34','-34:-30','-30:-24','-24:-16','-16:-8','-8:0','0:8.1','8.1:16.1','16.1:');
$this->tabR[5][7]=array('-99:-30','-30:-24','-24:-20','-20:-14','-14:-6','-6:2','2:10','10:18','18:26','26:');
$this->tabR[5][8]=array('-99:-41.7','-41.7:-34.7','-34.7:-30','-30:-23','-23:-13.7','-13.7:-4.3','-4.3:5','5:14.3','14.3:23.7','23.7:');
$this->tabR[5][9]=array('-99:-16.7','-16.7:-12.7','-12.7:-10','-10:-6','-6:-0.7','-0.7:4.7','4.7:10','10:15.3','15.3:20.7','20.7:');
$this->tabR[5][10]=array('-99:-5','-5:-2','-2:0','0:3','3:7','7:11','11:15','15:19','19:23','23:');
$this->tabR[5][11]=array('-99:-6.7','-6.7:-2.7','-2.7:0','0:4','4:9.3','9.3:14.7','14.7:20','20:25.3','25.3:30.7','30.7:');
$this->tabR[5][12]=array('-99:-6.7','-6.7:-2.7','-2.7:0','0:4','4:9.3','9.3:14.7','14.7:20','20:25.3','25.3:30.7','30.7:');
$this->tabR[5][13]=array('-99:-6.7','-6.7:-2.7','-2.7:0','0:4','4:9.3','9.3:14.7','14.7:20','20:25.3','25.3:30.7','30.7:');
$this->tabR[5][14]=array('-99:-6.7','-6.7:-2.7','-2.7:0','0:4','4:9.3','9.3:14.7','14.7:20','20:25.3','25.3:30.7','30.7:');
$this->tabR[5][15]=array('-99:-38.3','-38.3:-36.3','-36.3:-35.0','-35:-33','-33.0:-30','-30:-27.7','-27.7:-25.0','-25.0:-22.3','-22.3:-19.7','-19.7:');
$this->tabR[5][16]=array('-99:-41.7','-41.7:-34.7','-34.7:-30','-30:-23','-23:-13.7','-13.7:-4.3','-4.3:5','5:14.3','14.3:23.7','23.7:');
$this->tabR[5][17]=array(':-58.3','-58.3:53.3','-53.3:-50','-50:-45','-45:-38.3','-38.3:-31.7','-31.7:-25','-25:-18.3','-18.3:-11.7','-11.7:');
$this->tabR[6][0]=array();
$this->tabR[6][1]=array('0:6','6:6.6','6.6:7','7:7.6','7.6:8.4','8.4:9.2','9.2:10','10:10.8','10.8:11.6','11.6:');
$this->tabR[6][2]=array('0:6','6:6.6','6.6:7','7:7.6','7.6:8.4','8.4:9.2','9.2:10','10:10.8','10.8:11.6','11.6:');
$this->tabR[6][3]=array('0:1.5','1.5:2.1','2.1:2.5','2.5:3.1','3.1:3.9','3.9:4.7','4.7:5.5','5.5:6.3','6.3:7.1','7.1:');
$this->tabR[6][4]=array('0:1.8','1.8:2.2','2.2:2.5','2.5:2.9','2.9:3.4','3.4:4','4:4.5','4.5:5','5:5.6','5.6:');
$this->tabR[6][5]=array('0:6.7','6.7:7.5','7.5:8','8:8.8','8.8:9.9','9.9:10.9','10.9:12','12:13.1','13.1:14.1','14.1:');
$this->tabR[6][6]=array('0:7.7','7.7:8.5','8.5:9','9:9.8','9.8:10.9','10.9:11.9','11.9:13','13:14.1','14.1:15.1','15.1:');
$this->tabR[6][7]=array('0:3','3:3.6','3.6:4','4:4.6','4.6:5.4','5.4:6.2','6.2:7','7:7.8','7.8:8.6','8.6:');
$this->tabR[6][8]=array('0:1.3','1.3:1.7','1.7:2','2:2.4','2.4:2.9','2.9:3.5','3.5:4','4:4.5','4.5:5.1','5.1:');
$this->tabR[6][9]=array('0:1.8','1.8:2.2','2.2:2.5','2.5:2.9','2.9:3.4','3.4:4','4:4.5','4.5:5','5:5.6','5.6:');
$this->tabR[6][10]=array('0:1.3','1.3:1.7','1.7:2','2:2.4','2.4:2.9','2.9:3.5','3.5:4','4:4.5','4.5:5.1','5.1:');
$this->tabR[6][11]=array('0:8.3','8.3:9.3','9.3:10','10:11','11:12.3','12.3:13.7','13.7:15','15:16.3','16.3:17.7','17.7:');
$this->tabR[6][12]=array('0:4.7','4.7:5.5','5.5:6','6:6.8','6.8:7.9','7.9:8.9','8.9:10','10:11.1','11.1:12.1','12.1:');
$this->tabR[6][13]=array('0:3','3:4.8','4.8:6','6:7.8','7.8:10.2','10.2:12.6','12.6:15','15:17.4','17.4:19.8','19.8:');
$this->tabR[6][14]=array('0:3','3:4.8','4.8:6','6:7.8','7.8:10.2','10.2:12.6','12.6:15','15:17.4','17.4:19.8','19.8:');
$this->tabR[6][15]=array('0:2','2:2.3','2.3:2.5','2.5:2.8','2.8:3.2','3.2:3.6','3.6:4.0','4.0:4.4','4.4:4.8','4.8:');
$this->tabR[6][16]=array('0:1.7','1.7:1.9','1.9:2','2:2.2','2.2:2.5','2.5:2.7','2.7:3','3:3.3','3.3:3.5','3.5:');
$this->tabR[6][17]=array('0:4.7','4.7:5.5','5.5:6','6:6.8','6.8:7.9','7.9:8.9','8.9:10','10:11.1','11.1:12.1','12.1:');
?>

View File

@ -1,9 +0,0 @@
<?
class Rncs {
function Rncs () {}
}
?>

View File

@ -1,795 +0,0 @@
<?php
require_once 'framework/common/chiffres.php';
require_once 'framework/common/dates.php';
require_once 'Metier/bodacc/classMBodacc.php';
require_once 'Metier/insee/classMInsee.php';
require_once 'Metier/partenaires/classMRncs.php';
require_once 'Metier/partenaires/classMBilans.php';
require_once 'Metier/partenaires/classMBourse.php';
require_once 'Metier/partenaires/classMLiens.php';
require_once 'Metier/scores/classMFinancier.php';
require_once 'Metier/scores/classMSolvabilite.php';
require_once 'Metier/scores/classMScores.php';
require_once 'Metier/partenaires/classMTva.php';
require_once 'Metier/partenaires/classMMap.php';
require_once 'Metier/partenaires/classMGreffes.php';
require_once 'Metier/partenaires/classMPrivileges.php';
require_once 'Metier/tmp/configMRatios.php';
require_once 'framework/mail/sendMail.php';
global $tabEvenSolib;
global $tabEven2SO;
global $tabEven2RO;
$tabEvenSolib=array(1=>'CR',
11=>'CR',
13=>'CR',
14=>'CR',
15=>'CR',
16=>'CR',
17=>'CR',
18=>'CR',
19=>'CR',
2=>'VT',
21=>'VT',
22=>'VT',
24=>'VT',
25=>'VT',
3=>'CE',
31=>'ME',
32=>'ME',
33=>'ME',
34=>'ME',
35=>'Rec',
36=>'MAF',
37=>'LG',
38=>'LG',
39=>'MD',
4=>'RD',
41=>'DIS',
42=>'FLG',
51=>'RJ',
52=>'RJ',
53=>'RA',
56=>'PIE',
57=>'SAUVJ',
58=>'SAUVP',
59=>'RR',
6=>'R&L',
61=>'LB',
62=>'LJ',
63=>'FP',
64=>'INT',
65=>'LQ',
69=>'RL',
7=>'Suite',
71=>'SRJ',
72=>'SRLJ',
73=>'SP',
74=>'AP',
75=>'MP',
76=>'EP',
77=>'PRO',
78=>'DC',
79=>'CIA',
8=>'INFR',
91=>'DC',
92=>'CP',
);
$tabEven2SO=array( // PROCOL
1010=>92, // Déclaration de cessation de paiement
1050=>7, // Homologation de la conciliation
1055=>7, // Résolution de la conciliation
1100=>57, // Jugement de sauvegarde
1101=>58, // Plan de sauvegarde
1200=>52, // Redressement Judiciaire
1201=>52, // Conversion sauvegarde en Redressement Judiciaire
1202=>75, // Renouv. Periode Observation
1203=>78, // Avis de dépot de l'état de collocation
1204=>78, // Dépôt des créances
1205=>78,
1206=>78,
1207=>53, // Règlemement amiable
1208=>78,
1209=>51, // Règlement Judiciaire
1210=>77, // Production
1211=>52, // Redressement Judiciaire par extension au(x) gérant(s)
1212=>69, // Rectif ou Annul.LJ
1214=>78, // Avis de dépôt de l'état des créances (Loi de 1985)
1215=>7, // Jugement de désignation des organes de la procédure
1216=>78, // Autre avis de dépôt
1300=>62, // Conversion Redressement Judiciaire en Liquidation
1301=>62, // Ouverture Liquidation Judiciaire
1302=>66, // Ouverture Liquidation Judiciaire Simplifiée
1303=>62, // Ouverture Liquidation Judiciaire sur résolution
1304=>62, // Réouverture Liquidation Judiciaire
1305=>62, // Liquidation Judiciaire
1306=>66, // Liquidation Judiciaire simplifiée
1307=>62, // Conversion sauvegarde en Liquidation Judiciaire
1308=>62, // Fin du régime de Liquidation Judiciaire Simplifiée
1309=>62, // Conversion Liquidation Judiciaire en Liquidation
1310=>56, // Procédure d'Insolvabilité Européenne
1311=>62, // Liquidation Judiciaire par extension au(x) gérants
1312=>62, // Liquidation Judiciaire avec continuation d'exploitation
1313=>62, // Liquidation Judiciaire sans remise des accessoires
1346=>7, // Procédure d'insolvabilité (Règlement 1346/2000 du Conseil Européen)
1400=>7, // Nomination d'un administrateur judiciaire
1401=>7, // Nomination d'un mandataire judiciaire
1402=>7, // Nomination d'un représentant des créanciers
1403=>7, // Nominnation/Remplacement de commissaire à l'exécution du plan
1404=>7, // Prolongement de la mission du commissaire à l'exécution du plan
1405=>7, // Nomination d'un juge commissaire
1406=>7, // Changement de SYNDIC
1407=>75, // Modif. de Plan
1408=>75, // Modification du plan de cession
1409=>75, // Modif. de de continuation
1410=>75, // Suite de jugement/règlement/liquidation
1411=>75, // Arrêt du plan de cession
1412=>75, // Arrêt du plan de cession partielle
1413=>75, // Arrêt du plan de continuation
1414=>75, // Arrêt du plan de redressement
1415=>75, // Prolongement du plan cession
1416=>75, // Jugement constatant la bonne exécution du plan
1417=>62, // Jugement d'extension de liquidation judiciaire
1418=>52, // Jugement d'extension d'une procédure de redressement judiciaire
1419=>57, // Jugement d'extension d'une procédure de sauvegarde
1420=>7, // Nomination d'un liquidateur judiciaire
1421=>7, // Jugement prorogeant le plan de redressement
1425=>7, // Plan de cession avec location gérance
1430=>7, // Jugement autorisant la poursuite d'activité
1431=>7, // Jugement de cessation partielle d'activité
1435=>7, // Suspension de l'exécution provisoire
1436=>7, // Suspension provisoire des poursuites
1440=>7, // Jugement accordant un délai pour déposer la liste des créances
1445=>7, // Concordat
1450=>92, //Cessation paiement
1455=>7, // Jugement arrêtant le plan d'apurement du passif
1460=>7, // Homologation du plan
1470=>7, // Fin de mission d'administrateur judiciaire
1480=>7, // Jugement ordonnant la jonction des procédures
1500=>79, // Clôture de la procédure
1501=>79, // Clôture de la procédure après cession totale
1502=>76, // Clôture de la procédure pour extinction du passif
1503=>79, // Cloture insuf.Actif
1504=>79, // Clôture sauvegarde pour absence de projet de plan
1505=>74, // Appel de jugement
1506=>59, // Rectif ou Annulation RJ
1507=>74, // Appel de jugement
1508=>7, // Extinction du plan de sauvegarde
1509=>7, // Extinction du plan de redressement
1510=>74, // Rejet du plan
1511=>7, // Résolution du plan de cession
1512=>7, // Résolution du plan de continuation
1513=>7, // Résolution du plan de sauvegarde
1515=>74, // Arrêt divers
1517=>59, // Rectification d'une erreur matérielle
1520=>7, // Ordonnance
1525=>74, // Appel du ministère public
1530=>7, // Jugement constatant l'impécuniosité de la procédure de liquidation
1540=>7, // Ordonnance statuant sur les contestations du projet de répartition
1541=>74, // Rétractation de prononcé de liquidation judiciaire sur tierce opposition
1542=>74, // Rétractation de jugement d'ouverture d'une procédure de sauvegarde sur tierce opposition
1543=>74, // Rétractation de jugement d'ouverture d'une procédure de redressement judiciaire sur tierce opposition
1544=>74, // Rétractation de jugement d'ouverture d'une procédure de liquidation judiciaire sur tierce opposition
1545=>74, // Rétractation de jugement d'ouverture sur tierce opposition
1546=>74, // Autre rétractation sur tierce opposition
1550=>7, // Suites de jugements
1580=>7, // Jugement prononçant la continuation de l'activité par apurement du passif
1600=>63, // Faillite personnelle
1601=>64, // Interdiction de gérer
1602=>7, // Jugement de réhabilitation
1603=>61, // Liquidation de Biens
1604=>8, // Banqueroute
1605=>7, // Jugement autorisant la reprise des poursuites individuelles
1610=>8, // Faillite personnelle (Loi de 1985)
1611=>8, // Interdiction de gérer (Loi de 1985)
1620=>7, // Jugement condamnant le dirigeant en comblement du passif
1650=>8, // Rétablissement Personnel
1700=>7, // Décision soumise à publicité
1900=>8, // Interdiction temporaire d'exercice de la profession de CAC
1901=>8, // Radiation de la liste des CAC
1999=>7, // Autre procédure collective
// MMD
2000=>4, // Mention d'office
2100=>39, // Chg.Capital/Cess.apport de parts
2101=>39, // Chg.Capital/Cess.apport de parts
2102=>39, // Chg.Capital/Cess.apport de parts
2200=>4, // Cessation d'activité
2201=>4, // Cessation d'activité temporaire
2202=>41, // Dissolution
2203=>41, // Dissolution de la société
2204=>41, // Cessation d'activité avec dissolution
2205=>4, // Fermeture du fonds
2206=>39, // Mise en sommeil de la société
2207=>39, // Suppression d'une branche d'activité
2208=>39, // Suppression de l'établissement principal
2209=>39, // Vente du fonds
2210=>39, // Déclaration de dissolution par l'associé unique.
2211=>39, // Clôture de la liquidation
2212=>39, // Liquidation amiable
2300=>39, // Changement d'Adresse
2301=>39, // Modification de l'adresse du siège
2302=>39, // Modification de l'enseigne
2303=>39, // Modification de la date de clôture de l'exercice
2304=>39, // Modification de la date de début d'activité
2305=>39, // Modification de la dénomination
2306=>39, // Modification de la durée de la société
2307=>39, // Modification de la forme juridique
2308=>39, // Modification du nom
2309=>39, // Modification du nom commercial
2310=>39, // Modification du pseudonyme
2311=>39, // Modification sur l'exploitation
2312=>39, // Modification(s) diverse(s)
2313=>39, // Modification de l'activité
2314=>39, // Poursuite de l'activité
2315=>39, // Modification de l'administration
2316=>39, // Mise en activité de la société
2317=>39, // Modification du sigle
2318=>39, // Modifications diverses
2319=>39, // Poursuite de l'activité malgré la perte de plus de...
2320=>39, // Reconsitution de l'actif net
2321=>39, // Reconsitution de la moitié de l'actif net
2350=>39, // Déclaration des associés (loi du 1er février 2005)
2401=>39, // Changement de régime matrimonial
2402=>39, // Changement de régime matrimonial (divorce)
2403=>39, // Changement de régime matrimonial (mariage)
2404=>39, // Changement de régime matrimonial (veuvage)
2405=>39, // Changement de régime matrimonial (contrat de maria...
2406=>39, // Reprise du fonds par le conjoint
2407=>39, // Mention du conjoint collaborateur
2408=>39, // Radiation du conjoint collaborateur
2500=>3, // Confirmation établissement principal ou secondaire
2510=>39, // L'établissement secondaire devient principal
2520=>39, // Extension de l'établissement principal
2600=>39, // Décès
2610=>39, // Décision de l'unique actionnaire
2620=>39, // Transmission universelle du patrimoine
2630=>39, // Donation/Partage
2635=>39, // Cession de parts
2639=>39, // Nantissement de parts sociales
2640=>39, // Changement de domicile personnel
2650=>39, // Changement de nationalité
2660=>39, // Réalisation de l'apport partiel d'actif
2661=>39, // Apport partiel
2700=>39, // Fusion/Absorption (entitée absorbante)
2701=>39, // Fusion/Absorption (Entitée absorbante. Entité abso...
2702=>39, // Fusion/Absorption (Entitée absorbante. Entité abso...
2703=>39, // Fusion/Absorption (Entitée absorbante. Entité abso...
2710=>39, // Projet de fusion (entitée absorbante)
2720=>39, // Fusion/Absorption (entitée absorbée)
2721=>39, // Fusion/Absorption (entitée absorbée non identifiée...
2725=>39, // Fusion/Absorption
2726=>39, // Projet de Fusion/Absorption
2730=>39, // Projet de fusion (entitée absorbée)
2740=>39, // Scission
2750=>39, // Société participation
2800=>37, // Location gérance reçue
2840=>38, // Location/Gérance
2850=>38, // Location gérance donnée : Précédent propriétaire e...
2851=>38, // Location gérance donnée : Précédent propriétaire
2860=>38, // Location gérance donnée : Précédent exploitant
2870=>38, // Location gérance donnée
2875=>38, // Gérance/Mandat
2880=>38, // Renouvellement de location gérance
2881=>38, // Changement de location gérance
2885=>42, // Fin de location gérance
2890=>38, // Location gérance relative à une branche
2891=>39, // Location gérance relative à un établissement
2892=>39, // Location gérance relative à un fond
2900=>32, // Transfert d'établissement
2901=>32, // Transfert de siège
2902=>32, // Transfert du fonds
2903=>32, // Projet de transfert du siège
2904=>32, // Transfert du siège à l'étranger
2950=>32, // Création de fonds
2980=>32, // Transfert entre tribunaux
// DEPOTS DES COMPTES
3100=>91,
3200=>91,
3300=>91,
3999=>91,
// CREATIONS
4000=>1, // Création d'entreprise
4050=>1, // Création d'entreprise sans activité
4100=>1, // Création d'entreprise sans établissement
4200=>17, // Création d'établissement
4250=>17, // Création suite à transfert
4300=>17, // Création suite à reprise d'activité
4350=>1, // Création suite à fin de location-gérance
4355=>1, // Création suite à prise en location-gérance
4360=>1, // Reprise d'activité par suite de la résolution de v
4400=>1, // Création suite à changement de FJ
4410=>1, // Création suite à héritage ou donation
4450=>1, // Création suite à reprise par le conjoint
4500=>17, // Fonds acquis dans le cadre d'une PC
4501=>17, // Fonds acquis par achat
4502=>17, // Fonds acquis par apport
4600=>1, // Immatriculation d'une société de droit européen
4999=>1, // Création
// ventes !!!
5500=>2, // Entreprise réalisant la vente
5501=>2, // Entreprise réalisant la vente : Ancien propriétair... BODA ventes 12 0000-00-00 00:00:00
5502=>2, // Entreprise réalisant la vente : Ancien propriétair... BODA ventes 12 0000-00-00 00:00:00
5503=>2, // Entreprise réalisant la vente : Ancien propriétair... BODA ventes 12 0000-00-00 00:00:00
5510=>2, // Entreprise réalisant la vente : Co-propriétaire BODA ventes 12 0000-00-00 00:00:00
5600=>2, // Entreprise réalisant l'acquisition BODA ventes 12 0000-00-00 00:00:00
5650=>2,
5700=>2, // Entreprise réalisant l'acquisition BODA ventes 12 0000-00-00 00:00:00
5999=>2,
// RADIATIONS
6000=>4, //Radiation pour cause de clôture de la liquidation (amiable/simplifié/général)
6001=>4, //Radiation pour cause de clôture de la liquidation amiable
6002=>4, //Radiation pour cause de clôture de la liquidation judiciaire pour IA
6003=>4, //Radiation pour cause de clôture de la liquidation judiciaire
6004=>4, //Radiation pour cause de clôture de la liquidation judiciaire simplifié
6005=>4, //Radiation pour clôture du plan de cession
6100=>4, //Radiation pour cause de décès
6200=>4, //Radiation pour cause de mention d'office
6201=>4, //Radiation pour cause de cessation d'activité
6300=>4, //Radiation pour cause de non-exercice
6400=>4, //Radiation pour cause de transfert
6500=>4, //Radiation pour cause de jugement de clôture du plan de cession
6600=>4, //Radiation d'un établissement
6700=>4, //Radiation
);
$tabEven2RO=array( 2305=>'a',
2308=>'a', // Chg de dénomination(RS,Ens,Sigle)
2309=>'a', // Modification du nom commercial BODB mmd 12 0000-00-00 00:00:00
2310=>'a', // Modification du pseudonyme
2300=>'b', // Changement d'Adresse
2301=>'b',
2900=>'b', // Transfert d'établissement
2901=>'b', // Transfert de siège
2902=>'b', // Transfert du fonds
2903=>'b', // Projet de transfert du siège
2904=>'b', // Transfert du siège à l'étranger
2950=>'b', // Création de fonds
2980=>'b', // Transfert entre tribunaux
2101=>'c', // Chg.Capital/Cess.apport de parts
2315=>'d', // Changement de Dirigeants
2313=>'e', // Mod Act/obj.soc./Cess./Mise somm.
2307=>'f', // Changement de Forme juridique
2318=>'g', // Opération sur Participations
2725=>'h', // Fusion Absorption
2318=>'i', // Mod.garantie financière/Caution
2401=>'j', // Changement de régime matrimonial
2319=>'k', // Non dissolution anticipée
2318=>'l', // Non dissolution anticipée
2318=>'m', // Dissolution anticipée (ou non)
2303=>'n', // Mod.date cloture exercice social
5500=>'V', // Entreprise réalisant la vente
5501=>'V', // Entreprise réalisant la vente : Ancien propriétair... BODA ventes 12 0000-00-00 00:00:00
5502=>'V', // Entreprise réalisant la vente : Ancien propriétair... BODA ventes 12 0000-00-00 00:00:00
5503=>'V', // Entreprise réalisant la vente : Ancien propriétair... BODA ventes 12 0000-00-00 00:00:00
5510=>'V', // Entreprise réalisant la vente : Co-propriétaire BODA ventes 12 0000-00-00 00:00:00
5600=>'V',
5650=>'V',
5700=>'A', // Entreprise réalisant l'acquisition BODA ventes 12 0000-00-00 00:00:00
1411=>'F', // Arrêt du plan de cession
1408=>'G', // Modification du plan de cession
1409=>'N', // Modification du plan de continuation
1414=>'M', // Arrêt du plan de redressement
);
function exporte($txt, $lon, $sep='') {
$txt=strtr(trim($txt),array('&#039;'=>"'",'&amp;'=>'&', '&sup2;'=>'²', "\r"=>'', "\n"=>'', "\t"=>''));
if ($sep=='') return sprintf("%-".$lon.'.'.$lon."s", $txt);
return trim(sprintf("%-".$lon.'.'.$lon."s", $txt)).$sep;
}
function conversionSd2So2000($nomFichierIn, $numeroAbonneBil='000960030', $nomFichierOut='', $optionFicheId='S') {
$message='';
$iDb=new WDB();
$iBodacc=new MBodacc();
$iInsee=new MInsee();
$iRncs=new MRncs();
global $tabEvenSolib;
global $tabEven2SO;
global $tabEven2RO;
$tabLignes=file($nomFichierIn);
//print_r($tabLignes);
//die();
$ligne001=$ligne100=$ligne104=$ligne999=0;
if ($nomFichierOut=='') $nomFichierOut=$nomFichierIn.'.bil';
$fp=fopen($nomFichierOut, 'w');
$dateJ=date('Ymd');
$ecrireLignePre=false;
/** Codes/Variables à gérer **/
$depPar=0;
$SOSTAE='';
$typeFicheId='I'; // Fiche Identifiant
$optExtInsee=$optScore=false;
/** Type de fiche Id **/
if (strpos($optionFicheId, 'S')==true) $typeFicheId='S'; // Fiche Standard
elseif (strpos($optionFicheId, 'C')==true) $typeFicheId='C'; // Fiche Complète
if (strpos($optionFicheId, 'E')==true) $optExtInsee=true; // Option Extension INSEE
if (strpos($optionFicheId, 'N')==true) $optScore=true; // Option Score
foreach ($tabLignes as $i=>$ligne) {
$typeLigne=substr($ligne, 0, 3)*1;
switch ($typeLigne) {
case 1: // Ligne ignorée
// Ecriture de l'entête
$ligne001++;
break;
case 100: // Structure Bodacc
case 999: // Fin
$strTxt=wordwrap($txtAnn, 39, EOL);
$tabTxt=explode(EOL, $strTxt);
foreach($tabTxt as $j=>$txt) {
$SOSEQ++;
if($j%16==0) {
// Type d'enregistrement 1=EntConf, 2=Rejet, 4=Multipropo, 5=Suivi MAJ Entrep, 7=Infos, 8=Envoi documen, 9=Annonce
$typEnr=9;
if ($j==0) $ligneTXT =initstr($SONABO, 9, '0', ALIGN_RIGHT); // Numéro d'abonné BIL ?
else $ligneTXT.=EOL.initstr($SONABO, 9, '0', ALIGN_RIGHT); // Numéro d'abonné BIL ?
$ligneTXT.=initstr($SONUME, 9, '0', ALIGN_RIGHT); // Numéro d'entreprise BIL ?
$ligneTXT.=initstr($SONUS, 9, '0', ALIGN_RIGHT); // Numéro d'UFS BIL ?
$ligneTXT.=initstr($nann, 9, '0', ALIGN_RIGHT); // Numéro d'annonce BIL ?
$ligneTXT.=initstr($siren, 9, '0', ALIGN_RIGHT); // Siren
$ligneTXT.=initstr($nic, 5, '0', ALIGN_RIGHT); // Nic
$ligneTXT.=exporte('SE', 2); // Code produit BIL ? SE, DE, DI, SJ
$ligneTXT.=initstr($SOSEQ, 5, '0', ALIGN_RIGHT); // Numéro dans la séquence
$ligneTXT.=initstr($dateJ, 8, '0', ALIGN_RIGHT); // Numéro dans la séquence
$ligneTXT.=exporte($typEnr, 1); // Type d'enregistrement 1=EntConf, 2=Rejet, 4=Multipropo, 5=Suivi MAJ Entrep, 7=Infos, 8=Envoi documen, 9=Annonce
$ligneTXT.=exporte('TXT', 3); // Structure identité
$ligneTXT.=exporte('A', 1); // Confirmation 'A'uto ou 'C' pour manuelle
$ligneTXT.=exporte($ref, 30); // Réf. Client
$ligneTXT.=exporte($SOORIG, 1); // 1:Insee actif, 2=Ufs, 3=Annonce, 4=Manuelle, 5=Asso, 7=RCS actif, 8=Insee cessa eco, 9=Insee/RCS radié
$ligneTXT.=exporte($SOJAL, 3); // 001=Bodacc A, 200=Bodacc B, 300=Bodacc C
$ligneTXT.=initstr($datePar, 8, '0', ALIGN_RIGHT); // Date de parution
$ligneTXT.=initstr(0, 5, '0', ALIGN_RIGHT); // Page
$ligneTXT.=exporte($codeEve, 2); //
$ligneTXT.=initstr($depPar, 2, '0', ALIGN_RIGHT);
$ligneTXT.=initstr($numAnn, 6, '0', ALIGN_RIGHT);
$ligneTXT.=exporte($codeRol, 1); //
$ligneTXT.=exporte('T', 1);
}
$ligneTXT.=exporte($txt, 40);
}
$codeEve=$codeRol='';
$ligneOut=$ligneID.EOL.$ligneANN.EOL.$ligneTXT;
if ($ligne100>1) $ecrireLignePre=true;
if($typeLigne==999) {
$ligne999++;
break;
}
$nann = trim(substr($ligne, 3 , 10 ))*1; // N° d'annonce
$siren = substr($ligne, 13 , 9 ); // Siren de l'entreprise concernée par l'annonce
$tabIdentite=@$iInsee->getIdentiteEntreprise($siren);
$nic = trim(substr($ligne, 22, 5 ))*1; // Nic
$ref = trim(substr($ligne, 71, 18 )); // Référence Client
$numPar = substr($ligne, 27 , 3 ); // Numéro de parution du Bodacc dans l'année
$bodacc = substr($ligne, 30 , 1 ); // Code Bodacc (A, B ou C) A, B ou C
$datePar= substr($ligne, 31 , 8 )*1; // Date de parution du Bodacc Format AAAAMMJJ
$numAnn = substr($ligne, 39 , 5 ); // Numéro de l'annonce dans le Bodacc
$typeAnn= substr($ligne, 47 , 1 ); // Type d'annonce Bodacc I=Insertion (publication d'une annonce), A=Additif (ajout à une précédente annonce), (1) R=Rectificatif (correction d'une annonce), S=Suppression d'une annonce
$corNumA= substr($ligne, 48 , 5 ); // Numéro de l'annonce corrigée Si annonce différent de Insertion
$corDate= substr($ligne, 53 , 8 ); // Date du Bodacc de l'annonce corrigée Si annonce différent de Insertion. Format AAAAMMJJ
$corPage= substr($ligne, 61 , 6 ); // Première page du Bodacc de l'annonce corrigée Si annonce différent de Insertion
$corNumP= substr($ligne, 67 , 4 ); // Numéro parution du Bodacc dans l'année de l'annonce corrigée Si annonce différent de Insertion
$numRC = trim(substr($ligne,95 , 9 )); // Numéro de RC (Registre du Commerce) de l'entreprise
$rs = trim(substr($ligne,104, 150 )); // Raison sociale de l'entreprise
$nomCom = trim(substr($ligne,254, 100 )); // Nom Commerciale
$ens = trim(substr($ligne,354, 100 )); // Enseigne
$fj = trim(substr($ligne,484, 4 ))*1; // FJ
$fjLib = trim(substr($ligne,488, 90 )); // FJ libellé
$capMnt = trim(substr($ligne,578, 15 )); // Capital
$capDev = trim(substr($ligne,593, 3 )); // Capital Devise
$adrNum = trim(substr($ligne,596, 4 )); //
$adrBtq = trim(substr($ligne,600, 1 )); // FJ libellé
$adrVoi = trim(substr($ligne,601, 5 )); // FJ libellé
$adrLib = trim(substr($ligne,606, 50 )); // FJ libellé
$adrL2 = trim(substr($ligne,656, 50 )); // FJ libellé
$adrL3 = trim(substr($ligne,706, 40 )); // FJ libellé
$adrCP = trim(substr($ligne,746, 5 ))*1; // FJ libellé
$adrVil = trim(substr($ligne,751, 45 )); // FJ libellé
if ($adrCP==0) {
$adrNum = trim(substr($ligne,796, 4 )); // FJ libellé
$adrBtq = trim(substr($ligne,800, 1 )); // FJ libellé
$adrVoi = trim(substr($ligne,801, 5 )); // FJ libellé
$adrLib = trim(substr($ligne,806, 50 )); // FJ libellé
$adrL2 = trim(substr($ligne,856, 50 )); // FJ libellé
$adrL3 = trim(substr($ligne,906, 40 )); // FJ libellé
$adrCP = trim(substr($ligne,946, 5 ))*1; // FJ libellé
$adrVil = trim(substr($ligne,951, 45 )); // FJ libellé
}
$even=array();
$even[7]= substr($ligne, 996 , 4 )*1; // Code Evènement Bodacc n°1 Cf. Table EVEN
$even[6]= substr($ligne, 1000, 4 )*1; // Code Evènement Bodacc n°2 Cf. Table EVEN
$even[5]= substr($ligne, 1004, 4 )*1; // Code Evènement Bodacc n°3 Cf. Table EVEN
$even[4]= substr($ligne, 1008, 4 )*1; // Code Evènement Bodacc n°4 Cf. Table EVEN
$even[3]= substr($ligne, 1012, 4 )*1; // Code Evènement Bodacc n°5 Cf. Table EVEN
$even[2]= substr($ligne, 1016, 4 )*1; // Code Evènement Bodacc n°6 Cf. Table EVEN
$even[1]= substr($ligne, 1020, 4 )*1; // Code Evènement Bodacc n°7 Cf. Table EVEN
$even[0]= substr($ligne, 1024, 4 )*1; // Code Evènement Bodacc n°8 Cf. Table EVEN
$txtEven='';
foreach ($even as $codeEven)
if ($codeEven<>0) {
if (@$codeEve=='') $codeEve=$tabEven2SO[$codeEven];
if (@$codeRol=='') $codeRol=$tabEven2RO[$codeEven];
$txtEven.=$iBodacc->getEvenement($codeEven).', ';
$catEven=$iBodacc->getChapitreEvenement($codeEven);
}
else
$txtEven.='';
$txtEven=substr($txtEven,0,strlen($txtEven)-2);
$dateCess= substr($ligne, 1136, 8 )*1; // Date de cessat° des paiements
$dateJuge= substr($ligne, 1144, 8 )*1; // Date de jugement
$dateEffet=substr($ligne, 1161, 8 )*1; // Date d'effet
if ($dateEffet*1==0) $dateEffet=$dateJuge;
$vteMnt=trim(substr($ligne, 1169, 15 ))*1; // Montant de la vente
$vteDev=substr($ligne, 1184, 3 ); // Devise de la vente
if ($nic*1==0) $nic=$tabIdentite['Nic'];
$SONABO=$numeroAbonneBil;
if ($tabIdentite['Actif']==1) $SOORIG=1;
elseif (!isset($tabIdentite['Actif'])) $SOORIG=3;
elseif ($tabIdentite['Actif']==0 && ($tabIdentite['EntActiveRCS']==1||$tabIdentite['EtabActifRCS']==1)) $SOORIG=7;
elseif ($tabIdentite['Actif']==0 && $tabIdentite['EntActiveRCS']==0 && $tabIdentite['EtabActifRCS']==0) $SOORIG=9;
else $SOORIG=8;
if ($tabIdentite['Civilite']==1) $SOTSEX='M';
elseif ($tabIdentite['Civilite']==2) $SOTSEX='F';
else $SOTSEX='';
$SONUME=''.preg_replace('/^0+/','', $tabIdentite['Source']).$tabIdentite['SourceId'];
$SONUS='000000000';
$SOSEQ=1;
if ($adrCP==0) {
$adrNum = $tabIdentite['AdresseNum'];
$adrBtq = $tabIdentite['AdresseBtq'];
$adrVoi = $tabIdentite['AdresseVoie'];
$adrLib = $tabIdentite['AdresseRue'];
$adrL2 = $tabIdentite['Adresse2'];
$adrL3 = '';
$adrCP = $tabIdentite['CP'];
$adrVil = $tabIdentite['Ville'];
}
$typEnr=1;
$DBILS2 =initstr($SONABO, 9, '0', ALIGN_RIGHT); // Numéro d'abonné BIL ?
$DBILS2.=initstr($SONUME, 9, '0', ALIGN_RIGHT); // Numéro d'entreprise BIL ?
$DBILS2.=initstr($SONUS, 9, '0', ALIGN_RIGHT); // Numéro d'UFS BIL ?
$DBILS2.=initstr($nann, 9, '0', ALIGN_RIGHT); // Numéro d'annonce BIL ?
$DBILS2.=initstr($siren, 9, '0', ALIGN_RIGHT); // Siren
$DBILS2.=initstr($nic, 5, '0', ALIGN_RIGHT); // Nic
$DBILS2.=exporte('SE', 2); // Code produit BIL ? SE, DE, DI, SJ
$DBILS2.=initstr($SOSEQ, 5, '0', ALIGN_RIGHT); // Numéro dans la séquence dans le groupe
$DBILS2.=initstr($dateJ, 8, '0', ALIGN_RIGHT); // Date d'envoi de l'info
$DBILS2.=exporte($typEnr, 1); // Type d'enregistrement 1=EntConf, 2=Rejet, 4=Multipropo, 5=Suivi MAJ Entrep, 7=Infos, 8=Envoi documen, 9=Annonce
$DBILS2.=exporte('ID', 3); // Structure identité
$DBILS2.=exporte('A', 1); // Confirmation 'A'uto ou 'C' pour manuelle
$DBILS2.=exporte($ref, 30); // Réf. Client
//($annonce['codePostalSiege'], 5, '0', ALIGN_RIGHT)
$DBILS2.=exporte($SOORIG, 1); // 1:Insee actif, 2=Ufs, 3=Annonce, 4=Manuelle, 5=Asso, 7=RCS actif, 8=Insee cessa eco, 9=Insee/RCS radié
$DBILS2.=exporte('', 1); // D=Siren douteux
$DBILS2.=exporte('', 9); // Témoin de MAJ
$DBILS2.=exporte($rs, 60); //
$DBILS2.=exporte(substr($rs,60),30); //
$DBILS2.=exporte($tabIdentite['Sigle'], 30); // Vide !
$DBILS2.=exporte($ens, 60); //
$DBILS2.=initstr($adrNum, 4, '0', ALIGN_RIGHT); //
$DBILS2.=exporte($adrBtq, 1); //
$DBILS2.=exporte(preg_replace('/ +/',' ',$adrVoi.' '.$adrLib), 33); //
$DBILS2.=exporte($adrVil, 32); //
$DBILS2.=initstr($adrCP, 5, '0', ALIGN_RIGHT); //
$DBILS2.=exporte(preg_replace('/ +/',' ',$adrL2.' '.$adrL3), 30); //
$DBILS2.=initstr($tabIdentite['DateCreaEn'], 8, '0', ALIGN_RIGHT); // Date créa ENT
$DBILS2.=exporte($tabIdentite['Siege'], 1); // Statut de l'établissement
$DBILS2.=initstr($tabIdentite['FJ'], 4, 0, ALIGN_RIGHT);
$DBILS2.=exporte($SOTSEX, 1); // Sexe M/F
$DBILS2.=initstr($tabIdentite['NbEtab']*1, 4, 0, ALIGN_RIGHT);
$DBILS2.=exporte($SOSTAE, 4); // NAF4 ENT
$DBILS2.=exporte('', 4); // Famille ENT
$DBILS2.=exporte($SOSTAE, 4); // NAF4 ETAB
$DBILS2.=exporte('', 4); // Famille ETAB
$DBILS2.=exporte('', 1); // Indicateur Procol
$DBILS2.=exporte('', 2); // Code monnaie
$DBILS2.=initstr(0, 13, '0', ALIGN_RIGHT); // Montant du capital
$DBILS2.=exporte('', 7); // Effectif
$DBILS2.=exporte('', 9); // Num RC
$DBILS2.=initstr(strtr($tabIdentite['Tel'],array('.'=>'','+'=>'00',' '=>'','-'=>'','/'=>'')), 10, '0', ALIGN_RIGHT);
$DBILS2.=initstr(strtr($tabIdentite['Fax'],array('.'=>'','+'=>'00',' '=>'','-'=>'','/'=>'')), 10, '0', ALIGN_RIGHT);
//5630Z5630Z RUE 00000000 00000000 2901929019
$DBILS2.=exporte($tabIdentite['Web'], 40);
$DBILS2.=exporte('', 3); // Qualité du dirigeant
$DBILS2.=exporte('', 60); // NOM, Prénom du dirigeant
$DBILS2.=initstr(0, 8, '0', ALIGN_RIGHT); // Date Naiss Diri
// $DBILS2.=exporte('', 79);
$DBILS2.=exporte('', 35); // Lieu de Naissance
if ($optScore) {
$tabTmp=$iDb->select('scores_surveillance',
'siren, actif, procol, indiScore, indiScore20, encours, indiScoreDate, dateBilan, indiScorePre, indiScore20Pre, encoursPre, indiScoreDatePre, sourceModif, nbModifs, dateUpdate',
"siren=$siren AND indiScoreDate>0", false, MYSQL_ASSOC);
if (@$tabTmp[0]['siren']*1==$siren) {
echo "$siren, parution Annonce le $datePar, calcul le ".@$tabTmp[0]['dateUpdate'].EOL;
$tabScore=$tabTmp[0];
$note=$tabScore['indiScore20'];
$encours=round($tabScore['encours']/1000);
} else {
echo "$siren, parution Annonce le $datePar, pas de calcul !".EOL;
$tabScore=@calculIndiScore($siren, $nic, false, 0, false);
$note=$tabScore['Indiscore20'];
$encours=round($tabScore['encours']/1000);
}
$encoursDev='EUR';
} else
$note=$encours=$encoursDev='';
$DBILS2.=initstr($note, 2, '0', ALIGN_RIGHT); //37 Note sur 20
$DBILS2.=initstr($encours, 7, '0', ALIGN_RIGHT); //44 Encours KE KF
$DBILS2.=exporte('', 1); //45 Code paiement
$DBILS2.=exporte('', 1); //46 Code situfi
$DBILS2.=exporte('', 1); //47 Code Avis
$DBILS2.=exporte($encoursDev,3); //47 Encours de la devise
$DBILS2.=exporte('', 6); // Code Sicovam
$DBILS2.=exporte('', 2); // Type de marché RM, CT, SM, HC, MO, NM, ML, AL, MR
$DBILS2.=exporte('', 12); // Code ISIN
$DBILS2.=exporte('', 9); // Filler Bil anciennement sur 83, 32 puis 9
$DBILS2.=exporte($tabIdentite['NafEnt'], 5);
$DBILS2.=exporte($tabIdentite['NafEtab'], 5);//
$DBILS2.=exporte('', 18); //60 Filler
$DBILS2.=exporte('', 4); // Filler RUE ?
$DBILS2.=exporte('', 5); // Nic source cible de l'étab
$DBILS2.=initstr(0, 8, '0', ALIGN_RIGHT); // Date de MAJ du capital
$DBILS2.=exporte('', 3); // Monnaie d'origine du capital
$DBILS2.=exporte('', 3); // Monnaie de livraison du capital (fin de l'ancien filler)
$DBILS2.=initstr(0, 8, '0', ALIGN_RIGHT); // Date de création de l'établissement
$DBILS2.=exporte('', 1); // Origine création
$DBILS2.=exporte('', 2); // Tr Eff Ent
$DBILS2.=exporte('', 2); // Tr Eff Etab
$DBILS2.=exporte('', 2); // NAP 40 Entrep
$DBILS2.=exporte('', 2); // NAP 40 Etab
$DBILS2.=exporte('', 5); // Act Artisanale Etab
$DBILS2.=exporte('', 1); // Modalité activité entrep
$DBILS2.=exporte('', 1); // Modalité activité etab
$DBILS2.=exporte('', 2); // Code Région Entrep
$DBILS2.=exporte('', 2); // Code Région Etab
$DBILS2.=exporte($tabIdentite['Dept'], 2); // Département du siège
$DBILS2.=exporte($tabIdentite['codeCommune'], 3); // Localité
$DBILS2.=exporte($tabIdentite['Dept'], 2); // Département de l'étab
$DBILS2.=exporte($tabIdentite['codeCommune'], 3); // Localité
$DBILS2.=exporte('', 1); // Dept Outre Mer
$DBILS2.=exporte('', 1); // Arrondissement
$DBILS2.=exporte('', 1); // Canton Dom ?
$DBILS2.=exporte('', 2); // Canton
$DBILS2.=exporte('', 8); // Code Ilot
$DBILS2.=exporte('', 2); // ZEMET
$DBILS2.=exporte('', 2); // Tranche Comm Etab
$DBILS2.=exporte('', 2); // Dept Unite urbaine
$DBILS2.=exporte('', 1); // Taille UU
$DBILS2.=exporte('', 2); // UU etab
$DBILS2.=exporte('', 5); // Code rivoli
$DBILS2.=exporte('', 2); // PPale région entrep
$DBILS2.=exporte('', 1); // Code monoreg
$DBILS2.=exporte('', 1); // Code monoact
$DBILS2.=exporte('', 1); // Code tranche CA
$DBILS2.=exporte('', 1); // Tranche part CA export
$DBILS2.=exporte('', 1); // RECME
$DBILS2.=exporte('', 1); // Ordinarité
$DBILS2.=exporte('', 2); // Code nature étab
$DBILS2.=exporte('', 2); // Sigularité étab
$ligneID=$DBILS2;
$ligne100++;
$cor='';
if ($typeAnn<>'I')
$cor=" - Annonce n°$corNumA $corNumP, page $corPage, du ".WDate::dateT('Ymd','d/M/Y',$corDate);
switch($typeAnn) {
case 'I': $cor='Insertion'.$cor; break;
case 'A': $cor='Additif'.$cor; break;
case 'R': $cor='Rectificatif'.$cor; break;
case 'S': $cor='Suppression'.$cor; break;
default: break;
}
$codeTri= substr($ligne, 89 , 6 ); // Code Tribunal Codification interne utilisée par le Bodacc
$libTri=$iBodacc->getTribunalNom($codeTri);
$SOSEQ++;
if ($bodacc=='A') $SOJAL='001';
elseif ($bodacc=='B') $SOJAL='200';
elseif ($bodacc=='C') $SOJAL='300';
else $SOJAL='999';
$DBILS2 =initstr($SONABO, 9, '0', ALIGN_RIGHT); // Numéro d'abonné BIL ?
$DBILS2.=initstr($SONUME, 9, '0', ALIGN_RIGHT); // Numéro d'entreprise BIL ?
$DBILS2.=initstr($SONUS, 9, '0', ALIGN_RIGHT); // Numéro d'UFS BIL ?
$DBILS2.=initstr($nann, 9, '0', ALIGN_RIGHT); // Numéro d'annonce BIL ?
$DBILS2.=initstr($siren, 9, '0', ALIGN_RIGHT); // Siren
$DBILS2.=initstr($nic, 5, '0', ALIGN_RIGHT); // Nic
$DBILS2.=exporte('SE', 2); // Code produit BIL ? SE, DE, DI, SJ
$DBILS2.=initstr($SOSEQ, 5, '0', ALIGN_RIGHT); // Numéro dans la séquence
$DBILS2.=initstr($dateJ, 8, '0', ALIGN_RIGHT); // Numéro dans la séquence
$DBILS2.=exporte('9', 1); // Type d'enregistrement 1=EntConf, 2=Rejet, 4=Multipropo, 5=Suivi MAJ Entrep, 7=Infos, 8=Envoi documen, 9=Annonce
$DBILS2.=exporte('ANN', 3); // Structure identité
$DBILS2.=exporte('A', 1); // Confirmation 'A'uto ou 'C' pour manuelle
$DBILS2.=exporte($ref, 30); // Réf. Client
//($annonce['codePostalSiege'], 5, '0', ALIGN_RIGHT)
$DBILS2.=exporte($SOORIG, 1); // 1:Insee actif, 2=Ufs, 3=Annonce, 4=Manuelle, 5=Asso, 7=RCS actif, 8=Insee cessa eco, 9=Insee/RCS radié
$DBILS2.=exporte($SOJAL, 3); // 001=Bodacc A, 200=Bodacc B, 300=Bodacc C
$DBILS2.=initstr($datePar, 8, '0', ALIGN_RIGHT); // Date de parution
$DBILS2.=initstr(0, 5, '0', ALIGN_RIGHT); // Page
if ($codeEve=='') {
$message.="Siren : $siren, Bodacc $bodacc, code évènement non géré : '$codeEven'".EOL;
/*$nann = trim(substr($ligne, 3 , 10 ))*1; // N° d'annonce
$siren = substr($ligne, 13 , 9 ); // Siren de l'entreprise concernée par l'annonce
$tabIdentite=@$iInsee->getIdentiteEntreprise($siren);
$nic = trim(substr($ligne, 22, 5 ))*1; // Nic
$ref = trim(substr($ligne, 71, 18 )); // Référence Client
$numPar = substr($ligne, 27 , 3 ); // Numéro de parution du Bodacc dans l'année
= substr($ligne, 30 , 1 ); // Code Bodacc (A, B ou C) A, B ou C
$datePar= substr($ligne, 31 , 8 )*1; // Date de parution du Bodacc Format AAAAMMJJ
$numAnn*/
sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Annonces Legales SOFID (ERREUR)", $message);
return $message;
}
$DBILS2.=exporte($codeEve, 2); //
$DBILS2.=initstr($depPar, 2, '0', ALIGN_RIGHT);
$DBILS2.=initstr($numAnn, 6, '0', ALIGN_RIGHT);
$DBILS2.=exporte($codeRol, 1); //
$DBILS2.=exporte($tabEvenSolib[$codeEve], 5);
$DBILS2.=exporte($codeTri, 6); //
$DBILS2.=exporte($numPar, 3); //
$DBILS2.=initstr($dateJuge, 8, '0', ALIGN_RIGHT); // Date de jugement
$DBILS2.=initstr($dateEffet, 8, '0', ALIGN_RIGHT); // Date d'effet
$DBILS2.=initstr($dateCess, 8, '0', ALIGN_RIGHT); // Date de cessat° des paiements
$DBILS2.=exporte($vteDev, 2); // Devise de la vente
$DBILS2.=initstr($vteMnt, 11, '0', ALIGN_RIGHT); // Montant de la vente
$DBILS2.=exporte('', 33); // Particularité
$DBILS2.=exporte('', 4); // Code rubrique du Bodacc A1xx
$DBILS2.=exporte('', 6); // Code lib injecté
$tabJuge=$iRncs->getIntervenants($siren);
foreach ($tabJuge as $iDepot=>$depot) {
$DBILS2.=exporte($depot['admid'], 5); // Mot clé Nom
$DBILS2.=exporte($depot['admtype'], 1); // Type officier ministeriel
$DBILS2.=initstr($depot['admid'], 7, '0', ALIGN_RIGHT); // Code Bil
$DBILS2.=exporte($depot['admnom'], 30); // Nom syndic
$DBILS2.=initstr($depot['admadrNum'], 4, '0', ALIGN_RIGHT); // N° rue
$DBILS2.=exporte($depot['admadrInd'], 1); // Bis
$DBILS2.=exporte($depot['admadrType'], 3); // Type Voie
$DBILS2.=exporte($depot['admadrVoie'], 33); // Lib Voie
$DBILS2.=exporte($depot['admadr2'], 32); // Lieu
$DBILS2.=exporte($depot['admadrCP'], 5); // CP
$DBILS2.=exporte($depot['admadrVille'], 32); // Ville
$DBILS2.=exporte('', 10); // Tel
if ($iDepot==1) break;
}
$ligneANN=$DBILS2;
$txtAnn='';
//if ($ligne100>1) $ecrireLignePre=true;
break;
case 104: // Annonce
$ligne104++;
$txtAnn=trim($txtAnn.' '.trim(substr($ligne, 89 , 1910))); // Texte Annonce
break;
default: // Ligne non gérée
break;
}
if ($ecrireLignePre) {
fwrite($fp, $ligneOut.EOL);
$ecrireLignePre=false;
}
}
fclose($fp);
return true;
}

View File

@ -0,0 +1,282 @@
<?php
return array(
1000 => "Entrepreneur Individuel à Responsabilité Limité",
1100 => "Artisan Commerçant",
1200 => "Commerçant",
1300 => "Artisan",
1400 => "Officier public ou ministériel",
1500 => "Profession libérale",
1600 => "Exploitant agricole",
1700 => "Agent commercial",
1800 => "Associé Gérant de société",
1900 => "(Autre) personne physique",
2100 => "Indivision",
2110 => "Indivision entre personnes physiques",
2120 => "Indivision avec personne morale",
2200 => "Société créée de fait",
2210 => "Société créée de fait entre personnes physiques",
2220 => "Société créée de fait avec personne morale",
2300 => "Société en participation",
2310 => "Société en participation entre personnes physiques",
2320 => "Société en participation avec personne morale",
2385 => "Société en participation de professions libérales",
2400 => "Fiducie",
2700 => "Paroisse hors zone concordataire",
2900 => "Autre groupement de droit privé non doté de la personnalité morale",
3110 => "Représentation ou agence commerciale d'état ou organisme public étranger immatriculé au RCS",
3120 => "Société étrangère immatriculée au RCS",
3205 => "Organisation internationale",
3210 => "État collectivité ou établissement public étranger",
3220 => "Société étrangère non immatriculée au RCS",
3290 => "(Autre) personne morale de droit étranger",
4110 => "Établissement public national à caractère industriel ou commercial doté d'un comptable public",
4120 => "Établissement public national à caractère industriel ou commercial non doté d'un comptable public",
4130 => "Exploitant public",
4140 => "Établissement public local à caractère industriel ou commercial",
4150 => "Régie d'une collectivité locale à caractère industriel ou commercial",
4160 => "Institution Banque de France",
5191 => "Société de caution mutuelle",
5192 => "Société coopérative de banque populaire",
5193 => "Caisse de crédit maritime mutuel",
5194 => "Caisse (fédérale) de crédit mutuel",
5195 => "Association coopérative inscrite (droit local Alsace Moselle)",
5196 => "Caisse d'épargne et de prévoyance à forme coopérative",
5202 => "Société en nom collectif",
5203 => "Société en nom collectif coopérative",
5306 => "Société en commandite simple",
5307 => "Société en commandite simple coopérative",
5308 => "Société en commandite par actions",
5309 => "Société en commandite par actions coopérative",
5370 => "Société de Participations Financières de Profession Libérale Société en commandite par actions",
5385 => "Société d'exercice libéral en commandite par action",
5410 => "SARL nationale",
5415 => "SARL d'économie mixte",
5422 => "SARL immobilière pour le commerce et l'industrie (SICOMI)",
5426 => "Société immobilière de gestion",
5430 => "Safer en SARL",
5431 => "SARL mixte d'intérêt agricole",
5432 => "SARL d'intérêt collectif agricole",
5442 => "SARL d'attribution",
5443 => "SARL coopérative de construction",
5451 => "SARL coopérative de consommation",
5453 => "SARL coopérative artisanale",
5454 => "SARL coopérative d'intérêt maritime",
5455 => "SARL coopérative de transports",
5458 => "SARL coopérative ouvrière de production",
5459 => "SARL union de sociétés coopératives",
5460 => "Autre SARL coopérative",
5470 => "Société de Participations Financières de Profession Libérale en SARL",
5485 => "Société d'exercice libéral à responsabilité limitée",
5488 => "Entreprise Unipersonnelle à Responsabilité Limitée",
5498 => "SARL unipersonnelle",
5499 => "Autre société à responsabilité limitée",
5505 => "SA à participation ouvrière à conseil d'administration",
5510 => "SA nationale à conseil d'administration",
5515 => "SA d'économie mixte à conseil d'administration",
5520 => "Société d'investissement à capital variable (SICAV) à conseil d'administration",
5522 => "Société anonyme immobilière pour le commerce et l'industrie (SICOMI) à conseil d'administration",
5525 => "Société anonyme immobilière d'investissement à conseil d'administration",
5530 => "Safer anonyme à conseil d'administration",
5531 => "Société anonyme mixte d'intérêt agricole (SMIA) à conseil d'administration",
5532 => "Société anonyme mixte d'intérêt collectif agricole (SICA) à conseil d'administration",
5542 => "Société anonyme d'attribution à conseil d'administration",
5543 => "Société anonyme coopérative de construction à conseil d'administration",
5546 => "SA de HLM à conseil d'administration",
5547 => "SA coopérative de production de HLM à conseil d'administration",
5548 => "SA de crédit immobilier à conseil d'administration",
5551 => "SA coopérative de consommation à conseil d'administration",
5552 => "SA coopérative de commerçants détaillants à conseil d'administration",
5553 => "SA coopérative artisanale à conseil d'administration",
5554 => "SA coopérative (d'intérêt) maritime à conseil d'administration",
5555 => "SA coopérative de transports à conseil d'administration",
5558 => "SA coopérative ouvrière de production (SCOP) à conseil d'administration",
5559 => "SA union de sociétés coopératives à conseil d'administration",
5560 => "Autre SA coopérative à conseil d'administration",
5570 => "Société de Participations Financières de Profession Libérale en SA à conseil d'administration",
5585 => "Société d'exercice libéral à forme anonyme à conseil d'administration",
5599 => "Autre SA à conseil d'administration",
5605 => "SA à participation ouvrière à directoire",
5610 => "SA nationale à directoire",
5615 => "SA d'économie mixte à directoire",
5620 => "Société d'investissement à capital variable (SICAV) à directoire",
5622 => "Société immobilière pour le commerce et l'industrie (SICOMI) anonyme à directoire",
5625 => "Société immobilière d'investissement anonyme à directoire",
5630 => "Safer anonyme à directoire",
5631 => "Société anonyme mixte d'intérêt agricole",
5632 => "Société anonyme d'intérêt collectif agricole",
5642 => "Société anonyme d'attribution à directoire",
5643 => "Société anonyme coopérative de construction à directoire",
5646 => "Société anonyme de HLM à directoire",
5647 => "Société coopérative de production de HLM anonyme à directoire",
5648 => "SA de crédit immobilier à directoire",
5651 => "SA coopérative de consommation à directoire",
5652 => "SA coopérative de commerçants détaillants à directoire",
5653 => "SA coopérative artisanale à directoire",
5654 => "SA coopérative (d'intérêt) maritime à directoire",
5655 => "SA coopérative de transport à directoire",
5658 => "SA coopérative ouvrière de production (SCOP) à directoire",
5659 => "SA union de sociétés coopératives à directoire",
5660 => "(Autre) SA coopérative à directoire",
5670 => "Société de Participations Financières de Profession Libérale en SA à Directoire",
5685 => "Société d'exercice libéral à forme anonyme à directoire",
5699 => "Autre SA à directoire",
5710 => "Société par actions simplifiée",
5720 => "Société par actions simplifiée à associé unique ou société par actions simplifiée unipersonnelle",
5770 => "Société de Participations Financières de Profession Libérale en SAS",
5785 => "Société dexercice libéral par action simplifiée",
5800 => "Société européenne",
6100 => "Caisse dépargne et de prévoyance",
6200 => "Groupement d'intérêt économique",
6210 => "Groupement européen dintérêt économique",
6220 => "Groupement dintérêt économique",
6316 => "Coopérative dutilisation de matériel agricole en commun",
6317 => "Société coopérative agricole",
6318 => "Union de sociétés coopératives agricoles",
6411 => "Société dassurance mutuelle",
6412 => "Société mutuelle d'assurance",
6413 => "Union de sociétés mutuelles d'assurances",
6414 => "Autre société non commerciale d'assurance",
6511 => "Société Interprofessionnelle de Soins Ambulatoires",
6521 => "Société civile de placement collectif immobilier",
6532 => "Société civile dintérêt collectif agricole",
6533 => "Groupement agricole dexploitation en commun",
6534 => "Groupement foncier agricole",
6535 => "Groupement agricole foncier",
6536 => "Groupement forestier",
6537 => "Groupement pastoral",
6538 => "Groupement foncier rural",
6539 => "Société civile foncière",
6540 => "Société civile immobilière",
6541 => "Société civile immobilière de construction vente",
6542 => "Société civile dattribution",
6543 => "Société civile coopérative de construction",
6544 => "Société immobilière d'accession progressive à la propriété",
6551 => "Société civile coopérative de consommation",
6554 => "Société civile coopérative (dintérêt) maritime",
6558 => "Société civile coopérative entre médecins",
6560 => "Autre société civile coopérative",
6561 => "SCP davocats",
6562 => "SCP davocats aux conseil",
6563 => "SCP davoués dappel",
6564 => "SCP d'huissiers",
6565 => "SCP de notaires",
6566 => "SCP de commissaires-priseurs",
6567 => "SCP de greffiers de tribunal de commerce",
6568 => "SCP de conseils juridiques",
6569 => "SCP de commissaires aux comptes",
6571 => "SCP de médecins",
6572 => "SCP de dentistes",
6573 => "SCP dinfirmiers",
6574 => "SCP de masseurs kinésithérapeutes",
6575 => "SCP de directeurs de laboratoire danalyse médicale",
6576 => "SCP de vétérinaires",
6577 => "SCP de géomètres-experts",
6578 => "SCP darchitectes",
6585 => "(Autres) Société Civile professionnelle",
6588 => "Société civile laitière",
6589 => "Société civile de moyens",
6595 => "Caisse (locale) de crédit mutuel",
6596 => "Caisse de crédit agricole mutuel",
6597 => "Société civile dexploitation agricole",
6598 => "Exploitation agricole à responsabilité limitée",
6599 => "Autre société civile",
6901 => "Autres personnes de droit privé inscrites au registre du commerce et des sociétés",
7111 => "Autorité constitutionnelle",
7112 => "Autorité administrative indépendante",
7113 => "Ministère",
7120 => "Service central dun ministère",
7130 => "Service du ministère des Postes et Télécommunications",
7150 => "Service du ministère de la Défense",
7160 => "Service déconcentré à compétence nation. Dun ministère (hors Défense)",
7171 => "Service déconcentré de lÉtat à compétence (inter) régionale",
7172 => "Service déconcentré de lÉtat à compétence (inter) départementale",
7179 => "(Autre) Service déconcentré de lÉtat à compétence territoriale",
7190 => "Ecole nationale non dotée de la personnalité morale",
7210 => "Commune et commune nouvelle",
7220 => "Département",
7225 => "Collectivité et territoire d'Outre Mer",
7229 => "(Autre) Collectivité territoriale",
7230 => "Région",
7312 => "Commune associée et commune déléguée",
7313 => "Section de commune",
7314 => "Ensemble urbain",
7321 => "Association syndicale autorisée",
7322 => "Association foncière urbaine",
7323 => "Association foncière de remembrement",
7331 => "Établissement public local denseignement",
7340 => "Pôle métropolitain",
7341 => "Secteur de commune",
7342 => "District urbain",
7343 => "Communauté urbaine",
7344 => "Métropole",
7345 => "Syndicat intercommunal à vocation multiple",
7346 => "Communauté de communes",
7347 => "Communauté de villes",
7348 => "Communauté d'agglomération",
7349 => "Autre établissement public local de coopération non spécialisé ou entente",
7351 => "Institution interdépartemental ou entente",
7352 => "Institution interrégionale ou entente",
7353 => "Syndicat intercommunal à vocation unique",
7354 => "Syndicat mixte communal",
7355 => "Autre syndicat mixte",
7356 => "Commission syndicale pour la gestion des biens indivis des communes",
7361 => "Centre communal d'action sociale",
7362 => "Caisse des écoles",
7363 => "Caisse de crédit municipal",
7364 => "Établissement d'hospitalisation",
7365 => "Syndicat inter hospitalier",
7366 => "Établissement public local social et médico-social",
7371 => "Office public d'habitation à loyer modéré",
7372 => "Service départemental d'incendie",
7373 => "Établissement public local culturel",
7378 => "Régie d'une collectivité locale à caractère administratif",
7379 => "(Autre) Établissement public administratif local",
7381 => "Organisme consulaire",
7382 => "Établissement public national ayant fonction d'administration centrale",
7383 => "Établissement public national à caractère scientifique culturel et professionnel",
7384 => "Autre établissement public national d'enseignement",
7385 => "Autre établissement public national administratif à compétence territoriale limitée",
7389 => "Établissement public national à caractère administratif",
7410 => "Groupement d'intérêt public",
7430 => "Établissement public des cultes d'Alsace-Lorraine",
7450 => "Etablissement public administratif, cercle et foyer dans les armées",
7470 => "Groupement de coopération sanitaire à gestion publique",
7490 => "Autre personne morale de droit administratif",
7510 => "Service d'une collectivité locale à comptabilité distincte",
7520 => "Régie d'une collectivité locale non dotée de la personnalité morale",
8110 => "Régime général de la sécurité sociale",
8120 => "Régime spécial de sécurité sociale",
8130 => "Institution de retraite complémentaire",
8140 => "Mutualité sociale agricole",
8150 => "Régime maladie des non-salariés non agricoles",
8160 => "Régime vieillesse ne dépendant pas du régime général de la sécurité sociale",
8170 => "Régime d'assurance chômage",
8190 => "Autre régime de prévoyance sociale",
8210 => "Mutuelle",
8250 => "Assurance mutuelle agricole",
8290 => "Autre organisme mutualiste",
8310 => "Comité central d'entreprise",
8311 => "Comité d'établissement",
8410 => "Syndicat de salariés",
8420 => "Syndicat patronal",
8450 => "Ordre professionnel ou assimilé",
8470 => "Centre technique industriel ou comité professionnel du développement économique",
8490 => "Autre organisme professionnel",
8510 => "Institution de prévoyance",
8520 => "Institution de retraite supplémentaire ",
9110 => "Syndicat de copropriété",
9150 => "Association syndicale libre",
9210 => "Association non déclarée",
9220 => "Association déclarée",
9221 => "Association déclarée \"entreprises d'insertion par l'économique\"",
9222 => "Association intermédiaire",
9223 => "Groupement d'employeurs",
9224 => "Association d'avocats à responsabilité professionnelle individuelle",
9230 => "Association déclarée reconnue d'utilité publique",
9240 => "Congrégation",
9260 => "Association de droit local",
9300 => "Fondation",
9900 => "Autre personne morale de droit privé",
9970 => "Groupement de coopération sanitaire à gestion privée",
6500 => "",
);

View File

@ -0,0 +1,747 @@
<?php
return array(
'0111Z' => "A111",
'0112Z' => "A112",
'0113Z' => "A113",
'0114Z' => "A114",
'0115Z' => "A115",
'0116Z' => "A116",
'0119Z' => "A119",
'0121Z' => "A121",
'0122Z' => "A122",
'0123Z' => "A123",
'0124Z' => "A124",
'0125Z' => "A125",
'0126Z' => "A126",
'0127Z' => "A127",
'0128Z' => "A128",
'0129Z' => "A129",
'0130Z' => "A130",
'0141Z' => "A141",
'0142Z' => "A142",
'0143Z' => "A143",
'0144Z' => "A144",
'0145Z' => "A145",
'0146Z' => "A146",
'0147Z' => "A147",
'0149Z' => "A149",
'0150Z' => "A150",
'0161Z' => "A161",
'0162Z' => "A162",
'0163Z' => "A163",
'0164Z' => "A164",
'0170Z' => "A170",
'0210Z' => "A210",
'0220Z' => "A220",
'0230Z' => "A230",
'0240Z' => "A240",
'0311Z' => "A311",
'0312Z' => "A312",
'0321Z' => "A321",
'0322Z' => "A322",
'0510Z' => "B510",
'0520Z' => "B520",
'0610Z' => "B610",
'0620Z' => "B620",
'0710Z' => "B710",
'0721Z' => "B721",
'0729Z' => "B729",
'0811Z' => "B811",
'0812Z' => "B812",
'0891Z' => "B891",
'0892Z' => "B892",
'0893Z' => "B893",
'0899Z' => "B899",
'0910Z' => "B910",
'0990Z' => "B990",
'1011Z' => "C1011",
'1012Z' => "C1012",
'1013A' => "C1013",
'1013B' => "C1013",
'1020Z' => "C1020",
'1031Z' => "C1031",
'1032Z' => "C1032",
'1039A' => "C1039",
'1039B' => "C1039",
'1041A' => "C1041",
'1041B' => "C1041",
'1042Z' => "C1042",
'1051A' => "C1051",
'1051B' => "C1051",
'1051C' => "C1051",
'1051D' => "C1051",
'1052Z' => "C1052",
'1061A' => "C1061",
'1061B' => "C1061",
'1062Z' => "C1062",
'1071A' => "C1071",
'1071B' => "C1071",
'1071C' => "C1071",
'1071D' => "C1071",
'1072Z' => "C1072",
'1073Z' => "C1073",
'1081Z' => "C1081",
'1082Z' => "C1082",
'1083Z' => "C1083",
'1084Z' => "C1084",
'1085Z' => "C1085",
'1086Z' => "C1086",
'1089Z' => "C1089",
'1091Z' => "C1091",
'1092Z' => "C1092",
'1101Z' => "C1101",
'1102A' => "C1102",
'1102B' => "C1102",
'1103Z' => "C1103",
'1104Z' => "C1104",
'1105Z' => "C1105",
'1106Z' => "C1106",
'1107A' => "C1107",
'1107B' => "C1107",
'1200Z' => "C1200",
'1310Z' => "C1310",
'1320Z' => "C1320",
'1330Z' => "C1330",
'1391Z' => "C1391",
'1392Z' => "C1392",
'1393Z' => "C1393",
'1394Z' => "C1394",
'1395Z' => "C1395",
'1396Z' => "C1396",
'1399Z' => "C1399",
'1411Z' => "C1411",
'1412Z' => "C1412",
'1413Z' => "C1413",
'1414Z' => "C1414",
'1419Z' => "C1419",
'1420Z' => "C1420",
'1431Z' => "C1431",
'1439Z' => "C1439",
'1511Z' => "C1511",
'1512Z' => "C1512",
'1520Z' => "C1520",
'1610A' => "C1610",
'1610B' => "C1610",
'1621Z' => "C1621",
'1622Z' => "C1622",
'1623Z' => "C1623",
'1624Z' => "C1624",
'1629Z' => "C1629",
'1711Z' => "C1711",
'1712Z' => "C1712",
'1721A' => "C1721",
'1721B' => "C1721",
'1721C' => "C1721",
'1722Z' => "C1722",
'1723Z' => "C1723",
'1724Z' => "C1724",
'1729Z' => "C1729",
'1811Z' => "C1811",
'1812Z' => "C1812",
'1813Z' => "C1813",
'1814Z' => "C1814",
'1820Z' => "C1820",
'1910Z' => "C1910",
'1920Z' => "C1920",
'2011Z' => "C2011",
'2012Z' => "C2012",
'2013A' => "C2013",
'2013B' => "C2013",
'2014Z' => "C2014",
'2015Z' => "C2015",
'2016Z' => "C2016",
'2017Z' => "C2017",
'2020Z' => "C2020",
'2030Z' => "C2030",
'2041Z' => "C2041",
'2042Z' => "C2042",
'2051Z' => "C2051",
'2052Z' => "C2052",
'2053Z' => "C2053",
'2059Z' => "C2059",
'2060Z' => "C2060",
'2110Z' => "C2110",
'2120Z' => "C2120",
'2211Z' => "C2211",
'2219Z' => "C2219",
'2221Z' => "C2221",
'2222Z' => "C2222",
'2223Z' => "C2223",
'2229A' => "C2229",
'2229B' => "C2229",
'2311Z' => "C2311",
'2312Z' => "C2312",
'2313Z' => "C2313",
'2314Z' => "C2314",
'2319Z' => "C2319",
'2320Z' => "C2320",
'2331Z' => "C2331",
'2332Z' => "C2332",
'2341Z' => "C2341",
'2342Z' => "C2342",
'2343Z' => "C2343",
'2344Z' => "C2344",
'2349Z' => "C2349",
'2351Z' => "C2351",
'2352Z' => "C2352",
'2361Z' => "C2361",
'2362Z' => "C2362",
'2363Z' => "C2363",
'2364Z' => "C2364",
'2365Z' => "C2365",
'2369Z' => "C2369",
'2370Z' => "C2370",
'2391Z' => "C2391",
'2399Z' => "C2399",
'2410Z' => "C2410",
'2420Z' => "C2420",
'2431Z' => "C2431",
'2432Z' => "C2432",
'2433Z' => "C2433",
'2434Z' => "C2434",
'2441Z' => "C2441",
'2442Z' => "C2442",
'2443Z' => "C2443",
'2444Z' => "C2444",
'2445Z' => "C2445",
'2446Z' => "C2446",
'2451Z' => "C2451",
'2452Z' => "C2452",
'2453Z' => "C2453",
'2454Z' => "C2454",
'2511Z' => "C2511",
'2512Z' => "C2512",
'2521Z' => "C2521",
'2529Z' => "C2529",
'2530Z' => "C2530",
'2540Z' => "C2540",
'2550A' => "C2550",
'2550B' => "C2550",
'2561Z' => "C2561",
'2562A' => "C2562",
'2562B' => "C2562",
'2571Z' => "C2571",
'2572Z' => "C2572",
'2573A' => "C2573",
'2573B' => "C2573",
'2591Z' => "C2591",
'2592Z' => "C2592",
'2593Z' => "C2593",
'2594Z' => "C2594",
'2599A' => "C2599",
'2599B' => "C2599",
'2611Z' => "C2611",
'2612Z' => "C2612",
'2620Z' => "C2620",
'2630Z' => "C2630",
'2640Z' => "C2640",
'2651A' => "C2651",
'2651B' => "C2651",
'2652Z' => "C2652",
'2660Z' => "C2660",
'2670Z' => "C2670",
'2680Z' => "C2680",
'2711Z' => "C2711",
'2712Z' => "C2712",
'2720Z' => "C2720",
'2731Z' => "C2731",
'2732Z' => "C2732",
'2733Z' => "C2733",
'2740Z' => "C2740",
'2751Z' => "C2751",
'2752Z' => "C2752",
'2790Z' => "C2790",
'2811Z' => "C2811",
'2812Z' => "C2812",
'2813Z' => "C2813",
'2814Z' => "C2814",
'2815Z' => "C2815",
'2821Z' => "C2821",
'2822Z' => "C2822",
'2823Z' => "C2823",
'2824Z' => "C2824",
'2825Z' => "C2825",
'2829A' => "C2829",
'2829B' => "C2829",
'2830Z' => "C2830",
'2841Z' => "C2841",
'2849Z' => "C2849",
'2891Z' => "C2891",
'2892Z' => "C2892",
'2893Z' => "C2893",
'2894Z' => "C2894",
'2895Z' => "C2895",
'2896Z' => "C2896",
'2899A' => "C2899",
'2899B' => "C2899",
'2910Z' => "C2910",
'2920Z' => "C2920",
'2931Z' => "C2931",
'2932Z' => "C2932",
'3011Z' => "C3011",
'3012Z' => "C3012",
'3020Z' => "C3020",
'3030Z' => "C3030",
'3040Z' => "C3040",
'3091Z' => "C3091",
'3092Z' => "C3092",
'3099Z' => "C3099",
'3101Z' => "C3101",
'3102Z' => "C3102",
'3103Z' => "C3103",
'3109A' => "C3109",
'3109B' => "C3109",
'3211Z' => "C3211",
'3212Z' => "C3212",
'3213Z' => "C3213",
'3220Z' => "C3220",
'3230Z' => "C3230",
'3240Z' => "C3240",
'3250A' => "C3250",
'3250B' => "C3250",
'3291Z' => "C3291",
'3299Z' => "C3299",
'3311Z' => "C3311",
'3312Z' => "C3312",
'3313Z' => "C3313",
'3314Z' => "C3314",
'3315Z' => "C3315",
'3316Z' => "C3316",
'3317Z' => "C3317",
'3319Z' => "C3319",
'3320A' => "C3320",
'3320B' => "C3320",
'3320C' => "C3320",
'3320D' => "C3320",
'3511Z' => "D3511",
'3512Z' => "D3512",
'3513Z' => "D3513",
'3514Z' => "D3514",
'3521Z' => "D3521",
'3522Z' => "D3522",
'3523Z' => "D3523",
'3530Z' => "D3530",
'3600Z' => "E3600",
'3700Z' => "E3700",
'3811Z' => "E3811",
'3812Z' => "E3812",
'3821Z' => "E3821",
'3822Z' => "E3822",
'3831Z' => "E3831",
'3832Z' => "E3832",
'3900Z' => "E3900",
'4110A' => "F4110",
'4110B' => "F4110",
'4110C' => "F4110",
'4110D' => "F4110",
'4120A' => "F4120",
'4120B' => "F4120",
'4211Z' => "F4211",
'4212Z' => "F4212",
'4213A' => "F4213",
'4213B' => "F4213",
'4221Z' => "F4221",
'4222Z' => "F4222",
'4291Z' => "F4291",
'4299Z' => "F4299",
'4311Z' => "F4311",
'4312A' => "F4312",
'4312B' => "F4312",
'4313Z' => "F4313",
'4321A' => "F4321",
'4321B' => "F4321",
'4322A' => "F4322",
'4322B' => "F4322",
'4329A' => "F4329",
'4329B' => "F4329",
'4331Z' => "F4331",
'4332A' => "F4332",
'4332B' => "F4332",
'4332C' => "F4332",
'4333Z' => "F4333",
'4334Z' => "F4334",
'4339Z' => "F4339",
'4391A' => "F4391",
'4391B' => "F4391",
'4399A' => "F4399",
'4399B' => "F4399",
'4399C' => "F4399",
'4399D' => "F4399",
'4399E' => "F4399",
'4511Z' => "G4511",
'4519Z' => "G4519",
'4520A' => "G4520",
'4520B' => "G4520",
'4531Z' => "G4531",
'4532Z' => "G4532",
'4540Z' => "G4540",
'4611Z' => "G4611",
'4612A' => "G4612",
'4612B' => "G4612",
'4613Z' => "G4613",
'4614Z' => "G4614",
'4615Z' => "G4615",
'4616Z' => "G4616",
'4617A' => "G4617",
'4617B' => "G4617",
'4618Z' => "G4618",
'4619A' => "G4619",
'4619B' => "G4619",
'4621Z' => "G4621",
'4622Z' => "G4622",
'4623Z' => "G4623",
'4624Z' => "G4624",
'4631Z' => "G4631",
'4632A' => "G4632",
'4632B' => "G4632",
'4632C' => "G4632",
'4633Z' => "G4633",
'4634Z' => "G4634",
'4635Z' => "G4635",
'4636Z' => "G4636",
'4637Z' => "G4637",
'4638A' => "G4638",
'4638B' => "G4638",
'4639A' => "G4639",
'4639B' => "G4639",
'4641Z' => "G4641",
'4642Z' => "G4642",
'4643Z' => "G4643",
'4644Z' => "G4644",
'4645Z' => "G4645",
'4646Z' => "G4646",
'4647Z' => "G4647",
'4648Z' => "G4648",
'4649Z' => "G4649",
'4651Z' => "G4651",
'4652Z' => "G4652",
'4661Z' => "G4661",
'4662Z' => "G4662",
'4663Z' => "G4663",
'4664Z' => "G4664",
'4665Z' => "G4665",
'4666Z' => "G4666",
'4669A' => "G4669",
'4669B' => "G4669",
'4669C' => "G4669",
'4671Z' => "G4671",
'4672Z' => "G4672",
'4673A' => "G4673",
'4673B' => "G4673",
'4674A' => "G4674",
'4674B' => "G4674",
'4675Z' => "G4675",
'4676Z' => "G4676",
'4677Z' => "G4677",
'4690Z' => "G4690",
'4711A' => "G4711",
'4711B' => "G4711",
'4711C' => "G4711",
'4711D' => "G4711",
'4711E' => "G4711",
'4711F' => "G4711",
'4719A' => "G4719",
'4719B' => "G4719",
'4721Z' => "G4721",
'4722Z' => "G4722",
'4723Z' => "G4723",
'4724Z' => "G4724",
'4725Z' => "G4725",
'4726Z' => "G4726",
'4729Z' => "G4729",
'4730Z' => "G4730",
'4741Z' => "G4741",
'4742Z' => "G4742",
'4743Z' => "G4743",
'4751Z' => "G4751",
'4752A' => "G4752",
'4752B' => "G4752",
'4753Z' => "G4753",
'4754Z' => "G4754",
'4759A' => "G4759",
'4759B' => "G4759",
'4761Z' => "G4761",
'4762Z' => "G4762",
'4763Z' => "G4763",
'4764Z' => "G4764",
'4765Z' => "G4765",
'4771Z' => "G4771",
'4772A' => "G4772",
'4772B' => "G4772",
'4773Z' => "G4773",
'4774Z' => "G4774",
'4775Z' => "G4775",
'4776Z' => "G4776",
'4777Z' => "G4777",
'4778A' => "G4778",
'4778B' => "G4778",
'4778C' => "G4778",
'4779Z' => "G4779",
'4781Z' => "G4781",
'4782Z' => "G4782",
'4789Z' => "G4789",
'4791A' => "G4791",
'4791B' => "G4791",
'4799A' => "G4799",
'4799B' => "G4799",
'4910Z' => "H4910",
'4920Z' => "H4920",
'4931Z' => "H4931",
'4932Z' => "H4932",
'4939A' => "H4939",
'4939B' => "H4939",
'4939C' => "H4939",
'4941A' => "H4941",
'4941B' => "H4941",
'4941C' => "H4941",
'4942Z' => "H4942",
'4950Z' => "H4950",
'5010Z' => "H5010",
'5020Z' => "H5020",
'5030Z' => "H5030",
'5040Z' => "H5040",
'5110Z' => "H5110",
'5121Z' => "H5121",
'5122Z' => "H5122",
'5210A' => "H5210",
'5210B' => "H5210",
'5221Z' => "H5221",
'5222Z' => "H5222",
'5223Z' => "H5223",
'5224A' => "H5224",
'5224B' => "H5224",
'5229A' => "H5229",
'5229B' => "H5229",
'5310Z' => "H5310",
'5320Z' => "H5320",
'5510Z' => "I5510",
'5520Z' => "I5520",
'5530Z' => "I5530",
'5590Z' => "I5590",
'5610A' => "I5610",
'5610B' => "I5610",
'5610C' => "I5610",
'5621Z' => "I5621",
'5629A' => "I5629",
'5629B' => "I5629",
'5630Z' => "I5630",
'5811Z' => "J5811",
'5812Z' => "J5812",
'5813Z' => "J5813",
'5814Z' => "J5814",
'5819Z' => "J5819",
'5821Z' => "J5821",
'5829A' => "J5829",
'5829B' => "J5829",
'5829C' => "J5829",
'5911A' => "J5911",
'5911B' => "J5911",
'5911C' => "J5911",
'5912Z' => "J5912",
'5913A' => "J5913",
'5913B' => "J5913",
'5914Z' => "J5914",
'5920Z' => "J5920",
'6010Z' => "J6010",
'6020A' => "J6020",
'6020B' => "J6020",
'6110Z' => "J6110",
'6120Z' => "J6120",
'6130Z' => "J6130",
'6190Z' => "J6190",
'6201Z' => "J6201",
'6202A' => "J6202",
'6202B' => "J6202",
'6203Z' => "J6203",
'6209Z' => "J6209",
'6311Z' => "J6311",
'6312Z' => "J6312",
'6391Z' => "J6391",
'6399Z' => "J6399",
'6411Z' => "K6411",
'6419Z' => "K6419",
'6420Z' => "K6420",
'6430Z' => "K6430",
'6491Z' => "K6491",
'6492Z' => "K6492",
'6499Z' => "K6499",
'6511Z' => "K6511",
'6512Z' => "K6512",
'6520Z' => "K6520",
'6530Z' => "K6530",
'6611Z' => "K6611",
'6612Z' => "K6612",
'6619A' => "K6619",
'6619B' => "K6619",
'6621Z' => "K6621",
'6622Z' => "K6622",
'6629Z' => "K6629",
'6630Z' => "K6630",
'6810Z' => "L6810",
'6820A' => "L6820",
'6820B' => "L6820",
'6831Z' => "L6831",
'6832A' => "L6832",
'6832B' => "L6832",
'6910Z' => "M6910",
'6920Z' => "M6920",
'7010Z' => "M7010",
'7021Z' => "M7021",
'7022Z' => "M7022",
'7111Z' => "M7111",
'7112A' => "M7112",
'7112B' => "M7112",
'7120A' => "M7120",
'7120B' => "M7120",
'7211Z' => "M7211",
'7219Z' => "M7219",
'7220Z' => "M7220",
'7311Z' => "M7311",
'7312Z' => "M7312",
'7320Z' => "M7320",
'7410Z' => "M7410",
'7420Z' => "M7420",
'7430Z' => "M7430",
'7490A' => "M7490",
'7490B' => "M7490",
'7500Z' => "M7500",
'7711A' => "N7711",
'7711B' => "N7711",
'7712Z' => "N7712",
'7721Z' => "N7721",
'7722Z' => "N7722",
'7729Z' => "N7729",
'7731Z' => "N7731",
'7732Z' => "N7732",
'7733Z' => "N7733",
'7734Z' => "N7734",
'7735Z' => "N7735",
'7739Z' => "N7739",
'7740Z' => "N7740",
'7810Z' => "N7810",
'7820Z' => "N7820",
'7830Z' => "N7830",
'7911Z' => "N7911",
'7912Z' => "N7912",
'7990Z' => "N7990",
'8010Z' => "N8010",
'8020Z' => "N8020",
'8030Z' => "N8030",
'8110Z' => "N8110",
'8121Z' => "N8121",
'8122Z' => "N8122",
'8129A' => "N8129",
'8129B' => "N8129",
'8130Z' => "N8130",
'8211Z' => "N8211",
'8219Z' => "N8219",
'8220Z' => "N8220",
'8230Z' => "N8230",
'8291Z' => "N8291",
'8292Z' => "N8292",
'8299Z' => "N8299",
'8411Z' => "O8411",
'8412Z' => "O8412",
'8413Z' => "O8413",
'8421Z' => "O8421",
'8422Z' => "O8422",
'8423Z' => "O8423",
'8424Z' => "O8424",
'8425Z' => "O8425",
'8430A' => "O8430",
'8430B' => "O8430",
'8430C' => "O8430",
'8510Z' => "P8510",
'8520Z' => "P8520",
'8531Z' => "P8531",
'8532Z' => "P8532",
'8541Z' => "P8541",
'8542Z' => "P8542",
'8551Z' => "P8551",
'8552Z' => "P8552",
'8553Z' => "P8553",
'8559A' => "P8559",
'8559B' => "P8559",
'8560Z' => "P8560",
'8610Z' => "Q8610",
'8621Z' => "Q8621",
'8622A' => "Q8622",
'8622B' => "Q8622",
'8622C' => "Q8622",
'8623Z' => "Q8623",
'8690A' => "Q8690",
'8690B' => "Q8690",
'8690C' => "Q8690",
'8690D' => "Q8690",
'8690E' => "Q8690",
'8690F' => "Q8690",
'8710A' => "Q8710",
'8710B' => "Q8710",
'8710C' => "Q8710",
'8720A' => "Q8720",
'8720B' => "Q8720",
'8730A' => "Q8730",
'8730B' => "Q8730",
'8790A' => "Q8790",
'8790B' => "Q8790",
'8810A' => "Q8810",
'8810B' => "Q8810",
'8810C' => "Q8810",
'8891A' => "Q8891",
'8891B' => "Q8891",
'8899A' => "Q8899",
'8899B' => "Q8899",
'9001Z' => "R9001",
'9002Z' => "R9002",
'9003A' => "R9003",
'9003B' => "R9003",
'9004Z' => "R9004",
'9101Z' => "R9101",
'9102Z' => "R9102",
'9103Z' => "R9103",
'9104Z' => "R9104",
'9200Z' => "R9200",
'9311Z' => "R9311",
'9312Z' => "R9312",
'9313Z' => "R9313",
'9319Z' => "R9319",
'9321Z' => "R9321",
'9329Z' => "R9329",
'9411Z' => "S9411",
'9412Z' => "S9412",
'9420Z' => "S9420",
'9491Z' => "S9491",
'9492Z' => "S9492",
'9499Z' => "S9499",
'9511Z' => "S9511",
'9512Z' => "S9512",
'9521Z' => "S9521",
'9522Z' => "S9522",
'9523Z' => "S9523",
'9524Z' => "S9524",
'9525Z' => "S9525",
'9529Z' => "S9529",
'9601A' => "S9601",
'9601B' => "S9601",
'9602A' => "S9602",
'9602B' => "S9602",
'9603Z' => "S9603",
'9604Z' => "S9604",
'9609Z' => "S9609",
'9700Z' => "T9700",
'9810Z' => "T9810",
'9820Z' => "T9820",
'9900Z' => "U9900",
'0000Z' => "Z000",
'742C' => "742C",
'524C' => "524C",
'8111' => "8111",
'452A' => "452A",
'000Z' => "00Z",
'526D' => "526D",
'8121' => "8121",
'7904' => "7904",
'745A' => "745A",
'702A' => "702A",
'702C' => "702C",
);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,686 @@
<?php
return array(
'1' => "CULTURE ET PRODUCTION ANIMALE, CHASSE ET SERVICES ANNEXES",
'16' => "TRAVAIL DU BOIS ET FABRICATION D'ARTICLES EN BOIS ET EN LIÈGE, À L'EXCEPTION DES MEUBLES ; FABRICATION D'ARTICLES EN VANNERIE ET SPARTERIE",
'0162ZP' => "Maréchalerie",
'7' => "EXTRACTION DE MINERAIS MÉTALLIQUES",
'72' => "EXTRACTION DE MINERAIS DE MÉTAUX NON FERREUX",
'0729ZP' => "Orpaillage",
'8' => "AUTRES INDUSTRIES EXTRACTIVES",
'0811ZA' => "Extraction de pierres ornementales et de construction et d'ardoise",
'0811ZB' => "Extraction de calcaire industriel, de gypse et de craie",
'0812ZZ' => "Exploitation de gravières et sablières, extraction d'argiles et de kaolin",
'0891ZZ' => "Extraction des minéraux chimiques et d'engrais minéraux",
'0892ZZ' => "Extraction de tourbe",
'0893ZZ' => "Production de sel",
'0899ZZ' => "Autres activités extractives n.c.a",
'9' => "SERVICES DE SOUTIEN AUX INDUSTRIES EXTRACTIVES",
'99' => "ACTIVITÉS DE SOUTIEN AUX AUTRES INDUSTRIES EXTRACTIVES",
'0990ZP' => "Activités de soutien aux autres industries extractives",
'10' => "INDUSTRIES ALIMENTAIRES",
'101' => "TRANSFORMATION ET CONSERVATION DE LA VIANDE ET PRÉPARATION DE PRODUITS À BASE DE VIANDE",
'1011ZZ' => "Transformation et conservation de la viande de boucherie",
'1012ZZ' => "Transformation et conservation de la viande de volaille",
'1013AZ' => "Préparation industrielle de produits à base de viande",
'1013BZ' => "Charcuterie",
'102' => "PRÉPARATIONS ET CONSERVES À BASE DE POISSONS ET",
'1020ZZ' => "Transformation et conservation de poisson, de crustacés et de mollusques",
'103' => "TRANSFORMATION ET CONSERVATION DE FRUITS ET LÉGUMES",
'1031ZZ' => "Transformation et conservation de pommes de terre",
'1032ZZ' => "Préparation de jus de fruits et légumes",
'1039AP' => "Autre transformation et conservation de longue durée de légumes",
'1039BP' => "Transformation et conservation de fruits",
'104' => "FABRICATION D'HUILES ET GRAISSES VÉGÉTALES ET ANIMALES",
'1041AZ' => "Fabrication d'huiles et graisses brutes",
'1041BZ' => "Fabrication d'huiles et graisses raffinées",
'1042ZZ' => "Fabrication de margarine et graisses comestibles similaires",
'105' => "FABRICATION DE PRODUITS LAITIERS",
'1051AZ' => "Fabrication de lait liquide et de produits frais",
'1051BZ' => "Fabrication de beurre",
'1051CZ' => "Fabrication de fromage",
'1051DZ' => "Fabrication d'autres produits laitiers",
'1052ZZ' => "Fabrication de glaces et sorbets",
'106' => "TRAVAIL DES GRAINS ; FABRICATION DE PRODUITS AMYLACÉS",
'1061AZ' => "Meunerie",
'1061BZ' => "Autres activités du travail des grains",
'1062ZZ' => "Fabrication de produits amylacés",
'107' => "FABRICATION DE PRODUITS DE BOULANGERIE-PÂTISSERIE ET DE PÂTES ALIMENTAIRES",
'1071AA' => "Fabrication industrielle de pain",
'1071AB' => "Fabrication industrielle de pâtisserie fraîche",
'1071CA' => "Boulangerie",
'1071CB' => "Boulangerie-pâtisserie",
'1071DZ' => "Pâtisserie",
'1072ZZ' => "Fabrication de biscuits, biscottes et pâtisseries de conservation",
'1073ZZ' => "Fabrication de pâtes alimentaires",
'108' => "FABRICATION D'AUTRES PRODUITS ALIMENTAIRES",
'1081ZZ' => "Fabrication de sucre",
'1082ZZ' => "Fabrication de cacao, chocolat et de produits de confiserie",
'1083ZZ' => "Transformation du thé et du café",
'1084ZZ' => "Fabrication de condiments et assaisonnements",
'1085ZZ' => "Fabrication de plats préparés",
'1086ZZ' => "Fabrication d'aliments homogénéisés et diététiques",
'1089ZZ' => "Fabrication d'autres produits alimentaires n.c.a.",
'109' => "FABRICATION D'ALIMENTS POUR ANIMAUX",
'1091ZZ' => "Fabrication d'aliments pour animaux de ferme",
'1092ZZ' => "Fabrication d'aliments pour animaux de compagnie",
'11' => "FABRICATION DE BOISSONS",
'110' => "FABRICATION DE BOISSONS",
'1101ZQ' => "Production d'eaux de vie naturelles",
'1101ZR' => "Fabrication de spiritueux",
'1102AP' => "Fabrication de vins effervescents selon la méthode champenoise ou autres méthodes",
'1103ZZ' => "Fabrication de cidre et de vins de fruits",
'1104ZZ' => "Production d'autres boissons fermentées non distillées",
'1105ZZ' => "Fabrication de bière",
'1106ZZ' => "Fabrication de malt",
'1107AZ' => "Industrie des eaux de table",
'1107BZ' => "Production de boissons rafraîchissantes",
'13' => "FABRICATION DE TEXTILES",
'131' => "PRÉPARATION DE FIBRES TEXTILES ET FILATURE",
'1310ZA' => "Filature et préparation de la laine",
'1310ZB' => "Moulinage et texturation de la soie et des textiles artificiels ou synthétiques",
'1310ZC' => "Préparation et filature d'autres fibres",
'132' => "TISSAGE",
'1320ZA' => "Tissage de l'industrie cotonnière",
'1320ZB' => "Tissage de l'industrie lainière",
'1320ZC' => "Tissage de soieries",
'1320ZD' => "Tissage d'autres textiles",
'133' => "ENNOBLISSEMENT TEXTILE",
'1330ZZ' => "Ennoblissement textile",
'139' => "FABRICATION D'AUTRES TEXTILES",
'1391ZZ' => "Fabrication d'étoffes à mailles",
'1392ZA' => "Fabrication de linge de maison et d'articles d'ameublement",
'1392ZB' => "Fabrication de tapisserie à la main",
'1392ZC' => "Fabrication de coussins et petits articles textiles divers",
'1392ZD' => "Voilerie",
'1392ZE' => "Fabrication d'articles de campement en textile",
'1392ZF' => "Fabrication de bâches, lambrequins et autres articles en textile",
'1393ZZ' => "Fabrication de tapis et moquettes",
'1394ZZ' => "Fabrication de ficelles, cordes et filets",
'1395ZZ' => "Fabrication de non-tissés, sauf habillement",
'1396ZZ' => "Fabrication de textiles techniques et industriels",
'1399ZA' => "Fabrication de feutres",
'1399ZB' => "Fabrication de tulles, lacets et autres textiles n.c.a",
'14' => "INDUSTRIE DE L'HABILLEMENT",
'141' => "FABRICATION DE VÊTEMENTS, AUTRES QU'EN FOURRURE",
'1411ZZ' => "Fabrication de vêtements en cuir",
'1412ZZ' => "Fabrication de vêtements de travail",
'1413ZA' => "Modéliste-styliste",
'1413ZB' => "Fabrication de vêtements féminins sur mesure",
'1413ZC' => "Fabrication de vêtements masculins sur mesure",
'1413ZD' => "Chemiserie sur mesure",
'1413ZE' => "Fabrication de gaines, corsets et autres vêtements sur mesure",
'1413ZF' => "Fabrication de vêtements de dessus pour hommes et garçonnets",
'1413ZG' => "Fabrication de vêtements de dessus pour femmes et fillettes",
'1414ZZ' => "Fabrication de vêtements de dessous",
'1419ZA' => "Fabrication de layette",
'1419ZB' => "Fabrication de chapellerie",
'1419ZC' => "Modiste",
'1419ZD' => "Fabrication d'écharpes, cravates, foulards",
'1419ZE' => "Fabrication d'autres vêtements et accessoires",
'1419ZF' => "Fabrication d'accessoires en cuir",
'142' => "FABRICATION D'ARTICLES EN FOURRURE",
'1420ZZ' => "Fabrication d'articles en fourrure",
'143' => "FABRICATION D'ARTICLES À MAILLES",
'1431ZZ' => "Fabrication d'articles chaussants à mailles",
'1439ZA' => "Fabrication de lainages à la main",
'1439ZB' => "Fabrication de lainages à la machine",
'15' => "INDUSTRIE DU CUIR ET DE LA CHAUSSURE",
'151' => "APPRÊT ET TANNAGE DES CUIRS ; PRÉPARATION ET TEINTURE DES FOURRURES ;",
'1511ZZ' => "Apprêt et tannage des cuirs ; préparation et teinture des fourrures",
'1512ZA' => "Fabrication d'articles de maroquinerie",
'1512ZB' => "Gainerie",
'1512ZC' => "Sellerie",
'1512ZD' => "Bourrellerie",
'152' => "FABRICATION DE CHAUSSURES",
'1520ZA' => "Fabrication de sabots",
'1520ZB' => "Fabrication de chaussures et de bottes",
'1520ZC' => "Fabrication de chaussures et de bottes sur mesure",
'161' => "SCIAGE ET RABOTAGE DU BOIS",
'1610AQ' => "Sciage et rabotage du bois",
'1610AR' => "Fabrication de parquets, moulures et baguettes",
'1610BZ' => "Imprégnation du bois",
'162' => "FABRICATION D'ARTICLES EN BOIS, LIÈGE, VANNERIE ET SPARTERIE",
'1621ZZ' => "Fabrication de placage et de panneaux de bois",
'1622ZZ' => "Fabrication de parquets assemblés",
'1623ZZ' => "Fabrication de charpentes et d'autres menuiseries",
'1624ZA' => "Fabrication de caisses et de palettes en bois",
'1624ZB' => "Tonnellerie",
'1629ZA' => "Fabrication d'objets divers en bois",
'1629ZB' => "Vannerie, sparterie, travail de la paille",
'1629ZC' => "Fabrication d'objets en liège",
'17' => "INDUSTRIE DU PAPIER ET DU CARTON",
'171' => "FABRICATION DE PÂTE À PAPIER, DE PAPIER ET DE CARTON",
'1711ZZ' => "Fabrication de pâte à papier",
'1712ZZ' => "Fabrication de papier et de carton",
'172' => "FABRICATION D'ARTICLES EN PAPIER OU EN CARTON",
'1721AZ' => "Fabrication de carton ondulé",
'1721BZ' => "Fabrication de cartonnages",
'1721CZ' => "Fabrication d'emballages en papier",
'1722ZZ' => "Fabrication d'articles en papier à usage sanitaire ou domestique",
'1723ZZ' => "Fabrication d'articles de papeterie",
'1724ZZ' => "Fabrication de papiers peints",
'1729ZZ' => "Fabrication d'autres articles en papier ou en carton",
'18' => "IMPRIMERIE ET REPRODUCTION D'ENREGISTREMENTS",
'181' => "IMPRIMERIE ET SERVICES ANNEXES",
'1812ZA' => "Imprimerie de labeur",
'1812ZB' => "Sérigraphie de type imprimerie",
'1813ZA' => "Travaux de préparation d'impression",
'1813ZB' => "Graphisme-décoration",
'1813ZC' => "Activités graphiques n.c.a.",
'1814ZZ' => "Reliure et activités connexes",
'182' => "REPRODUCTION D'ENREGISTREMENTS",
'1820ZZ' => "Reproduction d'enregistrements",
'19' => "COKÉFACTION ET RAFFINAGE",
'191' => "COKÉFACTION",
'1910ZP' => "Production de brai et de coke de brai",
'1920ZP' => "Agglomération de la tourbe",
'20' => "INDUSTRIE CHIMIQUE",
'201' => "FABRICATION DE PRODUITS CHIMIQUES DE BASE, DE PRODUITS AZOTÉS ET D'ENGRAIS, DE",
'2011ZZ' => "Fabrication de gaz industriels",
'2012ZZ' => "Fabrication de colorants et de pigments",
'2013AZ' => "Enrichissement et retraitement de matières nucléaires",
'2013BZ' => "Fabrication d'autres produits chimiques inorganiques de base n.c.a",
'2014ZA' => "Fabrication d'autres produits organiques de base",
'2014ZB' => "Fabrication de produits de la distillation du bois",
'2015ZZ' => "Fabrication de produits azotés et d'engrais",
'2016ZZ' => "Fabrication de matières plastiques de base",
'2017ZZ' => "Fabrication de caoutchouc synthétique",
'202' => "FABRICATION DE PESTICIDES ET D'AUTRES PRODUITS AGROCHIMIQUES",
'2020ZZ' => "Fabrication de pesticides et d'autres produits agrochimiques",
'203' => "FABRICATION DE PEINTURES, VERNIS, ENCRES ET MASTICS",
'2030ZZ' => "Fabrication de peintures, vernis, encres et mastics",
'204' => "FABRICATION DE SAVONS, DE PRODUITS D'ENTRETIEN ET DE PARFUMS",
'2041ZZ' => "Fabrication de savons, détergents et produits d'entretien",
'2042ZZ' => "Fabrication de parfums et de produits pour la toilette",
'205' => "FABRICATION D'AUTRES PRODUITS CHIMIQUES",
'2051ZZ' => "Fabrication de produits explosifs",
'2052ZZ' => "Fabrication de colles",
'2053ZZ' => "Fabrication d'huiles essentielles",
'2059ZZ' => "Fabrication d'autres produits chimiques n.c.a.",
'206' => "FABRICATION DE FIBRES ARTIFICIELLES OU SYNTHÉTIQUES",
'2060ZZ' => "Fabrication de fibres artificielles ou synthétiques",
'21' => "INDUSTRIE PHARMACEUTIQUE",
'211' => "FABRICATION DE PRODUITS PHARMACEUTIQUES DE BASE",
'2110ZP' => "Fabrication d'édulcorants de synthèse",
'212' => "FABRICATION DE PRÉPARATIONS PHARMACEUTIQUES",
'2120ZP' => "Fabrication de substances radioactives de diagnostic et de pansements",
'22' => "FABRICATION DE PRODUITS EN CAOUTCHOUC ET EN PLASTIQUE",
'221' => "FABRICATION DE PRODUITS EN CAOUTCHOUC",
'2211ZZ' => "Fabrication et rechapage de pneumatiques",
'2219ZZ' => "Fabrication d'autres articles en caoutchouc",
'222' => "FABRICATION DE PRODUITS EN PLASTIQUE",
'2221ZZ' => "Fabrication de plaques, feuilles, tubes et profilés en matières plastiques",
'2222ZZ' => "Fabrication d'emballages en matières plastiques",
'2223ZZ' => "Fabrication d'éléments en matières plastiques pour la construction",
'2229AZ' => "Fabrication de pièces techniques à base de matières plastiques",
'2229BZ' => "Fabrication d'éléments divers en matières plastiques",
'23' => "FABRICATION D'AUTRES PRODUITS MINÉRAUX NON MÉTALLIQUES",
'231' => "FABRICATION DE VERRE ET D'ARTICLES EN VERRE",
'2311ZZ' => "Fabrication de verre plat",
'2312ZZ' => "Façonnage et transformation du verre plat",
'2313ZA' => "Fabrication de verre creux ou autres verres",
'2313ZB' => "Soufflage de verre",
'2313ZC' => "Façonnage de verre et de cristal",
'2314ZZ' => "Fabrication de fibres de verre",
'2319ZA' => "Fabrication de vitraux",
'2319ZB' => "Fabrication d'articles techniques en verre",
'232' => "FABRICATION DE PRODUITS RÉFRACTAIRES",
'2320ZZ' => "Fabrication de produits réfractaires",
'233' => "FABRICATION DE MATÉRIAUX DE CONSTRUCTION EN TERRE CUITE",
'2331ZZ' => "Fabrication de carreaux en céramique",
'2332ZA' => "Fabrication de briques",
'2332ZB' => "Fabrication de tuiles",
'2332ZC' => "Fabrication de produits divers en terre cuite",
'234' => "FABRICATION D'AUTRES PRODUITS EN CÉRAMIQUE ET EN PORCELAINE",
'2341ZZ' => "Fabrication d'articles céramiques à usage domestique ou ornemental",
'2342ZZ' => "Fabrication d'appareils sanitaires en céramique",
'2343ZZ' => "Fabrication d'isolateurs et pièces isolantes en céramique",
'2344ZZ' => "Fabrication d'autres produits céramiques à usage technique",
'2349ZZ' => "Fabrication d'autres produits céramiques",
'235' => "FABRICATION DE CIMENT, CHAUX ET PLÂTRE",
'2351ZZ' => "Fabrication de ciment céramiques",
'2352ZZ' => "Fabrication de chaux et plâtre.",
'236' => "FABRICATION D'OUVRAGES EN BÉTON, EN CIMENT OU EN",
'2361ZZ' => "Fabrication d'éléments en béton pour la construction",
'2362ZZ' => "Fabrication d'éléments en plâtre pour la construction",
'2363ZZ' => "Fabrication de béton prêt à l'emploi",
'2364ZZ' => "Fabrication de mortiers et bétons secs",
'2365ZZ' => "Fabrication d'ouvrages en fibre-ciment",
'2369ZA' => "Fabrication de cheminées décoratives",
'2369ZB' => "Fabrication d'éléments décoratifs en béton ou en plâtre",
'237' => "TAILLE, FAÇONNAGE ET FINISSAGE DE PIERRES",
'2370ZZ' => "Taille, façonnage et finissage de pierres",
'239' => "FABRICATION DE PRODUITS ABRASIFS ET DE PRODUITS MINÉRAUX NON MÉTALLIQUES",
'2391ZZ' => "Fabrication de produits abrasifs",
'2399ZZ' => "Fabrication d'autres produits minéraux non métalliques n.c.a.",
'24' => "MÉTALLURGIE",
'241' => "SIDÉRURGIE",
'2410ZZ' => "Sidérurgie",
'242' => "FABRICATION DE TUBES, TUYAUX, PROFILÉS CREUX ET ACCESSOIRES CORRESPONDANTS EN",
'2420ZZ' => "Fabrication de tubes, tuyaux, profilés creux et accessoires correspondants en acier",
'243' => "FABRICATION D'AUTRES PRODUITS DE PREMIÈRE TRANSFORMATION DE L'ACIER",
'2431ZZ' => "Etirage à froid de barres",
'2432ZZ' => "Laminage à froid de feuillards",
'2433ZZ' => "Profilage à froid par formage ou pliage",
'2434ZZ' => "Tréfilage à froid",
'244' => "PRODUCTION DE MÉTAUX PRÉCIEUX ET D'AUTRES MÉTAUX NON FERREUX",
'2441ZZ' => "Production de métaux précieux",
'2442ZA' => "Production d'aluminium",
'2442ZB' => "Première transformation de l'aluminium",
'2443ZZ' => "Métallurgie du plomb, du zinc ou de l'étain",
'2444ZZ' => "Métallurgie du cuivre",
'2445ZZ' => "Métallurgie des autres métaux non ferreux",
'2446ZZ' => "Elaboration et transformation de matières nucléaires",
'245' => "FONDERIE",
'2451ZZ' => "Fonderie de fonte",
'2452ZZ' => "Fonderie d'acier",
'2453ZZ' => "Fonderie de métaux légers",
'2454ZZ' => "Fonderie d'autres métaux non ferreux",
'25' => "FABRICATION DE PRODUITS MÉTALLIQUES, À L'EXCEPTION DES MACHINES ET DES ÉQUIPEMENTS",
'251' => "FABRICATION D'ÉLÉMENTS EN MÉTAL POUR LA CONSTRUCTION",
'2511ZZ' => "Fabrication de structures métalliques et de parties de structures",
'2512ZZ' => "Fabrication de portes et fenêtres en métal",
'252' => "FABRICATION DE RÉSERVOIRS, CITERNES ET CONTENEURS MÉTALLIQUES",
'2521ZZ' => "Fabrication de radiateurs et de chaudières pour le chauffage central",
'2529ZZ' => "Fabrication d'autres réservoirs, citernes et conteneurs métalliques",
'253' => "FABRICATION DE GÉNÉRATEURS DE VAPEUR, À L'EXCEPTION DES CHAUDIÈRES POUR LE",
'2530ZA' => "Fabrication de générateurs de vapeur",
'2530ZB' => "Chaudronnerie nucléaire",
'254' => "FABRICATION D'ARMES ET DE MUNITIONS",
'2540ZZ' => "Fabrication d'armes et de munitions",
'255' => "FORGE, EMBOUTISSAGE, ESTAMPAGE ; MÉTALLURGIE DES POUDRES",
'2550AZ' => "Forge, estampage, matriçage, métallurgie des poudres",
'2550BZ' => "Découpage, emboutissage",
'256' => "FORGE, EMBOUTISSAGE, ESTAMPAGE ; MÉTALLURGIE DES POUDRES TRAITEMENT ET",
'2561ZA' => "Sérigraphie de type marquage",
'2561ZB' => "Traitement et revêtement des métaux",
'2562AZ' => "Décolletage",
'2562BZ' => "Mécanique industrielle",
'257' => "FABRICATION DE COUTELLERIE, D'OUTILLAGE ET DE QUINCAILLERIE",
'2571ZZ' => "Fabrication de coutellerie",
'2572ZZ' => "Fabrication de serrures et de ferrures",
'2573AZ' => "Fabrication de moules et modèles",
'2573BA' => "Fabrication d'outillage à main",
'2573BB' => "Fabrication d'outillage mécanique",
'259' => "FABRICATION D'AUTRES OUVRAGES EN MÉTAUX",
'2591ZZ' => "Fabrication de fûts et emballages métalliques similaires",
'2592ZZ' => "Fabrication d'emballages métalliques légers",
'2593ZA' => "Fabrication d'articles en fils métalliques et de chaînes",
'2593ZB' => "Fabrication de ressorts",
'2594ZZ' => "Fabrication de vis et de boulons",
'2599AA' => "Dinanderie",
'2599AB' => "Autres fabrications d'articles de ménage",
'2599BA' => "Fabrication de petits articles métalliques",
'2599BB' => "Fabrication de coffres-forts",
'2599BC' => "Fabrication d'autres articles métalliques n.c.a.",
'26' => "FABRICATION DE PRODUITS INFORMATIQUES, ÉLECTRONIQUES ET OPTIQUES",
'261' => "FABRICATION DE COMPOSANTS ET CARTES ÉLECTRONIQUES",
'2611ZA' => "Fabrication de composants électroniques (hors capteurs solaires)",
'2611ZB' => "Fabrication de capteurs solaires photovoltaïques",
'2612ZZ' => "Fabrication de cartes électroniques assemblées",
'262' => "FABRICATION D'ORDINATEURS ET D'ÉQUIPEMENTS PÉRIPHÉRIQUES",
'2620ZZ' => "Fabrication d'ordinateurs et d'autres équipements informatiques",
'263' => "FABRICATION D'ÉQUIPEMENTS DE COMMUNICATION",
'2630ZZ' => "Fabrication d'équipements de communication",
'264' => "FABRICATION DE PRODUITS ÉLECTRONIQUES GRAND PUBLIC",
'2640ZZ' => "Fabrication de produits électroniques grand public",
'265' => "FABRICATION D'INSTRUMENTS ET D'APPAREILS DE MESURE, D'ESSAI ET DE NAVIGATION ;",
'2651AZ' => "Fabrication d'équipements d'aide à la navigation",
'2651BZ' => "Fabrication d'instrumentation scientifique et technique",
'2652ZZ' => "Horlogerie",
'266' => "FABRICATION D'ÉQUIPEMENTS D'IRRADIATION MÉDICALE, D'ÉQUIPEMENTS",
'2660ZZ' => "Fabrication d'équipements d'irradiation médicale, d'équipements électromédicaux et électrothérapeutiques",
'267' => "FABRICATION DE MATÉRIELS OPTIQUE ET PHOTOGRAPHIQUE",
'2670ZA' => "Fabrication de matériels photographiques et cinématographiques",
'2670ZB' => "Fabrication d'instruments d'optique",
'268' => "FABRICATION DE SUPPORTS MAGNÉTIQUES ET OPTIQUES",
'2680ZZ' => "Fabrication de supports magnétiques et optiques",
'27' => "FABRICATION D'ÉQUIPEMENTS ÉLECTRIQUES",
'271' => "FABRICATION DE MOTEURS, GÉNÉRATRICES ET TRANSFORMATEURS ÉLECTRIQUES ET DE",
'2711ZA' => "Fabrication de moteurs électriques",
'2711ZB' => "Fabrication de transformateurs électriques",
'2711ZC' => "Fabrication de groupes électrogènes",
'2712ZZ' => "Fabrication de matériel de distribution et de commande électrique",
'272' => "FABRICATION DE PILES ET D'ACCUMULATEURS ÉLECTRIQUES",
'2720ZZ' => "Fabrication de piles et d'accumulateurs électriques",
'273' => "FABRICATION DE FILS ET CÂBLES ET DE MATÉRIEL D'INSTALLATION ÉLECTRIQUE",
'2731ZZ' => "Fabrication de câbles de fibres optiques",
'2732ZZ' => "Fabrication d'autres fils et câbles électroniques ou électrique",
'2733ZZ' => "Fabrication de matériel d'installation électrique",
'274' => "FABRICATION D'APPAREILS D'ÉCLAIRAGE ÉLECTRIQUE",
'2740ZA' => "Fabrication de lampes",
'2740ZB' => "Fabrication de luminaires",
'2740ZC' => "Fabrication d'abat-jour",
'2740ZD' => "Fabrication d'autres appareils d'éclairage",
'275' => "FABRICATION D'APPAREILS MÉNAGERS",
'2751ZZ' => "Fabrication d'appareils électroménagers",
'2752ZZ' => "Fabrication d'appareils ménagers non électriques",
'279' => "FABRICATION D'AUTRES MATÉRIELS ÉLECTRIQUES",
'2790ZZ' => "Fabrication d'autres matériels électriques",
'28' => "FABRICATION DE MACHINES ET ÉQUIPEMENTS N.C.A",
'281' => "FABRICATION DE MACHINES D'USAGE GÉNÉRAL",
'2811ZA' => "Fabrication de moteurs et turbines, à l'exception des moteurs d'avion et de véhicules",
'2811ZB' => "Fabrication de turbines éoliennes",
'2812ZZ' => "Fabrication d'équipements hydrauliques et pneumatiques",
'2813ZA' => "Fabrication de pompes",
'2813ZB' => "Fabrication de compresseurs",
'2814ZZ' => "Fabrication d'autres articles de robinetterie",
'2815ZZ' => "Fabrication d'engrenages et d'organes mécaniques de transmission",
'282' => "FABRICATION D'AUTRES MACHINES D'USAGE GÉNÉRAL",
'2821ZA' => "Fabrication de fours et brûleurs non solaires",
'2821ZB' => "Fabrication de chauffages solaires",
'2822ZA' => "Fabrication d'ascenseurs, monte-charges et escaliers mécaniques",
'2822ZB' => "Fabrication d'équipements de levage et de manutention",
'2823ZZ' => "Fabrication de machines de bureau (à l'exception des ordinateurs et équipements périphériques)",
'2824ZZ' => "Fabrication d'outillage portatif à moteur incorporé",
'2825ZA' => "Fabrication de capteur solaire à effet de serre",
'2825ZB' => "Fabrication d'équipements de réfrigération industrielle",
'2825ZC' => "Fabrication d'équipements aérauliques",
'2829AA' => "Fabrication d'équipements d'emballage et de conditionnement",
'2829AB' => "Fabrication d'appareils de pesage",
'2829BZ' => "Fabrication d'autres machines d'usage général",
'283' => "FABRICATION DE MACHINES AGRICOLES ET FORESTIÈRES",
'2830ZZ' => "Fabrication de machines agricoles et forestières",
'284' => "FABRICATION DE MACHINES DE FORMAGE DES MÉTAUX ET DE MACHINES-OUTILS",
'2841ZZ' => "Fabrication de machines-outils pour le travail des métaux",
'2849ZZ' => "Fabrication d'autres machines-outils",
'289' => "FABRICATION D'AUTRES MACHINES D'USAGE SPÉCIFIQUE",
'2891ZZ' => "Fabrication de machines pour la métallurgie",
'2892ZA' => "Fabrication de matériels de mines pour l'extraction",
'2892ZB' => "Fabrication de matériels de travaux publics",
'2893ZZ' => "Fabrication de machines pour l'industrie agro-alimentaire",
'2894ZZ' => "Fabrication de machines pour les industries textiles",
'2895ZZ' => "Fabrication de machines pour les industries du papier et du carton",
'2896ZZ' => "Fabrication de machines pour le travail du caoutchouc ou des plastiques",
'2899AZ' => "Fabrication de machines d'imprimerie",
'2899BZ' => "Fabrication d'autres machines spécialisées",
'29' => "INDUSTRIE AUTOMOBILE",
'291' => "CONSTRUCTION DE VÉHICULES AUTOMOBILES",
'2910ZA' => "Construction de voiturettes",
'2910ZB' => "Construction d'autres véhicules automobiles",
'292' => "FABRICATION DE CARROSSERIES ET REMORQUES",
'2920ZA' => "Fabrication de carrosseries",
'2920ZB' => "Aménagement de véhicules",
'2920ZC' => "Fabrication de remorques et de semi-remorques",
'293' => "FABRICATION D'ÉQUIPEMENTS AUTOMOBILES",
'2931ZZ' => "Fabrication de matériels électriques et électroniques automobiles",
'2932ZZ' => "Fabrication d'autres équipements automobiles",
'30' => "FABRICATION D'AUTRES MATÉRIELS DE TRANSPORT",
'301' => "CONSTRUCTION NAVALE",
'3011ZA' => "Construction de navires",
'3011ZB' => "Transformation et équipement des navires",
'3012ZZ' => "Construction de bateaux de plaisance",
'302' => "CONSTRUCTION DE LOCOMOTIVES ET D'AUTRE MATÉRIEL FERROVIAIRE ROULANT",
'3020ZZ' => "Construction de locomotives et d'autre matériel ferroviaire roulant",
'303' => "CONSTRUCTION AÉRONAUTIQUE ET SPATIALE",
'3030ZA' => "Construction de moteurs pour aéronefs",
'3030ZB' => "Construction de cellules d'aéronefs",
'3030ZC' => "Construction de lanceurs et engins spatiaux",
'304' => "CONSTRUCTION DE VÉHICULES MILITAIRES DE COMBAT",
'3040ZZ' => "Construction de véhicules militaires de combat",
'309' => "FABRICATION DE MATÉRIELS DE TRANSPORT N.C.A",
'3091ZA' => "Construction de motocycles",
'3091ZB' => "Fabrication d'équipements pour motocycles",
'3092ZA' => "Construction de bicyclettes",
'3092ZB' => "Fabrication d'équipements pour bicyclettes",
'3092ZC' => "Fabrication de véhicules pour invalides et enfants",
'3099ZZ' => "Fabrication d'autres équipements de transport n.c.a.",
'31' => "FABRICATION DE MEUBLES",
'310' => "FABRICATION DE MEUBLES",
'3101ZZ' => "Fabrication de meubles de bureau et de magasin",
'3102ZZ' => "Fabrication de meubles de cuisine",
'3103ZZ' => "Fabrication de matelas",
'3109AZ' => "Fabrication de sièges d'ameublement d'intérieur",
'3109BA' => "Fabrication et finissage de meubles divers",
'3109BB' => "Fabrication de meubles de jardin et d'extérieur",
'3109BC' => "Fabrication de meubles en rotin",
'32' => "AUTRES INDUSTRIES MANUFACTURIÈRES",
'321' => "FABRICATION D'ARTICLES DE JOAILLERIE, BIJOUTERIE ET ARTICLES SIMILAIRES",
'3211ZZ' => "Frappe de monnaies",
'3212ZZ' => "Fabrication d'articles de joaillerie et de bijouterie",
'3213ZZ' => "Fabrication d'articles de bijouterie fantaisie et articles similaires",
'322' => "FABRICATION D'INSTRUMENTS DE MUSIQUE",
'3220ZA' => "Lutherie",
'3220ZB' => "Facteur d'orgues",
'3220ZC' => "Fabrication d'autres instruments de musique",
'323' => "FABRICATION D'ARTICLES DE SPORT",
'3230ZZ' => "Fabrication d'articles de sport",
'324' => "FABRICATION DE JEUX ET JOUETS",
'3240ZZ' => "Fabrication de jeux et jouets",
'325' => "FABRICATION D'INSTRUMENTS ET DE FOURNITURES À USAGE MÉDICAL ET DENTAIRE",
'3250AA' => "Fabrication de prothèses dentaires",
'3250AB' => "Fabrication de prothèses et orthèses podales",
'3250AC' => "Fabrication de prothèses et orthèses diverses",
'3250AD' => "Fabrication d'équipements médico-chirurgicaux",
'3250BP' => "Fabrication de lunettes de protection",
'329' => "ACTIVITÉS MANUFACTURIÈRES N.C.A",
'3291ZZ' => "Fabrication d'articles de brosserie",
'3299ZA' => "Fabrication de bougies",
'3299ZB' => "Fabrication d'accessoires du vêtements",
'3299ZC' => "Fabrication d'articles de Paris, d'arts ou religieux",
'3299ZD' => "Fabrication d'articles de fumeurs",
'3299ZE' => "Taxidermie",
'3299ZF' => "Fabrication d'équipements de protection et de sécurité",
'3299ZG' => "Fabrication de produits manufacturés non classés ailleurs",
'33' => "RÉPARATION ET INSTALLATION DE MACHINES ET D'ÉQUIPEMENTS",
'331' => "RÉPARATION D'OUVRAGES EN MÉTAUX, DE MACHINES ET D'ÉQUIPEMENTS",
'3311ZZ' => "Réparation d'ouvrages en métaux",
'3312ZA' => "Réparation de matériel agricole",
'3312ZB' => "Réparation d'autres machines",
'3313ZZ' => "Réparation de matériels électroniques et optiques",
'3314ZZ' => "Réparation d'équipements électriques",
'3315ZZ' => "Réparation et maintenance navale",
'3316ZZ' => "Réparation et maintenance d'aéronefs et d'engins spatiaux",
'3317ZZ' => "Réparation et maintenance d'autres équipements de transport",
'3319ZZ' => "Réparation d'autres équipements",
'332' => "INSTALLATION DE MACHINES ET D'ÉQUIPEMENTS INDUSTRIELS",
'3320AZ' => "Installation de structures métalliques, chaudronnées et de tuyauterie",
'3320BZ' => "Installation de machines et équipements mécaniques",
'3320CZ' => "Conception d'ensemble et assemblage sur site industriel d'équipements de contrôle des processus industriels",
'3320DZ' => "Installation d'équipements électriques, de matériels électroniques et optiques ou d'autres matériels",
'37' => "COLLECTE ET TRAITEMENT DES EAUX USÉES",
'370' => "COLLECTE ET TRAITEMENT DES EAUX USÉES",
'3700ZP' => "Entretien de fosses septiques",
'38' => "COLLECTE, TRAITEMENT ET ÉLIMINATION DES DÉCHETS ; RÉCUPÉRATION",
'381' => "COLLECTE DES DÉCHETS",
'3812ZP' => "Collecte des déchets nucléaires",
'382' => "TRAITEMENT ET ÉLIMINATION DES DÉCHETS",
'3821ZP' => "Incinération des déchets non dangereux et production de cendres et scories associée",
'3822ZP' => "Traitement et élimination de déchets nucléaires radioactifs",
'383' => "RÉCUPÉRATION",
'3831ZA' => "Démantèlement d'épaves en vue de la récupération de matières métalliques",
'3831ZB' => "Démantèlement d'épaves en vue de la récupération de matières non métalliques",
'3832ZA' => "Traitement de matières métalliques recyclables",
'3832ZB' => "Traitement de matières non métalliques recyclables",
'39' => "DÉPOLLUTION ET AUTRES SERVICES DE GESTION DES DÉCHETS",
'390' => "DÉPOLLUTION ET AUTRES SERVICES DE GESTION DES DÉCHETS",
'3900ZP' => "Désamiantage",
'41' => "CONSTRUCTION DE BÂTIMENTS",
'412' => "CONSTRUCTION DE BÂTIMENTS RÉSIDENTIELS ET NON RÉSIDENTIELS",
'4120AZ' => "Construction de maisons individuelles",
'4120BA' => "Construction de bâtiments",
'4120BB' => "Réhabilitation de bâtiments",
'42' => "GÉNIE CIVIL",
'421' => "CONSTRUCTION DE ROUTES ET DE VOIES FERRÉES",
'4211ZA' => "Pose de signalisation routière verticale",
'4211ZB' => "Aménagement de chaussées",
'4212ZZ' => "Construction de voies ferrées de surface et souterraines",
'4213AZ' => "Construction d'ouvrages d'art",
'4213BZ' => "Construction et entretien de tunnels",
'422' => "CONSTRUCTION DE RÉSEAUX ET DE LIGNES",
'4221ZA' => "Construction d'installations de réseaux pour fluides",
'4221ZB' => "Forage des puits d'eau",
'4222ZA' => "Construction de centrales électriques",
'4222ZB' => "Construction de lignes électriques et de télécommunication",
'429' => "CONSTRUCTION D'AUTRES OUVRAGES DE GÉNIE CIVIL",
'4291ZZ' => "Construction d'ouvrages maritimes et fluviaux",
'4299ZP' => "Construction d'installations sportives et d'ouvrages industriels ou miniers",
'43' => "TRAVAUX DE CONSTRUCTION SPÉCIALISÉS",
'431' => "DÉMOLITION ET PRÉPARATION DES SITES",
'4311ZZ' => "Travaux de démolition",
'4312AZ' => "Travaux de terrassement courants et travaux préparatoires",
'4312BA' => "Terrassements",
'4312BB' => "Artificiers",
'4313ZZ' => "Forages et sondages",
'432' => "TRAVAUX D'INSTALLATION ÉLECTRIQUE, PLOMBERIE ET AUTRES TRAVAUX",
'4321AA' => "Installation d'antennes",
'4321AB' => "Installation électrique",
'4321BZ' => "Travaux d'installation électrique sur la voie publique",
'4322AZ' => "Travaux d'installation d'eau et de gaz en tous locaux",
'4322BA' => "Installation et entretien de climatisation et chaufferie",
'4322BB' => "Installation de chauffage individuel",
'4322BC' => "Entretien de chaudières domestiques",
'4329AZ' => "Travaux d'isolation",
'4329BA' => "Installation d'ascenseurs",
'4329BB' => "Montage de clôtures et de grilles",
'4329BC' => "Installation de stores et bannes",
'4329BD' => "Autres travaux d'installation divers",
'433' => "TRAVAUX DE FINITION",
'4331ZA' => "Travaux de plâtrerie d'extérieur",
'4331ZB' => "Travaux de plâtrerie d'intérieur",
'4332AA' => "Menuiserie bois",
'4332AB' => "Menuiserie PVC",
'4332BA' => "Installation de serres et de vérandas",
'4332BB' => "Métallerie, serrurerie",
'4332CZ' => "Agencement de lieux de vente",
'4333ZZ' => "Travaux de revêtement des sols et des murs",
'4334ZA' => "Travaux de miroiterie de bâtiment, vitrerie",
'4334ZB' => "Travaux de peinture extérieure",
'4334ZC' => "Travaux de peinture intérieure et peinture plâtrerie",
'4334ZD' => "Travaux de peinture en lettres sur bâtiments",
'4339ZZ' => "Autres travaux de finition",
'439' => "AUTRES TRAVAUX DE CONSTRUCTION SPÉCIALISÉS",
'4391AZ' => "Travaux de charpente",
'4391BZ' => "Travaux de couverture par éléments",
'4399AZ' => "Travaux d'étanchéification",
'4399BZ' => "Travaux de montage de structures métalliques",
'4399CZ' => "Travaux de maçonnerie générale et gros oeuvre de bâtiment",
'4399DA' => "Installation de piscines de résidence et construction de piscines extérieures",
'4399DB' => "Construction de cheminées et de fours industriels",
'4399DC' => "Autres travaux spéciaux de construction",
'4399EZ' => "Location avec opérateur de matériel de construction",
'45' => "COMMERCE ET RÉPARATION D'AUTOMOBILES ET DE MOTOCYCLES",
'452' => "ENTRETIEN ET RÉPARATION DE VÉHICULES AUTOMOBILES",
'4520AA' => "Réparation automobile de véhicules automobiles légers : entretien courant",
'4520AB' => "Réparation automobile de véhicules automobiles légers : mécanique",
'4520AC' => "Réparation automobile de véhicules automobiles légers : carrosserie",
'4520AD' => "Réparation automobile de véhicules automobiles légers : électricité, électronique",
'4520BA' => "Réparation automobile d'autres véhicules automobiles : entretien courant",
'4520BB' => "Réparation automobile d'autres véhicules automobiles : mécanique",
'4520BC' => "Réparation automobile d'autres véhicules automobiles : diesel",
'4520BD' => "Réparation automobile d'autres véhicules automobiles : carrosserie",
'4520BE' => "Réparation automobile d'autres véhicules automobiles : électricité, électronique",
'454' => "COMMERCE ET RÉPARATION DE MOTOCYCLES",
'4540ZP' => "Réparation de motocycles",
'47' => "COMMERCE DE DÉTAIL, À L'EXCEPTION DES AUTOMOBILES ET DES MOTOCYCLES",
'472' => "COMMERCE DE DÉTAIL ALIMENTAIRE EN MAGASIN SPÉCIALISÉ",
'4722ZA' => "Boucherie",
'4722ZB' => "Boucherie charcuterie",
'4722ZC' => "Boucherie chevaline",
'4722ZD' => "Volailles, gibiers",
'4722ZE' => "Triperie",
'4723ZP' => "Préparation de poissons, crustacés et mollusques",
'477' => "AUTRES COMMERCES DE DÉTAIL EN MAGASIN SPÉCIALISÉ",
'4776ZP' => "Commerce de détail de fleurs",
'478' => "COMMERCE DE DÉTAIL SUR ÉVENTAIRES ET MARCHÉS",
'4781ZQ' => "Boucherie sur éventaires et marchés",
'4781ZR' => "Boucherie charcuterie sur éventaires et marchés",
'4781ZS' => "Boucherie chevaline sur éventaires et marchés",
'4781ZT' => "Volailles, gibiers sur éventaires et marchés",
'4781ZU' => "Triperie sur éventaires et marchés",
'4781ZV' => "Préparation de poissons, crustacés, mollusques sur éventaires, marchés",
'4789ZP' => "Commerce de détail de fleurs sur éventaires et marchés",
'49' => "TRANSPORTS TERRESTRES ET TRANSPORT PAR CONDUITES",
'493' => "AUTRES TRANSPORTS TERRESTRES DE VOYAGEURS",
'4932ZA' => "Taxis",
'4932ZB' => "Location de voitures avec chauffeur",
'494' => "TRANSPORTS ROUTIERS DE FRET ET SERVICES DE DÉMÉNAGEMENT",
'4942ZZ' => "Services de déménagement",
'52' => "ENTREPOSAGE ET SERVICES AUXILIAIRES DES TRANSPORTS",
'522' => "ENTREPOSAGE ET STOCKAGE SERVICES AUXILIAIRES DES TRANSPORTS",
'5221ZP' => "Assistance et remorquage de véhicules automobiles",
'56' => "RESTAURATION",
'561' => "RESTAURANTS ET SERVICES DE RESTAURATION MOBILE",
'5610CQ' => "Fabrication artisanale associée à la vente de plats pour consommation immédiate en magasins sédentaires ou sur",
'5610CR' => "Fabrication artisanale associée à la vente de plats pour consommation immédiate en véhicules motorisés ou non",
'58' => "ÉDITION",
'581' => "ÉDITION DE LIVRES ET PÉRIODIQUES ET AUTRES ACTIVITÉS D'ÉDITION",
'5819ZP' => "Edition d'imprimés fiduciaires, imprimés commerciaux, formulaires imprimés",
'71' => "ACTIVITÉS D'ARCHITECTURE ET D'INGÉNIERIE ; ACTIVITÉS DE CONTRÔLE ET ANALYSES",
'712' => "ACTIVITÉS DE CONTRÔLE ET ANALYSES TECHNIQUES",
'7120AZ' => "Contrôle technique automobile",
'73' => "PUBLICITÉ ET ÉTUDES DE MARCHÉ",
'731' => "PUBLICITÉ",
'7311ZP' => "Pose d'affiches",
'74' => "AUTRES ACTIVITÉS SPÉCIALISÉES, SCIENTIFIQUES ET TECHNIQUES",
'741' => "ACTIVITÉS SPÉCIALISÉES DE DESIGN",
'7410ZP' => "Conception de modèles pour étalages et décoration",
'742' => "ACTIVITÉS PHOTOGRAPHIQUES",
'7420ZQ' => "Studio de photographie",
'7420ZR' => "Portrait, reportage",
'7420ZS' => "Photographie industrielle et publicitaire",
'7420ZT' => "Laboratoires techniques de développement et de tirage",
'80' => "ENQUÊTES ET SÉCURITÉ",
'802' => "ACTIVITÉS LIÉES AUX SYSTÈMES DE SÉCURITÉ",
'8020ZP' => "Activité de surveillance et installation de systèmes d'alarme non dissociées",
'81' => "SERVICES RELATIFS AUX BÂTIMENTS ET AMÉNAGEMENT PAYSAGER",
'812' => "ACTIVITÉS DE NETTOYAGE",
'8121ZZ' => "Nettoyage courant des bâtiments",
'8122ZZ' => "Autres activités de nettoyage des bâtiments et nettoyage industriel",
'8129AZ' => "Désinfection, désinsectisation, dératisation",
'8129BP' => "Autres services de nettoyage",
'82' => "ACTIVITÉS ADMINISTRATIVES ET AUTRES ACTIVITÉS DE SOUTIEN AUX ENTREPRISES",
'821' => "ACTIVITÉS ADMINISTRATIVES",
'8211ZP' => "Services administratifs divers",
'8219ZP' => "Travaux à façon divers",
'829' => "ACTIVITÉS DE SOUTIEN AUX ENTREPRISES N.C.A",
'8292ZZ' => "Activités de conditionnement",
'86' => "ACTIVITÉS POUR LA SANTÉ HUMAINE",
'8690AZ' => "Ambulances",
'90' => "ACTIVITÉS CRÉATIVES, ARTISTIQUES ET DE SPECTACLE",
'900' => "ACTIVITÉS CRÉATIVES, ARTISTIQUES ET DE SPECTACLE",
'9001ZP' => "Spectacles de marionnettes",
'9003AP' => "Restauration d'objets d'art",
'95' => "RÉPARATION D'ORDINATEURS ET DE BIENS PERSONNELS ET DOMESTIQUES",
'951' => "RÉPARATION D'ORDINATEURS ET D'ÉQUIPEMENTS DE COMMUNICATION",
'9511ZZ' => "Réparation d'ordinateurs et d'équipements périphériques",
'9512ZZ' => "Réparation d'équipements de communication",
'952' => "RÉPARATION DE BIENS PERSONNELS ET DOMESTIQUES",
'9521ZZ' => "Réparation de produits électroniques grand public",
'9522ZA' => "Réparation de tondeuses à gazon",
'9522ZB' => "Réparation d'appareils électroménagers",
'9523ZZ' => "Réparation de chaussures et d'articles en cuir",
'9524ZZ' => "Réparation de meubles et d'équipements du foyer",
'9525ZZ' => "Réparation d'articles d'horlogerie et de bijouterie",
'9529ZA' => "Aiguisage de coutellerie",
'9529ZB' => "Réparation de cycles",
'9529ZC' => "Atelier de retouches",
'9529ZD' => "Réparation d'articles de sport et de campement",
'9529ZE' => "Accordeurs de piano et restauration d'autres instruments de musique",
'9529ZF' => "Réparation non classées ailleurs",
'96' => "AUTRES SERVICES PERSONNELS",
'960' => "AUTRES SERVICES PERSONNELS",
'9601AZ' => "Blanchisserie-teinturerie de gros",
'9601BQ' => "Laveries, blanchisseries et teintureries de détail",
'9601BR' => "Pressings",
'9602AA' => "Coiffure en salon",
'9602AB' => "Coiffure hors salon",
'9602BA' => "Soins de beauté en salon",
'9602BB' => "Soins de beauté hors salon",
'9603ZP' => "Embaumement, soins mortuaires",
'9609ZP' => "Toilettage d'animaux de compagnie",
'A' => "AGRICULTURE, SYLVICULTURE ET PÊCHE",
'B' => "INDUSTRIES EXTRACTIVES",
'C' => "INDUSTRIE MANUFACTURIÈRE",
'E' => "PRODUCTION ET DISTRIBUTION D'EAU ; ASSAINISSEMENT, GESTION DES DÉCHETS ET",
'F' => "CONSTRUCTION",
'G' => "COMMERCE ; RÉPARATION D'AUTOMOBILES ET DE MOTOCYCLES",
'H' => "TRANSPORTS ET ENTREPOSAGE",
'I' => "HÉBERGEMENT ET RESTAURATION",
'J' => "INFORMATION ET COMMUNICATION",
'M' => "ACTIVITÉS SPÉCIALISÉES, SCIENTIFIQUES ET TECHNIQUES",
'N' => "ACTIVITÉS DE SERVICES ADMINISTRATIFS ET DE SOUTIEN",
'Q' => "SANTÉ HUMAINE ET ACTION SOCIALE",
'R' => "ARTS, SPECTACLES ET ACTIVITÉS RÉCRÉATIVES",
'S' => "AUTRES ACTIVITÉS DE SERVICES",
);

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
<?
<?php
require_once 'framework/common/curl.php';

View File

@ -0,0 +1,178 @@
<?php
return array(
1 => "AFN",
2 => "ZAR",
3 => "ALL",
4 => "DZD",
5 => "DEM",
7 => "AOA",
8 => "ANG",
9 => "SAR",
10 => "ARS",
11 => "AUD",
12 => "ATS",
13 => "BSD",
14 => "BHD",
15 => "BDT",
16 => "BBD",
17 => "BEF",
18 => "BZD",
19 => "BMD",
20 => "MMK",
21 => "BOB",
22 => "BWP",
23 => "BRL",
24 => "BND",
25 => "BGN",
26 => "BIF",
27 => "KHR",
28 => "XAF",
29 => "CAD",
32 => "CLP",
33 => "CNY",
34 => "CYP",
35 => "COP",
36 => "KMF",
37 => "ZRN",
38 => "KPW",
39 => "KRW",
40 => "CRC",
42 => "CUP",
44 => "DKK",
45 => "DJF",
46 => "XCD",
47 => "EGP",
48 => "AED",
50 => "ESP",
51 => "USD",
52 => "ETB",
53 => "FKP",
54 => "FJD",
55 => "FIM",
56 => "GMD",
58 => "GHC",
59 => "GBP",
60 => "GRD",
61 => "GTQ",
62 => "GWP",
63 => "GNF",
65 => "GYD",
66 => "HTG",
68 => "HNL",
69 => "HKD",
70 => "HUF",
71 => "INR",
72 => "IDR",
73 => "IQD",
74 => "IRR",
75 => "IEP",
76 => "ISK",
77 => "ILS",
78 => "ITL",
79 => "JMD",
80 => "JPY",
81 => "JOD",
82 => "KES",
83 => "KWD",
84 => "LAK",
85 => "LBP",
86 => "LRD",
87 => "LYD",
89 => "LUF",
90 => "MOP",
91 => "MGF",
92 => "MYR",
93 => "MWK",
94 => "MVR",
96 => "MTL",
97 => "MAD",
98 => "MUR",
99 => "MRO",
100 => "MXN",
101 => "MNT",
102 => "MZM",
103 => "NPR",
104 => "NIO",
106 => "NGN",
107 => "NOK",
110 => "NZD",
111 => "OMR",
112 => "UGX",
113 => "PKR",
114 => "PAB",
115 => "PYG",
116 => "NLG",
117 => "PEN",
118 => "PHP",
119 => "PLN",
120 => "XPF",
121 => "PTE",
122 => "QAR",
123 => "RON",
124 => "RWF",
125 => "SVC",
126 => "WST",
127 => "STD",
129 => "SCR",
130 => "SLL",
131 => "SGD",
132 => "SBD",
133 => "SOS",
134 => "SDD",
135 => "LKR",
136 => "SRG",
137 => "SEK",
138 => "CHF",
139 => "SYP",
140 => "SZL",
141 => "TWD",
142 => "TZS",
144 => "CZK",
145 => "THB",
147 => "TTD",
148 => "TND",
149 => "TRL",
152 => "UYU",
153 => "VUV",
154 => "VEB",
155 => "VND",
157 => "YER",
159 => "YUM",
160 => "CDF",
161 => "ZMK",
162 => "ZWD",
168 => "ADP",
174 => "KYD",
176 => "LVL",
177 => "LTL",
178 => "EEK",
179 => "UAH",
181 => "SIT",
182 => "SKK",
183 => "KZT",
184 => "BYR",
186 => "HRK",
188 => "TMM",
189 => "KGS",
190 => "MDL",
191 => "GIP",
192 => "RUB",
195 => "AMD",
196 => "AZM",
197 => "BAM",
198 => "GEL",
201 => "MKD",
205 => "AWG",
207 => "TOP",
208 => "BTN",
209 => "PGK",
210 => "UZS",
211 => "ILS",
212 => "TJS",
213 => "CVE",
214 => "ERN",
218 => "DOP",
238 => "SHP",
244 => "TPE",
300 => "EUR",
);

View File

@ -0,0 +1,37 @@
<?php
return array(
1 => 1520,
2 => 1436,
3 => 1460,
4 => 1209,
5 => 1445,
6 => 1603,
7 => 1506,
8 => 1430,
9 => 1600,
10 => 1500,
11 => 1200,
12 => 1413,
13 => 1305,
14 => 1411,
15 => 1412,
16 => 1425,
18 => 1502,
19 => 1501,
20 => 1525,
21 => 1435,
44 => 1100,
45 => 1101,
48 => 1201,
49 => 1307,
55 => 1306,
56 => 1110,
57 => 1119,
58 => 1545,
59 => 1506,
60 => 1111,
61 => 1116,
62 => 1118,
63 => 1115,
64 => 1645,
);

View File

@ -0,0 +1,240 @@
<?php
return array(
1 => "AF",
2 => "ZA",
3 => "AL",
4 => "DZ",
5 => "DE",
7 => "AO",
8 => "AN",
9 => "SA",
10 => "AR",
11 => "AU",
12 => "AT",
13 => "BS",
14 => "BH",
15 => "BD",
16 => "BB",
17 => "BE",
18 => "BZ",
19 => "BM",
20 => "MM",
21 => "BO",
22 => "BW",
23 => "BR",
24 => "BN",
25 => "BG",
26 => "BI",
27 => "KH",
28 => "CM",
29 => "CA",
31 => "CF",
32 => "CL",
33 => "CN",
34 => "CY",
35 => "CO",
36 => "KM",
37 => "CG",
38 => "KP",
39 => "KR",
40 => "CR",
41 => "CI",
42 => "CU",
43 => "BJ",
44 => "DK",
45 => "DJ",
46 => "DM",
47 => "EG",
48 => "AE",
49 => "EC",
50 => "ES",
51 => "US",
52 => "ET",
53 => "FK",
54 => "FJ",
55 => "FI",
56 => "GM",
57 => "GA",
58 => "GH",
59 => "GB",
60 => "GR",
61 => "GT",
62 => "GW",
63 => "GN",
64 => "GQ",
65 => "GY",
66 => "HT",
67 => "BF",
68 => "HN",
69 => "HK",
70 => "HU",
71 => "IN",
72 => "ID",
73 => "IR",
74 => "IQ",
75 => "IE",
76 => "IS",
77 => "IL",
78 => "IT",
79 => "JM",
80 => "JP",
81 => "JO",
82 => "KE",
83 => "KW",
84 => "LA",
85 => "LB",
86 => "LR",
87 => "LY",
88 => "LI",
89 => "LU",
90 => "MO",
91 => "MG",
92 => "MY",
93 => "MW",
94 => "MV",
95 => "ML",
96 => "MT",
97 => "MA",
98 => "MU",
99 => "MR",
100 => "MX",
101 => "MN",
102 => "MZ",
103 => "NP",
104 => "NI",
105 => "NE",
106 => "NG",
107 => "NO",
108 => "NC",
110 => "NZ",
111 => "OM",
112 => "UG",
113 => "PK",
114 => "PA",
115 => "PY",
116 => "NL",
117 => "PE",
118 => "PH",
119 => "PL",
120 => "PF",
121 => "PT",
122 => "QA",
123 => "RO",
124 => "RW",
125 => "SV",
126 => "WS",
127 => "ST",
128 => "SN",
129 => "SC",
130 => "SL",
131 => "SG",
132 => "SB",
133 => "SO",
134 => "SD",
135 => "LK",
136 => "SR",
137 => "SE",
138 => "CH",
139 => "SY",
140 => "SZ",
141 => "TW",
142 => "TZ",
143 => "TD",
144 => "CZ",
145 => "TH",
146 => "TG",
147 => "TT",
148 => "TN",
149 => "TR",
150 => "TV",
152 => "UY",
153 => "VU",
154 => "VE",
155 => "VN",
156 => "WF",
157 => "YE",
159 => "YU",
160 => "CD",
161 => "ZM",
162 => "ZW",
163 => "RE",
164 => "GP",
165 => "MC",
167 => "MQ",
168 => "AD",
172 => "TF",
173 => "PR",
174 => "KY",
175 => "MP",
176 => "LV",
177 => "LT",
178 => "EE",
179 => "UA",
181 => "SI",
182 => "SK",
183 => "KZ",
184 => "BY",
185 => "YT",
186 => "HR",
188 => "TM",
189 => "KG",
190 => "MD",
191 => "GI",
192 => "RU",
193 => "GL",
194 => "PM",
195 => "AM",
196 => "AZ",
197 => "BA",
198 => "GE",
201 => "MK",
202 => "SM",
203 => "AI",
204 => "AG",
205 => "AW",
206 => "GD",
207 => "TO",
208 => "BT",
209 => "PG",
210 => "UZ",
211 => "PS",
212 => "TJ",
213 => "CV",
214 => "ER",
215 => "LS",
216 => "NA",
217 => "EH",
218 => "DO",
219 => "BV",
220 => "CX",
221 => "CC",
222 => "CK",
223 => "FO",
224 => "GU",
225 => "HM",
226 => "VG",
227 => "VI",
228 => "KI",
229 => "MH",
230 => "FM",
231 => "MS",
232 => "NR",
233 => "NU",
234 => "NF",
235 => "IO",
236 => "PW",
237 => "PN",
238 => "SH",
239 => "KN",
240 => "LC",
241 => "VC",
242 => "AS",
243 => "SJ",
244 => "TP",
245 => "TK",
246 => "TC",
247 => "VA",
248 => "AQ",
249 => "GS",
250 => "UM",
);

View File

@ -0,0 +1,277 @@
<?php
return array(
0 => array('Id'=>"1812", 'Nom'=>"Tribunal Inconnu", 'Code'=>"INCONU"),
101 => array('Id'=>"140", 'Nom'=>"TC BOURG EN BRESSE", 'Code'=>"BOURGC"),
151 => array('Id'=>"103", 'Nom'=>"TGIcc BELLEY", 'Code'=>"BELLEG"),
201 => array('Id'=>"215", 'Nom'=>"TC CHAUNY", 'Code'=>"CHAUNC"),
202 => array('Id'=>"705", 'Nom'=>"TC SAINT QUENTIN", 'Code'=>"STQUEC"),
203 => array('Id'=>"651", 'Nom'=>"TC SOISSONS", 'Code'=>"SOISSC"),
204 => array('Id'=>"764", 'Nom'=>"TC VERVINS", 'Code'=>"VERVIC"),
252 => array('Id'=>"366", 'Nom'=>"TGI LAON", 'Code'=>"LAONG"),
301 => array('Id'=>"259", 'Nom'=>"TC CUSSET", 'Code'=>"CUSSEC"),
302 => array('Id'=>"491", 'Nom'=>"TC MOULINS", 'Code'=>"MOULIC"),
303 => array('Id'=>"467", 'Nom'=>"TC MONTLUCON", 'Code'=>"MONTLC"),
401 => array('Id'=>"425", 'Nom'=>"TC MANOSQUE", 'Code'=>"MANOSC"),
453 => array('Id'=>"270", 'Nom'=>"TGI DIGNE", 'Code'=>"DIGNEG"),
501 => array('Id'=>"325", 'Nom'=>"TC GAP", 'Code'=>"GAPC"),
601 => array('Id'=>"40", 'Nom'=>"TC ANTIBES", 'Code'=>"ANTIBC"),
602 => array('Id'=>"173", 'Nom'=>"TC CANNES", 'Code'=>"CANNEC"),
603 => array('Id'=>"332", 'Nom'=>"TC GRASSE", 'Code'=>"GRASSC"),
604 => array('Id'=>"449", 'Nom'=>"TC MENTON", 'Code'=>"MENTOC"),
605 => array('Id'=>"518", 'Nom'=>"TC NICE", 'Code'=>"NICEC"),
701 => array('Id'=>"39", 'Nom'=>"TC ANNONAY", 'Code'=>"ANNONC"),
702 => array('Id'=>"53", 'Nom'=>"TC AUBENAS", 'Code'=>"AUBENC"),
801 => array('Id'=>"224", 'Nom'=>"TC CHARLEVILLE MEZIERES", 'Code'=>"CHMEZC"),
802 => array('Id'=>"640", 'Nom'=>"TC SEDAN", 'Code'=>"SEDANC"),
901 => array('Id'=>"312", 'Nom'=>"TC FOIX", 'Code'=>"FOIXC"),
951 => array('Id'=>"313", 'Nom'=>"TGI FOIX", 'Code'=>"FOIXG"),
1001 => array('Id'=>"742", 'Nom'=>"TC TROYES", 'Code'=>"TROYEC"),
1101 => array('Id'=>"175", 'Nom'=>"TC CARCASSONNE", 'Code'=>"CARCAC"),
1102 => array('Id'=>"179", 'Nom'=>"TC CASTELNAUDARY", 'Code'=>"CASTEC"),
1103 => array('Id'=>"395", 'Nom'=>"TC LIMOUX", 'Code'=>"LIMOUC"),
1104 => array('Id'=>"508", 'Nom'=>"TC NARBONNE", 'Code'=>"NARBOC"),
1201 => array('Id'=>"296", 'Nom'=>"TC ESPALION", 'Code'=>"ESPALC"),
1202 => array('Id'=>"455", 'Nom'=>"TC MILLAU", 'Code'=>"MILLAC"),
1203 => array('Id'=>"612", 'Nom'=>"TC RODEZ", 'Code'=>"RODEZC"),
1204 => array('Id'=>"655", 'Nom'=>"TC SAINT AFRIQUE", 'Code'=>"STAFFC"),
1301 => array('Id'=>"8", 'Nom'=>"TC AIX EN PROVENCE", 'Code'=>"AIXC"),
1302 => array('Id'=>"49", 'Nom'=>"TC ARLES", 'Code'=>"ARLESC"),
1303 => array('Id'=>"435", 'Nom'=>"TC MARSEILLE", 'Code'=>"MARSEC"),
1304 => array('Id'=>"626", 'Nom'=>"TC SALON DE PROVENCE", 'Code'=>"SALONC"),
1305 => array('Id'=>"715", 'Nom'=>"TC TARASCON", 'Code'=>"TARASC"),
1401 => array('Id'=>"89", 'Nom'=>"TC BAYEUX", 'Code'=>"BAYEUC"),
1402 => array('Id'=>"162", 'Nom'=>"TC CAEN", 'Code'=>"CAENC"),
1403 => array('Id'=>"245", 'Nom'=>"TC CONDE-SUR-NOIREAU", 'Code'=>"CONDEC"),
1404 => array('Id'=>"306", 'Nom'=>"TC FALAISE", 'Code'=>"FALAIC"),
1405 => array('Id'=>"348", 'Nom'=>"TC HONFLEUR", 'Code'=>"HONFLC"),
1407 => array('Id'=>"397", 'Nom'=>"TC LISIEUX", 'Code'=>"LISIEC"),
1408 => array('Id'=>"782", 'Nom'=>"TC VIRE", 'Code'=>"VIREC"),
1501 => array('Id'=>"59", 'Nom'=>"TC AURILLAC", 'Code'=>"AURILC"),
1502 => array('Id'=>"677", 'Nom'=>"TC SAINT FLOUR", 'Code'=>"STFLOC"),
1601 => array('Id'=>"35", 'Nom'=>"TC ANGOULEME", 'Code'=>"ANGOUC"),
1602 => array('Id'=>"237", 'Nom'=>"TC COGNAC", 'Code'=>"COGNAC"),
1701 => array('Id'=>"357", 'Nom'=>"TC JONZAC", 'Code'=>"JONZAC"),
1702 => array('Id'=>"430", 'Nom'=>"TC MARENNES", 'Code'=>"MARENC"),
1703 => array('Id'=>"603", 'Nom'=>"TC ROCHEFORT", 'Code'=>"ROCHEC"),
1704 => array('Id'=>"606", 'Nom'=>"TC LA ROCHELLE", 'Code'=>"ROCHLC"),
1708 => array('Id'=>"623", 'Nom'=>"TC SAINTES", 'Code'=>"SAINTC"),
1801 => array('Id'=>"148", 'Nom'=>"TC BOURGES", 'Code'=>"BRGESC"),
1901 => array('Id'=>"159", 'Nom'=>"TC BRIVE", 'Code'=>"BRIVEC"),
1902 => array('Id'=>"745", 'Nom'=>"TC TULLE", 'Code'=>"TULLEC"),
2001 => array('Id'=>"11", 'Nom'=>"TC AJACCIO", 'Code'=>"AJACCC"),
2002 => array('Id'=>"86", 'Nom'=>"TC BASTIA", 'Code'=>"BASTIC"),
2003 => array('Id'=>"349", 'Nom'=>"TC L'ILE ROUSSE", 'Code'=>"ILEROC"),
2101 => array('Id'=>"66", 'Nom'=>"TC AUXONNE", 'Code'=>"AUXONC"),
2102 => array('Id'=>"94", 'Nom'=>"TC BEAUNE", 'Code'=>"BEAUNC"),
2103 => array('Id'=>"208", 'Nom'=>"TC CHATILLON SUR SEINE", 'Code'=>"CHATIC"),
2104 => array('Id'=>"272", 'Nom'=>"TC DIJON", 'Code'=>"DIJONC"),
2105 => array('Id'=>"533", 'Nom'=>"TC NUITS ST GEORGES", 'Code'=>"NUITSC"),
2201 => array('Id'=>"541", 'Nom'=>"TC PAIMPOL", 'Code'=>"PAIMPC"),
2202 => array('Id'=>"660", 'Nom'=>"TC SAINT BRIEUC", 'Code'=>"STBRIC"),
2251 => array('Id'=>"275", 'Nom'=>"TGIcc DINAN", 'Code'=>"DINANG"),
2252 => array('Id'=>"342", 'Nom'=>"TGIcc GUINGAMP", 'Code'=>"GUINGG"),
2301 => array('Id'=>"1813", 'Nom'=>"TC GUERET", 'Code'=>"GUEREC"),
2353 => array('Id'=>"340", 'Nom'=>"TGIcc GUERET", 'Code'=>"GUEREG"),
2401 => array('Id'=>"105", 'Nom'=>"TC BERGERAC", 'Code'=>"BERGEC"),
2402 => array('Id'=>"554", 'Nom'=>"TC PERIGUEUX", 'Code'=>"PERIGC"),
2403 => array('Id'=>"628", 'Nom'=>"TC SARLAT", 'Code'=>"SARLAC"),
2501 => array('Id'=>"111", 'Nom'=>"TC BESANCON", 'Code'=>"BESANC"),
2552 => array('Id'=>"461", 'Nom'=>"TGIcc MONTBELIARD", 'Code'=>"MONTBG"),
2601 => array('Id'=>"265", 'Nom'=>"TC DIE", 'Code'=>"DIEC"),
2602 => array('Id'=>"614", 'Nom'=>"TC ROMANS", 'Code'=>"ROMANC"),
2653 => array('Id'=>"752", 'Nom'=>"TGIcc VALENCE", 'Code'=>"VALENG"),
2701 => array('Id'=>"108", 'Nom'=>"TC BERNAY", 'Code'=>"BERNAC"),
2702 => array('Id'=>"300", 'Nom'=>"TC EVREUX", 'Code'=>"EVREUC"),
2703 => array('Id'=>"410", 'Nom'=>"TC LOUVIERS", 'Code'=>"LOUVIC"),
2704 => array('Id'=>"569", 'Nom'=>"TC PONT AUDEMER", 'Code'=>"PONTAC"),
2801 => array('Id'=>"199", 'Nom'=>"TC CHARTRES", 'Code'=>"CHARTC"),
2802 => array('Id'=>"286", 'Nom'=>"TC DREUX", 'Code'=>"DREUXC"),
2901 => array('Id'=>"145", 'Nom'=>"TC BREST", 'Code'=>"BRESTC"),
2902 => array('Id'=>"487", 'Nom'=>"TC MORLAIX", 'Code'=>"MORLAC"),
2903 => array('Id'=>"583", 'Nom'=>"TC QUIMPER", 'Code'=>"QUIMPC"),
3001 => array('Id'=>"22", 'Nom'=>"TC ALES", 'Code'=>"ALESC"),
3003 => array('Id'=>"522", 'Nom'=>"TC NIMES", 'Code'=>"NIMESC"),
3101 => array('Id'=>"679", 'Nom'=>"TC SAINT GAUDENS", 'Code'=>"STGAUC"),
3102 => array('Id'=>"733", 'Nom'=>"TC TOULOUSE", 'Code'=>"TOULSC"),
3201 => array('Id'=>"56", 'Nom'=>"TC AUCH", 'Code'=>"AUCHC"),
3301 => array('Id'=>"121", 'Nom'=>"TC BLAYE", 'Code'=>"BLAYEC"),
3302 => array('Id'=>"132", 'Nom'=>"TC BORDEAUX", 'Code'=>"BORDEC"),
3303 => array('Id'=>"386", 'Nom'=>"TC LIBOURNE", 'Code'=>"LIBOUC"),
3402 => array('Id'=>"116", 'Nom'=>"TC BEZIERS", 'Code'=>"BEZIEC"),
3403 => array('Id'=>"235", 'Nom'=>"TC CLERMONT L'HERAULT", 'Code'=>"CLHERC"),
3404 => array('Id'=>"401", 'Nom'=>"TC LODEVE", 'Code'=>"LODEVC"),
3405 => array('Id'=>"477", 'Nom'=>"TC MONTPELLIER", 'Code'=>"MONTPC"),
3406 => array('Id'=>"561", 'Nom'=>"TC PEZENAS", 'Code'=>"PEZENC"),
3407 => array('Id'=>"649", 'Nom'=>"TC SETE", 'Code'=>"SETEC"),
3501 => array('Id'=>"591", 'Nom'=>"TC RENNES", 'Code'=>"RENNEC"),
3502 => array('Id'=>"691", 'Nom'=>"TC SAINT MALO", 'Code'=>"STMALC"),
3601 => array('Id'=>"205", 'Nom'=>"TC CHATEAUROUX", 'Code'=>"CHATEC"),
3602 => array('Id'=>"353", 'Nom'=>"TC ISSOUDUN", 'Code'=>"ISSOUC"),
3701 => array('Id'=>"739", 'Nom'=>"TC TOURS", 'Code'=>"TOURSC"),
3801 => array('Id'=>"336", 'Nom'=>"TC GRENOBLE", 'Code'=>"GRENOC"),
3802 => array('Id'=>"770", 'Nom'=>"TC VIENNE", 'Code'=>"VIENNC"),
3851 => array('Id'=>"118", 'Nom'=>"TGIcc BOURGOIN JALLIEU", 'Code'=>"BGOING"),
3901 => array('Id'=>"277", 'Nom'=>"TC DOLE", 'Code'=>"DOLEC"),
3902 => array('Id'=>"403", 'Nom'=>"TC LONS LE SAUNIER", 'Code'=>"LONSC"),
3903 => array('Id'=>"625", 'Nom'=>"TC SALINS LES BAINS", 'Code'=>"SALINC"),
4001 => array('Id'=>"262", 'Nom'=>"TC DAX", 'Code'=>"DAXC"),
4002 => array('Id'=>"470", 'Nom'=>"TC MONT DE MARSAN", 'Code'=>"MONTMC"),
4101 => array('Id'=>"123", 'Nom'=>"TC BLOIS", 'Code'=>"BLOISC"),
4102 => array('Id'=>"616", 'Nom'=>"TC ROMORANTIN", 'Code'=>"ROMORC"),
4201 => array('Id'=>"599", 'Nom'=>"TC ROANNE", 'Code'=>"ROANNC"),
4202 => array('Id'=>"674", 'Nom'=>"TC SAINT ETIENNE", 'Code'=>"STETIC"),
4251 => array('Id'=>"480", 'Nom'=>"TGIcc MONTBRISON", 'Code'=>"MONTRG"),
4301 => array('Id'=>"157", 'Nom'=>"TC BRIOUDE", 'Code'=>"BRIOUC"),
4302 => array('Id'=>"377", 'Nom'=>"TC PUY EN VELAY", 'Code'=>"LEPUYC"),
4401 => array('Id'=>"501", 'Nom'=>"TC NANTES", 'Code'=>"NANTEC"),
4402 => array('Id'=>"695", 'Nom'=>"TC SAINT NAZAIRE", 'Code'=>"STNAZC"),
4501 => array('Id'=>"482", 'Nom'=>"TC MONTARGIS", 'Code'=>"MONTSC"),
4502 => array('Id'=>"539", 'Nom'=>"TC ORLEANS", 'Code'=>"ORLEAC"),
4601 => array('Id'=>"165", 'Nom'=>"TC CAHORS", 'Code'=>"CAHORC"),
4701 => array('Id'=>"5", 'Nom'=>"TC AGEN", 'Code'=>"AGENC"),
4702 => array('Id'=>"432", 'Nom'=>"TC MARMANDE", 'Code'=>"MARMAC"),
4703 => array('Id'=>"511", 'Nom'=>"TC NERAC", 'Code'=>"NERACC"),
4704 => array('Id'=>"778", 'Nom'=>"TC VILLENEUVE SUR LOT", 'Code'=>"VILLNC"),
4801 => array('Id'=>"447", 'Nom'=>"TC MENDE", 'Code'=>"MENDEC"),
4853 => array('Id'=>"448", 'Nom'=>"TGIcc MENDE", 'Code'=>"MENDEG"),
4901 => array('Id'=>"32", 'Nom'=>"TC ANGERS", 'Code'=>"ANGERC"),
4902 => array('Id'=>"634", 'Nom'=>"TC SAUMUR", 'Code'=>"SAUMUC"),
5001 => array('Id'=>"217", 'Nom'=>"TC CHERBOURG", 'Code'=>"CHERBC"),
5002 => array('Id'=>"253", 'Nom'=>"TC COUTANCES", 'Code'=>"COUTAC"),
5003 => array('Id'=>"330", 'Nom'=>"TC GRANVILLE", 'Code'=>"GRANVC"),
5004 => array('Id'=>"689", 'Nom'=>"TC SAINT LO", 'Code'=>"STLOC"),
5101 => array('Id'=>"221", 'Nom'=>"TC CHALONS EN CHAMPAGNE", 'Code'=>"CHLONC"),
5102 => array('Id'=>"292", 'Nom'=>"TC EPERNAY", 'Code'=>"EPERNC"),
5103 => array('Id'=>"588", 'Nom'=>"TC REIMS", 'Code'=>"REIMSC"),
5201 => array('Id'=>"213", 'Nom'=>"TC CHAUMONT", 'Code'=>"CHAUMC"),
5202 => array('Id'=>"363", 'Nom'=>"TC LANGRES", 'Code'=>"LANGRC"),
5203 => array('Id'=>"671", 'Nom'=>"TC SAINT DIZIER", 'Code'=>"STDIZC"),
5301 => array('Id'=>"371", 'Nom'=>"TC LAVAL", 'Code'=>"LAVALC"),
5302 => array('Id'=>"439", 'Nom'=>"TC MAYENNE", 'Code'=>"MAYENC"),
5401 => array('Id'=>"152", 'Nom'=>"TC BRIEY", 'Code'=>"BRIEYC"),
5402 => array('Id'=>"498", 'Nom'=>"TC NANCY", 'Code'=>"NANCYC"),
5501 => array('Id'=>"79", 'Nom'=>"TC BAR LE DUC", 'Code'=>"BARLDC"),
5502 => array('Id'=>"758", 'Nom'=>"TC VERDUN", 'Code'=>"VERDUC"),
5601 => array('Id'=>"406", 'Nom'=>"TC LORIENT", 'Code'=>"LORIEC"),
5602 => array('Id'=>"754", 'Nom'=>"TC VANNES", 'Code'=>"VANNEC"),
5751 => array('Id'=>"452", 'Nom'=>"TGIcc METZ", 'Code'=>"METZG"),
5752 => array('Id'=>"630", 'Nom'=>"TGIcc SARREGUEMINES", 'Code'=>"SARREG"),
5753 => array('Id'=>"724", 'Nom'=>"TGIcc THIONVILLE", 'Code'=>"THIONG"),
5801 => array('Id'=>"230", 'Nom'=>"TC CLAMECY", 'Code'=>"CLAMEC"),
5802 => array('Id'=>"515", 'Nom'=>"TC NEVERS", 'Code'=>"NEVERC"),
5901 => array('Id'=>"171", 'Nom'=>"TC CAMBRAI", 'Code'=>"CAMBRC"),
5902 => array('Id'=>"288", 'Nom'=>"TC DUNKERQUE", 'Code'=>"DUNKEC"),
5903 => array('Id'=>"389", 'Nom'=>"TC LILLE", 'Code'=>"LILLEC"),
5904 => array('Id'=>"617", 'Nom'=>"TC ROUBAIX TOURCOING", 'Code'=>"ROUBAC"),
5905 => array('Id'=>"735", 'Nom'=>"TC ROUBAIX TOURCOING", 'Code'=>"TOURCC"),
5906 => array('Id'=>"749", 'Nom'=>"TC VALENCIENNES", 'Code'=>"VALECC"),
5910 => array('Id'=>"3340", 'Nom'=>"TC LILLE METROPOLE", 'Code'=>"LILLEM"),
5951 => array('Id'=>"69", 'Nom'=>"TGIcc AVESNES SUR HELPE", 'Code'=>"AVESNG"),
5952 => array('Id'=>"280", 'Nom'=>"TC DOUAI", 'Code'=>"DOUAIC"),
5953 => array('Id'=>"347", 'Nom'=>"TGIcc HAZEBROUCK", 'Code'=>"HAZEBG"),
6001 => array('Id'=>"96", 'Nom'=>"TC BEAUVAIS", 'Code'=>"BEAUVC"),
6002 => array('Id'=>"243", 'Nom'=>"TC COMPIEGNE", 'Code'=>"COMPIC"),
6003 => array('Id'=>"644", 'Nom'=>"TC SENLIS", 'Code'=>"SENLIC"),
6101 => array('Id'=>"19", 'Nom'=>"TC ALENCON", 'Code'=>"ALENCC"),
6102 => array('Id'=>"45", 'Nom'=>"TC ARGENTAN", 'Code'=>"ARGENC"),
6103 => array('Id'=>"309", 'Nom'=>"TC FLERS", 'Code'=>"FLERSC"),
6104 => array('Id'=>"360", 'Nom'=>"TC L'AIGLE", 'Code'=>"LAIGLC"),
6105 => array('Id'=>"780", 'Nom'=>"TC VIMOUTIERS", 'Code'=>"VIMOUC"),
6201 => array('Id'=>"51", 'Nom'=>"TC ARRAS", 'Code'=>"ARRASC"),
6202 => array('Id'=>"137", 'Nom'=>"TC BOULOGNE SUR MER", 'Code'=>"BOULOC"),
6203 => array('Id'=>"168", 'Nom'=>"TC CALAIS", 'Code'=>"CALAIC"),
6204 => array('Id'=>"698", 'Nom'=>"TC SAINT OMER", 'Code'=>"STOMEC"),
6251 => array('Id'=>"114", 'Nom'=>"TGIcc BETHUNE", 'Code'=>"BETHUG"),
6301 => array('Id'=>"26", 'Nom'=>"TC AMBERT", 'Code'=>"AMBERC"),
6302 => array('Id'=>"119", 'Nom'=>"TC BILLOM", 'Code'=>"BILLOC"),
6303 => array('Id'=>"233", 'Nom'=>"TC CLERMONT FERRAND", 'Code'=>"CLFERC"),
6304 => array('Id'=>"351", 'Nom'=>"TC ISSOIRE", 'Code'=>"ISSOIC"),
6305 => array('Id'=>"596", 'Nom'=>"TC RIOM", 'Code'=>"RIOMC"),
6306 => array('Id'=>"722", 'Nom'=>"TC THIERS", 'Code'=>"THIERC"),
6401 => array('Id'=>"91", 'Nom'=>"TC BAYONNE", 'Code'=>"BAYONC"),
6402 => array('Id'=>"536", 'Nom'=>"TC OLORON SAINTE MARIE", 'Code'=>"OLOROC"),
6403 => array('Id'=>"551", 'Nom'=>"TC PAU", 'Code'=>"PAUC"),
6501 => array('Id'=>"76", 'Nom'=>"TC BAGNERES DE BIGORRE", 'Code'=>"BAGNEC"),
6502 => array('Id'=>"718", 'Nom'=>"TC TARBES", 'Code'=>"TARBEC"),
6601 => array('Id'=>"559", 'Nom'=>"TC PERPIGNAN", 'Code'=>"PERPIC"),
6751 => array('Id'=>"637", 'Nom'=>"TGIcc SAVERNE", 'Code'=>"SAVERG"),
6752 => array('Id'=>"709", 'Nom'=>"TGIcc STRASBOURG", 'Code'=>"STRASG"),
6851 => array('Id'=>"239", 'Nom'=>"TGIcc COLMAR", 'Code'=>"COLMAG"),
6852 => array('Id'=>"494", 'Nom'=>"TGIcc MULHOUSE", 'Code'=>"MULHOG"),
6901 => array('Id'=>"415", 'Nom'=>"TC LYON", 'Code'=>"LYONC"),
6902 => array('Id'=>"775", 'Nom'=>"TC VILLEFRANCHE SUR SAONE", 'Code'=>"VILLFC"),
6903 => array('Id'=>"779", 'Nom'=>"TC VILLEFRANCHE-TARARE", 'Code'=>"VILTAC"),
7001 => array('Id'=>"334", 'Nom'=>"TC GRAY", 'Code'=>"GRAYC"),
7051 => array('Id'=>"413", 'Nom'=>"TGIcc LURE", 'Code'=>"LUREG"),
7052 => array('Id'=>"766", 'Nom'=>"TC VESOUL GRAY", 'Code'=>"VESOUC"),
7101 => array('Id'=>"62", 'Nom'=>"TC AUTUN", 'Code'=>"AUTUNC"),
7102 => array('Id'=>"191", 'Nom'=>"TC CHALON SUR SAONE", 'Code'=>"CHALOC"),
7103 => array('Id'=>"197", 'Nom'=>"TC CHAROLLES", 'Code'=>"CHAROC"),
7104 => array('Id'=>"258", 'Nom'=>"TC LE CREUSOT", 'Code'=>"CREUSC"),
7105 => array('Id'=>"409", 'Nom'=>"TC LOUHANS", 'Code'=>"LOUHAC"),
7106 => array('Id'=>"418", 'Nom'=>"TC MACON", 'Code'=>"MACONC"),
7107 => array('Id'=>"737", 'Nom'=>"TC TOURNUS", 'Code'=>"TOURNC"),
7201 => array('Id'=>"421", 'Nom'=>"TC MAMERS", 'Code'=>"MAMERC"),
7202 => array('Id'=>"427", 'Nom'=>"TC LE MANS", 'Code'=>"MANSC"),
7301 => array('Id'=>"194", 'Nom'=>"TC CHAMBERY", 'Code'=>"CHAMBC"),
7351 => array('Id'=>"14", 'Nom'=>"TGIcc ALBERTVILLE", 'Code'=>"ALBERG"),
7401 => array('Id'=>"1814", 'Nom'=>"TC ANNECY", 'Code'=>"ANNECC"),
7402 => array('Id'=>"1815", 'Nom'=>"TC THONON LES BAINS", 'Code'=>"THONOC"),
7451 => array('Id'=>"38", 'Nom'=>"TGIcc ANNECY", 'Code'=>"ANNECG"),
7452 => array('Id'=>"129", 'Nom'=>"TGIcc BONNEVILLE", 'Code'=>"BONNEG"),
7454 => array('Id'=>"727", 'Nom'=>"TGIcc THONON LES BAINS", 'Code'=>"THONOG"),
7501 => array('Id'=>"547", 'Nom'=>"TC PARIS", 'Code'=>"PARISC"),
7601 => array('Id'=>"267", 'Nom'=>"TC DIEPPE", 'Code'=>"DIEPPC"),
7602 => array('Id'=>"290", 'Nom'=>"TC ELBEUF", 'Code'=>"ELBEUC"),
7603 => array('Id'=>"298", 'Nom'=>"TC EULET", 'Code'=>"EULETC"),
7604 => array('Id'=>"307", 'Nom'=>"TC FECAMP (de terre et de mer)", 'Code'=>"FECAMC"),
7605 => array('Id'=>"329", 'Nom'=>"TC GOURNAY EN BRAY", 'Code'=>"GOURNC"),
7606 => array('Id'=>"345", 'Nom'=>"TC LE HAVRE", 'Code'=>"HAVREC"),
7607 => array('Id'=>"513", 'Nom'=>"TC NEUFCHATEL EN BRAY", 'Code'=>"NEUFCC"),
7608 => array('Id'=>"619", 'Nom'=>"TC ROUEN", 'Code'=>"ROUENC"),
7609 => array('Id'=>"712", 'Nom'=>"TC SAINT VALERY EN CAUX", 'Code'=>"STVACC"),
7701 => array('Id'=>"441", 'Nom'=>"TC MEAUX", 'Code'=>"MEAUXC"),
7702 => array('Id'=>"444", 'Nom'=>"TC MELUN", 'Code'=>"MELUNC"),
7703 => array('Id'=>"463", 'Nom'=>"TC MONTEREAU", 'Code'=>"MONTEC"),
7704 => array('Id'=>"581", 'Nom'=>"TC PROVINS", 'Code'=>"PROVIC"),
7801 => array('Id'=>"304", 'Nom'=>"TC EVRY", 'Code'=>"EVRYC"),
7802 => array('Id'=>"572", 'Nom'=>"TC PONTOISE", 'Code'=>"PONTOC"),
7803 => array('Id'=>"761", 'Nom'=>"TC VERSAILLES", 'Code'=>"VERSAC"),
7901 => array('Id'=>"525", 'Nom'=>"TC NIORT", 'Code'=>"NIORTC"),
7951 => array('Id'=>"143", 'Nom'=>"TGIcc BRESSUIRE", 'Code'=>"BRESSG"),
8001 => array('Id'=>"2", 'Nom'=>"TC ABBEVILLE", 'Code'=>"ABBEVC"),
8002 => array('Id'=>"28", 'Nom'=>"TC AMIENS", 'Code'=>"AMIENC"),
8003 => array('Id'=>"713", 'Nom'=>"TC SAINT VALERY S/ SOMME", 'Code'=>"STVASC"),
8053 => array('Id'=>"557", 'Nom'=>"TGIcc PERONNE", 'Code'=>"PERONG"),
8101 => array('Id'=>"16", 'Nom'=>"TC ALBI", 'Code'=>"ALBIC"),
8102 => array('Id'=>"182", 'Nom'=>"TC CASTRES", 'Code'=>"CASTRC"),
8201 => array('Id'=>"473", 'Nom'=>"TC MONTAUBAN", 'Code'=>"MONTNC"),
8301 => array('Id'=>"155", 'Nom'=>"TC BRIGNOLES", 'Code'=>"BRIGNC"),
8302 => array('Id'=>"283", 'Nom'=>"TC DRAGUIGNAN", 'Code'=>"DRAGUC"),
8303 => array('Id'=>"323", 'Nom'=>"TC FREJUS", 'Code'=>"FREJUC"),
8304 => array('Id'=>"711", 'Nom'=>"TC SAINT TROPEZ", 'Code'=>"STTROC"),
8305 => array('Id'=>"730", 'Nom'=>"TC TOULON", 'Code'=>"TOULOC"),
8401 => array('Id'=>"71", 'Nom'=>"TC AVIGNON", 'Code'=>"AVIGNC"),
8452 => array('Id'=>"178", 'Nom'=>"TGIcc CARPENTRAS", 'Code'=>"CARPEG"),
8501 => array('Id'=>"609", 'Nom'=>"TC LA ROCHE SUR YON", 'Code'=>"ROCHYC"),
8601 => array('Id'=>"228", 'Nom'=>"TC CHATELLERAULT", 'Code'=>"CHTLTC"),
8602 => array('Id'=>"567", 'Nom'=>"TC POITIERS", 'Code'=>"POITIC"),
8701 => array('Id'=>"392", 'Nom'=>"TC LIMOGES", 'Code'=>"LIMOGC"),
8801 => array('Id'=>"294", 'Nom'=>"TC EPINAL", 'Code'=>"EPINAC"),
8802 => array('Id'=>"458", 'Nom'=>"TC MIRECOURT", 'Code'=>"MIRECC"),
8803 => array('Id'=>"668", 'Nom'=>"TC SAINT DIE", 'Code'=>"STDIEC"),
8901 => array('Id'=>"64", 'Nom'=>"TC AUXERRE", 'Code'=>"AUXERC"),
8902 => array('Id'=>"355", 'Nom'=>"TC JOIGNY", 'Code'=>"JOIGNC"),
8903 => array('Id'=>"647", 'Nom'=>"TC SENS", 'Code'=>"SENSC"),
9001 => array('Id'=>"99", 'Nom'=>"TC BELFORT", 'Code'=>"BELFOC"),
9101 => array('Id'=>"248", 'Nom'=>"TC CORBEIL ESSONNES", 'Code'=>"CORBEC"),
9201 => array('Id'=>"504", 'Nom'=>"TC NANTERRE", 'Code'=>"NANTRC"),
9301 => array('Id'=>"126", 'Nom'=>"TC BOBIGNY", 'Code'=>"BOBIGC"),
9401 => array('Id'=>"256", 'Nom'=>"TC CRETEIL", 'Code'=>"CRETEC"),
9711 => array('Id'=>"84", 'Nom'=>"TMX BASSE-TERRE", 'Code'=>"BASSEM"),
9712 => array('Id'=>"565", 'Nom'=>"TMX POINTE-A-PITRE", 'Code'=>"POINTM"),
9721 => array('Id'=>"321", 'Nom'=>"TMX FORT DE FRANCE", 'Code'=>"FORTFM"),
9731 => array('Id'=>"187", 'Nom'=>"TMX CAYENNE", 'Code'=>"CAYENM"),
9741 => array('Id'=>"666", 'Nom'=>"TMX SAINT DENIS DE LA REUNION", 'Code'=>"STDENM"),
9742 => array('Id'=>"1816", 'Nom'=>"TMX SAINT PIERRE DE LA REUNION", 'Code'=>"STPIEM"),
);

View File

@ -1,54 +1,33 @@
<?php
ini_set('soap.wsdl_cache_enabled', 0);
ini_set('default_socket_timeout', 30);
class AmaSoapClient extends SoapClient {
class MAmabis
{
protected $client;
protected $iDb;
function __doRequest($request, $location, $action, $version) {
/* $request = strtr($request, array('<ns1:'=>'<ama:',
'</ns1:'=>'</ama:',
// '<param0 xsi:type="xsd:string">'=>'',
'xmlns:ns1="http://www.amabis.com/ama.xsd"'=>'xmlns:ama="http://www.amabis.com/ama.xsd"',
// '</param0>'=>'',
// '&lt;'=>'<',
// '&gt;'=>'>',
)
);*/
return parent::__doRequest($request, $location, $action, $version);
}
}
class MAmabis {
private $client;
function __construct() {
/* $this->client = new AmaSoapClient(null, //'http://www.amabis.com/ama.wsdl',//null, //
array( 'location' => AMABIS_WS_URL,//'http://sw4.amabis.com:5101',
'uri' => AMABIS_WS_URI,//'http://sw4.amabis.com:5101',
'soap_version' => SOAP_1_1,
'trace' => 1,
'style' => SOAP_RPC,
'use' => SOAP_ENCODED,
'connection_timeout'=> 2,
)
);
*/
$this->client = new AmaSoapClient(null,
array( //'location' => 'http://sw4.amabis.com:5100',
'location' => 'http://sw2.amabis.com:5100/',
'uri' => 'http://www.amabis.com/ns.xsd',
'connection_timeout' => 2,
'default_socket_timeout'=> 2,
'soap_version' => SOAP_1_1,
'trace' => 1,
'style' => SOAP_RPC,
'use' => SOAP_ENCODED,
)
);
public function __construct($db = null)
{
if ( $db === null ) {
$this->iDb = new WDB();
} else {
$this->iDb = $db;
}
$this->client = new SoapClient(null, array(
'location' => 'http://sw2.amabis.com:5100/',
'uri' => 'http://www.amabis.com/ns.xsd',
'connection_timeout' => 2,
'soap_version' => SOAP_1_1,
'trace' => 1,
'style' => SOAP_RPC,
'use' => SOAP_ENCODED,
));
}
function getZonage($adrNum, $adrIndRep, $adrTypeVoie, $adrLibVoie, $cp, $ville='', $codeRivoli='', $rnvp=false, $raisonSociale='TEST', $debug=false) {
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;
@ -56,7 +35,7 @@ class MAmabis {
$dep3=substr($cp,0,3)*1;
switch ($dep2) {
case 0:
case 5:
/*case 5:
case 9:
case 15:
case 19:
@ -64,7 +43,7 @@ class MAmabis {
case 32:
case 46:
case 48:
case 82:
case 82:*/
case 97: // DOM
case 98: // TOM
case 99: // Etranger
@ -75,14 +54,22 @@ class MAmabis {
break;
}
}
$iDb=new WDB();
$adresse=addslashes(trim(preg_replace('/ +/',' ', "$adrNum $adrIndRep $adrTypeVoie $adrLibVoie")));
$ville=addslashes($ville);
$ret=$iDb->select( 'zonage', 'zus, zru, zfu, cucs', "address='$adresse' AND adr_cp='$cp' AND adr_ville='$ville'",false, MYSQL_ASSOC);
$majForcee=false;
$ret = $this->iDb->select('jo.zonage', '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',
"address='$adresse' AND adr_cp='$cp' AND adr_ville='$ville'",false, MYSQL_ASSOC);
$zones=@$ret[0];
if (count($ret)>0) {
$zones=$ret[0];
if ($zones['rnvpStatut']===null && $rnvp) $majForcee=true;
$tabRep['ZUS']=$tabRep['ZFU']=$tabRep['ZRU']=$tabRep['CUCS']='NON';
//$tabRep['NZUS']=$tabRep['NZFU']=$tabRep['NZRU']=$tabRep['NCUCS']='';
if (trim($zones['zus'])<>'') {
if (trim($zones['zus'])=='NSP') $tabRep['ZUS']='NSP';
else $tabRep['ZUS']='OUI';
@ -103,13 +90,27 @@ class MAmabis {
else $tabRep['CUCS']='OUI';
$tabRep['NCUCS']=$zones['cucs'];
}
//return $tabRep;
} else {
/** Autres Informations de la RNVP **/
if ($rnvp) {
//$tabRep['ADR1']=@trim($tabZones['ADR1']);
//$tabRep['ADR2']=@trim($tabZones['ADR2']);
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 (count($ret)==0 || $majForcee) {
try {
if (trim($raisonSociale)=='') $raisonSociale='TEST'; // Le RNVP ne fonctionne pas sans la Raison Sociale qui est la 1ère ligne d'adresse
$rep=$this->client->zonage( new SoapParam(strtr("$raisonSociale:$adresse:$cp:$ville",
'¿°ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ??',
'¿°ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ??',
' aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr'),'adresse'),
new SoapParam(':','separateur'),
new SoapParam('type=M','options')
@ -117,75 +118,152 @@ class MAmabis {
/*$rep=$this->client->zonage( "<adresse></adresse>".
"<separateur>:</separateur>".
"<options>type=M</options>");*/
/** Découpage des ZFU, CUCS etcs...
**/
$fp=fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s').' - '.implode("\n", $rep)."\n============================================================================\n");
fclose($fp);
$tabZones=explode(',',$rep['zonage']); // ZUS=OUI,NZUS=1127020,ZFU=OUI,NZFU=11270ZF,CUCS=OUI,NCUCS=1127020
foreach ($tabZones as $zone) {
$tabTmp=explode('=',$zone);
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';
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);
$tabInsert=array( 'address'=>$adresse,
'adr_cp'=>$cp,
'adr_ville'=>$ville,
'zus'=>$tabRep['NZUS'],
'zru'=>$tabRep['NZRU'],
'zfu'=>$tabRep['NZFU'],
'cucs'=>$tabRep['NCUCS'],
'adrNum'=>$adrNum,
'adrIndRep'=>$adrIndRep,
'adrTypeVoie'=>$adrTypeVoie,
'adrLibVoie'=>$adrLibVoie,
'rivoli'=>$codeRivoli,
);
$iDb->insert('zonage', $tabInsert);
$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);
$ret = $this->iDb->select('jo.zonage', 'dateInsert*1 as dateInsert', "address='$adresseL' AND adr_cp='$cp' AND adr_ville='$villeL'", false);
$dateInsert=@$ret[0]['dateInsert']*1;
$this->iDb->update('jo.zonage', array_merge($tabUpdate,array('dateInsert'=>$dateInsert)), "address='$adresseL' AND adr_cp='$cp' AND adr_ville='$villeL'", false);
//echo "Mise à jour de l'adresse du $dateInsert pour address='$adresseL' AND adr_cp='$cp' AND adr_ville='$villeL'".EOL;
}
if ($dateInsert==0) {
$this->iDb->insert('jo.zonage', array_merge($tabInsert,$tabUpdate), false);
//echo "Insertion de l'adresse (".$zones['rnvpStatut'].")!".EOL;
}
$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'),
);
$this->iDb->insert('jo.villesCP', $tabInsert, false);
//echo mysql_error().EOL;
}
/** Autres Informations de la RNVP
**/
if ($rnvp || $debug) {
$tabRepTmp=array();
$tabZones=explode(',',$rep['objdesc']);
foreach ($tabZones as $zone) {
$tabTmp=explode('=',$zone);
if (trim($tabTmp[0])<>'')
$tabRepTmp[$tabTmp[0]]=$tabTmp[1];
}
if (!$debug) {
$tabRep['ADR1']=@$tabRepTmp['ADR1'];
$tabRep['ADR2']=@$tabRepTmp['ADR2'];
$tabRep['ADR3']=@$tabRepTmp['ADR3'];
$tabRep['ADR4']=@$tabRepTmp['ADR4'];
$tabRep['ADR5']=@$tabRepTmp['ADR5'];
$tabRep['ADR6']=@$tabRepTmp['ADR6'];
$tabRep['ADR7']=@$tabRepTmp['ADR7'];
} else {
$tabRep=array_merge($tabRep, $tabRepTmp);
}
if ($rnvp) {
//$tabRep['ADR1']=@trim($tabZones['ADR1']);
//$tabRep['ADR2']=@trim($tabZones['ADR2']);
$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) {
echo 'ERREUR SOAP :'.EOL;
print_r($fault);
echo $this->client->__getLastRequest()."\n";
echo $this->client->__getLastResponse()."\n";
//echo 'ERREUR SOAP :'.EOL;
//print_r($fault);
//echo $this->client->__getLastRequest()."\n";
//echo $this->client->__getLastResponse()."\n";
$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);
}
//return $tabRep;
}
/** Zonages AFR et ZRR
**/
$codeInsee=substr($codeRivoli,0,5);
$ret=$iDb->select( 'zonageInsee', 'typeZone, arreteDate, decretDate, decretNum, decretModifieDate, decretModifieNum, dateDebut, dateFin', "codeInsee='$codeInsee'",false, MYSQL_ASSOC);
$ret = $this->iDb->select('jo.zonageInsee', 'typeZone, arreteDate, decretDate, decretNum, decretModifieDate, decretModifieNum, dateDebut, dateFin', "codeInsee='$codeInsee'",false, MYSQL_ASSOC);
$tabRep['ZRR']=$tabRep['AFR']='NON';
foreach ($ret as $zones)
switch ($zones['typeZone']) {
@ -193,7 +271,7 @@ class MAmabis {
case 'ZAFR': $tabRep['AFR']='OUI'; $tabRep['NAFR']=$codeInsee; break;
default: break;
}
return $tabRep;
}
@ -208,16 +286,15 @@ class MAmabis {
$query="<rs>$nom</rs><cpville>$cp $ville</cpville><scoremini>90</scoremini><distinction>30</distinction>";
else
$query="<nom>$nom</nom><prenom>$prenom</prenom><cpville>$cp $ville</cpville><scoremini>90</scoremini><distinction>30</distinction>";
$rep=$this->client->rechtel($query);
$fp=fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s')." - $query - ".implode("\n", $rep)."\n============================================================================\n");
fwrite($fp, "Requête : ".$this->client->__getLastRequest()."\n");
fwrite($fp, "Réponse : ".$this->client->__getLastResponse()."\n");
fclose($fp);
}
}
?>

View File

@ -1,5 +1,5 @@
<?
define ('ARTISANAT_DISPO_WEB', 1);
<?php
define ('ARTISANAT_DISPO_WEB', 1);
include_once(FWK_PATH.'common/curl.php');
class MArtisanat {
@ -12,14 +12,14 @@ class MArtisanat {
public $cookie='';
public $iDb;
public $enCache=false;
function __construct() {
$this->iDb=new WDB();
}
function getIdentite($siren, $refresh=false) {
$siren=$siren*1;
$res=$this->iDb->select('artisanat', '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', "siren=$siren", false, MYSQL_ASSOC);
$res=$this->iDb->select('jo.artisanat', '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', "siren=$siren", false, MYSQL_ASSOC);
if (count($res)>0 && !$refresh) {
$this->enCache=true;
$tabInsert=$res[0];
@ -35,7 +35,7 @@ class MArtisanat {
}
$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,
@ -62,7 +62,7 @@ class MArtisanat {
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',
@ -91,9 +91,9 @@ class MArtisanat {
}
$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))
if (preg_match('/<b class="gris">(.*)entreprises.correspondent(?:.*)vos.crit(?:.*)de.recherche<\/span>/Uis', $this->body, $matches))
{
$nbRep=trim($matches[1])*1;
$iRadMax=-1;
@ -126,9 +126,9 @@ class MArtisanat {
}
$this->referer=$url;
}
$tabInsert=array();
if (preg_match('/n&deg; d\'identification \(SIREN\)<\/span><\/td>(?:.*)<td align="left" nowrap>(.*)&nbsp;<\/td>((?:.*)n&deg; de gestion rm<\/span><\/td>(?:.*)<td align="left" nowrap>(.*)<\/td>)?/Uis', $this->body, $matches)) {
$sirenLu=$matches[1]*1;
if ($siren==$sirenLu) {
@ -138,19 +138,23 @@ class MArtisanat {
$this->libErreur='Erreur Siren $sirenLu<>$siren !';
return false;
}
} elseif (preg_match('/<span class="rouge">aucune entreprise ne correspond &agrave; vos crit&egrave;res de recherche<\/span>/Uis', $this->body, $matches)) {
$this->libErreur='Erreur Artisan absent de la base Artisanat !';
// die($this->body);
return false;
} else {
$this->libErreur='Erreur Siren absent dans la page !';
return false;
}
$actif=null;
if (preg_match("/Renseignements.relatif(?:.*)entreprise(.*)<\/b>/Uis", $this->body, $matches)) {
switch (trim(strtr($matches[1],array(chr(160)=>'')))) {
case 'en activit&eacute;': $actif=1; break;
case 'en activit&eacute;': $actif=1; break;
case 'radi&eacute;e': $actif=0; break;
default: print_r($matches);die(); break;
}
//die(EOL.'$actif='.$actif.EOL.print_r($matches));
//die(EOL.'$actif='.$actif.EOL.print_r($matches));
}
$tabInsert['actif']=$actif;
if ($actif===null) {
@ -170,7 +174,7 @@ class MArtisanat {
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">enseigne<\/span><\/td>(?:.*)<td align="left" colspan="4">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['enseigne']=$matches[1];
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">forme&nbsp;juridique<\/span><\/td>(?:.*)<td align="left" colspan="5">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['fj']=$matches[1];
$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))
@ -191,7 +195,7 @@ class MArtisanat {
$tabInsert['radiation']=WDate::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches[1]),chr(160),' ')));
$tabEtabs=array();
if (preg_match('/<!--deb Etablissements secondaires-->(?:.*)<b class="gris">Aucune inscription compl&eacute;mentaire<\/b>(?:.*)<!--fin Etablissements secondaires-->/Uis', $this->body, $matches))
$tabInsert['nbInscriptions']=0;
$tabInsert['nbInscriptions']=0;
elseif (preg_match('/<!--deb Etablissements secondaires-->(?:.*)<b class="gris">Inscription compl&eacute;mentaire<\/b>(.*)<!--fin Etablissements secondaires-->/Uis', $this->body, $matches)) {
$tabInsert['nbInscriptions']=0;
if (preg_match_all('/<tr>(?:.*)<td><img alt="" src="inter\/pixtrans\.gif" width="30" height="1"><\/td>(?:.*)<td nowrap>(?:.*)<!-- adresse -->(.*)<\/td>(?:.*)<td nowrap>(?:.*)<!-- code postal et ville -->(.*)<\/td>(?:.*)<td nowrap>(?:.*)<!-- enseigne -->(.*)<\/td>(?:.*)<td>(?:.*)<!-- debut activite -->(.*)<\/td>(?:.*)<td>(?:.*)<!-- fin activite -->(.*)<\/td>(?:.*)<\/tr>/Uis', $matches[1], $matches2)) {
@ -221,7 +225,7 @@ class MArtisanat {
return false;
}
$this->referer=$url;
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">nom<\/span><\/td>(?:.*)<td align="left" nowrap>(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['nom']=trim(strtr(html_entity_decode($matches[1]),chr(160),' '));
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">pr&eacute;nom<\/span><\/td>(?:.*)<td align="left" nowrap>(.*)<\/td>/Uis', $this->body, $matches))
@ -229,7 +233,7 @@ class MArtisanat {
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">nom d\'usage<\/span><\/td>(?:.*)<td align="left" nowrap>(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['nomUsage']=trim(strtr(html_entity_decode($matches[1]),chr(160),' '));
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"(?:.*)<span class="turquoise">&nbsp;date&nbsp;de&nbsp;naissance<\/span><\/td>(?:.*)-->(?:.*)<td(?: +)align="left">(.*)<\/td>/Uis', $this->body, $matches))
$tabInsert['dateNaiss']=WDate::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches[1]),chr(160),' ')));
$tabInsert['dateNaiss']=WDate::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches[1]),chr(160),' ')));
// if (preg_match('/date&nbsp;de&nbsp;naissance(.*)<td background="inter\/pix3_turquoise\.gif" align="right"/Uis', $this->body, $matches))
// die(print_r($matches));
if (preg_match('/<td background="inter\/pix3_turquoise\.gif" align="right"><span class="turquoise">&nbsp;lieu&nbsp;de&nbsp;naissance<\/span><\/td>(?:.*)<td align="left">(.*)<\/td>/Uis', $this->body, $matches))
@ -247,18 +251,18 @@ class MArtisanat {
$tabInsert['dateFctDeb']=WDate::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']=WDate::dateT('d/m/Y', 'Y-m-d', trim(strtr(html_entity_decode($matches[1]),chr(160),' ')));
}
// Insertion en base de données
$tabInsert['dateInsert']=date('Y-m-d H:i:s');
$id=$this->iDb->insert('artisanat', $tabInsert, true);
$id=$this->iDb->insert('jo.artisanat', $tabInsert, true);
$tabInsert['id']=$id;
foreach ($tabEtabs as $tabInsert2) {
$tabInsert2['dateInsert']=$tabInsert['dateInsert'];
$id2=$this->iDb->insert('artisanat_etab', $tabInsert2, true);
$id2=$this->iDb->insert('jo.artisanat_etab', $tabInsert2, true);
}
$tabInsert['dateUpdate']=substr($tabInsert['dateInsert'],0,10);
unset($tabInsert['dateInsert']);

View File

@ -1,69 +1,82 @@
<?
<?php
require_once 'framework/common/dates.php';
class MBanques {
class MBanques
{
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'
);
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');
public $tabNatureGuichet = array(
1=>'Guichet permanent de plein exercice domiciliataire (ouvert au public)',
2=>'Identifiant de domiciliation (adresse active 5 jours par semaine)',
3=>'Guichet permanent non domiciliataire (ouvert au public)',
4=>'Libre Prestation de services (LPS)',
'A'=>'Guichet fictif',
'P'=>'Guichet fictif'
);
public $tabNatureGuichet=array( 1=>'Guichet permanent de plein exercice domiciliataire (ouvert au public)',
2=>'Identifiant de domiciliation (adresse active 5 jours par semaine)',
3=>'Guichet permanent non domiciliataire (ouvert au public)',
4=>'Libre Prestation de services (LPS)',
'A'=>'Guichet fictif',
'P'=>'Guichet fictif');
public $tabOrgane = array(
0=>'Association française des établissements de crédit et des entreprises d\'investissement',
11=>'Association française des sociétés financières',
12=>'Groupement des institutions financières spécialisées',
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'
);
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');
private $iDb;
protected $iDb;
function __construct() {
$this->iDb=new WDB('insee');
function __construct($db = null)
{
if ( $db === null ) {
$this->iDb = new WDB();
} else {
$this->iDb = $db;
}
}
function __destruct() {}
function getInfoBanque($codeBanque) {
$ret=$this->iDb->select( 'BDF_Etabs',
'bdfFibCodeEtab, bdfFibCodeSituation, bdfFibDenom40, bdfFibDenom10, bdfFibCodeActivite, bdfFibCodeOrganeRepr, bdfFibDateAgrement, bdfFibDateRetraitAgr, bdfFibDateFinDiffus, bdfFibAdresse1, bdfFibAdresse2, bdfFibAdresse3, CP, Ville, bdfFibCodeEtabAbsorb, bdfFibOptionIdInvar, bdfFibDateOptIdInvar',
"bdfFibCodeEtab=$codeBanque",false, MYSQL_ASSOC);
function getInfoBanque($codeBanque)
{
$ret = $this->iDb->select(
'insee.BDF_Etabs',
'bdfFibCodeEtab, bdfFibCodeSituation, bdfFibDenom40, bdfFibDenom10, bdfFibCodeActivite, bdfFibCodeOrganeRepr, bdfFibDateAgrement, bdfFibDateRetraitAgr, bdfFibDateFinDiffus, bdfFibAdresse1, bdfFibAdresse2, bdfFibAdresse3, CP, Ville, bdfFibCodeEtabAbsorb, bdfFibOptionIdInvar, bdfFibDateOptIdInvar',
"bdfFibCodeEtab=$codeBanque",false, MYSQL_ASSOC);
//echo mysql_error();
$tabRet=$ret[0];
return $tabRet;
}
function getInfoGuichet($codeBanque, $codeGuichet) {
function getInfoGuichet($codeBanque, $codeGuichet)
{
$tabBanque=$this->getInfoBanque($codeBanque);
$tabTel=$this->getTelGuichet($codeBanque,$codeGuichet);
$ret=$this->iDb->select( 'BDF_Guichets',
'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',
"bdfFibCodeEtab=$codeBanque AND bdfFibCodeGuichet=$codeGuichet",false, MYSQL_ASSOC);
$ret = $this->iDb->select(
'insee.BDF_Guichets',
'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',
"bdfFibCodeEtab=$codeBanque AND bdfFibCodeGuichet=$codeGuichet",false, MYSQL_ASSOC);
//echo mysql_error();
if (isset($ret[0]))
$tabRet=@$ret[0];
@ -73,30 +86,33 @@ class MBanques {
return array_merge($tabRet, $tabBanque, $tabTel);
}
function getTelGuichet($codeBanque, $codeGuichet) {
$ret=$this->iDb->select( 'Mandel_banques',
'Tel, Fax',
"CodeB=$codeBanque AND CodeG=$codeGuichet",false, MYSQL_ASSOC);
function getTelGuichet($codeBanque, $codeGuichet)
{
$ret = $this->iDb->select(
'insee.Mandel_banques',
'Tel, Fax',
"CodeB=$codeBanque AND CodeG=$codeGuichet",false, MYSQL_ASSOC);
if (isset($ret[0]))
return $ret[0];
else
return array();
return array();
}
function getListeBanques($siren) {
$tabRet=array();
function getListeBanques($siren)
{
$tabRet = array();
if ($siren*1>1000) {
$res=$this->iDb->select('banques', 'codeBanque, codeGuichet, libBanqueGuichet, precis, dateSource*1 AS dateSource', "siren=$siren", false, MYSQL_ASSOC);
$tmp=$this->iDb->select('fedRib', "codeBanque, codeGuichet, CONCAT(libBanque,' ',libGuichet) AS libBanqueGuichet, 0 AS precis, IF (dateInfo='0000-00-00', dateDispo*1, dateInfo*1) AS dateSource", "siren=$siren", false, MYSQL_ASSOC);
$res=$this->iDb->select('insee.banques', 'codeBanque, codeGuichet, libBanqueGuichet, precis, dateSource*1 AS dateSource', "siren=$siren", false, MYSQL_ASSOC);
$tmp=$this->iDb->select('insee.fedRib', "codeBanque, codeGuichet, CONCAT(libBanque,' ',libGuichet) AS libBanqueGuichet, 0 AS precis, IF (dateInfo='0000-00-00', dateDispo*1, dateInfo*1) AS dateSource", "siren=$siren", false, MYSQL_ASSOC);
$res=array_merge($res, $tmp);
foreach ($res as $tabBanque) {
$dateSource=$tabBanque['dateSource'];
$codBanque=$tabBanque['codeBanque'];
$codGuichet=$tabBanque['codeGuichet'];
$libBanque=trim($tabBanque['libBanqueGuichet']);
$found=false;
$found=false;
$adrBanque1=$adrBanque2=$adrBanqueCP=$adrBanqueVille='';
if ($codBanque>0 && $codGuichet>0 && $dateSource>(date('Y')-4)*10000+101 && $dateSource<date('Ymd')) {
$tmp=$this->iDb->select('insee.BDF_Etabs b, insee.BDF_Guichets g', 'g.bdfFibCodeEtab AS banque, g.bdfFibCodeGuichet AS guichet, b.bdfFibDenom40 AS nomBanque, b.bdfFibDenom10 AS sigleBanque, g.bdfFibDenom20 AS nomGuichet, g.bdfFibAdresse1 AS adresse1, g.bdfFibAdresse2 AS adresse2, g.bdfFibAdresse3 AS adresse3, g.CP, g.Ville', "g.bdfFibCodeEtab=$codBanque AND g.bdfFibCodeGuichet=$codGuichet AND b.bdfFibCodeEtab=g.bdfFibCodeEtab", false, MYSQL_ASSOC);
if (isset($tmp[0])) {
@ -118,18 +134,18 @@ class MBanques {
$adrBanqueVille=$tmp[0]['Ville'];
} else continue;
} else continue;
$tabRet[]=array('codeBanque' => $codBanque,
'codeGuichet' => $codGuichet,
'libBanque' => $libBanque,
'adresse1' => $adrBanque1,
'adresse2' => $adrBanque2,
'cp' => $adrBanqueCP,
'ville' => $adrBanqueVille,
);
$tabRet[] = array(
'codeBanque' => $codBanque,
'codeGuichet' => $codGuichet,
'libBanque' => $libBanque,
'adresse1' => $adrBanque1,
'adresse2' => $adrBanque2,
'cp' => $adrBanqueCP,
'ville' => $adrBanqueVille,
);
}
}
return $tabRet;
}
}
?>
}

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,8 @@
<?
<?php
require_once 'framework/common/curl.php';
class MBilans {
class MBilans
{
private $body = '';
private $header = '';
private $codeRetour = 0;
@ -29,15 +29,14 @@ class MBilans {
function listeBilans($uniquementEnBase=true) {
//if ($siren<>0) $this->siren=$siren;
$iDb2=new WDB('insee');
$ret=$iDb2->select( 'bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaieOrigine',
$iDb=new WDB();
$ret=$iDb->select( 'jo.bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaieOrigine',
"siren='$this->siren' ORDER BY dateExercice DESC");
// if (count($ret)==0) return array(); // Pas de bilan disponible !
// else {
$tabRet=array();
if (!$uniquementEnBase) {
$iDb=new WDB('jo');
$ret2=$iDb->select( 'bodacc_detail', 'Bodacc_Date_Parution, dateEffet, Bodacc_Num, Bodacc_Date_Parution, Num_Annonce, RC, raisonSociale, FJ, adrSiegeNum, adrSiegeIndRep, adrSiegeTypVoie, adrSiegeLibVoie, adrSiegeComp1, adrSiegeComp2, codePostalSiege, villeSiege', "siren='$this->siren' AND Rubrique='comptes' ORDER BY dateEffet DESC");
$ret2=$iDb->select( 'jo.bodacc_detail', 'Bodacc_Date_Parution, dateEffet, Bodacc_Num, Bodacc_Date_Parution, Num_Annonce, RC, raisonSociale, FJ, adrSiegeNum, adrSiegeIndRep, adrSiegeTypVoie, adrSiegeLibVoie, adrSiegeComp1, adrSiegeComp2, codePostalSiege, villeSiege', "siren='$this->siren' AND Rubrique='comptes' ORDER BY dateEffet DESC");
$dateDerDepot=WDate::dateT('Y-m-d','Ymd',@$ret2[0]['dateEffet'])*1;
$dateDerExercice=$ret[0]['dateExercice']*1;
if ($dateDerDepot<>0) {
@ -65,8 +64,8 @@ class MBilans {
function getBilan($millesime='', $source=1) {
$iDb2=new WDB('insee');
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes', "siren='$this->siren' AND dateExercice='$millesime'", true);
$iDb2=new WDB();
$ret=$iDb2->select('jo.bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes', "siren='$this->siren' AND dateExercice='$millesime'", true);
/*echo $this->siren.'<br/>';
echo $millesime.'<br/>';
print_r($ret[0]);die();*/
@ -87,8 +86,8 @@ class MBilans {
'postes' =>$tabBilan['POSTES'],
'partenaire' =>1,
);
$iDb2->insert('bilans', $tabInsert);
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes', "siren='$this->siren' AND dateExercice='$millesime'");
$iDb2->insert('jo.bilans', $tabInsert);
$ret=$iDb2->select('jo.bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes', "siren='$this->siren' AND dateExercice='$millesime'");
$bilan=$ret[0];
}
}

View File

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

View File

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

View File

@ -1,37 +1,36 @@
<?php
class MCadastre {
var $siren=false;
var $iDb;
<?php
class MCadastre
{
protected $siren = false;
protected $iDb;
/** Droits des locaux **/
private static $tabCodeDroit=array(
'P'=>'Propriétaire',
'U'=>'Usufruitier', // (associé avec N)
'N'=>'Nu-propriétaire', // (associé avec U)
'B'=>'Bailleur à construction', // (associé avec R)
'R'=>'Preneur à construction', // (associé avec B)
'F'=>'Foncier', // (associé avec D ou T)
'T'=>'Tenuyer', // (associé avec F)
'D'=>'Domanier', // (associé avec F)
'V'=>'Bailleur d\'un bail à réhabilitation', // (associé avec W)
'W'=>'Preneur d\'un bail à réhabilitation', // (associé avec V)
'U'=>'Usufruitier', // (associé avec N)
'N'=>'Nu-propriétaire', // (associé avec U)
'B'=>'Bailleur à construction', // (associé avec R)
'R'=>'Preneur à construction', // (associé avec B)
'F'=>'Foncier', // (associé avec D ou T)
'T'=>'Tenuyer', // (associé avec F)
'D'=>'Domanier', // (associé avec F)
'V'=>'Bailleur d\'un bail à réhabilitation', // (associé avec W)
'W'=>'Preneur d\'un bail à réhabilitation', // (associé avec V)
'A'=>'Locataire-Attributaire', // (associé avec P)
'E'=>'Emphytéote', // (associé avec P)
'E'=>'Emphytéote', // (associé avec P)
'K'=>'Antichrésiste', // (associé avec P)
'L'=>'Fonctionnaire logé',
'G'=>'Gérant, mandataire, gestionnaire',
'S'=>'Syndic de copropriété',
'H'=>'Associé dans une société en transparence fiscale',// (associé avec P)
'O'=>'Autorisation d\'occupation temporaire (70 ans)',
'J'=>'Jeune agriculteur',
'Q'=>'Gestionnaire taxe sur les bureaux (Ile-de-France)',
'X'=>'La Poste Occupant et propriétaire',
'Y'=>'La Poste Occupant et non propriétaire',
'C'=>'Fiduciaire',
'G'=>'Gérant, mandataire, gestionnaire',
'S'=>'Syndic de copropriété',
'H'=>'Associé dans une société en transparence fiscale',// (associé avec P)
'O'=>'Autorisation d\'occupation temporaire (70 ans)',
'J'=>'Jeune agriculteur',
'Q'=>'Gestionnaire taxe sur les bureaux (Ile-de-France)',
'X'=>'La Poste Occupant et propriétaire',
'Y'=>'La Poste Occupant et non propriétaire',
'C'=>'Fiduciaire',
);
/** Nature des locaux **/
private static $tabNatureLoc=array(
'AP'=>'Appartement',
@ -64,7 +63,7 @@ class MCadastre {
'UN'=>'Usine nucléaire',
'US'=>'Etablissement industriel',
);
/** Code Affectation des PEV (Partie d'EValuation) **/
private static $tabCodePEV=array(
'B'=>'Bâtiment industriel',
@ -76,7 +75,7 @@ class MCadastre {
'S'=>'Biens divers passibles de la Taxe d\'Habitation',
'T'=>'Terrain industriel',
);
/** Code Groupes Personnes Morales **/
private static $tabGrpPerMor=array(
0=>'Personne morale', // non remarquable
@ -89,7 +88,7 @@ class MCadastre {
7=>'Copropriétaire',
8=>'Associé',
9=>'Etablissement public ou organismes assimilés',
);
/** Nature des parcelles (cultures) **/
@ -122,82 +121,97 @@ class MCadastre {
'VE'=>'Vergers',
'VI'=>'Vignes',
);
public function __construct($siren=0) {
$this->siren=$siren;
$this->iDb=new WDb('sdv1');
public function __construct($siren=0, $db = null)
{
$this->siren = $siren;
if ( $db === null ) {
$this->iDb = new WDB();
} else {
$this->iDb = $db;
}
}
function getLocaux($siren=false) {
if (!$siren)
$siren=$this->siren;
/**
*
* @param string $siren
* @return array
*/
function getLocaux($siren=false)
{
if (!$siren) $siren=$this->siren;
$tabTmp=$this->iDb->select(
'cad_perloc l, cad_permor e',
'e.INTCIF, e.DNUPER, e.CCOGRM, e.DDENPM, e.DSIPMO, e.DFORME, e.FILLER, e.DSIREN, e.DLIGN3, e.DLIGN4, e.DLIGN5, e.DLIGN6, e.CCODEP, e.CCOCOM,
'sdv1.cad_perloc l, sdv1.cad_permor e',
'e.INTCIF, e.DNUPER, e.CCOGRM, e.DDENPM, e.DSIPMO, e.DFORME, e.FILLER, e.DSIREN, e.DLIGN3, e.DLIGN4, e.DLIGN5, e.DLIGN6, e.CCODEP, e.CCOCOM,
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',
"e.DSIREN=$siren AND e.INTCIF=l.INTCIF AND e.DNUPER=l.DNUPER", false, MYSQL_ASSOC);
$tabRet=array();
foreach ($tabTmp as $i=>$loc) {
$tabLoc=array( 'idCentre'=>$loc['INTCIF'],
'idPmMajic'=>$loc['DNUPER'],
'pmGroupe'=>trim($loc['CCOGRM']),
'pmGroupeLib'=>self::$tabGrpPerMor[trim($loc['CCOGRM'])],
'pmNom'=>trim($loc['DDENPM']),
'pmSigle'=>trim($loc['DSIPMO']),
'pmFJ'=>$loc['DFORME'], // $loc['FILLER'],
'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['CCOCOM']),
'localDroit'=>trim($loc['CCODRO']),
'localDroitLib'=>self::$tabCodeDroit[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']),
'localNumPlan'=>trim($loc['DNIV']),
'localNumBat'=>trim($loc['DPOR']),
'localEntEsc'=>trim($loc['CCONLC']),
'localPEV'=>array(),
if (count($tabTmp)>0 ) {
foreach ($tabTmp as $i=>$loc) {
$tabLoc = array(
'idCentre'=>$loc['INTCIF'],
'idPmMajic'=>$loc['DNUPER'],
'pmGroupe'=>trim($loc['CCOGRM']),
'pmGroupeLib'=>self::$tabGrpPerMor[trim($loc['CCOGRM'])],
'pmNom'=>trim($loc['DDENPM']),
'pmSigle'=>trim($loc['DSIPMO']),
'pmFJ'=>$loc['DFORME'], // $loc['FILLER'],
'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['CCOCOM']),
'localDroit'=>trim($loc['CCODRO']),
'localDroitLib'=>self::$tabCodeDroit[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']),
'localNumPlan'=>trim($loc['DNIV']),
'localNumBat'=>trim($loc['DPOR']),
'localEntEsc'=>trim($loc['CCONLC']),
'localPEV'=>array(),
);
$surface=0;
for($j=0;$j<10;$j++) {
$pevCode=trim($loc['CCOAFF'.$j]);
$pevSurf=trim($loc['DSUPOD'.$j])*1;
if ($pevCode<>'' && $pevSurf>0) {
$tabLoc['localPEV'][$j]=array(
'pevCode'=>$pevCode,
'pevType'=>self::$tabCodePEV[$pevCode],
'pevSurface'=>$pevSurf,
);
$surface=0;
for($j=0;$j<10;$j++) {
$pevCode=trim($loc['CCOAFF'.$j]);
$pevSurf=trim($loc['DSUPOD'.$j])*1;
if ($pevCode<>'' && $pevSurf>0) {
$tabLoc['localPEV'][$j]=array( 'pevCode'=>$pevCode,
'pevType'=>self::$tabCodePEV[$pevCode],
'pevSurface'=>$pevSurf,
);
$surface+=$pevSurf;
$surface+=$pevSurf;
}
}
$tabLoc['localSurface']=$surface;
$tabRet[]=$tabLoc;
/**
* CADBAT_NB_TOT nombre Cadastre nombre de postes BATIMENT du SIREN toutes addresses
* CADTER_NB_TOT nombre Cadastre nombre de postes TERRAIN du SIREN toutes addresses
* CADBAT_NB_PROP nombre Cadastre nombre de postes BATIMENT à l'adresse dont elle est propriétaire
* CADTER_NB_PROP nombre Cadastre nombre de postes TERRAIN à l'adresse dont elle est propriétaire
* CADBAT_NB_NONPROP nombre Cadastre nombre de postes BATIMENT à l'adresse dont elle n'est pas propriétaire
* CADTER_NB_NONPROP nombre Cadastre nombre de postes TERRAINS à l'adresse dont elle n'est pas propriétaire
* CADBAT_SURF_CUM nombre Cadastre Cumul Surfaces des batiments à l'addresse
* CADBAT_SURF_TOT nombre Cadastre Surface totale des batiments du SIREN
* CADTER_SURF_CUM nombre Cadastre Cumul Surfaces des terrains à l'addresse
* CADTER_SURF_TOT nombre Cadastre Surface totale des terrains du SIREN
*/
}
$tabLoc['localSurface']=$surface;
$tabRet[]=$tabLoc;
/*CADBAT_NB_TOT nombre Cadastre nombre de postes BATIMENT du SIREN toutes addresses
CADTER_NB_TOT nombre Cadastre nombre de postes TERRAIN du SIREN toutes addresses
CADBAT_NB_PROP nombre Cadastre nombre de postes BATIMENT à l'adresse dont elle est propriétaire
CADTER_NB_PROP nombre Cadastre nombre de postes TERRAIN à l'adresse dont elle est propriétaire
CADBAT_NB_NONPROP nombre Cadastre nombre de postes BATIMENT à l'adresse dont elle n'est pas propriétaire
CADTER_NB_NONPROP nombre Cadastre nombre de postes TERRAINS à l'adresse dont elle n'est pas propriétaire
CADBAT_SURF_CUM nombre Cadastre Cumul Surfaces des batiments à l'addresse
CADBAT_SURF_TOT nombre Cadastre Surface totale des batiments du SIREN
CADTER_SURF_CUM nombre Cadastre Cumul Surfaces des terrains à l'addresse
CADTER_SURF_TOT nombre Cadastre Surface totale des terrains du SIREN
*/
}
return $tabRet;
}
@ -205,10 +219,10 @@ CADTER_SURF_TOT nombre Cadastre Surface totale des terrains du SIREN
function getParcelles($siren=false) {
if (!$siren)
$siren=$this->siren;
$tabTmp=$this->iDb->select(
'cad_perpar p, cad_permor e',
'e.INTCIF, e.DNUPER, e.CCOGRM, e.DDENPM, e.DSIPMO, e.DFORME, e.FILLER, e.DSIREN, e.DLIGN3, e.DLIGN4, e.DLIGN5, e.DLIGN6, e.CCODEP, e.CCOCOM,
'sdv1.cad_perpar p, sdv1.cad_permor e',
'e.INTCIF, e.DNUPER, e.CCOGRM, e.DDENPM, e.DSIPMO, e.DFORME, e.FILLER, e.DSIREN, e.DLIGN3, e.DLIGN4, e.DLIGN5, e.DLIGN6, e.CCODEP, e.CCOCOM,
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',
"e.DSIREN=$siren AND e.INTCIF=p.INTCIF AND e.DNUPER=p.DNUPER", false, MYSQL_ASSOC);
$tabRet=array();
@ -234,7 +248,7 @@ CADTER_SURF_TOT nombre Cadastre Surface totale des terrains du SIREN
'parcelComLib'=>trim($loc['DLICOM']),
'parcelComAbs'=>trim($loc['CCOPRF']),
'parcelRivoli'=>trim($loc['CCORIV']),
'parcellNumVoie'=>trim($loc['DNUVOI']),
'parcellNumVoie'=>trim($loc['DNUVOI']),
'parcelIndVoie'=>trim($loc['DLTNUV']),
'parcelTypVoie'=>trim($loc['CNAVOI']),
'parcelLibVoie'=>trim($loc['DLIVOI']),
@ -260,7 +274,7 @@ CADTER_SURF_TOT nombre Cadastre Surface totale des terrains du SIREN
}
return $tabRet;
}
}
?>

View File

@ -1,4 +1,4 @@
<?
<?php
require_once 'framework/common/curl.php';
@ -74,10 +74,8 @@ class MCoface {
public $tabFil=array();
public $tabEtab=array();
function __construct($siren) {
// $iDb=new WDB();
function __construct($siren)
{
$referer='';
$url='http://www.cofacerating.fr/portail/entreprise_identite/identite.asp?ip=pagespro&lg=fr&nsiren='.$siren;
$page=getUrl($url, '', '', $referer, false, 'www.cofacerating.fr', '', 10);

View File

@ -1,4 +1,4 @@
<?
<?php
define('CREDITSAFE_WS_URL', 'https://www.creditsafe.fr/getdata/service/CSFRServices.asmx');
define('CREDITSAFE_WS_URI', 'https://www.creditsafe.fr/getdata/service/');
@ -235,7 +235,7 @@ foreach ($result as $annonce) {
</td>
</tr>
<?
<?php
if ($action<>'commande') {
?>
<tr>
@ -243,7 +243,7 @@ foreach ($result as $annonce) {
<td width="550" colspan="2" class="StyleInfoData"><br/><br/><form action="./?page=scorescf&action=commande&siret=<?=$siret?>&id=<?=$id?>" method="POST"><input type="checkbox"/> Mettre cette entreprise sous surveillance scoring partenaire<br/><br/>Adresse email du destinataire <input name="email" type="text" value="<? if ($_SESSION['tabInfo']['login']<>'testreunica' && $_SESSION['tabInfo']['login']<>'reunicacsf') echo $tabInfo['email']?>" size="20"/>&nbsp;&nbsp;&nbsp;<input class="imgButton" type="image" src="./img/boutton_valider_off.gif" name="submit" onmouseover="this.src='./img/boutton_valider_on.gif'" onmouseout="this.src='./img/boutton_valider_off.gif'" title="Surveiller le score partenaire de cette entreprise..."></form></td>
</tr>
</table>
<?
<?php
} else {
if (preg_match('#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#',$_REQUEST['email'])) {
$message='Entreprise mise sous surveillance scoring partenaire !';

View File

@ -1,4 +1,4 @@
<?
<?php
require_once 'framework/common/curl.php';
/** La classe MEuridile permet de récupérer les informations suivantes :
@ -295,22 +295,7 @@ class MEuridile {
if ($this->curPage<>'recherche')
$this->partInitRecherche();
$iDb=new WDB('jo');
/* $ret=$iDb->select( 'rncs_vitrine',
'siren, erreur, rcs, nom, adresse1, cp, ville, fj_lib, naf_code, naf_lib, bilans, dateUpdate',
"siren=$this->siren", false, MYSQL_ASSOC);
if (count($ret)) {
/** On vérifie qu'aucune annonce n'a été publié depuis au bodacc
**
$tabRet=$ret[0];
$ret=$iDb->select( 'bodacc_detail', 'count(*)',
"siren=$this->siren AND Bodacc_Date_Parution>='".$tabRet['dateUpdate']."'");
if ($ret[0][0]==0) {
$tabRet['bilans']=unserialize($tabRet['bilans']);
return $tabRet;
}
}*/
$iDb=new WDB();
$tabRet=$tabBilan=array();
$tabRet['siren']=$this->siren;
$tabRet['erreur']='';
@ -409,8 +394,8 @@ class MEuridile {
fclose($fp);
$tabInsert=$tabRet;
$tabInsert['bilans']=serialize($tabRet['bilans']);
if (!$iDb->insert( 'rncs_vitrine', $tabInsert))
$iDb->update( 'rncs_vitrine', $tabInsert, "siren=$this->siren");
if (!$iDb->insert( 'jo.rncs_vitrine', $tabInsert))
$iDb->update( 'jo.rncs_vitrine', $tabInsert, "siren=$this->siren");
/** @todo S'il y a un enregistrement, prévoir son update
**/
@ -781,8 +766,8 @@ class MEuridile {
if ($this->curPage<>'vitrine')
$this->partVitrine();
$iDb=new WDB('jo');
$ret=$iDb->select( 'rncs_entrep',
$iDb=new WDB();
$ret=$iDb->select( 'jo.rncs_entrep',
'siren, rcs, nom, adresse1, adresse2, adresse3, cp, ville, naiss_date, naiss_lieu, sexe, enseigne, sigle, '.
'fj_lib, naf_code, naf_lib, date_crea, date_imma, greffe, num_gestion, capital_mnt, capital_dev, nationalite, '.
'nb_etab, indRadiation, date_radiation, indProcol, dateUpdate, procedures, dirigeants, etablissements',
@ -791,7 +776,7 @@ class MEuridile {
/** On vérifie qu'aucune annonce n'a été publié depuis au bodacc
**/
$tabRet=$ret[0];
$ret=$iDb->select( 'bodacc_detail', 'count(*)',
$ret=$iDb->select( 'jo.bodacc_detail', 'count(*)',
"siren=$this->siren AND Bodacc_Date_Parution>='".$tabRet['dateUpdate']."'");
if ($ret[0][0]==0) {
$tabRet['procedures']=unserialize($tabRet['procedures']);
@ -1005,7 +990,7 @@ class MEuridile {
$tabInsert['dirigeants']=serialize($tabRet['dirigeants']);
$tabInsert['etablissements']=serialize($tabRet['etablissements']);
$iDb->insert( 'rncs_entrep', $tabInsert);
$iDb->insert( 'jo.rncs_entrep', $tabInsert);
return $tabRet;
}

View File

@ -1,4 +1,4 @@
<?
<?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 ?
@ -14,172 +14,183 @@ D. 067 200 329 I 2010-06-30 La CS est valide jusq'au 30/06/2010... Quid
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 MFacto {
class MFacto
{
public $risqueImpaye=false; // Y a t'il un risque d'impayé ?
public $risqueImpayeMois=0;
public $profilPayeur=0; // 0:N/D, 1:Excellent, 2=Bon, 3=Normal, 4=Lent, 5=Mauvais ou Défaut
private $typeFlux = 0; // Type de flux en chargement 0:Acheteur, 1=CS, 2=Paiements
private $iDb;
public $DELAIPAY=0;
public $DELAIPAYp='';
public $DELAIPAY_MMAA='';
private $tabInfoCS=array(
'_00'=>array('risque'=>0,'type'=>'OK', 'libInt'=>'Néant', 'libExt'=>'Aucune difficulté significative ne nous a été signalée'),
'_10'=>array('risque'=>3,'type'=>'IP', 'libInt'=>'Impayé BDF', 'libExt'=>"A surveiller. Présence d'impayé(s)"),
'_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 signalée(s) en difficulté(s)'),
'_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 $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);
// private $siren=0;
// private $tabPaiements=array();
function __construct() {
$this->iDb=new WDB('sdv1');
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
);
public function __construct($db = null)
{
if ( $db === null ) {
$this->iDb = new WDB();
} else {
$this->iDb = $db;
}
}
function __destruct() {
}
public function setTypeFic($typeFic) {
$this->typeFlux=$typeFic;
public function setTypeFic($typeFic)
{
$this->typeFlux = $typeFic;
}
public function readFic($a) {
switch ($this->typeFlux) {
case 0: // Acheteur
$tab=array( 'NUMACH'=> trim(substr($a, 0, 6)),
'SIRENE'=> trim(substr($a, 6, 9)),
'RAISOC'=> trim(substr($a, 15, 35)),
'NUMVOI'=> trim(substr($a, 50, 4)),
'TYPVOI'=> trim(substr($a, 54, 3)),
'LIBVOI'=> trim(substr($a, 57, 30)),
'VILLE' => trim(substr($a, 87, 26)),
'CODPOS'=> trim(substr($a,113, 5)),
'FILLER'=> trim(substr($a,118, 2)));
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
/*$tab=array( 'DATMAJ1'=> WDate::dateT('ymd','Y-m-d', substr($a, 0, 6)),
'NUMGFH'=> trim(substr($a, 6, 6)),
'CSAVAN'=> trim(substr($a, 12, 2)),
'CSAPRE'=> trim(substr($a, 14, 2)),
'INDAUT'=> trim(substr($a, 16, 1)),
'CODUTI'=> trim(substr($a, 17, 6)),
'INIMAJ'=> trim(substr($a, 23, 3)),
'ANAACH'=> trim(substr($a, 25, 2)),
'ANAPOR'=> trim(substr($a, 27, 2)));*/
$tab=array( 'siren' => trim(substr($a, 0, 9)),
'cs' => trim(substr($a, 9, 2)),
'dateFin'=> trim(substr($a, 11, 8)));
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
$tab=array( 'NUMACH'=> trim(substr($a, 0, 6)),
'DATPIE'=> substr($a, 6, 8),
'DATECH'=> substr($a, 14, 8),
'DATPAI'=> substr($a, 22, 8),
'MNTPIE'=> trim(substr($a, 30, 13)),
'MNTFRF'=> trim(substr($a, 43, 13)),
'MNTLIT'=> trim(substr($a, 56, 13)),
'CODDEV'=> trim(substr($a, 69, 3)));
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;
}
public function getCoteSpeciale($siren) {
$ret=$this->iDb->select( 'ge_cs2',
'siren, cs, dateFin, dateInsert, dateConf',
"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", false, MYSQL_ASSOC);
public function getCoteSpeciale($siren)
{
$ret=$this->iDb->select(
'sdv1.ge_cs2',
'siren, cs, dateFin, dateInsert, dateConf',
"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", false, MYSQL_ASSOC);
$tabRet=array();
foreach ($ret as $i=>$tabCS) {
foreach ($ret as $i=>$tabCS)
{
$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) {
$ret=$this->iDb->select( 'ge_cs c LEFT JOIN ge_acheteurs a ON a.NUMACH=c.NUMGFH',
'DATMAJ1, NUMGFH, CSAVAN, CSAPRE, SIRENE',
"a.SIRENE=$siren ORDER BY a.SIRENE ASC, c.DATMAJ1 DESC", false, MYSQL_ASSOC);
$tabRet=array();
foreach ($ret as $i=>$tabCS) {
$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'],
);
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 getPaiements($siren, $echelle='mois') {
public function getCoteSpecialeOld($siren)
{
$ret=$this->iDb->select( 'sdv1.ge_cs c LEFT JOIN sdv1.ge_acheteurs a ON a.NUMACH=c.NUMGFH',
'DATMAJ1, NUMGFH, CSAVAN, CSAPRE, SIRENE',
"a.SIRENE=$siren ORDER BY a.SIRENE ASC, c.DATMAJ1 DESC", false, MYSQL_ASSOC);
$tabRet=array();
foreach ($ret as $i=>$tabCS) {
$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')
@ -188,19 +199,20 @@ class MFacto {
$strGroupBy="GROUP BY trimestre HAVING nbPieces>2 ";
else // En mois par défaut
$strGroupBy="GROUP BY mois HAVING nbPieces>2 ";
$ret=$this->iDb->select( 'ge_paiements p LEFT JOIN ge_acheteurs a ON a.NUMACH=p.NUMACH',
"p.NUMACH, DATE_FORMAT(p.DATPIE, '%Y-%m') AS mois,
$ret=$this->iDb->select( 'sdv1.ge_paiements p LEFT JOIN sdv1.ge_acheteurs a ON a.NUMACH=p.NUMACH',
"p.NUMACH, DATE_FORMAT(p.DATPIE, '%Y-%m') AS mois,
CONCAT(DATE_FORMAT(p.DATPIE,'%Y'),'-',IF(DATE_FORMAT(p.DATPIE,'%m')<4,1,IF(DATE_FORMAT(p.DATPIE,'%m')<7,2,IF(DATE_FORMAT(p.DATPIE,'%m')<10,3,4)))) AS trimestre,
count(*) AS nbPieces,
AVG(DATEDIFF(NOW(), p.DATECH)) AS nbJourRetard, AVG(DATEDIFF(p.DATPAI, p.DATECH)) AS nbJourPaiement,
ROUND(AVG(DATEDIFF(NOW(), p.DATECH) - DATEDIFF(p.DATPAI, p.DATECH))) AS nbJourMoyens,
IF(AVG(DATEDIFF(NOW(), p.DATECH) - DATEDIFF( p.DATPAI, p.DATECH ) ) <6, 0, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <36, 30, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <66, 60, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <96, 90, 120 ) ) ) ) AS nbJours,
SUM(p.MNTPIE) AS mtPieces, SUM(p.MNTFRF) AS mtPaiements, SUM(p.MNTLIT) AS mtLitiges,
IF(AVG(DATEDIFF(NOW(), p.DATECH) - DATEDIFF( p.DATPAI, p.DATECH ) ) <6, 0, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <36, 30, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <66, 60, if( AVG( DATEDIFF( NOW( ) , p.DATECH ) - DATEDIFF( p.DATPAI, p.DATECH ) ) <96, 90, 120 ) ) ) ) AS nbJours,
SUM(p.MNTPIE) AS mtPieces, SUM(p.MNTFRF) AS mtPaiements, SUM(p.MNTLIT) AS mtLitiges,
p.CODDEV, a.SIRENE, a.RAISOC, a.CODPOS, a.VILLE",
"a.SIRENE=$siren AND DATEDIFF(NOW(),p.DATECH)<736 AND p.DATECH<NOW() $strGroupBy ORDER BY p.DATPIE DESC", false, MYSQL_ASSOC);
$tabRet=array();
foreach ($ret as $i=>$tabPai) {
foreach ($ret as $i=>$tabPai)
{
$nbJoursMoyen=$tabPai['nbJourRetard']-$tabPai['nbJourPaiement'];
if ($nbJoursMoyen<6) $tranche=0;
elseif ($nbJoursMoyen<36) $tranche=30;
@ -209,39 +221,29 @@ class MFacto {
elseif ($nbJoursMoyen<126) $tranche=120;
elseif ($nbJoursMoyen<156) $tranche=150;
else $tranche=180;
$tabRet[]=array('trimestre' => $tabPai['trimestre'],
'mois' => $tabPai['mois'],
'nbPieces' => $tabPai['nbPieces'],
'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'],
);
$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'],
);
}
//$this->tabPaiements=$tabRet;
/*@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Paiements", "SELECT p.NUMACH, DATE_FORMAT(p.DATPIE, '%Y-%m') AS mois,
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 ge_paiements p LEFT JOIN ge_acheteurs a ON a.NUMACH=p.NUMACH
WHERE a.SIRENE=$siren AND DATEDIFF(NOW(),p.DATECH)<736 AND p.DATECH<NOW() $strGroupBy ORDER BY p.DATPIE DESC".EOL.EOL.print_r($tabRet, true).EOL);
*/
return $tabRet;
return $tabRet;
}
public function getProfilPayeur($siren) {
public function getProfilPayeur($siren)
{
if ($siren<1000) return '';
$libProfil='';
/*if ($this->siren==$siren)
@ -268,11 +270,11 @@ class MFacto {
if ($tabPai['tranchePaiement']>$paie_max) $paie_max=$tabPai['tranchePaiement'];
}
$tauxLitige=$totLitiges/$totFactures;
if ($tauxLitige>=0.5) $libProfil.='Litiges très importants. ';
elseif ($tauxLitige>0.25) $libProfil.='Litiges importants. ';
elseif ($tauxLitige>0.05) $libProfil.='Présence de litiges. ';
if ($tabProfil[0]==$tabProfil[1] && $tabProfil[1]==$tabProfil[2]) {
if ($tranche=0) { $libProfil.='Paiements à échéance'; $this->profilPayeur=1; }
elseif ($tranche<=30) { $libProfil.='Paiements à 30 jours maximum'; $this->profilPayeur=2; }
@ -288,7 +290,7 @@ class MFacto {
if ($tranche<$tr_prec) $libProfil.='Amélioration des délais. ';
elseif ($tranche==$tr_prec && $tr_prec<$tr_prec2) $libProfil.='Amélioration des délais. ';
else { $this->risqueImpaye=true; $libProfil.='Allongement des délais. '; }
if ($tranche=0) { $libProfil.='Paiements à échéance'; $this->profilPayeur=1; }
elseif ($tranche<=30) { $libProfil.='Paiements à 30 jours maximum'; $this->profilPayeur=2; }
elseif ($tranche<=60) { $libProfil.='Paiements à 60 jours maximum'; $this->profilPayeur=3; }
@ -302,44 +304,45 @@ class MFacto {
$libProfil.="Paiements entre $paie_min et $paie_max jour(s)";
}
}
if (trim($libProfil)=='' && $siren<>552100554 && $siren<>552144503 && $siren<>479974115
&& $siren<>0 && $siren<>494967938 ) {
$ret=$this->iDb->select('jo.surveillances_listes',
'ref, dateAjout, dateConf, dateSuppr, dateDerEnvoi',
"idClient='SURBODPRDFTSRECOCASH' AND siren=$siren AND dateSuppr=0
AND ABS(DATEDIFF(dateAjout, NOW()))<365
AND ABS(DATEDIFF(dateAjout, NOW()))<365
ORDER BY dateConf DESC, dateAjout DESC", false, MYSQL_ASSOC);
foreach ($ret as $i=>$tabCS) {
$dateMAJ=WDate::dateT('Y-m-d', 'M Y', $tabCS['dateAjout']);
$classWDate = new WDate();
$dateMAJ = $classWDate->dateT('Y-m-d', 'M Y', $tabCS['dateAjout']);
$libProfil="En date du $dateMAJ : Contentieux importants.";
$this->risqueImpaye=true;
$this->risqueImpayeMois=WDate::dateT('Y-m', 'Ym', $tabCS['dateAjout']);
$this->risqueImpayeMois=$classWDate->dateT('Y-m', 'Ym', $tabCS['dateAjout']);
$this->profilPayeur=4;
break;
}
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Paiements", $libProfil.EOL.'Profil payeur = '. $this->profilPayeur .EOL.print_r($tabPaie, true).EOL);
return $libProfil;
}
public function getTabPaiements($siren) {
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) {
foreach ($tabPaie as $i=>$tabPai)
{
@$tabNbr[$tabPai['trimestre']]['d='.$tabPai['tranchePaiement']]+=$tabPai['nbPieces'];
@$tabNbr[$tabPai['trimestre']]['all']+=$tabPai['nbPieces'];
$mt=$tabPai['mtPieces']/$tabPai['nbPieces'];
// echo "$i\t".$tabPai['trimestre']." (".$tabPai['tranchePaiement']." j)\t$mt=".$tabPai['mtPieces'].'/'.$tabPai['nbPieces'].EOL;
//echo "$i\t".$tabPai['trimestre']." (".$tabPai['tranchePaiement']." j)\t$mt=".$tabPai['mtPieces'].'/'.$tabPai['nbPieces'].EOL;
if ($mt<500) { @$tabMtAn[1]['d='.$tabPai['tranchePaiement']]++; @$tabMtAn[1]['all']++; }
elseif ($mt<2000) { @$tabMtAn[2]['d='.$tabPai['tranchePaiement']]++; @$tabMtAn[2]['all']++; }
elseif ($mt<10000) { @$tabMtAn[10]['d='.$tabPai['tranchePaiement']]++; @$tabMtAn[10]['all']++; }
@ -352,40 +355,53 @@ class MFacto {
}
// Recalcul des délais par Trimestre
foreach ($tabNbr as $trim=>$tabTranche) {
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) {
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) {
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) {
foreach ($tabMtAn as $mt=>$tabTranche)
{
ksort($tabTranche);
foreach ($tabTranche as $tranche=>$mt2) {
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);
}
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Tableaux des Paiements", 'Paiements par montants :'.EOL.print_r($tabMtAn2, true).EOL.EOL.'Paiements par trimestres :'.EOL.print_r($tabNbr2, true).EOL.print_r($tabNbr, true).EOL.print_r($tabMtAn, true).EOL);
return array('parMont'=>$tabMtAn2,
'parTrim'=>$tabNbr2);
}
}
?>
return array(
'parMont'=>$tabMtAn2,
'parTrim'=>$tabNbr2
);
}
public function getLibInfoCS($cs)
{
return array(
'CoteCS' => $cs,
'LibCS' => $this->tabInfoCS["_$cs"]['libExt'],
'NivRisque' => $this->tabInfoCS["_$cs"]['risque'],
'CodeRisque' => $this->tabInfoCS["_$cs"]['type'],
);
}
}

View File

@ -1,4 +1,4 @@
<?
<?php
class MFedaso {
private $tabCodeRetour=array(0 => 'Traitement OK',
@ -32,18 +32,210 @@
}
public function getRefCodeVoie($sep=',', $eol=EOL) {
$row = 1;
$handle = fopen(DOC_WEB_LOCAL.'voies.csv', 'r');
if (!$handle) die('Impossible d\'ouvrir le fichier de configuration des voies INSEE');
$tabTmp=array();
while (($data = fgetcsv($handle, 1000, ';')) !== FALSE) {
if ($row==1)
$str='codVoie'.$sep.'libVoie'.$eol;
elseif (substr($data[0],0,1)<>'#' && $data[2]==1) // Ligne en commentaires CSV
$str.=$data[0].$sep.$data[1].$eol;
$row++;
$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é",
);
$str='codVoie'.$sep.'libVoie'.$eol;
foreach ($tabCodeVoie as $k => $v) {
$str.=$k.$sep.$v.$eol;
}
fclose($handle);
return $str;
}

View File

@ -1,4 +1,4 @@
<?
<?php
require_once 'framework/common/curl.php';
@ -39,7 +39,6 @@ curl_multi_remove_handle($ch1);
curl_multi_remove_handle($ch2);
curl_multi_close($mh);
// $iDb=new WDB();
$referer='';
$url='http://www.cofacerating.fr/portail/entreprise_identite/identite.asp?ip=pagespro&lg=fr&nsiren='.$siren;

File diff suppressed because it is too large Load Diff

View File

@ -104,8 +104,8 @@ class MIntersud {
if ($this->curPage<>'vitrine')
$this->partVitrine();
$iDb=new WDB('jo');
$ret=$iDb->select( 'rncs_entrep',
$iDb=new WDB();
$ret=$iDb->select( 'jo.rncs_entrep',
'siren, rcs, nom, adresse1, adresse2, adresse3, cp, ville, naiss_date, naiss_lieu, sexe, enseigne, sigle, '.
'fj_lib, naf_code, naf_lib, date_crea, date_imma, greffe, num_gestion, capital_mnt, capital_dev, nationalite, '.
'nb_etab, indRadiation, date_radiation, indProcol, dateUpdate, procedures, dirigeants, etablissements',
@ -114,7 +114,7 @@ class MIntersud {
/** On v<EFBFBD>rifie qu'aucune annonce n'a <EFBFBD>t<EFBFBD> publi<EFBFBD> depuis au bodacc
**/
$tabRet=$ret[0];
$ret=$iDb->select( 'bodacc_detail', 'count(*)',
$ret=$iDb->select( 'jo.bodacc_detail', 'count(*)',
"siren=$this->siren AND Bodacc_Date_Parution>='".$tabRet['dateUpdate']."'");
if ($ret[0][0]==0) {
$tabRet['procedures']=unserialize($tabRet['procedures']);
@ -328,7 +328,7 @@ class MIntersud {
$tabInsert['dirigeants']=serialize($tabRet['dirigeants']);
$tabInsert['etablissements']=serialize($tabRet['etablissements']);
$iDb->insert( 'rncs_entrep', $tabInsert);
$iDb->insert( 'jo.rncs_entrep', $tabInsert);
return $tabRet;
}

View File

@ -1,14 +1,17 @@
<?
<?php
class MLiens {
/**
* Replace by v2
*/
class MLiens
{
public $siren=0;
private $iDb;
private $iInsee;
public $tabSirenVisites;
private $tabChars=array('é'=>'é', 'ç'=>'ç','è'=>'è','à '=>'à');
private static $tabFct=array( 'ADM'=>'Administrateur',
'ASS'=>'Associé',
'COG'=>'Co-gérant',
@ -30,30 +33,32 @@ class MLiens {
1600=>'Actes', // S&D : 69642, Associé-Gérant
1700=>'SED',
1800=>'Collecte', // Infolégales
1900=>'Collecte');
1900=>'Collecte');
public function __construct($siren) {
$this->siren=$siren;
$this->siren=$siren;
$this->iDb=new WDB();
$this->iInsee=new MInsee();
}
/** Retourne les actionnaires du siren
** @param int Siren de l'entreprise
** @return array Tableau d'actionnaires
**/
public function getActionnaires($siren=false, $actifsUniquement=true) {
public function getActionnaires($siren=false, $actifsUniquement=true)
{
if (!$siren) $siren=$this->siren;
$tabIdentite=$this->iInsee->getIdentiteLight($siren);
$classWdate = new WDate();
//echo $siren;
//print_r($tabIdentite);
$nic=$tabIdentite['Nic'];
$tab=$this->iDb->select('liens',
$tab=$this->iDb->select('jo.liens',
'Siren1, ActionPart, Pmin, Pmax, MajMin, PpPm, Siren2, RaisonSociale, Pays, actif, source, dateLien*1 AS dateLien, DATE(dateInsert)*1 AS dateInsert, DATE(dateUpdate)*1 AS dateUpdate',
"Siren1='$siren' AND ActionPart=1 ORDER BY source DESC, actif DESC, Pmin DESC", true, MYSQL_ASSOC);
//$tabActiDB=mysql_select('dbo_liens_fi', 'SirenEntite, NomAdresse, PourcentageDetenu, Ville, Lien, MAJLien, MAJImport', "Siren='$siren' AND CodeLien='AC' ORDER BY PourcentageDetenu DESC");
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug $siren ($actifsUniquement)", print_r($tab,true)) ;
$sourcePre=$unique=false;
$pctTot=0;
$tabRet=array();
@ -74,14 +79,14 @@ class MLiens {
$codPays=strtoupper($lien['Pays']);
$libPays='';
if ($codPays<>'' && $codPays<>'FRA') {
$tmp=$this->iDb->select('tabPays', 'libPays', "codPays3='$codPays'", true, MYSQL_ASSOC);
$tmp=$this->iDb->select('jo.tabPays', 'libPays', "codPays3='$codPays'", true, MYSQL_ASSOC);
$libPays=$tmp[0]['libPays'];
}
if ($lien['MajMin']=='F') $majMin='A';
else $majMin=$lien['MajMin'];
switch ($tabIdentite['FJ']*1) {
case 5488: // Entreprise Unipersonnelle à Responsabilité Limitée
case 5498: // SARL unipersonnelle
case 5498: // SARL unipersonnelle
case 5720: // Société par actions simplifiée à associé unique
$lien['Pmin']=100;
$unique=true;
@ -94,26 +99,29 @@ class MLiens {
$pctTot+=$pctLien;
// On évite d'afficher des totaux de détention > à 100%
if($pctTot>100) $pctLien=0;
if ($lien['dateInsert']>$dateMaj) $dateMaj=$lien['dateInsert'];
if ($lien['dateUpdate']>$dateMaj) $dateMaj=$lien['dateUpdate'];
if ($lien['source']==1800) $libRS=strtoupper(strtr($lien['RaisonSociale'],$this->tabChars));
else $libRS=strtr($lien['RaisonSociale'],$this->tabChars);
$tabRet[]=array( 'Pmin' => number_format($pctLien,2,',',''),
'PminNum' => $pctLien,
'MajMin' => $majMin,
'RaisonSociale' => strtr($lien['RaisonSociale'],$this->tabChars),
'RaisonSociale' => $libRS,
'Pays' => $libPays,
'CodePays' => $codPays,
'Siren' => $lien['Siren2'],
'Actif' => $lien['actif'],
'Source' => $this->tabSources[$source],
'DateLien' => Wdate::dateT('Ymd','Y-m-d', $lien['dateLien']),
'DateMaj' => Wdate::dateT('Ymd','Y-m-d', $dateMaj));
'DateLien' => $classWdate->dateT('Ymd','Y-m-d', $lien['dateLien']),
'DateMaj' => $classWdate->dateT('Ymd','Y-m-d', $dateMaj));
if ($unique) break;
}
$sourcePre=$source;
}
if (count($tabRet)==0) {
switch ($tabIdentite['FJ']*1) {
switch ($tabIdentite['FJ']*1) {
case 7112: // Autorité administrative indépendante
case 7160: // Service déconcentré à compétence nation. D'un ministère (hors Défense)
case 7171: // Service déconcentré de l'État à compétence (inter) régionale
@ -121,7 +129,7 @@ class MLiens {
case 7179: // (Autre) Service déconcentré de l'État à compétence territoriale
case 7381: // Organisme consulaire
/** Ces établissements sont dans le fichier des tribunaux **/
$tmp=$this->iDb->select('tribunaux', 'triSiret, triNom, dateUpdate', "triId=(SELECT triIdSup FROM tribunaux WHERE triSiret LIKE '$siren%' LIMIT 1)", true, MYSQL_ASSOC);
$tmp=$this->iDb->select('jo.tribunaux', 'triSiret, triNom, dateUpdate', "triId=(SELECT triIdSup FROM tribunaux WHERE triSiret LIKE '$siren%' LIMIT 1)", true, MYSQL_ASSOC);
$tabCC=$tmp[0];
//$sirenCC=substr(,0,9);
//if ($siren*1<>$sirenCC*1)
@ -131,17 +139,18 @@ class MLiens {
'MajMin' => '+',
'RaisonSociale' => $tabCC['triNom'],
'Pays' => '',
'CodePays' => 'FRA',
'Siren' => $tabCC['triSiret'],
'Actif' => 1,
'Source' => $this->tabSources[1800],
'DateLien' => Wdate::dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
'DateMaj' => Wdate::dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
'Source' => $this->tabSources[1900],
'DateLien' => $classWdate->dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
'DateMaj' => $classWdate->dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
);
case 7111: // Autorité constitutionnelle
case 7113: // Ministère
case 7120: // Service central d'un ministère
case 7150: // Service du ministère de la Défense
case 7190: // Ecole nationale non dotée de la personnalité morale
// case 7210: // COMMUNE (traité après)
// case 7220: // DEPARTEMENT (traité après)
@ -161,7 +170,7 @@ class MLiens {
// case 7345: // Syndicat intercommunal à vocation multiple (SIVOM)
// case 7346: // Communauté de communes
// case 7347: // Communauté de villes
// case 7348: // Communauté d'agglomération
// case 7348: // Communauté d'agglomération
case 7349: // Autre établissement public local de coopération non spécialisé ou entente
case 7351: // Institution interdépartemental ou entente
case 7352: // Institution interrégionale ou entente
@ -195,9 +204,10 @@ class MLiens {
'MajMin' => '+',
'RaisonSociale' => 'ETAT FRANCAIS',
'Pays' => '',
'CodePays' => 'FRA',
'Siren' => 0,
'Actif' => 1,
'Source' => $this->tabSources[1800],
'Source' => $this->tabSources[1900],
'DateLien' => date('Y-m-').'01',
'DateMaj' => date('Y-m-').'01',
);
@ -212,7 +222,7 @@ class MLiens {
$strCodeInsee="codeInsee='$codeInsee'";
else
$strCodeInsee="codeInsee IN ('2A$comm','2B$comm','20$comm') ";
$tmp=$this->iDb->select('insee.insee_tabVillesEpci', 'typEPCI, codEPCI, libEPCI, libCommune', $strCodeInsee, true, MYSQL_ASSOC);
$tabCC=$tmp[0];
switch($tabCC['typEPCI']) {
@ -221,15 +231,16 @@ class MLiens {
case 'CU': $typeCC="Communauté urbaine"; break; // CJ=73
case 'SAN': $typeCC="Syndicat d'agglomérations nouvelles"; break; // CJ=73
default: $typeCC='';
}
}
$tabRet[]=array('Pmin' => 0,
'PminNum' => 0,
'MajMin' => '+',
'RaisonSociale' => strtoupper($typeCC.' '.preg_replace('/^(CA|CC|CU|SAN) /Uis', '',$tabCC['libEPCI'])),
'Pays' => '',
'CodePays' => 'FRA',
'Siren' => $tabCC['codEPCI'],
'Actif' => 1,
'Source' => $this->tabSources[1800],
'Source' => $this->tabSources[1900],
'DateLien' => date('Y-m-').'01',
'DateMaj' => date('Y-m-').'01',
);
@ -257,7 +268,6 @@ class MLiens {
$sirenCom='23'.$dept3.'00'.$iSir2;
if ($this->iInsee->valideSiren($sirenCom)) {
if ($this->iInsee->sirenExiste($sirenCom)) {
// @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug Fin $siren ($actifsUniquement) $sirenCom existe !", '') ;
break;
}
}
@ -267,23 +277,24 @@ class MLiens {
'MajMin' => '+',
'RaisonSociale' => 'REGION '.strtoupper($tabCC['NC']),
'Pays' => '',
'CodePays' => 'FRA',
'Siren' => $sirenCom,
'Actif' => 1,
'Source' => $this->tabSources[1800],
'Source' => $this->tabSources[1900],
'DateLien' => date('Y-m-').'01',
'DateMaj' => date('Y-m-').'01',
);
break;
}
}
if (count($tabRet)==0) {
$fj=$tabIdentite['FJ']*1;
$fj=$tabIdentite['FJ']*1;
if ($fj==5498) $strFonctions=",'Gérant'";
else $strFonctions='';
$adresse=end(explode(' ', $tabIdentite['AdresseVoie']));
$codePostal=$tabIdentite['CP'];
$tab=$this->iDb->select('rncs_dirigeants', 'typeDir, raisonSociale, dirSiren, dirRS, civilite, nom, prenom, actif, naissance_nom, naissance_date, naissance_lieu, nat, adresse, fonction_code, fonction_lib, source, cinf, dateInsert, dateUpdate',
$tab=$this->iDb->select('jo.rncs_dirigeants', 'typeDir, raisonSociale, dirSiren, dirRS, civilite, nom, prenom, actif, naissance_nom, naissance_date, naissance_lieu, nat, adresse, fonction_code, fonction_lib, source, cinf, dateInsert, dateUpdate',
"siren='$siren' AND fonction_lib IN ('Associé-gérant' $strFonctions)", true, MYSQL_ASSOC);
$majMin='+';
if (count($tab)>1) $majMin='-';
@ -294,7 +305,7 @@ class MLiens {
$deb=$siren2=0;
$nbRep=$maxRep=200;
$pertinence=$avecSiren=true;
$etabs=$this->iInsee->rechercheEtab($lien['nom'].' '.$lien['prenom'], $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren);
$tabSiren=array();
foreach ($etabs['reponses'] as $etab) {
@ -318,11 +329,12 @@ class MLiens {
'MajMin' => $majMin,
'RaisonSociale' => trim(preg_replace('/ +/', ' ', $lien['dirRS'].' '.$genre.' '.$lien['nom'].' '.$lien['prenom'])),
'Pays' => '',
'CodePays' => 'FRA',
'Siren' => $siren2,
'Actif' => $lien['actif'],
'Source' => $this->tabSources[1600],
'DateLien' => Wdate::dateT('Y-m-d','Y-m-d', $dateMaj),
'DateMaj' => Wdate::dateT('Y-m-d','Y-m-d', $dateMaj),
'DateLien' => $classWdate->dateT('Y-m-d','Y-m-d', $dateMaj),
'DateMaj' => $classWdate->dateT('Y-m-d','Y-m-d', $dateMaj),
);
if ($unique) break;
/**/
@ -353,15 +365,15 @@ class MLiens {
'actif'=> 1,
'source'=> 1600,
'dateInsert'=> date('YmdHis')));
$res=$this->iDb->select('liens', 'count(*)', "Siren1=$siren AND (Siren2=$siren2 OR (RaisonSociale='".addslashes($nom)."' AND Pays='$pays'))");
$res=$this->iDb->select('jo.liens', 'count(*)', "Siren1=$siren AND (Siren2=$siren2 OR (RaisonSociale='".addslashes($nom)."' AND Pays='$pays'))");
if ($res[0][0]>0) {
if (!$this->iDb->update('liens', array_merge($tabUpdate,array('ActionPart'=>1)), "siren=$siren AND (Siren2=$siren2 OR (RaisonSociale='".addslashes($nom)."' AND Pays='$pays'))", true))
if (!$this->iDb->update('jo.liens', array_merge($tabUpdate,array('ActionPart'=>1)), "siren=$siren AND (Siren2=$siren2 OR (RaisonSociale='".addslashes($nom)."' AND Pays='$pays'))", true))
$errMaj=1016166;
} else {
if (!$this->iDb->insert('liens', $tabInsert1, true))
if (!$this->iDb->insert('jo.liens', $tabInsert1, true))
$errMaj=1016167;
}
/* Insertion de la participation pour l'actionnaire précédent */
$tabInsert2=array_merge($tabUpdate, array( 'ActionPart'=>2),
array( 'Siren1'=> $siren2,
@ -371,19 +383,19 @@ class MLiens {
'actif'=> 1,
'source'=> 1600,
'dateInsert'=> date('YmdHis')));
$res=$this->iDb->select('liens', 'count(*)', "Siren1=$siren2 AND (Siren2=$siren OR (RaisonSociale='$nom2' AND Pays='$pays2'))");
$res=$this->iDb->select('jo.liens', 'count(*)', "Siren1=$siren2 AND (Siren2=$siren OR (RaisonSociale='$nom2' AND Pays='$pays2'))");
if ($res[0][0]>0) {
if (!$this->iDb->update('liens', array_merge($tabUpdate,array('ActionPart'=>2)), "siren=$siren2 AND (Siren2=$siren OR (RaisonSociale='".addslashes($nom2)."' AND Pays='$pays2'))", true))
if (!$this->iDb->update('jo.liens', array_merge($tabUpdate,array('ActionPart'=>2)), "siren=$siren2 AND (Siren2=$siren OR (RaisonSociale='".addslashes($nom2)."' AND Pays='$pays2'))", true))
$errMaj=1016168;
} else {
if (!$this->iDb->insert('liens', $tabInsert2, true))
if (!$this->iDb->insert('jo.liens', $tabInsert2, true))
$errMaj=1016169;
}
/** Insertion du dirigeant pour l'actionnaire en base **/
$dirs=$this->iDb->select('rncs_dirigeants','siren', "siren=$siren2", true, MYSQL_ASSOC);
$dirs=$this->iDb->select('jo.rncs_dirigeants','siren', "siren=$siren2", true, MYSQL_ASSOC);
if (count($dirs)==0) {
$this->iDb->insert('rncs_dirigeants', array( 'siren' => $siren2,
$this->iDb->insert('jo.rncs_dirigeants', array( 'siren' => $siren2,
'raisonSociale' => $nom,
'civilite' => $lien['civilite'],
'typeDir' => $lien['typeDir'],
@ -404,10 +416,11 @@ class MLiens {
}
}
}
}
}
/** Si l'entreprise n'a aucun actionnaire mais est majoritairement contrôlée par l'état alors on déclare l'état actionnaire **/
if (count($tabRet)==0) {
$tabNotice=$this->iInsee->getInfosNotice($siren, $nic);
if ($tabNotice['insRECME']*1>0) {
@ -416,15 +429,35 @@ class MLiens {
'MajMin' => '+',
'RaisonSociale' => 'ETAT FRANCAIS',
'Pays' => '',
'CodePays' => 'FRA',
'Siren' => 0,
'Actif' => 1,
'Source' => $this->tabSources[1800],
'Source' => $this->tabSources[1900],
'DateLien' => date('Y-m-').'01',
'DateMaj' => date('Y-m-').'01',
);
}
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug Fin $siren ($actifsUniquement)", print_r($tabRet,true)) ;
/** Si l'entreprise n'a aucun actionnaire, on regarde au niveau des cessions de parts **/
/*if (count($tabRet)==0) {
$tab=$this->iDb->select('rncs_even_info', 'siren, dateDepot, codeEven, depot_num, depot_date, acte_num, acte_date, acte_type, acte_lib, acte_pages, acte_nature, acte_decision, collecte, flux, dateInsert',
"siren='$siren' AND codeEven IN(2,5,6,7,8,9,10,13,31,32,63)", true, MYSQL_ASSOC);
foreach ($tab as $i=>$lien) {
$tabRet[]=array('Pmin' => 0,
'PminNum' => 0,
'MajMin' => '+',
'RaisonSociale' => 'ETAT FRANCAIS',
'Pays' => '',
'Siren' => 0,
'Actif' => 1,
'Source' => $this->tabSources[1900],
'DateLien' => date('Y-m-').'01',
'DateMaj' => date('Y-m-').'01',
);
}
}*/
return $tabRet;
}
@ -435,7 +468,7 @@ class MLiens {
public function getParticipations($siren=false, $actifsUniquement=true) {
if (!$siren) $siren=$this->siren;
$tab=$this->iDb->select(
'liens l LEFT JOIN tabPays ON codPays3=Pays',
'jo.liens l LEFT JOIN jo.tabPays ON codPays3=Pays',
'Siren1, ActionPart, Pmin, Pmax, MajMin, PpPm, Siren2, RaisonSociale, Pays, libPays, actif, source, dateLien*1 AS dateLien, DATE(l.dateInsert)*1 AS dateInsert, DATE(l.dateUpdate)*1 AS dateUpdate',
"Siren1='$siren' AND ActionPart=2 ORDER BY source DESC, actif DESC, Pmin DESC", true, MYSQL_ASSOC); // OR Siren2='$siren
$tabRet=array();
@ -444,7 +477,7 @@ class MLiens {
if ($lien['source']>=1700) $source=1700;
//if ($lien['source']>=1700 && $lien['source']<=1720) $source=1700;
else $source=$lien['source']*1;
$dateMaj=$lien['dateLien'];
if ($lien['dateInsert']>$dateMaj) $dateMaj=$lien['dateInsert'];
if ($lien['dateUpdate']>$dateMaj) $dateMaj=$lien['dateUpdate'];
@ -453,11 +486,14 @@ class MLiens {
else {
if ($lien['MajMin']=='F') $majMin='A';
else $majMin=$lien['MajMin'];
if ($lien['source']==1800) $libRS=strtoupper(strtr($lien['RaisonSociale'],$this->tabChars));
else $libRS=strtr($lien['RaisonSociale'],$this->tabChars);
$tabRet[]=array('Pmin' => number_format($lien['Pmin']*1,2,',',''),
'PminNum' => $lien['Pmin']*1,
'MajMin' => $majMin,
'RaisonSociale' => strtr($lien['RaisonSociale'],$this->tabChars),
'RaisonSociale' => $libRS,
'Pays' => $lien['libPays'],
'CodePays' => $lien['Pays'],
'Siren' => $lien['Siren2'],
'Actif' => $lien['actif'],
'Source' => $this->tabSources[$source],
@ -467,7 +503,7 @@ class MLiens {
}
$sourcePre=$source;
}
// if (count($tabRet)==0) {
$tabTmp=$this->iInsee->getIdentiteLight($siren);
switch ($tabTmp['FJ']*1) {
@ -478,7 +514,7 @@ class MLiens {
case 7179: // (Autre) Service déconcentré de l'État à compétence territoriale
case 7381: // Organisme consulaire
/** Ces établissements sont dans le fichier des tribunaux **/
$tmp=$this->iDb->select('tribunaux t1', 't1.triSiret, t1.triNom', "t1.triIdSup=(SELECT t2.triId FROM tribunaux t2 WHERE t2.triSiret LIKE '$siren%' AND t2.triId<>t1.triId LIMIT 1)", true, MYSQL_ASSOC);
$tmp=$this->iDb->select('jo.tribunaux t1', 't1.triSiret, t1.triNom', "t1.triIdSup=(SELECT t2.triId FROM tribunaux t2 WHERE t2.triSiret LIKE '$siren%' AND t2.triId<>t1.triId LIMIT 1)", true, MYSQL_ASSOC);
foreach ($tmp as $tabCC) {
// $sirenCC=substr($tabCC['triSiret'],0,9);
if ($tabCC['triSiret']*1<>0) //$siren*1<>$sirenCC*1)
@ -487,14 +523,15 @@ class MLiens {
'MajMin' => '+',
'RaisonSociale' => $tabCC['triNom'],
'Pays' => '',
'CodePays' => 'FRA',
'Siren' => $tabCC['triSiret'],
'Actif' => 1,
'Source' => $this->tabSources[1800],
'Source' => $this->tabSources[1900],
'DateLien' => Wdate::dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
'DateMaj' => Wdate::dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
);
}
break;
break;
case 7346: // Communaute de communes
case 7348: // Communaute d'agglomeration
//case 'CC': $typeCC="Communauté de communes"; break; // CJ=73
@ -505,7 +542,7 @@ class MLiens {
$dept=substr($tabCom['codeInsee'],0,2);
if ($dept=='2A' || $dept=='2B' || $dept=='20')
$dept='200';
elseif ($dept*1>95)
elseif ($dept*1>95)
$dept=substr($tabCom['codeInsee'],0,3);
else
$dept=$dept.'0';
@ -519,9 +556,10 @@ class MLiens {
'MajMin' => '+',
'RaisonSociale' => 'COMMUNE DE '.strtoupper($tabCom['libCommune']),
'Pays' => '',
'CodePays' => 'FRA',
'Siren' => $sirenCom,
'Actif' => 1,
'Source' => $this->tabSources[1800],
'Source' => $this->tabSources[1900],
'DateLien' => date('Y-m-').'01',
'DateMaj' => date('Y-m-').'01',
);
@ -533,11 +571,11 @@ class MLiens {
// Siren du 75 22 750001 => Région 237 500 079
// Siren du 972 22 972001 6 => Région 239 720 014
$dept=substr($siren,2,2);
$deptD=$dept.'000';
$deptD=$dept.'000';
$deptF=$dept.'999';
if ($dept*1>95) {
$dept=substr($siren,2,3);
$deptD=$dept.'00';
$deptD=$dept.'00';
$deptF=$dept.'99';
}
$tmp=$this->iDb->select('insee.departements d, insee.insee_tabRegions r',
@ -556,9 +594,10 @@ class MLiens {
'MajMin' => '+',
'RaisonSociale' => 'DEPARTEMENT '.strtoupper($tabCom['libdep']),
'Pays' => '',
'CodePays' => 'FRA',
'Siren' => $sirenCom,
'Actif' => 1,
'Source' => $this->tabSources[1800],
'Source' => $this->tabSources[1900],
'DateLien' => date('Y-m-').'01',
'DateMaj' => date('Y-m-').'01',
);
@ -566,19 +605,41 @@ class MLiens {
break;
}
// }
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug Liens $siren", print_r($tabRet,true)) ;
return $tabRet;
}
public function getEvenements($siren=false) {
if (!$siren) $siren=$this->siren;
$tab=$this->iDb->select('jo.rncs_even_info', 'siren, dateDepot, codeEven, depot_num, depot_date, acte_num, acte_date, acte_type, acte_lib, acte_pages, acte_nature, acte_decision, collecte, flux, dateInsert',
"siren='$siren' AND codeEven IN(2,5,6,7,8,9,10,13,31,32,63)", true, MYSQL_ASSOC);
$tabRet=array();
foreach ($tab as $i=>$lien) {
$tabRet[]=array(/*'Pmin' => 0,
'PminNum' => 0,
'MajMin' => '+',*/
'DateLien' => $lien['acte_date'],
'TypeEvenement' => $lien['acte_nature'],
'InfoEvenement' => $lien['acte_decision'],
// 'Pays' => '',
// 'Siren' => 0,
// 'Actif' => 1,
'Source' => $this->tabSources[1500],
'DateMaj' => $lien['flux'],
);
}
return $tabRet;
}
public function getLiens($siren=false) {
$tabA=$this->getActionnaires($siren);
$tabP=$this->getParticipations($siren);
$tabE=$this->getEvenements($siren);
return array( 'actionnaires'=>$tabA,
'participations'=>$tabP);
'participations'=>$tabP,
'evenements'=>$tabE);
}
public function getMaisonMereFr($siren, $debug=false, $tabSirenVisites=array()) {
$this->tabSirenVisites=$tabSirenVisites;
$this->tabSirenVisites[]=$siren;
@ -594,8 +655,8 @@ class MLiens {
continue;
}// else
//echo "inconnu".EOL;
if ($debug && $sirenMere>1000) $tabIdentiteA=$this->iInsee->getIdentiteLight($sirenMere);
if ($debug && $sirenMere>1000) $tabIdentiteA=$this->iInsee->getIdentiteLight($sirenMere);
else $tabIdentiteA['Nom']='';
if ($siren*1==$sirenMere*1) {
if ($debug) echo "D. $siren détenu à ".$lien['Pmin']." (".$lien['MajMin'].") par ".$tabIdentiteA['Nom']." ($sirenMere)".EOL;
@ -623,11 +684,11 @@ class MLiens {
}
if ($i==0) return $siren;
}
public function getAllParticipations($siren, $pctMin=33, $nbNiveaux=15, $niveauCour=1, $tabSiren=array(), $sirenIni=0, $sirenMere=0, $appel=0, $actifsUniquement=true) {
public function getAllParticipations($siren, $pctMin=33, $nbNiveaux=15, $niveauCour=1, $tabSiren=array(), $sirenIni=0, $sirenMere=0, $appel=0, $actifsUniquement=true, $format='txt', $tabRet=array()) {
$appel++;
$tabP=$this->getParticipations($siren, $actifsUniquement);
//if ($siren*1==692004807) die(print_r($tabP,true));
foreach ($tabP as $i=>$lien) {
$sirenFille=$lien['Siren']*1;
if ($sirenFille>1000) {
@ -658,14 +719,14 @@ class MLiens {
echo "[D]".EOL;
$tabSiren[]=$siren;
}
elseif($sirenFille>100 && ($lien['PminNum']>=$pctMin || $lien['MajMin']=='+') && $appel<=$nbNiveaux) {
elseif($sirenFille>100 && ($lien['PminNum']>=$pctMin || $lien['MajMin']=='+') && $appel<=$nbNiveaux) {
$tabSiren[]=$siren;
if (in_array($sirenFille,$tabSiren))
echo "[Adeja]".EOL;
else {
echo "[A]".EOL;
$niveauCour++;
$tabSiren=$this->getAllParticipations($sirenFille, $pctMin, $nbNiveaux, $niveauCour, $tabSiren, $sirenIni, $sirenMere, $appel, $actifsUniquement, $format);
$tabSiren=$this->getAllParticipations($sirenFille, $pctMin, $nbNiveaux, $niveauCour, $tabSiren, $sirenIni, $sirenMere, $appel, $actifsUniquement, $format, $tabRet);
}
}
elseif($sirenFille>100 && ($lien['PminNum']<$pctMin || $lien['MajMin']=='-')) {
@ -677,21 +738,96 @@ class MLiens {
$tabSiren[]=$siren;
}
else {
/**1) {
echo "[D]".EOL;
$tabSiren[]=$siren;
}
elseif($sirenFille>100 && ($lien['PminNum']>=$pctMin || $lien['MajMin']=='+') && $niveauCour<=$nbNiveaux) { */
echo "[E]".EOL;// $siren, $sirenFille, ".$lien['PminNum'].">=$pctMin, ".$lien['MajMin'].", $niveauCour<=$nbNiveaux".EOL;
$tabSiren[]=$siren;
}
$tabPart=array( 'siren' => $sirenFille,
'nom' => $nomP,
'pct' => $pct,
'pays' => $libPays,
'filles'=> $tabFilles);
$tabParts[]=$tabPart;
}
$tabRet=$tabParts;
return array_unique($tabSiren);
}
/**
* Retourne l'arborescence pour les groupes
* @param string $siren
* @param int $pctMin
* @param int $nbNiveaux
*/
public function getArborescence($siren, $pctMin=33, $nbNiveaux=10)
{
//Récupération de la maison mère
$sirenMere = $this->getMaisonMereFr($siren);
//Informations de la maison mère
$tabId = $this->iInsee->getIdentiteLight($sirenMere);
$tabSirenDeja = array();
$tabSirenDeja[] = $tabId['Siren'];
//Retour
$tabRet = array(
'name' => $tabId['Nom'],
'siren' => $tabId['Siren'],
'children' => $this->getArborescenceRecursive($sirenMere, $pctMin, 1, $nbNiveaux, $tabSirenDeja),
);
return $tabRet;
}
/**
* Retourne un sous élement de l'arborescende pour les groupes
* @param string $siren
* @param int $pctMin
* @param int $niveau
* @param int $nbNiveaux
* @param array $tabSirenDeja
*/
public function getArborescenceRecursive( $siren, $pctMin=33, $niveau=0, $nbNiveaux=10, $tabSirenDeja=array() )
{
if ( $niveau > $nbNiveaux ) return array();
$niveau++;
$tabRet = array();
$participations = $this->getParticipations($siren);
if ( count($participations)>0 ) {
foreach ( $participations as $item ) {
if ( $item['Pmin'] > $pctMin ) {
//file_put_contents('test.log', $item['Siren']."\n", FILE_APPEND);
$data = array(
'name' => $item['RaisonSociale'],
'siren' => $item['Siren'],
'pmin' => $item['Pmin'],
'pays' => $item['Pays'],
'children' => array(),
);
//Pour éviter d'avoir des boucles infinis
if ( !in_array($item['Siren'], $tabSirenDeja) && intval($item['Siren'])>1000 ){
$tabSirenDeja[] = $item['Siren'];
$data['children'] = $this->getArborescenceRecursive($item['Siren'], $pctMin, $niveau, $nbNiveaux, $tabSirenDeja);
}
$tabRet[] = $data;
}
}
//file_put_contents('test.log', "\n", FILE_APPEND);
}
return $tabRet;
}
/** Recherche d'entreprise par leur actionnaire
**
** @param string $nom Raison sociale / Nom de l'actionnaire (obligatoire)
@ -705,7 +841,7 @@ class MLiens {
** @param bool $pertinence Recherche orthographique stricte sur les noms et prénoms (si true)
** @return Liste des entreprises trouvées
**/
public function rechercheActionnaire($nom, $cpVille='', $siren=0, $pays='', $pctMin=0, $pctMax=100, $deb=0, $nbRep=20, $maxRep=200, $pertinence=false)
public function rechercheActionnaire($nom, $cpVille='', $siren=0, $pays='', $pctMin=0, $pctMax=100, $deb=0, $nbRep=20, $maxRep=200, $pertinence=false)
{
debugLog('I',"rechercheActionnaire de $nom, $cpVille, $pays, $siren entre $pctMin et $pctMax% (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$formR = array(
@ -714,10 +850,13 @@ class MLiens {
'actNomRS' => join(' ', array($nom, $cpVille)),
'pays' => $pays,
'pctMin' => $pctMin,
'pctMax' => $pctMax,
'pctMax' => $pctMax,
);
$version = defined('SPHINX_ACT_VERSION') ? SPHINX_ACT_VERSION : 1;
require_once 'Metier/sphinx/rechercheFonc.php';
$result = rechercheAct($formR, $deb, $nbRep, $maxRep);
/*
switch($version)
{
case 1:
@ -730,28 +869,29 @@ class MLiens {
$result = $recherche->rechercheAct($formR, $deb, $nbRep, $maxRep);
break;
}
*/
return $result;
}
/** Retourne les informations relatives au groupe du siren donné
** @param string $siren Siren de l'entreprise
** @param string $siren Siren de l'entreprise
**/
public function getInfoGroupe($siren) {
if ($siren<1000) return false;
$tmp=$this->iDb->select('etablissements_act',
$tmp=$this->iDb->select('jo.etablissements_act',
'raisonSociale, enseigne, sigle, identite_pre, adr_num, adr_btq, adr_typeVoie, adr_libVoie, adr_comp, adr_cp, adr_ville, adr_dep, adr_com, tel, fax, siren, sirenGrp',
"siren=(SELECT distinct sirenGrp FROM etablissements_act WHERE siren=$siren AND siege=1) LIMIT 0,1", false, MYSQL_ASSOC);
"siren=(SELECT distinct sirenGrp FROM jo.etablissements_act WHERE siren=$siren AND siege=1) LIMIT 0,1", false, MYSQL_ASSOC);
$tabEnt=$tmp[0];
$sirenGrp=$tabEnt['siren'];
if ($sirenGrp<1000) return false;
/** Table des Nafs5 => Secteurs **/
$tmp=$this->iDb->select('tabNaf5', 'codNaf2, codNaf1', '1 GROUP BY codNAf2', false, MYSQL_ASSOC);
$tmp=$this->iDb->select('jo.tabNaf5', 'codNaf2, codNaf1', '1 GROUP BY codNAf2', false, MYSQL_ASSOC);
$tabNAf2=array();
foreach ($tmp as $tmp2) {
$tabNAf2[$tmp2['codNaf2']]=$tmp2['codNaf1'];
}
$tabNaf2Lib=array( 'A'=>'Agriculture, sylviculture et pêche',
'B'=>'Industries extractives',
'C'=>'Industrie manufacturière',
@ -774,7 +914,7 @@ class MLiens {
'T'=>'Activités des ménages en tant qu\'employeurs ; activités indifférenciées des ménages en tant que producteurs de biens et services pour usage propre',
'U'=>'Activités extra-territoriales',
);
$tabId=$this->iInsee->getIdentiteEntreprise($sirenGrp);
/*
[SiretSiege] => 54205118000066
@ -849,7 +989,7 @@ class MLiens {
@$tabSecteur[$tabNAf2[''.substr($tabEnt['ape_entrep'],0,2)]]['nb']++;
@$tabSecteur[$tabNAf2[''.substr($tabEnt['ape_entrep'],0,2)]]['ca']+=$tabEnt['bilFL'];
@$tabSecteur[$tabNAf2[''.substr($tabEnt['ape_entrep'],0,2)]]['eff']+=$tabEnt['eff_entrep'];
@$tabAvis[$tabEnt['avisCs']]++;
}
foreach ($tabSecteur as $secteur=>$tmp) {
@ -873,7 +1013,7 @@ class MLiens {
// $tabRet['ape5']=$tabApe5;
$tabRet['secteur']=$tabSecteur2;
$tabRet['avisCs']=$tabAvis; // Vérifier les procol
$strSiren=implode(',', $tabSirenGrp);
/*$tmp=$this->iDb->select('insee.insee_notices',
'insSIREN, insNIC, dateNotice',
@ -881,9 +1021,8 @@ class MLiens {
if (count($tmp)>0) $tabRet['grpRecme']=1;
else $tabRet['grpRecme']=0;*/
$tabRet['grpNbProcolHisto']=$nbProcol;
return $tabRet;
}
}
?>
}

View File

@ -0,0 +1,542 @@
<?php
class MLiens2
{
/**
* Company Reference id
* @var int
*/
protected $idRef = null;
/**
* Company SIREN
* @var string
*/
protected $siren = null;
/**
* @var Zend_Db_Adapter_Abstract
*/
protected $db;
/**
* Array to list id find during list of childrens
* @var array
*/
protected $findId = array();
/**
* 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;
/**
* Databas table name
* @var string
*/
protected $_schema = 'jo';
/**
*
* @param string $id
* @param string $type ref|siren
* @param Zend_Db_Adapter $db
* @throws SoapFault
*/
public function __construct($id, $type = 'ref', $db = null)
{
//Get defaut database adapter
if( $db === null ) {
$this->db = Zend_Db_Table_Abstract::getDefaultAdapter();
} else {
$this->db = $db;
Zend_Db_Table_Abstract::setDefaultAdapter($db);
}
//Get Id
if ( $type == 'siren' ) {
$this->siren = $id;
$refM = new Application_Model_JoLiensRef();
$sql = $refM->select()->where('siren=?', $id)->where('dateSuppr=0');
$result = $refM->fetchRow($sql);
if ( $result !== null ) {
$this->idRef = $result->id;
}
} else {
$this->idRef = $id;
}
}
/**
* Retourne les actionnaires
* @param int $id
* @param boolean $actif
* @return array Tableau d'actionnaires
*/
public function getActionnaires($id = null, $actif = null)
{
if ( null === $id ) {
$id = $this->idRef;
}
$liens = array();
if ( null === $id ) {
return $liens;
}
try {
$sql = $this->db->select()
->from(array('l'=>$this->_schema.'.liens2'),
array('id', 'idAct', 'PDetention', 'Pvote', 'MajMin', 'idPar',
'dateEffetLien', 'dateInsert', 'dateUpdate'))
->where('idPar=?', $id)
->join(array('r'=>$this->_schema.'.liensRef'), 'l.idAct=r.id',
array('LPAD(siren, 9, 000000000) AS siren','PpPm', 'RS', 'sigle', 'civilite', 'nom', 'prenom', 'nom_usage',
'naissance_date', 'naissance_dept_pays', 'naissance_lieu', 'nat',
'adresse_num', 'adresse_btq', 'adresse_codvoie', 'adresse_libvoie',
'adresse_comp', 'adresse_cp', 'adresse_ville', 'adresse_pays',
'idLoc1Type', 'idLoc1Num', 'idLoc2Type', 'idLoc2Num', 'idLoc3Type', 'idLoc3Num',
))
->order('PDetention DESC');
//Actif / Inactif
if ( null !== $actif ) {
if ( false === $actif ) {
$sql->where('l.actif=?',0);
} else {
$sql->where('l.actif=?',1);
}
}
//Don't display deleted - anomaly
$sql->where('l.dateSuppr=?', '0000-00-00 00:00:00');
$liens = $this->db->fetchAll($sql, null, Zend_Db::FETCH_OBJ);
} catch (Zend_Db_Exception $e) {
throw new Exception(__METHOD__ . ': ' . $e->getMessage());
}
return $liens;
}
/**
* Retourne les participations
* @param int $id
* @param boolean $actif
* @return array Tableau des participations
*/
public function getParticipations($id = null, $actif = null)
{
if ( null === $id ) {
$id = $this->idRef;
}
if ( false === $actif ) {
$actif = 0;
} else {
$actif = 1;
}
$liens = array();
if ( null === $id ) {
return $liens;
}
try {
$sql = $this->db->select()
->from(array('l'=>$this->_schema.'.liens2'),
array('id', 'idAct', 'PDetention', 'Pvote', 'MajMin', 'idPar',
'dateEffetLien', 'dateInsert', 'dateUpdate'))
->where('idAct=?', $id)
->join(array('r'=>$this->_schema.'.liensRef'), 'l.idPar=r.id',
array('LPAD(siren, 9, 000000000) AS siren','PpPm', 'RS', 'sigle', 'civilite', 'nom', 'prenom', 'nom_usage',
'naissance_date', 'naissance_dept_pays', 'naissance_lieu', 'nat',
'adresse_num', 'adresse_btq', 'adresse_codvoie', 'adresse_libvoie',
'adresse_comp', 'adresse_cp', 'adresse_ville', 'adresse_pays',
'idLoc1Type', 'idLoc1Num', 'idLoc2Type', 'idLoc2Num', 'idLoc3Type', 'idLoc3Num',
))
->order('PDetention DESC');
//Actif / Inactif
if ( null !== $actif ) {
if ( false === $actif ) {
$sql->where('l.actif=?',0);
} else {
$sql->where('l.actif=?',1);
}
}
//Don't display deleted - anomaly
$sql->where('l.dateSuppr=?', '0000-00-00 00:00:00');
$liens = $this->db->fetchAll($sql, null, Zend_Db::FETCH_OBJ);
} catch (Zend_Db_Exception $e) {
throw new Exception(__METHOD__ . ': ' . $e->getMessage());
}
return $liens;
}
/**
* Fonctions de direction
* @param boolean $actif
* @return Zend_Db_Table_Rowset_Abstract
*/
public function getDirections($actif = null)
{
if ( null === $this->siren ) {
$refM = new Application_Model_JoLiensRef();
$rows = $refM->find($this->idRef);
$siren = str_pad($rows->current()->siren, 9, '0', STR_PAD_LEFT);
} else {
$siren = $this->siren;
}
$result = array();
if ( null !== $siren && intval($siren) != 0 )
{
try {
$directionsM = new Application_Model_JoRncsDirigeants();
$sql = $directionsM->select()->from($directionsM, array(
'LPAD(siren, 9, 000000000) AS siren','raisonSociale', 'dirSiren', 'dirRS', 'civilite', 'nom',
'prenom', 'naissance_date', 'naissance_lieu', 'fonction_code', 'fonction_lib'
))->where("typeDir IN ('PM', 'PP')")->where('dirSiren=?', $siren);
//Actif / Inactif
if ( null !== $actif ) {
if ( false === $actif ) {
$sql->where('actif=?',0);
} else {
$sql->where('actif=?',1);
}
}
$sql->order('fonction_code DESC');
$sql->order('raisonSociale ASC');
$result = $directionsM->fetchAll($sql);
} catch (Zend_Db_Exception $e) {
throw new Exception(__METHOD__ . ': ' . $e->getMessage());
}
}
return $result;
}
/**
* Retourne la maison mère
* @param int $id
* 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 Zend_Db_Table_Rowset_Abstract
*/
public function getIdentity($id = null)
{
if ( null === $id ) {
$id = $this->idRef;
}
$refM = new Application_Model_JoLiensRef();
$row = $refM->find($id);
if (null !== $row) {
return $row->current();
}
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;
}
/**
*
* @return multitype:NULL
*/
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;";
$result = $this->db->query($sql);
$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);
$refM = new Application_Model_JoLiensRef();
$sql = $refM->select()
->where("idLoc1Type=63")->where("idLoc1Num IN (?)", $isin)
->orWhere("idLoc2Type=63")->where("idLoc2Num IN (?)", $isin)
->orWhere("idLoc3Type=63")->where("idLoc3Num IN (?)", $isin);
$result = $refM->fetchAll($sql);
$this->findId = array();
$output = array();
if ( $result->count()>0 ) {
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()
{
$countryM = new Application_Model_JoTabPays();
$sql = $countryM->select()
->from($countryM, array('codPays3', 'libPays'))
->where('codPays3 IS NOT NULL');
$rows = $countryM->fetchAll($sql);
if ( $rows !== null ) {
$data = array();
foreach($rows as $item) {
$data[$item->codPays3] = $item->libPays;
}
return $data;
}
return false;
}
}

View File

@ -1,473 +0,0 @@
<?
class MLiens {
public $siren=0;
private $tabChars=array('é'=>'é', 'ç'=>'ç','è'=>'è','à '=>'à');
private static $tabFct=array( 'ADM'=>'Administrateur',
'ASS'=>'Associé',
'COG'=>'Co-gérant',
'CON'=>'Contrôleur de gestion',
'DID'=>'Directeur Général Délégué',
'DIR'=>'Directeur',
'GER'=>'Gérant',
'PCS'=>'Président du Conseil de Surveillance',
'PDG'=>'Président Directeur Général',
'PP'=>'Personne Physique',
'PRD'=>'Président du directoire',
'PRE'=>'Président du Conseil d\'Administration',
'VIC'=>'Vice président du CA ou Surv.',
);
public function __construct($siren) {
$this->siren=$siren;
}
/** Retourne les actionnaires du siren
** @param int Siren de l'entreprise
** @return array Tableau d'actionnaires
**/
public function getActionnaires($siren=false, $actifsUniquement=true) {
if (!$siren) $siren=$this->siren;
$iDb=new WDB();
$tab=$iDb->select('liens', 'Siren1, ActionPart, Pmin, Pmax, MajMin, PpPm, Siren2, RaisonSociale, Pays, actif, source', "Siren1='$siren' AND ActionPart=1 ORDER BY source DESC, actif DESC, Pmin DESC", true, MYSQL_ASSOC);
//$tabActiDB=mysql_select('dbo_liens_fi', 'SirenEntite, NomAdresse, PourcentageDetenu, Ville, Lien, MAJLien, MAJImport', "Siren='$siren' AND CodeLien='AC' ORDER BY PourcentageDetenu DESC");
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug $siren ($actifsUniquement)", print_r($tab,true)) ;
$sourcePre=false;
$tabRet=array();
foreach ($tab as $i=>$lien) {
if ($lien['source']>=1700 && $lien['source']<=1720) $source=1700;
else $source=$lien['source'];
if ($i>0 && $sourcePre<>$source) break;
/*if ($actifsUniquement && $lien['actif']==0) continue;
else
$tabRet[]=array('Pmin' => number_format($lien['Pmin']*1,2,',',''),
'MajMin' => $lien['MajMin'],
'RaisonSociale' => strtr($lien['RaisonSociale'],$this->tabChars),
'Pays' => $lien['libPays'],
'Siren' => $lien['Siren2'],
'Actif' => $lien['actif']);*/
if ($actifsUniquement && $lien['actif']==0) continue;
else {
$codPays=strtoupper($lien['Pays']);
$libPays='';
if ($codPays<>'' && $codPays<>'FRA') {
$tmp=$iDb->select('tabPays', 'libPays', "codPays3='$codPays'", true, MYSQL_ASSOC);
$libPays=$tmp[0]['libPays'];
}
if ($lien['MajMin']=='F') $majMin='A';
else $majMin=$lien['MajMin'];
$tabRet[]=array( 'Pmin' => number_format($lien['Pmin']*1,2,',',''),
'MajMin' => $majMin,
'RaisonSociale' => strtr($lien['RaisonSociale'],$this->tabChars),
'Pays' => $libPays,
'Siren' => $lien['Siren2'],
'Actif' => $lien['actif']);
}
$sourcePre=$source;
}
if (count($tabRet)==0) {
$iInsee=new MInsee();
$tabTmp=$iInsee->getIdentiteLight($siren);
switch ($tabTmp['FJ']*1) {
case 7111:
case 7113:
case 7120:
case 7150:
case 7160:
case 7171:
case 7172:
case 7179:
case 7190:
case 7229:
case 7331:
case 7349:
case 7351:
case 7352:
case 7364:
case 7365:
case 7366:
case 7371:
case 7372:
case 7373:
case 7379:
case 7381:
case 7382:
case 7383:
case 7384:
case 7385:
case 7389:
case 7410:
case 7430:
case 7450:
case 7490:
$tabRet[]=array('Pmin' => 0,
'MajMin' => '+',
'RaisonSociale' => 'ETAT FRANCAIS',
'Pays' => '',
'Siren' => 0,
'Actif' => 1);
break;
case 7210: // Communes
// Siren Commune du Lamentin : 219 722 139
// ~~~ ~~~~
$dept=substr($siren,2,2);
$comm=substr($siren,5,3);
$codeInsee=$dept.$comm;
if ($dept<>'20') // Corse
$strCodeInsee="codeInsee='$codeInsee'";
else
$strCodeInsee="codeInsee IN ('2A$comm','2B$comm','20$comm') ";
$tmp=$iDb->select('insee.insee_tabVillesEpci', 'typEPCI, codEPCI, libEPCI, libCommune', $strCodeInsee, true, MYSQL_ASSOC);
$tabCC=$tmp[0];
switch($tabCC['typEPCI']) {
case 'CA': $typeCC="Communauté d'agglomérations"; break; // CJ=7348
case 'CC': $typeCC="Communauté de communes"; break; // CJ=7346
case 'CU': $typeCC="Communauté urbaine"; break; // CJ=73
case 'SAN': $typeCC="Syndicat d'agglomérations nouvelles"; break; // CJ=73
default: $typeCC='';
}
$tabRet[]=array('Pmin' => 0,
'MajMin' => '+',
'RaisonSociale' => strtoupper($typeCC.' '.preg_replace('/^(CA|CC|CU|SAN) /Uis', '',$tabCC['libEPCI'])),
'Pays' => '',
'Siren' => $tabCC['codEPCI'],
'Actif' => 1);
break;
}
}
if (count($tabRet)==0) {
$iInsee=new MInsee();
$tabTmp=$iInsee->getIdentiteLight($siren);
$fj=$tabTmp['FJ']*1;
if ($fj==5498) $strFonctions=",'Gérant'";
else $strFonctions='';
$adresse=end(explode(' ', $tabTmp['AdresseVoie']));
$codePostal=$tabTmp['CP'];
$tab=$iDb->select('rncs_dirigeants', 'typeDir, raisonSociale, dirSiren, dirRS, civilite, nom, prenom, actif, naissance_nom, naissance_date, naissance_lieu, nat, adresse, fonction_code, fonction_lib, source, cinf',
"siren='$siren' AND fonction_lib IN ('Associé-gérant' $strFonctions)", true, MYSQL_ASSOC);
$majMin='+';
if (count($tab)>1) $majMin='-';
foreach ($tab as $i=>$lien) {
if ($actifsUniquement && $lien['actif']==0) continue;
else {
$ville=$siege=$actif='';
$deb=$siren2=0;
$nbRep=$maxRep=200;
$pertinence=$avecSiren=true;
$etabs=$iInsee->rechercheEtab($lien['nom'].' '.$lien['prenom'], $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren);
$tabSiren=array();
foreach ($etabs['reponses'] as $etab) {
$tabTmp=preg_split('/( +|\/|\*)/', $etab['Nom']);
$rsEtab=$tabTmp[0];
$tabTmp=preg_split('/( +|\/|\*)/', $lien['nom']);
$rsLien=$tabTmp[0];
if ($etab['FJ']==1800 && $rsEtab==$rsLien)
$tabSiren[]=$etab['Siren'];
}
/*
'Nom'=>prepareString(strtr($etab['Nom'],'/*',' ')),
'Nom2'=>prepareString($etab['Nom2']),
'Sigle'=>prepareString($etab['Sigle']),
'Enseigne'=>prepareString($etab['Enseigne']),
'Adresse'=>prepareString($etab['Adresse']),
'CP'=>$etab['CP'],
'Ville'=>prepareString($etab['Ville']),
'Tel'=>$etab['Tel'],
'Fax'=>$etab['Fax'],
'Nic'=>$etab['Nic'],
'Actif'=>$etab['Actif'],
'NafEtab'=>$etab['NafEtab'], // Etablissement
'NafEtabLib'=>prepareString($etab['NafEtabLib']),
'NafEnt'=>$etab['NafEnt'], // Entreprise
'NafEntLib'=>prepareString($etab['NafEntLib']),*/
$tabSiren2=array_unique($tabSiren);
if (count($tabSiren2==1)) $siren2=end($tabSiren2);
else $siren2=$lien['dirSiren'];
if ($lien['civilite']=='MME') $genre='Madame';
elseif ($lien['civilite']=='M') $genre='Monsieur';
else $genre='';
$tabRet[]=array( 'Pmin' => 0,
'MajMin' => $majMin,
'RaisonSociale' => trim(preg_replace('/ +/', ' ', $lien['dirRS'].' '.$genre.' '.$lien['nom'].' '.$lien['prenom'])),
'Pays' => '',
'Siren' => $siren2,
'Actif' => $lien['actif']);
if ($siren2*1>0) {
/** Insertion du lien en base **/
$nom=$pays=$dateMAJ='';
$ppPm='P';
$pct=0;
$entrep2=$iInsee->getIdentiteLight($siren);
$nom2=$entrep2['Nom'];
$pays2='FRA';
if (substr($entrep2['FJ'],0,1)*1<>1) $ppPm='M';
$entrep=$iInsee->getIdentiteLight($siren2);
$nom=strtr($entrep['Nom'],'/*',' ');
$pays='FRA';
$tabUpdate=array( 'Pmin'=> $pct,
'Pmax'=> $pct,
'MajMin'=> $majMin,
'PpPm'=> $ppPm,
'dateLien'=> $dateMAJ,
);
/* Insertion de l'actionnaire */
$tabInsert1=array_merge($tabUpdate, array( 'ActionPart'=>1),
array( 'Siren1'=> $siren,
'Siren2'=> $siren2,
'RaisonSociale'=> $nom,
'Pays'=> $pays,
'actif'=> 1,
'source'=> 1600,
'dateInsert'=> date('YmdHis')));
$res=$iDb->select('liens', 'count(*)', "Siren1=$siren AND (Siren2=$siren2 OR (RaisonSociale='".addslashes($nom)."' AND Pays='$pays'))");
if ($res[0][0]>0) {
if (!$iDb->update('liens', array_merge($tabUpdate,array('ActionPart'=>1)), "siren=$siren AND (Siren2=$siren2 OR (RaisonSociale='".addslashes($nom)."' AND Pays='$pays'))", true))
$errMaj=1016166;
} else {
if (!$iDb->insert('liens', $tabInsert1, true))
$errMaj=1016167;
}
/* Insertion de la participation pour l'actionnaire précédent */
$tabInsert2=array_merge($tabUpdate, array( 'ActionPart'=>2),
array( 'Siren1'=> $siren2,
'Siren2'=> $siren,
'RaisonSociale'=> $nom2,
'Pays'=> $pays2,
'actif'=> 1,
'source'=> 1600,
'dateInsert'=> date('YmdHis')));
$res=$iDb->select('liens', 'count(*)', "Siren1=$siren2 AND (Siren2=$siren OR (RaisonSociale='$nom2' AND Pays='$pays2'))");
if ($res[0][0]>0) {
if (!$iDb->update('liens', array_merge($tabUpdate,array('ActionPart'=>2)), "siren=$siren2 AND (Siren2=$siren OR (RaisonSociale='".addslashes($nom2)."' AND Pays='$pays2'))", true))
$errMaj=1016168;
} else {
if (!$iDb->insert('liens', $tabInsert2, true))
$errMaj=1016169;
}
/** Insertion du dirigeant pour l'actionnaire en base **/
$dirs=$iDb->select('rncs_dirigeants','siren', "siren=$siren2", true, MYSQL_ASSOC);
if (count($dirs)==0) {
$iDb->insert('rncs_dirigeants', array( 'siren' => $siren2,
'raisonSociale' => $nom,
'civilite' => $lien['civilite'],
'typeDir' => $lien['typeDir'],
'dirRS' => $siren2,
'nom' => $lien['nom'],
'prenom' => $lien['prenom'],
'naissance_nom' => $lien['naissance_nom'],
'naissance_date'=> $lien['naissance_date'],
'naissance_lieu'=> $lien['naissance_lieu'],
'nat' => $lien['nat'],
'fonction_code' => 0,
'fonction_lib' => 'Personne Physique',
'actif' => 1,
'dateInsert' => date('YmdHis'),
'source' => 'lag', // Lien Associé Gérant
'cinf' => $lien['cinf'],
), true);
}
}
}
}
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug Fin $siren ($actifsUniquement)", print_r($tabRet,true)) ;
return $tabRet;
}
/** Retourne les participations du siren
** @param int Siren de l'entreprise
** @return array Tableau de participations
**/
public function getParticipations($siren=false, $actifsUniquement=true) {
if (!$siren) $siren=$this->siren;
$iDb=new WDB();
$tab=$iDb->select('liens LEFT JOIN tabPays ON codPays3=Pays', 'Siren1, ActionPart, Pmin, Pmax, MajMin, PpPm, Siren2, RaisonSociale, Pays, libPays, actif, source', "Siren1='$siren' AND ActionPart=2 ORDER BY source DESC, actif DESC, Pmin DESC", true, MYSQL_ASSOC); // OR Siren2='$siren
// $tabPartDB=mysql_select('dbo_liens_fi', 'SirenEntite, NomAdresse, PourcentageDetenu, Ville, Lien, MAJLien, MAJImport', "Siren='$siren' AND CodeLien='PA' ORDER BY PourcentageDetenu DESC");
$tabRet=array();
$sourcePre=false;
foreach ($tab as $i=>$lien) {
if ($lien['source']>=500 && $lien['source']<=520) $source=500;
else $source=$lien['source'];
if ($i>0 && $sourcePre<>$source) break;
if ($actifsUniquement && $lien['actif']==0) continue;
else
$tabRet[]=array('Pmin' => number_format($lien['Pmin']*1,2,',',''),
'MajMin' => $lien['MajMin'],
'RaisonSociale' => strtr($lien['RaisonSociale'],$this->tabChars),
'Pays' => $lien['libPays'],
'Siren' => $lien['Siren2'],
'Actif' => $lien['actif']);
$sourcePre=$source;
}
if (count($tabRet)==0) {
$iInsee=new MInsee();
$tabTmp=$iInsee->getIdentiteLight($siren);
switch ($tabTmp['FJ']*1) {
case 7346: // Communaute de communes
case 7348: // Communaute d'agglomeration
//case 'CC': $typeCC="Communauté de communes"; break; // CJ=73
//case 'CU': $typeCC="Communauté urbaine"; break; // CJ=73
//case 'SAN': $typeCC="Syndicat d'agglomérations nouvelles"; break; // CJ=73
$tmp=$iDb->select('insee.insee_tabVillesEpci', 'typEPCI, libEPCI, codeInsee, libCommune', "codEPCI='$siren'", true, MYSQL_ASSOC);
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug Fin $siren ($actifsUniquement)", print_r($tmp, true)) ;
foreach ($tmp as $tabCom) {
$dept=substr($tabCom['codeInsee'],0,2);
if ($dept=='2A' || $dept=='2B' || $dept=='20')
$dept='200';
elseif ($dept*1>95)
$dept=substr($tabCom['codeInsee'],0,3);
else
$dept=$dept.'0';
$comm=substr($tabCom['codeInsee'],2,3);
for ($iSir=0; $iSir<10; $iSir++) {
$sirenCom='21'.$dept.$comm.$iSir;
if ($iInsee->valideSiren($sirenCom)) break;
}
$tabRet[]=array('Pmin' => 0,
'MajMin' => '+',
'RaisonSociale' => 'COMMUNE DE '.strtoupper($tabCom['libCommune']),
'Pays' => '',
'Siren' => $sirenCom,
'Actif' => 1);
}
break;
}
}
return $tabRet;
}
public function getLiens($siren=false) {
$tabA=$this->getActionnaires($siren);
$tabP=$this->getParticipations($siren);
return array( 'actionnaires'=>$tabA,
'participations'=>$tabP);
}
private function getLiensPartenaires($siren=false) {
if (!$siren) $siren=$this->siren;
/** Le partenaire pour les liens Actionnaires/Participations est infobilan.decideur.com
**/
$urlRacine='http://infobilan.decideur.com/';
$tabPost=array( 'choix'=>'1',
'pagePrecedente'=>'recherche_entreprise.html',
'nomsocRech'=>'',
'cpRech'=>'',
'villeRech'=>'',
'nomdirRech'=>'',
'predirRech'=>'',
'sirenRech'=>$this->siren,
'telRech'=>'',
'Rechercher.x'=>round(79),
'Rechercher.y'=>round(19),);
$url=$urlRacine.'liste_result.html';
$referer=$urlRacine.'recherche_entreprise.html';
$page=getUrl($url,'', $tabPost, $referer, false, 'infobilan.decideur.com');
$this->body=$page['body'];
$strCookie=$page['header']['Set-Cookie'];
$refererInfoD=$url;
if(preg_match_all('/<a href="choix_pdt\.html\?(.*)" class="tt1">(.*)<\/a><\/span><br>/i', $page['body'], $matches))
{
$urlInfoD=$urlRacine.'choix_pdt.html?'.$matches[1][0];
$page=getUrl($urlInfoD,$strCookie,'', $refererInfoD, false, 'infobilan.decideur.com');
$referer=$urlInfoD;
if ($this->nscrl==0) $this->nscrl=@getTextInHtml($url, 'nscrlP=', '=','&');
$url=$urlRacine.'fiche_ident.html';
$page=getUrl($url,$strCookie,'', $referer, false, 'infobilan.decideur.com');
$this->body=$page['body'];
if ($this->raisonSociale=='')
$this->raisonSociale=trim(@getTextInHtml($this->body, '<span class="libelle2">Soci&eacute;t&eacute;', ' :', '</span>'));
if ($this->adresse=='')
$this->adresse=trim(@getTextInHtml($this->body, '<span class="libelle2">Adresse</span> <strong>:', '</strong>', '</td>'));
if ($this->tel=='')
$this->tel=trim(@getTextInHtml($this->body, '<td valign="top"><span class="libelle2">T&eacute;l', '</span>', '<br>'));
if ($this->fax=='')
$this->fax=trim(@getTextInHtml($this->body, '<span class="libelle2">Fax</span>', ' :', '<br>'));
if ($this->web=='')
$this->web=trim(@getTextInHtml($this->body, '<span class="libelle2">Site Web</span>', '<a href="', '" target="_blank">'));
if ($this->mail=='')
$this->mail=trim(@getTextInHtml($this->body, '<span class="libelle2">E-mail</span>', '<a href="mailto:', '">'));
if ($this->naf=='')
$this->naf=trim(@getTextInHtml($this->body, '<span class="libelle2">Code NAF</span>', ' :', '</td>'));
if(preg_match('/<td valign="top"><span class="libelle2">Capital social<\/span> : (\d*)(.*)<br>/isU', $this->body, $matches)
&& ($this->capitalMontant=='' || $this->capitalDevise=='')) {
$this->capitalMontant=trim($matches[1]);
$this->capitalDevise=trim($matches[2]);
}
if ($this->fj=='')
$this->fj=trim(@getTextInHtml($this->body, '<span class="libelle2">Forme juridique</span>', ' :', '<br>'));
if ($this->nationalite=='')
$this->nationalite=trim(@getTextInHtml($this->body, '<span class="libelle2">Nationalit&eacute;</span>', ' :', '</td>'));
if ($this->effectif=='')
$this->effectif=trim(@getTextInHtml($this->body, '<td valign="top"><span class="libelle2">Effectif</span>', ' :', '<br>'));
if ($this->activite=='')
$this->activite=trim(@getTextInHtml($this->body, '<span class="libelle2">Activit&eacute;</span>', ' :', '<br>'));
/** Actionnaires **/
$strTmp=trim(@getTextInHtml($this->body, 'ACTIONNAIRES<br>', '</div></h1>', '<h1>'));
if(preg_match_all('/<p><span class="libelle2">(.*)<\/span> - <span class="libelle2">Participation<\/span> : (.*) %<br>(.*)<\/p>/isU', $strTmp, $matches)) {
foreach ($matches[1] as $i=>$nom) {
$this->tabAct[$i]['nom']=trim($nom);
$this->tabAct[$i]['pct']=trim($matches[2][$i]);
$this->tabAct[$i]['rcs']=trim(str_replace('RCS : ','',strip_tags($matches[3][$i])));
}
}
/** Filiales **/
$strTmp=trim(@getTextInHtml($this->body, 'FILIALES<br>', '</div></h1>', '<h1>'));
if(preg_match_all('/<p><span class="libelle2">(.*)<\/span> - <span class="libelle2">Participation<\/span> :(.*)%<br>(.*)<\/p>/isU', $strTmp, $matches)) {
foreach ($matches[1] as $i=>$nom) {
$this->tabFil[$i]['nom']=trim($nom);
$this->tabFil[$i]['pct']=trim($matches[2][$i]);
$this->tabFil[$i]['rcs']=trim(str_replace('RCS :','',strip_tags($matches[3][$i])));
}
}
/** CA et Résultat **/
$strTmp=trim(@getTextInHtml($this->body, '<h1>PRINCIPAUX ELEMENTS FINANCIERS<br>', '</div></h1>', '</p>'));
if(preg_match('/<p><span class="libelle2">CA (.*)<\/span>(.*)<br>/isU', $strTmp, $matches)) {
$this->derExerciceAnnee=trim($matches[1]);
$this->derExerciceCA=trim(str_replace(':',' ', $matches[2]));
}
if(preg_match('/<span class="libelle2">R&eacute;sultat(.*)<\/span>(.*)$/isU', $strTmp, $matches)) {
$this->derExerciceResultat=trim(str_replace(':',' ', $matches[2]));
}
/*
$infoBilan=print_r($page, true);
$fp=fopen('./infobilan.html', 'w');
fwrite($fp, $infoBilan);
fclose($fp);
*/
}
$tabA=$this->getActionnaires($siren);
$tabP=$this->getParticipations($siren);
return array( 'actionnaires'=>$tabA,
'participations'=>$tabP);
}
}
?>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,6 @@
<?
class MOrias {
<?php
class MOrias
{
private $referer ='';
private $body = '';
private $header = '';
@ -9,21 +8,28 @@ class MOrias {
private $codeRetour = 0;
private $accesDist=true;
private $iDb;
public $enCache=false;
public $force=false;
public $annee=0;
public $erreur='';
function __construct($accesDist=true) {// $adresse, $cp, $ville, $pays='France') {
$this->accesDist=$accesDist;
$this->iDb=new WDb('sdv1');
function __construct($accesDist = true, $db = null)
{
$this->accesDist = $accesDist;
if ( $db === null ) {
$this->iDb = new WDB();
} else {
$this->iDb = $db;
}
}
public function getMaxOrias($annee=0) {
public function getMaxOrias($annee=0)
{
if ($annee*1>0 && $annee*1<100) {
$this->annee='20'.$annee;
$annee++;
$annee++;
$strWhere="(numOrias/1000000)<=$annee";
} elseif ($annee*1>1900 && $annee*1<9999) {
$this->annee=$annee;
@ -33,13 +39,14 @@ class MOrias {
$strWhere='1';
$this->annee=date('Y')*1;
}
$ret=$this->iDb->select('orias','MAX(numOrias) AS numOrias', $strWhere, false, MYSQL_ASSOC);
$ret=$this->iDb->select('sdv1.orias','MAX(numOrias) AS numOrias', $strWhere, false, MYSQL_ASSOC);
//die($strWhere);
return sprintf('%08d',$ret[0]['numOrias']);
}
public function getInfosOrias($siren, $numOrias=0) {
public function getInfosOrias($siren, $numOrias=0)
{
//die('numOrias 1:"'.$numOrias.'"');
if ($siren*1>1000)
$strWhere="siren=$siren";
@ -50,16 +57,16 @@ class MOrias {
// die($strWhere);
//die('numOrias 2:"'.$numOrias.'"');
} else return false;
/* echo "=================================================================================================".EOL;
echo "==== SELECT siren, id, nom, cp, ville, adresse, numOrias FROM orias WHERE $strWhere;".EOL;
echo "=================================================================================================".EOL;
*/
$ret=$this->iDb->select('orias','siren, id, nom, cp, ville, adresse, numOrias, numOriasAttribue', $strWhere, false, MYSQL_ASSOC);
$ret=$this->iDb->select('sdv1.orias','siren, id, nom, cp, ville, adresse, numOrias, numOriasAttribue', $strWhere, false, MYSQL_ASSOC);
if (!$this->force && count($ret)>0) {
$this->enCache=true;
$tabRet=$ret[0];//array();
$ret=$this->iDb->select('orias','categorie, cat, dateInscription, typeStatut, rcsVille, rcsCode, rcsSiren, contact, encaissement, nature, paysPresta, paysEtab',$strWhere, false, MYSQL_ASSOC);
$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;
//die('numOrias 3:"'.$numOrias.'"');
@ -81,7 +88,7 @@ class MOrias {
return false;
}
} else return false;
if ($numOrias>0) {
$url='http://www.orias.fr/orias/public/index.html';
$post=array('menu%3AiasSearchForm'=>'menu%3AiasSearchForm',
@ -90,7 +97,7 @@ class MOrias {
'menu%3AiasSearchForm%3AiasSearch'=>'menu%3AiasSearchForm%3AiasSearch',
);
} else {
// Recherche avec Siren
// 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'=>'',
@ -101,7 +108,7 @@ class MOrias {
'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';
$this->referer='http://www.orias.fr/orias/public/list.html';
}
randsleep(1,2);
$page=getUrl($url, $this->cookie, $post, $this->referer, false, '', '', 15);
@ -116,40 +123,39 @@ class MOrias {
$this->erreur='Numéro Orias inexistant';
// On enregistre ce numéro comme non attribué si < au dernier numéro attribué
if ($numOrias<$this->getMaxOrias())
$this->iDb->insert('orias', $tabInsert);
$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".EOL;
die(print_r($page));
die(print_r($page));
} /* else { */
// Liste contenant l'entreprise
$url='http://www.orias.fr/orias/public/list.html';
randsleep(1,2);
$page=getUrl($url, $this->cookie, '', $this->referer, false, '', '', 24);
$this->referer=$url;
$this->body=$page['body'];
if (preg_match('/<td>R\&eacute\;sultat\(s\) de votre recherche \:(?:.*)<strong>(.*)<(?:.*)Interm\&eacute\;diaire\(s\)/Uis',$this->body, $matches)) {
$nbInter=trim($matches[1])*1;
if ($nbInter==0) return false;
if ($nbInter>1) {
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMOrias::getInfosOrias sur $siren", "Plus de 1 intermédiaire recensé... Merci de gérer le cas !");
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]));
@ -162,7 +168,7 @@ class MOrias {
}
if (preg_match('/<td class="dr-table-cell rich-table-cell r.adresse " id="formResult\:intermediariesList\:(?:.*)\:j_id_id133">(.*)<\/td>/Uis',$this->body, $matches))
$tabRet['adresse']=html_entity_decode(trim($matches[1]));
$tabRet['actif']=1;
$tabRet['numOriasAttribue']=1;
if (preg_match('/<td class="dr-table-cell rich-table-cell r.immat " id="formResult\:intermediariesList\:(?:.*)\:j_id_id138">(?:.*|)(<span style="white-space\: no-wrap;">|Radi\&eacute\; le \:)(.*)(?:<\/span>|<\/td>)/Uis',$this->body, $matches)) {
@ -181,13 +187,13 @@ class MOrias {
$tabTmp=explode("<a href=\"#\" onclick=\"if(typeof jsfcljs == 'function'){jsfcljs(document.getElementById('formResult'),{'", $this->body);
// die($this->body);
foreach ($tabTmp as $i=>$strCat) {
if ($i==0) {
if (count($tabTmp)==1) {
$tabInsert=array_merge($tabRet, array('dateInsert'=>date('YmdHis')));
//print_r($tabInsert);
$this->iDb->insert('orias', $tabInsert);
$this->iDb->insert('sdv1.orias', $tabInsert);
}
$tabRet['categories']=array();
continue;
@ -196,13 +202,13 @@ class MOrias {
//echo "$i:$strCat";
//die();
//:formResult:intermediariesList:107501:j_id_id159:0:j_id_id166':'formResult:intermediariesList:107501:j_id_id159:0:j_id_id166','intermediaryIdParam':'107501','intermediaryRoleIdParam':'Mia'},'');}return false">
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];
//print_r($tabCat);
if ($i==1) { // Tout est dans la même page Html
// Construction du lien vers la fiche d'identité de l'entreprise
$url='http://www.orias.fr/orias/public/list.html';
@ -225,7 +231,7 @@ class MOrias {
$tmpCat=explode('class="dr-tbpnl-cntnt-pstn rich-tabpanel-content-position"', $page['body']);
//die(print_r($page,1));
}
if (preg_match('/<dd class="col3">Date d\'inscription \: <strong>(.*)<\/strong><\/dd>/Uis',$tmpCat[$i], $matches))
$tabCat['dateInscription']=/*Wdate::dateT('d/m/y', 'Y-m-d', */trim($matches[1]);//);
if (preg_match('/<td align="right"(?: |)>Statut \:<\/td>(.*)<\/strong>/Uis',$tmpCat[$i], $matches))
@ -235,7 +241,7 @@ class MOrias {
$tabCat['rcsCode']=trim(strtr(strip_tags($matches[2]), array(' '=>'','&nbsp;'=>'',chr(160)=>'',"\r"=>'',"\n"=>'')));
$tabCat['rcsSiren']=trim($matches[3]);
if ($siren==0) $tabRet['siren']=$tabCat['rcsSiren'];
}
}
/*<td align="right">Contact</td>
<td></td>
<td><strong> Fran&ccedil;ois Meunier
@ -256,26 +262,26 @@ class MOrias {
$tabCat['encaissement']=0;
else
$tabCat['encaissement']=1;
if (preg_match('/<span class="txt_ssTitre">(?:.*)Nature de l\'activit\&eacute\; d\'interm\&eacute\;diation(.*)<\/dd>/Uis',$tmpCat[$i], $matches))
$tabCat['nature']=html_entity_decode(trim(strip_tags($matches[1])));
if (preg_match('/<td width="50%" valign="top" align="left">\- Etats dans lesquels cet interm\&eacute\;diaire exerce en libre prestation de service(.*)<\/table>(.*)<\/tr>/Uis',$tmpCat[$i], $matches))
$tabCat['paysPresta']=trim(strip_tags($matches[1]));
if (preg_match('/<td width="222" align="left">\- Etats dans lesquels cet interm\&eacute\;diaire exerce en libert\&eacute\; d\'\&eacute\;tablissement(.*)<\/table>(.*)<\/tr>/Uis',$tmpCat[$i], $matches))
$tabCat['paysEtab']=trim(strip_tags($matches[1]));
$tabRet['categories'][]=$tabCat;
$tabInsert=$tabRet;
unset($tabInsert['categories']);
$tabInsert=array_merge($tabInsert, $tabCat, array('dateInsert'=>date('YmdHis')));
//print_r($tabInsert);
$this->iDb->insert('orias', $tabInsert);
$this->iDb->insert('sdv1.orias', $tabInsert);
//echo $tmpCat[$i];
}
}
}
return $tabRet;
}
}

View File

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

View File

@ -1,4 +1,4 @@
<?
<?php
class MQualibat {
@ -11,14 +11,14 @@ class MQualibat {
private $iDb;
private $iBodacc;
private $iInsee;
public $enCache=false;
public $force=false;
public $annee=0;
function __construct($accesDist=true) {// $adresse, $cp, $ville, $pays='France') {
$this->accesDist=$accesDist;
$this->iDb=new WDb('sdv1');
$this->iDb=new WDB();
$this->iBodacc=new MBodacc();
$this->$iInsee=new MInsee();
}
@ -28,24 +28,24 @@ class MQualibat {
if (isset($tabTmp[0]['fonction']) && $tabTmp[0]['fonction']>0)
return $tabTmp[0]['fonction'];
else {
if (preg_match("/directeur.{1,6}agence/i")) return 8;
elseif (preg_match("/directeur.{1,6}ETABLISSEMENT/i")) return 8;
elseif (preg_match("/directeur.{1,6}technique/i")) return 19;
elseif (preg_match("/chef.{1,8}agence/i")) return 38;
elseif (preg_match("/cadre.{1,8}Comptable/i")) return 55;
elseif (preg_match("/Charg.{1,6}affair/i")) return 60;
elseif (preg_match("/chef.{1,8}Atelier/i")) return 60;
elseif (preg_match("/(conducteur|chef).{1,9}travaux/i")) return 61;
elseif (preg_match("/directeur.{1,6}technique/i")) return 19;
elseif (preg_match("/resp.{1,16}technique/i")) return 49;
elseif (preg_match("/resp.{1,16}Expl/i")) return 37;
elseif (preg_match("/di.{1,16}Expl/i")) return 7;
elseif (preg_match("/Chef.{1,6}Ent/i")) {
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;
else die($tabTmp);
}
else return false;
else return false;
}
/*
@ -97,7 +97,7 @@ class MQualibat {
"1","ReprÉsentant SociÉtÉ PrÉsidente"
"1","Vice-président"
Gérer en fonction du code CJ
Gérer en fonction du code CJ
"128","Chef D'entreprise"
"2","Chef Ent."
"3","Chef Entr."
@ -110,27 +110,27 @@ Gérer en fonction du code CJ
"1","Président De Commission"
*/
}
public function getMaxQualibat() {
$ret=$this->iDb->select('qualibat','MAX(id) AS id', '1', false, MYSQL_ASSOC);
$ret=$this->iDb->select('sdv1.qualibat','MAX(id) AS id', '1', false, MYSQL_ASSOC);
return $ret[0]['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
$ret=$this->iDb->select('qualibat','id', '1 ORDER BY id ASC', false, MYSQL_ASSOC);
$ret=$this->iDb->select('sdv1.qualibat','id', '1 ORDER BY id ASC', false, MYSQL_ASSOC);
foreach ($ret as $i=>$res)
$tabQualibatBase[]=$res['id'];
return array_diff($tabQualibatCalc, $tabQualibatBase);
}
public function getInfosQualibat($siren, $idQualibat=0) {
if ($siren*1>1000)
$strWhere="siren=$siren";
@ -138,19 +138,19 @@ Gérer en fonction du code CJ
$strWhere="id=$idQualibat";
} else return false;
$ret=$this->iDb->select('qualibat','siren, actif, id, nom, adresse, cp, ville, tel, fax, email, web,
$ret=$this->iDb->select('sdv1.qualibat','siren, actif, id, nom, adresse, cp, ville, tel, fax, email, web,
eff, teff, ca, tca, libFJ, nace, dateFondation, dateDeb, dateFin, dateInsert', $strWhere, false, MYSQL_ASSOC);
if (!$this->force && count($ret)>0) {
$this->enCache=true;
$tabRet=$ret[0];//array();
// Ajout des qualifications
$ret=$this->iDb->select('qualibatqualif','code, periodQualif, niveauQualif, mentions, nomQualif, dateAttrib, dateEch', $strWhere, false, MYSQL_ASSOC);
$ret=$this->iDb->select('sdv1.qualibatqualif','code, periodQualif, niveauQualif, mentions, nomQualif, dateAttrib, dateEch', $strWhere, false, MYSQL_ASSOC);
foreach ($ret as $i=>$tabTmp)
$tabRet['qualifications'][]=$tabTmp;
// Ajout des dirigeants
$ret=$this->iDb->select('qualibatdir','civNomPrenom, civilite, nom, prenom, fonction', $strWhere, false, MYSQL_ASSOC);
$ret=$this->iDb->select('sdv1.qualibatdir','civNomPrenom, civilite, nom, prenom, fonction', $strWhere, false, MYSQL_ASSOC);
foreach ($ret as $i=>$tabTmp)
$tabRet['dirigeants'][]=$tabTmp;
} elseif ($this->accesDist==true) {
@ -168,14 +168,14 @@ Gérer en fonction du code CJ
$this->erreur='Numéro Qualibat inexistant';
// On enregistre ce numéro comme non attribué si < au dernier numéro attribué
if ($idQualibat<$this->getMaxQualibat())
$this->iDb->insert('qualibat', $tabInsert);
$this->iDb->insert('sdv1.qualibat', $tabInsert);
}
return false;
}
$body=$page['body'];
//die($body);
$tabRet['id']=$idQualibat;
if (preg_match('/<th>(?:.*)Raison sociale(?:.*)<\/th>(?:.*)<td>(.*)<\/td>/Uis',$body, $matches))
$tabRet['nom']=utf8_decode(trim(strip_tags($matches[1])));
@ -185,10 +185,10 @@ Gérer en fonction du code CJ
$tabRet['cp']=substr($adresse2,0,5);
$tabRet['ville']=utf8_decode(trim(substr($adresse2,5)));
}
if (preg_match('/<th>(?:.*)Téléphone(?:.*)<\/th>(?:.*)<td>(.*)<\/td>/Uis',$body, $matches))
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]));
@ -197,7 +197,7 @@ Gérer en fonction du code CJ
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]);
@ -209,22 +209,22 @@ Gérer en fonction du code CJ
$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']=utf8_decode(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']=Wdate::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']=utf8_decode(trim($matches[1]));
/** Qualifications ? **/
$qualifs='';
if (preg_match('/<table class="recherche_entreprise_detail">(?:.*)<th colspan="4">(?:.*)(Qualifications professionnelles|Certifications m..tier)(?:.*)<tbody>(.*)<\/table>/Uis',$body, $matches)) {
if (preg_match('/<table class="recherche_entreprise_detail">(?:.*)<th colspan="4">(?:.*)(Qualifications professionnelles|Certifications m..tier)(?:.*)<tbody>(.*)<\/table>/Uisu',$body, $matches)) {
$typeQualifs=trim(utf8_decode($matches[1]));
$qualifs=trim($matches[2]);
}
@ -233,13 +233,13 @@ Gérer en fonction du code CJ
$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=utf8_decode(trim($matches[2][$i]));
if (preg_match("/\(Tech?nicit. (.*)\)/Ui", $nomQualif, $matches2))
if (preg_match("/\(Tech?nicit. (.*)\)/Uiu", $nomQualif, $matches2))
$niveau=trim($matches2[1]);
else $niveau='';
$tabMentions=array();
@ -262,14 +262,14 @@ Gérer en fonction du code CJ
}
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]);
/* <tr>
<td>
Monsieur EPP Olivier
Monsieur EPP Olivier
</td>
<td>
Gérant
@ -291,26 +291,26 @@ Gérer en fonction du code CJ
'nom'=>strtoupper(trim(substr($strNom,$pDeb,65))),
'prenom'=>ucwords(strtolower(trim(substr($strNom,$pDeb+66)))),
'fonction'=>$libFonction,
'fonctionCode'=>$this->getCodeFctDirigeant($libFonction, $siren),
'fonctionCode'=>$this->getCodeFctDirigeant($libFonction, $siren),
);
}
//print_r($tabRet['dirigeants']);
//die();
}
/** Insertion de l'entreprise
**/
$tabInsert=array_merge($tabRet,
$tabInsert=array_merge($tabRet,
array( 'idQualibatAttribue'=>1,
'dateInsert'=>date('YmdHis'),
'dateDeb'=>@$tabDateAttrib[0],
'dateFin'=>@$tabDateFin[0]));
unset($tabInsert['qualifications']);
if (!$this->iDb->insert('qualibat', $tabInsert)) {
$this->iDb->update('qualibat', $tabInsert, "id=$idQualibat");
if (!$this->iDb->insert('sdv1.qualibat', $tabInsert)) {
$this->iDb->update('sdv1.qualibat', $tabInsert, "id=$idQualibat");
}
/** Insertion des qualifications
**/
if (isset($tabRet['qualifications']) && count($tabRet['qualifications'])>0)
@ -318,11 +318,11 @@ Gérer en fonction du code CJ
$tabInsert['id']=$idQualibat;
$tabInsert['siren']=$siren;
$tabInsert['dateInsert']=date('YmdHis');
if (!$this->iDb->insert('qualibatqualif', $tabInsert)) {
$this->iDb->update('qualibatqualif', $tabInsert, "id=$idQualibat AND code='".$tabInsert['code']."' AND periodQualif='".$tabInsert['periodQualif']."'");
if (!$this->iDb->insert('sdv1.qualibatqualif', $tabInsert)) {
$this->iDb->update('sdv1.qualibatqualif', $tabInsert, "id=$idQualibat AND code='".$tabInsert['code']."' AND periodQualif='".$tabInsert['periodQualif']."'");
}
}
/** Insertion des dirigeants
**/
if (isset($tabRet['dirigeants']) && count($tabRet['dirigeants'])>0)
@ -330,8 +330,8 @@ Gérer en fonction du code CJ
$tabInsert['id']=$idQualibat;
$tabInsert['siren']=$siren;
$tabInsert['dateInsert']=date('YmdHis');
if (!$this->iDb->insert('qualibatdir', $tabInsert)) {
$this->iDb->update('qualibatdir', $tabInsert, "id=$idQualibat AND civNomPrenom='".addslashes($tabInsert['civNomPrenom'])."' AND fonction='".addslashes($tabInsert['fonction'])."'");
if (!$this->iDb->insert('sdv1.qualibatdir', $tabInsert)) {
$this->iDb->update('sdv1.qualibatdir', $tabInsert, "id=$idQualibat AND civNomPrenom='".addslashes($tabInsert['civNomPrenom'])."' AND fonction='".addslashes($tabInsert['fonction'])."'");
}
unset($tabRet['dirigeants'][$i]['civNomPrenom']);
}

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
<?
<?php
global $tabOrt2Sd;
$tabOrt2Sd=array( '_130000001'=>'SIREN',
'_103000040'=>'CONSOLIDE',
@ -598,24 +598,24 @@ class MRncsFlux {
' <ort:_27 type="010">'.$prod['Num'].'</ort:_27>'. "\n". // Numéro de produit souhaité 1 2
' <ort:_28 type="010">'.$prod['Ver'].'</ort:_28>'. "\n". // Version du produit 3 2
' <ort:_31 type="010">'.$prod['Presta'].'</ort:_31>'. "\n". // Code prestation (vide pour QVIT)
' </ort:_1>'. "\n";
' </ort:_1>'. "\n";
if ($prod['Presta']==12004 || $prod['Presta']==12003) {
$req.='
<ort:_2 type="110">
<ort:_100 type="111">
<ort:_101 type="110">
<ort:_120000031 type="010">'.$prod['Presta'].'</ort:_120000031>
<ort:_100700010 type="010">FTP</ort:_100700010>
<ort:_120000031 type="010">'.$prod['Presta'].'</ort:_120000031>
<ort:_100700010 type="010">FTP</ort:_100700010>
<ort:_100701000 type="010">NTIF</ort:_100701000>
<ort:_120000015 type="010" />
<ort:_120000015 type="010" />
</ort:_101>
</ort:_100>
<ort:_200 type="111">
<ort:_210 type="110">
<ort:_130000001 type="010">'.$siren.'</ort:_130000001>
<ort:_103000402 type="010">'.$prod['CmdNom'].'</ort:_103000402>
<ort:_103000403 type="010">'.$prod['CmdPages'].'</ort:_103000403>
<ort:_190000025 type="010">'.$prod['CmdBilan'].'</ort:_190000025>
<ort:_130000001 type="010">'.$siren.'</ort:_130000001>
<ort:_103000402 type="010">'.$prod['CmdNom'].'</ort:_103000402>
<ort:_103000403 type="010">'.$prod['CmdPages'].'</ort:_103000403>
<ort:_190000025 type="010">'.$prod['CmdBilan'].'</ort:_190000025>
</ort:_210>
</ort:_200>
</ort:_2>'; //
@ -648,7 +648,7 @@ $params=md5(serialize($prod));
/*if ($prod['CmdNom']<>'' || $prod['CmdPages']<>'' || $prod['CmdBilan']<>'' || $prod['Millesime']<>'')
$strOption=*/
//AND params='$params'
$res=$this->iDb->select('rncs_requetes', 'dateRequete, strXml, codeErreur, libErreur', "siren=$siren AND params='$params' AND (type<>'QVIT' OR (type='QVIT' AND DATEDIFF(NOW(),dateRequete)<=1)) ORDER BY dateRequete DESC");
$res=$this->iDb->select('jo.rncs_requetes', 'dateRequete, strXml, codeErreur, libErreur', "siren=$siren AND params='$params' AND (type<>'QVIT' OR (type='QVIT' AND DATEDIFF(NOW(),dateRequete)<=1)) ORDER BY dateRequete DESC");
//type='".$prod['Type']."' AND presta ='".$prod['Presta']."' $strOption ORDER BY dateRequete DESC");
if (count($res)>0) {
$tabRes=$res[0];
@ -658,7 +658,7 @@ if (count($res)>0) {
$this->errMsgInpi=$tabRes['libErreur'];
$enCache=true;
//echo 'Une requête dans le cache <br/>';
//die();
//die();
} else {
//echo 'Pas de requête dans le cache <br/>';
//die();
@ -712,8 +712,8 @@ if (count($res)>0) {
'codeErreur' => $this->errNumInpi,
'libErreur' => $this->errMsgInpi,
);
if (!$this->iDb->insert('rncs_requetes', $tabInsert, true))
$this->iDb->update('rncs_requetes', $tabInsert, "siren=$siren AND params='$params'");
if (!$this->iDb->insert('jo.rncs_requetes', $tabInsert, true))
$this->iDb->update('jo.rncs_requetes', $tabInsert, "siren=$siren AND params='$params'");
}
}
@ -742,7 +742,7 @@ else {
$numProduit=$matches[2]; // 52
$verProduit=$matches[3]; // 1
$libProduit=$matches[4]; // Comptes sociaux
$typProduit=$matches[5]; // 2000 : Bilans sociaux
$typProduit=$matches[5]; // 2000 : Bilans sociaux
// 2001 : Bilans consolidés (70)
// 2002 : Bilans de banques (71)
// 2003 : Bilans d'assurances (72)
@ -762,7 +762,7 @@ else {
$numProduit=$matches[1]; // 52
$verProduit=$matches[2]; // 1
$libProduit=$matches[3]; // Comptes sociaux
$typProduit=$matches[4]; // 2000 : Bilans sociaux
$typProduit=$matches[4]; // 2000 : Bilans sociaux
$synProduit=$matches[5]; // 109104002 : Disponibilité synchrone
$asyProduit=$matches[6]; // 109104003 : Disponibilité asynchrone
$nbEtab=$matches[7]; // Nombre d'établissements recensés

View File

@ -1,4 +1,4 @@
<?
<?php
global $tabOrt2Sd;
$tabOrt2Sd=array( '_130000001'=>'SIREN',
'_103000040'=>'CONSOLIDE',
@ -575,24 +575,24 @@ class MRncsFlux {
' <ort:_27 type="010">'.$prod['Num'].'</ort:_27>'. "\n". // Numéro de produit souhaité 1 2
' <ort:_28 type="010">'.$prod['Ver'].'</ort:_28>'. "\n". // Version du produit 3 2
' <ort:_31 type="010">'.$prod['Presta'].'</ort:_31>'. "\n". // Code prestation (vide pour QVIT)
' </ort:_1>'. "\n";
' </ort:_1>'. "\n";
if ($prod['Presta']==12004 || $prod['Presta']==12003) {
$req.='
<ort:_2 type="110">
<ort:_100 type="111">
<ort:_101 type="110">
<ort:_120000031 type="010">'.$prod['Presta'].'</ort:_120000031>
<ort:_100700010 type="010">FTP</ort:_100700010>
<ort:_120000031 type="010">'.$prod['Presta'].'</ort:_120000031>
<ort:_100700010 type="010">FTP</ort:_100700010>
<ort:_100701000 type="010">NTIF</ort:_100701000>
<ort:_120000015 type="010" />
<ort:_120000015 type="010" />
</ort:_101>
</ort:_100>
<ort:_200 type="111">
<ort:_210 type="110">
<ort:_130000001 type="010">'.$siren.'</ort:_130000001>
<ort:_103000402 type="010">'.$prod['CmdNom'].'</ort:_103000402>
<ort:_103000403 type="010">'.$prod['CmdPages'].'</ort:_103000403>
<ort:_190000025 type="010">'.$prod['CmdBilan'].'</ort:_190000025>
<ort:_130000001 type="010">'.$siren.'</ort:_130000001>
<ort:_103000402 type="010">'.$prod['CmdNom'].'</ort:_103000402>
<ort:_103000403 type="010">'.$prod['CmdPages'].'</ort:_103000403>
<ort:_190000025 type="010">'.$prod['CmdBilan'].'</ort:_190000025>
</ort:_210>
</ort:_200>
</ort:_2>'; //
@ -635,7 +635,7 @@ if (count($res)>0) {
$this->errMsgInpi=$tabRes['libErreur'];
$enCache=true;
echo 'Une requête dans le cache <br/>';
//die();
//die();
} else {
echo 'Pas de requête dans le cache <br/>';
//die();
@ -680,7 +680,7 @@ if (count($res)>0) {
'codeErreur' => $this->errNumInpi,
'libErreur' => $this->errMsgInpi,
);
$this->iDb->insert('rncs_requetes', $tabInsert, true);
$this->iDb->insert('jo.rncs_requetes', $tabInsert, true);
}
if ($prod['Presta']==12004)
@ -708,7 +708,7 @@ else {
$numProduit=$matches[2]; // 52
$verProduit=$matches[3]; // 1
$libProduit=$matches[4]; // Comptes sociaux
$typProduit=$matches[5]; // 2000 : Bilans sociaux
$typProduit=$matches[5]; // 2000 : Bilans sociaux
// 2001 : Bilans consolidés (70)
// 2002 : Bilans de banques (71)
// 2003 : Bilans d'assurances (72)
@ -728,7 +728,7 @@ else {
$numProduit=$matches[1]; // 52
$verProduit=$matches[2]; // 1
$libProduit=$matches[3]; // Comptes sociaux
$typProduit=$matches[4]; // 2000 : Bilans sociaux
$typProduit=$matches[4]; // 2000 : Bilans sociaux
$synProduit=$matches[5]; // 109104002 : Disponibilité synchrone
$asyProduit=$matches[6]; // 109104003 : Disponibilité asynchrone
$nbEtab=$matches[7]; // Nombre d'établissements recensés

View File

@ -0,0 +1,715 @@
<?php
class MRnvp
{
protected $iDb;
protected $iInsee;
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',
);
function __construct() {
$this->iDb = new WDB();
$this->iInsee = new MInsee($this->iDb);
}
/**
* 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(trimAccent($adrL1)))));
$adrL[2]=$adrL2=trim(preg_replace('/\s+/',' ',preg_replace('/[^a-z\d ]/i', ' ', strtoupper(trimAccent($adrL2)))));
$adrL[3]=$adrL3=trim(preg_replace('/\s+/',' ',preg_replace('/[^a-z\d ]/i', ' ', strtoupper(trimAccent($adrL3)))));
$adrL[4]=$adrL4=trim(preg_replace('/\s+/',' ',preg_replace('/[^a-z\d ]/i', ' ', strtoupper(trimAccent($adrL4)))));
$adrL[5]=$adrL5=trim(preg_replace('/\s+/',' ',preg_replace('/[^a-z\d ]/i', ' ', strtoupper(trimAccent($adrL5)))));
$adrL[6]=$adrL6=trim(preg_replace('/\s+/',' ',preg_replace('/[^a-z\d ]/i', ' ', strtoupper(trimAccent($adrL6)))));
$adrL[7]=$adrL7=trim(preg_replace('/\s+/',' ',preg_replace('/[^a-z\d ]/i', ' ', strtoupper(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'].")".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 ($iRet['score']>17) break;
}
}
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'].")".EOL;
//echo '['.trim(preg_replace('/ (1ER|2EME|3EME|\d+)/', ' ',$iRet["libCom$norme"])) .'-v/s-'.trim(preg_replace('/ (1ER|2EME|3EME|\d+)/', ' ',$ville)).']'.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"
);
//return 'Plusieurs correspondances CP VILLE'.EOL;
}
}
}
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') !".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 !".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') !".EOL);
//die("Plusieurs correspondances Voies pour $adrL4 $adrL6 dans cette commune ('$strAdr56') !".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) {
/*foreach($tabMaxLen as $j) {
echo "La ligne n°$j fait ".$tabLen[$j]." caractères : '".$adrL[$j]."'".EOL;
}*/
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;
}
/** Retourne le tableau des abbréviations existantes par type d'abréviation
*/
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'];
}
}
}
//print_r($tabRet);die();
return $tabRet;
}
/** Normalise une raison sociale ou un nom
**/
function normaliseRS($nomLong, $taille=38, $debug=false)
{
$nomCourt=preg_replace('/[^A-Z0-9%@&\'\(\)\"\-\*\/\s\+]/','',trim(strtoupper($nomLong)));
$tabMots=split("[^[:alpha:]]+", $nomCourt);
$passage=0;
$this->nomTronque=0;
echo $nomCourt.EOL;
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".EOL;
if (strlen($nomCourt)<=$taille) break;
//print_r($tabMots);
// 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".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".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".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".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".EOL;
if (strlen($nomCourt)<=$taille) break;
$nomCourt=substr($nomCourt,0,$taille);
$this->nomTronque=1;
//die($nomCourt);
/** @todo A finir
Tronquer ou abréger dans cette ordre
- type de voie
- titres
- initiale du prénom
- supprimez les articles (mais pas les particules dans un nom propre)
- tronquer à 4 caractères les types de voie non normalisés
- tronquer les extensions de voie
- réduire le nom de la voie en supprimant les mots de la gauche vers la droite
Gérer les pluriels pour les voies, nom, titres, et formes juridiques
**/
$passage++;
}
return $nomCourt;
}
// Code Insee de la commune libCom32 Libellé de la commune (Ancienne norme 32) libCom38 Libellé
function getLibCommune($codeInsee, $norme=38) {
if ($norme<>32 && $norme<>38) {
return 'La norme doit être 32 ou 38 caractères (38 par défaut)'.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'];
}
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;
}
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);
// print_r($ret);
$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'].")".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'].")".EOL;
if ($debug) echo '['.trim(preg_replace('/ (1ER|2EME|3EME|\d+)/', ' ',$iRet["libCom$norme"])) .'-v/s-'.trim(preg_replace('/ (1ER|2EME|3EME|\d+)/', ' ',$libelleCommune)).']'.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'];
}
}
//die("Code commune de $libelleCommune ($depOuCp) = $codeCommune".EOL);
}
return $codeCommune;
}
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.asmx?wsdl');
$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_civ' => '',
//'pio_nom' => '',
//'pio_prenom' => '',
'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
/* 'po_tnp' => '',
'po_sex' => '',
'po_civlong' => '',
'po_cp' => '',
'po_ville' => '',
'po_insee' => '',
'po_cqtnp' => '',
'po_cqadrs' => '',
'po_risquerestru' => '',
'po_poidsmodif' => '',
'po_rejet' => '',
'po_etranger' => ''*/
);
while(1) {
try {
//$result = $client->Elfyweb_RNVP_Standard($array);
$result = $client->Elfyweb_RNVP_Expert_V50($array);
//print_r($result);
$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)),
/* [po_risquerestru] => 0
[po_poidsmodif] => 0
[po_rejet] =>
[po_etranger] =>*/
'Cp'=>$result->po_cp,
'Ville'=>$result->po_ville,
'Insee'=>$result->po_insee,
/*'CQadrs'=>$result->po_cqadrs,
'CQadrsLib'=>$this->tabAdrCQ[$result->po_cqadrs],
'CQAdrRnvp'=>$this->getLibQualiteAdresse76310($result->po_cqadrs, $result->rejet),*/
'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;
}
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;
}
function getAdresseRnvpSource($source, $source_id, $num=0)
{
$ret=$this->iDb->select(
'villes.rnvpSources',
'id, source, source_id, num, L1rnvp, L2rnvp, L3rnvp, L4rnvp, L5rnvp, L6rnvp, L7rnvp, Pays, dateInsert,
operateurRnvp, dateEnvoiRnvp, dateRetourRnvp, codeRetour, NumVoie, BisTer, TypeVoieCourt, TypeVoieLong, LibVoie,
Cp, Ville, Insee, CQadrs, CorrectionImportante, CorrectionDouteuse, HexaCle, CQL3, InseeGlobal, OldInsee,
IsInseeReconstitue, NumDept, IdHexavia, IdHexaposte, Iris_Rivoli, Iris_Ilot99, Iris_CodeIris, Iris_Canton,
Iris_Zus, Iris_Zfu, CqIris, dateUpdate',
"source=$source AND source_id=$source_id AND num=$num LIMIT 0,1",false, MYSQL_ASSOC);
$tabRet=$ret[0];
$tabRet['CQadrsLib']=$this->tabAdrCQ[$tabRet['CQadrs']];
$tabRet['CQAdrRnvp']=$this->getLibQualiteAdresse76310($tabRet['CQadrs'], $tabRet['CorrectionDouteuse']);
return $tabRet;
}
}
?>

View File

@ -1,25 +1,6 @@
<?php
ini_set('soap.wsdl_cache_enabled', 0);
class AmaSoapClient extends SoapClient {
function __doRequest($request, $location, $action, $version) {
/* $request = strtr($request, array('<ns1:'=>'<ama:',
'</ns1:'=>'</ama:',
// '<param0 xsi:type="xsd:string">'=>'',
'xmlns:ns1="http://www.amabis.com/ama.xsd"'=>'xmlns:ama="http://www.amabis.com/ama.xsd"',
// '</param0>'=>'',
// '&lt;'=>'<',
// '&gt;'=>'>',
)
);*/
return parent::__doRequest($request, $location, $action, $version);
}
}
class classMSigVille {
class classMSigVille
{
private $client;
private $url='http://sig.ville.gouv.fr/recherche-adresses-zus-zfu-quartiers-des-cucs';
@ -100,7 +81,7 @@ class classMSigVille {
$iDb=new WDB();
$adresse=addslashes(trim(preg_replace('/ +/',' ', "$adrNum $adrIndRep $adrTypeVoie $adrLibVoie")));
$ville=addslashes($ville);
$ret=$iDb->select( 'zonage', 'zus, zru, zfu, cucs', "address='$adresse' AND adr_cp='$cp' AND adr_ville='$ville'",false, MYSQL_ASSOC);
$ret=$iDb->select( 'jo.zonage', 'zus, zru, zfu, cucs', "address='$adresse' AND adr_cp='$cp' AND adr_ville='$ville'",false, MYSQL_ASSOC);
if (count($ret)>0) {
$zones=$ret[0];
$tabRep['ZUS']=$tabRep['ZFU']=$tabRep['ZRU']=$tabRep['CUCS']='NON';
@ -130,7 +111,7 @@ class classMSigVille {
try {
if (trim($raisonSociale)=='') $raisonSociale='TEST'; // Le RNVP ne fonctionne pas sans la Raison Sociale qui est la 1ère ligne d'adresse
$rep=$this->client->zonage( new SoapParam(strtr("$raisonSociale:$adresse:$cp:$ville",
'¿°ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ??',
'¿°ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ??',
' aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr'),'adresse'),
new SoapParam(':','separateur'),
new SoapParam('type=M','options')
@ -141,7 +122,7 @@ class classMSigVille {
/** Découpage des ZFU, CUCS etcs...
**/
$fp=fopen(LOG_PATH.'amabis.log', 'a');
$fp=fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s').' - '.implode("\n", $rep)."\n============================================================================\n");
fclose($fp);
@ -170,7 +151,7 @@ class classMSigVille {
'adrLibVoie'=>$adrLibVoie,
'rivoli'=>$codeRivoli,
);
$iDb->insert('zonage', $tabInsert);
$iDb->insert('jo.zonage', $tabInsert);
/** Autres Informations de la RNVP
**/
@ -179,7 +160,7 @@ class classMSigVille {
$tabZones=explode(',',$rep['objdesc']);
foreach ($tabZones as $zone) {
$tabTmp=explode('=',$zone);
if (trim($tabTmp[0])<>'')
if (trim($tabTmp[0])<>'')
$tabRepTmp[$tabTmp[0]]=$tabTmp[1];
}
if (!$debug) {
@ -199,14 +180,14 @@ class classMSigVille {
print_r($fault);
echo $this->client->__getLastRequest()."\n";
echo $this->client->__getLastResponse()."\n";
$fp=fopen(LOG_PATH.'amabis.log', 'a');
$fp=fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s').' - ERREUR SOAP : Requete = '.$this->client->__getLastRequest()."\n Reponse = ".$this->client->__getLastResponse()."\n============================================================================\n");
fclose($fp);
}
//return $tabRep;
}
$codeInsee=substr($codeRivoli,0,5);
$ret=$iDb->select( 'zonageInsee', 'typeZone, arreteDate, decretDate, decretNum, decretModifieDate, decretModifieNum, dateDebut, dateFin', "codeInsee='$codeInsee'",false, MYSQL_ASSOC);
$ret=$iDb->select( 'jo.zonageInsee', 'typeZone, arreteDate, decretDate, decretNum, decretModifieDate, decretModifieNum, dateDebut, dateFin', "codeInsee='$codeInsee'",false, MYSQL_ASSOC);
$tabRep['ZRR']=$tabRep['AFR']='NON';
foreach ($ret as $zones)
switch ($zones['typeZone']) {
@ -232,7 +213,7 @@ class classMSigVille {
$rep=$this->client->rechtel($query);
$fp=fopen(LOG_PATH.'amabis.log', 'a');
$fp=fopen(LOG_PATH.'/amabis.log', 'a');
fwrite($fp, date('d-m-Y H:i:s')." - $query - ".implode("\n", $rep)."\n============================================================================\n");
fwrite($fp, "Requête : ".$this->client->__getLastRequest()."\n");
fwrite($fp, "Réponse : ".$this->client->__getLastResponse()."\n");

View File

@ -1,22 +1,27 @@
<?
<?php
require_once 'framework/common/mysql.php';
require_once 'framework/common/curl.php';
require_once 'framework/common/strings.php';
class MTel {
class MTel
{
public $body = '';
public $header = '';
public $codeRetour = 0;
public $cookie='';
public $urlBase='http://www.pagespro.com/recherche.php';
public $url='';
public $referer='';
public $enCache=false;
private $accesDistant=false;
public $iDb;
public function __construct($accesDistant=false) {
public function __construct($accesDistant=false, $db=null)
{
$this->accesDistant=$accesDistant;
$this->accesDistant=false; // Accès bloqué par "pagespro"
if ($this->accesDistant) {
$this->url=$this->urlBase;
$page=getUrl($this->url,$this->cookie,'',$this->referer, false, '', '', 3);
@ -25,100 +30,123 @@ class MTel {
$this->body=$page['body'];
$this->codeRetour=$page['code'];
}
$this->iDb=new WDB('jo');
if ( $db === null ) {
$this->iDb = new WDB();
} else {
$this->iDb = $db;
}
}
/**
* @todo :
* 1. Faire une fonction qui récupère les Logos
* 2. Envoyer les logos par le WS
* 3. Permettre la recherche par Tel
*/
public function getTel($siret, $nic=0) {
/**
* 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
$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) {
/** Si le siren est de taille < à 9, on ajoute des 0 significatifs **/
switch (strlen($siren)) {
case 1: $siren='00000000'.$siren; break;
case 2: $siren='0000000'.$siren; break;
case 3: $siren='000000'.$siren; break;
case 4: $siren='00000'.$siren; break;
case 5: $siren='0000'.$siren; break;
case 6: $siren='000'.$siren; break;
case 7: $siren='00'.$siren; break;
case 8: $siren='0'.$siren; break;
}
$siren = str_pad($siren, 9, '0', STR_PAD_LEFT);
}
if (strlen($nic)>0) {
switch (strlen($nic)) {
case 1: $nic='0000'.$nic; break;
case 2: $nic='000'.$nic; break;
case 3: $nic='00'.$nic; break;
case 4: $nic='0'.$nic; break;
}
$nic = str_pad($nic, 5, '0', STR_PAD_LEFT);
}
$strNic='';
if ($nic*1>0) $strNic="AND (nic=$nic OR nic=0)";
$ret=$this->iDb->select('telephonie',
'siren,nic,dateProvPartenaire,typeTel,infoTel,telephone,actif,partenaire,dateInsert',
"siren=$siren $strNic", false, MYSQL_ASSOC);
if (count($ret)>0) {
$strActif='';
if ($actif==1) $strActif=" AND actif=1 ";
elseif($actif==0) $strActif=" AND actif=0 ";
$ret=$this->iDb->select(
'jo.telephonie',
'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',
"siren=$siren $strNic $strActif AND dateSuppr=0 ORDER BY typeTel ASC, nbConf DESC", false, MYSQL_ASSOC);
if (count($ret)>0)
{
$this->enCache=true;
foreach ($ret as $tabTel) {
foreach ($ret as $tabTel)
{
if ($tabTel['typeTel']=='an8' && $tabTel['infoTel']*1>0) {
$an8=$tabTel['infoTel']*1;
$retTmp=$this->iDb->select('tabAn8', 'libAn8', "codAn8='$an8'", false, MYSQL_ASSOC);
$retTmp=$this->iDb->select('jo.tabAn8', 'libAn8', "codAn8='$an8'", false, MYSQL_ASSOC);
$infoTel=ucfirst(strtolower($retTmp[0]['libAn8']));
} else
} else {
$infoTel=$tabTel['infoTel'];
$tabRet[]=array('siren'=>$siren,
'nic'=>$tabTel['nic'],
'typeTel'=>$tabTel['typeTel'],
'infoTel'=>$infoTel,
'telephone'=>$tabTel['telephone'],
'actif'=>$tabTel['actif'],
);
}
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;
}
}
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMTel::getTel($siret,$nic)", print_r($tabRet,true));
} elseif ($this->accesDistant) {
$this->enCache=false;
$tabPost=array( 'p_ACTION'=>'',
'p_ORDRE'=>'AfficheRes',
'a_PAGE'=>'1',
'a_TAG'=>'',
'a_OccRecherche'=>'',
'typeRecherche'=>'express',
'satellite'=>'siret',
'a_activ'=>'',
'a_rai_soc'=>'',
'a_naf'=>'',
'a_siren'=>$siret,
'a_tel'=>'',
'a_geo'=>'',
'typeTri'=>'',
'ordreTri'=>'',
'a_session'=>'',
);
}
elseif ($this->accesDistant)
{
$this->enCache=false;
$tabPost = array(
'p_ACTION'=>'',
'p_ORDRE'=>'AfficheRes',
'a_PAGE'=>'1',
'a_TAG'=>'',
'a_OccRecherche'=>'',
'typeRecherche'=>'express',
'satellite'=>'siret',
'a_activ'=>'',
'a_rai_soc'=>'',
'a_naf'=>'',
'a_siren'=>$siret,
'a_tel'=>'',
'a_geo'=>'',
'typeTri'=>'',
'ordreTri'=>'',
'a_session'=>'',
);
//$page=getUrl($this->url,$this->cookie,'',$this->referer, false, '', '', 3);
$page=getUrl($this->url,$this->cookie,$tabPost,$this->referer,false,'','',3);
$this->referer=$this->url;
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$nbResults=0;
if (preg_match('/<b class="total_responses_nr">(.*)réponses<\/b>/Uis', $this->body, $matches))
if (preg_match('/<b class="total_responses_nr">(.*)réponses<\/b>/Uisu', $this->body, $matches))
$nbResults=trim(strtr(strip_tags($matches[1]), array('&nbsp;'=>'','&ndash;'=>'')));
if ($nbResults>0) {
$tabResultsHtml=explode('<div class="results_part1">', $this->body);
for ($i=1; isset($tabResultsHtml[$i]);$i++) {
@ -126,93 +154,99 @@ class MTel {
$body=$tabResultsHtml[$i];
$res['nom']=trim(htm2txt(@getTextInHtml($body, '<div class="results_title">', '_title">', '</div>')));
$res['adresse']=trim(htm2txt(@getTextInHtml($body, '<div class="coordonnees">','<div>','<table id="t_coord_')));
$res['urlSite']=trim(htm2txt(@getTextInHtml($body, '<b class="siteweb">Site Web :</b>&nbsp;', "javascript:SiteURL('", "','")));
$res['urlMail']=trim(htm2txt(@getTextInHtml($body, '<b>E-mail :</b>', "&amp;mail=", "', ")));
$res['urlLogo']=trim(htm2txt(@getTextInHtml($body, '<div class="results_inset_logo">', '" src="', '" border="')));
$res['tefet']=trim(htm2txt(@getTextInHtml($body, '<b>Effectif établ : </b>','</b>','</div>')));
$res['tefet']=trim(htm2txt(@getTextInHtml($body, '<b>Effectif établ : </b>','</b>','</div>')));
$res['siret']=trim(htm2txt(@getTextInHtml($body, '<b>Siret : </b>','</b>','</div>')));
$res['nafet']=trim(htm2txt(strip_tags(@getTextInHtml($body, '<b>Code NAF : </b>','</b>','</div>'))));
$res['domaines']=trim(preg_replace('/ +/', ' ', preg_replace('/\r+|\n+|\s+/',' ',htm2txt(strip_tags(@getTextInHtml($body, '<div class="puce_domaine">','<strong>','</div>'))))));
if ($res['urlSite']<>'') {
$this->iDb->insert('telephonie', array( 'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'dateProvPartenaire'=>date('Ymd'),
'typeTel'=>'web',
'infoTel'=>$res['urlSite'],
'telephone'=>0,
'actif'=>1,
'partenaire'=>253,
)
);
$tabRet[]=array('siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'typeTel'=>'web',
'infoTel'=>$res['urlSite'],
'telephone'=>0,
);
$this->iDb->insert('jo.telephonie', array(
'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'dateProvPartenaire'=>date('Ymd'),
'typeTel'=>'web',
'infoTel'=>$res['urlSite'],
'telephone'=>0,
'actif'=>1,
'partenaire'=>253,
));
$tabRet[] = array(
'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'typeTel'=>'web',
'infoTel'=>$res['urlSite'],
'telephone'=>0,
);
}
if ($res['urlLogo']<>'') {
$this->iDb->insert('telephonie', array( 'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'dateProvPartenaire'=>date('Ymd'),
'typeTel'=>'logo',
'infoTel'=>$res['urlLogo'],
'telephone'=>0,
'actif'=>1,
'partenaire'=>253,
)
);
$tabRet[]=array('siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'typeTel'=>'logo',
'infoTel'=>$res['urlLogo'],
'telephone'=>0,
);
$this->iDb->insert('jo.telephonie', array(
'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'dateProvPartenaire'=>date('Ymd'),
'typeTel'=>'logo',
'infoTel'=>$res['urlLogo'],
'telephone'=>0,
'actif'=>1,
'partenaire'=>253,
));
$tabRet[] = array(
'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'typeTel'=>'logo',
'infoTel'=>$res['urlLogo'],
'telephone'=>0,
);
}
if ($res['domaines']<>'') {
$this->iDb->insert('telephonie', array( 'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'dateProvPartenaire'=>date('Ymd'),
'typeTel'=>'domaines',
'infoTel'=>$res['domaines'],
'telephone'=>0,
'actif'=>1,
'partenaire'=>253,
)
);
$tabRet[]=array('siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'typeTel'=>'domaines',
'infoTel'=>$res['domaines'],
'telephone'=>0,
);
$this->iDb->insert('jo.telephonie', array(
'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'dateProvPartenaire'=>date('Ymd'),
'typeTel'=>'domaines',
'infoTel'=>$res['domaines'],
'telephone'=>0,
'actif'=>1,
'partenaire'=>253,
));
$tabRet[]=array(
'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'typeTel'=>'domaines',
'infoTel'=>$res['domaines'],
'telephone'=>0,
);
}
if ($res['urlMail']<>'') {
$this->iDb->insert('telephonie', array( 'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'dateProvPartenaire'=>date('Ymd'),
'typeTel'=>'mail',
'infoTel'=>$res['urlMail'],
'telephone'=>0,
'actif'=>1,
'partenaire'=>253,
)
);
$tabRet[]=array('siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'typeTel'=>'mail',
'infoTel'=>$res['urlMail'],
'telephone'=>0,
);
$this->iDb->insert('jo.telephonie', array(
'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'dateProvPartenaire'=>date('Ymd'),
'typeTel'=>'mail',
'infoTel'=>$res['urlMail'],
'telephone'=>0,
'actif'=>1,
'partenaire'=>253,
));
$tabRet[]=array(
'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'typeTel'=>'mail',
'infoTel'=>$res['urlMail'],
'telephone'=>0,
);
}
if (preg_match_all('/<tr>(?:.*)<th>(?:.*)<span>(.*)(tél|fax)(?:.*)<\/span>(?:.*)<\/th>(?:.*)<td>(?:.*)<span>(.*)<\/span>(?:.*)<\/td>(?:.*)<\/tr>/Uis', $body, $matches)) {
foreach ($matches[2] as $j=>$tmp) {
if (preg_match_all('/<tr>(?:.*)<th>(?:.*)<span>(.*)(tél|fax)(?:.*)<\/span>(?:.*)<\/th>(?:.*)<td>(?:.*)<span>(.*)<\/span>(?:.*)<\/td>(?:.*)<\/tr>/Uis', $body, $matches))
{
foreach ($matches[2] as $j=>$tmp)
{
$lib=$tmp;
$precis=trim(strtr($matches[1][$j], array('-'=>' ')));
$num=trim(strtr($matches[3][$j],array('&nbsp;'=>'','<br />'=>'')));
@ -220,60 +254,43 @@ class MTel {
}
$tabTel=array_values($tabTel);
foreach ($tabTel as $tabT) {
$tabRet[]=array('siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'typeTel'=>trimAccent($tabT['telFax']),
'infoTel'=>$tabT['type'],
'telephone'=>$tabT['telNum'],
'actif'=>1,
);
$this->iDb->insert('telephonie', array( 'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'dateProvPartenaire'=>date('Ymd'),
'typeTel'=>trimAccent($tabT['telFax']),
'infoTel'=>$tabT['type'],
'telephone'=>$tabT['telNum'],
'actif'=>1,
'partenaire'=>253,
)
);
foreach ($tabTel as $tabT)
{
$tabRet[]=array(
'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'typeTel'=>trimAccent($tabT['telFax']),
'infoTel'=>$tabT['type'],
'telephone'=>$tabT['telNum'],
'actif'=>1,
);
$this->iDb->insert('jo.telephonie', array(
'siren'=>$siren,
'nic'=>substr($res['siret'],-5),
'dateProvPartenaire'=>date('Ymd'),
'typeTel'=>trimAccent($tabT['telFax']),
'infoTel'=>$tabT['type'],
'telephone'=>$tabT['telNum'],
'actif'=>1,
'partenaire'=>253,
));
}
}
}
} /*else {
//http://www.annuaire.com/uploads/504/284/504284159/logo.jpg
//http://www.annuaire.com/email/491314266/
$url="http://www.annuaire.com/societe/-$siren/";
//$page=getUrl($this->url,$this->cookie,'',$this->referer, false, '', '', 3);
$page=getUrl($url,'','','',false,'','',3);
if ($page['code']<>301) return false;
$url2=$page['header']['Location'];
$page=getUrl($url2,'','',$url,false,'','',3);
if (!preg_match('/<a href="http:\/\/www\.annuaire\.com\/inscription\/1\/\?companyid=(.*)&amp;go=next"/Uis', $page['body'], $matches)) {
print_r($page);
die($siren);
}
}*/
}
}
if ($last) {
$tabRet = array();
if ($tabLast != null && count($tabLast) > 0 ) {
foreach($tabLast as $typeTel=>$tabPriorite) {
ksort($tabPriorite);
$tabRet[]=current($tabPriorite);
}
}
}
return $tabRet;
}
function getOperateur($tel) {
/*http://www.arcep.fr/index.php?id=interactivenumeros
Données POST:
ctrl_flag[do_ctrl]
bloc[017543]
CMD[RESULTS_NUMEROTATION]
http://www.arcep.fr/index.php?id=interactivenumeros&CMD=DETAILS_SOC&uid=158757&bloc=017543&cHash=0c29e39859
http://www.arcep.fr/uploads/tx_gsavis/05-0233.pdf
*/
}
}
?>
}

View File

@ -1,107 +1,47 @@
<?php
//ini_set('soap.wsdl_cache_enabled', 1); // 0 en dév
class MTvaOld {
public $vatNumber=''; // Numéro de TVA retourné
public $vatDefined=false; // Le numéro de TVA est il validé ?
public $errnum=0; // Numéro de l'erreur en cas d'erreur
public $errmsg=''; // Message de l'erreur en cas d'erreur
class MTva
{
public $vatNumber = ''; // Numéro de TVA retourné
public $vatDefined = false; // Le numéro de TVA est il validé ?
public $errnum = 0; // Numéro de l'erreur en cas d'erreur
public $errmsg = ''; // Message de l'erreur en cas d'erreur
private $siren;
protected $iDb;
function __construct($siren, $accesDist=true) {
//$accesDist=false;
if ($accesDist==true) {
/*$fp=fopen('/var/www/log/infoVat.log', 'a');
fwrite($fp, "MTva->__construct pour $siren $accesDist\n");
fclose($fp);
*/
$this->siren=$siren;
$client = new SoapClient('http://ws1.scores-decisions.com/entreprise/vat.wsdl',
array( 'trace' => 1, 'soap_version' => SOAP_1_1,
'login' => 'TESTTVA', 'password' => 'TVATESTPW'));
try {
$O = $client->getCompanyVat($this->siren);
if ($O->error->errnum) {
//echo 'Erreur : '. $O->error->errmsg .' ('. $O->error->errnum .")\n";
//echo $client->__getLastResponse()."\n";
$this->errnum=$O->error->errnum;
$this->errmsg=$O->error->errmsg;
return false;
} else {
$val=$O->result;
$this->vatNumber=$val->vatNumber;
$this->vatDefined=$val->vatDefined;
}
} catch (SoapFault $fault) {
//echo $client->__getLastResponse()."\n";
//echo 'ERREUR SOAP :'.EOL;
//print_r($fault);
return false;
}
}
else {
$this->errnum=999;
$this->errmsg="Pas d'accès à la base TVA";
$this->vatNumber='';
$this->vatDefined=false;
public function __construct($siren, $accesDist=true, $db = null)
{
$sirenIn = $siren*1;
if ( $sirenIn<000001000 ) {
$this->vatNumber = 'FR00000000000';
$this->vatDefined = false;
return false;
}
}
}
if ( $db === null ) {
$this->iDb = new WDB();
} else {
$this->iDb = $db;
}
$siren = str_pad($siren, 9, '0', STR_PAD_LEFT);
class MTva {
public $vatNumber=''; // Numéro de TVA retourné
public $vatDefined=false; // Le numéro de TVA est il validé ?
public $errnum=0; // Numéro de l'erreur en cas d'erreur
public $errmsg=''; // Message de l'erreur en cas d'erreur
private $siren;
function __construct($siren, $accesDist=true) {
$sirenIn=$siren*1;
if ($sirenIn<000001000) {
/* $this->errnum=0;
$this->errmsg=$O->error->errmsg;
return false;
} else {
$val=$O->result;
$this->vatNumber=$val->vatNumber;
$this->vatDefined=$val->vatDefined;*/
$this->vatNumber='FR00000000000';
$this->vatDefined=false;
return false;
}elseif($sirenIn<000010000) $siren='00000'.$sirenIn;
elseif ($sirenIn<000100000) $siren='0000'.$sirenIn;
elseif ($sirenIn<001000000) $siren='000'.$sirenIn;
elseif ($sirenIn<010000000) $siren='00'.$sirenIn;
elseif ($sirenIn<100000000) $siren='0'.$sirenIn;
else $siren=''.$sirenIn;
$this->siren=$siren;
$this->siren = $siren;
$cleAlgo=$this->genereCleFr();
if ($cleAlgo<10) $cleAlgo='0'.$cleAlgo;
else $cleAlgo=''.$cleAlgo;
$tabRep=array();
if (!$this->valideSiren($siren) && substr($siren,0,4)<>'0000') {
$this->errnum=102;
$this->errmsg='Siren invalide';
return false;
}
$iDb=new WDB('sdv1');
$info=$iDb->select('siren_tva', "cle, DATE_FORMAT(dateMod,'%Y%m%d') as DateMAJ", "siren=$siren", false, MYSQL_ASSOC);
$info = $this->iDb->select('sdv1.siren_tva', "LPAD(cle,2,0) AS cle, DATE_FORMAT(dateMod,'%Y%m%d') as DateMAJ", "siren=$siren", false, MYSQL_ASSOC);
$tab=$info[0];
if (count($tab)>0) {
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMTva sur $siren en cache", print_r($tab, true));
if ( $tab['cle']<>NULL || ( $tab['cle']==NULL && $tab['DateMAJ']>=date('Ymd',mktime(0,0,0,date('m')-6,date('d'),date('Y'))) )) {
$cle=$tab['cle'];
if ($cle==NULL) { $attribue=false; $cle=$cleAlgo; }
@ -110,7 +50,6 @@ class MTva {
$this->vatDefined=$attribue;
return true;
}
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMTva sur $siren REVALIDATION", print_r($tab, true));
}
$cle=$cleAlgo;
$nbIndispo=0;
@ -121,10 +60,12 @@ class MTva {
'iso'=>'FR',
'vat'=>$cle.$siren,
'BtnSubmitVat'=>'Verify');
/* $postData=array( 'Lang'=>'FR',
'VAT'=>$cle.$siren,
'ISO'=>'FR',
'MS'=>'FR');*/
/*$postData=array(
* 'Lang'=>'FR',
'VAT'=>$cle.$siren,
'ISO'=>'FR',
'MS'=>'FR'
);*/
$tdeb = microtime_float();
// $url='http://ec.europa.eu/taxation_customs/vies/cgi-bin/viesquer';
// $referer='http://ec.europa.eu/taxation_customs/vies/fr/vieshome.htm';
@ -133,8 +74,6 @@ class MTva {
$page=getUrl($url, '', $postData, $referer, false, 'ec.europa.eu', '', 15);
$duree = round(microtime_float()-$tdeb, 3);
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMTva sur $siren en $duree", print_r($page, true));
if ($page['err_num']<>0) {
debugLog('W', 'TVA Erreur CURL n°'. $page['err_num'] .', '. $page['err_msg'] ." sur le Siren $siren, numéro de TVA = FR $cle $siren. Durée = $duree s !", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->vatNumber="FR$cle$siren";
@ -147,8 +86,8 @@ class MTva {
if (preg_match('/Yes, valid VAT number/i', $body)) {
$tabInsert=array('siren'=>$siren,'cle'=>$cle, 'duree'=>$duree);
$tabUpdate=array('cle'=>$cle, 'duree'=>$duree);
if (!$iDb->insert('siren_tva', $tabInsert))
if (!$iDb->update('siren_tva', $tabUpdate, "siren=$siren"))
if (!$this->iDb->insert('sdv1.siren_tva', $tabInsert))
if (!$this->iDb->update('sdv1.siren_tva', $tabUpdate, "siren=$siren"))
debugLog('W', "Siren $siren, numéro de TVA = FR $cle $siren, impossible de MAJ la clef ($duree s) - ERREUR MySql n°". mysql_errno() .' : '. mysql_error(), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
//echo date ('Y/m/d - H:i:s') ." - Ligne $k/$nbk, N°TVA FR $cle $siren validé .".$eol;
debugLog('I', "Siren $siren, numéro de TVA = FR $cle $siren ($duree s)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
@ -156,8 +95,7 @@ class MTva {
$this->vatDefined=true;
return true;
//return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>array('siren'=>$siren, 'vatNumber'=>"FR$cle$siren", 'vatDefined'=>true));
} elseif (strpos($body, 'Service non disponible')>0 ||
strpos($body, 'ponse trop long.')>0) {
} elseif (strpos($body, 'Service non disponible')>0 || strpos($body, 'ponse trop long.')>0) {
$nbIndispo++;
if ($nbIndispo<3) {
//echo date ('Y/m/d - H:i:s') .' - '.$eol;
@ -168,8 +106,8 @@ class MTva {
} else {
$tabInsert=array('siren'=>$siren,'cle'=>'NULL', 'duree'=>$duree);
$tabUpdate=array('cle'=>'NULL', 'duree'=>$duree);
if (!$iDb->insert('siren_tva', $tabInsert))
if (!$iDb->update('siren_tva', $tabUpdate, "siren=$siren"))
if (!$this->iDb->insert('sdv1.siren_tva', $tabInsert))
if (!$this->iDb->update('sdv1.siren_tva', $tabUpdate, "siren=$siren"))
debugLog('W', "Siren $siren, numéro de TVA = FR $cle $siren, impossible de MAJ la clef ($duree s) - ERREUR MySql n°". mysql_errno() .' : '. mysql_error(), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
debugLog('I', "Siren $siren, numéro de TVA = FR $cle $siren vérification non disponible ($duree s)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->vatNumber="FR$cle$siren";
@ -180,8 +118,8 @@ class MTva {
} else {
$tabInsert=array('siren'=>$siren,'cle'=>'NULL', 'duree'=>$duree);
$tabUpdate=array('cle'=>'NULL', 'duree'=>$duree);
if (!$iDb->insert('siren_tva', $tabInsert))
if (!$iDb->update('siren_tva', $tabUpdate, "siren=$siren"))
if (!$this->iDb->insert('sdv1.siren_tva', $tabInsert))
if (!$this->iDb->update('sdv1.siren_tva', $tabUpdate, "siren=$siren"))
debugLog('W', "Siren $siren, numéro de TVA = FR $cle $siren, impossible de MAJ la clef ($duree s) - ERREUR MySql n°". mysql_errno() .' : '. mysql_error(), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
debugLog('I', "Siren $siren, numéro de TVA = FR $cle $siren non attribué ($duree s)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->vatNumber="FR$cle$siren";
@ -324,6 +262,4 @@ class MTva {
}
return true;
}
}
?>
}

View File

@ -1,7 +1,7 @@
<?
class MSitesWeb {
private $whois_serveurs = array(
"ac" => "whois.nic.ac",
"al" => "whois.ripe.net",
@ -107,13 +107,13 @@ class MSitesWeb {
"ws" => "whois.nic.ws",
"yu" => "whois.ripe.net",
"za" => "whois.frd.ac.za");
private $iInsee;
private $iDb;
function __construct(/*$siren, $accesDist=true*/) {
$this->iInsee=new MInsee();
$this->iDb=new WDB('jo');
$this->iDb=new WDB();
}
/** L'adresse IP est elle valide ?
@ -128,7 +128,7 @@ class MSitesWeb {
if ($nb_valide==4) return true;
return false;
}
function getInfosSiteWeb($url) {
$tabRet=array('url'=>$url, 'url_valide'=>0);
// Est-ce une URL valide en paramètre ?
@ -216,7 +216,7 @@ class MSitesWeb {
}
return $tabRet;
}
function getInfosAfnic($siteWeb) {
$referer='http://www.afnic.fr/';
$url='http://www.afnic.fr/outils/whois/'.$siteWeb;
@ -233,11 +233,11 @@ Actif (consultez aussi le <b><a href="http://www.decideo.fr" class="ext" target=
$tmp=explode(' (', $tabRet['etat']);
$tabRet['etat']=$tmp[0];
}
if (preg_match('/<b>Date de création \: <\/b>(.*)<br>/Uis',$page['body'],$matches))
if (preg_match('/<b>Date de création \: <\/b>(.*)<br>/Uisu',$page['body'],$matches))
$tabRet['dateCrea']=$matches[1];
if (preg_match('/<b>Date anniversaire \: <\/b>(.*)<br>/Uis',$page['body'],$matches))
$tabRet['dateAnniv']=trim($matches[1]);
if (preg_match("/<span class=h1>Titulaire \: <\/span>(.*)<br><div style='clear\: both;'><\/div>/Uis",$page['body'],$matches)) {
$strTitu=trim($matches[1]);
if (preg_match("/<span class=bleuvif>(.*)<\/span><\/h2>/Uis",$strTitu,$matches))
@ -252,22 +252,22 @@ Actif (consultez aussi le <b><a href="http://www.decideo.fr" class="ext" target=
$tabRet['tituAdrLibVoie']=$tmp['libVoie'];
$tabRet['tituAdrComp']=$tmp['adrComp0'];
}
if (preg_match("/<b>Téléphone \: <\/b>(.*)<br>/Uis",$strTitu,$matches))
if (preg_match("/<b>Téléphone \: <\/b>(.*)<br>/Uisu",$strTitu,$matches))
$tabRet['tituTel']=trim($matches[1]);
if (preg_match('/<b>Courrier électronique \: <\/b> <a href="mailto:(.*)">/Uis',$strTitu,$matches))
if (preg_match('/<b>Courrier électronique \: <\/b> <a href="mailto:(.*)">/Uisu',$strTitu,$matches))
$tabRet['tituMel']=trim($matches[1]);
}
if(preg_match('/<li>Identifié grâce au numéro de SIREN <a href="(?:.*) target="_blank" class="ext">(.*)<\/a><\/li>/Uis', $page['body'], $matches))
if(preg_match('/<li>Identifié grâce au numéro de SIREN <a href="(?:.*) target="_blank" class="ext">(.*)<\/a><\/li>/Uisu', $page['body'], $matches))
$tabRet['siren']=html_entity_decode($matches[1]);
elseif (preg_match('/<li>Identifié grâce à la marque française \((.*)\) <\/li>/Uis', $page['body'], $matches))
elseif (preg_match('/<li>Identifié grâce à la marque française \((.*)\) <\/li>/Uisu', $page['body'], $matches))
$tabRet['marquefr']=html_entity_decode($matches[1]);
} else
return $page['code'];
return $tabRet;
}
function findSiteWeb($siren, $nomEntrep='') {
// Recherche BING
$appId = '56D6CBA671C986D3EA11B1B48F97507BC5A00D51';
@ -279,7 +279,7 @@ Actif (consultez aussi le <b><a href="http://www.decideo.fr" class="ext" target=
$tabSitesExclus=array('societe.com','bilans.net','gouv.fr','info-financiere.fr','bodacc.fr','manageo.fr','bilansgratuits.fr','lesechos.fr','google.fr');
$rs="$siren OR \"$siren2\" $rs2 -site:".implode(' -site:', $tabSitesExclus);
$query=stripslashes(urlencode($rs));
$tabSources=array( 'web'=>'Web page results',
@ -301,18 +301,18 @@ Actif (consultez aussi le <b><a href="http://www.decideo.fr" class="ext" target=
$tabJson=json_decode($json, true);
$tabJson=$tabJson['SearchResponse'];
$levMin=100;
$pctMin=0;
$urlLev=$urlPct='';
$urlapprox="http://www.$nomEntrep.fr/";
foreach ($tabJson['Web']['Results'] as $i=> $result) {
$title=utf8_decode($result['Title']); // SCORES & DECISIONS - Accueil
$desc=utf8_decode($result['Description']); // Scores et Décisions - Le nouvel acteur de l'information sur les entreprises et leurs dirigeants avec une approche innovante
$url=$result['Url']; // http://www3.scores-decisions.com/
$lev=@levenshtein ($urlapprox,$url);
if ($lev>0 && $lev<$levMin) {
$levMin=$lev;
@ -325,14 +325,14 @@ Actif (consultez aussi le <b><a href="http://www.decideo.fr" class="ext" target=
}
if (preg_match('/\.(.*\.fr)\//', $url, $matches2)) {
}
$info=parse_url($url);
$host=preg_replace('/\/$/','',$info['host']);
$ext=getFileExtension($host);
$domaine=getFileExtension(preg_replace("/\.$ext$/",'','.'.$host));
echo "RECHERCHE DE '$nomEntrep' ($siren) : Trouvé $domaine.$ext".EOL;
if ($ext=='fr') {
$rep=$this->iDb->select('sitesWeb', 'siren, web', "web=$url");
$rep=$this->iDb->select('jo.sitesWeb', 'siren, web', "web=$url");
if (@$rep[0]['siren']*1==0) {
$tabAfnic=$this->getInfosAfnic("$domaine.$ext");
$siren=$tabAfnic['siren']*1;
@ -340,16 +340,16 @@ Actif (consultez aussi le <b><a href="http://www.decideo.fr" class="ext" target=
$tabInsert=array('siren'=>$siren,
'web'=>$url,
'dateInsert'=>date('YmdHis'));
$this->iDb->insert('sitesWeb', $tabInsert);
$this->iDb->insert('jo.sitesWeb', $tabInsert);
}
}
}
if ($levMin<15 && $pctMin>44 && $urlLev==$urlPct) {
echo date('Y-m-d H:i:s') .' - '. $page['code'] . " - $rs - $i - $lev (Min=$levMin) - $pct (Min=$pctMin) - $urlLev - $urlPct - $url !!! RETURNED !!!".EOL;
return $urlLev;
}
}
/*
[0] => Array
@ -385,12 +385,12 @@ Actif (consultez aussi le <b><a href="http://www.decideo.fr" class="ext" target=
)*/
return false;
}
function whois($domaine) {
$parseur=explode(".", $domaine);
$hote=$this->whois_serveurs[strtolower($parseur[count($parseur)-1])];
$msg='';
if (empty($hote)) {
$msg="Extension du domaine '$domaine' inconnue";
} else {
@ -435,7 +435,7 @@ Actif (consultez aussi le <b><a href="http://www.decideo.fr" class="ext" target=
'whoisTxt2'=>$buf2);
}
}
/** Retourne l'extension d'un domaine ou du fichier !!! **/
@ -443,7 +443,7 @@ Actif (consultez aussi le <b><a href="http://www.decideo.fr" class="ext" target=
preg_match('/[^?]*/', $filepath, $matches);
$string = $matches[0];
$pattern = preg_split('/\./', $string, -1, PREG_SPLIT_OFFSET_CAPTURE);
// check if there is any extension
if(count($pattern) == 1)
return false;
@ -454,7 +454,7 @@ Actif (consultez aussi le <b><a href="http://www.decideo.fr" class="ext" target=
return $matches[0];
}
}
function ShowFileName($filepath)
{
preg_match('/[^?]*/', $filepath, $matches);
@ -468,8 +468,8 @@ Actif (consultez aussi le <b><a href="http://www.decideo.fr" class="ext" target=
#return the filename part
return $filename;
}
/********************************************************************************
* @proto (array) $page get_web_file( (string) $url[, (string) $user_agent ] )
@ -545,7 +545,7 @@ function get_http_error( $url )
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 0,
);
$ch = curl_init($url);
curl_setopt_array($ch, $options);
curl_exec($ch);
@ -768,5 +768,5 @@ function get_urls( $raw_page_content, $url )
}
return $urls;
}
?>

View File

@ -1,404 +0,0 @@
<?
define('HOST_INSEE', 'avis-situation-sirene.insee.fr');
define('SITE_INSEE', 'http://'. HOST_INSEE .'/');
define('HOST_PJ', 'www.pagesjaunes.fr');
define('SITE_PJ', 'http://'. HOST_PJ .'/');
define('SITE_SOCIETE', 'http://www.societe.com/');
include('/var/www/_includes/includes/insee.class.php');
//include('includes/normad.class.php');
include('/var/www/_includes/includes/fonctions.php');
/* v0.1 Extraction d'informations INSEE en ligne de commande.
Usage: <?=$argv[0]?> <extract type> <fileIn> <fileInFmt> <fileOut> <fileOutFmt>
Where <extract type> is :
id siren.tm.fr : Fiche d'identite INSEE (établissement+entreprise)
lst siren.tm.fr : Liste des etablissements du SIREN (+infos entreprise)
rncs societe.com : Informations du RNCS
pj pagesjaunes.fr : Données des pages jaunes
coface cofacerating.fr : Coface
Where <fileInFmt> is :
csv Fichier IN au format CSV (; ou ,) SIREN;NIC;REF
plat Fichier IN au format plat (blancs significatifs) SIREN_____NIC__REF______________
Where <fileOutFmt> is : csv / todo
Le fichier en entrée doit être au format <fileInFmt> et contenir le SIREN en première colonne.
*/
$insee=&new Insee();
function getInfosSirene($sirenLu, $nicLu='') {
$tabRet=array();
$invalide=false;
if (valideSiren($sirenLu)==false) {
$libelleErreur='SIREN invalide';
$invalide=true;
}
if ( $nicLu<>'' && valideSiren($sirenLu, $nicLu)==false) {
$libelleErreur='SIRET invalide';
$invalide=true;
}
if ($invalide==true)
{
$siret=$sirenLu.$nicLu;
$str=date('d/m/Y à H:i:s') .';'. $libelleErreur .';'. $siret .';;;;;;;;;;;;;;;;;;;;;;;';
$fp=fopen('/var/www/_includes/partenaires/insee/debug.csv', 'a');
fwrite($fp, $str."\r\n");
fclose($fp);
$num=$key+1;
flush();
} else { // La demande est valide on va à l'INSEE
/** Paramètre de requête "option" à l'insee :
** 1: Fiche du siège + Données entreprises
** 2: Tous les établissements de l'entreprise
** 3: Un établissement particulier
** 4: Département
**/
if ($nicLu<>'') $option=3;
else $option=1;
$libelleErreur='Erreur SCRIPT Inconnue';
$tabInfoEtab=array();
$tabInfoEntrep=array();
/** Etape de connexion au site de l'INSEE pour simuler correctement un utilisateur WEB
**/
$response1=getUrl(SITE_INSEE);
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'SIRENET_Script/Accueil/script_page_accueil.asp');
$response=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren');
$response=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren');
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_haut.asp?grille=siren&action=nouvelle', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren');
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren');
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_bas.asp?grille=siren&action=nouvelle', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren');
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_haut.asp?grille=siren&action=nouvelle', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle');
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_bas.asp?grille=siren&action=nouvelle', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle');
if ($nicLu=='') //Faire une boucle de recherche de tous les établissement et y inclure le reste du traitement
{
// Requête d'interrogation
$postData=array(
'siren'=>$sirenLu,
'option'=>2,
'nic'=>'',
'dep'=>'',
'listeDep'=>'');
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false', $response1["header"]["Set-Cookie"], $postData, SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle');
$action='nouveau';
$referer=SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false';
$nbRepTot=$pageCour=$nbTotPage=$nbRepParPage=$numEtab=0;
$tabInfoEtab=array();
while(true)
{
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/question.asp?action='.$action, $response1["header"]["Set-Cookie"], '', $referer);
if ($responseQ['code']==302)
{
//$libelleErreur='Erreur INSEE inconnue 1';
// Siren Invalide ou autre erreur non répertoriée !
$header=$responseQ['header'];
if (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur')
{
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false');
$responseErreur=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Erreur_principal.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur',true);
$pos=strpos($responseErreur['body'], '<td valign=top bgcolor="#FFCC33"><font face=Arial size=2><b>');
if ($pos>0){
$posFin=strpos($responseErreur['body'], '</b></font></td>', $pos+60);
$libelleErreur=trim(substr($responseErreur['body'], $pos+60, $posFin-($pos+60)));
} else
$libelleErreur='Erreur INSEE inconnue';
}
// On déroule les URLs d'appels liste des établissements
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false');
//sleep(1);
// Frames réponse niveau Etab
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste');
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste');
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste');
$responseListe=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Liste_principal.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste', true);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Liste_bas.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste');
$responseListe=$responseListe['body'];
$pos=strpos($responseListe, 'Nombre total de réponses&nbsp;:&nbsp;'."\r\n\t\t\t".'<font face="Arial" size="2"><b>');
if ($pos>0) {
$posFin=strpos($responseListe, '</b></font>', $pos+73);
$nbRepTot=trim(substr($responseListe, $pos+73, $posFin-($pos+73)));
}
$pos=strpos($responseListe, '&nbsp;-&nbsp;Affichage de la page&nbsp;'."\r\n\t\t\t".'<font face="Arial" size="2"><b>');
if ($pos>0) {
$posFin=strpos($responseListe, '&nbsp;-&nbsp;</b></font>', $pos+75);
$strPages=trim(substr($responseListe, $pos+75, $posFin-($pos+75)));
$tabPages=explode('&nbsp;/&nbsp;', $strPages);
$pageCour=$tabPages[0];
$nbTotPage=$tabPages[1];
}
$pos=strpos($responseListe, '&nbsp;-&nbsp;</b></font>'."\r\n\t\t\t".'<font face="Arial" size="2"><b>');
if ($pos>0) {
$posFin=strpos($responseListe, '</b></font>', $pos+60);
$nbRepParPage=trim(substr($responseListe, $pos+60, $posFin-($pos+60)));
}
/* TODO = Récupérer les infos étab + entrep pour chaque ligne du tableau !!!*
*/
if ($libelleErreur=='Erreur SCRIPT Inconnue')
$libelleErreur='';
for ($i=1;$i<11; $i++)
{
if ($numEtab==$nbRepTot)
break; // Il n'y a pas plus d'établissement à récupérer ! On sort...
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/question.asp?action=detail&numtableau='.$i, $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Liste_principal.asp');
if ($responseQ['code']==302)
{
// Siren Invalide ou autre erreur non répertoriée !
$header=$responseQ['header'];
if (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=siege&numtableau='.$i)
{
// On déroule les URLs d'appels fiche siège
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege&numtableau='.$i, $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false');
//sleep(1);
// Frames réponse niveau Etab
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege');
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege');
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege');
$responseEtab=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=siege&numtableau='.$i.'&origine=liste', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=siege&numtableau='.$i, true);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=siege&numtableau='.$i.'&origine=liste', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=siege&numtableau='.$i);
$responseEtab=$responseEtab['body'];
// Récupération de la fiche entreprise INSEE
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i, $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=siege&numtableau='.$i.'&origine=liste');
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i);
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i);
$responseEntreprise=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=entreprise&numtableau='.$i.'&origine=liste', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/Frame_Reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i, true);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=entreprise&numtableau='.$i.'&origine=liste', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/Frame_Reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i);
$responseEntreprise=$responseEntreprise['body'];
$tabInfoEntrep=getDataEntreprise($responseEntreprise);
}
elseif (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=etablissement&numtableau='.$i)
{
// On déroule les URLs d'appels établissement
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement&numtableau='.$i, $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false');
//sleep(1);
// Frames réponse niveau Etab
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement');
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement');
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement');
$responseEtab=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=etablissement&numtableau='.$i.'&origine=liste', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=etablissement&numtableau='.$i, true);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=etablissement&numtableau='.$i.'&origine=liste', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=etablissement&numtableau='.$i);
$responseEtab=$responseEtab['body'];
}
$tabInfoEtab=getDataEtablissement($responseEtab);
$tabRet[]=array_merge($tabInfoEtab, $tabInfoEntrep);
if ($libelleErreur<>'' && $tabInfoEtab['siret'] =='') $siret=$sirenLu . $nicLu;
else $siret=$tabInfoEtab['siret'];
$str= date('d/m/Y à H:i:s') .';'.
$libelleErreur .';'.
// Siège
$siret .';'.
$tabInfoEtab['active'] .';'.
$tabInfoEtab['dateAbsActivite'] .';'.
$tabInfoEtab['typeEtablissement'] .';'.
$tabInfoEtab['dateMAJ'] .';'.
$tabInfoEtab['dateCreation'] .';'.
$tabInfoEtab['raisonSociale'] .';'.
$tabInfoEtab['Enseigne'] .';'.
$tabInfoEtab['NafCode'] .';'.
$tabInfoEtab['NafLib'] .';'.
$tabInfoEtab['AdresseLigne1'] .';'.
$tabInfoEtab['AdresseLigne2'] .';'.
$tabInfoEtab['AdresseLigne3'] .';'.
$tabInfoEtab['etatJuridique'] .';'.
$tabInfoEtab['dateEtatJuridique'] .';'.
// Entreprise
$tabInfoEntrep['dateCreationEntrep'] .';'.
$tabInfoEntrep['raisonSocialeEntrep'] .';'.
$tabInfoEntrep['sigle'] .';'.
$tabInfoEntrep['NafCodeEntrep'] .';'.
$tabInfoEntrep['NafLibEntrep'] .';'.
$tabInfoEntrep['FJCodeEntrep'] .';'.
$tabInfoEntrep['FJLibEntrep'] .';'.
$tabInfoEntrep['nbEtabActifs'] .';';
$fp=fopen('/var/www/_includes/partenaires/insee/debug.csv', 'a');
fwrite($fp, $str."\r\n");
fclose($fp);
$numEtab++;
$num=$key+1;
$typeEtablissement=$tabInfoEtab['typeEtablissement'];
// echo "Question $num/$nbLignes : Demande=$sirenLu$nicLu Etablissement $numEtab/$nbRepTot $typeEtablissement=$siret $libelleErreur\r\n";
flush();
sleep(1);
}//end for
}//end if
if ($pageCour==$nbTotPage) {
// On sort de la boucle de passage à la page de liste suivante car il n'y a plus d'autres pages
break;
} else {
$action='listeplus';
$referer=SITE_INSEE .'REPERTOIRE/Reponse/Liste_principal.asp';
}
}
} //Fin While
// die('Boucle');
} /* Fin de la boucle option 'lst' */ else
{
// Requête d'interrogation
$postData=array('siren'=>$sirenLu,
'option'=>$option,
'nic'=>$nicLu,
'dep'=>'',
'listeDep'=>'');
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false', $response1["header"]["Set-Cookie"], $postData, SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle');
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/question.asp?action=nouveau', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false');
if ($responseQ['code']==302)
{
//$libelleErreur='Erreur INSEE inconnue 1';
// Siren Invalide ou autre erreur non répertoriée !
$header=$responseQ['header'];
if (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur')
{
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false');
$responseErreur=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Erreur_principal.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur',true);
$pos=strpos($responseErreur['body'], '<td valign=top bgcolor="#FFCC33"><font face=Arial size=2><b>');
if ($pos>0){
$posFin=strpos($responseErreur['body'], '</b></font></td>', $pos+60);
$libelleErreur=trim(substr($responseErreur['body'], $pos+60, $posFin-($pos+60)));
} else
$libelleErreur='Erreur INSEE inconnue';
}
else
{ if (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege')
// L'établissement demandé est un siège !
$option=1;
if ($option==3)
{
// On déroule les URLs d'appels établissement
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false');
//sleep(1);
// Frames réponse niveau Etab
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement');
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement');
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement');
$responseEtab=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=etablissement', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement', true);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=etablissement', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement');
$responseEtab=$responseEtab['body'];
// On recherche si on est bien sur un fiche établissement
$pos=strpos($responseEtab, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche Etablissement</B>');
if ($pos<1)
$libelleErreur='Erreur SCRIPT Fiche Etablissement non trouvée';
else
$libelleErreur='';
$responseSiege=$responseEtab;
}
else
{
// On déroule les URLs d'appels Sièges
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false');
//sleep(1);
// Frames réponse niveau sièges
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege');
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege');
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege');
$responseSiege=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=siege', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege', true);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=siege', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege');
$responseSiege=$responseSiege['body'];//strip_tags(html_entity_decode(), '<td>');
// On recherche si on est bien sur un fiche siège
$pos=strpos($responseSiege, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche siège</B>');
if ($pos<1)
$libelleErreur='Erreur SCRIPT Fiche Siège non trouvée';
else
$libelleErreur='';
}
// Niveau entreprise
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=siege');
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail');
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=entreprise');
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail');
$responseEntreprise=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=entreprise', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail', true);
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=entreprise', $response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail');
$responseEntreprise=$responseEntreprise['body'];
$pos=strpos($responseEntreprise, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche Entreprise</B>');
if ($pos<1) {
$libelleErreur='Erreur SCRIPT Fiche Entreprise non trouvée';
}
/** Recherche des données établissement
**/
$tabInfoEtab=getDataEtablissement($responseSiege);
/** Recherche des données entreprise
**/
$tabInfoEntrep=getDataEntreprise($responseEntreprise);
}
}
if ($libelleErreur<>'' && $tabInfoEtab['siret'] =='') $siret=$sirenLu . $nicLu;
else $siret=$tabInfoEtab['siret'];
$str= date('d/m/Y à H:i:s') .';'.
$libelleErreur .';'.
// Siège
$siret .';'.
$tabInfoEtab['active'] .';'.
$tabInfoEtab['dateAbsActivite'] .';'.
$tabInfoEtab['typeEtablissement'] .';'.
$tabInfoEtab['dateMAJ'] .';'.
$tabInfoEtab['dateCreation'] .';'.
$tabInfoEtab['raisonSociale'] .';'.
$tabInfoEtab['Enseigne'] .';'.
$tabInfoEtab['NafCode'] .';'.
$tabInfoEtab['NafLib'] .';'.
$tabInfoEtab['AdresseLigne1'] .';'.
$tabInfoEtab['AdresseLigne2'] .';'.
$tabInfoEtab['AdresseLigne3'] .';'.
$tabInfoEtab['etatJuridique'] .';'.
$tabInfoEtab['dateEtatJuridique'] .';'.
// Entreprise
$tabInfoEntrep['dateCreationEntrep'] .';'.
$tabInfoEntrep['raisonSocialeEntrep'] .';'.
$tabInfoEntrep['sigle'] .';'.
$tabInfoEntrep['NafCodeEntrep'] .';'.
$tabInfoEntrep['NafLibEntrep'] .';'.
$tabInfoEntrep['FJCodeEntrep'] .';'.
$tabInfoEntrep['FJLibEntrep'] .';'.
$tabInfoEntrep['nbEtabActifs'] .';'.
//echo $str.'<br/>';
$fp=fopen('/var/www/_includes/partenaires/insee/debug.csv', 'a');
fwrite($fp, $str."\r\n");
fclose($fp);
$num=$key+1;
$typeEtablissement=$tabInfoEtab['typeEtablissement'];
// echo "Ligne $num/$nbLignes : Question=$sirenLu$nicLu Retour $typeEtablissement=$siret $libelleErreur (PJ=$nbPJ)\r\n";
//echo $str."<br/>";
flush();
$tabRet=array(0=>array_merge($tabInfoEntrep, $tabInfoEtab));
}
}
return $tabRet;
}
?>

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

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