diff --git a/module/forms/extraction/extraction_extraction_extraction.js b/module/forms/extraction/extraction_extraction_extraction.js
index 2589e36082a4f0a4e83c27a9229e84018294ecc8..63009cb49219f78083750e264acbee437bfece67 100755
--- a/module/forms/extraction/extraction_extraction_extraction.js
+++ b/module/forms/extraction/extraction_extraction_extraction.js
@@ -161,7 +161,7 @@ var constructor_form = function (scope, s_url) {
                 //console.log(aNodes);
                 //layers_9_1_treeview
                 var oTreeview = $("#layers_9_1_treeview")["treeview"](true);
-                //$("layers_9_1_treeview")["treeview"]({"data":aNodes});
+                $("layers_9_1_treeview")["treeview"]({"data":aNodes});
                 //On recréer un arbre
                 oTreeview["init"]({"data": aNodes,
                     "onNodeChecked": oTreeview.options.onNodeChecked,
diff --git a/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js b/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js
index b0b587e3d9efe94d43508b605c639499751b96ac..4c00e00a7614a9773a887984e2d98b8b6723bf5e 100755
--- a/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js
+++ b/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js
@@ -129,6 +129,7 @@ var constructor_form = function (scope, s_url) {
         var aSelectedNode = $("#Element_0_2_1_treeview")["treeview"]('getSelected');
         var sFileName = aSelectedNode[0]["text"];
         var aNodeParent = $("#Element_0_2_1_treeview")["treeview"]('getNode', aSelectedNode[0]["parentId"]);
+        
         if (aSelectedNode[0]["parentId"] == "")
         {
             if (sFileName != "")
diff --git a/module/templates/depositDirectoryTpl.html b/module/templates/depositDirectoryTpl.html
deleted file mode 100755
index 14d9fd0cb85452098669a5ff971e9109af652e63..0000000000000000000000000000000000000000
--- a/module/templates/depositDirectoryTpl.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<div data-app-deposit-directory="" id="deposit-directory" class="row no-bs-row-margin deposit-directory">
-        <div class="col-xs-12 no_bs_padding">
-                <!-- Titre --> 
-                <div id="deposit_directory_title_container" class="row">
-                        <div class="col-xs-12 deposit-directory-title">Dépôt {{oFormValues[sFormDefinitionName].name}}</div>
-                </div>
-                <!-- Treeview --> 
-                <div id="deposit-directory-treeview-container" class="row deposit-directory-treeview-container">
-                        <div data-app-deposit-directory-treeview="" class="col-xs-12 deposit-directory-treeview"></div>
-                </div>
-                <!-- Formulaire (upload) --> 
-                <div id="deposit_directory_form_container" class="row deposit-directory-upload-form-container">
-                        <div data-app-deposit-directory-form="" class="col-xs-{{oFormDefinition[sFormDefinitionName].nb_cols}}"></div>
-                </div>
-        </div>
-</div>
\ No newline at end of file
diff --git a/web_service/conf/properties.inc b/web_service/conf/properties.inc
index 28e8fdf63e20ed5b9def596cb7b972f2c634e31d..ccb5266aad9211923e07fe6716771150d0c400ae 100755
--- a/web_service/conf/properties.inc
+++ b/web_service/conf/properties.inc
@@ -1,3 +1,5 @@
 <?php
 	$properties["schema_extraction"] = 's_extraction';
+        $properties['color_mutualized'] = 'green';
+        $properties['color_no_mutualized'] = 'red';
 ?>
\ No newline at end of file
diff --git a/web_service/sql/sqlQueries.xml b/web_service/sql/sqlQueries.xml
index d9cd6a48556574fe6918e803830f47e37b433337..829255869f7ef6fa448b16739f5e7bf6b79f3c2a 100755
--- a/web_service/sql/sqlQueries.xml
+++ b/web_service/sql/sqlQueries.xml
@@ -7,23 +7,24 @@
 			<version>2017-01-00</version>
 			<code>
 				<![CDATA[
-					--Partie pour le module extraction version 2017-01-00 généré par WAB le 22/05/2018 à 09:09:32
+					select s_vitis.create_role_if_not_exists('extraction_user', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION');
+					select s_vitis.create_role_if_not_exists('extraction_admin', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION');
+					INSERT INTO s_vitis.privileges(rolname, description) VALUES ('extraction_user', 'utilisateur extraction');
+					INSERT INTO s_vitis.privileges(rolname, description) VALUES ('extraction_admin', 'administrateur extraction');
 					--Partie pour le module extraction version 2017-01-01 généré par WAB le 18/07/2017 à 09:52:00
 					CREATE SCHEMA s_extraction AUTHORIZATION u_vitis;
 					GRANT ALL ON SCHEMA s_extraction TO u_vitis;
+					
 					GRANT USAGE ON SCHEMA s_extraction TO extraction_admin;
 					GRANT USAGE ON SCHEMA s_extraction TO extraction_user;
+					
 					CREATE SEQUENCE s_extraction.bo_id_extraction_seq START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
 					ALTER TABLE s_extraction.bo_id_extraction_seq OWNER TO u_vitis;
 					GRANT ALL ON SEQUENCE s_extraction.bo_id_extraction_seq TO u_vitis;
 					GRANT ALL ON SEQUENCE s_extraction.bo_id_extraction_seq TO extraction_admin;
 					GRANT ALL ON SEQUENCE s_extraction.bo_id_extraction_seq TO extraction_user;
-					CREATE SEQUENCE s_extraction.seq_common START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
-					ALTER TABLE s_extraction.seq_common OWNER TO u_vitis;
-					GRANT ALL ON SEQUENCE s_extraction.seq_common TO u_vitis;
-					GRANT ALL ON SEQUENCE s_extraction.seq_common TO extraction_admin;
-					GRANT ALL ON SEQUENCE s_extraction.seq_common TO extraction_user;		
-					CREATE TABLE s_extraction.extraction (bo_id integer NOT NULL, status character varying(100), history text, creation_date date DEFAULT ('now'::text)::date, requestor character varying(50) DEFAULT "current_user"(), ae character varying(255), extent text, company character varying(50), layers text, vector_format_id character varying(100), coordsys_id character varying(50), note text, note_line text, raster_format_id character varying(100), extent_method character varying(50), signed boolean, accepted_by_cpa boolean, identification_complete boolean, definition_complete boolean, comment text, priority_id integer, id_com text, id_conseil text, email varchar(100),status_id integer);
+					
+					CREATE TABLE s_extraction.extraction (bo_id integer NOT NULL, status character varying(100), history text, creation_date date DEFAULT ('now'::text)::date, requestor character varying(50) DEFAULT "current_user"(), ae character varying(255), extent text, company character varying(50), layers text, vector_format_id character varying(100), coordsys_id character varying(50), note text, note_line text, raster_format_id character varying(100), extent_method character varying(50), signed boolean, accepted_by_cpa boolean, identification_complete boolean, definition_complete boolean, comment text, priority_id integer, id_com text, id_conseil text);
 					ALTER TABLE s_extraction.extraction OWNER TO u_vitis;
 					CREATE TABLE s_extraction.rt_coordsys (coordsys_id character varying(50) NOT NULL, coordsys character varying(100));
 					ALTER TABLE s_extraction.rt_coordsys OWNER TO u_vitis;
@@ -33,21 +34,19 @@
 					ALTER TABLE s_extraction.rt_format OWNER TO u_vitis;
 					CREATE TABLE s_extraction.rt_layer (layer_id character varying(100) NOT NULL, layer character varying(255), category character varying(50), restriction character varying(50), unused_attributes text);
 					ALTER TABLE s_extraction.rt_layer OWNER TO u_vitis;
-					CREATE TABLE s_extraction.version(version character varying(10) NOT NULL, build integer NOT NULL, date timestamp with time zone NOT NULL, active boolean NOT NULL, CONSTRAINT version_pkey PRIMARY KEY (version));
-					ALTER TABLE s_extraction.version OWNER TO u_vitis;
-					INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:27572', 'Lambert 2 étendu');
-					INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('Lambert93', 'Lambert 93');
-					INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:3944', 'Lambert 93 CC44');
-					INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:4326', 'WGS 84');
-					INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('ECW', 'Er Mapper ECW', true, false);
-					INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('ACAD', 'Autocad DWG', false, true);
-					INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('SHAPE', 'Esri Shapefile', false, true);
-					INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('MAPINFO', 'Mapinfo Tab', false, true);
-					INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('MIF', 'Mapinfo MIF/MID', false, true);
-					INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('GML', 'GML', false, true);
-					INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('OGCKML', 'KML', false, true);
-					INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('GEOJSON', 'GEOJSON', false, true);
-					INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('TIFF', 'TIFF', true, false);
+					INSERT INTO s_extraction. rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:27572', 'Lambert 2 étendu');
+					INSERT INTO s_extraction. rt_coordsys (coordsys_id, coordsys) VALUES ('Lambert93', 'Lambert 93');
+					INSERT INTO s_extraction. rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:3944', 'Lambert 93 CC44');
+					INSERT INTO s_extraction. rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:4326', 'WGS 84');
+					INSERT INTO s_extraction. rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('ECW', 'Er Mapper ECW', true, false);
+					INSERT INTO s_extraction. rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('ACAD', 'Autocad DWG', false, true);
+					INSERT INTO s_extraction. rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('SHAPE', 'Esri Shapefile', false, true);
+					INSERT INTO s_extraction. rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('MAPINFO', 'Mapinfo Tab', false, true);
+					INSERT INTO s_extraction. rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('MIF', 'Mapinfo MIF/MID', false, true);
+					INSERT INTO s_extraction. rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('GML', 'GML', false, true);
+					INSERT INTO s_extraction. rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('OGCKML', 'KML', false, true);
+					INSERT INTO s_extraction. rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('GEOJSON', 'GEOJSON', false, true);
+					INSERT INTO s_extraction. rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('TIFF', 'TIFF', true, false);
 					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'id_geofla', 'fme_real64', 'fme_no_geom;fme_point;fme_line;fme_area;fme_surface;fme_collection', 1);
 					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'code_arr', 'fme_varchar(1)', '', 2);
 					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'code_chf', 'fme_varchar(3)', '', 3);
@@ -88,6 +87,7 @@
 					INSERT INTO s_extraction.rt_layer (layer_id, layer, category, restriction, unused_attributes) VALUES ('geofla.arrondissement', 'Arrondissement', 'Arrondissement', 'interne', 'x_centroid;y_centroid');
 					INSERT INTO s_extraction.rt_layer (layer_id, layer, category, restriction, unused_attributes) VALUES ('geofla.canton', 'Canton', 'Arrondissement', 'restreinit', 'x_centroid;y_centroid');
 					INSERT INTO s_extraction.rt_layer (layer_id, layer, category, restriction, unused_attributes) VALUES ('geofla.commune', 'Commune', 'Commune', 'public', 'x_centroid;y_centroid');
+					
 					ALTER TABLE ONLY s_extraction.extraction ADD CONSTRAINT pk_plan_bo_id PRIMARY KEY (bo_id);
 					ALTER TABLE ONLY s_extraction.rt_layer ADD CONSTRAINT pk_projet_type PRIMARY KEY (layer_id);
 					ALTER TABLE ONLY s_extraction.rt_format ADD CONSTRAINT pk_reseau PRIMARY KEY (format_id);
@@ -95,6 +95,7 @@
 					ALTER TABLE ONLY s_extraction.rt_feature_model ADD CONSTRAINT pk_rt_feature_model PRIMARY KEY (feature_type, attribute_name);
 					ALTER TABLE ONLY s_extraction.extraction ADD CONSTRAINT fk_coordsys_id FOREIGN KEY (coordsys_id) REFERENCES s_extraction.rt_coordsys(coordsys_id);
 					ALTER TABLE ONLY s_extraction.extraction ADD CONSTRAINT fk_format_id FOREIGN KEY (vector_format_id) REFERENCES s_extraction.rt_format(format_id);
+					
 					GRANT ALL ON TABLE s_extraction.extraction TO u_vitis;
 					GRANT ALL ON TABLE s_extraction.extraction TO extraction_user;
 					GRANT ALL ON TABLE s_extraction.rt_coordsys TO u_vitis;
@@ -104,388 +105,223 @@
 					GRANT ALL ON TABLE s_extraction.rt_format TO u_vitis;
 					GRANT ALL ON TABLE s_extraction.rt_format TO extraction_admin;
 					GRANT ALL ON TABLE s_extraction.rt_layer TO u_vitis;
-					GRANT ALL ON TABLE s_extraction.rt_layer TO extraction_admin;			
+					GRANT ALL ON TABLE s_extraction.rt_layer TO extraction_admin;
+					
+					CREATE SEQUENCE s_extraction.seq_common START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
+					ALTER TABLE s_extraction.seq_common OWNER TO u_vitis;
+					GRANT ALL ON SEQUENCE s_extraction.seq_common TO u_vitis;
+					GRANT ALL ON SEQUENCE s_extraction.seq_common TO extraction_admin;
+					GRANT ALL ON SEQUENCE s_extraction.seq_common TO extraction_user;
+					
 					CREATE TABLE s_extraction.rt_extraction_status (status_id int4 NOT NULL DEFAULT nextval('s_extraction.seq_common'::regclass), name varchar(50) NOT NULL, progress int4 NOT NULL, PRIMARY KEY (status_id));
-					ALTER TABLE s_extraction.rt_extraction_status OWNER TO u_vitis;
+					GRANT ALL ON TABLE s_extraction.rt_extraction_status TO u_vitis;
 					GRANT ALL ON TABLE s_extraction.rt_extraction_status TO extraction_admin;
+					INSERT INTO s_extraction.rt_extraction_status(name, progress) VALUES('START', 0);
+					INSERT INTO s_extraction.rt_extraction_status(name, progress) VALUES('Nouveau', 10);
+					INSERT INTO s_extraction.rt_extraction_status(name, progress) VALUES('AE Demandé', 20);
+					INSERT INTO s_extraction.rt_extraction_status(name, progress) VALUES('AE Généré', 30);
+					INSERT INTO s_extraction.rt_extraction_status(name, progress) VALUES('AE Soumis', 40);
+					INSERT INTO s_extraction.rt_extraction_status(name, progress) VALUES('Autorisée', 70);
+					INSERT INTO s_extraction.rt_extraction_status(name, progress) VALUES('Refusée', 100);
+					INSERT INTO s_extraction.rt_extraction_status(name, progress) VALUES('Terminée', 100);
+					
+					--Partie s_vitis généré par WAB le 18/07/2017 à 09:52:00
+					DELETE FROM s_vitis.vm_section WHERE label_id ~ '^extraction_([0-9]+)$';
+					DELETE FROM s_vitis.vm_table_field WHERE label_id ~ '^extraction_([0-9]+)$';
+					DELETE FROM s_vitis.vm_table_button WHERE label_id ~ '^extraction_([0-9]+)$';
+					DELETE FROM s_vitis.vm_module WHERE module_id='extraction';
+					DELETE FROM s_vitis.vm_string WHERE string_id ~ '^extraction_([0-9]+)$';
+					INSERT INTO s_vitis.vm_module (module_id, description, version, label) VALUES ('extraction','Module Extraction',0.1,'extraction');
+					INSERT INTO s_vitis.group (group_id, name) SELECT (SELECT nextval('s_vitis.seq_common'::regclass)), 'demandeur' WHERE NOT EXISTS (SELECT group_id FROM s_vitis.group WHERE name='demandeur');
+					INSERT INTO s_vitis.group (group_id, name) SELECT (SELECT nextval('s_vitis.seq_common'::regclass)), 'controleur' WHERE NOT EXISTS (SELECT group_id FROM s_vitis.group WHERE name='controleur');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_1');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field bo_id', 'extraction_4');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field status', 'extraction_6');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_extraction', 'extraction_0');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field progress_level', 'extraction_7');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_2');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field company', 'extraction_8');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_3');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field requestor', 'extraction_5');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layers', 'extraction_9');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_coordsys', 'extraction_10');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_11');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_12');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_13');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_format', 'extraction_14');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_15');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_16');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_17');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_layer', 'extraction_18');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_19');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_20');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_21');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys_id', 'extraction_22');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys', 'extraction_23');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format_id', 'extraction_24');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format', 'extraction_25');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_raster', 'extraction_26');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_vector', 'extraction_27');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer_id', 'extraction_28');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer', 'extraction_29');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field category', 'extraction_30');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field restriction', 'extraction_31');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field unused_attributes', 'extraction_32');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_1','en','General');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_1','fr','Informations générales');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_0','fr','Extraction');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_0','en','Extraction');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_2','fr','Supprimer les plans');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_2','en','Supprimer les plans');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_3','fr','Ajouter une extraction');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_3','en','Ajouter une extraction');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_4','en','ID');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_4','fr','ID');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_5','en','Demandeur');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_5','fr','Demandeur');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_6','fr','Etat');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_6','en','Status');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_7','fr','Avancement');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_7','en','Progress level');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_8','fr','Organisme');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_8','en','Company');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_9','fr','Couches');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_9','en','Layers');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_10','en','Coordinate systems');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_10','fr','Systèmes de coordonnées');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_11','en','General');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_11','fr','Informations générales');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_12','en','Delete coordinate systems');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_12','fr','Supprimer les systèmes de coordonnées');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_13','en','Add coordinate systems');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_13','fr','Ajouter un système de coordonnées');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_14','en','Formats');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_14','fr','Formats');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_15','en','General');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_15','fr','Informations générales');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_16','en','Delete formats');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_16','fr','Supprimer les formats');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_17','en','Add format');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_17','fr','Ajouter un format');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_18','en','Layers');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_18','fr','Couches');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_19','en','General');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_19','fr','Informations générales');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_20','en','Delete layers');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_20','fr','Supprimer les couches');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_21','en','Add layer');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_21','fr','Ajouter une couche');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_22','en','ID');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_22','fr','ID');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_23','en','Name');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_23','fr','Nom');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_24','en','ID');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_24','fr','ID');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_25','en','Name');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_25','fr','Nom');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_26','en','Raster');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_26','fr','Raster');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_27','en','Vector');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_27','fr','Vecteur');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_28','en','ID');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_28','fr','ID');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_29','en','Name');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_29','fr','Nom');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_30','en','Category');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_30','fr','Catégorie');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_31','en','Restriction');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_31','fr','Restriction');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_32','en','Unused attributes');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_32','fr','Attributs inutilisés');
+					INSERT INTO s_vitis.vm_mode (mode_id, module_id) VALUES ('extraction','extraction');
+					INSERT INTO s_vitis.vm_mode (mode_id, module_id) VALUES ('extraction_ref','extraction');
+					INSERT INTO s_vitis.vm_mode_rolname(index, mode_id, rolname) VALUES (0, 'extraction', 'extraction_user');
+					INSERT INTO s_vitis.vm_mode_rolname(index, mode_id, rolname) VALUES (45, 'extraction_ref', 'extraction_admin');
+					INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 0, 'extraction', 'extraction_0', 'extraction/extractions', 'editSectionForm', 'showSectionForm', 'bo_id', 'ASC', 'extraction_extraction');
+					INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 0, 'extraction_ref', 'extraction_10', 'extraction/coordsyss', 'editSectionForm', 'showSectionForm', 'coordsys_id', 'ASC', 'extraction_coordsys');
+					INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 1, 'extraction_ref', 'extraction_14', 'extraction/formats', 'editSectionForm', 'showSectionForm', 'format_id', 'ASC', 'extraction_format');
+					INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 2, 'extraction_ref', 'extraction_18', 'extraction/layers', 'editSectionForm', 'showSectionForm', 'layer_id', 'ASC', 'extraction_layer');
+					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_2', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
+					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_3', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
+					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_12', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'));
+					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_13', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'));
+					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_16', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'));
+					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_17', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'));
+					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_20', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
+					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_21', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'bo_id', '1', '1', 1, 50, 'right', 'extraction_4', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'requestor', '1', '1', 2, 200, 'left', 'extraction_5', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'status', '1', '1', 3, 150, 'left', 'extraction_6', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'company', '1', '1', 5, 200, 'left', 'extraction_8', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'layers', '1', '1', 6, 60, 'center', 'extraction_9', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), '<div data-app-extraction-layers-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'progress_level', '1', '1', 4, 150, 'center', 'extraction_7', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), '<div data-app-navbar data-mode="info" data-hidevalue data-striped data-active></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'coordsys_id', '1', '1', 0, 200, 'left', 'extraction_22', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'coordsys', '1', '1', 1, 200, 'left', 'extraction_23', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'format_id', '1', '1', 0, 100, 'left', 'extraction_24', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'format', '1', '1', 1, 200, 'left', 'extraction_25', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'use_for_raster', '1', '1', 2, 100, 'left', 'extraction_26', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'use_for_vector', '1', '1', 3, 100, 'left', 'extraction_27', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'layer_id', '1', '1', 0, 150, 'left', 'extraction_28', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'layer', '1', '1', 1, 150, 'left', 'extraction_29', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'category', '1', '1', 2, 150, 'left', 'extraction_30', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'restriction', '1', '1', 3, 100, 'left', 'extraction_31', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'unused_attributes', '1', '1', 4, 110, 'left', 'extraction_32', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), '<div data-app-extraction-ref-unused-attributes-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
+					INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_1', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), 'extraction');
+					INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_11', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), 'extraction');
+					INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_15', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), 'extraction');
+					INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_19', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), 'extraction');
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','START', 0);
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Nouveau', 10);
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','AE Demandé', 20);
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','AE Généré', 30);
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','AE Soumis', 40);
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Autorisée', 70);
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Refusée', 100);
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Terminée', 100);
 					CREATE TABLE s_extraction.rt_extraction_status_group(  status_id integer NOT NULL,  group_id integer NOT NULL,  extraction_status_group_id integer NOT NULL,  CONSTRAINT pk_workspace_group PRIMARY KEY (extraction_status_group_id),  CONSTRAINT fk_group_id_workspace FOREIGN KEY (group_id)      REFERENCES s_vitis."group" (group_id) MATCH SIMPLE      ON UPDATE RESTRICT ON DELETE CASCADE,  CONSTRAINT fk_status_id FOREIGN KEY (status_id)      REFERENCES s_extraction.rt_extraction_status (status_id) MATCH SIMPLE      ON UPDATE RESTRICT ON DELETE CASCADE)WITH (  OIDS=FALSE);
 					ALTER TABLE s_extraction.rt_extraction_status_group  OWNER TO u_vitis;
 					GRANT ALL ON TABLE s_extraction.rt_extraction_status_group TO u_vitis;
 					GRANT SELECT ON TABLE s_extraction.rt_extraction_status_group TO extraction_user;
 					GRANT SELECT ON TABLE s_extraction.rt_extraction_status_group TO extraction_admin;
