Skip to content
Snippets Groups Projects

Mise à jour arborescence

Open Nathanaël TRAVIER requested to merge 2.0 into master
Compare and Show latest version
39 files
+ 628
1
Compare changes
  • Side-by-side
  • Inline
Files
39
# Bannettes de traitement
## Bannette de supervision (de ma direction)
```destination in (@my_entities, @subentities[@my_primary_entity]) and (status <> 'OUT' AND status <> 'DEL' AND status <> 'REP' and status <> 'VAL' and status <> 'STDBY' and status <> 'END')```
## Bannette Courrier de ma direction
```destination in (@my_entities, @subentities[@my_primary_entity]) and (status <> 'DEL' AND status<>'END' AND status <> 'REP' and status <> 'VAL' and status <> 'VALID_DGA' and status <>'VALID_DGS' and status <> 'RET' and status<> 'EAVIS' and status <>'EVIS' and status <> 'EENV' and status <> 'RET_VISA') and dest_user <> @user_id```
## Bannette Courriers arrivant à expiration (date de fin de contrat < 3 mois)
```custom_fields->>'1' is not null and custom_fields->>'1' <> '' and date(custom_fields->>'1') < now()+ interval '3 months'```
## Bannette tous les courriers qui ont été créé avant le 01/05/2023
```creation_date < TO_TIMESTAMP('2023-05-01', 'YYYY-MM-DD')```
## Supervision sur un champ custom et conservation 1 mois après la clôture
**Clause** : ```(status <> 'END' OR status = 'END' AND now() < closing_date + INTERVAL '1 month') AND custom_fields->>'6' = 'Oui'```
@@ -12,11 +28,19 @@ tous les documents dont
**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.
## Bannette Courrier en retard de traitement
```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é.
# Bannette d'avis
# Bannettes d'avis
## Courriers nécessitant un avis
```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```
## Avis séquentiels
### Avis séquentiel à donner
@@ -41,6 +65,316 @@ tous les documents dont
```WHERE res_view_letterbox.res_id = res_id```
```AND difflist_type = 'AVIS_CIRCUIT'```
```AND process_date is NULL) != 0)```
### Bannette À émettre
```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))```
# Bannette de visa/signature
**Utilité** :
### Bannette En attente de réponse
```status='EAVIS' and dest_user = @user_id```
### Courrier déjà visés
Liste des courriers que j'ai déjà visé.
``` 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 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
Si vous souhaitez voir les courriers déjà visés et non clôturés ajouter ```status <> ‘END’```
## Courrier de mon service en circuit de visa/signature
```status in ('ESIG', 'EVIS', 'ATT_MP') AND destination in (@my_entities)```
# Non présent dans mon parapheur interne
```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
## Courrier dont le viseur / signataire actuelle est de mon entité primaire
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[]([url](url))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
### Conditions d'apparition d'action usuelles
## Condition sur le nombre d'utilisateurs restant dans un circuit de visa
```res_id in (```
```SELECT res_id FROM listinstance li```
```WHERE res_view_letterbox.res_id = li.res_id```
```AND difflist_type = 'VISA_CIRCUIT'```
```AND process_date ISNULL```
```GROUP BY res_id```
```HAVING count(res_id) > 1```
``` ) ```
Changer la dernière condition pour changer la condition sur le nombre. Ici : “> 1” soit tout sauf dernier viseur.
Si cette clause est paramétrée pour une action, l'action n'apparaît que si l'utilisateur N'EST PAS le dernier viseur.
Pour que l'action apparaisse seulement pour le dernier viseur (souvent signataire), reprendre l'ensemble de la cause en modifiant la dernière ligne telle que :
```HAVING count(res_id) = 1```
# Condition sur le premier viseur :
L'action n’apparaît pas si je suis le premier viseur
```res_id in (```
```SELECT res_id```
```FROM listinstance```
```WHERE difflist_type='VISA_CIRCUIT'```
```AND item_id = @user_id```
```AND process_date is null```
```AND sequence > 0```
```)```
**Explication de la clause :**
```difflist_type = 'VISA_CIRCUIT' :``` Le circuit est un circuit de visa et non d'avis
```item_id = @user_id :``` Je fais partie du circuit du courrier
```process_date is null :``` Date de signature non renseigné
**sequence > 0 :** Tous les membres du circuit sauf le premier
# Condition sur le statut du prochain viseur
```res_id in (```
```SELECT res_id FROM listinstance li```
```WHERE li.listinstance_id in (```
```SELECT MIN(listinstance_id) + 1 FROM listinstance```
```WHERE listinstance.res_id = res_view_letterbox.res_id```
```AND difflist_type = 'VISA_CIRCUIT'```
```AND process_date ISNULL)```
```AND requested_signature```
```)```
# Condition d'action sur le dernier utilisateur au statut viseur :
L'action n’apparaît que si je suis le dernier viseur
```((res_id, @user_id) IN```
```(SELECT res_id, item_idFROM listinstance```
```WHERE difflist_type = 'VISA_CIRCUIT'```
```AND process_date ISNULL```
```AND item_mode = 'visa'```
```AND res_view_letterbox.res_id = res_id```
```AND sequence = (select max(sequence) FROM listinstance l```
```WHERE res_view_letterbox.res_id = res_id```
```AND item_mode = ('visa'))```
```ORDER BY listinstance_id asc limit 1))```
**Explication de la clause (faites par Lionel) :**
```difflist_type = 'VISA_CIRCUIT' :``` Le circuit est un circuit de visa et non d'avis
```item_mode = ‘visa’ :``` L'utilisateur est au statut “viseur"'
```process_date is null :``` Date de signature non renseigné
Variante :
item_mode = ‘sign’ : L'utilisateur est au statut “signataire"'
# Condition sur l'identité du prochain utilisateur dans le circuit de visa
```res_id in (```
```SELECT res_id FROM listinstance li```
```WHERE li.listinstance_id in (```
```SELECT MIN(listinstance_id) + 1 FROM listinstance```
```WHERE listinstance.res_id = res_view_letterbox.res_id```
```AND difflist_type = 'VISA_CIRCUIT'```
```AND process_date ISNULL )```
```AND item_id = '16'```
```)```
**Explication de la clause :**
```SELECT MIN(listinstance_id) + 1 FROM listinstance :``` L'utilisateur suivant dans le circuit
```AND difflist_type = 'VISA_CIRCUIT' :``` C'est un circuit de visa
```AND process_date ISNULL :``` Date de signature non renseigné
```AND item_id = '16' :``` Identifiant du prochain utilisateur souhaité
# Condition sur l'utilisateur en cours au statut signataire ou viseur
```res_id in (```
```SELECT res_id```
```FROM listinstance```
```WHERE difflist_type='VISA_CIRCUIT'```
```AND item_id = @user_id```
```AND process_date is null```
```AND item_mode = 'visa'```
```)```
```difflist_type = 'VISA_CIRCUIT' :``` Le circuit est un circuit de visa et non d'avis
```item_mode = ‘visa’ :``` L'utilisateur est au statut “viseur"'
```process_date is null :``` Date de signature non renseigné
```Variante :```
```item_mode = ‘sign’ :``` L'utilisateur est au statut "signataire"
# Courriers en visa à l’utilisateur dans une bannette spécifique
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é
## Bannette A viser dont le viseur en attente fait partie de l'une des entités
```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 "Documents déjà 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')```
## Bannette Courriers en circulation dans les parapheurs électroniques non présent dans ma bannette courrier à viser
```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)))```
## Bannette Courriers à viser dont le viseur en attente fait partie de l'une de mes entités
```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 Courriers visés/signés prêts à être envoyés
```status='EENV' and dest_user = @user_id```
## Bannette Courrier rejeté par le parapheur
```status='REJ_SIGN' and dest_user = @user_id```
# Bannettes de Courriers en copie
## Bannette Courriers en copie non clos ou sans suite
```(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)```
## Bannette Copies pour information lues
```(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)))```
## Bannette Courriers en copie clos
```(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)```
# Bannettes Courriers clos
## Bannette Tous les courriers clos depuis moins de 90 jours
```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)
# Bannettes Accusé de réception
## Bannette AR en masse transmis
```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 ))```
## Bannette AR non envoyés
```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'```
\ No newline at end of file
Loading