[openaria-Commits] r2110 - in branches/evo-ws-ads-aria: . obj services/metier tests tests/binary_files/tests_services

0 views
Skip to first unread message

fmi...@adullact.net

unread,
Feb 23, 2017, 6:06:47 AM2/23/17
to openmairi...@googlegroups.com
Author: fmichon
Date: 2017-02-23 12:06:44 +0100 (Thu, 23 Feb 2017)
New Revision: 2110

Modified:
branches/evo-ws-ads-aria/
branches/evo-ws-ads-aria/HISTORY.txt
branches/evo-ws-ads-aria/obj/dossier_coordination_message.class.php
branches/evo-ws-ads-aria/obj/interface_referentiel_ads.class.php
branches/evo-ws-ads-aria/services/metier/maintenancemanager.php
branches/evo-ws-ads-aria/tests/040_services.robot
branches/evo-ws-ads-aria/tests/binary_files/tests_services/referentieladsdatest.php
branches/evo-ws-ads-aria/tests/binary_files/tests_services/referentieladsditest.php
Log:
* Merge branche ' evo_consultation_ads'.


Index: branches/evo-ws-ads-aria
===================================================================
--- branches/evo-ws-ads-aria 2017-02-23 11:05:07 UTC (rev 2109)
+++ branches/evo-ws-ads-aria 2017-02-23 11:06:44 UTC (rev 2110)

Property changes on: branches/evo-ws-ads-aria
___________________________________________________________________
Modified: svn:mergeinfo
## -10,8 +10,10 ##
/branches/evo-sig-qualification-etablissements-proches:1793-1861
/branches/evo_ajout_info_fiche_liste_ap:2044-2049
/branches/evo_champ_fusion_liste_ap:2047-2057
+/branches/evo_consultation_ads:2087-2109
/branches/evo_enjeu_ads:2067-2108
/branches/geocoder_tous:1696-1750
/branches/interface-referentiel-ads:1944-1961
/branches/planif_visite:1827-1864
-/branches/suivi_docs_gen:2043-2060
\ No newline at end of property
+/branches/suivi_docs_gen:2043-2060
+/trunk:2107
\ No newline at end of property
Modified: branches/evo-ws-ads-aria/HISTORY.txt
===================================================================
--- branches/evo-ws-ads-aria/HISTORY.txt 2017-02-23 11:05:07 UTC (rev 2109)
+++ branches/evo-ws-ads-aria/HISTORY.txt 2017-02-23 11:06:44 UTC (rev 2110)
@@ -34,7 +34,9 @@

* Correction : La même valeur était proposée en double dans la liste à choix "Type d'analyse" dans le formulaire type d'analyse de l'onglet "Analyse" dans le contexte du DI. Ce cas se produisait lorsque dans le paramétrage du type de DC, la même valeur de type d'analyse était sélectionnée pour le champ 'Type par défaut' et 'Type(s) disponible(s)' pour le même service. Désormais la valeur n'apparaît qu'une seule fois. Ticket #8673.

+* Évolution - Création d'une action de maintennance pour reprendre les consultations officiel (de conformité ou d'avis) pour envoyer un accusé de reception.

+
1.0.0 (16/01/2017)
------------------


