<?php
// declare(encoding='UTF-8');
/**
 * Contient les requêtes effecturant la migration pour Sauvages.
 *
 * @category   CEL
 * @package    Scripts
 * @subpackage Migration : Sauvages
 * @author     Mathias CHOUET <mathias@tela-botanica.org>
 * @author     Jean-Pascal MILCENT <jpm@tela-botanica.org>
 * @author     Aurelien PERONNET <aurelien@tela-botanica.org>
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
 * @copyright  1999-2014 Tela Botanica <accueil@tela-botanica.org>
 */
class Dao extends Bdd {

	public function obtenirNbObservationsSauvages() {
		$requete = 'SELECT COUNT(*) AS nb '.
			'FROM cel_obs '.
			'WHERE mots_cles_texte LIKE "%sauvages%" '.
			'	AND mots_cles_texte LIKE "%Projets coopératifs%" '.
			'	AND mots_cles_texte NOT LIKE "%florileges%" '.
			' -- '.__FILE__.' '.__LINE__;

		$resultat = $this->recuperer($requete);
		return $resultat['nb'];
	}

	public function obtenirObservationsSauvages($debut, $limite) {
		$requete = 'SELECT * '.
			'FROM cel_obs '.
			'WHERE mots_cles_texte LIKE "%sauvages%" '.
			'	AND mots_cles_texte LIKE "%Projets coopératifs%" '.
			'	AND mots_cles_texte NOT LIKE "%florileges%" '.
			"LIMIT $debut, $limite ".
			' -- '.__FILE__.' '.__LINE__;

		$resultat = $this->recupererTous($requete);
		return $resultat;
	}

	public function ajouterChampsEtendusParLots($obs_a_champs_etendus) {
		$lignes = array();

		foreach ($obs_a_champs_etendus as $champs_etendus_obs) {
			foreach ($champs_etendus_obs as $champ_etendu) {
				$id = $this->proteger($champ_etendu['id_observation']);
				$cle = $this->proteger($champ_etendu['cle']);
				$label = $this->proteger($champ_etendu['label']);
				$valeur = $this->proteger($champ_etendu['valeur']);
				$lignes[] = "($id, $cle, $label, $valeur)";
			}
		}

		$requete = "INSERT INTO cel_obs_etendues (id_observation, cle, label, valeur) ".
			'VALUES '.implode(',', $lignes).' '.
			'ON DUPLICATE KEY UPDATE valeur = VALUES(valeur) '.
			'-- '.__FILE__.' '.__LINE__;

		// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour
		// où l'on change de sgbd
		$ajout = $this->requeter($requete);
		return ($ajout !== false);
	}
}