* @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); } 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['stockCheckbox']= ''; unset($_SESSION['m_admin']['contact']); $_SESSION['req'] = "action"; $res_id = $values[0]; $_SESSION['doc_id'] = $res_id; $_SESSION['current_basket']['lastBasketFromAction'] = $_SESSION['current_basket']['id']; // Ouverture de la modal $frm_str = ''; $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; } // DocLocker constantly $frm_str .= ''; $docLocker->lock(); 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(); $visa = new visa(); $db = new Database(); $view = $sec->retrieve_view_from_coll_id($coll_id); $stmt = $db->query("select alt_identifier,category_id, status from " . $view . " where res_id = ?", array($res_id)); $resChrono = $stmt->fetchObject(); $chrono_number = $resChrono->alt_identifier; $currentStatus = $resChrono->status; $currentCategory = $resChrono->category_id; $frm_str .= '

'._VISA_MAIL.' '._NUM.''; if(_ID_TO_DISPLAY == 'res_id'){ $frm_str .= $res_id; } else if (_ID_TO_DISPLAY == 'chrono_number'){ $frm_str .= $chrono_number; } $frm_str .=''; $frm_str .= '

'; $frm_str .=''; $frm_str .= ''; $frm_str .= '
'; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= '
'; $tab_docs = $visa->getDocsBasket(); //$frm_str .= '
'.print_r($tab_docs,true).'
'; //$selectedCat = ''; $list_docs = ''; $data = array(); foreach($tab_docs as $num=>$res_id_doc) { $stmt = $db->query( "select alt_identifier, status, category_id, priority, destination, " . " dest_contact_id, exp_contact_id, dest_user_id, exp_user_id, address_id, " . " subject, admission_date, process_limit_date" . " from " . $view . " where res_id = ?" , array($res_id_doc) ); $resChrono_doc = $stmt->fetchObject(); $chrono_number_doc = $resChrono_doc->alt_identifier; $cat_id = $resChrono_doc->category_id; $doc_status = $resChrono_doc->status; $doc_priority = $resChrono_doc->priority; $doc_destination = $resChrono_doc->destination; $doc_dest_contact_id = $resChrono_doc->dest_contact_id; $doc_exp_contact_id = $resChrono_doc->exp_contact_id; $doc_dest_user_id = $resChrono_doc->dest_user_id; $doc_exp_user_id = $resChrono_doc->exp_user_id; $doc_address_id = $resChrono_doc->address_id; $doc_subject = $resChrono_doc->subject; $doc_admission_date = functions::format_date_db($resChrono_doc->admission_date); $doc_process_limit_date = functions::format_date_db($resChrono_doc->process_limit_date); $allAnsSigned = true; $stmt2 = $db->query("SELECT status from res_view_attachments where (attachment_type='response_project' OR attachment_type='outgoing_mail') and res_id_master = ?", array($res_id_doc)); while($line = $stmt2->fetchObject()){ 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 " '; $id_to_display = _ID_TO_DISPLAY; $frm_str .= '
'; //check_category($coll_id, $res_id_doc); //$data = get_general_data($coll_id, $res_id_doc, 'minimal', array(), $cat_id); if ($res_id_doc == $res_id){ $selectedCat = $cat_id; $curNumDoc = $num; $curdest = $doc_destination; } $frm_str .= '
    '; $frm_str .= '
  • '; $frm_str .= '' . $chrono_number_doc . ' '/*. ' - ' .$res_id_doc*/; //priority $color=''; $color = 'color:'.$_SESSION['mail_priorities_color'][$doc_priority].';'; $frm_str .= '
  • '; $frm_str .= '
  • '; $frm_str .= ' '; //BEGIN CASE OF CONTACT $data = array(); if ($doc_dest_user_id <> '' || $doc_exp_user_id <> '') { if ($doc_dest_user_id <> '') { $contactIdentifier = $doc_dest_user_id; } elseif ($doc_exp_user_id <> '') { $contactIdentifier = $doc_exp_user_id; } $data['type_contact'] = 'internal'; $stmt2 = $db->query( 'SELECT lastname, firstname FROM ' . $_SESSION['tablename']['users'] . " WHERE user_id = ?", array($contactIdentifier) ); $res = $stmt2->fetchObject(); $data['contact'] = $res->lastname . ' ' . $res->firstname; $data['contactId'] = $line->{$contactIdentifier}; } elseif ($doc_dest_contact_id <> '' || $doc_exp_contact_id <> '') { if ($doc_dest_contact_id <> '') { $contactIdentifier = $doc_dest_contact_id; } elseif ($doc_exp_contact_id <> '') { $contactIdentifier = $doc_exp_contact_id; } $data['type_contact'] = 'external'; // $stmt2 = $db->query("SELECT address_id FROM mlb_coll_ext WHERE res_id = ?", array($res_id)); // $resAddress = $stmt2->fetchObject(); $addressId = $doc_address_id; $stmt2 = $db->query('SELECT is_corporate_person, is_private, contact_lastname, contact_firstname, society, society_short, contact_purpose_id, address_num, address_street, address_postal_code, address_town, lastname, firstname FROM view_contacts WHERE contact_id = ? and ca_id = ?', array($contactIdentifier, $addressId)); $res = $stmt2->fetchObject(); if ($res->is_corporate_person == 'Y') { $data['contact'] = $res->society . ' ' ; if (!empty ($res->society_short)) { $data['contact'] .= '('.$res->society_short.') '; } } else { $data['contact'] = $res->contact_lastname . ' ' . $res->contact_firstname . ' '; if (!empty ($res->society)) { $data['contact'] .= '(' .$res->society . ') '; } } if ($res->is_private == 'Y') { $data['contact'] .= '('._CONFIDENTIAL_ADDRESS.')'; } else { require_once("apps".DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_contacts_v2.php"); $contact = new contacts_v2(); $data['contact'] .= '- ' . $contact->get_label_contact($res->contact_purpose_id, $_SESSION['tablename']['contact_purposes']).' : '; if (!empty($res->lastname) || !empty($res->firstname)) { $data['contact'] .= $res->lastname . ' ' . $res->firstname . ' '; } if (!empty($res->address_num) || !empty($res->address_street) || !empty($res->address_town) || !empty($res->address_postal_code)) { $data['contact'] .= ', '.$res->address_num .' ' . $res->address_street .' ' . $res->address_postal_code .' ' . strtoupper($res->address_town); } } $data['contactId'] = $contactIdentifier; $data['addressId'] = $addressId; } //TODO CASE OF MULTICONTACTS // else if ($arr[$i] == 'is_multicontacts') { // if (!empty ($line->{$arr[$i]})) { // $data['type_contact'] = 'multi_external'; // } // } //echo $data['contact'];exit; //END CASE OF CONTACT 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; } else { $frm_str .= _MULTI . '-' . _DEST; } $frm_str .= '
  • '; $frm_str .= '
  • '; $frm_str .= ' '; if(isset($doc_subject) && !empty($doc_subject)) { if (strlen($doc_subject) > 80) $subject = substr($doc_subject,0,80).'...'; else $subject = $doc_subject; $frm_str .= $subject; } $frm_str .= '
  • '; $frm_str .= '
  • '; $frm_str .= ' '; $frm_str .= $doc_admission_date; $frm_str .= ' '; $frm_str .= $doc_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 .= '