-					CREATE VIEW s_extraction.v_extraction AS SELECT DISTINCT extraction.bo_id, extraction.status_id, extraction.history, extraction.creation_date, extraction.requestor, extraction.ae, extraction.extent, extraction.company, extraction.layers, extraction.vector_format_id, extraction.vector_format_id AS format_id, extraction.coordsys_id, extraction.raster_format_id, extraction.extent_method, extraction.signed, extraction.accepted_by_cpa, extraction.identification_complete, extraction.definition_complete, extraction.priority_id, extraction.id_com, extraction.id_conseil, extraction.note, rt_extraction_status.progress AS progress_level, rt_extraction_status.name AS status_name, rt_extraction_status.name AS status FROM ((((s_extraction.extraction LEFT JOIN s_extraction.rt_extraction_status ON ((extraction.status_id = rt_extraction_status.status_id))) LEFT JOIN s_extraction.rt_extraction_status_group ON ((rt_extraction_status.status_id = rt_extraction_status_group.status_id))) LEFT JOIN s_vitis.user_group ON ((rt_extraction_status_group.group_id = user_group.group_id))) LEFT JOIN s_vitis."user" ON ((user_group.user_id = "user".user_id))) WHERE ((("user".login)::name = "current_user"()) AND (((extraction.requestor)::name = "current_user"()) OR (rt_extraction_status_group.group_id = 12)));
+					CREATE OR REPLACE VIEW s_extraction.v_extraction AS SELECT extraction.bo_id,extraction.status,extraction.history,extraction.creation_date,extraction.requestor,extraction.ae,extraction.extent,extraction.company,extraction.layers,extraction.vector_format_id,extraction.vector_format_id AS format_id,extraction.coordsys_id,extraction.raster_format_id,extraction.extent_method,extraction.signed,extraction.accepted_by_cpa,extraction.identification_complete,extraction.definition_complete,extraction.priority_id,extraction.id_com,extraction.id_conseil,extraction.note,rt_extraction_status.progress AS progress_level,extraction.status AS status_name FROM s_extraction.extraction LEFT JOIN s_extraction.rt_extraction_status ON extraction.status::text = rt_extraction_status.name::text LEFT JOIN s_extraction.rt_extraction_status_group on rt_extraction_status.status_id = rt_extraction_status_group.status_id LEFT JOIN s_vitis.user_group ON "rt_extraction_status_group".group_id = user_group.group_id LEFT JOIN s_vitis."user" ON "user_group".user_id = "user".user_id WHERE "user".login::name = "current_user"();
 					ALTER TABLE s_extraction.v_extraction OWNER TO u_vitis;
 					GRANT ALL ON TABLE s_extraction.v_extraction TO u_vitis;
 					GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_admin;
 					GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_user;
