1001 exemples de bannettes

Mes courriers en copie non lus

res_id in (SELECT res_id FROM listinstance 
WHERE coll_id = 'letterbox_coll' 
   AND item_type = 'user_id' 
   AND item_id = @user 
   AND item_mode = 'cc' 
   AND viewed = 0) 
   AND status <> 'DEL'

Courriers en copie non lus et les courriers de mon service en copie

 ((res_id in  (SELECT res_id FROM listinstance 
  WHERE coll_id = 'letterbox_coll' 
    AND item_type = 'user_id' and item_id = @user 
    AND item_mode = 'cc' 
    AND viewed=0))  
    OR  (res_id in (select res_id from listinstance 
    WHERE coll_id = 'letterbox_coll' 
    AND item_type = 'entity_id' 
    AND item_mode = 'cc' 
    AND item_id in (@my_entities))))

Courriers des 5 derniers jours (mode mémo)
Cette bannette permet de voir l’ensemble des courriers créés, et gérer leur présence.

   status NOT IN ('DEL','REP')  AND

-- Le courrier ne doit pas être marqué lu (action à créer sur la bannette)
     
     res_id not in (select res_id from res_mark_as_read WHERE user_id = @user) 
     AND
     (

-- Tous les courriers de la semaine

     admission_date > now() - interval '5 days' 
     OR

-- ou tous ceux en copie non vus

     res_id in (select res_id from listinstance WHERE coll_id = 'letterbox_coll' and item_type = 'user_id' and    item_id = @user and item_mode = 'cc' AND viewed = 0) 
     OR

-- ou tous ceux persistants (actions activer et désactiver à créer sur la bannette)

    res_id in (select res_id from basket_persistent_mode WHERE user_id = @user AND is_persistent = 'Y')
)

Courriers à qualifier

((type_id = 10
   AND status ='REC'
   AND source = 'enveloppe_fermee')
   AND (select count(*) from res_letterbox 
   WHERE res_letterbox.custom_t3 = res_view_letterbox.identifier
   AND res_letterbox.type_id = 1) =0)
   AND (DESTINATION in (@my_entities))

Il faudrait mieux éviter un select count (*) et utiliser celle ci-après

((type_id = 10
   AND status ='REC'
   AND source = 'enveloppe_fermee')
   AND ( NOT EXISTS (select NULL from res_letterbox 
   WHERE res_letterbox.custom_t3 = res_view_letterbox.identifier
   AND res_letterbox.type_id = 1))
   AND (DESTINATION in (@my_entities)))

Mes courriers persistents

(res_id in (select res_id from basket_persistent_mode WHERE user_id = @user AND is_persistent = 'Y'))

Courriers créés de la semaine

`creation_date > now() - interval '5 days'`

Mes courriers enregistrés du jour

creation_date::date = current_date  AND typist = @user

Mes courriers traités du jour

Pour cette bannette, nous allons rechercher les événements correspondant à une action fonctionnelle dans l’historique des événements (table HISTORY). L’identifiant de l’action apparaît dans l’écran d’administration des actions. Attention à positionner des index si la base est très chargée !

res_id in (select cast(record_id as bigint) from history 
   WHERE event_type IN ('ACTION#19')
   AND event_date::date = current_date
   AND user_id = @user)

(mettre toutes les actions qui sont définies comme traitement de courrier => ACTION#|action_id])

Mes courriers à traiter

Lorsque l’on utilise le parapheur, il est possible que l’on envoie le document en visa alors qu’aucun circuit de visa n’a été défini. Cette modification dans la clause des courriers à traiter conserve le courrier dans la bannette des courriers à traiter pour rectifier l’erreur ! (version applicable : 1.5+)

((status ='NEW' or status ='COU') 
   AND dest_user = @user)
   OR
   (status='EVIS' AND NOT EXISTS (SELECT res_id, item_id FROM listinstance
   WHERE item_mode = 'visa' 
   AND res_view_letterbox.res_id = res_id order by listinstance_id asc limit 1))

Mes courriers à traiter dans la catégorie courrier arrivée

(status ='NEW' or status ='COU') AND dest_user = @user AND category_id <> 'outgoing'

(mettre toutes les actions qui sont définies comme traitement de courrier => ACTION#|action_id])

Courriers non clos dont les notes associées mentionnent la chaîne de caractères "URGENT"

res_id in (SELECT identifier from notes WHERE note_text LIKE '%URGENT%') and status <> 'END'

Courriers de l’année en cours

DATE_PART('year', creation_date) = DATE_PART('year', now())

Courriers des 12 derniers mois

creation_date > (CURRENT_TIMESTAMP - INTERVAL '365')

Courriers modifiés par mon entité primaire

status IN ('NEW','COU','DEL') AND ((destination = @my_primary_entity) OR (initiator = @my_primary_entity) OR (res_id IN (SELECT res_id from listinstance_history_details WHERE added_by_entity = @my_primary_entity)))

Courriers à signer - collectif

Cette bannette permet de faire signer les collaborateurs de l’entité du signataire à sa place

(status = 'ESIG') AND (res_id IN (SELECT res_id FROM listinstance WHERE item_mode = 'sign' AND res_view_letterbox.res_id = res_id AND (item_id IN (SELECT u.user_id from users u, users_entities ue WHERE u.user_id = ue.user_id AND (ue.entity_id IN (SELECT entity_id FROM users_entities WHERE user_id = @user AND primary_entity = 'Y')))) order by listinstance_id asc))