DROP FUNCTION IF EXISTS document_document_liste(prm_dos_id integer, prm_per_id integer, prm_start date, prm_end date);
DROP FUNCTION IF EXISTS document_document_liste(prm_dos_id integer, prm_per_id integer, prm_start date, prm_end date, prm_grp_id integer, prm_per_ids integer[]);
DROP FUNCTION IF EXISTS document_document_liste(prm_token integer, prm_dos_id integer, prm_per_id integer, prm_start date, prm_end date, prm_grp_id integer, prm_per_ids integer[]);
+DROP FUNCTION IF EXISTS document_document_liste(prm_token integer, prm_dos_id integer, prm_per_id integer, prm_start date, prm_end date, prm_grp_id integer, prm_per_ids integer[], prm_eta_id integer);
DROP FUNCTION IF EXISTS document_document_save(prm_doc_id integer, prm_per_id_responsable integer, prm_dty_id integer, prm_titre character varying, prm_statut integer, prm_date_obtention date, prm_date_realisation date, prm_date_validite date, prm_description text);
DROP FUNCTION IF EXISTS document_document_save(prm_doc_id integer, prm_per_id_responsable integer, prm_dty_id integer, prm_titre character varying, prm_statut integer, prm_date_obtention date, prm_date_realisation date, prm_date_validite date, prm_description text, prm_uti_id integer);
DROP FUNCTION IF EXISTS document_document_secteur_save(prm_doc_id integer, prm_sec_ids integer[]);
-CREATE OR REPLACE FUNCTION document_document_liste(prm_token integer, prm_dos_id integer, prm_per_id integer, prm_start date, prm_end date, prm_grp_id integer, prm_per_ids integer[], prm_eta_id integer) RETURNS SETOF document
+CREATE OR REPLACE FUNCTION document_document_liste(prm_token integer, prm_dos_id integer, prm_per_id integer,
+ prm_start date, prm_end date, prm_grp_id integer, prm_per_ids integer[], prm_eta_id integer, prm_sec_id integer, prm_dty_id integer) RETURNS SETOF document
LANGUAGE plpgsql
AS $$
DECLARE
INNER JOIN document.documents_secteur USING(sec_id)
INNER JOIN document.documents USING(dos_id)
INNER JOIN document.document_usager USING(doc_id)
+ INNER JOIN document.document_type_secteur USING(sec_id)
LEFT JOIN document.documents_statut USING (dos_id)
LEFT JOIN personne_groupe on personne_groupe.per_id = document_usager.per_id_usager
LEFT JOIN public.personne_etablissement ON document.document_usager.per_id_usager = public.personne_etablissement.per_id
AND (prm_per_ids ISNULL OR document_usager.per_id_usager = ANY (prm_per_ids))
AND (prm_eta_id ISNULL OR personne_etablissement.eta_id = prm_eta_id)
AND (NOT documents.dos_locked OR documents_statut.sta_id = personne_info_integer_get(prm_token, document_usager.per_id_usager, 'statut_usager'))
+ AND (prm_sec_id ISNULL OR sec_id = prm_sec_id)
+ AND (prm_dty_id ISNULL OR document.dty_id = prm_dty_id)
LOOP
RETURN NEXT row;
END LOOP;
END;
$$;
-COMMENT ON FUNCTION document_document_liste(prm_token integer, prm_dos_id integer, prm_per_id integer, prm_start date, prm_end date, prm_grp_id integer, prm_per_ids integer[], prm_eta_id integer) IS
+COMMENT ON FUNCTION document_document_liste(prm_token integer, prm_dos_id integer, prm_per_id integer, prm_start date, prm_end date, prm_grp_id integer, prm_per_ids integer[], prm_eta_id integer, prm_sec_id integer, prm_dty_id integer) IS
'Retourne une liste de documents, filtrée selon plusieurs paramètres.
Entrées :
- prm_token : Token d''authentification
- prm_eta_id : Identifiant de l''établissement auquel sont rattachés les types de documents, ou NULL pour retourner tous les types de documents
';
+DROP FUNCTION IF EXISTS document.document_document_type_liste_par_secteur(prm_token integer, prm_sec_ids integer, prm_dos_id integer);
+DROP TYPE document.document_document_type_liste_par_secteur;
+
+CREATE OR REPLACE FUNCTION document.document_document_type_liste_par_secteur(prm_token integer, prm_sec_id integer, prm_dos_id integer)
+ RETURNS SETOF document.document_type
+ LANGUAGE plpgsql
+ AS $$
+DECLARE
+ row document.document_type;
+BEGIN
+ PERFORM login._token_assert (prm_token, FALSE, FALSE);
+ FOR row IN
+ SELECT DISTINCT document_type.dty_id, concat_ws(' - ', secteur.sec_nom, document_type.dty_nom) as dty_nom, document_type.dty_nom_individuel
+ FROM document.document_type
+ INNER JOIN document.document_type_secteur USING(dty_id)
+ INNER JOIN meta.secteur USING (sec_id)
+ INNER JOIN document.documents_secteur USING (sec_id)
+ WHERE (prm_sec_id ISNULL OR document_type_secteur.sec_id = prm_sec_id)
+ AND (prm_dos_id ISNULL OR documents_secteur.dos_id = prm_dos_id)
+ ORDER BY sec_nom, dty_nom
+ LOOP
+ RETURN NEXT row;
+ END LOOP;
+END;
+$$;
+COMMENT ON FUNCTION document.document_document_type_liste_par_secteur(prm_token integer, prm_sec_id integer, prm_dos_id integer) IS
+'Retourne la liste des types de documents rattachés à un secteur donné, ou tous les types de toutes les thématiques sur un onglet de documents
+Entrées :
+ - prm_token : Token d''authentification
+ - prm_sec_id : idetifiant d''un secteur
+';
+
CREATE OR REPLACE FUNCTION document.document_document_type_secteur_ajoute (prm_token integer, prm_dty_id integer, prm_sec_id integer) RETURNS integer
LANGUAGE plpgsql
AS $$
';
DROP FUNCTION IF EXISTS document.document_documents_liste_details (prm_token integer);
+DROP FUNCTION IF EXISTS document.document_documents_liste_details(integer,character varying);
DROP FUNCTION IF EXISTS document.document_documents_liste_details (prm_token integer, prm_titre varchar, prm_sec_id integer);
DROP TYPE IF EXISTS document.document_documents_liste_details;
CREATE TYPE document.document_documents_liste_details AS (