-					GRANT ALL ON TABLE s_extraction.extraction TO extraction_admin;
-					GRANT ALL ON TABLE s_extraction.extraction TO extraction_user;
-					GRANT ALL ON TABLE s_extraction.rt_coordsys TO extraction_admin;
-					GRANT SELECT ON TABLE s_extraction.rt_coordsys TO extraction_user;
-					GRANT ALL ON TABLE s_extraction.rt_extraction_status TO extraction_admin;
-					GRANT SELECT ON TABLE s_extraction.rt_extraction_status TO extraction_user;
-					GRANT ALL ON TABLE s_extraction.rt_format TO extraction_admin;
-					GRANT SELECT ON TABLE s_extraction.rt_format TO extraction_user;
-					GRANT ALL ON TABLE s_extraction.rt_layer TO extraction_admin;
-					GRANT SELECT ON TABLE s_extraction.rt_layer TO extraction_user;
-					GRANT SELECT ON TABLE s_extraction.rt_feature_model TO extraction_admin;
-					GRANT SELECT ON TABLE s_extraction.rt_feature_model TO extraction_user;
-					--Partie WABSQL générée par WAB le 04/05/2018 à 14:31:04
-					-- Ces tables sont normalement prévues dans votre fichier VisualParadigm et sont necessaires pour le fonctionnement de vos objets WAB
-					-- CREATE TABLE s_extraction.rt_extraction_status (status_id integer NOT NULL DEFAULT nextval('s_vitis.seq_common'::regclass), name character varying(50)  NOT NULL, progress integer NOT NULL, CONSTRAINT rt_extraction_status_pkey PRIMARY KEY (status_id));
-					-- CREATE TABLE s_extraction.rt_extraction_status_group (status_id integer NOT NULL, group_id integer NOT NULL, link_id integer NOT NULL DEFAULT nextval('s_vitis.seq_common'::regclass), CONSTRAINT rt_extraction_status_group_pkey PRIMARY KEY (link_id), CONSTRAINT fk_extraction_status_group FOREIGN KEY (status_id) REFERENCES s_extraction.rt_extraction_status (status_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION);
-					-- CREATE TABLE s_extraction.extraction_history (history_id integer NOT NULL DEFAULT nextval('s_extraction.seq_common'::regclass), date timestamp with time zone NOT NULL, login character varying(50) NOT NULL, comment text NOT NULL, bo_id integer NOT NULL, CONSTRAINT extraction_history_pkey PRIMARY KEY (history_id), CONSTRAINT fk_extraction_history FOREIGN KEY (bo_id) REFERENCES s_extraction.extraction (extraction_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION);
-					-- Vue basique pour vos objets WAB tenant compte de la restriction groupe état
-					CREATE VIEW s_extraction.v_extraction AS SELECT extraction.* FROM s_extraction.extraction LEFT JOIN s_extraction.rt_extraction_status ON rt_extraction_status.status_id = extraction.status_id JOIN s_extraction.rt_extraction_status_group ON rt_extraction_status.status_id = rt_extraction_status_group.status_id WHERE (rt_extraction_status_group.group_id IN ( SELECT user_group.group_id FROM s_vitis.user_group LEFT JOIN s_vitis."user" ON user_group.user_id = "user".user_id WHERE "user".login::name = "current_user"()));
-					-- u_vitis est propriétaire de toutes vos tables
-					ALTER TABLE s_extraction.version OWNER TO u_vitis;
-					ALTER TABLE s_extraction.rt_feature_model OWNER TO u_vitis;
-					ALTER TABLE s_extraction.extraction OWNER TO u_vitis;
-					ALTER TABLE s_extraction.ct OWNER TO u_vitis;
-					ALTER TABLE s_extraction.commune OWNER TO u_vitis;
-					ALTER TABLE s_extraction.rt_coordsys OWNER TO u_vitis;
-					ALTER TABLE s_extraction.v_extraction OWNER TO u_vitis;
-					ALTER TABLE s_extraction.rt_format OWNER TO u_vitis;
-					ALTER TABLE s_extraction.rt_layer OWNER TO u_vitis;
-					ALTER TABLE s_extraction.rt_extraction_status OWNER TO u_vitis;
-					ALTER TABLE s_extraction.rt_extraction_status_group OWNER TO u_vitis;
-					ALTER TABLE s_extraction.extraction_history OWNER TO u_vitis;
-					-- u_vitis propriétaire sur les tables des objets WAB
-					--ALTER TABLE s_extraction.rt_extraction_status OWNER to u_vitis;
-					--ALTER TABLE s_extraction.rt_extraction_status_group OWNER to u_vitis;
-					--ALTER TABLE s_extraction.extraction_history OWNER to u_vitis;
-					-- Gestion des droits d'après les méthodes php saisies pour vos objets (annule et remplace)
-					REVOKE ALL ON TABLE s_extraction.rt_coordsys FROM extraction_admin;
-					REVOKE ALL ON TABLE s_extraction.v_extraction FROM extraction_user;
-					REVOKE ALL ON TABLE s_extraction.rt_format FROM extraction_admin;
-					REVOKE ALL ON TABLE s_extraction.rt_layer FROM extraction_admin;
-					GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_coordsys TO extraction_admin;
-					GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.v_extraction TO extraction_user;
-					GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_format TO extraction_admin;
-					GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_layer TO extraction_admin;
-					-- Droits sur les tables des objets WAB
-					GRANT SELECT ON TABLE s_extraction.rt_extraction_status TO extraction_user;
-					GRANT SELECT ON TABLE s_extraction.rt_extraction_status_group TO extraction_user;
-					GRANT SELECT, INSERT ON TABLE s_extraction.extraction_history TO extraction_user;
-					INSERT INTO s_gtf.messageclass (messageclass, messageclass_type) VALUES ('AE Généré','action');
-					INSERT INTO s_gtf.messageclass (messageclass, messageclass_type) VALUES ('Extraction Aix','action');
-					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameter) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','BoAction',0,'bo_id_attribute=''bo_id''|method=''trGenerer''|class=''Extractions''|module=''extraction''');
-					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameter) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur AE généré')));
-					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameter) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email controleur données extraites')));
-					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameter) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',2,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur données extraites')));
-					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameter) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','BoAction',0,''bo_id_attribute=''bo_id''|method=''trTerminerExtraction''|class=''Extractions''|module=''extraction''');
-					INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur AE généré', NULL, NULL, NULL, NULL, NULL, '$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new orderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || 'error_log( print_r($this->aObjects[''oOrder''], true));' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Acte d\''Engagement pour l\''utilisation des données SIG'';' || chr(13) || '$this->body =  $image.''<p>Bonjour</p>' || chr(13) || '<p></p>' || chr(13) || '<p>Suite à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' pour l\''extraction des données, <u>merci de bien vouloir déposer l\''acte d\''engagement</u> ci-joint complété et signé, à l\''adresse suivante:<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>'';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || '    if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> (5*1024*1024)){' || chr(13) || '        $this->body .= ''<p>Le résultat est disponible par téléchargement :<br/><a href="'' . $this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || '    } else {' || chr(13) || '        $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || '    }' || chr(13) || 'error_log(print_r($this->aObjects["oOrder"]->aFields, true));', '1', 'gtf', NULL);
-					INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur AE à resoumettre', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || '	if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || '		$this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || '	}' || chr(13) || '}' || chr(13) || '//$this->to = ''sig@agglo-paysdaix.fr'';' || chr(13) || '$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX- SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Acte d\''engagement non valide'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || '	<p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande n\''a pas encore été validée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || '	$this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || '	$this->body .= ''  - Le cadre d\''identification du dépositaire est incomplet<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || '	$this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject'']->aValues, true));' || chr(13) || '//$this->body .= ''<p>''.$this->aObjects[''oBusinessObject'']->aValues[''comment''].''</p>'';' || chr(13) || '$this->body .=''<p><u>Merci de bien vouloir déposer à nouveau l\''acte d\''engagement</u> à l\''adresse suivante :<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', '1', 'gtf', NULL);
-					INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email controleur données extraites', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$aBo[''bo_id''].'' - Extraction des données'';' || chr(13) || '$this->body = ''<p>Les données concernant la demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' ont été envoyées au demandeur.</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || '', '1', 'gtf', NULL);
-					INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('public', NULL, NULL, NULL, NULL, NULL, '$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'if ($this->aObjects["oOrder"]->aFields[''order_status_id''] == 3) {' || chr(13) || '	$this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || '	$this->cc = '''' . $this->aObjects["oOrder"]->aFields[''email_notifications''] . '''';' || chr(13) || '	$this->cci = '''';' || chr(13) || '	$this->subject = ''[Pays d\''Aix - SIGAM] - Données extraites'';' || chr(13) || '	$this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || '	$this->body .=''<p></p><p>Les données correspondant à votre demande  en date du ''.date(''d/m/Y'',strtotime($this->aObjects["oOrder"]->aFields[''order_date''])).'' sont disponibles '';' || chr(13) || '	 if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || '			$this->body .= ''sur le lien de téléchargement suivant :<br/><a href="''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || '		} else {' || chr(13) || '			 $this->body .= ''en pièce jointe.</p>'';' || chr(13) || '			$this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || '		}' || chr(13) || '	$this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || '	<p>Cordialement,</p>' || chr(13) || '	<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || '	Conseil de Territoire du Pays d\''Aix<br/>' || chr(13) || '	Tel : 04 42 93 83 50<br/>' || chr(13) || '	Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>' || chr(13) || '' || chr(13) || '	'';' || chr(13) || '}else{' || chr(13) || '	$this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || '	$this->subject = ''[GTF]-'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . '' - Echec du traitement'';' || chr(13) || '	$this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || '    $this->body .= ''<p>La demande n°'' . $this->aObjects["oOrder"]->aFields[''order_id''] . '' pour le traitement <strong>'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . ''</strong> n\''a pu être exécutée correctement suite à une erreur.<br/> Veuillez contactez votre administrateur.<br/>'';' || chr(13) || '    $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''log_file''];' || chr(13) || '}', '1', 'gtf', NULL);
-					INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email contrôleur AE soumis', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->to = ''sofian.pujo@veremes.com'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Dépôt de l\''Acte d\''Engagement à valider'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || '	<p> </p>' || chr(13) || '	<p>L\''acte d\''engagement correspondant à la demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' a été déposé sur le serveur par le demandeur.</p>' || chr(13) || '	<p></p>' || chr(13) || '	<p>Cordialement,</p>' || chr(13) || '	<p> </p>' || chr(13) || '	<p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || 'error_log($this->body);' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', '1', 'gtf', NULL);
-					INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur Extraction refusée', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_vitis.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || '/*if(!$oBd->erreurRencontree) {' || chr(13) || '	if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || '		$this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || '	}' || chr(13) || '}*/' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject''], true));' || chr(13) || '//$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Rejet de votre demande d\''extraction de données'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || '	<p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande a été rejetée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || '	$this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''accepted_by_cpa''] == "false"){' || chr(13) || '	$this->body .= '' - La CPA ne valide pas l\''usage décrit pour les données du cadastre<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || '	$this->body .= '' - Le cadre d\''identification du dépositaire est incomplet</p>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || '	$this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || '$this->body .= $this->aObjects[''oBusinessObject'']->aValues[''comment''].''<br/>'';' || chr(13) || '$this->body .=''<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', '1', 'gtf', NULL);
-					INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur données extraites', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$sUserLogin = $aBo[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || '	if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || '		$this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oMessage"]->aProperties);' || chr(13) || '	}' || chr(13) || '}' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Données SIG extraites'';' || chr(13) || '$this->body = ''<p>Bonjour</p>' || chr(13) || '<p></p><p>Les données correspondant à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' sont disponibles '';' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || '        $this->body .= ''sur le lien de téléchargement suivant :<br/><a href="https://sigdata.agglo-paysdaix.fr/public/gtf/''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || '    } else {' || chr(13) || '	 	 $this->body .= ''en pièce jointe.</p>'';' || chr(13) || '        $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || '    }' || chr(13) || '$this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Terriroire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>' || chr(13) || '' || chr(13) || ''';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || '   ' || chr(13) || '', '1', 'gtf', NULL);
-					
-				]]>
-			</code>
-		</query>
-		<query>
-			<type>update</type>
-			<version>2018-00-00</version>
-			<code>
-				<![CDATA[
-					--Partie pour le module extraction version 2018-00-00 généré par WAB le 22/05/2018 à 09:09:32
-					ALTER TABLE s_extraction.rt_layer ADD COLUMN ct_id integer;
-										UPDATE s_extraction.rt_layer set ct_id = 2;	
-										ALTER TABLE s_extraction.rt_layer DROP CONSTRAINT pk_projet_type;
-										ALTER TABLE s_extraction.rt_layer ADD COLUMN layer_ct_id serial;
-										ALTER TABLE s_extraction.rt_layer ADD CONSTRAINT pk_layer_ct PRIMARY KEY (layer_ct_id);	
-										ALTER TABLE s_extraction.rt_layer ADD COLUMN mutualized boolean;	
-										ALTER TABLE s_extraction.rt_feature_model ADD COLUMN ct_id integer;
-										UPDATE s_extraction.rt_feature_model set ct_id = 2;	
-										ALTER TABLE s_extraction.rt_feature_model ADD COLUMN layer_ct_id integer;
-										UPDATE s_extraction.rt_feature_model SET layer_ct_id = s_extraction.rt_layer.layer_ct_id FROM s_extraction.rt_layer WHERE rt_feature_model.feature_type = s_extraction.rt_layer.layer_id and rt_feature_model.ct_id = s_extraction.rt_feature_model.ct_id;
-										ALTER TABLE s_extraction.rt_feature_model DROP COLUMN ct_id;
-										ALTER TABLE s_extraction.rt_feature_model ALTER COLUMN layer_ct_id SET NOT NULL;
-										ALTER TABLE s_extraction.rt_layer ADD CONSTRAINT rt_layer_layer_id_ct_id_key UNIQUE (layer_id, ct_id);
-										ALTER TABLE ONLY s_extraction.rt_feature_model  ADD CONSTRAINT fk_layer_ct_id FOREIGN KEY (layer_ct_id) REFERENCES s_extraction.rt_layer(layer_ct_id);
-										ALTER TABLE s_extraction.rt_feature_model ADD UNIQUE (feature_type, attribute_name, layer_ct_id);
-										ALTER TABLE s_extraction.extraction ADD COLUMN preco_tech boolean;
-										ALTER TABLE s_extraction.extraction ADD COLUMN chart_graph boolean;
-										ALTER TABLE s_extraction.extraction ADD COLUMN metadonnees boolean;
-										DROP VIEW s_extraction.v_extraction;
-										CREATE OR REPLACE VIEW s_extraction.v_extraction AS  SELECT DISTINCT extraction.bo_id,     extraction.status_id,     extraction.history,     extraction.creation_date,     extraction.requestor,     extraction.ae,     extraction.extent,     extraction.company,     extraction.layers,     extraction.vector_format_id,     extraction.vector_format_id AS format_id,     extraction.coordsys_id,     extraction.raster_format_id,     extraction.extent_method,     extraction.signed,     extraction.accepted_by_cpa,     extraction.identification_complete,     extraction.definition_complete,     extraction.priority_id,     extraction.id_com,     extraction.id_conseil,     extraction.email,     extraction.note,     extraction.preco_tech,     extraction.chart_graph,     extraction.metadonnees,     rt_extraction_status.progress AS progress_level,     rt_extraction_status.name AS status_name,     rt_extraction_status.name AS status    FROM s_extraction.extraction      LEFT JOIN s_extraction.rt_extraction_status ON extraction.status_id = rt_extraction_status.status_id      LEFT JOIN s_extraction.rt_extraction_status_group ON rt_extraction_status.status_id = rt_extraction_status_group.status_id      LEFT JOIN s_vitis.user_group ON rt_extraction_status_group.group_id = user_group.group_id      LEFT JOIN s_vitis."user" ON user_group.user_id = "user".user_id   WHERE "user".login::name = "current_user"() AND (extraction.requestor::name = "current_user"() OR rt_extraction_status_group.group_id = 12);  
-										ALTER TABLE s_extraction.v_extraction     OWNER TO u_vitis;  
-										GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_user; 
-										GRANT ALL ON TABLE s_extraction.v_extraction TO u_vitis; 
-										GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_admin;
-										COMMENT ON COLUMN s_extraction.extraction.history is 'deprecated';
-										COMMENT ON COLUMN s_extraction.extraction.status is 'deprecated';
-										CREATE SEQUENCE s_extraction.ct_ct_id_seq;
-										ALTER SEQUENCE s_extraction.ct_ct_id_seq OWNER TO u_vitis;
-										CREATE TABLE s_extraction.ct(     ct_id integer NOT NULL DEFAULT nextval('s_extraction.ct_ct_id_seq'::regclass),     name character varying(50) COLLATE pg_catalog."default" NOT NULL,     format character varying(255) COLLATE pg_catalog."default",     namedconnection character varying(255) COLLATE pg_catalog."default",     geom geometry(MultiPolygon,2154),     CONSTRAINT pk_ct PRIMARY KEY (ct_id) );  
-										ALTER TABLE s_extraction.ct     OWNER to u_vitis;  
-										GRANT SELECT ON TABLE s_extraction.ct TO extraction_admin;  
-										GRANT SELECT ON TABLE s_extraction.ct TO extraction_user;  
-										GRANT ALL ON TABLE s_extraction.ct TO u_vitis; 
-										CREATE INDEX ct_ct_id     ON s_extraction.ct USING btree     (ct_id);
-										CREATE TABLE s_extraction.commune (commune_id character(6) COLLATE pg_catalog."default" NOT NULL,ct_id integer, name varchar(255) COLLATE pg_catalog."default" NOT NULL,geom geometry(Polygon,2154) NOT NULL,CONSTRAINT pk_commune PRIMARY KEY (commune_id), CONSTRAINT fk_ct_id FOREIGN KEY (ct_id) REFERENCES s_extraction.ct (ct_id) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE SET NULL);
-										ALTER TABLE s_extraction.commune OWNER to u_vitis;
-										GRANT SELECT ON TABLE s_extraction.commune TO extraction_admin;
-										GRANT SELECT ON TABLE s_extraction.commune TO extraction_user;
-										GRANT ALL ON TABLE s_extraction.commune TO u_vitis;
-					--Partie WABSQL générée par WAB le 04/05/2018 à 10:02:22
-					-- Ces tables sont normalement prévues dans votre fichier VisualParadigm et sont necessaires pour le fonctionnement de vos objets WAB
-					-- CREATE TABLE s_extraction.rt_extraction_status (status_id integer NOT NULL DEFAULT nextval('s_dtnet.seq_common'::regclass), name character varying(50)  NOT NULL, progress integer NOT NULL, CONSTRAINT rt_extraction_status_pkey PRIMARY KEY (status_id));
-					-- CREATE TABLE s_extraction.rt_extraction_status_group (status_id integer NOT NULL, group_id integer NOT NULL, link_id integer NOT NULL DEFAULT nextval('s_dtnet.seq_common'::regclass), CONSTRAINT rt_extraction_status_group_pkey PRIMARY KEY (link_id), CONSTRAINT fk_extraction_status_group FOREIGN KEY (status_id) REFERENCES s_extraction.rt_extraction_status (status_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION);
-					-- CREATE TABLE s_extraction.extraction_history (history_id integer NOT NULL DEFAULT nextval('s_extraction.seq_common'::regclass), date timestamp with time zone NOT NULL, login character varying(50) NOT NULL, comment text NOT NULL, bo_id integer NOT NULL, CONSTRAINT extraction_history_pkey PRIMARY KEY (history_id), CONSTRAINT fk_extraction_history FOREIGN KEY (bo_id) REFERENCES s_extraction.extraction (bo_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION);
-					-- Vue basique pour vos objets WAB tenant compte de la restriction groupe état
-					--CREATE VIEW s_extraction.v_extraction AS SELECT extraction.* FROM s_extraction.extraction LEFT JOIN s_extraction.rt_extraction_status ON rt_extraction_status.status_id = extraction.status_id JOIN s_extraction.rt_extraction_status_group ON rt_extraction_status.status_id = rt_extraction_status_group.status_id WHERE (rt_extraction_status_group.group_id IN ( SELECT user_group.group_id FROM s_vitis.user_group LEFT JOIN s_vitis."user" ON user_group.user_id = "user".user_id WHERE "user".login::name = "current_user"()));
-					-- u_vitis est propriétaire de toutes vos tables
-					ALTER TABLE s_extraction.rt_extraction_status_group OWNER TO u_vitis;
-					ALTER TABLE s_extraction.rt_format OWNER TO u_vitis;
-					ALTER TABLE s_extraction.v_extraction OWNER TO u_vitis;
-					ALTER TABLE s_extraction.rt_coordsys OWNER TO u_vitis;
-					ALTER TABLE s_extraction.rt_extraction_status OWNER TO u_vitis;
-					ALTER TABLE s_extraction.rt_layer OWNER TO u_vitis;
-					ALTER TABLE s_extraction.rt_feature_model OWNER TO u_vitis;
-					ALTER TABLE s_extraction.extraction OWNER TO u_vitis;
-					ALTER TABLE s_extraction.version OWNER TO u_vitis;
-					-- u_vitis propriétaire sur les tables des objets WAB
-					--ALTER TABLE s_extraction.rt_extraction_status OWNER to u_vitis;
-					--ALTER TABLE s_extraction.rt_extraction_status_group OWNER to u_vitis;
-					--ALTER TABLE s_extraction.extraction_history OWNER to u_vitis;
-					-- Gestion des droits d'après les méthodes php saisies pour vos objets (annule et remplace)
-					REVOKE ALL ON TABLE s_extraction.rt_coordsys FROM extraction_admin;
-					REVOKE ALL ON TABLE s_extraction.v_extraction FROM extraction_user;
-					REVOKE ALL ON TABLE s_extraction.rt_format FROM extraction_admin;
-					REVOKE ALL ON TABLE s_extraction.rt_layer FROM extraction_admin;
-					GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_coordsys TO extraction_admin;
-					GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.v_extraction TO extraction_user;
-					GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_format TO extraction_admin;
-					GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_layer TO extraction_admin;
-					-- Droits sur les tables des objets WAB
-					GRANT SELECT ON TABLE s_extraction.rt_extraction_status TO extraction_user;
-					GRANT SELECT ON TABLE s_extraction.rt_extraction_status_group TO extraction_user;
-					GRANT SELECT, INSERT ON TABLE s_extraction.extraction_history TO extraction_user;
-					
-
-					UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new orderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || 'error_log( print_r($this->aObjects[''oOrder''], true));' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Acte d\''Engagement pour l\''utilisation des données SIG'';' || chr(13) || '$this->body =  $image.''<p>Bonjour</p>' || chr(13) || '<p></p>' || chr(13) || '<p>Suite à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' pour l\''extraction des données, <u>merci de bien vouloir déposer l\''acte d\''engagement</u> ci-joint complété et signé, à l\''adresse suivante:<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>'';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || '    if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> (5*1024*1024)){' || chr(13) || '        $this->body .= ''<p>Le résultat est disponible par téléchargement :<br/><a href="'' . $this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || '    } else {' || chr(13) || '        $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || '    }' || chr(13) || 'error_log(print_r($this->aObjects["oOrder"]->aFields, true));', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur AE généré';
-					UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || '	if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || '		$this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || '	}' || chr(13) || '}' || chr(13) || '//$this->to = ''sig@agglo-paysdaix.fr'';' || chr(13) || '$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX- SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Acte d\''engagement non valide'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || '	<p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande n\''a pas encore été validée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || '	$this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || '	$this->body .= ''  - Le cadre d\''identification du dépositaire est incomplet<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || '	$this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject'']->aValues, true));' || chr(13) || '//$this->body .= ''<p>''.$this->aObjects[''oBusinessObject'']->aValues[''comment''].''</p>'';' || chr(13) || '$this->body .=''<p><u>Merci de bien vouloir déposer à nouveau l\''acte d\''engagement</u> à l\''adresse suivante :<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur AE à resoumettre';
-					UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$aBo[''bo_id''].'' - Extraction des données'';' || chr(13) || '$this->body = ''<p>Les données concernant la demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' ont été envoyées au demandeur.</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email controleur données extraites';
-					UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'if ($this->aObjects["oOrder"]->aFields[''order_status_id''] == 3) {' || chr(13) || '	$this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || '	$this->cc = '''' . $this->aObjects["oOrder"]->aFields[''email_notifications''] . '''';' || chr(13) || '	$this->cci = '''';' || chr(13) || '	$this->subject = ''[Pays d\''Aix - SIGAM] - Données extraites'';' || chr(13) || '	$this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || '	$this->body .=''<p></p><p>Les données correspondant à votre demande  en date du ''.date(''d/m/Y'',strtotime($this->aObjects["oOrder"]->aFields[''order_date''])).'' sont disponibles '';' || chr(13) || '	 if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || '			$this->body .= ''sur le lien de téléchargement suivant :<br/><a href="''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || '		} else {' || chr(13) || '			 $this->body .= ''en pièce jointe.</p>'';' || chr(13) || '			$this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || '		}' || chr(13) || '	$this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || '	<p>Cordialement,</p>' || chr(13) || '	<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || '	Conseil de Territoire du Pays d\''Aix<br/>' || chr(13) || '	Tel : 04 42 93 83 50<br/>' || chr(13) || '	Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>' || chr(13) || '' || chr(13) || '	'';' || chr(13) || '}else{' || chr(13) || '	$this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || '	$this->subject = ''[GTF]-'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . '' - Echec du traitement'';' || chr(13) || '	$this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || '    $this->body .= ''<p>La demande n°'' . $this->aObjects["oOrder"]->aFields[''order_id''] . '' pour le traitement <strong>'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . ''</strong> n\''a pu être exécutée correctement suite à une erreur.<br/> Veuillez contactez votre administrateur.<br/>'';' || chr(13) || '    $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''log_file''];' || chr(13) || '}', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='public';
-					UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->to = ''sofian.pujo@veremes.com'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Dépôt de l\''Acte d\''Engagement à valider'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || '	<p> </p>' || chr(13) || '	<p>L\''acte d\''engagement correspondant à la demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' a été déposé sur le serveur par le demandeur.</p>' || chr(13) || '	<p></p>' || chr(13) || '	<p>Cordialement,</p>' || chr(13) || '	<p> </p>' || chr(13) || '	<p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || 'error_log($this->body);' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email contrôleur AE soumis';
-					UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_vitis.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || '/*if(!$oBd->erreurRencontree) {' || chr(13) || '	if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || '		$this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || '	}' || chr(13) || '}*/' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject''], true));' || chr(13) || '//$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Rejet de votre demande d\''extraction de données'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || '	<p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande a été rejetée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || '	$this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''accepted_by_cpa''] == "false"){' || chr(13) || '	$this->body .= '' - La CPA ne valide pas l\''usage décrit pour les données du cadastre<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || '	$this->body .= '' - Le cadre d\''identification du dépositaire est incomplet</p>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || '	$this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || '$this->body .= $this->aObjects[''oBusinessObject'']->aValues[''comment''].''<br/>'';' || chr(13) || '$this->body .=''<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur Extraction refusée';
-					UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$sUserLogin = $aBo[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || '	if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || '		$this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oMessage"]->aProperties);' || chr(13) || '	}' || chr(13) || '}' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Données SIG extraites'';' || chr(13) || '$this->body = ''<p>Bonjour</p>' || chr(13) || '<p></p><p>Les données correspondant à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' sont disponibles '';' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || '        $this->body .= ''sur le lien de téléchargement suivant :<br/><a href="https://sigdata.agglo-paysdaix.fr/public/gtf/''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || '    } else {' || chr(13) || '	 	 $this->body .= ''en pièce jointe.</p>'';' || chr(13) || '        $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || '    }' || chr(13) || '$this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Terriroire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>' || chr(13) || '' || chr(13) || ''';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || '   ' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur données extraites';
-					DELETE * FROM s_gtf.messageclass_action WHERE messageclass LIKE 'extraction_%';
-					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameter) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','BoAction',0,'bo_id_attribute=''bo_id''|method=''trGenerer''|class=''Extractions''|module=''extraction''');
-					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameter) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur AE généré')));
-					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameter) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email controleur données extraites')));
-					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameter) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',2,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur données extraites')));
-					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameter) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','BoAction',0,''bo_id_attribute=''bo_id''|method=''trTerminerExtraction''|class=''Extractions''|module=''extraction''');
-					--Partie s_vitis généré par WAB le 22/05/2018 à 09:09:31
-					DELETE FROM s_vitis.vm_section WHERE label_id ~ '^extraction_([0-9]+)$';
-					DELETE FROM s_vitis.vm_table_field WHERE label_id ~ '^extraction_([0-9]+)$';
-					DELETE FROM s_vitis.vm_table_button WHERE label_id ~ '^extraction_([0-9]+)$';
-					DELETE FROM s_vitis.vm_module WHERE module_id='extraction';
-					DELETE FROM s_vitis.vm_string WHERE string_id ~ '^extraction_([0-9]+)$';
-					INSERT INTO s_vitis.vm_module (module_id, description, version, label) VALUES ('extraction','Module Extraction CG34',0.1,'Module Extraction');
-					INSERT INTO s_vitis.group (group_id, name) SELECT (SELECT nextval('s_vitis.seq_common'::regclass)), 'demandeur' WHERE NOT EXISTS (SELECT group_id FROM s_vitis.group WHERE name='demandeur');
-					INSERT INTO s_vitis.group (group_id, name) SELECT (SELECT nextval('s_vitis.seq_common'::regclass)), 'controleur' WHERE NOT EXISTS (SELECT group_id FROM s_vitis.group WHERE name='controleur');
-					INSERT INTO s_vitis.privileges (rolname, description) SELECT 'extraction_admin', 'administrateur extraction' WHERE NOT EXISTS (SELECT rolname FROM s_vitis.privileges WHERE rolname='extraction_admin');
-					INSERT INTO s_vitis.privileges (rolname, description) SELECT 'extraction_user', 'utilisateur extraction' WHERE NOT EXISTS (SELECT rolname FROM s_vitis.privileges WHERE rolname='extraction_user');
-					SELECT s_vitis.create_role_if_not_exists('extraction_admin', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION');
-					SELECT s_vitis.create_role_if_not_exists('extraction_user', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_1');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field bo_id', 'extraction_4');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field status', 'extraction_6');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_extraction', 'extraction_0');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field progress_level', 'extraction_7');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_2');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field company', 'extraction_8');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_3');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field requestor', 'extraction_5');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layers', 'extraction_9');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_coordsys', 'extraction_10');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_11');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_12');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_13');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_format', 'extraction_14');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_15');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_16');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_17');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_layer', 'extraction_18');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_19');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_20');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_21');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys_id', 'extraction_22');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys', 'extraction_23');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format_id', 'extraction_24');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format', 'extraction_25');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_raster', 'extraction_26');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_vector', 'extraction_27');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer_id', 'extraction_28');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer', 'extraction_29');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field category', 'extraction_30');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field restriction', 'extraction_31');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field unused_attributes', 'extraction_32');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_33');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_34');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_35');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_36');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_37');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_38');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_39');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_40');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_41');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_42');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_43');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_44');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field bo_id', 'extraction_45');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field status', 'extraction_46');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field requestor', 'extraction_47');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field company', 'extraction_48');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layers', 'extraction_49');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys_id', 'extraction_50');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys', 'extraction_51');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format_id', 'extraction_52');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format', 'extraction_53');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_raster', 'extraction_54');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_vector', 'extraction_55');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer_id', 'extraction_56');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer', 'extraction_57');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field category', 'extraction_58');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field restriction', 'extraction_59');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field unused_attributes', 'extraction_60');
-					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('section extractionConfig', 'extraction_61');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_1','fr','Informations générales');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_1','en','General');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_4','fr','ID');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_4','en','ID');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_6','en','Status');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_6','fr','Etat');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_0','en','Extraction');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_0','fr','Extraction');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_7','en','Progress level');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_7','fr','Avancement');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_2','en','Supprimer les plans');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_2','fr','Supprimer les plans');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_8','en','Company');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_8','fr','Organisme');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_3','en','Ajouter une extraction');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_3','fr','Ajouter une extraction');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_5','fr','Demandeur');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_5','en','Demandeur');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_9','en','Layers');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_9','fr','Couches');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_10','fr','Systèmes de coordonnées');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_10','en','Coordinate systems');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_11','fr','Informations générales');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_11','en','General');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_12','fr','Supprimer les systèmes de coordonnées');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_12','en','Delete coordinate systems');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_13','fr','Ajouter un système de coordonnées');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_13','en','Add coordinate systems');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_14','fr','Formats');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_14','en','Formats');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_15','fr','Informations générales');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_15','en','General');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_16','fr','Supprimer les formats');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_16','en','Delete formats');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_17','fr','Ajouter un format');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_17','en','Add format');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_18','fr','Couches');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_18','en','Layers');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_19','fr','Informations générales');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_19','en','General');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_20','fr','Supprimer les couches');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_20','en','Delete layers');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_21','fr','Ajouter une couche');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_21','en','Add layer');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_22','fr','ID');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_22','en','ID');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_23','fr','Nom');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_23','en','Name');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_24','en','ID');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_24','fr','ID');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_25','fr','Nom');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_25','en','Name');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_26','fr','Raster');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_26','en','Raster');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_27','fr','Vecteur');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_27','en','Vector');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_28','fr','ID');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_28','en','ID');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_29','fr','Nom');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_29','en','Name');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_30','fr','Catégorie');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_30','en','Category');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_31','fr','Restriction');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_31','en','Restriction');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_32','fr','Attributs inutilisés');
-					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_32','en','Unused attributes');
-					INSERT INTO s_vitis.vm_mode (mode_id, module_id) VALUES ('extraction','extraction');
-					INSERT INTO s_vitis.vm_mode (mode_id, module_id) VALUES ('extraction_ref','extraction');
-					INSERT INTO s_vitis.vm_mode_rolname (index,mode_id, rolname) VALUES (0,'extraction','extraction_user');
-					INSERT INTO s_vitis.vm_mode_rolname (index,mode_id, rolname) VALUES (1,'extraction_ref','extraction_admin');
-					INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 1, 'extraction_ref', 'extraction_14', 'extraction/formats', 'editSectionForm', 'showSectionForm', 'format_id', 'ASC', 'extraction_format');
-					INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 0, 'extraction_ref', 'extraction_10', 'extraction/coordsyss', 'editSectionForm', 'showSectionForm', 'coordsys_id', 'ASC', 'extraction_coordsys');
-					INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 2, 'extraction_ref', 'extraction_18', 'extraction/layers', 'editSectionForm', 'showSectionForm', 'layer_id', 'ASC', 'extraction_layer');
-					INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 0, 'extraction', 'extraction_0', 'extraction/extractions', 'editSectionForm', 'showSectionForm', 'bo_id', 'ASC', 'extraction_extraction');
-					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_21', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
-					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_2', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
-					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_3', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
-					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_12', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'));
-					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_13', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'));
-					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_16', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'));
-					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_17', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'));
-					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_20', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
-					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'bo_id', '1', '1', 0, 50, 'left', 'extraction_4', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
-					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'status', '1', '1', 2, 150, 'left', 'extraction_6', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
-					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'progress_level', '1', '1', 4, 150, 'center', 'extraction_7', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), '<div data-app-navbar data-mode="info" data-hidevalue data-striped data-active></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
-					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'company', '1', '1', 3, 200, 'left', 'extraction_8', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
-					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'requestor', '1', '1', 1, 200, 'left', 'extraction_5', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
-					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'layers', '1', '1', 5, 60, 'left', 'extraction_9', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), '<div data-app-extraction-layers-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
-					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'coordsys_id', '1', '1', 0, 200, 'left', 'extraction_22', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'));
-					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'coordsys', '1', '1', 1, 200, 'left', 'extraction_23', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'));
-					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'format_id', '1', '1', 0, 100, 'left', 'extraction_24', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'));
-					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'format', '1', '1', 1, 200, 'left', 'extraction_25', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'));
-					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'use_for_raster', '1', '1', 2, 100, 'left', 'extraction_26', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'));
-					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'use_for_vector', '1', '1', 3, 100, 'left', 'extraction_27', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'));
-					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'layer_id', '1', '1', 0, 150, 'left', 'extraction_28', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
-					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'layer', '1', '1', 1, 150, 'left', 'extraction_29', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
-					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'category', '1', '1', 2, 150, 'left', 'extraction_30', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
-					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'restriction', '1', '1', 3, 100, 'left', 'extraction_31', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
-					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'unused_attributes', '1', '1', 4, 110, 'left', 'extraction_32', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), '<div data-app-extraction-ref-unused-attributes-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
-					INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_15', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), 'extraction');
-					INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_11', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), 'extraction');
-					INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_19', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), 'extraction');
-					INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_1', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), 'extraction');
-					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','START', 0);
-					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Nouveau', 10);
-					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','AE Généré', 30);
-					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','AE Soumis', 40);
-					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','AE Demandé', 20);
-					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Dépôt terminé', 100);
-					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Fichier déposé', 90);
-					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Autorisée', 60);
-					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Fichier accepté', 100);
-					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Fichier invalidé', 80);
-					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Extraction terminée', 80);
-					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Refusée', 100);
-					TRUNCATE s_extraction.rt_extraction_status_group;
-					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='START'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 1);
-					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Nouveau'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 2);
-					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Demandé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 3);
-					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Généré'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 4);
-					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Soumis'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 5);
-					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Soumis'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 6);
-					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Autorisée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 7);
-					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Autorisée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 8);
-					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Refusée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 9);
-					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Refusée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 10);
-					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Extraction terminée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 11);
-					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Fichier déposé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 12);
-					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Fichier invalidé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 13);
-					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Fichier accepté'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 14);
-					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Dépôt terminé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 15);
+					INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='START') , (select group_id from s_vitis.group where name ='demandeur'), (select nextval('s_extraction.seq_common')));
+					INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='Nouveau') , (select group_id from s_vitis.group where name ='demandeur'), (select nextval('s_extraction.seq_common')));
+					INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='AE Demandé') , (select group_id from s_vitis.group where name ='demandeur'), (select nextval('s_extraction.seq_common')));
+					INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='AE Généré') , (select group_id from s_vitis.group where name ='demandeur'), (select nextval('s_extraction.seq_common')));
+					INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='AE Soumis') , (select group_id from s_vitis.group where name ='demandeur'), (select nextval('s_extraction.seq_common')));
+					INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='Autorisée') , (select group_id from s_vitis.group where name ='demandeur'), (select nextval('s_extraction.seq_common')));
+					INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='Refusée') , (select group_id from s_vitis.group where name ='demandeur'), (select nextval('s_extraction.seq_common')));
+					INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='Terminée') , (select group_id from s_vitis.group where name ='demandeur'), (select nextval('s_extraction.seq_common')));
+					INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='AE Soumis') , (select group_id from s_vitis.group where name ='controleur'), (select nextval('s_extraction.seq_common')));
+					INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='Autorisée') , (select group_id from s_vitis.group where name ='controleur'), (select nextval('s_extraction.seq_common')));
+					INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='Refusée') , (select group_id from s_vitis.group where name ='controleur'), (select nextval('s_extraction.seq_common')));
+					ALTER TABLE s_extraction."extraction" ADD COLUMN email character varying(100);
+
+                                        -- Frédéric le 05/09/2017 à 16h30
+                                        ALTER TABLE s_extraction.rt_extraction_status OWNER TO u_vitis;
+                                        REVOKE ALL ON TABLE s_extraction.rt_extraction_status FROM postgres;
+
+                                        GRANT ALL ON TABLE s_extraction.extraction TO extraction_admin;
+                                        GRANT ALL ON TABLE s_extraction.extraction TO extraction_user;
+
+                                        GRANT ALL ON TABLE s_extraction.rt_coordsys TO extraction_admin;
+                                        GRANT SELECT ON TABLE s_extraction.rt_coordsys TO extraction_user;
+
+                                        GRANT ALL ON TABLE s_extraction.rt_extraction_status TO extraction_admin;
+                                        GRANT SELECT ON TABLE s_extraction.rt_extraction_status TO extraction_user;
+
+                                        GRANT ALL ON TABLE s_extraction.rt_format TO extraction_admin;
+                                        GRANT SELECT ON TABLE s_extraction.rt_format TO extraction_user;
+
+                                        GRANT ALL ON TABLE s_extraction.rt_layer TO extraction_admin;
+                                        GRANT SELECT ON TABLE s_extraction.rt_layer TO extraction_user;
 
