Visibilité des courriers de mon service et en dessous de mon service primaire
destination in (@my_entities, @subentities[@my_primary_entity]) and (status not in ('OUT','DEL','REP','VAL','STDBY','END'))
destination in (@my_entities, @subentities[@my_entities]) and and (status not in ('OUT','DEL','REP','VAL','STDBY','END','VALID_DGA','VALID_DGS' ,'EAVIS','EVIS','EENV','RET_VISA') and dest_user <> @user_id
custom_fields->>'1' is not null and custom_fields->>'1' <> '' and date(custom_fields->>'1') < now()+ interval '3 months'
creation_date < TO_TIMESTAMP('2023-05-01', 'YYYY-MM-DD')
(status <> 'END' OR status = 'END' AND now() < closing_date + INTERVAL '1 month') AND custom_fields->>'6' = 'Oui'
Explication : tous les documents dont
status <> 'END'
le statut est différent de END status = 'END' AND now() < closing_date + INTERVAL '1 month'
le statut est END ET la date de clôture est inférieure de 30 jours à la date d'aujourdhuicustom_fields->>'6' = 'Oui'
la valeur du champ personnalisé dont l'identifiant technique est 6 est "OUI"Utilité : bannette de contrôle de documents qui remplisse une condition particulière. Par exemple, tous les courriers confidentiels en cours de traitement ou clôturés depuis moins d'un mois.
dest_user = @user_id and (status <> 'DEL' AND status <> 'REP' and status <> 'END') and (now() > process_limit_date)
Courriers à traiter OU pour lesquels on m'a donné un avis OU dont la date limite d'avis est dépassé.
status = 'EAVIS' AND res_id IN (SELECT res_id FROM listinstance WHERE item_type = 'user_id' AND item_id = @user_id AND item_mode = 'avis' and process_date is NULL```
status in ('EAVIS') document au statut EAVIS
AND ((res_id, @user_id) IN (dont l'attributaire est
SELECT res_id, item_id
FROM listinstance
WHERE difflist_type = 'AVIS_CIRCUIT'
AND process_date ISNULL
AND res_view_letterbox.res_id = res_id
ORDER BY listinstance_id asc limit 1
Utilité
status='EAVIS'
AND dest_user=@user_id
AND ((
SELECT count(res_id)
FROM listinstance
WHERE res_view_letterbox.res_id = res_id
AND difflist_type = 'AVIS_CIRCUIT'
AND process_date is NULL) != 0)
status in ('COMPLD', 'EAVIS') AND ((res_id, @user) in
(SELECT res_id, item_id
FROM listinstance
WHERE difflist_type = 'AVIS_CIRCUIT'
AND process_date ISNULL
AND res_view_letterbox.res_id = res_id
order by listinstance_id asc limit 1))
status='EAVIS' and dest_user = @user_id
Clause permettant de récupérer tous les courriers en cours de visa / signature d'un utilisateur spécifique dans une bannette attribuable à un groupe (plusieurs utilisateurs). Ceci permet la relecture du courrier par un service/groupe de personne lors d'un circuit de visa.
Contexte client :
En tant qu’assistant(e) du service courrier, le client souhaite vérifier la bonne application de la charte du courrier à viser après le visa par le manager avant que celui ci poursuivre son circuit de visa dans les niveaux supérieurs.
status in ('ESIG', 'EVIS')
AND ((res_id, 780)
IN (SELECT res_id, item_id FROM listinstance
WHERE difflist_type = 'VISA_CIRCUIT'
AND process_date ISNULL
AND res_view_letterbox.res_id = res_id
order by listinstance_id asc limit 1))
Explication de la clause :
status in ('ESIG', 'EVIS') :
courrier au statut EVIS / ESIG
(res_id, 780) :
identifiant du compte utilisateur utilisé comme viseur dans le circuit
difflist_type = 'VISA_CIRCUIT' :
Le circuit est un circuit de visa et non d'avis
process_date is null :
Date de signature non renseigné
res_id IN (SELECT list1.res_id FROM listinstance as list1 LEFT JOIN (SELECT list_lj.* FROM listinstance as list_lj WHERE list_lj.difflist_type = 'VISA_CIRCUIT' AND list_lj.process_date IS NULL AND list_lj.res_id = res_view_letterbox.res_id ORDER BY list_lj.listinstance_id asc LIMIT 1) as list2 ON list1.listinstance_id = list2.listinstance_id WHERE list2.requested_signature = false AND list2.item_id IN (SELECT user_id FROM users_entities WHERE entity_id in(@my_entities)))
Bannette de consultation de mes courriers visés
res_id in (Select res_id from listinstance where item_id = @user_id and process_date is not null and difflist_type = 'VISA_CIRCUIT')
En ce qui concerne la clause de la bannette :
Si l'on veut ajouter "non clos" il faut ajouté : < and status != 'END' >
Si l'on veut pas des courriers "supprimé" il faut ajouté : and status <> ('DEL')
status in ('ESIG', 'EVIS', 'ATT_MP') and res_id in (Select res_id from listinstance where (item_id = @user_id and process_date is not null and difflist_type = 'VISA_CIRCUIT' AND destination in (@my_entities))OR(item_id != @user_id and difflist_type = 'VISA_CIRCUIT' AND destination in (@my_entities)))
res_id IN (SELECT list1.res_id FROM listinstance as list1 LEFT JOIN (SELECT list_lj.* FROM listinstance as list_lj WHERE list_lj.difflist_type = 'VISA_CIRCUIT' AND list_lj.process_date IS NULL AND list_lj.res_id = res_view_letterbox.res_id ORDER BY list_lj.listinstance_id asc LIMIT 1) as list2 ON list1.listinstance_id = list2.listinstance_id WHERE list2.requested_signature = false AND list2.item_id IN (SELECT user_id FROM users_entities WHERE entity_id in(@my_entities)))
status='EENV' and dest_user = @user_id
status='REJ_SIGN' and dest_user = @user_id
(res_id in (select res_id from listinstance WHERE item_type = 'user_id' and item_id = @user_id and item_mode = 'cc') or res_id in (select res_id from listinstance WHERE item_type = 'entity_id' and item_mode = 'cc' and item_id in (@my_entities_id))) and status not in ( 'DEL', 'END', 'SSUITE') and res_id not in (select res_id from res_mark_as_read WHERE user_id = @user_id)
(res_id in (select res_id from listinstance WHERE item_type = 'user_id' and item_id = @user_id and item_mode = 'cc') or res_id in (select res_id from listinstance WHERE item_type = 'entity_id' and item_mode = 'cc' and item_id in (@my_entities_id)))
(res_id in (select res_id from listinstance WHERE item_type = 'user_id' and item_id = @user_id and item_mode = 'cc') or res_id in (select res_id from listinstance WHERE item_type = 'entity_id' and item_mode = 'cc' and item_id in (@my_entities_id))) and status in ( 'END') and res_id not in (select res_id from res_mark_as_read WHERE user_id = @user_id)
dest_user = @user_id AND ((res_id IN(SELECT distinct res_id FROM acknowledgement_receipts WHERE creation_date is not null AND send_date is not null) and status not in ('END')) OR res_id IN (SELECT distinct res_id FROM acknowledgement_receipts WHERE creation_date is not null AND send_date is null ))
dest_user = @user_id AND res_id NOT IN(select distinct res_id from acknowledgement_receipts) and status not in ('END') and category_id = 'incoming'
## Bannette de visa/signature
**Utilité** :
#### **<span style="color: #033d77">Courrier déjà visés**
Liste des courriers que j'ai déjà visé.
~~~ sql
res_id in
SELECT res_id FROM listinstance
WHERE item_id = @user_id
AND process_date is not null
AND difflist_type = 'VISA_CIRCUIT'
Explication de la clause :
item_id = @user_id :
Je fais partie du circuit courrierprocess_date is not null :
Date de signature non renseigné
difflist_type = 'VISA_CIRCUIT' :
Le circuit est un circuit de visa et non d'avis
Si vous souhaitez voir les courriers déjà visés et non clôturés ajouter status <> ‘END’
status in ('ESIG', 'EVIS', 'ATT_MP')
AND destination in (@my_entities)
status in ('ESIG', 'EVIS', 'ATT_MP')
AND res_id in (
SELECT res_id FROM listinstance
WHERE (item_id = @user_id AND process_date is not null AND difflist_type = 'VISA_CIRCUIT' AND destination in (@my_entities))
OR
(item_id != @user_id AND difflist_type = 'VISA_CIRCUIT' AND destination in (@my_entities))
)
Clause de tout les courriers en cours de visa/signature dans mon service pour lequel j'ai déjà visé le courrier ou pour lequel je ne suis pas dans le circuit de visa/signature
Explication de la clause :
(item_id = @user_id and process_date is not null and difflist_type = 'VISA_CIRCUIT' AND destination in (@my_entities)) :
Courrier que j'ai visé
item_id = @user_id :
Je fais partie du circuit du courrier
process_date is not null :
Date de signature non renseigné
difflist_type = 'VISA_CIRCUIT' :
Le circuit est un circuit de visa et non d'avis
AND destination in (@my_entities):
Le circuit est à destination de mon service
(item_id != @user_id and difflist_type = 'VISA_CIRCUIT' AND destination in (@my_entities)) :
Courrier que pour lequel je ne suis pas dans le circuit de visa et en cours de visa dans mon service
Clause permettant de récupérer tout les courriers en cours de visa / signature dont le membre du circuit actuel fait partie de mon entité.
Cas client :
En tant qu'assistante de direction je sou)haite voir tout les courriers à parapher par mon directeur. (permet de viser / signer en lieu et place de son directeur sans délégation)
(status in ('EVIS','ESIG')
AND res_id in
(SELECT t.res_id FROM
(SELECT res_id, item_id FROM listinstance
WHERE item_mode in('visa','sign')
AND difflist_type = 'VISA_CIRCUIT'
AND process_date ISNULL
AND res_view_letterbox.res_id = res_id
ORDER BY sequence ASC LIMIT 1) t
WHERE t.item_id IN (SELECT user_id FROM users_entities WHERE entity_id = @my_primary_entity)))
Explication de la clause :
((status in ('EVIS','ESIG')) :
courrier au statut EVIS / ESIG
item_mode in('visa','sign') AND difflist_type = 'VISA_CIRCUIT' AND process_date ISNULL AND res_view_letterbox.res_id = res_id ORDER BY sequence ASC LIMIT 1) :
Courrier pour lesquels l'utilisateur en cours est signature ou viseur qui sont des circuits de visa. Ordonné de manière croissante
WHERE t.item_id IN (SELECT user_id FROM users_entities WHERE entity_id = @my_primary_entity))) :
Pour lesquels l'utilisateur en cours est de mon entité primaire
Variante :
WHERE t.item_id IN (SELECT user_id FROM users_entities WHERE destination in (@my_entities))))):
Pour lesquels l'utilisateur en cours appartient à l'une de mes entités
closing_date >= (current_date - 90)
Attention : Maarch Courrier n'accepte pas les formats de mots-clés inclus dans un sous-mots-clés (@subentities et @sisters_entities)