Modified: branches/evo-ws-ads-aria/obj/dossier_coordination_message.class.php
===================================================================
--- branches/evo-ws-ads-aria/obj/dossier_coordination_message.class.php 2017-02-23 11:05:07 UTC (rev 2109)
+++ branches/evo-ws-ads-aria/obj/dossier_coordination_message.class.php 2017-02-23 11:06:44 UTC (rev 2110)
@@ -1305,6 +1305,97 @@
*
* @return boolean
*/
+ function treat_all_consultation($val = array()) {
+ //On recupere les consultation non traiter
+ $messages_consultation = $this->get_all_not_treated_consultation();
+ if ($messages_consultation === false) {
+ $this->addToMessage("Erreur interne sur la récupération des messages.");
+ return false;
+ }
+ $treatment_results = 0;
+ $date = new DateTime();
+
+ //Pour chaque consultation non traitée
+ foreach ($messages_consultation as $key => $value) {
+ // On recupere le contenu (consultation et dossier instruction)
+ $json = json_decode($value["contenu_json"], true);
+ $consultation = $json['contenu']['consultation'];
+ $infos = array(
+ "consultation" => $consultation,
+ "dossier_instruction" => $this->get_dossier_instruction_ads_from_contenu($value['contenu']),
+ "dossier_coordination" => $value['dossier_coordination']
+ );
+
+ // On marque le dossier traiter
+ $json['contenu']['date_traitement'] = $this->dateDB($date->format('d/m/Y'));
+ $valF = array('contenu_json' => json_encode($json));
+ $res = $this->f->db->autoExecute(DB_PREFIXE.$this->table, $valF, DB_AUTOQUERY_UPDATE, $this->getCle($value["dossier_coordination_message"]));
+ $this->f->addToLog(__METHOD__."(): db->autoExecute(\"".DB_PREFIXE.$this->table."\", ".print_r($valF, true).", DB_AUTOQUERY_UPDATE, \"".$this->getCle($value["dossier_coordination_message"])."\")", VERBOSE_MODE);
+ if ($this->f->isDatabaseError($res, true)) {
+ $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
+ return false;
+ }
+ // On le transmet au referentiel
+ $ret = $this->f->execute_action_to_referentiel_ads(213, $infos);
+ if ($ret === false) {
+ $this->addToMessage(
+ sprintf(
+ "%s(): message %s : Erreur lors de l'exécution de la requête.",
+ __METHOD__,
+ $value["dossier_coordination_message"]
+ )
+ );
+ return false;
+ }
+ ++$treatment_results;
+ }
+ $this->correct = true;
+ $this->addToMessage(
+ sprintf(
+ "Traitement terminé. %s message(s) traité(s).",
+ $treatment_results
+ )
+ );
+ return true;
+ }
+
+ /**
+ * Cette méthode retourne la liste des messages de consultation
+ * pour toutes les consultations non traitées.
+ *
+ * @return mixed En cas d'erreur de base de données 'false' sinon un tableau.
+ */
+ function get_all_not_treated_consultation() {
+ //
+ $query = sprintf(
+ "SELECT * FROM %sdossier_coordination_message
+ WHERE (type LIKE 'ADS_ERP__PC__CONSULTATION_OFFICIELLE_POUR_AVIS'
+ OR type LIKE 'ADS_ERP__PC__CONSULTATION_OFFICIELLE_POUR_CONFORMITE')
+ AND contenu_json NOT LIKE '%%date_traitement%%'",
+ DB_PREFIXE
+ );
+ $res = $this->f->db->query($query);
+ $this->addToLog(
+ __METHOD__."(): db->query(\"".$query."\");",
+ VERBOSE_MODE
+ );
+ if ($this->f->isDatabaseError($res, true)) {
+ return false;
+ }
+ //
+ $list = array();
+ while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
+ $list[] = $row;
+ }
+ return $list;
+ }
+
+
+ /**
+ * TREATMENT - treat_all_messages_async
+ *
+ * @return boolean
+ */
function treat_all_messages_async($val = array()) {
//
$messagesasync = $this->get_all_messages_async();
@@ -1409,7 +1500,7 @@
$this->correct = true;
$this->addToMessage(
sprintf(
- "Traitement terminé. %s message(s) traité(s) : %s ok / %s ko.",
+ "Traitement terminé. %s message(s) traité(s).",
$treatment_results["total"],
$treatment_results["ok"],
$treatment_results["ko"]

Modified: branches/evo-ws-ads-aria/obj/interface_referentiel_ads.class.php
===================================================================
--- branches/evo-ws-ads-aria/obj/interface_referentiel_ads.class.php 2017-02-23 11:05:07 UTC (rev 2109)
+++ branches/evo-ws-ads-aria/obj/interface_referentiel_ads.class.php 2017-02-23 11:06:44 UTC (rev 2110)
@@ -368,6 +368,17 @@
"resource" => "dossier_instructions",
"method" => "GET",
),
+ 213 => array(
+ "code" => 213,
+ "categorie" => "sortant",
+ "type" => "ERP_ADS__PC__AR_CONSULTATION_OFFICIELLE",
+ "label" => "Accusé de réception de consultation d'un service ERP",
+ "content_fields" => array(
+ "consultation", "dossier_instruction",
+ ),
+ "resource" => "messages",
+ "method" => "POST",
+ )
);

/**

Modified: branches/evo-ws-ads-aria/services/metier/maintenancemanager.php
===================================================================
--- branches/evo-ws-ads-aria/services/metier/maintenancemanager.php 2017-02-23 11:05:07 UTC (rev 2109)
+++ branches/evo-ws-ads-aria/services/metier/maintenancemanager.php 2017-02-23 11:06:44 UTC (rev 2110)
@@ -32,6 +32,7 @@
'contraintes' => 'synchronisationContraintes',
'geolocalisation' => 'geocoderTous',
'messagesasync' => 'messagesasync',
+ 'consultations' => 'consultationsOfficielles',
);

/**
@@ -455,7 +456,7 @@
public function messagesasync($data) {
//
require_once "../obj/dossier_coordination_message.class.php";
- $inst_dcm = new dossier_coordination_message(0);
+ $inst_dcm = new dossier_coordination_message(']');
//
$ret = $inst_dcm->treat_all_messages_async();
$this->setMessage($inst_dcm->msg);
@@ -465,6 +466,27 @@
return $this->OK;
}

+ /**
+ * consultationsOfficielles
+ *
+ * Cette méthode permet d'exécuter le traitement des messages de consultations.
+ *
+ * @param mixed $data Les données reçues dans la requête
+ * @return string Le résultat du traitement
+ */
+ public function consultationsOfficielles($data) {
+ //
+ require_once "../obj/dossier_coordination_message.class.php";
+ $inst_dcm = new dossier_coordination_message(0);
+ //
+ $ret = $inst_dcm->treat_all_consultation();
+ $this->setMessage($inst_dcm->msg);
+ if ($ret !== true) {
+ return $this->KO;
+ }
+ return $this->OK;
+ }
+
}

