From 3a91b04ee79dbc1a109a40cfc71d2b8daea9e3e8 Mon Sep 17 00:00:00 2001 From: Guillaume Heurtier <guillaume.heurtier@maarch.org> Date: Wed, 8 Jul 2020 14:08:14 +0200 Subject: [PATCH] FEAT #14247 TIME 2:20 fix note notifications --- modules/notifications/diffusion_types/copy_list.php | 12 ++++++------ .../notifications/diffusion_types/dest_entity.php | 4 ++-- .../notifications/diffusion_types/dest_user_sign.php | 8 ++++---- .../notifications/diffusion_types/dest_user_visa.php | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/modules/notifications/diffusion_types/copy_list.php b/modules/notifications/diffusion_types/copy_list.php index 090675d0b48..818a99cd774 100755 --- a/modules/notifications/diffusion_types/copy_list.php +++ b/modules/notifications/diffusion_types/copy_list.php @@ -19,7 +19,7 @@ switch ($request) { $select = 'SELECT distinct us.*'; $from = ' FROM listinstance li ' .' JOIN users us ON li.item_id = us.user_id'; - $where = " WHERE li.coll_id = 'letterbox_coll' AND li.item_mode = 'cc'" + $where = " WHERE li.item_mode = 'cc'" ." AND item_type='user_id'"; $arrayPDO = array(':recordid' => $event->record_id); @@ -27,7 +27,7 @@ switch ($request) { switch ($event->table_name) { case 'notes': $from .= ' JOIN notes ON notes.identifier = li.res_id'; - $where .= ' AND notes.id = :recordid AND li.item_id != notes.user_id' + $where .= ' AND notes.id = :recordid AND li.item_id != (SELECT user_id FROM users WHERE id = notes.user_id)' .' AND (' .' notes.id not in (SELECT DISTINCT note_id FROM note_entities) ' .' OR us.user_id IN (SELECT ue.user_id FROM note_entities ne JOIN users_entities ue ON ne.item_id = ue.entity_id WHERE ne.note_id = :recordid)' @@ -66,13 +66,13 @@ switch ($request) { $from = ' FROM listinstance li ' .' LEFT JOIN users_entities ue ON li.item_id = ue.entity_id ' .' JOIN users us ON ue.user_id = us.user_id'; - $where = " WHERE li.coll_id = 'letterbox_coll' AND li.item_mode = 'cc'" + $where = " WHERE li.item_mode = 'cc'" ." AND item_type='entity_id'"; switch ($event->table_name) { case 'notes': $from .= ' JOIN notes ON notes.identifier = li.res_id'; - $where .= ' AND notes.id = :recordid AND li.item_id != notes.user_id' + $where .= ' AND notes.id = :recordid AND li.item_id != (SELECT user_id FROM users WHERE id = notes.user_id)' .' AND (' .' notes.id not in (SELECT DISTINCT note_id FROM note_entities) ' .' OR us.user_id IN (SELECT ue.user_id FROM note_entities ne JOIN users_entities ue ON ne.item_id = ue.entity_id WHERE ne.note_id = :recordid)' @@ -112,12 +112,12 @@ switch ($request) { $arrayPDO = array(':recordid' => $event->record_id); $select = 'SELECT li.res_id'; $from = ' FROM listinstance li'; - $where = " WHERE li.coll_id = 'letterbox_coll' "; + $where = " WHERE (1=1) "; switch ($event->table_name) { case 'notes': $from .= ' JOIN notes ON notes.identifier = li.res_id'; - $where .= ' AND notes.id = :recordid AND li.item_id != notes.user_id'; + $where .= ' AND notes.id = :recordid AND li.item_id != (SELECT user_id FROM users WHERE id = notes.user_id)'; break; case 'res_letterbox': diff --git a/modules/notifications/diffusion_types/dest_entity.php b/modules/notifications/diffusion_types/dest_entity.php index 36c0ba1e974..5bcb538240c 100755 --- a/modules/notifications/diffusion_types/dest_entity.php +++ b/modules/notifications/diffusion_types/dest_entity.php @@ -40,14 +40,14 @@ switch ($request) { case 'res_id': $select = 'SELECT li.res_id'; $from = ' FROM listinstance li'; - $where = " WHERE li.coll_id = 'letterbox_coll' "; + $where = " WHERE (1=1) "; $arrayPDO = array(':recordid' => $event->record_id); switch ($event->table_name) { case 'notes': $from .= ' JOIN notes ON notes.identifier = li.res_id'; $from .= ' JOIN res_letterbox lb ON lb.res_id = notes.identifier'; - $where .= ' AND notes.id = :recordid AND li.item_id != notes.user_id'; + $where .= ' AND notes.id = :recordid AND li.item_id != (SELECT user_id FROM users WHERE id = notes.user_id)'; if ($notification->diffusion_properties != '') { $status_tab = explode(',', $notification->diffusion_properties); // $status_str=implode("','",$status_tab); diff --git a/modules/notifications/diffusion_types/dest_user_sign.php b/modules/notifications/diffusion_types/dest_user_sign.php index 25a79fa3a20..aa19a64dda4 100755 --- a/modules/notifications/diffusion_types/dest_user_sign.php +++ b/modules/notifications/diffusion_types/dest_user_sign.php @@ -17,7 +17,7 @@ switch ($request) { $select = 'SELECT distinct us.*'; $from = ' FROM listinstance li JOIN users us ON li.item_id = us.user_id'; - $where = " WHERE li.coll_id = 'letterbox_coll' AND li.item_mode = 'sign' " + $where = " WHERE AND li.item_mode = 'sign' " .'and process_date IS NULL '; $arrayPDO = array(':recordid' => $event->record_id); @@ -25,7 +25,7 @@ switch ($request) { case 'notes': $from .= ' JOIN notes ON notes.identifier = li.res_id'; $from .= ' JOIN res_letterbox lb ON lb.res_id = notes.identifier'; - $where .= ' AND notes.id = :recordid AND li.item_id != notes.user_id' + $where .= ' AND notes.id = :recordid AND li.item_id != (SELECT user_id FROM users WHERE id = notes.user_id)' .' AND (' .' notes.id not in (SELECT DISTINCT note_id FROM note_entities) ' .' OR us.user_id IN (SELECT ue.user_id FROM note_entities ne JOIN ' @@ -83,14 +83,14 @@ switch ($request) { case 'res_id': $select = 'SELECT li.res_id'; $from = ' FROM listinstance li'; - $where = " WHERE li.coll_id = 'letterbox_coll' "; + $where = " WHERE (1=1) "; $arrayPDO = array(':recordid' => $event->record_id); switch ($event->table_name) { case 'notes': $from .= ' JOIN notes ON notes.identifier = li.res_id'; $from .= ' JOIN res_letterbox lb ON lb.res_id = notes.identifier'; - $where .= ' AND notes.id = :recordid AND li.item_id != notes.user_id'; + $where .= ' AND notes.id = :recordid AND li.item_id != (SELECT user_id FROM users WHERE id = notes.user_id)'; if ($notification->diffusion_properties != '') { $status_tab = explode(',', $notification->diffusion_properties); // $status_str=implode("','",$status_tab); diff --git a/modules/notifications/diffusion_types/dest_user_visa.php b/modules/notifications/diffusion_types/dest_user_visa.php index ed9271505ef..1612ba04b7e 100755 --- a/modules/notifications/diffusion_types/dest_user_visa.php +++ b/modules/notifications/diffusion_types/dest_user_visa.php @@ -17,7 +17,7 @@ switch ($request) { $select = 'SELECT distinct us.*'; $from = ' FROM listinstance li JOIN users us ON li.item_id = us.user_id'; - $where = " WHERE li.coll_id = 'letterbox_coll' AND li.item_mode = 'visa' " + $where = " WHERE li.item_mode = 'visa' " .'and process_date IS NULL '; $arrayPDO = array(':recordid' => $event->record_id); @@ -25,7 +25,7 @@ switch ($request) { case 'notes': $from .= ' JOIN notes ON notes.identifier = li.res_id'; $from .= ' JOIN res_letterbox lb ON lb.res_id = notes.identifier'; - $where .= ' AND notes.id = :recordid AND li.item_id != notes.user_id' + $where .= ' AND notes.id = :recordid AND li.item_id != (SELECT user_id FROM users WHERE id = notes.user_id)' .' AND (' .' notes.id not in (SELECT DISTINCT note_id FROM note_entities) ' .' OR us.user_id IN (SELECT ue.user_id FROM note_entities ne JOIN ' @@ -83,14 +83,14 @@ switch ($request) { case 'res_id': $select = 'SELECT li.res_id'; $from = ' FROM listinstance li'; - $where = " WHERE li.coll_id = 'letterbox_coll' "; + $where = " WHERE (1=1) "; $arrayPDO = array(':recordid' => $event->record_id); switch ($event->table_name) { case 'notes': $from .= ' JOIN notes ON notes.identifier = li.res_id'; $from .= ' JOIN res_letterbox lb ON lb.res_id = notes.identifier'; - $where .= ' AND notes.id = :recordid AND li.item_id != notes.user_id'; + $where .= ' AND notes.id = :recordid AND li.item_id != (SELECT user_id FROM users WHERE id = notes.user_id)'; if ($notification->diffusion_properties != '') { $status_tab = explode(',', $notification->diffusion_properties); // $status_str=implode("','",$status_tab); -- GitLab