+                                        GRANT SELECT ON TABLE s_extraction.rt_feature_model TO extraction_admin;
+                                        GRANT SELECT ON TABLE s_extraction.rt_feature_model TO extraction_user;
 				]]>
 			</code>
 		</query>
diff --git a/web_service/ws/Coordsys.class.inc b/web_service/ws/Coordsys.class.inc
index 7e76be5b1486ecf62b8a03fe5ce65bba4de05df2..9d472a5ff6057965f99e915189dd67f06d8f6f54 100755
--- a/web_service/ws/Coordsys.class.inc
+++ b/web_service/ws/Coordsys.class.inc
@@ -23,14 +23,13 @@ class Coordsys extends ExtractionExtraction {
      * @param type $aPath url of the request
      * @param type $aValues parameters of the request
      * @param type $properties properties
-     * @param type $bShortcut false to reinit variables
      * @param type $oConnection connection object
      */
-    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){
-        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    function __construct($aPath, $aValues, $properties, $bShortcut = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut);
     }
 
-/**
+    /**
      * @SWG\Get(path="/coordsyss/{id_coordsys}", 
      *   tags={"Coordsyss"},
      *   summary="Get Coordsys",
@@ -74,7 +73,7 @@ class Coordsys extends ExtractionExtraction {
         $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "rt_coordsys", "coordsys_id");
     }
 
-/**
+    /**
      * delete a Point_situation
      */
     function DELETE() {
diff --git a/web_service/ws/Coordsyss.class.inc b/web_service/ws/Coordsyss.class.inc
index 2ff9940840a6c6c2a87cf03bbb871a550f48f449..f3160591aa04261ca425e80edfcb37d60197da14 100755
--- a/web_service/ws/Coordsyss.class.inc
+++ b/web_service/ws/Coordsyss.class.inc
@@ -34,14 +34,12 @@ class Coordsyss extends ExtractionExtraction {
      * @param type $aPath url of the request
      * @param type $aValues parameters of the request
      * @param type $properties properties
-     * @param type $bShortcut false to reinit variables
-     * @param type $oConnection connection object
      */
-    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){
-        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    function __construct($aPath, $aValues, $properties, $bShortcut = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut);
     }
 
-/**
+    /**
      * @SWG\Get(path="/coordsyss",
      *   tags={"Coordsyss"},
      *   summary="Get Coordsyss",
@@ -124,7 +122,7 @@ class Coordsyss extends ExtractionExtraction {
         return $sMessage;
     }
 
-/**
+    /**
      * @SWG\Post(path="/coordsyss",
      *   tags={"Coordsyss"},
      *   summary="Add coordsys",
@@ -155,7 +153,7 @@ class Coordsyss extends ExtractionExtraction {
         return $aReturn['sMessage'];
     }
 
-/**
+    /**
      * @SWG\Put(path="/coordsyss/{id_coordsys}",
      *   tags={"Coordsyss"},
      *   summary="update Coordsyss",
@@ -195,7 +193,7 @@ class Coordsyss extends ExtractionExtraction {
         return $aReturn['sMessage'];
     }
 
-/**
+    /**
      * @SWG\Delete(path="/coordsyss",
      *   tags={"Coordsyss"},
      *   summary="delete Coordsyss",
@@ -262,7 +260,7 @@ class Coordsyss extends ExtractionExtraction {
         return $aReturn['sMessage'];
     }
 
-	
+    
 }
 
 ?>
\ No newline at end of file
diff --git a/web_service/ws/Extraction.class.inc b/web_service/ws/Extraction.class.inc
index 1351aa93719d4bbfd1d8836cc286ab3a51a79690..162782d866f5bb1e9e93232475efae0fc060832f 100755
--- a/web_service/ws/Extraction.class.inc
+++ b/web_service/ws/Extraction.class.inc
@@ -1,5 +1,5 @@
 <?php
-    
+
 require_once __DIR__ . '/ExtractionExtraction.class.inc';
 require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
 
@@ -15,22 +15,21 @@ require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection
  * 
  */
 class Extraction extends ExtractionExtraction {
-    
+
     public $oError;
-        
+
     /**
      * construct
      * @param type $aPath url of the request
      * @param type $aValues parameters of the request
      * @param type $properties properties
-     * @param type $bShortcut false to reinit variables
      * @param type $oConnection connection object
      */
-    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){
-        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    function __construct($aPath, $aValues, $properties, $bShortcut = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut);
     }
-        
-/**
+
+    /**
      * @SWG\Get(path="/extractions/{id_extraction}", 
      *   tags={"Extractions"},
      *   summary="Get Extraction",
@@ -66,33 +65,27 @@ class Extraction extends ExtractionExtraction {
      *     )
      *  )
      */
-         
+
     /**
      * get informations about mode
      */
     function GET() {
         require $this->sRessourcesFile;
-        $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "v_extraction", "bo_id");
+        $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "extraction", "bo_id");
         // Url vers l'acte d'engagement.
         if (!empty($this->aFields['ae']))
             $this->aFields['ae'] = $this->aProperties['web_server_name'] . '/' . $this->aProperties['ws_data_alias'] . '/extraction/extraction_extraction_extraction/documents/' . $this->aValues["my_vitis_id"] . '/ae/' . $this->aFields['ae'];
