* @author Loic Vinet */ include("session.php"); if(file_exists($_SESSION['config']['lang'].'.php')) { include($_SESSION['config']['lang'].'.php'); } else { $_SESSION['error'] = "Language file missing...
"; } require("class_functions.php"); require_once("class_db.php"); require_once("class_letterbox.php"); $db = new dbquery(); $db->connect(); $connexion = new dbquery(); $connexion->connect(); $func = new functions(); $lb = new letterbox(); $services = array(); $users = array(); if($_SESSION['current_basket']['is_global'] == "Y") { //Verifier que l'un des documents n'est pas déjà reservé $courr = new LetterBox(); $locktime = $_SESSION['current_basket']['locktime']; $reserved = false; for($i=0;$i < count($_SESSION['chosen_doc']);$i++) { $by_user_id = $courr->test_reserved_time($_SESSION['chosen_doc'][$i],"res_x"); if( $by_user_id != null && $by_user_id != $_SESSION['user']['UserId'] ) $reserved = true; } //Reservé if($reserved) { ?>

.
is_locked($_SESSION['chosen_doc'][$i],"res_x",$locktime); } } } if(isset($_REQUEST['cancel'])) { if($_SESSION['current_basket']['is_global'] == "Y") { //Libère les documents for($i=0;$i < count($_SESSION['chosen_doc']);$i++) { $courr->release($_SESSION['chosen_doc'][$i],"res_x"); } $_SESSION['chosen_doc'] = array(); ?> query("select * from ".$_SESSION['tablename']['services']." where ID in (".$_SESSION['current_basket']['redirect_services'].") and ENABLED = 'Y'"); while($res = $db->fetch_object()) { array_push($services, array( 'ID' => $res->ID, 'LABEL' => $res->SERVICE)); } function cmp($a, $b) { return strcmp($a["LABEL"], $b["LABEL"]); } usort($services, "cmp"); } if(!empty($_SESSION['current_basket']['redirect_users']) && $_SESSION['current_basket']['can_redirect'] == 'Y') { $db2 = new dbquery(); $db2->connect(); $sql_users = "select DISTINCT uc.USER_ID, u.LASTNAME from ".$_SESSION['tablename']['usergroup_content']." uc, ".$_SESSION['tablename']['users']." u where GROUP_ID in (".$_SESSION['current_basket']['redirect_users'].") and u.USER_ID = uc.USER_ID and u.ENABLED = 'Y'"; $order_by = "order by u.LASTNAME asc"; if($_SESSION['config']['show_only_elu_in_mailing_list'] == 'true') $sql_users .= "AND u.ELU = 'Y' "; $db->query($sql_users." ".$order_by); while($res = $db->fetch_object()) { $db2->query("select LASTNAME, FIRSTNAME from ".$_SESSION['tablename']['users']." where USER_ID = '".$res->USER_ID."' and USER_ID <> ''"); $res2 = $db2->fetch_object(); array_push($users, array( 'ID' => $res->USER_ID, 'NOM' => $res2->LASTNAME, "PRENOM" => $res2->FIRSTNAME, "SERVICE" => $res->DEPARTMENT)); } } //Redirection vers l'utilisateur qui a reelement traité le courrier if( isset($_REQUEST['valid1']) || isset($_REQUEST['valid2']) || isset($_REQUEST['valid3']) ) { for($i=0;$i < count($_SESSION['chosen_doc']);$i++) { $session_diff = array(); $connexion->query(" SELECT USER_ID FROM ".$_SESSION['tablename']['listinstance']." WHERE RES_ID = ".$_SESSION['chosen_doc'][$i]." ORDER BY SEQUENCE"); while( $res = $connexion->fetch_object() ) { $session_diff[] = $res->USER_ID; } //Redirection vers l'utilisateur qui a reellement traité le courrier if( $session_diff[0] != $_SESSION['user']['UserId'] && $_SESSION['config']['redirect_to_user_on_treatment'] === "true" ) { $session_diff[count($session_diff)] = $session_diff[0]; $dbl = -1; for($j=0; $j < count($session_diff); $j++ ) { if( $session_diff[$j] == $_SESSION['user']['UserId'] ) { $dbl = $j; break; } } if($dbl > 0) { $session_diff[0] = $session_diff[$dbl]; unset($session_diff[$dbl]); $session_diff = array_values($session_diff); } else { $session_diff[0] = $_SESSION['user']['UserId']; } //Store the old viewed and by_user_id values $mem_by_user_id = array(); $mem_viewed = array(); for($j=1;$j < (count($session_diff) + 1); $j++) { $connexion->query("SELECT USER_ID, BY_USER_ID, VIEWED FROM ".$_SESSION['tablename']['listinstance']." WHERE res_id = ".$_SESSION['chosen_doc'][$i]." and user_id = '".$session_diff[$j-1]."'"); if($result = $connexion->fetch_object()) { $mem_viewed[$result->USER_ID] = $result->VIEWED; $mem_by_user_id[$result->USER_ID] = $result->BY_USER_ID; } } //Delete listInstance $connexion->query("delete from ".$_SESSION['tablename']['listinstance']." where res_id = ".$_SESSION['chosen_doc'][$i]); //Insert into listinstance the new mailing list with the values of viewed and by_user_id saved before for($j=1; $j < ( count($session_diff) + 1 ); $j++ ) { $viewed = 0; $by_user_id = $_SESSION['user']['UserId']; if( isset($mem_viewed[$session_diff[$j-1]] ) ) { $viewed = $mem_viewed[$session_diff[$j-1]]; $by_user_id = $mem_by_user_id[$session_diff[$j-1]]; } $connexion->query("INSERT INTO ".$_SESSION['tablename']['listinstance']." ( RES_TABLE, RES_ID, SEQUENCE, USER_ID, VIEWED, BY_USER_ID ) VALUES ('".$_SESSION['ressources'][0]['tablename']."',".$_SESSION['chosen_doc'][$i].",".$j.",'".$session_diff[$j-1]."',".$viewed.",'".$by_user_id."')"); } $connexion->query("UPDATE ".$_SESSION['current_basket']['table']." SET DEST_USER = '".$_SESSION['user']['UserId']."' WHERE res_id = ".$_SESSION['chosen_doc'][$i]); } } } if(isset($_REQUEST['valid1'])) { for($i=0;$i < count($_SESSION['chosen_doc']);$i++) { $db->query("update ".$_SESSION['current_basket']['table']." set DEST_USER = 'courrier' where RES_ID = ".$_SESSION['chosen_doc'][$i]); //$db->query("update ".$_SESSION['tablename']['listinstance']." set USER_ID = '', BY_USER_ID = '' where RES_TABLE = '".$_SESSION['current_basket']['table']."' and res_id = '".$_SESSION['chosen_doc'][$i]."' and SEQUENCE = 1 "); if($_SESSION['history']['redirection'] == 'true') { require_once("class_history.php"); $hist = new history(); $hist->add($_SESSION['current_basket']['table'], $_SESSION['chosen_doc'][$i],"RED", "Redirection vers le service courrier"); } $lb->release($_SESSION['chosen_doc'][$i],"res_x"); } $_SESSION['chosen_doc'] = array(); if($_REQUEST['process'] <> "true" || !isset($_REQUEST['process'])) { ?> query('UPDATE '.$_SESSION['ressources'][0]['tablename'].' SET '.$query.' , DESTINATION = "'.$_REQUEST['service'].'" WHERE RES_ID = '.$_SESSION['chosen_doc'][$i]); $connexion->query("update ".$_SESSION['ressources'][0]['tablename']." set destination = '".$_REQUEST['service']."' where is_folder = 'N' and folder_id = '".$_SESSION['chosen_doc'][$i]."'"); //$connexion->query("DELETE from ".$_SESSION['tablename']['listinstance']." where RES_ID = ".$_SESSION['chosen_doc'][$i]); if($_SESSION['config']['enablechangenotif'] == "true") { //Load mail for the new dest_user $connexion->query("select MAIL, NOTIFICATION from ".$_SESSION['tablename']['users']." where USER_ID = '".$_SESSION['diff'][0]['UserID']."'"); $res = $connexion->fetch_object(); $mail = $res->MAIL; $notif_exec = $res->NOTIFICATION; if($notif_exec & 1) { //Load ressource information $connexion->query("select TYPE_ID, DESCRIPTION, date(CREATION_DATE) as CREATION_DATE, date(CUSTOM_D2) as D2 from ".$_SESSION['ressources'][0]['tablename']." where RES_ID = '".$_SESSION['chosen_doc'][$i]."'"); $res = $connexion->fetch_object(); $b_type_id = $res->TYPE_ID; $b_description = $res->DESCRIPTION; $b_creation_date = $res->CREATION_DATE; $b_date_limite = $res->D2; $mail_trait = "
"._MAIL_TO_PROCESS."

"._HELLO.",

"._NEED_PROCESS_LETTER." :


"; mail($mail, _NEW_CASE_MAIL_OBJECT, $mail_trait , "From: ".$_SESSION['config']['adminmail']."\nReply-To: ".$_SESSION['config']['adminmail']." \nContent-Type: text/html; charset=\"iso-8859-1\"\n"); } } //BEGIN : CREATE LISTINSTANCE $session_diff = array(); foreach($_SESSION['diff'] as $d_user) $session_diff[] = $d_user['UserID']; //Retrieve the old primary destination user $connexion->query("SELECT USER_ID FROM ".$_SESSION['tablename']['listinstance']." WHERE res_id = ".$_SESSION['chosen_doc'][$i]." AND sequence = 1"); if( $result = $connexion->fetch_object() ) { //The primary destination user has changed if($result->USER_ID != $session_diff[0]) { $session_diff[] = $result->USER_ID; if( $_SESSION['config']['tag100_for_copy'] == true ) $connexion->query("UPDATE ".$_SESSION['tablename']['listinstance']." SET VIEWED = 100 WHERE res_id = ".$_SESSION['chosen_doc'][$i]." and user_id = '".$result->USER_ID."'"); } } //Add copy user in the mailing list $connexion->query("SELECT USER_ID FROM ".$_SESSION['tablename']['listinstance']." WHERE res_id = ".$_SESSION['chosen_doc'][$i]." AND sequence > 1 ORDER BY sequence ASC"); while( $result = $connexion->fetch_object() ) $session_diff[] = $result->USER_ID; //Remove duplicate values in the mailing list $session_diff = array_values(array_unique($session_diff)); //Store the old viewed and by_user_id values $mem_by_user_id = array(); $mem_viewed = array(); for($j=1;$j < (count($session_diff) + 1); $j++) { $connexion->query("SELECT USER_ID, BY_USER_ID, VIEWED FROM ".$_SESSION['tablename']['listinstance']." WHERE res_id = ".$_SESSION['chosen_doc'][$i]." and user_id = '".$session_diff[$j-1]."'"); if($result = $connexion->fetch_object()) { $mem_viewed[$result->USER_ID] = $result->VIEWED; $mem_by_user_id[$result->USER_ID] = $result->BY_USER_ID; } } //Delete listInstance $connexion->query("delete from ".$_SESSION['tablename']['listinstance']." where res_id = ".$_SESSION['chosen_doc'][$i]); //Insert into listinstance the new mailing list with the values of viewed and by_user_id saved before for($j=1; $j < ( count($session_diff) + 1 ); $j++ ) { $viewed = 0; $by_user_id = $_SESSION['user']['UserId']; if( isset($mem_viewed[$session_diff[$j-1]] ) ) { $viewed = $mem_viewed[$session_diff[$j-1]]; $by_user_id = $mem_by_user_id[$session_diff[$j-1]]; } $connexion->query("INSERT INTO ".$_SESSION['tablename']['listinstance']." ( RES_TABLE, RES_ID, SEQUENCE, USER_ID, VIEWED, BY_USER_ID ) VALUES ('".$_SESSION['ressources'][0]['tablename']."',".$_SESSION['chosen_doc'][$i].",".$j.",'".$session_diff[$j-1]."',".$viewed.",'".$by_user_id."')"); } //END : CREATE LISTINSTANCE $connexion->query("UPDATE ".$_SESSION['ressources'][0]['tablename']." SET FLAG_NOTIF = 'N' WHERE RES_ID = '".$_SESSION['chosen_doc'][$i]."' "); if($_SESSION['history']['redirection'] == 'true') { require_once("class_history.php"); $hist = new history(); $hist->add($_SESSION['current_basket']['table'], $_SESSION['chosen_doc'][$i],"RED",_LETTER_N.$_SESSION['chosen_doc'][$i].' '._REDIRECTED_TO." ".$_REQUEST['service']." "._WITH_DIFFUSION_LIST); } } $lb->release($_SESSION['chosen_doc'][$i],"res_x"); } $_SESSION['diff'] = array(); $_SESSION['chosen_doc'] = array(); if($_REQUEST['process'] <> "true" || !isset($_REQUEST['process'])) { ?> "; } } else { if(isset($_REQUEST['service']) && !empty($_REQUEST['service'])) { for($i=0;$i < count($_SESSION['chosen_doc']);$i++) { $db->query("update ".$_SESSION['current_basket']['table']." set DESTINATION = '".$_REQUEST['service']."', DEST_USER='' where RES_ID = ".$_SESSION['chosen_doc'][$i]); $db->query("update ".$_SESSION['current_basket']['table']." set destination = '".$_REQUEST['service']."' where is_folder = 'N' and folder_id = '".$_SESSION['chosen_doc'][$i]."'"); $db->query("update ".$_SESSION['tablename']['listinstance']." set USER_ID = '', BY_USER_ID = '' where RES_TABLE = '".$_SESSION['current_basket']['table']."' and RES_ID = '".$_SESSION['chosen_doc'][$i]."' and SEQUENCE = 1 "); if($_SESSION['history']['redirection'] == 'true') { require_once("class_history.php"); $hist = new history(); $hist->add($_SESSION['current_basket']['table'], $_SESSION['chosen_doc'][$i],"RED",_LETTER_N.$_SESSION['chosen_doc'][$i].' '._REDIRECTED_TO." ".$_REQUEST['service']); } } $_SESSION['chosen_doc'] = array(); if($_REQUEST['process'] <> "true" || !isset($_REQUEST['process'])) { ?> "; } } } if(isset($_REQUEST['valid3']) ) { if(isset($_REQUEST['user']) && !empty($_REQUEST['user'])) { for($i=0;$i < count($_SESSION['chosen_doc']);$i++) { //Update dest user of document $db->query("update ".$_SESSION['current_basket']['table']." set DEST_USER = '".$_REQUEST['user']."' where RES_ID = ".$_SESSION['chosen_doc'][$i]); //BEGIN : CREATE LISTINSTANCE $session_diff=array(); //Retrieve the old primary destination user $connexion->query("SELECT USER_ID FROM ".$_SESSION['tablename']['listinstance']." WHERE res_id = ".$_SESSION['chosen_doc'][$i]." AND sequence = 1 ORDER BY SEQUENCE"); if( $result = $connexion->fetch_object() ) { //The primary destination user has changed if($result->USER_ID != trim($_REQUEST['user']) ) { $session_diff[] = trim($_REQUEST['user']); $session_diff[] = $result->USER_ID; if( $_SESSION['config']['tag100_for_copy'] == true ) $connexion->query("UPDATE ".$_SESSION['tablename']['listinstance']." SET VIEWED = 100 WHERE res_id = ".$_SESSION['chosen_doc'][$i]." and user_id = '".$result->USER_ID."'"); if($_SESSION['config']['enablechangenotif'] == "true") { //Load mail for the new dest_user $connexion->query("select MAIL, NOTIFICATION from ".$_SESSION['tablename']['users']." where USER_ID = '".$_REQUEST['user']."'"); $res = $connexion->fetch_object(); $mail = $res->MAIL; $notif_exec = $res->NOTIFICATION; if($notif_exec & 1) { //Load ressource information $connexion->query("select TYPE_ID, DESCRIPTION, date(CREATION_DATE) as CREATION_DATE, date(CUSTOM_D2) as D2 from ".$_SESSION['ressources'][0]['tablename']." where RES_ID = '".$_SESSION['chosen_doc'][$i]."'"); $res = $connexion->fetch_object(); $b_type_id = $res->TYPE_ID; $b_description = $res->DESCRIPTION; $b_creation_date = $res->CREATION_DATE; $b_date_limite = $res->D2; $mail_trait = "
"._MAIL_TO_PROCESS."