?>

Modified: branches/evo-ws-ads-aria/tests/040_services.robot
===================================================================
--- branches/evo-ws-ads-aria/tests/040_services.robot 2017-02-23 11:05:07 UTC (rev 2109)
+++ branches/evo-ws-ads-aria/tests/040_services.robot 2017-02-23 11:06:44 UTC (rev 2110)
@@ -16,6 +16,8 @@
${purge_acc} {"module":"purge", "data":{"service":"ACC"}}
#Purge des documents numérisés et importés SI
${purge_si} {"module":"purge", "data":{"service":"SI"}}
+#Envoie des accusés de réception des consultations officielles
+${consultations} {"module":"consultations"}


*** Test Cases ***
@@ -76,7 +78,7 @@
Numérisation des documents
[Tags] post
[Documentation] Import des documents numérisés
-
+
# Création d'un établissement
&{etab01} = Create Dictionary
... libelle=JEUX DE PLEIN AIR
@@ -179,3 +181,46 @@
Should be Equal ${jsondata['message']} Aucun document à traiter


+Envoie des accusés de réception des consultations officielles
+ [Tags] post
+ [Documentation] Envoie des accusés de réception des consultations officielles
+
+
+ # Création du dossier connecter
+ # [102]
+ ${type} = Set Variable ADS_ERP__PC__PRE_DEMANDE_DE_COMPLETUDE_ERP
+ ${emetteur} = Set Variable 102_instr_pc_test_040
+ ${json} = Set Variable { "type" : "${type}", "date" : "31/12/2015 14:42", "emetteur" : "${emetteur}", "dossier_instruction" : "PC0990991000002P0" }
+ Vérifier le code retour du web service et vérifier que son message est Post messages ${json} 200 Insertion du message '${type}' OK.
+
+ # [103]
+ ${type} = Set Variable ADS_ERP__PC__PRE_DEMANDE_DE_QUALIFICATION_ERP
+ ${emetteur} = Set Variable 103_instr_pc_test_040
+ ${json} = Set Variable { "type" : "${type}", "date" : "31/12/2015 14:42", "emetteur" : "${emetteur}", "dossier_instruction" : "PC0990991000002P0" }
+ Vérifier le code retour du web service et vérifier que son message est Post messages ${json} 200 Insertion du message '${type}' OK.
+
+ # Ajout des consultations
+ # [106]
+ ${type} = Set Variable ADS_ERP__PC__CONSULTATION_OFFICIELLE_POUR_CONFORMITE
+ ${emetteur} = Set Variable 106_instr_daact_test_040
+ ${json} = Set Variable { "type" : "${type}", "date" : "31/12/2015 14:42", "emetteur" : "${emetteur}", "dossier_instruction" : "PC0990991000002P0", "contenu" : { "consultation" : 2, "date_envoi" : "31/12/2015", "service_abrege" : "ACC", "service_libelle" : "Service Accessibilité", "date_limite" : "31/01/2016" } }
+ Vérifier le code retour du web service et vérifier que son message est Post messages ${json} 200 Insertion du message '${type}' OK.
+
+ # [104]
+ ${type} = Set Variable ADS_ERP__PC__CONSULTATION_OFFICIELLE_POUR_AVIS
+ ${emetteur} = Set Variable 104_instr_pc_test_040
+ ${json} = Set Variable { "type" : "${type}", "date" : "31/12/2015 14:42", "emetteur" : "${emetteur}", "dossier_instruction" : "PC0990991000002P0", "contenu" : { "consultation" : 2, "date_envoi" : "01/03/2013", "service_abrege" : "SI", "service_libelle" : "Service Sécurité", "date_limite" : "01/04/2013" } }
+ Vérifier le code retour du web service et vérifier que son message est Post messages ${json} 200 Insertion du message '${type}' OK.
+
+ # Test du service
+ Create Session httpopenaria http://localhost/openaria/services/rest_entry.php
+ ${headers}= Create Dictionary 'Content-Type=application/json'
+ ${resp}= Post Request httpopenaria /maintenance data=${consultations} headers=${headers}
+ Should Be Equal As Strings ${resp.status_code} 200
+ Should Contain ${resp.content} 2 message(s)
+
+ Create Session httpopenaria http://localhost/openaria/services/rest_entry.php
+ ${headers}= Create Dictionary 'Content-Type=application/json'
+ ${resp}= Post Request httpopenaria /maintenance data=${consultations} headers=${headers}
+ Should Be Equal As Strings ${resp.status_code} 200
+ Should Contain ${resp.content} 0 message(s)
\ No newline at end of file

