. */ /** * @brief Action : Document validation * * Open a modal box to displays the validation form, make the form checks and loads the result in database. Used by the core (manage_action.php page). * * @file * @author Claire Figueras * @date $date$ * @version $Revision$ * @ingroup apps */ /** * $confirm bool false */ $confirm = false; /** * $etapes array Contains only one etap : form */ $etapes = array('form'); /** * $frm_width Width of the modal (empty) */ $frm_width=''; /** * $frm_height Height of the modal (empty) */ $frm_height = ''; /** * $mode_form Mode of the modal : fullscreen */ $mode_form = 'fullscreen'; include('apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.'definition_mail_categories.php'); ///////////////////// Pattern to check dates if($_SESSION['config']['databasetype'] == "SQLSERVER") { $_ENV['date_pattern'] = "/^[0-3][0-9]-[0-1][0-9]-[1-2][0-9][0-9][0-9]$/"; } else // MYSQL & POSTGRESQL { $_ENV['date_pattern'] = "/^[0-3][0-9]-[0-1][0-9]-[1-2][0-9][0-9][0-9]$/"; } /** * Gets the path of the file to displays * * @param $res_id String Resource identifier * @param $coll_id String Collection identifier * @return String File path **/ function get_file_path($res_id, $coll_id) { require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_security.php"); $sec =new security(); $view = $sec->retrieve_view_from_coll_id($coll_id); if(empty($view)) { $view = $sec->retrieve_table_from_coll($coll_id); } $db = new dbquery(); $db->connect(); $db->query("select docserver_id, path, filename from ".$view." where res_id = ".$res_id); $res = $db->fetch_object(); $path = preg_replace('/#/', DIRECTORY_SEPARATOR, $res->path); $docserver_id = $res->docserver_id; $filename = $res->filename; $db->query("select path_template from ".$_SESSION['tablename']['docservers']." where docserver_id = '".$docserver_id."'"); $res = $db->fetch_object(); $docserver_path = $res->path_template; return $docserver_path.$path.$filename; } function check_category($coll_id, $res_id) { require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_security.php"); $sec =new security(); $view = $sec->retrieve_view_from_coll_id($coll_id); $db = new dbquery(); $db->connect(); $db->query("select category_id from ".$view." where res_id = ".$res_id); $res = $db->fetch_object(); if(!isset($res->category_id)) { $ind_coll = $sec->get_ind_collection($coll_id); $table_ext = $_SESSION['collections'][$ind_coll]['extensions'][0]; $db->query("insert into ".$table_ext." (res_id, category_id) VALUES (".$res_id.", '".$_SESSION['default_category']."')"); //$db->show(); } } /** * Returns the validation form text * * @param $values Array Contains the res_id of the document to validate * @param $path_manage_action String Path to the PHP file called in Ajax * @param $id_action String Action identifier * @param $table String Table * @param $module String Origin of the action * @param $coll_id String Collection identifier * @param $mode String Action mode 'mass' or 'page' * @return String The form content text **/ function get_form_txt($values, $path_manage_action, $id_action, $table, $module, $coll_id, $mode ) { if (preg_match("/MSIE 6.0/", $_SERVER["HTTP_USER_AGENT"])) { $browser_ie = true; $display_value = 'block'; } elseif(preg_match('/msie/i', $_SERVER["HTTP_USER_AGENT"]) && !preg_match('/opera/i', $_SERVER["HTTP_USER_AGENT"]) ) { $browser_ie = true; $display_value = 'block'; } else { $browser_ie = false; $display_value = 'table-row'; } $_SESSION['req'] = "action"; $res_id = $values[0]; $frm_str = ''; require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_security.php"); require_once("apps".DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_business_app_tools.php"); require_once("modules".DIRECTORY_SEPARATOR."basket".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_modules_tools.php"); require_once("apps".DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_types.php"); $sec =new security(); $core_tools =new core_tools(); $b = new basket(); $type = new types(); $business = new business_app_tools(); if($_SESSION['features']['show_types_tree'] == 'true') { $doctypes = $type-> getArrayStructTypes($coll_id); } else { $doctypes = $type->getArrayTypes($coll_id); } $db = new dbquery(); $db->connect(); $hidden_doctypes = array(); $tmp = $business->get_titles(); $titles = $tmp['titles']; $default_title = $tmp['default_title']; if($core_tools->is_module_loaded('templates')) { $db->query("select type_id from ".$_SESSION['tablename']['temp_templates_doctype_ext']." where is_generated = 'Y'"); while($res = $db->fetch_object()) { array_push($hidden_doctypes, $res->type_id); } } $today = date('d-m-Y'); if($core_tools->is_module_loaded('entities')) { require_once("modules".DIRECTORY_SEPARATOR."entities".DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_manage_listdiff.php'); $diff_list = new diffusion_list(); $services = array(); if(!empty($_SESSION['user']['redirect_groupbasket'][$_SESSION['current_basket']['id']][$id_action]['entities'])) { $db->query("select entity_id, short_label from ".$_SESSION['tablename']['ent_entities']." where entity_id in (".$_SESSION['user']['redirect_groupbasket'][$_SESSION['current_basket']['id']][$id_action]['entities'].") and enabled= 'Y' order by entity_label"); while($res = $db->fetch_object()) { array_push($services, array( 'ID' => $res->entity_id, 'LABEL' => $db->show_string($res->short_label))); } } $load_listmodel = true; $db->query("select res_id from ".$_SESSION['tablename']['ent_listinstance']." where res_id = ".$res_id); if($db->nb_result() > 0) { $load_listmodel = false; $_SESSION['indexing']['diff_list'] = $diff_list->get_listinstance($res_id); } } if($core_tools->is_module_loaded('physical_archive')) { $boxes = array(); $db->query("select arbox_id, title from ".$_SESSION['tablename']['ar_boxes']." where status = 'NEW' order by title"); while($res = $db->fetch_object()) { array_push($boxes, array( 'ID' => $res->arbox_id, 'LABEL' => $db->show_string($res->title))); } } check_category($coll_id, $res_id); $data = get_general_data($coll_id, $res_id, 'minimal'); //print_r($data); $frm_str .= '
'; $frm_str .= ''; $frm_str .= '
'; $frm_str .= ''; /*** Frame to display the doc ***/ $frm_str .= '
'; $frm_str .= ''; $frm_str .= ''; $path_file = get_file_path($res_id, $coll_id); $frm_str .= ''; $frm_str .= '
'; /*** Extra javascript ***/ $frm_str .= ''; return addslashes($frm_str); } /** * Checks the action form * * @param $form_id String Identifier of the form to check * @param $values Array Values of the form * @return Bool true if no error, false otherwise **/ function check_form($form_id,$values) { $_SESSION['action_error'] = ''; if(count($values) < 1 || empty($form_id)) { $_SESSION['action_error'] = _FORM_ERROR; return false; } else { $attach = get_value_fields($values, 'attach'); $coll_id = get_value_fields($values, 'coll_id'); if(!$attach) { $cat_id = get_value_fields($values, 'category_id'); if($cat_id == false) { $_SESSION['action_error'] = _CATEGORY.' '._IS_EMPTY; return false; } $no_error = process_category_check($cat_id, $values); return $no_error; } else { $title = get_value_fields($values, 'attach_title'); if(!$title || empty($title)) { $_SESSION['action_error'] .= _TITLE.' '._IS_EMPTY.'
'; } $id_doc = get_value_fields($values, 'res_id'); if(!$id_doc || empty($id_doc)) { $_SESSION['action_error'] .= _NUM_GED.' '._IS_EMPTY.'
'; } if(!empty($_SESSION['action_error'])) { return false; } else { return true; } } } } /** * Checks the values of the action form for a given category * * @param $cat_id String Category identifier * @param $values Array Values of the form to check * @return Bool true if no error, false otherwise **/ function process_category_check($cat_id, $values) { $core = new core_tools(); // If No category : Error if(!isset($_ENV['categories'][$cat_id])) { $_SESSION['action_error'] = _CATEGORY.' '._UNKNOWN.': '.$cat_id; return false; } // Simple cases for($i=0; $i 'integer') { $_SESSION['action_error'] = $_ENV['categories'][$cat_id][$values[$i]['ID']]['label'].' '._IS_EMPTY; return false; } if($_ENV['categories'][$cat_id][$values[$i]['ID']]['type_form'] == 'date' && !empty($values[$i]['VALUE']) && preg_match($_ENV['date_pattern'],$values[$i]['VALUE'])== 0) { $_SESSION['action_error'] = $_ENV['categories'][$cat_id][$values[$i]['ID']]['label']." "._WRONG_FORMAT.""; return false; } if($_ENV['categories'][$cat_id][$values[$i]['ID']]['type_form'] == 'integer' && (!empty($values[$i]['VALUE']) || $values[$i]['VALUE'] == 0) && preg_match("/^[0-9]*$/",$values[$i]['VALUE'])== 0) { $_SESSION['action_error'] = $_ENV['categories'][$cat_id][$values[$i]['ID']]['label']." "._WRONG_FORMAT.""; return false; } if($_ENV['categories'][$cat_id][$values[$i]['ID']]['type_form'] == 'radio' && !empty($values[$i]['VALUE']) && !in_array($values[$i]['VALUE'], $_ENV['categories'][$cat_id][$values[$i]['ID']]['values'])) { $_SESSION['action_error'] = $_ENV['categories'][$cat_id][$values[$i]['ID']]['label']." "._WRONG_FORMAT.""; return false; } } ///// Checks the complementary indexes depending on the doctype require_once('apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_types.php'); $type = new types(); $type_id = get_value_fields($values, 'type_id'); $coll_id = get_value_fields($values, 'coll_id'); $indexes = $type->get_indexes( $type_id,$coll_id, 'minimal'); $val_indexes = array(); for($i=0; $icheck_indexes($type_id, $coll_id,$val_indexes ); if(!$test_type) { $_SESSION['action_error'] .= $_SESSION['error']; $_SESSION['error'] = ''; return false; } ///////////////////////// Other cases // Process limit Date $_SESSION['store_process_limit_date'] = ""; if(isset($_ENV['categories'][$cat_id]['other_cases']['process_limit_date'])) { $process_limit_date_use_yes = get_value_fields($values, 'process_limit_date_use_yes'); $process_limit_date_use_no = get_value_fields($values, 'process_limit_date_use_no'); if($process_limit_date_use_yes == 'yes') { $_SESSION['store_process_limit_date'] = "ok"; $process_limit_date = get_value_fields($values, 'process_limit_date'); if(trim($process_limit_date) == "" || preg_match($_ENV['date_pattern'], $process_limit_date)== 0) { $_SESSION['action_error'] = $_ENV['categories'][$cat_id]['other_cases']['process_limit_date']['label']." "._WRONG_FORMAT.""; return false; } } elseif($process_limit_date_use_no == 'no') { $_SESSION['store_process_limit_date'] = "ko"; } } // Contact if(isset($_ENV['categories'][$cat_id]['other_cases']['contact'])) { $contact_type = get_value_fields($values, 'type_contact_external'); if(!$contact_type) { $contact_type = get_value_fields($values, 'type_contact_internal'); } if(!$contact_type) { $_SESSION['action_error'] = $_ENV['categories'][$cat_id]['other_cases']['type_contact']['label']." "._MANDATORY.""; return false; } $contact = get_value_fields($values, 'contact'); if($_ENV['categories'][$cat_id]['other_cases']['contact']['mandatory'] == true) { if(empty($contact)) { $_SESSION['action_error'] = $_ENV['categories'][$cat_id]['contact']['label'].' '._IS_EMPTY; return false; } } if(!empty($contact) ) { if($contact_type == 'external' && !preg_match('/\(\d+\)$/', trim($contact))) { $_SESSION['action_error'] = $_ENV['categories'][$cat_id]['other_cases']['contact']['label']." "._WRONG_FORMAT.".
".' '._USE_AUTOCOMPLETION; return false; } //elseif($contact_type == 'internal' && preg_match('/\([A-Za-Z0-9-_ ]+\)$/', $contact) == 0) elseif($contact_type == 'internal' && preg_match('/\((\s|\d|\h|\w)+\)$/i', $contact) == 0) { $_SESSION['action_error'] = $_ENV['categories'][$cat_id]['other_cases']['contact']['label']." "._WRONG_FORMAT.".
"._USE_AUTOCOMPLETION; return false; } } } if($core->is_module_loaded('entities')) { // Diffusion list if(isset($_ENV['categories'][$cat_id]['other_cases']['diff_list']) && $_ENV['categories'][$cat_id]['other_cases']['diff_list']['mandatory'] == true) { if(empty($_SESSION['indexing']['diff_list']['dest']['user_id']) || !isset($_SESSION['indexing']['diff_list']['dest']['user_id'])) { $_SESSION['action_error'] = $_ENV['categories'][$cat_id]['other_cases']['diff_list']['label']." "._MANDATORY.""; return false; } } } if($core->is_module_loaded('folder')) { $db = new dbquery(); $db->connect(); $market = get_value_fields($values, 'market'); $project_id = ''; $market_id = ''; if(isset($_ENV['categories'][$cat_id]['other_cases']['market']) && $_ENV['categories'][$cat_id]['other_cases']['market']['mandatory'] == true) { if(empty($market)) { $_SESSION['action_error'] = $_ENV['categories'][$cat_id]['other_cases']['market']['label'].' '._IS_EMPTY; return false; } } if(!empty($market) ) { if(!preg_match('/\([0-9]+\)$/', $market)) { $_SESSION['action_error'] = $_ENV['categories'][$cat_id]['other_cases']['market']['label']." "._WRONG_FORMAT.""; return false; } $market_id = str_replace(')', '', substr($market, strrpos($market,'(')+1)); $db->query("select folders_system_id from ".$_SESSION['tablename']['fold_folders']." where folders_system_id = ".$market_id); if($db->nb_result() == 0) { $_SESSION['action_error'] = _MARKET.' '.$market_id.' '._UNKNOWN; return false; } } $project = get_value_fields($values, 'project'); if(isset($_ENV['categories'][$cat_id]['other_cases']['project']) && $_ENV['categories'][$cat_id]['other_cases']['project']['mandatory'] == true) { if(empty($project)) { $_SESSION['action_error'] = $_ENV['categories'][$cat_id]['other_cases']['project']['label'].' '._IS_EMPTY; return false; } } if(!empty($project) ) { if(!preg_match('/\([0-9]+\)$/', $project)) { $_SESSION['action_error'] = $_ENV['categories'][$cat_id]['other_cases']['project']['label']." "._WRONG_FORMAT.""; return false; } $project_id = str_replace(')', '', substr($project, strrpos($project,'(')+1)); $db->query("select folders_system_id from ".$_SESSION['tablename']['fold_folders']." where folders_system_id = ".$project_id); if($db->nb_result() == 0) { $_SESSION['action_error'] = _MARKET.' '.$project_id.' '._UNKNOWN; return false; } } if(!empty($project_id) && !empty($market_id)) { $db->query("select folders_system_id from ".$_SESSION['tablename']['fold_folders']." where folders_system_id = ".$market_id." and parent_id = ".$project_id); if($db->nb_result() == 0) { $_SESSION['action_error'] = _INCOMPATIBILITY_MARKET_PROJECT; return false; } } if(!empty($type_id ) && (!empty($project_id) || !empty($market_id))) { $foldertype_id = ''; if(!empty($market_id)) { $db->query("select foldertype_id from ".$_SESSION['tablename']['fold_folders']." where folders_system_id = ".$market_id); } else //!empty($project_id) { $db->query("select foldertype_id from ".$_SESSION['tablename']['fold_folders']." where folders_system_id = ".$project_id); } $res = $db->fetch_object(); $foldertype_id = $res->foldertype_id; $db->query("select fdl.foldertype_id from ".$_SESSION['tablename']['fold_foldertypes_doctypes_level1']." fdl, ".$_SESSION['tablename']['doctypes']." d where d.doctypes_first_level_id = fdl.doctypes_first_level_id and fdl.foldertype_id = ".$foldertype_id." and d.type_id = ".$type_id); if($db->nb_result() == 0) { $_SESSION['action_error'] .= _ERROR_COMPATIBILITY_FOLDER; return false; } } } if($core->is_module_loaded('physical_archive')) { // Arbox id $box_id = get_value_fields($values, 'arbox_id'); if(isset($_ENV['categories'][$cat_id]['other_cases']['arbox_id']) && $_ENV['categories'][$cat_id]['other_cases']['arbox_id']['mandatory'] == true) { if($box_id == false) { $_SESSION['action_error'] = _NO_BOX_SELECTED.' '; return false; } } if($box_id != false && preg_match('/^[0-9]+$/', $box_id)) { require_once('modules'.DIRECTORY_SEPARATOR.'physical_archive'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_modules_tools.php'); $physical_archive = new physical_archive(); $pa_return_value = $physical_archive->load_box_db($box_id, $cat_id, $_SESSION['user']['UserId']); if ($pa_return_value == false) { $_SESSION['action_error'] = _ERROR_TO_INDEX_NEW_BATCH_WITH_PHYSICAL_ARCHIVE; return false; } else { return true; } } } //For specific case => chrono number /* $chrono_out = get_value_fields($values, 'chrono_number'); if(isset($_ENV['categories'][$cat_id]['other_cases']['chrono_number']) && $_ENV['categories'][$cat_id]['other_cases']['arbox_id']['mandatory'] == true) { if($chrono_out == false) { $_SESSION['action_error'] = _NO_CHRONO_NUMBER_DEFINED.' '; return false; } } if($chrono_out != false && preg_match('/^[0-9]+$/', $chrono_out)) { require_once('modules/physical_archive'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_modules_tools.php'); $physical_archive = new physical_archive(); $pa_return_value = $physical_archive->load_box_db($box_id, $cat_id, $_SESSION['user']['UserId']); if ($pa_return_value == false) { $_SESSION['action_error'] = _ERROR_TO_INDEX_NEW_BATCH_WITH_PHYSICAL_ARCHIVE; return false; } }*/ return true; } /** * Get the value of a given field in the values returned by the form * * @param $values Array Values of the form to check * @param $field String the field * @return String the value, false if the field is not found **/ function get_value_fields($values, $field) { for($i=0; $iretrieve_table_from_coll($coll_id); $ind_coll = $sec->get_ind_collection($coll_id); $table_ext = $_SESSION['collections'][$ind_coll]['extensions'][0]; $res_id = $arr_id[0]; $attach = get_value_fields($values_form, 'attach'); if($attach == false) { $query_ext = "update ".$table_ext." set "; $query_res = "update ".$table." set "; $cat_id = get_value_fields($values_form, 'category_id'); $query_ext .= " category_id = '".$cat_id."' " ; // $query_res .= " status = 'NEW' " ; // Specific indexes : values from the form // Simple cases for($i=0; $i 'none') { if($_ENV['categories'][$cat_id][$values_form[$i]['ID']]['table'] == 'res') { $query_res .= ", ".$values_form[$i]['ID']." = ".$values_form[$i]['VALUE']; } else if($_ENV['categories'][$cat_id][$values_form[$i]['ID']]['table'] == 'coll_ext') { $query_ext .= ", ".$values_form[$i]['ID']." = ".$values_form[$i]['VALUE']; } } else if($_ENV['categories'][$cat_id][$values_form[$i]['ID']]['type_field'] == 'string' && $_ENV['categories'][$cat_id][$values_form[$i]['ID']]['table'] <> 'none') { if($_ENV['categories'][$cat_id][$values_form[$i]['ID']]['table'] == 'res') { $query_res .= ", ".$values_form[$i]['ID']." = '".$db->protect_string_db($values_form[$i]['VALUE'])."'"; } else if($_ENV['categories'][$cat_id][$values_form[$i]['ID']]['table'] == 'coll_ext') { $query_ext .= ", ".$values_form[$i]['ID']." = '".$db->protect_string_db($values_form[$i]['VALUE'])."'"; } } else if($_ENV['categories'][$cat_id][$values_form[$i]['ID']]['type_field'] == 'date' && $_ENV['categories'][$cat_id][$values_form[$i]['ID']]['table'] <> 'none') { if($_ENV['categories'][$cat_id][$values_form[$i]['ID']]['table'] == 'res') { $query_res .= ", ".$values_form[$i]['ID']." = '".$db->format_date_db($values_form[$i]['VALUE'])."'"; } else if($_ENV['categories'][$cat_id][$values_form[$i]['ID']]['table'] == 'coll_ext') { $query_ext .= ", ".$values_form[$i]['ID']." = '".$db->format_date_db($values_form[$i]['VALUE'])."'"; } } } ///////////////////////// Other cases require_once('apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_types.php'); $type = new types(); $type->inits_opt_indexes($coll_id, $res_id); $type_id = get_value_fields($values_form, 'type_id'); $indexes = $type->get_indexes( $type_id,$coll_id, 'minimal'); $val_indexes = array(); for($i=0; $iget_sql_update($type_id, $coll_id, $val_indexes); // Process limit Date if(isset($_ENV['categories'][$cat_id]['other_cases']['process_limit_date'])) { $process_limit_date = get_value_fields($values_form, 'process_limit_date'); if($_ENV['categories'][$cat_id]['other_cases']['process_limit_date']['table'] == 'res') { $query_res .= ", process_limit_date = '".$db->format_date_db($process_limit_date)."'"; } else if($_ENV['categories'][$cat_id]['other_cases']['process_limit_date']['table'] == 'coll_ext') { if($_SESSION['store_process_limit_date'] == "ok") { $query_ext .= ", process_limit_date = '".$db->format_date_db($process_limit_date)."'"; } $_SESSION['store_process_limit_date'] = ""; } } // Contact if(isset($_ENV['categories'][$cat_id]['other_cases']['contact'])) { $contact = get_value_fields($values_form, 'contact'); $contact_type = get_value_fields($values_form, 'type_contact_external'); if(!$contact_type) { $contact_type = get_value_fields($values_form, 'type_contact_internal'); } //echo 'contact '.$contact.', type '.$contact_type; $contact_id = str_replace(')', '', substr($contact, strrpos($contact,'(')+1)); if($contact_type == 'internal') { if($cat_id == 'incoming') { $query_ext .= ", exp_user_id = '".$db->protect_string_db($contact_id)."'"; } else if($cat_id == 'outgoing' || $cat_id == 'internal') { $query_ext .= ", dest_user_id = '".$db->protect_string_db($contact_id)."'"; } } elseif($contact_type == 'external') { if($cat_id == 'incoming') { $query_ext .= ", exp_contact_id = ".$contact_id.""; } else if($cat_id == 'outgoing' || $cat_id == 'internal') { $query_ext .= ", dest_contact_id = ".$contact_id.""; } } } if($core->is_module_loaded('folder')) { $folder_id = ''; $market = get_value_fields($values_form, 'market'); $db->connect(); $db->query("select folders_system_id from ".$table ." where res_id = ".$res_id); $res = $db->fetch_object(); $old_folder_id = $res->folders_system_id; if(!empty($market)) { $folder_id = str_replace(')', '', substr($market, strrpos($market,'(')+1)); } else { $project = get_value_fields($values_form, 'project'); $folder_id = str_replace(')', '', substr($project, strrpos($project,'(')+1)); } if(!empty($folder_id)) { $query_res .= ", folders_system_id = ".$folder_id.""; } if($folder_id <> $old_folder_id && $_SESSION['history']['folderup']) { require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_history.php"); $hist = new history(); $hist->add($_SESSION['tablename']['fold_folders'], $folder_id, "UP", _DOC_NUM.$res_id._ADDED_TO_FOLDER, $_SESSION['config']['databasetype'],'apps'); if(isset($old_folder_id) && !empty($old_folder_id)) { $hist->add($_SESSION['tablename']['fold_folders'], $old_folder_id, "UP", _DOC_NUM.$res_id._DELETED_FROM_FOLDER, $_SESSION['config']['databasetype'],'apps'); } } } if($core->is_module_loaded('entities')) { // Diffusion list $load_list_diff = false; if(isset($_ENV['categories'][$cat_id]['other_cases']['diff_list']) ) { if(!empty($_SESSION['indexing']['diff_list']['dest']['user_id']) && isset($_SESSION['indexing']['diff_list']['dest']['user_id'])) { $query_res .= ", dest_user = '".$db->protect_string_db($_SESSION['indexing']['diff_list']['dest']['user_id'])."'"; } $load_list_diff = true; } } if($core->is_module_loaded('physical_archive') && ($_SESSION['arbox_id'] == "1" || $_SESSION['arbox_id'] == "")) { // Arbox_id + Arbatch_id $box_id = get_value_fields($values_form, 'arbox_id'); $query_res .= ", arbox_id = ".$box_id.""; require_once('modules'.DIRECTORY_SEPARATOR.'physical_archive'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_modules_tools.php'); $physical_archive = new physical_archive(); $pa_return_value = $physical_archive->load_box_db($box_id, $cat_id, $_SESSION['user']['UserId']); $query_res .= ", arbatch_id = ".$pa_return_value.""; } $query_res = preg_replace('/set ,/', 'set ', $query_res); //$query_res = substr($query_res, strpos($query_string, ',')); $_SESSION['arbox_id'] = ""; $db->connect(); $db->query($query_res." where res_id =".$res_id); $db->query($query_ext." where res_id =".$res_id); //$db->show(); if($core->is_module_loaded('entities')) { if($load_list_diff) { require_once('modules'.DIRECTORY_SEPARATOR.'entities'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_manage_listdiff.php'); $diff_list = new diffusion_list(); $params = array('mode'=> 'listinstance', 'table' => $_SESSION['tablename']['ent_listinstance'], 'coll_id' => $coll_id, 'res_id' => $res_id, 'user_id' => $_SESSION['user']['UserId']); $diff_list->load_list_db($_SESSION['indexing']['diff_list'], $params); } } //$_SESSION['indexing'] = array(); unset($_SESSION['upfile']); //$_SESSION['indexation'] = true; return array('result' => $res_id.'#', 'history_msg' => ''); } else { $data = array(); $fields = "typist,docserver_id,format,offset_doc,logical_adr,scan_user,scan_date, filename, path"; $db->connect(); $db->query("select ".$fields." from ".$table." where res_id = ".$res_id); $res = $db->fetch_object(); array_push($data, array('column' => "typist", 'value' => $res->typist, 'type' => "string")); array_push($data, array('column' => "docserver_id", 'value' => $res->docserver_id, 'type' => "string")); array_push($data, array('column' => "format", 'value' => $res->format, 'type' => "string")); array_push($data, array('column' => "status", 'value' => 'NEW', 'type' => "string")); array_push($data, array('column' => "offset_doc", 'value' => $res->offset_doc, 'type' => "string")); array_push($data, array('column' => "logical_adr", 'value' => $res->logical_adr, 'type' => "string")); if(!empty($res->scan_user)) { array_push($data, array('column' => "scan_user", 'value' => $res->scan_user, 'type' => "string")); } if(isset($res->scan_date)) { array_push($data, array('column' => "scan_date", 'value' => $res->scan_date, 'type' => "function")); } $title = get_value_fields($values_form, 'attach_title'); $id_doc = get_value_fields($values_form, 'res_id'); array_push($data, array('column' => "title", 'value' => $db->protect_string_db($title), 'type' => "string")); array_push($data, array('column' => "res_id_master", 'value' => $id_doc, 'type' => "integer")); array_push($data, array('column' => "coll_id", 'value' => $db->protect_string_db($coll_id), 'type' => "string")); $path = $res->path; $filename = $res->filename; $docserver_id = $res->docserver_id; $db->query("select path_template from ".$_SESSION['tablename']['docservers']." where docserver_id = '".$docserver_id."'"); $res = $db->fetch_object(); $id = $resource->load_into_db($_SESSION['tablename']['attach_res_attachments'],$path, $filename, $res->path_template,$docserver_id, $data, $_SESSION['config']['databasetype']); if($id == false) { $_SESSION['action_error'] = _ERROR_RES_ID.'
'.$resource->get_error(); return false; } else { $msg = ''; if($_SESSION['history']['attachadd'] == "true") { $msg = ucfirst(_DOC_NUM).$id.' '._ATTACH_TO_DOC_NUM.$res_id; } $db->query("update ".$table." set status = 'DEL' where res_id =".$res_id); $_SESSION['action_error'] = _NEW_ATTACH_ADDED; return array('result' => $res_id.'#', 'history_msg' => $msg, 'table_dest' => $_SESSION['tablename']['attach_res_attachments']); } } } ?>