"._HELLO.",

"._NEED_PROCESS_LETTER." :


"; mail($mail, _NEW_CASE_MAIL_OBJECT, $mail_trait , "From: ".$_SESSION['config']['adminmail']."\nReply-To: ".$_SESSION['config']['adminmail']." \nContent-Type: text/html; charset=\"iso-8859-1\"\n"); } } } else { $session_diff[] = $result->USER_ID; } } //Add copy user in the mailing list $connexion->query("SELECT USER_ID FROM ".$_SESSION['tablename']['listinstance']." WHERE res_id = ".$_SESSION['chosen_doc'][$i]." AND sequence > 1 ORDER BY SEQUENCE ASC"); while( $result = $connexion->fetch_object() ) $session_diff[] = $result->USER_ID; //Remove duplicate values in the mailing list $session_diff = array_values(array_unique($session_diff)); //Store the old viewed and by_user_id values $mem_by_user_id = array(); $mem_viewed = array(); for($j=1;$j < (count($session_diff) + 1); $j++) { $connexion->query("SELECT USER_ID, BY_USER_ID, VIEWED FROM ".$_SESSION['tablename']['listinstance']." WHERE res_id = ".$_SESSION['chosen_doc'][$i]." and user_id = '".$session_diff[$j-1]."'"); if($result = $connexion->fetch_object()) { $mem_viewed[$result->USER_ID] = $result->VIEWED; $mem_by_user_id[$result->USER_ID] = $result->BY_USER_ID; } } //Delete listInstance $connexion->query("delete from ".$_SESSION['tablename']['listinstance']." where res_id = ".$_SESSION['chosen_doc'][$i]); //Insert into listinstance the new mailing list with the values of viewed and by_user_id saved before for($j=1; $j < ( count($session_diff) + 1 ); $j++ ) { $viewed = 0; $by_user_id = $_SESSION['user']['UserId']; if( isset($mem_viewed[$session_diff[$j-1]] ) ) { $viewed = $mem_viewed[$session_diff[$j-1]]; $by_user_id = $mem_by_user_id[$session_diff[$j-1]]; } $connexion->query("INSERT INTO ".$_SESSION['tablename']['listinstance']." ( RES_TABLE, RES_ID, SEQUENCE, USER_ID, VIEWED, BY_USER_ID ) VALUES ('".$_SESSION['ressources'][0]['tablename']."',".$_SESSION['chosen_doc'][$i].",".$j.",'".$session_diff[$j-1]."',".$viewed.",'".$by_user_id."')"); } //END : CREATE LISTINSTANCE if($_SESSION['history']['redirection'] == 'true') { require_once("class_history.php"); $hist = new history(); $hist->add($_SESSION['current_basket']['table'], $_SESSION['chosen_doc'][$i],"RED",_LETTER_N.$_SESSION['chosen_doc'][$i].' '._REDIRECTED_TO." ".$_REQUEST['user']); } $lb->release($_SESSION['chosen_doc'][$i],"res_x"); } $_SESSION['chosen_doc'] = array(); if($_REQUEST['process'] <> "true" || !isset($_REQUEST['process'])) { ?> "; } } ?> <?php echo $_SESSION['config']['applicationname']; ?> 0) { echo " onLoad=\"window.opener.location.href = break_cache(break_get(window.opener.location.href)); setTimeout(function(){window.parent.top.close();},".($_SESSION['current_basket']['locktime'] * 60 * 1000).");\""; } ?>>






.