Modified: branches/evo-ws-ads-aria/tests/binary_files/tests_services/referentieladsdatest.php
===================================================================
--- branches/evo-ws-ads-aria/tests/binary_files/tests_services/referentieladsdatest.php 2017-02-23 11:05:07 UTC (rev 2109)
+++ branches/evo-ws-ads-aria/tests/binary_files/tests_services/referentieladsdatest.php 2017-02-23 11:06:44 UTC (rev 2110)
@@ -183,6 +183,44 @@
"cle_acces_citoyen" => "",
));
return;
+ } elseif ($da == "PC0990991000002") {
+ header("HTTP/1.0 200 OK");
+ header('Content-Type: application/json');
+ echo json_encode(array(
+ "dossier_autorisation" => "PC0990991000002",
+ "dossier_autorisation_type_detaille" => "1",
+ "exercice" => "",
+ "insee" => "01234",
+ "terrain_references_cadastrales" => "",
+ "terrain_adresse_voie_numero" => "",
+ "terrain_adresse_voie" => "",
+ "terrain_adresse_lieu_dit" => "",
+ "terrain_adresse_localite" => "",
+ "terrain_adresse_code_postal" => "",
+ "terrain_adresse_bp" => "",
+ "terrain_adresse_cedex" => "",
+ "terrain_superficie" => "",
+ "arrondissement" => "",
+ "depot_initial" => "2012-12-17",
+ "erp_numero_batiment" => "",
+ "erp_ouvert" => "",
+ "erp_date_ouverture" => "",
+ "erp_arrete_decision" => "",
+ "erp_date_arrete_decision" => "",
+ "numero_version" => "0",
+ "etat_dossier_autorisation" => "1",
+ "date_depot" => "",
+ "date_decision" => "",
+ "date_validite" => "",
+ "date_chantier" => "",
+ "date_achevement" => "",
+ "avis_decision" => "",
+ "etat_dernier_dossier_instruction_accepte" => "",
+ "dossier_autorisation_libelle" => "PC 099 099 10 00002",
+ "om_collectivite" => "2",
+ "cle_acces_citoyen" => "",
+ ));
+ return;
}
// Aucun de nos da de test
header("HTTP/1.0 400 Bad Request");

