From cf48f871353b481abd0b6c6d1df6d8c351496a8f Mon Sep 17 00:00:00 2001
From: Marty Fabien <fabien_marty@yahoo.fr>
Date: Tue, 19 May 2020 16:13:44 +0000
Subject: [PATCH] corrections bug

---
 .../patrimoine_saisie_patrimoine_element.json | 18 ++++++--
 ...atrimoine_saisie_patrimoine_perimetre.json | 21 ++++++++-
 ...od_immo_operation_operation_financier.json |  8 ++--
 ...immo_saisie_suivi_prod_immo_programme.json |  4 +-
 ...vi_prod_immo_programme_programme_cout.json |  8 ++--
 .../module/lang/lang-fr.json                  |  4 +-
 ...mposition_habitat_specifique_cps.class.inc | 44 ++++++++++---------
 ...logement_familliaux_location_cps.class.inc | 44 ++++++++++---------
 .../ws/Suivi_prod_immo.class.sql.inc          |  2 +-
 .../web_service/ws/Popup.class.inc            |  3 ++
 .../web_service/ws/template_popup/33.html     | 39 ++++++++++++++++
 .../externs/formReader/formReaderDrtv.js      |  4 +-
 .../doc/suivi_prod_immo/get_1_operation.html  |  8 ++--
 .../vas/doc/suivi_prod_immo/get_2_type.php    |  8 ++--
 .../suivi_prod_immo/get_photo_patrimoine.php  | 32 ++++++++++++++
 15 files changed, 178 insertions(+), 69 deletions(-)
 create mode 100644 src/module_urbalyon/web_service/ws/template_popup/33.html
 create mode 100644 src/vitis/vas/doc/suivi_prod_immo/get_photo_patrimoine.php

diff --git a/src/module_patrimoine/module/forms/patrimoine_saisie/patrimoine_saisie_patrimoine_element.json b/src/module_patrimoine/module/forms/patrimoine_saisie/patrimoine_saisie_patrimoine_element.json
index 13a7c07b..aad1ad61 100644
--- a/src/module_patrimoine/module/forms/patrimoine_saisie/patrimoine_saisie_patrimoine_element.json
+++ b/src/module_patrimoine/module/forms/patrimoine_saisie/patrimoine_saisie_patrimoine_element.json
@@ -81,7 +81,8 @@
 					"id": "Element_1_1583501767205"
 				  },
 				  {
-					"type": "label",
+					"type": "text",
+					"required":false,
 					"name": "id_ebq_pluh",
 					"label": "Identifiant EBP au PLU-H",
 					"nb_cols": 2,
@@ -430,8 +431,16 @@
                     }
                 ]
             },