'; //TODO BEGIN OF CLEAN $frm_str .= '
'; //Onglet document if ($selectedCat != 'outgoing'){ $frm_str .= '
'._INCOMING.'
'; $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; } $frm_str .= '
'; $frm_str .= '
'; //CLEAN $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 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 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 .= '
'; $db = new Database(); $frm_str .= '
'; $frm_str .= '
'; $frm_str .= '
'; $tab_path_rep_file = $visa->get_rep_path($res_id, $coll_id); $cptAttach = count($tab_path_rep_file); if ($cptAttach < 6) { $viewMode = 'extended'; } elseif ($cptAttach < 10) { $viewMode = 'small'; } else { $viewMode = 'verysmall'; } for ($i=0; $i<$cptAttach;$i++) { $num_rep = $i+1; if ($viewMode == 'verysmall') { $titleRep = $i + 1; } elseif ($viewMode == 'small') { $titleRep = substr($_SESSION['attachment_types'][$tab_path_rep_file[$i]['attachment_type']],0,10); } else { if (strlen($tab_path_rep_file[$i]['title']) > 15) $titleRep = substr($_SESSION['attachment_types'][$tab_path_rep_file[$i]['attachment_type']],0,15) . '...'; else $titleRep = $_SESSION['attachment_types'][$tab_path_rep_file[$i]['attachment_type']]; } if ($tab_path_rep_file[$i]['attachment_type'] == 'signed_response') { $titleRep = '' . $titleRep; } $frm_str .= '
'.$titleRep . '
'; $frm_str .= ''; $frm_str .= '
'; } $stmt = $db->query("SELECT res_id FROM " . $_SESSION['tablename']['attach_res_attachments'] . " WHERE status <> 'DEL' and attachment_type <> 'converted_pdf' and attachment_type <> 'print_folder' and res_id_master = ? and coll_id = ? and (status <> 'TMP' or (typist = ? and status = 'TMP'))", array($res_id, $coll_id, $_SESSION['user']['UserId'])); if ($stmt->rowCount() > 0) { $nb_attach = " (".$stmt->rowCount().")"; } /*if ($viewMode == 'extended') { $frm_str .= '
'. _ATTACHED_DOC .$nb_attach . '
'; } else {*/ $frm_str .= '
PJ ' .$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 . '

