* @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'); require_once "modules" . DIRECTORY_SEPARATOR . "visa" . DIRECTORY_SEPARATOR . "class" . DIRECTORY_SEPARATOR . "class_modules_tools.php"; $_ENV['date_pattern'] = "/^[0-3][0-9]-[0-1][0-9]-[1-2][0-9][0-9][0-9]$/"; function writeLogIndex($EventInfo) { $logFileOpened = fopen($_SESSION['config']['logdir']."visa_mail.log", 'a'); fwrite($logFileOpened, '[' . date('d') . '/' . date('m') . '/' . date('Y') . ' ' . date('H') . ':' . date('i') . ':' . date('s') . '] ' . $EventInfo . "\r\n" ); fclose($logFileOpened); } /** * 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['coll_categories']['letterbox_coll']['default_category']."')"); //$db->show(); } } function get_rep_path($res_id, $coll_id) { require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_security.php"); require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."docservers_controler.php"); $docserverControler = new docservers_controler(); $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); $db->query("select docserver_id from res_view_attachments where res_id_master = " . $res_id . " order by res_id desc"); while ($res = $db->fetch_object()) { $docserver_id = $res->docserver_id; break; } $db->query("select path_template from ".$_SESSION['tablename']['docservers']." where docserver_id = '".$docserver_id."'"); $res = $db->fetch_object(); $docserver_path = $res->path_template; $db->query("select filename, path,title,res_id,res_id_version,attachment_type from res_view_attachments where res_id_master = " . $res_id . " AND status <> 'OBS' AND status <> 'SIGN' AND status <> 'DEL' and attachment_type IN ('response_project','signed_response') order by creation_date asc"); $array_reponses = array(); $cpt_rep = 0; while ($res2 = $db->fetch_object()){ $filename=$res2->filename; $path = preg_replace('/#/', DIRECTORY_SEPARATOR, $res2->path); $filename_pdf = str_replace(pathinfo($filename, PATHINFO_EXTENSION), "pdf",$filename); if (file_exists($docserver_path.$path.$filename_pdf)){ $array_reponses[$cpt_rep]['path'] = $docserver_path.$path.$filename_pdf; $array_reponses[$cpt_rep]['title'] = $res2->title; $array_reponses[$cpt_rep]['attachment_type'] = $res2->attachment_type; if ($res2->res_id_version == 0){ $array_reponses[$cpt_rep]['res_id'] = $res2->res_id; $array_reponses[$cpt_rep]['is_version'] = 0; } else{ $array_reponses[$cpt_rep]['res_id'] = $res2->res_id_version; $array_reponses[$cpt_rep]['is_version'] = 1; } $cpt_rep++; } } return $array_reponses; } function getDocsBasket(){ $db = new dbquery(); $db->connect(); $orderstr = "order by creation_date desc"; if (isset($_SESSION['last_order_basket'])) $orderstr = $_SESSION['last_order_basket']; $requete = "select res_id from ".$_SESSION['current_basket']['view']." where " . $_SESSION['current_basket']['clause'] . " $orderstr"; $db->query($requete, true); $tab_docs = array(); while($res = $db->fetch_object()){ array_push($tab_docs,$res->res_id); } return $tab_docs; } 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'; } unset($_SESSION['m_admin']['contact']); $_SESSION['req'] = "action"; $res_id = $values[0]; $_SESSION['doc_id'] = $res_id; // Ouverture de la modal $docLockerCustomPath = 'apps/maarch_entreprise/actions/docLocker.php'; $docLockerPath = $_SESSION['config']['businessappurl'] . '/actions/docLocker.php'; if (is_file($docLockerCustomPath)) require_once $docLockerCustomPath; else if (is_file($docLockerPath)) require_once $docLockerPath; else exit("can't find docLocker.php"); $docLocker = new docLocker($res_id); if (!$docLocker->canOpen()) { $docLockerscriptError = ''; return $docLockerscriptError; } $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"); require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_request.php"); $sec =new security(); $core_tools =new core_tools(); $b = new basket(); $type = new types(); $business = new business_app_tools(); /*check_category($coll_id, $res_id); $data = get_general_data($coll_id, $res_id, 'minimal');*/ /* echo '
';
    print_r($data);
    echo '
';exit; */ $db = new dbquery(); $db->connect(); $view = $sec->retrieve_view_from_coll_id($coll_id); $db->query("select alt_identifier, status from " . $view . " where res_id = " . $res_id); $resChrono = $db->fetch_object(); $chrono_number = $resChrono->alt_identifier; $currentStatus = $resChrono->status; $frm_str .= '

'._VISA_MAIL.' '._NUM.''.$res_id.''; $frm_str .= '

