CREATE FUNCTION cen_insertion_perimetre_flore() 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 validateur_id_personne et validateur_id_structure */
FROM perimetre_flore_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$, 'perimetre_flore')
$req$;
RAISE INFO 'nouvelle ESE de type perimetre_flore ajoutée';
EXECUTE
$req$
UPDATE perimetre_flore_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 perimetre_flore_a_importer mise à jour';
EXECUTE
$req$
INSERT INTO perimetre_flore(
ese_id_entite, date_obs, date_debut_obs, date_fin_obs, date_textuelle, phenologie, effectif, effectif_min, effectif_max, type_effectif, id_taxon, "precision", remarque, geometrie, lieu_dit)
SELECT ese_id_entite, date_obs, date_debut_obs, date_fin_obs, date_textuelle, phenologie, effectif, effectif_min, effectif_max, type_effectif, id_taxon, "precision", remarque, geometrie, lieu_dit FROM perimetre_flore_a_importer WHERE gid=$req$||var_gid||$req$
$req$;
RAISE INFO 'nouveau perimetre_flore ajouté';
END LOOP;
RETURN 1;
END;
$_$
LANGUAGE plpgsql;