CREATE FUNCTION cen_insertion_point_faune() RETURNS integer
    AS $_$
DECLARE
	myrec RECORD;
	var_gid bigint;
	var_protocole bigint;
	var_id_lot_donnee character varying(50);
BEGIN
	FOR myrec IN 
			SELECT gid, ese_id_entite, id_lot_donnee, protocole /*	ajouter plus tard les attributs validation_id_personne et 	validation_id_structure 	*/ 
			FROM point_faune_a_importer
			WHERE ese_id_entite IS NULL 
	LOOP
		var_gid:=myrec.gid;																	
		var_protocole:=myrec.protocole;				-- ese
		var_id_lot_donnee:=myrec.id_lot_donnee;			-- a ventiler dans les métadonnées 				
		EXECUTE 
			$req$
				INSERT INTO entite_spatiale_ecologique (id_entite, id_protocole, validateur_code_personne, validateur_id_structure, lot_donnee_id_lot, type_entite) 
				VALUES(NEXTVAL('entite_spatiale_ecologique_id_entite_seq'),$req$||quote_literal(var_protocole)||$req$, NULL, NULL, $req$||quote_literal(var_id_lot_donnee)||$req$, 'point_faune')
			$req$;
		RAISE INFO 'nouvelle ESE de type point_faune ajoutée';
		EXECUTE 
			$req$
				UPDATE point_faune_a_importer SET ese_id_entite=currval('entite_spatiale_ecologique_id_entite_seq'), date_ventilation=current_date WHERE gid=$req$||quote_literal(var_gid)||$req$ 
			$req$;
		RAISE INFO 'ligne courante de la table point_faune_a_importer mise à jour';
		EXECUTE 
			$req$
				INSERT INTO point_faune(
						ese_id_entite, date_obs, date_debut_obs, date_fin_obs, date_textuelle, phenologie, effectif, effectif_min, effectif_max, type_effectif, coord_x, coord_y, coord_z, systeme_coordonnees, id_taxon, "precision", remarque, geometrie, unite, lieu_dit, taxon_mentionne)
				SELECT 	ese_id_entite, date_obs, date_debut_obs, date_fin_obs, date_textuelle, phenologie, effectif, effectif_min, effectif_max, type_effectif, coord_x, coord_y, altitude, systeme_coordonnees, id_taxon, "precision", remarque, geometrie, unite, lieu_dit, CASE WHEN nom_scientifique IS NULL THEN nom_vernaculaire
ELSE nom_scientifique END FROM point_faune_a_importer WHERE gid=$req$||var_gid||$req$
            $req$;
        RAISE INFO 'nouveau point_faune ajouté';
	END LOOP;
	RETURN 1;
END;
$_$
    LANGUAGE plpgsql;