-                
+        
         // Date au format Français.
         if ($this->aProperties["language"] == 'fr') {
             $oDate = new DateTime($this->aFields['creation_date']);
             $this->aFields['creation_date'] = $oDate->format('d/m/Y');
         }
-            
+        
         // Libellés du champ "Commune".
         if (!empty($this->aFields['id_com'])) {
-            //On donne les paramètres à remplacer dans la requête
-            $aSQLParams = array(
-            'id_com' => array('value' => $this->aFields['id_com'], 'type' => 'group')
-            );
-                
-             $sSql = $aSql['getCommuneLabel'];
-                 
-            $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams);
+            $sSql = str_replace('[id_com]', str_replace('|', ',', $this->aFields['id_com']), $aSql['getCommuneLabel']);
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, array());
             if (!$this->oConnection->oBd->enErreur()) {
                 while ($aLine = $this->oConnection->oBd->ligneSuivante($oPDOresult)) {
                     $aCommune[] = $aLine['nom_com'];
@@ -100,17 +93,11 @@ class Extraction extends ExtractionExtraction {
                 $this->aFields['id_com_label'] = implode(',', $aCommune);
             }
         }
-            
-        // Libellés du champ "Conseil de Territoire".
+        
+        // Libellés du champ "Conseil de Territoire".
         if (!empty($this->aFields['id_conseil'])) {
-            
-            $aSQLParams = array(
-            'id_conseil' => array('value' => $this->aFields['id_conseil'], 'type' => 'group')
-            );
-            //$sSql = str_replace('[id_conseil]', str_replace('|', ',', $this->aFields['id_conseil']), $aSql['getConseilLabel']);
-                
-            $sSql = $aSql['getConseilLabel'];
-            $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams);
+            $sSql = str_replace('[id_conseil]', str_replace('|', ',', $this->aFields['id_conseil']), $aSql['getConseilLabel']);
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, array());
             if (!$this->oConnection->oBd->enErreur()) {
                 while ($aLine = $this->oConnection->oBd->ligneSuivante($oPDOresult)) {
                     $aConseil[] = $aLine['nom_epci'];
@@ -118,13 +105,12 @@ class Extraction extends ExtractionExtraction {
                 $this->aFields['id_conseil_label'] = implode(',', $aConseil);
             }
         }
-            
-        // Nom de l'état de l'extraction.
-        error_log(print_r($this->aFields['status'], true));
+        
+        // Nom de l'état de l'extraction.
         $this->aFields['status_name'] = $this->aFields['status'];
     }
