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
43 files
+ 452
29
Compare changes
  • Side-by-side
  • Inline
Files
43
+ 368
0
## Bannettes de supervision
#### **<span style="color: #033d77">Bannette Courrier de ma direction**
Visibilité des courriers de mon service et en dessous de mon service primaire
~~~ sql
destination in (@my_entities, @subentities[@my_primary_entity]) and (status not in ('OUT','DEL','REP','VAL','STDBY','END'))
~~~
#### **<span style="color: #033d77">Bannette Courrier de ma direction**
~~~ sql
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
~~~
#### **<span style="color: #033d77">Bannette Courriers arrivant à expiration (date de fin de contrat < 3 mois)**
~~~ sql
custom_fields->>'1' is not null and custom_fields->>'1' <> '' and date(custom_fields->>'1') < now()+ interval '3 months'
~~~
#### **<span style="color: #033d77">Bannette tous les courriers qui ont été créé avant le 01/05/2023**
~~~ sql
creation_date < TO_TIMESTAMP('2023-05-01', 'YYYY-MM-DD')
~~~
#### **<span style="color: #033d77">Supervision sur un champ custom et conservation 1 mois après la clôture**
~~~ sql
(status <> 'END' OR status = 'END' AND now() < closing_date + INTERVAL '1 month') AND custom_fields->>'6' = 'Oui'
~~~
**Explication** :
tous les documents dont
1. ```status <> 'END'``` le statut est différent de END
2. OU ```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'aujourdhui
3. ET ```custom_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.
## Bannette de traitement
#### **<span style="color: #033d77">Bannette Mes courriers en retard de traitement**
~~~ sql
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é.
## Bannettes d'avis
#### **<span style="color: #033d77">Courriers nécessitant un avis**
~~~ sql
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
#### **<span style="color: #033d77">Avis séquentiel à donner**
~~~ sql
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é**
#### **<span style="color: #033d77">Avis séquentiel en cours**
~~~ sql
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)
~~~
#### **<span style="color: #033d77">Avis à émettre**
~~~ sql
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))
~~~
#### **<span style="color: #033d77">Avis en attente de réponse**
~~~ sql
status='EAVIS' and dest_user = @user_id
~~~
#### **<span style="color: #033d77">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.
~~~ sql
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é
#### **<span style="color: #033d77">A viser dont le viseur en attente fait partie de l'une des entités**
~~~ sql
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)))
~~~
#### **<span style="color: #033d77">Documents déjà visés**
Bannette de consultation de mes courriers visés
~~~ 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')
~~~
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')```
#### **<span style="color: #033d77">Courriers en circulation dans les parapheurs électroniques non présent dans ma bannette courrier à viser**
~~~ sql
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)))
~~~
#### **<span style="color: #033d77">Courriers à viser dont le viseur en attente fait partie de l'une de mes entités**
~~~sql
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)))
~~~
#### **<span style="color: #033d77">Bannette Courriers visés/signés prêts à être envoyés**
~~~ sql
status='EENV' and dest_user = @user_id
~~~
#### **<span style="color: #033d77">Bannette Courrier rejeté par le parapheur**
~~~ sql
status='REJ_SIGN' and dest_user = @user_id
~~~
## Bannette de Courriers en copie
#### **<span style="color: #033d77">Courriers en copie non clos ou sans suite**
~~~ sql
(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)
~~~
#### **<span style="color: #033d77">Copies pour information lues**
~~~ sql
(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)))
~~~
#### **<span style="color: #033d77">Bannette Courriers en copie clos**
~~~ sql
(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)
~~~
## Bannette Accusé de réception
#### **<span style="color: #033d77">AR en masse transmis**
~~~ sql
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 ))
~~~
#### **<span style="color: #033d77">AR non envoyés**
~~~ sql
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 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’```
## Bannette visa / signature
#### **<span style="color: #033d77">Courrier de mon service en circuit de visa/signature**
~~~ sql
status in ('ESIG', 'EVIS', 'ATT_MP')
AND destination in (@my_entities)
~~~
#### **<span style="color: #033d77">Non présent dans mon parapheur interne**
~~~ sql
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
#### **<span style="color: #033d77">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)
~~~ sql
(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 :
~~~ sql
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
## Bannettes Courriers clos
#### **<span style="color: #033d77">Tous les courriers clos depuis moins de 90 jours**
~~~ sql
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 Administrateur
#### **<span style="color: #033d77">Tous les courriers avec une pièce jointe de type projet de réponse**
~~~ sql
res_id in (
select res_id_master from res_attachments
Where attachment_type in ('response_project')
AND status in ('TMP','SIGN','TRA','PJQUAL','A_TRA')
)
~~~
**Explication de la clause :**
```res_id in ( select res_id_master from res_attachments :``` Courriers pour lesquels il existe une PJ
```Where attachment_type in ('response_project') AND status in ('TMP','SIGN','TRA','PJQUAL','A_TRA') :``` Où le type de pièce jointe est X et qui est dans un statut de traitement.
A noter que 'response.project' peut être remplacer par tout type de pièce jointe existant (administration -> pièce jointe).
Les statuts des pj sont dispnible dans l'administration des statuts puis en filtrant avec "Pj"
#### **<span style="color: #033d77">Tous les courriers avec un contact possédant une organisation et champs personnalisé particulier **
~~~ sql
res_id in (
select res_id from resource_contacts
where item_id in (
select id from contacts
Where custom_fields->>'9' = 'X'
and company in ('Sénat','Assemblée nationale')
)
)
~~~
**Explication de la clause :**
``` res_id in (select res_id from resource_contacts :``` Courriers pour lesquels il existe un contact (destinataire ou expéditeur)
```Where custom_fields->>'9' = 'X' :``` Ou le champs personnalisé contact (administration -> contact -> champs personnalisés) avec l'identifiant 9 à pour valeur X
```and company in ('Sénat','Assemblée nationale') :``` et donc l'organisation est égal à Sénat ou Assemblée nationale
A noter que le filtrage sur les contacts peut être effectué sur l'ensemble des champs de la table 'ressource_contacts'. Cependant, les filtres sont sensibles à la casse (Majuscule, espace, accent)
Loading