Subversion Repositories Sites.obs-saisons.fr

Compare Revisions

Ignore whitespace Rev 248 → Rev 249

/trunk/applications/jrest/services/OdsExport.php
5,7 → 5,8
const PREFIXE = 'get';
const ABBR_LISTE_EVENEMENTS = 'evenement';
const ABBR_LISTE_ESPECES = 'espece';
const ABBR_LISTE_MILIEUX = 'environnement';
 
private $type_mime = 'text/html';
/**
31,10 → 32,10
$this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";
}
}
$this->envoyer($info,$this->type_mime);
 
$this->envoyer($info,$this->type_mime);
}
public function getExportObservation($start = null,$limit = null, $order_by = 'oo_date') {
$requete_selection_observations = 'SELECT * FROM ods_observations '.
121,7 → 122,7
public function getExportObservationPlat() {
$donnees = $this->getExportObservation();
$donnees_formatees = $this->formaterPourExportObservationCSV($donnees);
$donnees_formatees = $this->formaterPourExportCSV($donnees);
return $donnees_formatees ;
}
129,14 → 130,14
public function getExportObservationJson() {
$donnees = $this->getExportObservation();
$donnees_formatees = $this->formaterPourExportObservationJson($donnees);
$donnees_formatees = $this->formaterPourExportJson($donnees);
 
$this->type_mime = 'application/json';
return $donnees_formatees;
}
public function formaterPourExportObservationJson($tableau_observations_infos) {
public function formaterPourExportJson($tableau_observations_infos) {
$gestionnaire_especes = new OdsEspece($this->config);
$gestionnaire_communes = new OdsCommune($this->config);
143,6 → 144,7
$especes = $gestionnaire_especes->getToutesEspeces();
$evenements = $this->obtenirValeursListeParAbreviation(self::ABBR_LISTE_EVENEMENTS);
$milieux = $this->obtenirValeursListeParAbreviation(self::ABBR_LISTE_MILIEUX);
$resultats_formates = array();
177,7 → 179,7
$resultats_formates[$id_station]['latitude'] = $observations_infos['os_latitude'];
$resultats_formates[$id_station]['longitude'] = $observations_infos['os_longitude'];
$resultats_formates[$id_station]['altitude'] = $observations_infos['os_altitude'];
$resultats_formates[$id_station]['milieu'] = $observations_infos['os_milieu'];
$resultats_formates[$id_station]['milieu'] = $milieux[$observations_infos['os_ce_environnement']]['ot_valeur'];
$resultats_formates[$id_station]['participant'] = $observations_infos['os_ce_participant'];
}
190,13 → 192,13
public function getFichierExportObservationCsv() {
$donnees = $this->getExportObservation();
$donnees_formatees = $this->formaterPourExportObservationCSV($donnees);
$donnees_formatees = $this->formaterPourExportCSV($donnees);
$chaine_csv = $this->convertirTableauAssocVersCSV($donnees_formatees);
$this->envoyerFichier($chaine_csv);
}
public function formaterPourExportObservationCSV($tableau_observations_infos) {
public function formaterPourExportCSV($tableau_observations_infos) {
$gestionnaire_especes = new OdsEspece($this->config);
$gestionnaire_communes = new OdsCommune($this->config);
204,6 → 206,7
$especes = $gestionnaire_especes->getToutesEspeces();
$evenements = $this->obtenirValeursListeParAbreviation(self::ABBR_LISTE_EVENEMENTS);
$milieux = $this->obtenirValeursListeParAbreviation(self::ABBR_LISTE_MILIEUX);
$codes_insee_communes = array();
235,7 → 238,7
'latitude' => $observations_infos['os_latitude'],
'longitude' => $observations_infos['os_longitude'],
'altitude' => $observations_infos['os_altitude'],
'milieu' => $observations_infos['os_milieu'],
'milieu' => $milieux[$observations_infos['os_ce_environnement']]['ot_valeur'],
'id_participant' => $observations_infos['os_ce_participant'],
'pseudo_participant' => '',
'mail_participant' => ''
264,99 → 267,6
return $resultats_formates;
}
public function getExportStationJson() {
$donnees = $this->getExportStation();
$donnees_formatees = $this->formaterPourExportStationJson($donnees);
$this->type_mime = 'application/json';
return $donnees_formatees;
}
public function getExportStation() {
$requete_selection_stations = 'SELECT * FROM ods_stations '.
' LEFT JOIN ods_individus '.
' ON ods_individus.oi_ce_station = ods_stations.os_id_station '.
' ORDER BY ods_stations.os_id_station, ods_individus.oi_ce_espece';
$res_selection_stations = $this->executerRequete($requete_selection_stations);
return $res_selection_stations;
}
public function formaterPourExportStationJson($tableau_stations_infos) {
$gestionnaire_especes = new OdsEspece($this->config);
$gestionnaire_communes = new OdsCommune($this->config);
$gestionnaire_utilisateurs = new OdsUtilisateur($this->config);
$especes = $gestionnaire_especes->getToutesEspeces();
$resultats_formates = array();
foreach($tableau_stations_infos as &$stations_infos) {
if(!isset($resultats_formates[$stations_infos['os_id_station']])) {
if($stations_infos['os_ce_commune'] == "NULL") {
$stations_infos['os_ce_commune'] = '';
}
$resultats_formates[$stations_infos['os_id_station']] = array(
'station' => $stations_infos['os_nom'],
'code_commune' => $stations_infos['os_ce_commune'],
'nom_commune' => '',
'latitude' => $stations_infos['os_latitude'],
'longitude' => $stations_infos['os_longitude'],
'altitude' => $stations_infos['os_altitude'],
'id_participant' => $stations_infos['os_ce_participant'],
'pseudo_participant' => '',
'mail_participant' => '',
'especes' => array()
);
if(is_numeric($stations_infos['os_ce_commune'])) {
$codes_insee_communes[] = $stations_infos['os_ce_commune'];
}
}
$infos_espece = $especes[$stations_infos['oi_ce_espece']];
if($infos_espece != null) {
if($infos_espece['type'] != "") {
$infos_espece['type'] = $this->obtenirValeurTripleParId($infos_espece['type']);
}
$resultats_formates[$stations_infos['os_id_station']]['especes'][$infos_espece['id_espece']] = $infos_espece;
}
}
$correspondance_codes_insee_noms = $gestionnaire_communes->obtenirTableauNomsCommunesParTableauCodesInsee($codes_insee_communes);
$correspondance_id_utilisateur = $gestionnaire_utilisateurs->getListeUtilisateurAvecInfosComplementairesFormateeId();
foreach($resultats_formates as &$resultat) {
if(isset($correspondance_codes_insee_noms[$resultat['code_commune']]) && trim($correspondance_codes_insee_noms[$resultat['code_commune']]) != '') {
$resultat['nom_commune'] = $correspondance_codes_insee_noms[$resultat['code_commune']];
}
$resultat['pseudo_participant'] = $correspondance_id_utilisateur[$resultat['id_participant']]['name'];
$resultat['mail_participant'] = $correspondance_id_utilisateur[$resultat['id_participant']]['mail'];
$types = array("Particulier" ,"Établissement scolaire", "Association" ,"Professionnel", "Autre","Inconnu");
if(isset($correspondance_id_utilisateur[$resultat['id_participant']]['profile_type'])) {
$resultat['type_participant'] = $correspondance_id_utilisateur[$resultat['id_participant']]['profile_type'];
} else {
$resultat['type_participant'] = "Inconnu";
}
}
return $resultats_formates;
}
public function convertirTableauAssocVersCSV($tableau) {
$csv = '';