-        
-/**
+
+    /**
      * delete a Point_situation
      */
     function DELETE() {
@@ -135,7 +121,5 @@ class Extraction extends ExtractionExtraction {
             $this->aFields["bo_id"] = $this->aValues["my_vitis_id"];
         }
     }
-        
 }
-    
 ?>
\ No newline at end of file
diff --git a/web_service/ws/ExtractionExtraction.class.inc b/web_service/ws/ExtractionExtraction.class.inc
index 9aa4319a4344ef5f77c1e6ce2d14c83fb605fa39..b2cf23b422d168991986355482121ead3400e08e 100755
--- a/web_service/ws/ExtractionExtraction.class.inc
+++ b/web_service/ws/ExtractionExtraction.class.inc
@@ -9,6 +9,10 @@ class ExtractionExtraction extends Vitis {
     //Chemin du fichier de ressources contenant les requêtes SQL
     var $sRessourcesFile = 'ws/extraction/ExtractionExtraction.class.sql.inc';
     
+    function __construct($aPath, $aValues, $properties, $bShortcut) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut);
+    }
+
     /**
      * Upload un document dans le ws_data du module Extraction.
      * @param type $sIndex
diff --git a/web_service/ws/ExtractionExtraction.class.sql.inc b/web_service/ws/ExtractionExtraction.class.sql.inc
index 5e4c86d7461d574bbabc86de3109e79550fdd511..a1e819a34e1998baa7902ed09ba4e06d1a270b24 100755
--- a/web_service/ws/ExtractionExtraction.class.sql.inc
+++ b/web_service/ws/ExtractionExtraction.class.sql.inc
@@ -8,13 +8,10 @@ $aSql['getTableColumn'] = 'SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WH
 $aSql['getUserPrivileges'] = 'SELECT groname FROM pg_user s LEFT OUTER JOIN pg_group g on (s.usesysid = any(g.grolist) )inner join [sSchemaFramework].user on "user".login = usename WHERE user_id = [user_id]';
 $aSql['listDomain'] = 'SELECT distinct domain, alias FROM [sSchemaFramework].domain WHERE "type" = \'AD\'';
 $aSql['createRolname'] = 'CREATE ROLE "vitis_[sDomain]" NOSUPERUSER INHERIT NOCREATEDB CREATEROLE;';
-$aSql['getInfoRolname'] = 'SELECT * FROM pg_catalog.pg_roles WHERE rolname = \'vitis_[sDomain]\'';
+$aSql['getInfoRolname'] = 'SELECT * FROM pg_authid WHERE rolname = \'vitis_[sDomain]\'';
 // Extraction
 $aSql['getCommuneLabel'] = 'SELECT nom_com FROM public.ref_cpa_limadm_commune WHERE id_com IN([id_com])';
 $aSql['getConseilLabel'] = 'SELECT nom_epci FROM public.ref_amp_lim_ct WHERE objectid IN([id_conseil])';
-$aSql['getCtId'] = 'SELECT distinct ct_id from [schema_extraction].commune';
-$aSql['getRtLayerWithCtId'] = 'SELECT distinct layer_id, layer, category, mutualized, statistique FROM [schema_extraction].rt_layer INNER JOIN s_extraction.commune ON rt_layer.ct_id = commune.ct_id WHERE (rt_layer."ct_id" IN ([aCtId]))';
-$aSql['getRtLayer'] = 'SELECT distinct layer_id, layer, category, mutualized, statistique FROM [schema_extraction].rt_layer INNER JOIN s_extraction.commune ON rt_layer.ct_id = commune.ct_id';
-
+$aSql['getRtLayer'] = 'SELECT layer_id, layer, category FROM [schema_extraction].rt_layer [sql_params] ORDER BY category, layer';
 $aSql['getUserGroups'] = 'SELECT name FROM [schema_framework]."group",[schema_framework].user_group WHERE "group".group_id = user_group.group_id AND user_group.user_id = [user_id]';
 ?>
\ No newline at end of file
diff --git a/web_service/ws/Extraction_depot.class.inc b/web_service/ws/Extraction_depot.class.inc
deleted file mode 100755
index 51e0c62ee46e290f1026da56738a1836a440961a..0000000000000000000000000000000000000000
--- a/web_service/ws/Extraction_depot.class.inc
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-require_once __DIR__ . '/ExtractionExtraction.class.inc';
-require_once __DIR__ . '/../../class/vitis_lib/Connection.class.inc';
-
-/**
- * \file Extraction_depot.class.inc
- * \class Extraction_depot
- *
- * \author WAB <support.wab@veremes.com>.
- *
- * 	\brief This file contains the Extraction_depot php class
- *
- * This class defines operation for one Extraction_depot
- * 
- */
-class Extraction_depot extends ExtractionExtraction {
-
-    public $oError;
-
-    /**
-     * construct
-     * @param type $aPath url of the request
-     * @param type $aValues parameters of the request
-     * @param type $properties properties
-     * @param type $bShortcut false to reinit variables
-     * @param type $oConnection connection object
-     */
-    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){
-        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
-    }
-
-	/**
-     * @SWG\Get(path="/extraction_depots/{id_extraction_depot}", 
-     *   tags={"Extraction_depots"},
-     *   summary="Get Extraction_depot",
-     *   description="Request to get Extraction_depot by id",
-     *   operationId="GET",
-     *   produces={"application/xml", "application/json"},
-     *   @SWG\Parameter(
-     *     name="token",
-     *     in="query",
-     *     description="user token",
-     *     required=true,
-     *     type="string"
-     *   ),
-     * @SWG\Parameter(
-     *     name="id_extraction_depot",
-     *     in="path",
-     *     description="id_extraction_depot",
-     *     required=true,
-     *     type="integer",
-     *   format="int32"
-     *   ),
-     * @SWG\Parameter(
-     *     name="attributs",
-     *     in="query",
-     *     description="list of attributs",
-     *     required=false,
-     *     type="string"
-     *   ),
-     *   @SWG\Response(
-     *         response=200,
-     *         description="Extraction_depot Response",
-     *         @SWG\Schema(ref="#/definitions/extraction_depots")
-     *     )
-     *  )
-     */
-
-    /**
-     * get informations about mode
-     */
-    function GET() {
-        $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "", "");
-    }
-
-
-
-}
-
-?>
\ No newline at end of file
diff --git a/web_service/ws/Extraction_depots.class.inc b/web_service/ws/Extraction_depots.class.inc
deleted file mode 100755
index 3285bfd4986a86f1ebab72662d343b8335295da1..0000000000000000000000000000000000000000
--- a/web_service/ws/Extraction_depots.class.inc
+++ /dev/null
@@ -1,427 +0,0 @@
-<?php
-    
-/**
- * \file Extraction_depots.class.inc
- * \class Extraction_depots
- *
- * \author WAB <support.wab@veremes.com>.
- *
- * 	\brief This file contains the Extraction_depots php class
- *
- * This class defines Rest Api to Vitis Extraction_depots
- * 
- */
-require_once __DIR__ . '/ExtractionExtraction.class.inc';
-require_once 'Extraction_depot.class.inc';
-require_once(__DIR__ . '/../../class/wab_lib/BusinessObject.class.inc');
-require_once __DIR__ .'/Extractions.class.inc';
-    
-    
-class Extraction_depots extends ExtractionExtraction {
-    /**
-     * @SWG\Definition(
-     *   definition="/extraction_depots",
-     *   allOf={
-     *     @SWG\Schema(ref="#/definitions/extraction_depots")
-     *   }
-     * )
-     * * @SWG\Tag(
-     *   name="Extraction_depots",
-     *   description="Operations about Extraction_depots"
-     * )
-     */
-         
-    /**
-     * construct
-     * @param type $aPath url of the request
-     * @param type $aValues parameters of the request
-     * @param type $properties properties
-     * @param type $bShortcut false to reinit variables
-     * @param type $oConnection connection object
-     */
-    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){
-        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
-    }
-        
-        
-    /**
-     * @SWG\Get(path="/extraction_depots",
-     *   tags={"Extraction_depots"},
-     *   summary="Get Extraction_depots",
-     *   description="Request to get Extraction_depots",
-     *   operationId="GET",
-     *   produces={"application/xml", "application/json", "application/x-vm-json"},
-     *   @SWG\Parameter(
-     *     name="token",
-     *     in="query",
-     *     description="user token",
-     *     required=true,
-     *     type="string"
-     *   ),
-     * @SWG\Parameter(
-     *     name="order_by",
-     *     in="query",
-     *     description="list of ordering fields",
-     *     required=false,
-     *     type="string"
-     *   ),
-     * @SWG\Parameter(
-     *     name="sort_order",
-     *     in="query",
-     *     description="sort_order",
-     *     required=false,
-     *     type="string"
-     *   ),
-     * @SWG\Parameter(
-     *     name="limit",
-     *     in="query",
-     *     description="number of element",
-     *     required=false,
-     *     type="integer",
-     *     format="int32"
-     *   ),
-     * @SWG\Parameter(
-     *     name="offset",
-     *     in="query",
-     *     description="index of first element",
-     *     required=false,
-     *     type="string",
-     *     format="int32"
-     *   ),
-     * @SWG\Parameter(
-     *     name="attributs",
-     *     in="query",
-     *     description="list of attributs",
-     *     required=false,
-     *     type="string"
-     *   ),
-     * @SWG\Parameter(
-     *     name="filter",
-     *     in="query",
-     *     description="filter results",
-     *     required=false,
-     *     type="string"
-     *   ),
-     * @SWG\Parameter(
-     *     name="distinct",
-     *     in="query",
-     *     description="delete duplicates",
-     *     required=false,
-     *     type="boolean"
-     *   ),
-     *   @SWG\Response(
-     *         response=200,
-     *         description="extraction_depot Response",
-     *         @SWG\Schema(ref="#/definitions/extraction_depots")
-     *     )
-     *  )
-     */
-         
-    /**
-     * get Extraction_depots
-     * @return  Extraction_depots
-     */
-    function GET() {
-        if (!empty($this->aPath[2]))
-        {
-            if ($this->aPath[2] == "Tree")
-            {
-                $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot' ;
-                //Création du dossier extraction_depot
-                if (!is_dir($sDirPath))
-                {
-                    //Création du dossier du demandeur
-                    if (!mkdir($sDirPath))
-                    {
-                        //Mettre une erreur dans le log d'erreur
-                    }
-                }
-                $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/'.$_SERVER["REMOTE_ADDR"];
-                if (!is_dir($sDirPath))
-                {
-                    if (!mkdir($sDirPath))
-                    {
-                       //Mettre une erreur dans le log d'erreur
-                    }
-                }
-                $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/'.$_SERVER["REMOTE_ADDR"]."/Fichiers déposés";    
-                if (!is_dir($sDirPath))
-                {
-                    if (!mkdir($sDirPath))
-                    {
-                        //Mettre une erreur dans le log d'erreur
-                    }
-                }
-                $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/'.$_SERVER["REMOTE_ADDR"]."/Résultats";
-                if (!is_dir($sDirPath))
-                {
-                    if (!mkdir($sDirPath))
-                    {
-                        //Mettre une erreur dans le log d'erreur
-                    }
-                }
-                $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/'.$_SERVER["REMOTE_ADDR"];
-                return json_encode($this->getFolderInfos($sDirPath));
-            }
-            elseif ($this->aPath[2] == "File") 
-            {
-                $this->getWorkspaceFile();
-            }
-        }
-    }
-        
-     /**
-     * Get file.
-     */
-    function getWorkspaceFile() {
-        $aReturn = array('status' => 1, 'message' => '');
-        $sFilePath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/'.$_SERVER["REMOTE_ADDR"]."/".$this->aValues['file_name'];
-        // Le fichier existe ?
-        if (file_exists($sFilePath)) {
-            header("Content-Type: application/octet-stream");
-            header("Content-Transfer-Encoding: Binary");
-            header("Content-disposition: attachment; filename=\"" . $this->aValues['file_name'] . "\"");
-            header('Content-Length: ' . filesize($sFilePath));
-            error_log(readfile($sFilePath));
-        }
-    }
-        
-    /**
-     * 
-     * @param string $sDirectoryPath
-     * @return array $aTree
-     */
-    function getFolderInfos($sDirectoryPath){
-        
-        if(is_dir($sDirectoryPath)){
-            $aContentDir = scandir($sDirectoryPath);
-            $aTree = $this->getFileInfos($sDirectoryPath);
-            $aDir = array();
-            for ($i =0 ; $i < count($aContentDir); $i++){
-                if($aContentDir[$i] !== "." && $aContentDir[$i] !== ".."){
-                    array_push($aDir, $this->getFolderInfos($sDirectoryPath . "/" . $aContentDir[$i]));
-                }
-            }
-                
-            $aTree["content"] = $aDir;
-            $aTree["status"] = 1;
-            return $aTree;
-        } else {
-            return $this->getFileInfos($sDirectoryPath);
-        }
-    }
-        
-    /**
-     * 
-     * @param string $sFilePath
-     * @return array
-     */
-    function getFileInfos ($sFilePath){
-        $iFileSize = filesize($sFilePath);
-            
-        $sFileSize = $iFileSize . "octets";
-        if($iFileSize > 1024){
-            if($iFileSize > 1024*1024){
-                if($iFileSize > 1024*1024*1024){
-                    $sFileSize = "-";
-                } else {
-                    $sFileSize = (ceil($iFileSize/(1024*1024))) . "Mo";
-                }
-            }else{
-                $sFileSize = (ceil($iFileSize/1024)) . "Ko";
-            }
-        }
-            
-        $aFileName = explode(DIRECTORY_SEPARATOR, $sFilePath);
-            
-        return array("filename"=>$aFileName[count($aFileName) - 1], "size"=>$sFileSize, "lastModification"=> date ("d/m/Y H:i:s", filemtime($sFilePath)));
-    }
-        
-    /**
-     * @SWG\Delete(path="/[Class_name]s",
-     *   tags={"[Class_name_upper]s"},
-     *   summary="delete [Class_name_upper]s",
-     *   description="Request to delete [Class_name_upper]s",
-     *   operationId="DELETE",
-     *   produces={"application/xml", "application/json"},
-     *   @SWG\Parameter(
-     *     name="token",
-     *     in="query",
-     *     description="token",
-     *     required=true,
-     *     type="string"
-     *   ),
-     * * @SWG\Parameter(
-     *     name="idList",
-     *     in="query",
-     *     description="id of the [Class_name]",
-     *     required=true,
-     *     type="string"
-     *   ),
-     * @SWG\Response(
-     *         response=200,
-     *         description="[Class_name] Response",
-     *         @SWG\Schema(ref="#/definitions/[Class_name]s")
-     *     )
-     *  )
-     */
-    /**
-     * @SWG\Delete(path="/[Class_name]s/{id_[Class_name]}",
-     *   tags={"[Class_name_upper]s"},
-     *   summary="delete [Class_name_upper]s",
-     *   description="Request to delete [Class_name_upper]s",
-     *   operationId="DELETE",
-     *   produces={"application/xml", "application/json"},
-     *   @SWG\Parameter(
-     *     name="token",
-     *     in="query",
-     *     description="[Class_name_upper] token",
-     *     required=true,
-     *     type="string"
-     *   ),
-     * * @SWG\Parameter(
-     *     name="id_[Class_name]",
-     *     in="path",
-     *     description="id of the [Class_name_upper]s",
-     *     required=true,
-     *     type="integer",
-     *     format = "int32"
-     *   ),
-     * @SWG\Response(
-     *         response=200,
-     *         description="Poprerties Response",
-     *         @SWG\Schema(ref="#/definitions/[Class_name]s")
-     *     )
-     *  )
-     */
-         
-    /**
-     * delete [Class_name]s
-     * @return id of [Class_name]s deleted or error object if a [Class_name]s is not deleted
-     */
-    function DELETES() {
-        $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/'.$_SERVER["REMOTE_ADDR"];
-        //On supprime le fichier
-        $sMessage = unlink($sDirPath."/".$this->aValues['file_name']);
-        return $sMessage;
-    }    
-        
-        
-    	/**
-     * @SWG\Put(path="/[Class_name]s/{id_[Class_name]}",
-     *   tags={"[Class_name_upper]s"},
-     *   summary="update [Class_name_upper]s",
-     *   description="Request to update [Class_name_upper]s",
-     *   operationId="PUT",
-     *   produces={"application/xml", "application/json"},
-     *   @SWG\Parameter(
-     *     name="token",
-     *     in="query",
-     *     description="[Class_name_upper] token",
-     *     required=true,
-     *     type="string"
-     *   ),
-     * * @SWG\Parameter(
-     *     name="id_[Class_name]",
-     *     in="path",
-     *     description="id of the [Class_name_upper]s",
-     *     required=true,
-     *     type="integer",
-     *     format = "int32"
-     *   ),
-     * @SWG\Response(
-     *         response=200,
-     *         description="Poprerties Response",
-     *         @SWG\Schema(ref="#/definitions/[Class_name]s")
-     *     )
-     *  )
-     */
-         
-    /**
-     * update [Class_name]s
-     * @return id of [Class_name]s updated or error object if a [Class_name]s is not updated
-     */
-    function PUT() {
-        if (!empty($this->aValues["action"]) && $this->aValues["action"] == "Metadata") {
-            $aReturn = $this->reintegrateMetadata();
-                
-            $aXmlRacineAttribute['status'] = $aReturn['status'];
-            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
-        } else {
-            $sDirName = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/'.$_SERVER["REMOTE_ADDR"];
-            $error_message = "";
-                
-            // Si le dossier {id} n'existe pas (Important pour gérer les erreurs)
-            if (!is_dir($sDirName)) {
-                $error_message .= $sDirName . " does not exist";
-                writeToErrorLog("WARNING: " . $error_message);
-                    
-                $aXmlRacineAttribute['status'] = 0;
-                $this->aFields = array();
-                $this->aFields['errorMessage'] = $error_message;
-                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
-                return $sMessage;
-            }
-            // Si le dossier {id}/Fichiers déposés n'existe pas (Important pour gérer les erreurs)
-            if (!is_dir($sDirName . "/Fichiers déposés")) {
-                $error_message .= $sDirName . "/Fichiers déposés does not exist";
-                writeToErrorLog("WARNING: " . $error_message);
-                    
-                $aXmlRacineAttribute['status'] = 0;
-                $this->aFields = array();
-                $this->aFields['errorMessage'] = $error_message;
-                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
-                return $sMessage;
-            }
-                
-            // Si le dossier {id}/form n'existe pas il est crée
-            if (!is_dir($sDirName . "/Résultats")) {
-                writeToErrorLog("WARNING: " . $sDirName . "/Résultats");
-                @mkdir($sDirName . "/Résultats");
-            }
-                
-            if (!empty($this->aValues["control_file_file"])) {
-                $this->aValues["control_file"] = $this->aValues["control_file_name"];
-            }
-                if (!empty($this->aValues["control_file_file"])) {
-                    //if ($aReturn['sStatus'] == 1) {
-                        $aXmlRacineAttribute['status'] = 1;
-                        $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
-                            $sDirPath = $this->aProperties["upload_dir"]."/".getUniqRandomId();
-                            while (is_dir($sDirPath))
-                            {
-                                $sDirPath = $this->aProperties["upload_dir"]."/".getUniqRandomId();
-                            }
-                            if (!mkdir($sDirPath))
-                            {
-                                return false;
-                            }
-                            // Sauvegarde le nouveau fichier.
-                            $fp = fopen($sDirPath .'/'. utf8_decode($this->aValues["control_file_name"]), "w");
-                            fwrite($fp, $this->aValues["control_file_file"]);
-                            fclose($fp);
-                            
-                            //error_log($sDirPath.'/'.$this->aValues["control_file_name"]);
-                            $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
-                            $this->oBO->insertOrder('EM0160AYYTK48', 'sourceDir='.end(explode("/", $sDirPath)).'/'.$this->aValues["control_file_name"].'|sourceMotif=*.shp');
-                            //$this->Extractions = new Extractions(__DIR__, $this->aValues, $this->aProperties);
-                            
-                            //$fp = fopen($sDirName . "/Fichiers déposés/" . utf8_decode($this->aValues["control_file_name"]), "w");
-                            //fwrite($fp, $this->aValues["control_file_file"]);
-                            //fclose($fp);
-                            //error_log(print_r($this->oBO,true));
-                            //$this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
-                            //$this->oBO->insertOrder('EM0160AYYTK48', 'bo_id='.$this->aValues['bo_id']);
-                }
-        }
-            
-        return $sMessage;
-    }
-        
-        
-        
-        
-        
-}
-    
-?>
\ No newline at end of file
diff --git a/web_service/ws/Extractions.class.inc b/web_service/ws/Extractions.class.inc
index 0b22a30c4a138b708b99bcbfcaf6765fd1cdb482..456c2aa73d065f0a3afeec6a6b03be3a2300704e 100755
--- a/web_service/ws/Extractions.class.inc
+++ b/web_service/ws/Extractions.class.inc
@@ -1,5 +1,5 @@
 <?php
