DROP FUNCTION IF EXISTS liste_liste_supprime_rec(prm_lis_id integer);
DROP FUNCTION IF EXISTS liste_liste_update(prm_lis_id integer, prm_nom character varying, prm_ent_id integer, prm_inverse boolean);
DROP FUNCTION IF EXISTS liste_liste_update(prm_lis_id integer, prm_nom character varying, prm_ent_id integer, prm_inverse boolean, prm_pagination_tout boolean);
+DROP FUNCTION IF EXISTS liste_liste_update(prm_token integer, prm_lis_id integer, prm_nom character varying, prm_code varchar, prm_ent_id integer, prm_inverse boolean, prm_pagination_tout boolean);
--
-- Suppression anciennes fonctions
COMMENT ON FUNCTION liste_liste_supprime(prm_token integer, prm_lis_id integer) IS
'Supprime une configuration de page liste.';
-CREATE OR REPLACE FUNCTION liste_liste_update(prm_token integer, prm_lis_id integer, prm_nom character varying, prm_code varchar, prm_ent_id integer, prm_inverse boolean, prm_pagination_tout boolean) RETURNS void
+CREATE OR REPLACE FUNCTION liste_liste_update(prm_token integer, prm_lis_id integer, prm_nom character varying, prm_code varchar, prm_ent_id integer, prm_inverse boolean, prm_pagination_tout boolean, prm_lis_locked boolean) RETURNS void
LANGUAGE plpgsql
AS $$
BEGIN
PERFORM login._token_assert (prm_token, FALSE, FALSE);
PERFORM login._token_assert_interface (prm_token);
- UPDATE liste.liste SET lis_nom = prm_nom, lis_code = pour_code (prm_code), ent_id = prm_ent_id, lis_inverse = prm_inverse, lis_pagination_tout = prm_pagination_tout WHERE lis_id = prm_lis_id;
+ UPDATE liste.liste SET lis_nom = prm_nom, lis_code = pour_code (prm_code), ent_id = prm_ent_id, lis_inverse = prm_inverse, lis_pagination_tout = prm_pagination_tout, lis_locked = prm_lis_locked WHERE lis_id = prm_lis_id;
END;
$$;
-COMMENT ON FUNCTION liste_liste_update(prm_token integer, prm_lis_id integer, prm_nom character varying, prm_code varchar, prm_ent_id integer, prm_inverse boolean, prm_pagination_tout boolean) IS
+COMMENT ON FUNCTION liste_liste_update(prm_token integer, prm_lis_id integer, prm_nom character varying, prm_code varchar, prm_ent_id integer, prm_inverse boolean, prm_pagination_tout boolean, prm_lis_locked boolean IS
'Modifie les informations d''une configuration de page liste.';
CREATE OR REPLACE FUNCTION liste_supp_edit (prm_token integer, prm_cha_id integer, prm_inf_ids integer[])
RETURN tmp_supp.sup_id;
END;
$$;
+
+CREATE OR REPLACE FUNCTION liste_liste_statuts_set (prm_token integer, prm_lis_id integer, prm_sta_ids integer[]) RETURNS void LANGUAGE plpgsql AS
+$$
+BEGIN
+ PERFORM login._token_assert (prm_token, FALSE, TRUE);
+ DELETE FROM liste.liste_statut WHERE lis_id = prm_lis_id;
+ IF prm_sta_ids NOTNULL THEN
+ FOR i IN 1 .. array_upper(prm_sta_ids, 1) LOOP
+ INSERT INTO liste.liste_statut (lis_id, sta_id) VALUES (prm_lis_id, prm_sta_ids[i]);
+ END LOOP;
+ END IF;
+END;
+$$;
+COMMENT ON FUNCTION liste_liste_statuts_set (prm_token integer, prm_lis_id integer, prm_sta_ids integer[]) IS
+'Indique les statuts de dossiers d''utilisateurs que l''on souhaite prendre en compte sur une vue de liste.
+
+Entrées :
+ - prm_token : Token d''authentification
+ - prm_lis_id : Identifiant de la vue de liste
+ - prm_sta_ids : tableau d''identifiants de status';
+
+CREATE OR REPLACE FUNCTION liste_liste_statuts_get (prm_token integer, prm_lis_id integer) RETURNS SETOF liste.liste_statut
+LANGUAGE plpgsql AS
+$$
+DECLARE
+ row liste.liste_statut%ROWTYPE;
+BEGIN
+ PERFORM login._token_assert (prm_token, FALSE, FALSE);
+ FOR row IN
+ SELECT * FROM liste.liste_statut
+ WHERE lis_id = prm_lis_id
+ LOOP
+ RETURN NEXT row;
+ END LOOP;
+END;
+$$;
+COMMENT ON FUNCTION liste_liste_statuts_get (prm_token integer, prm_lis_id integer) IS
+'Retourne quels statuts d''usagers sont pris en compte sur une vue de liste.
+
+Entrées :
+ - prm_token : Token d''authentification
+ - prm_lis_id : Identifiant de la vue de liste';