'; $frm_str .= '
'; $frm_str .= '
'; $tab_docs = getDocsBasket(); //$frm_str .= '
'.print_r($tab_docs,true).'
'; //$selectedCat = ''; $list_docs = ''; foreach($tab_docs as $num=>$res_id_doc){ $db->query("select alt_identifier, status from " . $view . " where res_id = " . $res_id_doc); $resChrono_doc = $db->fetch_object(); $chrono_number_doc = $resChrono_doc->alt_identifier; $allAnsSigned = true; $db->query("SELECT status from res_view_attachments where attachment_type='response_project' and res_id_master = ".$res_id_doc); while($line = $db->fetch_object()){ if ($line->status == 'TRA' || $line->status == 'A_TRA' ){ $allAnsSigned = false; } } if ($allAnsSigned) $classSign = "visibility:visible;"; else $classSign = "visibility:hidden;"; $list_docs .= $res_id_doc."#"; if ($res_id_doc == $res_id){ $classLine = ' class="selectedId " '; } else $classLine = ' class="unselectedId " '; $frm_str .= '
'; check_category($coll_id, $res_id_doc); $data = get_general_data($coll_id, $res_id_doc, 'minimal'); if ($res_id_doc == $res_id){ $selectedCat = $data['category_id']['value']; $curNumDoc = $num; $curdest = $data['destination']; } $frm_str .= '
    '; $frm_str .= '
  • '; $frm_str .= $chrono_number_doc . ' '/*. ' - ' .$res_id_doc*/; $frm_str .= '
  • '; $frm_str .= '
  • '; $frm_str .= ' '; if(isset($data['contact']) && !empty($data['contact'])) { if (strlen($data['contact']) > 25) $contact = substr($data['contact'],0,25).'...'; else $contact = $data['contact']; $frm_str .= $contact; } $frm_str .= '
  • '; $frm_str .= '
  • '; $frm_str .= ' '; if(isset($data['subject']) && !empty($data['subject'])) { if (strlen($data['subject']) > 80) $subject = substr($data['subject'],0,80).'...'; else $subject = $data['subject']; $frm_str .= $subject; } $frm_str .= '
  • '; $frm_str .= '
  • '; $frm_str .= ' '; $frm_str .= $data['admission_date']; $frm_str .= ' '; $frm_str .= $data['process_limit_date']; $frm_str .= '
  • '; $frm_str .= '
'; $frm_str .= '
'; } $frm_str .= '
'; $frm_str .= '
'; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= '
'; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= '
'; //Onglet document $frm_str .= '
'._INCOMING.'
'; $frm_str .= '
'; $frm_str .= ''; //Onglet Avancement $frm_str .= '
Avancement
'; $frm_str .= '

'. _WF .'

'; $frm_str .= ''; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= ''; $frm_str .= '<<'; $frm_str .= ' '. _ALL_HISTORY .''; $frm_str .= ''; $frm_str .= ''; $frm_str .= '
'; //Onglet Circuit $frm_str .= '
'._VISA_WORKFLOW.'
'; $frm_str .= '

'._VISA_WORKFLOW.'

'; $modifVisaWorkflow = false; if ($core->test_service('config_visa_workflow', 'visa', false)) { $modifVisaWorkflow = true; } $visa = new visa(); $frm_str .= '
'; $frm_str .= '
'; $frm_str .= $visa->getList($res_id, $coll_id, $modifVisaWorkflow, 'VISA_CIRCUIT', true); $frm_str .= '

'; /* Historique diffusion visa */ $frm_str .= '
'; $frm_str .= '
'; $frm_str .= ''; $frm_str .= '<<'; $frm_str .= ' '._DIFF_LIST_VISA_HISTORY.''; $frm_str .= ''; $frm_str .= ''; $frm_str .= '
'; //Onglet notes //Onglet notes if ($core->is_module_loaded('notes')){ require_once "modules" . DIRECTORY_SEPARATOR . "notes" . DIRECTORY_SEPARATOR . "class" . DIRECTORY_SEPARATOR . "class_modules_tools.php"; $notes_tools = new notes(); //Count notes $nbr_notes = $notes_tools->countUserNotes($res_id, $coll_id); if ($nbr_notes > 0 ) $nbr_notes = ' ('.$nbr_notes.')'; else $nbr_notes = ''; //Notes iframe $frm_str .= '
'. _NOTES.$nbr_notes .'

'. _NOTES .'

'; } $frm_str .= '
'; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= '
'; $tab_path_rep_file = get_rep_path($res_id, $coll_id); for ($i=0; $i 20) $titleRep = substr($tab_path_rep_file[$i]['title'],0,20).'...'; else $titleRep = $tab_path_rep_file[$i]['title']; $frm_str .= '
'.$titleRep.'
'; $frm_str .= ''; $frm_str .= '
'; } $countAttachments = "select res_id from res_view_attachments where status NOT IN ('DEL','OBS') and res_id_master = " . $res_id . " and coll_id = '" . $coll_id . "'"; $dbAttach = new dbquery(); $dbAttach->query($countAttachments); if ($dbAttach->nb_result() > 0) { $nb_attach = ' (' . ($dbAttach->nb_result()). ')'; } $frm_str .= '
'. _ATTACHED_DOC .$nb_attach.'
'; if ($core_tools->is_module_loaded('attachments')) { require 'modules/templates/class/templates_controler.php'; $templatesControler = new templates_controler(); $templates = array(); $templates = $templatesControler->getAllTemplatesForProcess($curdest); $_SESSION['destination_entity'] = $curdest; //var_dump($templates); $frm_str .= '
'; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= '