-    
+
 /**
  * \file Extractions.class.inc
  * \class Extractions
@@ -16,8 +16,6 @@ require_once 'Extraction.class.inc';
 require_once(dirname($_SERVER['SCRIPT_FILENAME']) . '/class/wab_lib/BusinessObject.class.inc');
 
 class Extractions extends ExtractionExtraction {
-    
-    protected $iIdExtraction;
     /**
      * @SWG\Definition(
      *   definition="/extractions",
@@ -30,20 +28,18 @@ class Extractions extends ExtractionExtraction {
      *   description="Operations about Extractions"
      * )
      */
-         
+
     /**
      * construct
      * @param type $aPath url of the request
      * @param type $aValues parameters of the request
      * @param type $properties properties
-     * @param type $bShortcut false to reinit variables
-     * @param type $oConnection connection object
      */
-    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){
-        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    function __construct($aPath, $aValues, $properties, $bShortcut = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut);
     }
-        
-/**
+
+    /**
      * @SWG\Get(path="/extractions",
      *   tags={"Extractions"},
      *   summary="Get Extractions",
@@ -136,7 +132,7 @@ class Extractions extends ExtractionExtraction {
      *     )
      *  )
      */
-         
+
     /**
      * get Extractions
      * @return  Extractions
@@ -150,8 +146,8 @@ class Extractions extends ExtractionExtraction {
         }
         return $sMessage;
     }
-        
-/**
+
+    /**
      * @SWG\Post(path="/extractions",
      *   tags={"Extractions"},
      *   summary="Add extraction",
@@ -172,7 +168,7 @@ class Extractions extends ExtractionExtraction {
      *     )
      *  )
      */
-         
+
     /**
      * insert extraction
      * @return id of the extraction created
@@ -183,8 +179,8 @@ class Extractions extends ExtractionExtraction {
 	eval('$this->' . $this->aValues['tr_status_method'] . '();');
         return $aReturn['sMessage'];
     }
-        
-/**
+
+    /**
      * @SWG\Put(path="/extractions/{id_extraction}",
      *   tags={"Extractions"},
      *   summary="update Extractions",
@@ -213,7 +209,7 @@ class Extractions extends ExtractionExtraction {
      *     )
      *  )
      */
-         
+
     /**
      * update extractions
      * @return id of extractions updated or error object if a extractions is not updated
@@ -227,33 +223,10 @@ class Extractions extends ExtractionExtraction {
         // Méthode de transition.
         if (!empty($this->aValues['tr_status_method']))
             eval('$this->' . $this->aValues['tr_status_method'] . '();');
-             
-        //On vérifie que le fichier existe et ne soit pas vide
-        if (!empty($this->aValues['input_deposit_file']))
-        {
-                        //On va déplacer le fichier dans un dossier temporaire
-                        $aXmlRacineAttribute['status'] = 1;
-                        $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
-                            $sDirPath = $this->aProperties["upload_dir"]."/".getUniqRandomId();
-                            while (is_dir($sDirPath))
-                            {
-                                $sDirPath = $this->aProperties["upload_dir"]."/".getUniqRandomId();
-                            }
-                            if (!mkdir($sDirPath))
-                            {
-                                return false;
-                            }
-                            // Sauvegarde le nouveau fichier.
-                            $fp = fopen($sDirPath .'/'. utf8_decode($this->aValues["input_deposit_name"]), "w");
-                            fwrite($fp, $this->aValues["input_deposit_file"]);
-                            fclose($fp);
-                            //Demande GTF
-                            $this->oBO->insertOrder('EM0160AYYTK48', 'sourceDir='.end(explode("/", $sDirPath)).'/'.$this->aValues["input_deposit_name"].'|sourceMotif=*.shp');
-        }
         return $aReturn['sMessage'];
     }
-        
-/**
+
+    /**
      * @SWG\Delete(path="/extractions",
      *   tags={"Extractions"},
      *   summary="delete Extractions",
@@ -310,7 +283,7 @@ class Extractions extends ExtractionExtraction {
      *     )
      *  )
      */
-         
+
     /**
      * delete extractions
      * @return id of extractions deleted or error object if a extractions is not deleted
@@ -319,279 +292,144 @@ class Extractions extends ExtractionExtraction {
         $aReturn = $this->genericDelete($this->aProperties['schema_extraction'], 'extraction', 'bo_id');
         return $aReturn['sMessage'];
     }
-        
-     /**
-     * Liste des couches.
-     */
-    function getLayers() {
-        require $this->sRessourcesFile;
-        //On décode le json récupéré via le filtre
-        if (!empty($this->aValues["filter"]))
-        {
-            $decode = $this->decodeJSONFilter($this->aValues["filter"],$this->aProperties['schema_extraction'],$this->aValues["table"] );
-        }
-            
-        if (is_object($this->aValues) || is_array($this->aValues)) {
-            $sJSONFilter = json_encode($this->aValues);
-        }
-            
-        if (!empty($sJSONFilter))
-        {
-            $aJSONFilter = json_decode($sJSONFilter, true);
-        }
-            
-        if (is_object($aJSONFilter["filter"]) || is_array($aJSONFilter["filter"])) {
-            $sJSONFilter = json_encode($aJSONFilter["filter"]);
-        }
-        $aSQLParams = array(
-            'schema_framework' => array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name'),
-            'user_id' => array('value' => $_SESSION['ses_user_id'], 'type' => 'string')
-        );
-            
-        $sSql = $aSql['getUserGroups'];
-        $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams);
-        if (!$this->oConnection->oBd->enErreur()) {
-            $aResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult);
-            foreach ($aResult as $aUserGroup) {
-                $aUserGroups[] = $aUserGroup['name'];
-            }
-                
-            if ($this->aValues["filter"])
-            {
-                $aSQLParams = array(
-                    'schema_extraction' => array('value' => $this->aProperties['schema_extraction'], 'type' => 'schema_name'),
-                    );
-                        
-                $sSql = $aSql['getCtId'];
-                //On donne la condition
-                if ($decode["request"]) {
-                    $sSql .= " WHERE ";
-                    $sSql .= $decode["request"];
-                    $sSql .= 'ORDER BY ct_id;';
-                }
-                //error_log(print_r($sSql, true));
-                $merge = array_merge($aSQLParams, $decode["params"]);
-                    
-                $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $merge);
-                    
-                $aCtResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult);
-            }
-            // Restriction de l'utilisateur suivant ses groupes.
-            if (in_array('interne', $aUserGroups))
-                $sSqlParams = " ORDER BY category, layer_id;";
-            else if (in_array('restreint', $aUserGroups))
-                $sSqlParams = " AND restriction <> 'interne' ORDER BY category, layer_id;";
-            else
-                $sSqlParams = " AND restriction = 'public' ORDER BY category, layer_id;";
-            // Liste des cartes.
-            $this->aFields['treeview_layers'] = array();
-                
-            //Requête pour récupérer les couches
-            if ($this->aValues["filter"])
-            {
-                $sSql = $aSql['getRtLayerWithCtId'] . $sSqlParams;
-            }
-            else
-            {
-                $sSql = $aSql['getRtLayer'] . $sSqlParams;
-            }
-            //$ct_id = [];
-            if ($aCtResult)
-            {
-                for ($i = 0; $i < sizeof($aCtResult); $i++)
-                {
-                        $ct_id .=  $aCtResult[$i]["ct_id"]."|";
-                }
-                //On retire la dernière pipe qui ne sert à rien
-                $ct_idToSend = substr($ct_id, 0, -1);
-            } else {
-                //On donne un id qui n'existe pas pour éviter une erreur dans la requête SQL
-                $ct_idToSend = -1;
-            }
-            //error_log(print_r($aCtResult[$i]["ct_id"], true));
-            $aSQLParams = array(
-                'schema_extraction' => array('value' => $this->aProperties['schema_extraction'], 'type' => 'schema_name'),
-                'aCtId' => array('value' => $ct_idToSend, 'type' => 'group')
-            );
-            $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams);
-            if (!$this->oConnection->oBd->enErreur()) {
-                $aRtLayer = $this->oConnection->oBd->getResultTableAssoc($oPDOresult);
-                $aLayers = array();
-                if (!empty($aRtLayer)) {
-                    foreach ($aRtLayer as $aLayer)
-                    {
-                        
-                            $aLayers[$aLayer['category']][] = array("text" => $aLayer['layer'], "value" => $aLayer['layer_id'], "mutualized" => $aLayer['mutualized'], "statistique" => $aLayer['statistique']);
-                                
-                    }
-                }
-                $this->aFields['layers'] = $aLayers;
-                $aXmlRacineAttribute['status'] = 1;
-                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
-            } else {
-                $aXmlRacineAttribute['status'] = 0;
-                $this->aFields['error'] = "Request error.";
-                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
-            }
-        } else {
-            $aXmlRacineAttribute['status'] = 0;
-            $this->aFields['error'] = "Request error.";
-            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
-        }
-        //error_log(print_r($sMessage, true));
-        return $sMessage;
-    }
-        
-	
-    /**
-    * Transition Method trNouveau
-    */
-    function trNouveau() {
-        $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
-            
-        // Check si la table existe si oui change l'état 
-        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Nouveau");
-            
-    }
-        
+
+    
     /**
     * Transition Method trGenerer
     */
     function trGenerer() {
         $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
-            
         // Check si la table existe si oui change l'état 
         $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Généré");
-            
-    }
         
