Subversion Repositories eFlore/Applications.coel

Rev

Rev 1530 | Rev 1537 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1530 Rev 1531
Line 12... Line 12...
12
 * @copyright 2010
12
 * @copyright 2010
13
 */
13
 */
14
class CoelExport extends Coel {
14
class CoelExport extends Coel {
Line 15... Line 15...
15
	
15
	
16
	const META_LISTE_STOCK_PARAMS = 1020;// Liste des paramètres de contrôle environnemental d'un local
-
 
-
 
16
	const META_LISTE_STOCK_PARAMS = 1020;// Liste des paramètres de contrôle environnemental d'un local
17
	
17
	const META_LISTES_EXPERTISE_COLLECTION = '';// Liste des métadonnées pour les informations des des collections 
18
	private $format = null;
18
	private $format = null;
19
	private $service = null;
19
	private $service = null;
20
	private $squelette = null;
20
	private $squelette = null;
Line 151... Line 151...
151
		$message_echec = "La requête de recherche des métadonnées a retourné aucun résultat.";
151
		$message_echec = "La requête de recherche des métadonnées a retourné aucun résultat.";
152
		$metadonnees = $this->executerRequete($requete, $message_echec);
152
		$metadonnees = $this->executerRequete($requete, $message_echec);
Line 153... Line 153...
153
		
153
		
154
		// Traitement des données
154
		// Traitement des données
-
 
155
		if ($structures !== false) {
-
 
156
			// Traitement des métadonnées
-
 
157
			$parametres = array(0 => array('nom' => 'Non renseigné', 'abr' => 'NR'));
-
 
158
			foreach ($metadonnees as $meta) {
-
 
159
				$parametres[$meta['cmlv_id_valeur']] = array('nom' => $meta['cmlv_nom'], 'abr' => $meta['cmlv_abreviation']);
-
 
160
			}
-
 
161
			
-
 
162
			// Traitement du nombre de collection par structure
-
 
163
			$collections_par_structure = array();
-
 
164
			foreach ($collections_nbre as $collection) {
-
 
165
				$nbre = (empty($collection['collection_nbre'])) ? 0 : $collection['collection_nbre'];
-
 
166
				$collections_par_structure[$collection['cs_id_structure']] = $nbre;
-
 
167
			}
-
 
168
			
-
 
169
			// Traitement final des données concernant les structures 
-
 
170
			foreach ($structures as $structure) {
-
 
171
				// Traitement des paramêtres de stockage
-
 
172
				$truk_stockage_parametres = explode(';;', trim($structure['csc_truk_stockage_parametre'], ' ;'));
-
 
173
				$export_stockage_parametres = array();
-
 
174
				foreach ($truk_stockage_parametres as $param_code) {
-
 
175
					$param_code = preg_replace('/^AUTRE##/', '', trim($param_code));
-
 
176
					$param_txt = preg_match('/^[0-9]+$/', $param_code) ? $parametres[$param_code]['nom'] : $param_code;
-
 
177
					$export_stockage_parametres[] = addcslashes($param_txt, '"');
-
 
178
				}
-
 
179
				
-
 
180
				$id_structure = $structure['cs_id_structure'];
-
 
181
				$nom = addcslashes($structure['cs_nom'], '"');
-
 
182
				$stockage_params = implode(' ; ', $export_stockage_parametres);
-
 
183
				$stockage_params_nbre = count($export_stockage_parametres);
-
 
184
				$collection_nbre = $collections_par_structure[$structure['cs_id_structure']];
-
 
185
				$collection_nbre = empty($collection_nbre) ? 0 : $collection_nbre;
-
 
186
				$personnel_heure_nbre = empty($structure['personnel_heure_nbre']) ? 0 : $structure['personnel_heure_nbre'];
-
 
187
				
-
 
188
				$donnees['structures'][$id_structure] = array(
-
 
189
					'nom' => $nom, 
-
 
190
					'stockage_params' => $stockage_params,
-
 
191
					'stockage_params_nbre' => $stockage_params_nbre,
-
 
192
					'collection_nbre' => $collection_nbre,
-
 
193
					'personnel_heure_nbre' => $personnel_heure_nbre);
-
 
194
			}
-
 
195
		}
-
 
196
		
-
 
197
		// Création du contenu
-
 
198
		$contenu = $this->executerService($donnees);
-
 
199
		return $contenu;
-
 
200
	}
-
 
201
	
-
 
202
	private function getServiceCollectionExpertise() {
-
 
203
		$donnees = array();
-
 
204
		$projet_id = $this->parametres['projet'];
-
 
205
		
-
 
206
		// Construction de la requête
-
 
207
		$requete = 'SELECT '.(($this->distinct) ? 'SELECT DISTINCT' : '').' '.
-
 
208
					'	cc_id_collection, '.
-
 
209
					'	cc_nom, cs_nom, cc_ce_specimen_type, cc_description, cc_truk_periode_constitution, '.
-
 
210
					'	cc_truk_couverture_lieu, ccb_truk_etiquette_renseignement, ccb_truk_nature, '.
-
 
211
					'	ccb_truk_unite_base, ccb_ce_etat_general, ccb_truk_etiquette_fixation_support, '.
-
 
212
					'	ccb_truk_etiquette_fixation_specimen, ccb_truk_degradation_presentation, '.
-
 
213
					'	ccb_ce_classement_etat, ccb_ce_inventaire '.
-
 
214
					'FROM coel_collection '. 
-
 
215
		    		'	LEFT JOIN coel_collection_botanique ON (cc_id_collection = ccb_id_collection) '.
-
 
216
					'	LEFT JOIN coel_structure ON (cs_id_structure = cc_ce_structure) '.
-
 
217
					( is_null($projet_id) ? '' : "WHERE cc_ce_projet = $projet_id ").			
-
 
218
					'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby  : 'cc_nom ASC').' '.
-
 
219
					((!is_null($this->start) && !is_null($this->limit)) ? "LIMIT $this->start,$this->limit " : '');
-
 
220
		$message_echec = "La requête a retourné aucun résultat.";
-
 
221
		$structures = $this->executerRequete($requete, $message_echec);
-
 
222
		
-
 
223
		// Récupération des métadonnées nécessaires
-
 
224
		$requete = 	'SELECT cmlv_id_valeur, cmlv_ce_parent, cmlv_nom, cmlv_abreviation '.
-
 
225
					'FROM coel_meta_liste_valeur '.
-
 
226
					'WHERE cmlv_ce_parent IN ('.self::META_LISTES_EXPERTISE_COLLECTION.') ';
-
 
227
		$message_echec = "La requête de recherche des métadonnées a retourné aucun résultat.";
-
 
228
		$metadonnees = $this->executerRequete($requete, $message_echec);
-
 
229
		
-
 
230
		// Traitement des données
155
		if ($structures !== false) {
231
		if ($structures !== false) {
156
			// Traitement des métadonnées
232
			// Traitement des métadonnées
157
			$parametres = array(0 => array('nom' => 'Non renseigné', 'abr' => 'NR'));
233
			$parametres = array(0 => array('nom' => 'Non renseigné', 'abr' => 'NR'));
158
			foreach ($metadonnees as $meta) {
234
			foreach ($metadonnees as $meta) {
159
				$parametres[$meta['cmlv_id_valeur']] = array('nom' => $meta['cmlv_nom'], 'abr' => $meta['cmlv_abreviation']);
235
				$parametres[$meta['cmlv_id_valeur']] = array('nom' => $meta['cmlv_nom'], 'abr' => $meta['cmlv_abreviation']);