. */ switch ($request) { case 'form_content': require_once 'core/class/class_request.php' ; if($_SESSION['m_admin']['notification']['diffusion_type'] != 'dest_user_sign') { $_SESSION['m_admin']['notification']['diffusion_properties'] = ''; } //Get list of selected status $choosen_status_tab = explode(",",$_SESSION['m_admin']['notification']['diffusion_properties']); $choosen_status_sring = "'" . implode("','", $choosen_status_tab) . "'"; //Get list of aff availables status $select["status"] = array(); array_push($select["status"], 'id', 'label_status'); $request = new request(); $where = 'id NOT IN (?)'; $what = ''; $tab = $request->PDOselect( $select, $where, array($choosen_status_tab), $orderstr, $_SESSION['config']['databasetype'] ); $status_list = $tab; $form_content .= '

' . _NOTIFICATIONS_DEST_USER_SIGN_DIFF_TYPE_WITH_STATUS . '

'; $form_content .= ''; $form_content .= ''; $form_content .= ''; $form_content .= ''; $form_content .= ''; $form_content .= ''; $form_content .= '
'; $form_content .= '
'; $form_content .= ''._SELECT_ALL.''; $form_content .= '
'; $form_content .= ''; $form_content .= '
'; $form_content .= '
'; $form_content .= ''; $form_content .= '
'; $form_content .= '
'; $form_content .= ''._SELECT_ALL.''; $form_content .= '
'; break; case 'recipients': $recipients = array(); $dbRecipients = new Database(); $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' " . "and process_date IS NULL "; $arrayPDO = array(":recordid" => $event->record_id); switch($event->table_name) { case 'notes': $from .= " JOIN notes ON notes.coll_id = li.coll_id AND 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" . " 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)" . ")"; if($notification->diffusion_properties!='') { $status_tab=explode(",",$notification->diffusion_properties); // $status_str=implode("','",$status_tab); $where .= " AND lb.status in (:statustab)"; $arrayPDO = array_merge($arrayPDO, array(":statustab" => $status_tab)); } break; case 'res_letterbox': case 'res_view_letterbox': $from .= " JOIN res_letterbox lb ON lb.res_id = li.res_id"; $where .= " AND lb.res_id = :recordid"; if($notification->diffusion_properties!=''){ $status_tab=explode(",",$notification->diffusion_properties); // $status_str=implode("','",$status_tab); $where .= " AND lb.status in (:statustab)"; $arrayPDO = array_merge($arrayPDO, array(":statustab" => $status_tab)); } break; case 'listinstance': default: $from .= " JOIN res_letterbox lb ON lb.res_id = li.res_id"; $where .= " AND listinstance_id = :recordid"; if($notification->diffusion_properties!=''){ $status_tab=explode(",",$notification->diffusion_properties); // $status_str=implode("','",$status_tab); $where .= " AND lb.status in (:statustab)"; $arrayPDO = array_merge($arrayPDO, array(":statustab" => $status_tab)); } } $query = $select . $from . $where; if($GLOBALS['logger']) { $GLOBALS['logger']->write($query , 'DEBUG'); } $stmt = $dbRecipients->query($query, $arrayPDO); while($recipient = $stmt->fetchObject()) { $recipients[] = $recipient; } break; case 'attach': $attach = false; break; case 'res_id': $select = "SELECT li.res_id"; $from = " FROM listinstance li"; $where = " WHERE li.coll_id = 'letterbox_coll' "; $arrayPDO = array(":recordid" => $event->record_id); switch($event->table_name) { case 'notes': $from .= " JOIN notes ON notes.coll_id = li.coll_id AND 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"; if($notification->diffusion_properties!=''){ $status_tab=explode(",",$notification->diffusion_properties); // $status_str=implode("','",$status_tab); $where .= " AND lb.status in (:statustab)"; $arrayPDO = array_merge($arrayPDO, array(":statustab" => $status_tab)); } break; case 'res_letterbox': case 'res_view_letterbox': $from .= " JOIN res_letterbox lb ON lb.res_id = li.res_id"; $where .= " AND lb.res_id = :recordid"; if($notification->diffusion_properties!=''){ $status_tab=explode(",",$notification->diffusion_properties); // $status_str=implode("','",$status_tab); $where .= " AND lb.status in (:statustab)"; $arrayPDO = array_merge($arrayPDO, array(":statustab" => $status_tab)); } break; case 'listinstance': default: $from .= " JOIN res_letterbox lb ON lb.res_id = li.res_id"; $where .= " AND listinstance_id = :recordid"; if($notification->diffusion_properties!=''){ $status_tab=explode(",",$notification->diffusion_properties); // $status_str=implode("','",$status_tab); $where .= " AND lb.status in (:statustab)"; $arrayPDO = array_merge($arrayPDO, array(":statustab" => $status_tab)); } } $query = $query = $select . $from . $where; if($GLOBALS['logger']) { $GLOBALS['logger']->write($query , 'DEBUG'); } $dbResId = new Database(); $stmt = $dbResId->query($query, $arrayPDO); $res_id_record = $stmt->fetchObject(); $res_id = $res_id_record->res_id; break; }