-    /**
-    * Transition Method trResoumettre
-    */
-    function trResoumettre() {
-        $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
-            
-        // Check si la table existe si oui change l'état 
-        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Généré");
-//$this->sendmail(9904);
-        $this->sendmail(171);
     }
-        
+		
     /**
-    * Transition Method trSoumettre
+    * Transition Method trNouveau
     */
-    function trSoumettre() {
+    function trNouveau() {
         $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
-            
-        // Check si la table existe si oui change l'état 
-        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Soumis");
-        //$this->oBO->sendmail(39);
-        $this->oBO->sendmail(174);
-    }
         
-    /**
-    * Transition Method trDemander
-    */
-    function trDemander() {
-        $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
-        $this->oBO->insertOrder('832HZ8J2PTCSG', 'bo_id='.$this->aValues['bo_id']);
         // Check si la table existe si oui change l'état 
-        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Demandé");
-            
-    }
+        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Nouveau");
         
-    /**
-    * Transition Method trReception
-    */
-    function trReception() {
-        $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
-            
-        // Check si la table existe si oui change l'état 
-        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Dépôt terminé");
-            
     }
-        
+		
     /**
-    * Transition Method trDeposer
+    * Transition Method trTerminer
     */
-    function trDeposer() {
+    function trTerminer() {
         $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
+        
         // Check si la table existe si oui change l'état 
-        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Fichier déposé");
-            
-    }
+        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Terminée");
         
+    }
+		
     /**
     * Transition Method trAutoriser
     */
     function trAutoriser() {
         $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
-        $this->oBO->insertOrder('8BCP8WGIOW4KO', 'bo_id='.$this->aValues['bo_id']);
+        $this->oBO->insertOrder('D16ECS75P', 'bo_id='.$this->aValues['bo_id'], $this->aValues['priority_id'], 2 );
         // Check si la table existe si oui change l'état 
         $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Autorisée");
-            
-    }
         
-    /**
-    * Transition Method trAccepter
-    */
-    function trAccepter() {
-        $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
-            
-        // Check si la table existe si oui change l'état 
-        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Fichier accepté");
-        //$this->oBO->sendmail(id_du_mail_pour_dire_que_le_fichier_est_accepté);
-        $this->trReception();
-            
     }
-        
+		
     /**
-    * Transition Method trInvalider
+    * Transition Method trDemander
     */
-    function trInvalider() {
+    function trDemander() {
         $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
-            
+        $this->oBO->insertOrder('D14RHVRJC', 'bo_id='.$this->aValues['bo_id'], 1, 2);
         // Check si la table existe si oui change l'état 
-        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Fichier invalidé");
-        //$this->oBO->sendmail(id_du_mail_pour_dire_que_le_fichier_est_invalidé);
-        $this->trRetour();
+        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Demandé");
         
-            
     }
-        
+		
     /**
-    * Transition Method trRetour
+    * Transition Method trResoumettre
     */
-    function trRetour() {
+    function trResoumettre() {
         $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
-            
+        
         // Check si la table existe si oui change l'état 
-        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Extraction terminée");
-            
+        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Généré");
+        //$this->sendmail(9904);
     }
-        
+		
     /**
-    * Transition Method trTerminerExtraction
+    * Transition Method trSoumettre
     */
-    function trTerminerExtraction() {
+    function trSoumettre() {
         $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
+        
         // Check si la table existe si oui change l'état 
-        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Extraction terminée");
-            
+        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Soumis");
+        $this->oBO->sendmail(39);
     }
-        
+		
     /**
     * Transition Method trRefuser
     */
     function trRefuser() {
         $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
-            
+        
         // Check si la table existe si oui change l'état 
         $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Refusée");
-//$this->sendmail(9902);
-        $this->oBO->sendmail(175);
+        //$this->sendmail(9902);
     }
-        
-}
     
+    /**
+     * Liste des couches.
+     */
+    function getLayers() {
+        require $this->sRessourcesFile;
+        // Liste des groupes de l'utilisateur.
+        $sSql = str_replace('[schema_framework]', $this->aProperties['schema_framework'], $aSql['getUserGroups']);
+        $sSql = str_replace('[user_id]', $_SESSION['ses_user_id'], $sSql);
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, array());
+        if (!$this->oConnection->oBd->enErreur()) {
+            $aResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult);
+            foreach($aResult as $aUserGroup) {
+                $aUserGroups[] = $aUserGroup['name'];
+            }
+            // Restriction de l'utilisateur suivant ses groupes.
+            if (in_array('interne', $aUserGroups))
+                $sSqlParams = '';
+            else if (in_array('restreint', $aUserGroups))
+                $sSqlParams = " WHERE restriction <> 'interne'";
+            else
+                $sSqlParams = " WHERE restriction = 'public'";
+            // Liste des cartes.
+            $this->aFields['treeview_layers'] = array();
+            $sSql = str_replace('[schema_extraction]', $this->aProperties['schema_extraction'], $aSql['getRtLayer']);
+            $sSql = str_replace('[sql_params]', $sSqlParams, $sSql);
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, array());
+            if (!$this->oConnection->oBd->enErreur()) {
+                $aRtLayer = $this->oConnection->oBd->getResultTableAssoc($oPDOresult);
+                $aLayers = array();
+                if (!empty($aRtLayer)) {
+                    foreach($aRtLayer as $aLayer)
+                        $aLayers[$aLayer['category']][] = array("text" => $aLayer['layer'], "value" => $aLayer['layer_id']);
+                }
+                $this->aFields['layers'] = $aLayers;
+                $aXmlRacineAttribute['status']=1;
+                $sMessage = $this->asDocument('','vitis',$this->aValues['sEncoding'],True,$aXmlRacineAttribute,$this->aValues['sSourceEncoding'],$this->aValues['output']);
+            }
+            else {
+                $aXmlRacineAttribute['status']=0;
+                $this->aFields['error'] = "Request error.";
+                $sMessage = $this->asDocument('','vitis',$this->aValues['sEncoding'],True,$aXmlRacineAttribute,$this->aValues['sSourceEncoding'],$this->aValues['output']);
+            }
+        }
+        else {
+            $aXmlRacineAttribute['status']=0;
+            $this->aFields['error'] = "Request error.";
+            $sMessage = $this->asDocument('','vitis',$this->aValues['sEncoding'],True,$aXmlRacineAttribute,$this->aValues['sSourceEncoding'],$this->aValues['output']);
+        }
+        return $sMessage;
+    }
+}
 ?>
\ No newline at end of file
diff --git a/web_service/ws/Format.class.inc b/web_service/ws/Format.class.inc
index 6c9d733bf2f890a5ff4785bb6ca46b57949f2dc3..005eb0b210ef5af675d7c588047aeba96d481e07 100755
--- a/web_service/ws/Format.class.inc
+++ b/web_service/ws/Format.class.inc
@@ -23,14 +23,13 @@ class Format extends ExtractionExtraction {
      * @param type $aPath url of the request
      * @param type $aValues parameters of the request
      * @param type $properties properties
-     * @param type $bShortcut false to reinit variables
      * @param type $oConnection connection object
      */
-    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){
-        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    function __construct($aPath, $aValues, $properties, $bShortcut = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut);
     }
 
-/**
+    /**
      * @SWG\Get(path="/formats/{id_format}", 
      *   tags={"Formats"},
      *   summary="Get Format",
@@ -74,7 +73,7 @@ class Format extends ExtractionExtraction {
         $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "rt_format", "format_id");
     }
 
-/**
+    /**
      * delete a Point_situation
      */
     function DELETE() {
diff --git a/web_service/ws/Formats.class.inc b/web_service/ws/Formats.class.inc
index 141f0fd44f42b395c2af3580cea2f783aa107cfc..fb2e5ec5ab03aa214c0bc4b767deaf7d2fd1043e 100755
--- a/web_service/ws/Formats.class.inc
+++ b/web_service/ws/Formats.class.inc
@@ -34,14 +34,12 @@ class Formats extends ExtractionExtraction {
      * @param type $aPath url of the request
      * @param type $aValues parameters of the request
      * @param type $properties properties
-     * @param type $bShortcut false to reinit variables
-     * @param type $oConnection connection object
      */
-    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){
-        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    function __construct($aPath, $aValues, $properties, $bShortcut = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut);
     }
 
-/**
+    /**
      * @SWG\Get(path="/formats",
      *   tags={"Formats"},
      *   summary="Get Formats",
@@ -124,7 +122,7 @@ class Formats extends ExtractionExtraction {
         return $sMessage;
     }
 
-/**
+    /**
      * @SWG\Post(path="/formats",
      *   tags={"Formats"},
      *   summary="Add format",
@@ -156,7 +154,7 @@ class Formats extends ExtractionExtraction {
         return $aReturn['sMessage'];
     }
 
-/**
+    /**
      * @SWG\Put(path="/formats/{id_format}",
      *   tags={"Formats"},
      *   summary="update Formats",
@@ -196,7 +194,7 @@ class Formats extends ExtractionExtraction {
         return $aReturn['sMessage'];
     }
 
-/**
+    /**
      * @SWG\Delete(path="/formats",
      *   tags={"Formats"},
      *   summary="delete Formats",
@@ -263,7 +261,7 @@ class Formats extends ExtractionExtraction {
         return $aReturn['sMessage'];
     }
 
-	
+    
 }
 
 ?>
\ No newline at end of file
diff --git a/web_service/ws/Layer.class.inc b/web_service/ws/Layer.class.inc
index af7d4af185880fac5854217b8020fe2792193245..b9a17a3f9043317a8c5c93c4d5d8c0b04aec068b 100755
--- a/web_service/ws/Layer.class.inc
+++ b/web_service/ws/Layer.class.inc
@@ -23,14 +23,13 @@ class Layer extends ExtractionExtraction {
      * @param type $aPath url of the request
      * @param type $aValues parameters of the request
      * @param type $properties properties
-     * @param type $bShortcut false to reinit variables
      * @param type $oConnection connection object
      */
-    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){
-        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    function __construct($aPath, $aValues, $properties, $bShortcut = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut);
     }
 
-/**
+    /**
      * @SWG\Get(path="/layers/{id_layer}", 
      *   tags={"Layers"},
      *   summary="Get Layer",
@@ -74,7 +73,7 @@ class Layer extends ExtractionExtraction {
         $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "rt_layer", "layer_id");
     }
 
-/**
+    /**
      * delete a Point_situation
      */
     function DELETE() {
diff --git a/web_service/ws/Layers.class.inc b/web_service/ws/Layers.class.inc
index 0cdb17b292f172ec2958a222ec0b3ca17f69b23c..f89ede1bd9d824b2a02c1b18e3471f9c37ffe6a0 100755
--- a/web_service/ws/Layers.class.inc
+++ b/web_service/ws/Layers.class.inc
@@ -34,14 +34,12 @@ class Layers extends ExtractionExtraction {
      * @param type $aPath url of the request
      * @param type $aValues parameters of the request
      * @param type $properties properties
-     * @param type $bShortcut false to reinit variables
-     * @param type $oConnection connection object
      */
-    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){
-        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    function __construct($aPath, $aValues, $properties, $bShortcut = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut);
     }
 
-/**
+    /**
      * @SWG\Get(path="/layers",
      *   tags={"Layers"},
      *   summary="Get Layers",
@@ -119,12 +117,12 @@ class Layers extends ExtractionExtraction {
      * @return  Layers
      */
     function GET() {
-        $aReturn = $this->genericGet($this->aProperties['schema_extraction'], $this->aValues["table"], $this->aValues["filter"]["column"]);
+        $aReturn = $this->genericGet($this->aProperties['schema_extraction'], "rt_layer", "layer_id");
         $sMessage = $aReturn['sMessage'];
         return $sMessage;
     }
 
-/**
+    /**
      * @SWG\Post(path="/layers",
      *   tags={"Layers"},
      *   summary="Add layer",
@@ -156,7 +154,7 @@ class Layers extends ExtractionExtraction {
         return $aReturn['sMessage'];
     }
 
-/**
+    /**
      * @SWG\Put(path="/layers/{id_layer}",
      *   tags={"Layers"},
      *   summary="update Layers",
@@ -196,7 +194,7 @@ class Layers extends ExtractionExtraction {
         return $aReturn['sMessage'];
     }
 
-/**
+    /**
      * @SWG\Delete(path="/layers",
      *   tags={"Layers"},
      *   summary="delete Layers",
@@ -263,7 +261,7 @@ class Layers extends ExtractionExtraction {
         return $aReturn['sMessage'];
     }
 
-	
+    
 }
 
 ?>
\ No newline at end of file