Modified: branches/evo-ws-ads-aria/tests/binary_files/tests_services/referentieladsditest.php
===================================================================
--- branches/evo-ws-ads-aria/tests/binary_files/tests_services/referentieladsditest.php 2017-02-23 11:05:07 UTC (rev 2109)
+++ branches/evo-ws-ads-aria/tests/binary_files/tests_services/referentieladsditest.php 2017-02-23 11:06:44 UTC (rev 2110)
@@ -533,6 +533,92 @@
),
));
return;
+ } elseif ($di == "PC0990991000002P0") {
+ header("HTTP/1.0 200 OK");
+ header('Content-Type: application/json');
+ echo json_encode(array(
+ "dossier_instruction" => "PC0990991000002P0",
+ "dossier_autorisation" => "PC0990991000002",
+ "terrain_adresse_voie_numero" => "",
+ "terrain_adresse_lieu_dit" => "",
+ "terrain_adresse_code_postal" => "",
+ "terrain_adresse_cedex" => "",
+ "terrain_adresse_voie" => "",
+ "terrain_adresse_bp" => "",
+ "terrain_adresse_localite" => "",
+ "terrain_superficie" => "",
+ "references_cadastrales" => array(),
+ "dossier_autorisation_type" => "Demande d'autorisation de construire, d'aménager ou de modifier un ERP",
+ "dossier_autorisation_type_detaille" => "Demande d'autorisation de construire, d'aménager ou de modifier un ERP",
+ "collectivite" => "MARSEILLE",
+ "instructeur" => "",
+ "division" => "",
+ "etat_dossier" => "dossier incomplet",
+ "statut_dossier" => "encours",
+ "date_depot_initial" => "2013-11-06",
+ "date_limite_instruction" => "2014-01-06",
+ "date_decision" => "",
+ "enjeu_urbanisme" => "false",
+ "enjeu_erp" => "false",
+ "petitionnaire_principal" => array(
+ "demandeur" => "9",
+ "qualite" => "particulier",
+ "particulier_civilite" => "",
+ "particulier_nom" => "Pont",
+ "particulier_prenom" => "Maxime",
+ "particulier_date_naissance" => "",
+ "particulier_commune_naissance" => "",
+ "particulier_departement_naissance" => "",
+ "numero" => "",
+ "voie" => "",
+ "complement" => "",
+ "lieu_dit" => "",
+ "localite" => "",
+ "code_postal" => "",
+ "bp" => "",
+ "cedex" => "",
+ "pays" => "France",
+ "division_territoriale" => "",
+ "telephone_fixe" => "",
+ "telephone_mobile" => "",
+ "indicatif" => "",
+ "courriel" => "",
+ "fax" => "",
+ ),
+ "autres_petitionnaires" => array(
+ array(
+ "demandeur" => "12",
+ "qualite" => "personne_morale",
+ "personne_morale_civilite" => "Madame",
+ "personne_morale_denomination" => "DURANT",
+ "personne_morale_raison_sociale" => "",
+ "personne_morale_siret" => "",
+ "personne_morale_categorie_juridique" => "SARL",
+ "personne_morale_nom" => "DUPONT",
+ "personne_morale_prenom" => "Jeanne",
+ "numero" => "",
+ "voie" => "",
+ "complement" => "",
+ "lieu_dit" => "",
+ "localite" => "",
+ "code_postal" => "",
+ "bp" => "",
+ "cedex" => "",
+ "pays" => "France",
+ "division_territoriale" => "",
+ "telephone_fixe" => "",
+ "telephone_mobile" => "",
+ "indicatif" => "",
+ "courriel" => "",
+ "fax" => "",
+ ),
+ ),
+ "donnees_techniques" => array(
+ "su_tot_shon_tot" => "",
+ "su_avt_shon_tot" => "",
+ ),
+ ));
+ return;
}
// Aucun de nos da de test
header("HTTP/1.0 400 Bad Request");

Reply all
Reply to author
Forward
0 new messages