' . _PJ . ', ' . _ATTACHEMENTS . '

'; $req = new request; $req->connect(); $req->query("select res_id from ".$_SESSION['tablename']['attach_res_attachments'] . " where (status = 'A_TRA' or status = 'TRA' or status = 'SIGN') and res_id_master = " . $res_id . " and coll_id = '" . $coll_id . "'"); //$req->show(); $nb_attach = 0; if ($req->nb_result() > 0) { $nb_attach = $req->nb_result(); } $frm_str .= '
'; $frm_str .= '
'; if ($core_tools->is_module_loaded('templates')) { $frm_str .= ''; } $frm_str .= '
'; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= '
'; } $frm_str .= '
'; /* AJOUT DE LA PARTIE DES VERSIONS POUR LE COURRIER SPONTANE */ if ( $core->is_module_loaded('content_management') && $selectedCat == 'outgoing') { $versionTable = $sec->retrieve_version_table_from_coll_id( $coll_id ); $selectVersions = "select res_id from " . $versionTable . " where res_id_master = " . $res_id . " and status <> 'DEL' order by res_id desc"; $dbVersions = new dbquery(); $dbVersions->connect(); $dbVersions->query($selectVersions); $nb_versions_for_title = $dbVersions->nb_result(); $lineLastVersion = $dbVersions->fetch_object(); $lastVersion = $lineLastVersion->res_id; if ($lastVersion <> '') { $objectId = $lastVersion; $objectTable = $versionTable; } else { $objectTable = $sec->retrieve_table_from_coll( $coll_id ); $objectId = $res_id; $_SESSION['cm']['objectId4List'] = $res_id; } if ($nb_versions_for_title == 0) { $extend_title_for_versions = '0'; } else { $extend_title_for_versions = $nb_versions_for_title; } $_SESSION['cm']['resMaster'] = ''; $frm_str .= '
' . _VERSIONS .' -'.$data['category_id']['value']. ' (' . $extend_title_for_versions . ')
'; $frm_str .= '

'; $frm_str .= '
' . _VERSIONS . '
'; $frm_str .= '

'; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= ''; $frm_str .= '' . _VIEW_ORIGINAL . ''; $frm_str .= _VIEW_ORIGINAL . ' | '; $frm_str .= ''; if ($core->test_service('add_new_version_init', 'apps', false)) { $_SESSION['cm']['objectTable'] = $objectTable; $frm_str .= '
'; } $frm_str .= '
'; $frm_str .= ''; $frm_str .= '

'; $frm_str .= '
'; } $frm_str .= '
'; $frm_str .= '
'; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= 'Consigne  
'; $frm_str .= ''._ACTIONS.' : '; $actions = $b->get_actions_from_current_basket($res_id, $coll_id, 'PAGE_USE'); if(count($actions) > 0) { $frm_str .=' '; $table = $sec->retrieve_table_from_coll($coll_id); $frm_str .= ' '; } $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; //$frm_str .= ''; $frm_str .= '
'; $frm_str .= '
'; //modifier en fonction du statut URGENT if ($core->test_service('sign_document', 'visa', false) && $currentStatus == 'ESIG') { $color = ' style="" '; if ($tab_path_rep_file[0]['attachment_type'] == 'signed_response') $color = ' style="color:green" '; $frm_str .= ''; $frm_str .= ' '; } $displayModif = ' style="" '; if ($tab_path_rep_file[0]['attachment_type'] == 'signed_response') $displayModif = ' style="display:none;" '; $frm_str .= ' '; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= ''; $frm_str .= ''; $frm_str .= '
'; $frm_str .= ''; $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) { //writeLogIndex("GO check_form !!"); $_SESSION['action_error'] = ''; if(count($values) < 1 || empty($form_id)) { $_SESSION['action_error'] = _FORM_ERROR; return false; } else { 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); $db = new dbquery(); $db->connect(); $up_request = "UPDATE listinstance SET process_date = CURRENT_TIMESTAMP WHERE res_id = $res_id AND item_id='".$_SESSION['user']['UserId']."' AND difflist_type = 'VISA_CIRCUIT'"; $db->query($up_request); $circuit_visa = new visa(); if ($circuit_visa->allUserVised($res_id, $coll_id, 'VISA_CIRCUIT')){ $up_request = "UPDATE res_letterbox SET status='ESIG' WHERE res_id = $res_id"; $db->query($up_request); } } return array('result' => $res_id.'#', 'history_msg' => ''); }