-            {
-                "fields":[
+			{
+				"fields": [
+					{
+						"type": "text",
+						"name": "adresse",
+						"label": "Adresse",
+						"required":false,
+						"nb_cols": 7,
+						"id": "Element_2_1583493459656"
+					},
                     {
                         "type":"select",
                         "name":"code_insee",
@@ -440,7 +449,7 @@
                         "nb_cols":3,
                         "id":"code_insee",
                         "datasource":{
-                            "datasource_id":"datasource_38",
+                            "datasource_id":"datasource_commune",
                             "sort_order":"ASC",
                             "distinct":"true",
                             "label_key":"nom_commune",
@@ -513,6 +522,7 @@
                         "search_button",
                         "id_bati",
                         "titre",
+						"adresse",
 						"code_insee",
 						"classement_au_pluh"
                     ]
diff --git a/src/module_patrimoine/module/forms/patrimoine_saisie/patrimoine_saisie_patrimoine_perimetre.json b/src/module_patrimoine/module/forms/patrimoine_saisie/patrimoine_saisie_patrimoine_perimetre.json
index 15272801..bc1a43c2 100644
--- a/src/module_patrimoine/module/forms/patrimoine_saisie/patrimoine_saisie_patrimoine_perimetre.json
+++ b/src/module_patrimoine/module/forms/patrimoine_saisie/patrimoine_saisie_patrimoine_perimetre.json
@@ -389,6 +389,14 @@
             },
             {
                 "fields":[
+					{
+						"type": "text",
+						"name": "localisation",
+						"label": "Localisation",
+						"required":false,
+						"nb_cols": 7,
+						"id": "Element_2_1583493459656"
+					},
                     {
                         "type":"select",
                         "name":"code_insee",
@@ -397,7 +405,7 @@
                         "nb_cols":3,
                         "id":"code_insee",
                         "datasource":{
-                            "datasource_id":"datasource_38",
+                            "datasource_id":"datasource_commune",
                             "sort_order":"ASC",
                             "distinct":"true",
                             "label_key":"nom_commune",
@@ -470,6 +478,7 @@
                         "search_button",
                         "id_ensemble",
                         "titre",
+						"localisation",
 						"code_insee",
 						"classement_au_pluh"
                     ]
@@ -1037,7 +1046,15 @@
                             ]
                         },
                         "visible": true
-                    }
+                    },
+					{
+						"type": "text",
+						"name": "id_pip_pluh",
+						"label": "Identifiant PIP au PLU-H",
+						"required":false,
+						"nb_cols": 2,
+						"id": "Element_1_1583501767205"
+					}
 				]
 			},
 			{
diff --git a/src/module_suivi_prod_immo/module/forms/suivi_prod_immo_saisie/suivi_prod_immo_saisie_suivi_prod_immo_operation_operation_financier.json b/src/module_suivi_prod_immo/module/forms/suivi_prod_immo_saisie/suivi_prod_immo_saisie_suivi_prod_immo_operation_operation_financier.json
index 413fefda..69779d90 100644
--- a/src/module_suivi_prod_immo/module/forms/suivi_prod_immo_saisie/suivi_prod_immo_saisie_suivi_prod_immo_operation_operation_financier.json
+++ b/src/module_suivi_prod_immo/module/forms/suivi_prod_immo_saisie/suivi_prod_immo_saisie_suivi_prod_immo_operation_operation_financier.json
@@ -215,7 +215,7 @@
                     {
                         "type":"label",
                         "name":"label_recette_part_publique",
-                        "label":"Dont participations publiques des partenaires publics (Métropoles-Villes, ANRU, État, ...)",
+                        "label":"Dont participations publiques des partenaires publics (Métropole de Lyon-Villes, ANRU, État, ...)",
                         "nb_cols":4,
 						"id":"Element_0_2_12"
                     },
@@ -254,7 +254,7 @@
                     {
                         "type":"label",
                         "name":"label_recette_part_publique_mdl",
-                        "label":"dont Métropoles",
+                        "label":"dont Métropole de Lyon",
                         "nb_cols":2,
 						"id":"Element_0_2_14"
                     },
@@ -782,7 +782,7 @@
                     {
                         "type":"label",
                         "name":"label_recette_part_publique",
-                        "label":"Dont participations publiques des partenaires publics (Métropoles-Villes, ANRU, État, ...)",
+                        "label":"Dont participations publiques des partenaires publics (Métropole de Lyon-Villes, ANRU, État, ...)",
                         "nb_cols":4,
 						"id":"Element_0_2_12"
                     },
@@ -842,7 +842,7 @@
                     {
                         "type":"label",
                         "name":"label_recette_part_publique_mdl",
-                        "label":"dont Métropoles",
+                        "label":"dont Métropole de Lyon",
                         "nb_cols":2,
 						"id":"Element_0_2_14"
                     },
diff --git a/src/module_suivi_prod_immo/module/forms/suivi_prod_immo_saisie/suivi_prod_immo_saisie_suivi_prod_immo_programme.json b/src/module_suivi_prod_immo/module/forms/suivi_prod_immo_saisie/suivi_prod_immo_saisie_suivi_prod_immo_programme.json
index 3ce206b5..247de41e 100644
--- a/src/module_suivi_prod_immo/module/forms/suivi_prod_immo_saisie/suivi_prod_immo_saisie_suivi_prod_immo_programme.json
+++ b/src/module_suivi_prod_immo/module/forms/suivi_prod_immo_saisie/suivi_prod_immo_saisie_suivi_prod_immo_programme.json
@@ -76,7 +76,7 @@
                     {
                         "type":"label",
                         "name":"surface",
-                        "label":"Superficie (m²)",
+                        "label":"Superficie de la parcelle (m²)",
                         "nb_cols":2,
                         "id":"surface"
                     }
@@ -462,7 +462,7 @@
                     {
                         "type":"number",
                         "name":"surface",
-                        "label":"Superficie (m²)",
+                        "label":"Superficie de la parcelle (m²)",
                         "required":false,
                         "pattern":"",
                         "nb_cols":1,
diff --git a/src/module_suivi_prod_immo/module/forms/suivi_prod_immo_saisie/suivi_prod_immo_saisie_suivi_prod_immo_programme_programme_cout.json b/src/module_suivi_prod_immo/module/forms/suivi_prod_immo_saisie/suivi_prod_immo_saisie_suivi_prod_immo_programme_programme_cout.json
index 77bf1bd7..7e1abc53 100644
--- a/src/module_suivi_prod_immo/module/forms/suivi_prod_immo_saisie/suivi_prod_immo_saisie_suivi_prod_immo_programme_programme_cout.json
+++ b/src/module_suivi_prod_immo/module/forms/suivi_prod_immo_saisie/suivi_prod_immo_saisie_suivi_prod_immo_programme_programme_cout.json
@@ -33,7 +33,7 @@
                     {
                         "type":"label",
                         "name":"charge_fonciere_nette",
-                        "label":"Charge foncière nette (€/m² TTC)",
+                        "label":"Charge foncière nette (€TTC/m²)",
                         "nb_cols":10,
                         "id":"charge_fonciere_nette"
                     }
@@ -58,7 +58,7 @@
 					{
                         "type":"label",
                         "name":"cout_foncier_brut",
-                        "label":"Coût du foncier brut (acquisition du terrain en €/m² TTC)",
+                        "label":"Coût du foncier brut (acquisition du terrain en €TTC par m² de terrain)",
                         "nb_cols":5,
                         "id":"cout_foncier_brut"
                     }
@@ -205,7 +205,7 @@
                     {
                         "type":"number",
                         "name":"charge_fonciere_nette",
-                        "label":"Charge foncière nette (€/m² TTC)",
+                        "label":"Charge foncière nette (€TTC/m²)",
                         "required":false,
                         "pattern":"",
                         "nb_cols":2,
@@ -234,7 +234,7 @@
 					{
                         "type":"number",
                         "name":"cout_foncier_brut",
-                        "label":"Coût du foncier brut (acquisition du terrain en €/m² TTC)",
+                        "label":"Coût du foncier brut (acquisition du terrain en €TTC par m² de terrain)",
                         "required":false,
                         "pattern":"",
                         "nb_cols":3,
diff --git a/src/module_suivi_prod_immo/module/lang/lang-fr.json b/src/module_suivi_prod_immo/module/lang/lang-fr.json
index e408d7ab..3a66dc11 100644
--- a/src/module_suivi_prod_immo/module/lang/lang-fr.json
+++ b/src/module_suivi_prod_immo/module/lang/lang-fr.json
@@ -1,6 +1,6 @@
 {
-    "TEXT_MODE_SUIVI_PROD_IMMO_SAISIE" : "Suivi de la production immobilière dans les opérations d'aménagement sous pilotage de la Métropole de Lyon",
-    "TITLE_MODE_SUIVI_PROD_IMMO_SAISIE" : "Suivi de la production immobilière",
+    "TEXT_MODE_SUIVI_PROD_IMMO_SAISIE" : "Saisie du suivi de la production immobilière dans les opérations d'aménagement sous pilotage de la Métropole de Lyon",
+    "TITLE_MODE_SUIVI_PROD_IMMO_SAISIE" : "Saisie suivi de la production immobilière",
     "TEXT_MODE_SUIVI_PROD_IMMO_BI" : "Indicateurs sur le suivi de la production immobilière",
     "TITLE_MODE_SUIVI_PROD_IMMO_BI" : "Indicateurs sur la production immobilière",
     "TEXT_MODE_SUIVI_PROD_IMMO_DASHBOARD" : "Module d'analyse sur le suivi de la production immobilière",
diff --git a/src/module_suivi_prod_immo/web_service/ws/Composition_habitat_specifique_cps.class.inc b/src/module_suivi_prod_immo/web_service/ws/Composition_habitat_specifique_cps.class.inc
index 0ab8c346..7c2cd078 100644
--- a/src/module_suivi_prod_immo/web_service/ws/Composition_habitat_specifique_cps.class.inc
+++ b/src/module_suivi_prod_immo/web_service/ws/Composition_habitat_specifique_cps.class.inc
@@ -120,27 +120,31 @@ class Composition_habitat_specifique_cps extends Suivi_prod_immo {
      * @return  Composition_habitat_specifique_cps
      */
     function GET() {
-        $aReturn = $this->genericGet('prod_immo', "composition_habitat_specifique_cp", "id_composition_habitat_specifique");
-		$aComposition_habitat_specifique_cps=json_decode($aReturn['sMessage'],true);
-		if(isset($aComposition_habitat_specifique_cps['composition_habitat_specifique_cps'])){
-			$aComposition_habitat_specifique_cpsData=$aComposition_habitat_specifique_cps['composition_habitat_specifique_cps'];
-			$sDataArrayName="composition_habitat_specifique_cps";
-		}elseif (isset($aComposition_habitat_specifique_cps['data'])){
-			$aComposition_habitat_specifique_cpsData=$aComposition_habitat_specifique_cps['data'];
-			$sDataArrayName="data";
-		}else{
-			return $aReturn['sMessage'];
-		}
-		if(isset($aComposition_habitat_specifique_cpsData)){
-			// error_log(print_r($aComposition_habitat_specifique_cps,true));
-			$aComposition_habitat_specifique_cps2=array();
-			foreach ($aComposition_habitat_specifique_cpsData as $aComposition_habitat_specifique_cp){
-				$aComposition_habitat_specifique_cp['indicateur_habitat_specifique']= $this->getIndicateur_habitat_specifique($aComposition_habitat_specifique_cp['id_indicateur_habitat_specifique']);
-				$aComposition_habitat_specifique_cps2[count($aComposition_habitat_specifique_cps2)]=$aComposition_habitat_specifique_cp;
+		if (!empty($this->aValues['filter'])) { 
+			$aReturn = $this->genericGet('prod_immo', "composition_habitat_specifique_cp", "id_composition_habitat_specifique");
+			$aComposition_habitat_specifique_cps=json_decode($aReturn['sMessage'],true);
+			if(isset($aComposition_habitat_specifique_cps['composition_habitat_specifique_cps'])){
+				$aComposition_habitat_specifique_cpsData=$aComposition_habitat_specifique_cps['composition_habitat_specifique_cps'];
+				$sDataArrayName="composition_habitat_specifique_cps";
+			}elseif (isset($aComposition_habitat_specifique_cps['data'])){
+				$aComposition_habitat_specifique_cpsData=$aComposition_habitat_specifique_cps['data'];
+				$sDataArrayName="data";
+			}else{
+				return $aReturn['sMessage'];
+			}
+			if(isset($aComposition_habitat_specifique_cpsData)){
+				// error_log(print_r($aComposition_habitat_specifique_cps,true));
+				$aComposition_habitat_specifique_cps2=array();
+				foreach ($aComposition_habitat_specifique_cpsData as $aComposition_habitat_specifique_cp){
+					$aComposition_habitat_specifique_cp['indicateur_habitat_specifique']= $this->getIndicateur_habitat_specifique($aComposition_habitat_specifique_cp['id_indicateur_habitat_specifique']);
+					$aComposition_habitat_specifique_cps2[count($aComposition_habitat_specifique_cps2)]=$aComposition_habitat_specifique_cp;
+				}
+				$sComposition_habitat_specifique_cps=json_encode(array($sDataArrayName=>$aComposition_habitat_specifique_cps2,"list_count"=>$aComposition_habitat_specifique_cps['list_count'],"total_row_number"=>$aComposition_habitat_specifique_cps['total_row_number'],"status"=>$aComposition_habitat_specifique_cps['status']));
+				//error_log($sComposition_habitat_specifique_cps);
+				return $sComposition_habitat_specifique_cps;
 			}
-			$sComposition_habitat_specifique_cps=json_encode(array($sDataArrayName=>$aComposition_habitat_specifique_cps2,"list_count"=>$aComposition_habitat_specifique_cps['list_count'],"total_row_number"=>$aComposition_habitat_specifique_cps['total_row_number'],"status"=>$aComposition_habitat_specifique_cps['status']));
-			//error_log($sComposition_habitat_specifique_cps);
-			return $sComposition_habitat_specifique_cps;
+		}else{ // contournement bug qui affiche l'ensemble des valeurs quand l'id est null
+			return json_encode(array("list_count"=>0,"total_row_number"=>0,"status"=>1));
 		}
     }
 
diff --git a/src/module_suivi_prod_immo/web_service/ws/Composition_logement_familliaux_location_cps.class.inc b/src/module_suivi_prod_immo/web_service/ws/Composition_logement_familliaux_location_cps.class.inc
index 207c9501..f86f915c 100644
--- a/src/module_suivi_prod_immo/web_service/ws/Composition_logement_familliaux_location_cps.class.inc
+++ b/src/module_suivi_prod_immo/web_service/ws/Composition_logement_familliaux_location_cps.class.inc
@@ -120,27 +120,31 @@ class Composition_logement_familliaux_location_cps extends Suivi_prod_immo {
      * @return  Composition_logement_familliaux_location_cps
      */
     function GET() {
-        $aReturn = $this->genericGet('prod_immo', "composition_logement_familliaux_location_cp", "id_composition_logement_familliaux_location");
-		$aComposition_logement_familliaux_location_cps=json_decode($aReturn['sMessage'],true);
-		if(isset($aComposition_logement_familliaux_location_cps['composition_logement_familliaux_location_cps'])){
-			$aComposition_logement_familliaux_location_cpsData=$aComposition_logement_familliaux_location_cps['composition_logement_familliaux_location_cps'];
-			$sDataArrayName="composition_logement_familliaux_location_cps";
-		}elseif (isset($aComposition_logement_familliaux_location_cps['data'])){
-			$aComposition_logement_familliaux_location_cpsData=$aComposition_logement_familliaux_location_cps['data'];
-			$sDataArrayName="data";
-		}else{
-			return $aReturn['sMessage'];
-		}
-		if(isset($aComposition_logement_familliaux_location_cpsData)){
-			// error_log(print_r($aComposition_logement_familliaux_location_cps,true));
-			$aComposition_logement_familliaux_location_cps2=array();
-			foreach ($aComposition_logement_familliaux_location_cpsData as $aComposition_logement_familliaux_location_cp){
-				$aComposition_logement_familliaux_location_cp['indicateur_logement_familliaux_location']= $this->getIndicateur_logement_familliaux_location($aComposition_logement_familliaux_location_cp['id_indicateur_logement_familliaux_location']);
-				$aComposition_logement_familliaux_location_cps2[count($aComposition_logement_familliaux_location_cps2)]=$aComposition_logement_familliaux_location_cp;
+		if (!empty($this->aValues['filter'])){
+			$aReturn = $this->genericGet('prod_immo', "composition_logement_familliaux_location_cp", "id_composition_logement_familliaux_location");
+			$aComposition_logement_familliaux_location_cps=json_decode($aReturn['sMessage'],true);
+			if(isset($aComposition_logement_familliaux_location_cps['composition_logement_familliaux_location_cps'])){
+				$aComposition_logement_familliaux_location_cpsData=$aComposition_logement_familliaux_location_cps['composition_logement_familliaux_location_cps'];
+				$sDataArrayName="composition_logement_familliaux_location_cps";
+			}elseif (isset($aComposition_logement_familliaux_location_cps['data'])){
+				$aComposition_logement_familliaux_location_cpsData=$aComposition_logement_familliaux_location_cps['data'];
+				$sDataArrayName="data";
+			}else{
+				return $aReturn['sMessage'];
+			}
+			if(isset($aComposition_logement_familliaux_location_cpsData)){
+				// error_log(print_r($aComposition_logement_familliaux_location_cps,true));
+				$aComposition_logement_familliaux_location_cps2=array();
+				foreach ($aComposition_logement_familliaux_location_cpsData as $aComposition_logement_familliaux_location_cp){
+					$aComposition_logement_familliaux_location_cp['indicateur_logement_familliaux_location']= $this->getIndicateur_logement_familliaux_location($aComposition_logement_familliaux_location_cp['id_indicateur_logement_familliaux_location']);
+					$aComposition_logement_familliaux_location_cps2[count($aComposition_logement_familliaux_location_cps2)]=$aComposition_logement_familliaux_location_cp;
+				}
+				$sComposition_logement_familliaux_location_cps=json_encode(array($sDataArrayName=>$aComposition_logement_familliaux_location_cps2,"list_count"=>$aComposition_logement_familliaux_location_cps['list_count'],"total_row_number"=>$aComposition_logement_familliaux_location_cps['total_row_number'],"status"=>$aComposition_logement_familliaux_location_cps['status']));
+				//error_log($sComposition_logement_familliaux_location_cps);
+				return $sComposition_logement_familliaux_location_cps;
 			}
-			$sComposition_logement_familliaux_location_cps=json_encode(array($sDataArrayName=>$aComposition_logement_familliaux_location_cps2,"list_count"=>$aComposition_logement_familliaux_location_cps['list_count'],"total_row_number"=>$aComposition_logement_familliaux_location_cps['total_row_number'],"status"=>$aComposition_logement_familliaux_location_cps['status']));
-			//error_log($sComposition_logement_familliaux_location_cps);
-			return $sComposition_logement_familliaux_location_cps;
+		}else{ // contournement bug qui affiche l'ensemble des valeurs quand l'id est null
+			return json_encode(array("list_count"=>0,"total_row_number"=>0,"status"=>1));
 		}
     }
 
diff --git a/src/module_suivi_prod_immo/web_service/ws/Suivi_prod_immo.class.sql.inc b/src/module_suivi_prod_immo/web_service/ws/Suivi_prod_immo.class.sql.inc
index 5228e39e..74a98139 100644
--- a/src/module_suivi_prod_immo/web_service/ws/Suivi_prod_immo.class.sql.inc
+++ b/src/module_suivi_prod_immo/web_service/ws/Suivi_prod_immo.class.sql.inc
@@ -95,7 +95,7 @@ $aSql['getRestrictionUpdateIdOperation'] = 'SELECT id_operation FROM [sSchemaFra
 $aSql['getRestrictionUpdateIdIlot'] = 'SELECT id_ilot FROM [sSchemaFramework].ilot WHERE id_operation::text ~ similar_escape(( SELECT restriction_update FROM [sSchemaFramework].user_restriction WHERE login::name = "current_user"()), NULL::text);';
 // Module Analyse - LIST
 $aSql['getListOperation'] = "SELECT id_operation, nom_operation FROM prod_immo.operation ORDER BY nom_operation";
-$aSql['getListAmenageur'] = "SELECT DISTINCT nom_amenageur, count(nom_amenageur) FROM prod_immo.operation WHERE nom_amenageur IS NOT NULL GROUP BY nom_amenageur ORDER BY count DESC, nom_amenageur";
+$aSql['getListAmenageur'] = "SELECT DISTINCT concessionnaire_amenagement AS nom_amenageur, count(concessionnaire_amenagement) FROM prod_immo.operation WHERE concessionnaire_amenagement IS NOT NULL GROUP BY concessionnaire_amenagement ORDER BY count DESC, concessionnaire_amenagement";
 $aSql['getListCTM'] = "SELECT id_ctm, nom_ctm FROM prod_immo.conference_territoriale_maire ORDER BY nom_ctm";
 $aSql['getListCommune'] = "SELECT id_commune, nom_commune FROM prod_immo.commune ORDER BY nom_commune";
 $aSql['getListFinancement'] = "SELECT code_financement_equ_public, financement_equ_public FROM prod_immo.tr_financement_equ_public ORDER BY financement_equ_public";
diff --git a/src/module_urbalyon/web_service/ws/Popup.class.inc b/src/module_urbalyon/web_service/ws/Popup.class.inc
index 0f426e55..77398c4d 100644
--- a/src/module_urbalyon/web_service/ws/Popup.class.inc
+++ b/src/module_urbalyon/web_service/ws/Popup.class.inc
@@ -86,6 +86,9 @@ class Popup extends Urbalyon {
             $sContent = file_get_contents('template_popup/'.$iMapId.'.html', true);
             $aReturn=array("result"=>1, "title"=>'<p class="text-center mb-0" style="font-weight: bold;font-size: 30px;">Atlas numérique du sport</p>', "message"=>$sContent);
 		*/
+		} elseif ($iMapId==33) {
+            $sContent = file_get_contents('template_popup/'.$iMapId.'.html', true);
+            $aReturn=array("result"=>1, "title"=>'<p class="text-center mb-0" style="font-weight: bold;font-size: 30px;">Cartographie des territoires favorables au vieillissement</p>', "message"=>$sContent);
         }else{
             $aReturn=array("result"=>0, "message"=>'carte numéro '.$iMapId.' inconnu');
         }
diff --git a/src/module_urbalyon/web_service/ws/template_popup/33.html b/src/module_urbalyon/web_service/ws/template_popup/33.html
new file mode 100644
index 00000000..2bb099e4
--- /dev/null
+++ b/src/module_urbalyon/web_service/ws/template_popup/33.html
@@ -0,0 +1,39 @@
+<!--<p class="text-center mb-0" style="font-weight: bold;font-size: 20px;">Cartographies des territoires favorables au vieillissement</p>-->
+<br>
+
+Une cartographie synthétique des territoires favorables au vieillissement a été réalisée sur le périmètre de la Métropole de Lyon.<br>
+Elle permet de mettre en évidence la plus ou moins grande accessibilité des territoires aux services et commerces de proximité spécifiques aux personnes âgées.<br>
+<br>
+Pour plus de détails sur la méthodologie et les sources de données mobilisées, consultez la documentation.<br>
+En cliquant sur l'onglet <img height="30" src="images/urbalyon/btn_carte.png">, vous pouvez consulter :
+
+<div class="row">
+    <div class="col-sm-2"><img height="40" src="images/urbalyon/map_vieux_1.png"></div>
+	<div class="col-sm-10">la cartographie synthétique des territoires favorables au vieillissement (représentation en isochrone).</div>
+</div>
+<div class="row">
+    <div class="col-sm-2"><img height="40" src="images/urbalyon/map_vieux_2.png"></div>
+	<div class="col-sm-10">la cartographie synthétique des territoires favorables au vieillissement (représentation en buffers/zones tampon).</div>
+</div>
+<div class="row">
+    <div class="col-sm-2"><img height="40" src="images/urbalyon/map_vieux_3.png"></div>
+	<div class="col-sm-10">la cartographie des personnes âgées résidentes à l'Iris.</div>
+</div>
+
+<br>
+<br>
+<p class="text-center mb-0" style="font-style: italic;font-size: 16px;">Cliquer sur le bouton <img height="35" src="images/urbalyon/btn_map_vmap.png"> pour afficher la légende, les cartes, ...</p>
+<p class="text-center mb-0" style="font-style: italic;font-size: 16px;">et choisi le détail des équipements que vous voulez faire figurer.</p>
+<br>
+<p class="text-center mb-0" style="font-style: italic;font-size: 19px;color: red;">Zoomer pour afficher la carte</p>
+<br>
+<div class="row">
+    <div class="col-sm-6">
+        <img height="60" src="images/urbalyon/grand_lyon_logo.png">
+    </div>
+    <div class="col-sm-6">
+		<img height="80" src="images/urbalyon/urbalyon_logo.png">
+    </div>
+</div>
+<br>
+<p style="font-style: italic;font-size: 10px;">V1 septembre 2019</p>
\ No newline at end of file
diff --git a/src/vitis/client/javascript/externs/formReader/formReaderDrtv.js b/src/vitis/client/javascript/externs/formReader/formReaderDrtv.js
index d1d861d5..eb590fb8 100755
--- a/src/vitis/client/javascript/externs/formReader/formReaderDrtv.js
+++ b/src/vitis/client/javascript/externs/formReader/formReaderDrtv.js
@@ -3058,8 +3058,8 @@ formReader.appSubformGridDrtv = function ($timeout, $translate, propertiesSrvc,
                         if (goog.isDefAndNotNull(oMainScope['oFormValues'])) {
                             if (goog.isDefAndNotNull(oMainScope['oFormValues'][oMainScope['sFormDefinitionName']])) {
                                 if (goog.isDefAndNotNull(oMainScope['oFormValues'][oMainScope['sFormDefinitionName']][sFilterValue])) {
-                                    bIsIntersected = true;
-                                    oSearchValues[sFilterAttr] = oMainScope['oFormValues'][oMainScope['sFormDefinitionName']][sFilterValue];
+                                    bIsIntersected = true;									
+									oSearchValues[sFilterAttr] = oMainScope['oFormValues'][oMainScope['sFormDefinitionName']][sFilterValue];
                                     oInsertValues[sFilterAttr] = oMainScope['oFormValues'][oMainScope['sFormDefinitionName']][sFilterValue];
                                 }
                             }
diff --git a/src/vitis/vas/doc/suivi_prod_immo/get_1_operation.html b/src/vitis/vas/doc/suivi_prod_immo/get_1_operation.html
index f736348e..d50bdadf 100644
--- a/src/vitis/vas/doc/suivi_prod_immo/get_1_operation.html
+++ b/src/vitis/vas/doc/suivi_prod_immo/get_1_operation.html
@@ -53,16 +53,16 @@
 						<div class="container-fluid">
 							<div class="row" style="height: 80px;">
 								<div class="col-sm-2"></div>
-								<div class="col-sm-2 h-100 d-inline-block arrow" style="background-image : url(images/arrow_right_<?php if($aOperation['avancement']=='initialisation de l\'opération (études préalables amont ...)') echo "border_" ?>1.png);">
+								<div class="col-sm-2 h-100 d-inline-block arrow" style="background-image : url(images/arrow_right_<?php if($aOperation['avancement']=='INITIALISATION de l\'opération (études préalables amont…)') echo "border_" ?>1.png);">
 									<p class="text-center mt-4 align-middle <?php if($aOperation['avancement']=='initialisation de l\'opération (études préalables amont ...)') echo "font-weight-bolder" ?>">Initialisation</p>
 								</div>
-								<div class="col-sm-2 h-100 d-inline-block arrow" style="background-image : url(images/arrow_right_<?php if($aOperation['avancement']=='structuration de l\'opération (études pré-opérationnelles ...)') echo "border_" ?>2.png);">
+								<div class="col-sm-2 h-100 d-inline-block arrow" style="background-image : url(images/arrow_right_<?php if($aOperation['avancement']=='STRUCTURATION de l\'opération (études pré-opérationnelles, choix modes opératoires)') echo "border_" ?>2.png);">
 									<p class="text-center mt-4 align-middle <?php if($aOperation['avancement']=='structuration de l\'opération (études pré-opérationnelles ...)') echo "font-weight-bolder" ?>">Structuration</p>
 								</div>
-								<div class="col-sm-2 h-100 d-inline-block arrow" style="background-image : url(images/arrow_right_<?php if($aOperation['avancement']=='réalisation de l\'opération - chantier (autorisations - constructions en cours)') echo "border_" ?>3.png);">
+								<div class="col-sm-2 h-100 d-inline-block arrow" style="background-image : url(images/arrow_right_<?php if($aOperation['avancement']=='REALISATION de l\'opération - chantier travaux + commercialisation des droits à construire') echo "border_" ?>3.png);">
 									<p class="text-center mt-4 align-middle <?php if($aOperation['avancement']=='réalisation de l\'opération - chantier (autorisations - constructions en cours)') echo "font-weight-bolder" ?>">Réalisation</p>
 								</div>
-								<div class="col-sm-2 h-100 d-inline-block arrow" style="background-image : url(images/arrow_right_<?php if($aOperation['avancement']=='achèvement de l\'opération (chantier et livraisons terminés, opération cloturée)') echo "border_" ?>4.png);">
+								<div class="col-sm-2 h-100 d-inline-block arrow" style="background-image : url(images/arrow_right_<?php if($aOperation['avancement']=='ACHEVEMENT de l\'opération (remise des ouvrages, dernières commercialisations)') echo "border_" ?>4.png);">
 									<p class="text-center mt-4 align-middle <?php if($aOperation['avancement']=='achèvement de l\'opération (chantier et livraisons terminés, opération cloturée)') echo "font-weight-bolder" ?>">Achèvement</p>
 								</div>
 								<div class="col-sm-2"></div>
diff --git a/src/vitis/vas/doc/suivi_prod_immo/get_2_type.php b/src/vitis/vas/doc/suivi_prod_immo/get_2_type.php
index 3a50e02b..73f9aca6 100644
--- a/src/vitis/vas/doc/suivi_prod_immo/get_2_type.php
+++ b/src/vitis/vas/doc/suivi_prod_immo/get_2_type.php
@@ -34,13 +34,13 @@ if (isset($_REQUEST['token']) && !is_null($_REQUEST['token'])){
 						else
 							$sWhereClause2=$sWhereClause2." AND code_procedure_amenagement='".$_REQUEST['code_procedure_amenagement']."'";
 					}
-					if (isset($_REQUEST['code_financement_equ_public']) && !is_null($_REQUEST['code_financement_equ_public'])){
+					if (isset($_REQUEST['code_financement']) && !is_null($_REQUEST['code_financement'])){
 						if($sFiltre!='') $sFiltre.="<br>";
-						$sFiltre.="Type de financement : ".$_REQUEST['code_financement_equ_public'];
-						if($_REQUEST['code_financement_equ_public']=='ND')
+						$sFiltre.="Type de financement : ".$_REQUEST['code_financement'];
+						if($_REQUEST['code_financement']=='ND')
 							$sWhereClause2=$sWhereClause2." AND (operation_tr_financement_equ_public.code_financement_equ_public='ND' OR operation_tr_financement_equ_public.code_financement_equ_public IS NULL) ";
 						else
-							$sWhereClause2=$sWhereClause2." AND operation_tr_financement_equ_public.code_financement_equ_public='".$_REQUEST['code_financement_equ_public']."'";
+							$sWhereClause2=$sWhereClause2." AND operation_tr_financement_equ_public.code_financement_equ_public='".$_REQUEST['code_financement']."'";
 					}
 					if (isset($_REQUEST['code_suivi']) && !is_null($_REQUEST['code_suivi'])){
 						if($sFiltre!='') $sFiltre.="<br>";
diff --git a/src/vitis/vas/doc/suivi_prod_immo/get_photo_patrimoine.php b/src/vitis/vas/doc/suivi_prod_immo/get_photo_patrimoine.php
new file mode 100644
index 00000000..d475907b
--- /dev/null
+++ b/src/vitis/vas/doc/suivi_prod_immo/get_photo_patrimoine.php
@@ -0,0 +1,32 @@
+<?php
+// https://geo.urbalyon.org/doc/suivi_prod_immo/get_photo_patrimoine.php?table=element&id=10&photo=69069_1_1.JPG
+
+if (isset($_REQUEST['table'])){
+	$aTable=array('element', 'perimetre');
+	if(in_array($_REQUEST['table'], $aTable)){
+		if (isset($_REQUEST['id']) && isset($_REQUEST['photo'])){
+			$file_out = "/var/www/vmap/vas/ws_data/patrimoine/patrimoine_saisie_patrimoine_".$_REQUEST['table']."/documents/".$_REQUEST['id']."/photos/".$_REQUEST['photo']; // The image to return
+			if (file_exists($file_out)) {
+			   $image_info = getimagesize($file_out);
+			   //Set the content-type header as appropriate
+			   header('Content-Type: ' . $image_info['mime']);
+			   //Set the content-length header
+			   header('Content-Length: ' . filesize($file_out));
+			   //Write the image bytes to the client
+			   readfile($file_out);
+			} else { // Image file not found
+				echo 'boom';
+				// header($_SERVER["SERVER_PROTOCOL"] . " 404 Not Found");
+			}		
+		}else{
+			echo 'pas de id ou de photo en paramètres';
+		}
+	}else{
+		echo 'table inconnu en paramètres';
+	}
+}else{
+		echo 'pas de table en paramètres';
+}
+
+
+?>
\ No newline at end of file
-- 
GitLab