'; $stmt = $db->query("select res_id from ".$_SESSION['tablename']['attach_res_attachments'] . " where (status = 'A_TRA' or status = 'TRA' or status = 'SIGN') and res_id_master = ? and coll_id = ?", array($res_id,$coll_id)); //$req->show(); $nb_attach = 0; if ($stmt->rowCount() > 0) { $nb_attach = $stmt->rowCount(); } $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 .= '
'; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= 'Consigne  
'; //GET ACTION LIST BY AJAX REQUEST $frm_str .= ''; $frm_str .= ''; $frm_str .= ' '; // /*$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 .= '
'; //if ($core->test_service('sign_document', 'visa', false) && $currentStatus == 'ESIG') { if ($core->test_service('sign_document', 'visa', false) ) { $color = ' style="float:left;color:#666;" '; $img = ''; if ($tab_path_rep_file[0]['attachment_type'] == 'signed_response'){ $color = ' style="float:left;color:green;cursor:not-allowed;" '; $img = ''; } if ($_SESSION['modules_loaded']['visa']['showAppletSign'] == "true"){ $frm_str .= ''; } if ($tab_path_rep_file[0]['attachment_type'] != 'signed_response'){ $frm_str .= ' '.$img.''; } $displayModif = ' style="float:right;" '; if ($tab_path_rep_file[0]['attachment_type'] == 'signed_response') $displayModif = ' style="float:right;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; $i 'process_date', 'value' => 'CURRENT_TIMESTAMP', 'type' => 'date', ) ); $where = 'res_id = ? and item_id = ? and difflist_type = ?'; $array_what[] = $res_id; $array_what[] = $_SESSION['user']['UserId']; $array_what[] = 'VISA_CIRCUIT'; $request = new request(); $table = 'listinstance'; $request->PDOupdate($table, $replaceValues, $where, $array_what, $_SESSION['config']['databasetype']); $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 = new Database(); $db->query("UPDATE res_letterbox SET status='ESIG' WHERE res_id = ?", array($res_id)); } }*/ return array('result' => $res_id.'#', 'history_msg' => ''); }