Skip to content
Snippets Groups Projects
Commit 2109efa0 authored by Florian Azizian's avatar Florian Azizian
Browse files

FIX #10633 TIME 0:25 rm old action_pages

parent aef90152
No related branches found
No related tags found
No related merge requests found
Showing
with 48 additions and 2558 deletions
...@@ -50,52 +50,52 @@ job_php-7.3: ...@@ -50,52 +50,52 @@ job_php-7.3:
only: only:
- develop - develop
# job_php-7.2: job_php-7.2:
# image: php:7.2-apache image: php:7.2-apache
# stage: test stage: test
# script: script:
# - mkdir -p /opt/maarch/docservers/indexes/{letterbox_coll,attachments_coll,version_attachments_coll} - mkdir -p /opt/maarch/docservers/indexes/{letterbox_coll,attachments_coll,version_attachments_coll}
# - mkdir -p /opt/maarch/docservers/{ai,manual,manual_attachments,templates} - mkdir -p /opt/maarch/docservers/{ai,manual,manual_attachments,templates}
# - mkdir -p /opt/maarch/docservers/{convert_attachments,convert_attachments_version,convert_mlb} - mkdir -p /opt/maarch/docservers/{convert_attachments,convert_attachments_version,convert_mlb}
# - mkdir -p /opt/maarch/docservers/{fulltext_attachments,fulltext_attachments_version,fulltext_mlb} - mkdir -p /opt/maarch/docservers/{fulltext_attachments,fulltext_attachments_version,fulltext_mlb}
# - mkdir -p /opt/maarch/docservers/{thumbnails_attachments,thumbnails_attachments_version,thumbnails_mlb} - mkdir -p /opt/maarch/docservers/{thumbnails_attachments,thumbnails_attachments_version,thumbnails_mlb}
# - mkdir -p /var/www/html/ - mkdir -p /var/www/html/
# - cp -R /builds/maarch/MaarchCourrier/ /var/www/html/ - cp -R /builds/maarch/MaarchCourrier/ /var/www/html/
# - cd /var/www/html/MaarchCourrier - cd /var/www/html/MaarchCourrier
# - mkdir -p /var/www/html/MaarchCourrier - mkdir -p /var/www/html/MaarchCourrier
# #- curl -sL https://deb.nodesource.com/setup_7.x | bash - #- curl -sL https://deb.nodesource.com/setup_7.x | bash -
# #- apt-get install -yqq nodejs #- apt-get install -yqq nodejs
# #- npm install npm@latest -g #- npm install npm@latest -g
# #- npm set registry https://registry.npmjs.org/ #- npm set registry https://registry.npmjs.org/
# #- npm install #- npm install
# - sed 's/<databaseserver>.*<\/databaseserver>/<databaseserver>postgres<\/databaseserver>/;s/<databasepassword>.*<\/databasepassword>/<databasepassword><\/databasepassword>/;s/<databasename>.*<\/databasename>/<databasename>MaarchCourrier<\/databasename>/;s/<databaseuser>.*<\/databaseuser>/<databaseuser>maarch<\/databaseuser>/' apps/maarch_entreprise/xml/config.xml.default > apps/maarch_entreprise/xml/config.xml - sed 's/<databaseserver>.*<\/databaseserver>/<databaseserver>postgres<\/databaseserver>/;s/<databasepassword>.*<\/databasepassword>/<databasepassword><\/databasepassword>/;s/<databasename>.*<\/databasename>/<databasename>MaarchCourrier<\/databasename>/;s/<databaseuser>.*<\/databaseuser>/<databaseuser>maarch<\/databaseuser>/' apps/maarch_entreprise/xml/config.xml.default > apps/maarch_entreprise/xml/config.xml
# - curl --location -s --output /usr/local/bin/phpunit https://phar.phpunit.de/phpunit-7.phar - curl --location -s --output /usr/local/bin/phpunit https://phar.phpunit.de/phpunit-7.phar
# - chmod +x /usr/local/bin/phpunit - chmod +x /usr/local/bin/phpunit
# - phpunit --coverage-text --colors=never -c phpunit.xml - phpunit --no-coverage
# only: only:
# - develop - develop
# job_php-7.1: job_php-7.1:
# image: php:7.1-apache image: php:7.1-apache
# stage: test stage: test
# script: script:
# - mkdir -p /opt/maarch/docservers/indexes/{letterbox_coll,attachments_coll,version_attachments_coll} - mkdir -p /opt/maarch/docservers/indexes/{letterbox_coll,attachments_coll,version_attachments_coll}
# - mkdir -p /opt/maarch/docservers/{ai,manual,manual_attachments,templates} - mkdir -p /opt/maarch/docservers/{ai,manual,manual_attachments,templates}
# - mkdir -p /opt/maarch/docservers/{convert_attachments,convert_attachments_version,convert_mlb} - mkdir -p /opt/maarch/docservers/{convert_attachments,convert_attachments_version,convert_mlb}
# - mkdir -p /opt/maarch/docservers/{fulltext_attachments,fulltext_attachments_version,fulltext_mlb} - mkdir -p /opt/maarch/docservers/{fulltext_attachments,fulltext_attachments_version,fulltext_mlb}
# - mkdir -p /opt/maarch/docservers/{thumbnails_attachments,thumbnails_attachments_version,thumbnails_mlb} - mkdir -p /opt/maarch/docservers/{thumbnails_attachments,thumbnails_attachments_version,thumbnails_mlb}
# - mkdir -p /var/www/html/ - mkdir -p /var/www/html/
# - cp -R /builds/maarch/MaarchCourrier/ /var/www/html/ - cp -R /builds/maarch/MaarchCourrier/ /var/www/html/
# - cd /var/www/html/MaarchCourrier - cd /var/www/html/MaarchCourrier
# - mkdir -p /var/www/html/MaarchCourrier - mkdir -p /var/www/html/MaarchCourrier
# #- curl -sL https://deb.nodesource.com/setup_7.x | bash - #- curl -sL https://deb.nodesource.com/setup_7.x | bash -
# #- apt-get install -yqq nodejs #- apt-get install -yqq nodejs
# #- npm install npm@latest -g #- npm install npm@latest -g
# #- npm set registry https://registry.npmjs.org/ #- npm set registry https://registry.npmjs.org/
# #- npm install #- npm install
# - sed 's/<databaseserver>.*<\/databaseserver>/<databaseserver>postgres<\/databaseserver>/;s/<databasepassword>.*<\/databasepassword>/<databasepassword><\/databasepassword>/;s/<databasename>.*<\/databasename>/<databasename>MaarchCourrier<\/databasename>/;s/<databaseuser>.*<\/databaseuser>/<databaseuser>maarch<\/databaseuser>/' apps/maarch_entreprise/xml/config.xml.default > apps/maarch_entreprise/xml/config.xml - sed 's/<databaseserver>.*<\/databaseserver>/<databaseserver>postgres<\/databaseserver>/;s/<databasepassword>.*<\/databasepassword>/<databasepassword><\/databasepassword>/;s/<databasename>.*<\/databasename>/<databasename>MaarchCourrier<\/databasename>/;s/<databaseuser>.*<\/databaseuser>/<databaseuser>maarch<\/databaseuser>/' apps/maarch_entreprise/xml/config.xml.default > apps/maarch_entreprise/xml/config.xml
# - curl --location -s --output /usr/local/bin/phpunit https://phar.phpunit.de/phpunit-7.phar - curl --location -s --output /usr/local/bin/phpunit https://phar.phpunit.de/phpunit-7.phar
# - chmod +x /usr/local/bin/phpunit - chmod +x /usr/local/bin/phpunit
# - phpunit --coverage-text --colors=never -c phpunit.xml - phpunit --no-coverage
# only: only:
# - develop - develop
<?php
/*
* Copyright 2008,2009 Maarch
*
* This file is part of Maarch Framework.
*
* Maarch Framework is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Maarch Framework is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Maarch Framework. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* @brief Action : simple confirm
*
* Open a modal box to confirm a status modification. Used by the core (manage_action.php page).
*
* @file
* @date $date$
* @version $Revision$
* @ingroup apps
*/
/**
* $confirm bool false
*/
$confirm = false;
$etapes = array('form');
$frm_width = '285px';
$frm_height = 'auto';
function get_form_txt($values, $path_manage_action, $id_action, $table, $module, $coll_id, $mode)
{
$labelAction = '';
if ($id_action <> '') {
$resAction = \Action\models\ActionModel::getById(['id' => $id_action]);
$labelAction = functions::show_string($resAction['label_action']);
}
$values_str = '';
if (empty($_SESSION['stockCheckbox'])) {
for ($i=0; $i < count($values); $i++) {
$values_str .= $values[$i].', ';
}
} else {
for ($i=0; $i < count($_SESSION['stockCheckbox']); $i++) {
$values_str .= $_SESSION['stockCheckbox'][$i].', ';
}
}
$values_str = preg_replace('/, $/', '', $values_str);
$templates = array();
$destination = \Resource\models\ResModel::get(['select' => ['destination'], 'where' => ['res_id in (?)'], 'data' => [explode(", ", $values_str)]]);
if ($destination <> '') {
$aDestination = [];
foreach ($destination as $value) {
$aDestination[] = $value['destination'];
}
$templates = \Template\models\TemplateModel::getByEntity(['select' => ['t.*'], 'entities' => $aDestination]);
} else {
$templates = \Template\models\TemplateModel::get();
}
$frm_str .='<center style="font-size:15px;">'._ACTION_CONFIRM.'<br/><br/><b>'.$labelAction.' ?</b></center><br/>';
if ($_SESSION['current_basket']['id'] != 'IndexingBasket') {
$frm_str .='<b>'._PROCESS_NOTES.':</b><br/>';
$frm_str .= '<select name="templateNotes" id="templateNotes" style="width:98%;margin-bottom: 10px;background-color: White;border: 1px solid #999;color: #666;text-align: left;" '
. 'onchange="addTemplateToNote($(\'templateNotes\').value, \''
. $_SESSION['config']['businessappurl'] . 'index.php?display=true'
. '&module=templates&page=templates_ajax_content_for_notes\');document.getElementById(\'notes\').focus();">';
$frm_str .= '<option value="">' . _SELECT_NOTE_TEMPLATE . '</option>';
foreach ($templates as $value) {
if ($value['template_type'] == 'TXT' && ($value['template_target'] == 'notes' || $value['template_target'] == '')) {
$frm_str .= '<option value="';
$frm_str .= $value['template_id'];
$frm_str .= '">';
$frm_str .= $value['template_label'];
}
$frm_str .= '</option>';
}
$frm_str .= '</select><br />';
$frm_str .= '<textarea placeholder="motif de la clôture (optionnel) ..." style="width:98%;height:60px;resize:none;" name="notes" id="notes" onblur="document.getElementById(\'note_content_to_users\').value=document.getElementById(\'notes\').value;"></textarea>';
}
$frm_str .='<div id="form2" style="border:none;">';
$frm_str .= '<form name="frm_redirect_dep" id="frm_redirect_dep" method="post" class="forms" action="#">';
$frm_str .= '<input type="hidden" name="chosen_action" id="chosen_action" value="end_action" />';
$frm_str .= '<input type="hidden" name="note_content_to_users" id="note_content_to_users" />';
$frm_str .='</form>';
$frm_str .='</div>';
$frm_str .='<div align="center">';
$frm_str .=' <input type="button" name="redirect_dep" value="'._VALIDATE.'" id="redirect_dep" class="button" onclick="valid_action_form( \'frm_redirect_dep\', \''.$path_manage_action.'\', \''. $id_action.'\', \''.$values_str.'\', \''.$table.'\', \''.$module.'\', \''.$coll_id.'\', \''.$mode.'\');" />';
$frm_str .=' <input type="button" name="cancel" id="cancel" class="button" value="'._CANCEL.'" onclick="pile_actions.action_pop();actions_status.action_pop();destroyModal(\'modal_'.$id_action.'\');"/>';
$frm_str .='</div>';
return addslashes($frm_str);
}
function check_form($form_id, $values)
{
return true;
}
function manage_form($arr_id, $history, $id_action, $label_action, $status, $coll_id, $table, $values_form)
{
if (empty($values_form) || count($arr_id) < 1) {
return false;
}
$formValues = array();
for ($i=0; $i<count($values_form); $i++) {
$formValue = $values_form[$i];
$id = $formValue['ID'];
$value = $formValue['VALUE'];
$formValues[$id] = $value;
}
$_SESSION['action_error'] = '';
$result = '';
foreach ($arr_id as $res_id) {
$result .= $res_id.'#';
\Resource\models\ResModel::update(['set' => ['closing_date' => 'CURRENT_TIMESTAMP'], 'where' => ['res_id = ?'], 'data' => [$res_id]]);
# save note
if ($formValues['note_content_to_users'] != '') {
$user = \User\models\UserModel::getByLogin(['login' => $_SESSION['user']['UserId'], 'select' => ['id']]);
\Note\models\NoteModel::create(['resId' => $res_id, 'user_id' => $user['id'], 'note_text' => $formValues['note_content_to_users']]);
}
}
return ['result' => $result, 'history_msg' => ''];
}
<?php
/*
* Copyright 2008,2009 Maarch
*
* This file is part of Maarch Framework.
*
* Maarch Framework is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Maarch Framework is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Maarch Framework. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* @brief Action : simple confirm
*
* Open a modal box to confirm a status modification. Used by the core (manage_action.php page).
*
* @file
* @author Claire Figueras <dev@maarch.org>
* @date $date$
* @version $Revision$
* @ingroup apps
*/
/**
* $confirm bool true
*/
$confirm = true;
/**
* $etapes array Contains only one etap, the status modification
*/
$etapes = array('close');
function manage_close($arr_id, $history, $id_action, $label_action, $status)
{
$result = '';
require_once('core'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_security.php');
require_once('core'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_request.php');
$sec = new security();
$db = new Database();
$ind_coll = $sec->get_ind_collection($_POST['coll_id']);
for ($i=0; $i<count($arr_id); $i++) {
$result .= $arr_id[$i].'#';
$db->query("UPDATE res_letterbox SET closing_date = CURRENT_TIMESTAMP WHERE res_id = ?", array($arr_id[$i]));
}
$_SESSION['indexing']['category_id'] = 'outgoing';
return array(
'result' => $result,
'history_msg' => '',
'page_result' => $_SESSION['config']['businessappurl']
. 'index.php?page=view_baskets&module=basket&baskets=IndexingBasket'
);
}
<?php
/*
* Copyright 2008,2009 Maarch
*
* This file is part of Maarch Framework.
*
* Maarch Framework is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Maarch Framework is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Maarch Framework. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* @brief Action : simple confirm
*
* Open a modal box to confirm a status modification. Used by the core (manage_action.php page).
*
* @file
* @author Claire Figueras <dev@maarch.org>
* @date $date$
* @version $Revision$
* @ingroup apps
*/
/**
* $confirm bool false
*/
$confirm = false;
$etapes = array('form');
$frm_width='285px';
$frm_height = 'auto';
function get_form_txt($values, $path_manage_action, $id_action, $table, $module, $coll_id, $mode)
{
$res_id=$values[0];
$db = new Database();
$labelAction = '';
if ($id_action <> '') {
$stmt = $db->query("select label_action from actions where id = ?", array($id_action));
$resAction = $stmt->fetchObject();
$labelAction = functions::show_string($resAction->label_action);
}
$values_str = '';
if (empty($_SESSION['stockCheckbox'])) {
for ($i=0; $i<count($values); $i++) {
$values_str .= $values[$i].', ';
}
} else {
for ($i=0; $i<count($_SESSION['stockCheckbox']); $i++) {
$values_str .= $_SESSION['stockCheckbox'][$i].', ';
}
}
$values_str = preg_replace('/, $/', '', $values_str);
require 'modules/templates/class/templates_controler.php';
$templatesControler = new templates_controler();
$templates = array();
if (is_numeric($res_id)) {
$stmt = $db->query("SELECT destination FROM res_letterbox WHERE res_id = (?)", [$res_id]);
$resultDest = $stmt->fetchObject();
$destination = $resultDest->destination;
} else {
$destination = '';
}
if ($destination <> '') {
$templates = $templatesControler->getAllTemplatesForProcess($destination);
} else {
$templates = $templatesControler->getAllTemplatesForSelect();
}
$frm_str ='<center style="font-size:15px;">'._ACTION_CONFIRM.'<br/><br/><b>'.$labelAction.' ?</b></center><br/>';
if ($_SESSION['current_basket']['id'] != 'IndexingBasket') {
$frm_str .='<b>'._PROCESS_NOTES.':</b><br/>';
$frm_str .= '<select name="templateNotes" id="templateNotes" style="width:98%;margin-bottom: 10px;background-color: White;border: 1px solid #999;color: #666;text-align: left;" '
. 'onchange="addTemplateToNote($(\'templateNotes\').value, \''
. $_SESSION['config']['businessappurl'] . 'index.php?display=true'
. '&module=templates&page=templates_ajax_content_for_notes\');document.getElementById(\'notes\').focus();">';
$frm_str .= '<option value="">' . _SELECT_NOTE_TEMPLATE . '</option>';
for ($i=0; $i<count($templates); $i++) {
if ($templates[$i]['TYPE'] == 'TXT' && ($templates[$i]['TARGET'] == 'notes' || $templates[$i]['TARGET'] == '')) {
$frm_str .= '<option value="';
$frm_str .= $templates[$i]['ID'];
$frm_str .= '">';
$frm_str .= $templates[$i]['LABEL'];
}
$frm_str .= '</option>';
}
$frm_str .= '</select><br />';
$frm_str .= '<textarea placeholder="motif de l\'action (optionnel) ..." style="width:98%;height:60px;resize:none;" name="notes" id="notes" onblur="document.getElementById(\'note_content_to_users\').value=document.getElementById(\'notes\').value;"></textarea>';
}
$frm_str .='<div id="form2" style="border:none;">';
$frm_str .= '<form name="frm_redirect_dep" id="frm_redirect_dep" method="post" class="forms" action="#">';
$frm_str .= '<input type="hidden" name="chosen_action" id="chosen_action" value="end_action" />';
$frm_str .= '<input type="hidden" name="note_content_to_users" id="note_content_to_users" />';
$frm_str .='</form>';
$frm_str .='</div>';
$frm_str .='<div align="center">';
$frm_str .=' <input type="button" name="redirect_dep" value="'._VALIDATE.'" id="redirect_dep" class="button" onclick="valid_action_form( \'frm_redirect_dep\', \''.$path_manage_action.'\', \''. $id_action.'\', \''.$values_str.'\', \''.$table.'\', \''.$module.'\', \''.$coll_id.'\', \''.$mode.'\');" />';
$frm_str .=' <input type="button" name="cancel" id="cancel" class="button" value="'._CANCEL.'" onclick="pile_actions.action_pop();actions_status.action_pop();destroyModal(\'modal_'.$id_action.'\');"/>';
$frm_str .='</div>';
return addslashes($frm_str);
}
function check_form($form_id, $values)
{
return true;
}
function manage_form($arr_id, $history, $id_action, $label_action, $status, $coll_id, $table, $values_form)
{
if (empty($values_form) || count($arr_id) < 1) {
return false;
}
require_once('modules/notes/class/notes_controler.php');
$note = new notes_controler();
$formValues = array();
for ($i=0; $i<count($values_form); $i++) {
$formValue = $values_form[$i];
$id = $formValue['ID'];
$value = $formValue['VALUE'];
$formValues[$id] = $value;
}
$_SESSION['action_error'] = '';
$coll_id = $_SESSION['current_basket']['coll_id'];
# save note
if ($formValues['note_content_to_users'] != '') {
//Add notes
$content_note = $formValues['note_content_to_users'];
$content_note = str_replace(";", ".", $content_note);
$content_note = str_replace("--", "-", $content_note);
foreach ($arr_id as $res_id) {
$note->addNote($res_id, $coll_id, $content_note);
}
}
return array('result' => implode("#", $arr_id), 'history_msg' => '');
}
/**
* 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<count($values); $i++) {
if ($values[$i]['ID'] == $field) {
return $values[$i]['VALUE'];
}
}
return false;
}
<?php
/**
* Copyright Maarch since 2008 under licence GPLv3.
* See LICENCE.txt file at the root folder for more details.
* This file is part of Maarch software.
* @brief confirm_status_with_update_date
* @author dev <dev@maarch.org>
* @ingroup apps
*/
$confirm = false;
$etapes = array('form');
$frm_width='285px';
$frm_height = 'auto';
function get_form_txt($values, $path_manage_action, $id_action, $table, $module, $coll_id, $mode )
{
$res_id=$values[0];
$db = new Database();
$labelAction = '';
if ($id_action <> '') {
$stmt = $db->query("select label_action from actions where id = ?",array($id_action));
$resAction = $stmt->fetchObject();
$labelAction = functions::show_string($resAction->label_action);
}
$values_str = '';
if (empty($_SESSION['stockCheckbox'])) {
for ($i=0; $i < count($values);$i++) {
$values_str .= $values[$i].', ';
}
} else {
for ($i=0; $i < count($_SESSION['stockCheckbox']);$i++) {
$values_str .= $_SESSION['stockCheckbox'][$i].', ';
}
}
$values_str = preg_replace('/, $/', '', $values_str);
include_once 'modules/templates/class/templates_controler.php';
$templatesControler = new templates_controler();
$templates = array();
$stmt = $db->query("SELECT destination FROM res_letterbox WHERE res_id = (?)", [$res_id]);
$resultDest = $stmt->fetchObject();
$destination = $resultDest->destination;
if ($destination <> '') {
$templates = $templatesControler->getAllTemplatesForProcess($destination);
} else {
$templates = $templatesControler->getAllTemplatesForSelect();
}
$frm_str ='<center style="font-size:15px;">'._ACTION_CONFIRM.'<br/><br/><b>'.strtoupper($labelAction).' ?</b></center><br/>';
$frm_str .='<b>'._PROCESS_NOTES.':</b><br/>';
$frm_str .= '<select name="templateNotes" id="templateNotes" style="width:98%;margin-bottom: 10px;background-color: White;border: 1px solid #999;color: #666;text-align: left;" '
. 'onchange="addTemplateToNote($(\'templateNotes\').value, \''
. $_SESSION['config']['businessappurl'] . 'index.php?display=true'
. '&module=templates&page=templates_ajax_content_for_notes\');document.getElementById(\'notes\').focus();">';
$frm_str .= '<option value="">' . _SELECT_NOTE_TEMPLATE . '</option>';
for ($i=0;$i<count($templates);$i++) {
if ($templates[$i]['TYPE'] == 'TXT' && ($templates[$i]['TARGET'] == 'notes' || $templates[$i]['TARGET'] == '')) {
$frm_str .= '<option value="';
$frm_str .= $templates[$i]['ID'];
$frm_str .= '">';
$frm_str .= $templates[$i]['LABEL'];
}
$frm_str .= '</option>';
}
$frm_str .= '</select><br />';
$frm_str .= '<textarea placeholder="motif de l\'action (optionnel) ..." style="width:98%;height:60px;resize:none;" name="notes" id="notes" onblur="document.getElementById(\'note_content_to_users\').value=document.getElementById(\'notes\').value;"></textarea>';
$frm_str .='<div id="form2" style="border:none;">';
$frm_str .= '<form name="frm_redirect_dep" id="frm_redirect_dep" method="post" class="forms" action="#">';
$frm_str .= '<input type="hidden" name="chosen_action" id="chosen_action" value="end_action" />';
$frm_str .= '<input type="hidden" name="note_content_to_users" id="note_content_to_users" />';
$frm_str .='</form>';
$frm_str .='</div>';
$frm_str .='<div align="center">';
$frm_str .=' <input type="button" name="redirect_dep" value="'._VALIDATE.'" id="redirect_dep" class="button" onclick="valid_action_form( \'frm_redirect_dep\', \''.$path_manage_action.'\', \''. $id_action.'\', \''.$values_str.'\', \''.$table.'\', \''.$module.'\', \''.$coll_id.'\', \''.$mode.'\');" />';
$frm_str .=' <input type="button" name="cancel" id="cancel" class="button" value="'._CANCEL.'" onclick="pile_actions.action_pop();actions_status.action_pop();destroyModal(\'modal_'.$id_action.'\');"/>';
$frm_str .='</div>';
return addslashes($frm_str);
}
function check_form($form_id,$values)
{
return true;
}
function manage_form($arr_id, $history, $id_action, $label_action, $status, $coll_id, $table, $values_form )
{
if(empty($values_form) || count($arr_id) < 1)
return false;
include_once 'modules/notes/class/notes_controler.php';
$note = new notes_controler();
$formValues = array();
for ($i=0; $i<count($values_form); $i++) {
$formValue = $values_form[$i];
$id = $formValue['ID'];
$value = $formValue['VALUE'];
$formValues[$id] = $value;
}
$_SESSION['action_error'] = '';
$result = '';
$coll_id = $_SESSION['current_basket']['coll_id'];
include_once "core/class/class_security.php";
$sec = new security();
$table = $sec->retrieve_table_from_coll($coll_id);
$db = new Database();
//LOOP IF MASS ACTION
foreach ($arr_id as $res_id) {
$result .= $res_id.'#';
//update exp date
$stmt = $db->query("UPDATE res_letterbox SET departure_date = current_timestamp where res_id = ? and departure_date is null", array($res_id));
//save note
if ($formValues['note_content_to_users'] != '') {
//Add notes
$nb_avis = $sequence +1;
$userIdTypist = $_SESSION['user']['UserId'];
$content_note = $formValues['note_content_to_users'];
$content_note = str_replace(";", ".", $content_note);
$content_note = str_replace("--", "-", $content_note);
$content_note = $content_note;
$note->addNote($res_id, $coll_id, $content_note);
}
}
return array('result' => $result, 'history_msg' => '');
}
/**
* 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<count($values);$i++) {
if ($values[$i]['ID'] == $field) {
return $values[$i]['VALUE'];
}
}
return false;
}
?>
<?php
/**
* Copyright Maarch since 2008 under licence GPLv3.
* See LICENCE.txt file at the root folder for more details.
* This file is part of Maarch software.
*
*/
/**
* @brief Action : mark as read
*
* mark as read a mail so that it doesn't appear anymore in the basket
*
* @file
* @date $date$
* @version $Revision$
* @ingroup apps
*/
/**
* $confirm bool true
*/
$confirm = true;
/**
* $etapes array Contains only one etap, the status modification
*/
$etapes = array('markAsRead');
function manage_markAsRead($arr_id, $history, $id_action, $label_action, $status)
{
$db = new Database();
$result = '';
require_once('core'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_security.php');
require_once('core'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_request.php');
$sec = new security();
$ind_coll = $sec->get_ind_collection($_POST['coll_id']);
for ($i=0; $i<count($arr_id);$i++) {
$result .= $arr_id[$i].'#';
$stmt = $db->query("SELECT * FROM res_mark_as_read WHERE res_id = ? AND user_id = ? AND basket_id = ?", array($arr_id[$i], $_SESSION['user']['UserId'], $_SESSION['current_basket']['id']));
$lineExist = false;
while ($result1 = $stmt->fetchObject()) {
$lineExist = true;
}
if (!$lineExist) {
$query = "INSERT INTO res_mark_as_read VALUES(?, ?, ?)";
$db->query($query, array($arr_id[$i], $_SESSION['user']['UserId'], $_SESSION['current_basket']['id']));
}
}
return array('result' => $result, 'history_msg' => '');
}
<?php
/*
* Copyright 2008,2009 Maarch
*
* This file is part of Maarch Framework.
*
* Maarch Framework is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Maarch Framework is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Maarch Framework. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* @brief Action : simple confirm
*
* Open a modal box to confirm a status modification. Used by the core (manage_action.php page).
*
* @file
* @author Arnaud Veber
* @date $date$
* @version $Revision$
* @ingroup apps
*/
/**
* $confirm bool true
*/
$confirm = false;
/**
* $etapes array Contains only one etap, the status modification
*/
$etapes = array('persistentOff');
function manage_persistentOff($arr_id, $history, $id_action, $label_action, $status)
{
$db = new Database();
$result = '';
require_once('core'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_security.php');
require_once('core'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_request.php');
$sec = new security();
$ind_coll = $sec->get_ind_collection($_POST['coll_id']);
for($i=0; $i<count($arr_id );$i++)
{
$result .= $arr_id[$i].'#';
//on verifie si il y a déja une entrée dans la base pour ce res_id et cet user_id
$stmt = $db->query("SELECT * FROM basket_persistent_mode WHERE res_id = ? AND user_id = ?", array($arr_id[$i], $_SESSION['user']['UserId']));
$lineExist = false;
while ($result1 = $stmt->fetchObject()) {
$lineExist = true;
}
if ($lineExist) {
$query = "UPDATE basket_persistent_mode SET is_persistent = 'N' WHERE res_id = ? AND user_id = ?";
$db->query($query, array($arr_id[$i], $_SESSION['user']['UserId']));
} else {
$query = "INSERT INTO basket_persistent_mode VALUES(?, ?, 'N')";
$db->query($query, array($arr_id[$i], $_SESSION['user']['UserId']));
}
}
return array('result' => $result, 'history_msg' => '');
}
<?php
/*
* Copyright 2008,2009 Maarch
*
* This file is part of Maarch Framework.
*
* Maarch Framework is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Maarch Framework is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Maarch Framework. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* @brief Action : simple confirm
*
* Open a modal box to confirm a status modification. Used by the core (manage_action.php page).
*
* @file
* @author Arnaud Veber
* @date $date$
* @version $Revision$
* @ingroup apps
*/
/**
* $confirm bool true
*/
$confirm = false;
/**
* $etapes array Contains only one etap, the status modification
*/
$etapes = array('persistentOn');
function manage_persistentOn($arr_id, $history, $id_action, $label_action, $status)
{
$db = new Database();
$result = '';
require_once('core'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_security.php');
require_once('core'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_request.php');
$sec = new security();
$ind_coll = $sec->get_ind_collection($_POST['coll_id']);
for($i=0; $i<count($arr_id );$i++)
{
$result .= $arr_id[$i].'#';
//on verifie si il y a déja une entrée dans la base pour ce res_id et cet user_id
$stmt = $db->query("SELECT * FROM basket_persistent_mode WHERE res_id = ? AND user_id = ?", array($arr_id[$i], $_SESSION['user']['UserId']));
$lineExist = false;
while ($result1 = $stmt->fetchObject()) {
$lineExist = true;
}
if ($lineExist) {
$query = "UPDATE basket_persistent_mode SET is_persistent = 'Y' WHERE res_id = ? AND user_id = ?";
$db->query($query, array($arr_id[$i], $_SESSION['user']['UserId']));
} else {
$query = "INSERT INTO basket_persistent_mode VALUES(?, ?, 'Y')";
$db->query($query, array($arr_id[$i], $_SESSION['user']['UserId']));
}
}
return array('result' => $result, 'history_msg' => '');
}
<?php
/**
* Copyright Maarch since 2008 under licence GPLv3.
* See LICENCE.txt file at the root folder for more details.
* This file is part of Maarch software.
* @brief view
* @author dev <dev@maarch.org>
* @ingroup apps
*/
$etapes = array('form');
$frm_width='';
$frm_height = '';
$mode_form = 'fullscreen';
/**
* Returns the indexing form text
*
* @param $values Array Contains the res_id of the document to process
* @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)
{
$res_id = $values[0];
$frm_str = '';
$_SESSION['doc_id'] = $res_id;
$frm_str .= '<div>';
$frm_str .= ' <center><input name="close" style="padding:5px;font-weight:600;" id="close" type="button" value="'._CLOSE.'" class="button" onClick="javascript:$(\'baskets\').style.visibility=\'visible\';destroyModal(\'modal_'.$id_action.'\');reinit();window.location.reload();"/></center>';
$frm_str .= ' </br>';
$frm_str .= ' <iframe src="../../rest/resources/'.$res_id.'/content" name="viewframe" id="viewframe" scrolling="auto" frameborder="0" ></iframe>';
$frm_str .= '</div>';
$frm_str .= '<script type="text/javascript">resize_frame_view("modal_'.$id_action.'", "viewframe", true, true);window.scrollTo(0,0);</script>';
return addslashes($frm_str);
}
<?php
$confirm = false;
$etapes = array('form');
$frm_width='355px';
$frm_height = 'auto';
require("modules/entities/entities_tables.php");
require_once("modules/entities/class/EntityControler.php");
require_once('modules/entities/class/class_manage_entities.php');;
require_once "modules" . DIRECTORY_SEPARATOR . "avis" . DIRECTORY_SEPARATOR
. "class" . DIRECTORY_SEPARATOR
. "avis_controler.php";
require_once "apps".DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR
."class".DIRECTORY_SEPARATOR."class_lists.php";
function get_form_txt($values, $path_manage_action, $id_action, $table, $module, $coll_id, $mode )
{
require_once('apps/' . $_SESSION['config']['app_id'] . '/class/class_chrono.php');
$cr7 = new chrono();
$res_id=$values[0];
$avis = new avis_controler();
$ent = new entity();
$entity_ctrl = new EntityControler();
$services = array();
$servicesCompare = array();
$db = new Database();
$sec = new security();
$labelAction = '';
if ($id_action <> '') {
$stmt = $db->query("select label_action from actions where id = ?",array($id_action));
$resAction = $stmt->fetchObject();
$labelAction = functions::show_string($resAction->label_action);
}
$frm_str = '<div id="frm_error_'.$id_action.'" class="error"></div>';
if ($labelAction <> '') {
$frm_str .= '<h2 class="title">' . $labelAction . ' ' . _NUM;
} else {
$frm_str .= '<h2 class="title">'._REDIRECT_MAIL.' '._NUM;
}
$values_str = '';
if(empty($_SESSION['stockCheckbox'])){
for($i=0; $i < count($values);$i++)
{
$values_str .= $values[$i].', ';
}
}else{
for($i=0; $i < count($_SESSION['stockCheckbox']);$i++)
{
$values_str .= $_SESSION['stockCheckbox'][$i].', ';
}
}
$values_str = preg_replace('/, $/', '', $values_str);
if(_ID_TO_DISPLAY == 'res_id'){
$frm_str .= $values_str;
} else if (_ID_TO_DISPLAY == 'chrono_number'){
$chrono_number = $cr7->get_chrono_number($values_str, 'res_view_letterbox');
$frm_str .= $chrono_number;
}
$frm_str .= '</h2><br/>';
require 'modules/templates/class/templates_controler.php';
$templatesControler = new templates_controler();
$templates = array();
$EntitiesIdExclusion = array();
$entities = $entity_ctrl->getAllEntities();
$countEntities = count($entities);
//var_dump($entities);
for ($cptAllEnt = 0;$cptAllEnt<$countEntities;$cptAllEnt++) {
if (!is_integer(array_search($entities[$cptAllEnt]->__get('entity_id'), $servicesCompare))) {
array_push($EntitiesIdExclusion, $entities[$cptAllEnt]->__get('entity_id'));
}
}
$allEntitiesTree= array();
$allEntitiesTree = $ent->getShortEntityTreeAdvanced(
$allEntitiesTree, 'all', '', $EntitiesIdExclusion, 'all'
);
//Collection
if (isset($_REQUEST['coll_id']) && ! empty($_REQUEST['coll_id'])) {
$collId = trim($_REQUEST['coll_id']);
$parameters .= '&coll_id='.$_REQUEST['coll_id'];
$view = $sec->retrieve_view_from_coll_id($collId);
$table = $sec->retrieve_table_from_coll($collId);
//retrieve the process entity of document
$stmt = $db->query(
"SELECT destination FROM " . $table . " WHERE res_id in (?)", array($values_str)
);
$resultDest = $stmt->fetchObject();
$destination = $resultDest->destination;
}
if ($destination <> '') {
$templates = $templatesControler->getAllTemplatesForProcess($destination);
} else {
$templates = $templatesControler->getAllTemplatesForSelect();
}
$frm_str .='<br/><b>'._RECOMMENDATION_NOTE.':</b><br/>';
$frm_str .= '<select name="templateNotes" id="templateNotes" style="width:98%;margin-bottom: 10px;background-color: White;border: 1px solid #999;color: #666;text-align: left;" '
. 'onchange="addTemplateToNote($(\'templateNotes\').value, \''
. $_SESSION['config']['businessappurl'] . 'index.php?display=true'
. '&module=templates&page=templates_ajax_content_for_notes\');document.getElementById(\'notes\').focus();">';
$frm_str .= '<option value="">' . _SELECT_NOTE_TEMPLATE . '</option>';
for ($i=0;$i<count($templates);$i++) {
if ($templates[$i]['TYPE'] == 'TXT' && ($templates[$i]['TARGET'] == 'notes' || $templates[$i]['TARGET'] == '')) {
$frm_str .= '<option value="';
$frm_str .= $templates[$i]['ID'];
$frm_str .= '">';
$frm_str .= $templates[$i]['LABEL'];
}
$frm_str .= '</option>';
}
$frm_str .= '</select><br />';
$frm_str .= '<textarea style="width:98%;height:60px;resize:none;" name="notes" id="notes" onblur="document.getElementById(\'note_content_to_users\').value=document.getElementById(\'notes\').value.replace(/[\n]/gi, \'##\' );"></textarea>';
//var_dump($allEntitiesTree);
/*$frm_str .= '<hr />';
$frm_str .= '<div class="error" id="divError" name="divError"></div>';
$frm_str .= '<div style="text-align:center;">';
$frm_str .= $avis->getListPopup($res_id, $coll_id, true,'AVIS_CIRCUIT');
$frm_str .='</div>';*/
$frm_str .='<div id="form2" style="border:none;">';
$frm_str .= '<form name="frm_redirect_dep" id="frm_redirect_dep" method="post" class="forms" action="#">';
$frm_str .= '<input type="hidden" name="chosen_action" id="chosen_action" value="end_action" />';
$frm_str .= '<input type="hidden" name="note_content_to_users" id="note_content_to_users" />';
$frm_str .='</form>';
$frm_str .='</div>';
$frm_str .='<hr />';
$frm_str .='<div align="center">';
$frm_str .=' <input type="button" name="redirect_dep" value="'._VALIDATE.'" id="redirect_dep" class="button" onclick="valid_action_form( \'frm_redirect_dep\', \''.$path_manage_action.'\', \''. $id_action.'\', \''.$values_str.'\', \''.$table.'\', \''.$module.'\', \''.$coll_id.'\', \''.$mode.'\');" />';
$frm_str .=' <input type="button" name="cancel" id="cancel" class="button" value="'._CANCEL.'" onclick="pile_actions.action_pop();actions_status.action_pop();destroyModal(\'modal_'.$id_action.'\');"/>';
$frm_str .='</div>';
return addslashes($frm_str);
}
function check_form($form_id,$values)
{
$note_content_to_users = get_value_fields($values, 'note_content_to_users');
if($note_content_to_users == null || $note_content_to_users == ''){
$_SESSION['action_error'] = _AVIS_NOTE. " " . _MANDATORY;
return false;
}
return true;
}
function manage_form($arr_id, $history, $id_action, $label_action, $status, $coll_id, $table, $values_form )
{
/*
Redirect to dep:
$values_form = array (size=3)
0 =>
array (size=2)
'ID' => string 'chosen_action' (length=13)
'VALUE' => string 'end_action' (length=10)
1 =>
array (size=2)
'ID' => string 'department' (length=10)
'VALUE' => string 'DGA' (length=3)
2 =>
array (size=2)
'ID' => string 'redirect_dep' (length=12)
'VALUE' => string 'Rediriger' (length=9)
Redirect to user:
$values_form = array (size=3)
0 =>
array (size=2)
'ID' => string 'chosen_action' (length=13)
'VALUE' => string 'end_action' (length=10)
1 =>
array (size=2)
'ID' => string 'user' (length=4)
'VALUE' => string 'aackermann' (length=10)
2 =>
array (size=2)
'ID' => string 'redirect_user' (length=13)
'VALUE' => string 'Rediriger' (length=9)
*/
if(empty($values_form) || count($arr_id) < 1)
return false;
require_once('modules/notes/class/notes_controler.php');
require_once('modules/avis/class/avis_controler.php');
$note = new notes_controler();
$db = new Database();
$formValues = array();
for($i=0; $i<count($values_form); $i++) {
$formValue = $values_form[$i];
$id = $formValue['ID'];
$value = $formValue['VALUE'];
$formValues[$id] = $value;
}
# save note
if($formValues['note_content_to_users'] != ''){
//Add notes
$userIdTypist = $_SESSION['user']['UserId'];
$content_note = $formValues['note_content_to_users'];
$content_note = str_replace("##", "\n", $content_note);
$content_note = str_replace(";", ".", $content_note);
$content_note = str_replace("--", "-", $content_note);
$content_note = $content_note;
$content_note = '[' . _TO_AVIS . '] ' . $content_note;
$note->addNote($res_id, $coll_id, $content_note);
}
$db = new Database();
$_SESSION['action_error'] = '';
$result = '';
$coll_id = $_SESSION['current_basket']['coll_id'];
$res_id = $arr_id[0];
require_once("core/class/class_security.php");
$sec = new security();
$table = $sec->retrieve_table_from_coll($coll_id);
$circuit_avis = new avis_controler();
$sequence = $circuit_avis->getCurrentStepAvis($res_id, $coll_id, 'AVIS_CIRCUIT');
$stepDetails = $circuit_avis->getStepDetailsAvis($res_id, $coll_id, 'AVIS_CIRCUIT', $sequence);
$message = '';
//enables to process the avis if i am not the item_id
if ($stepDetails['item_id'] <> $_SESSION['user']['UserId']) {
$stmt = $db->query("UPDATE listinstance SET process_date = CURRENT_TIMESTAMP "
. " WHERE listinstance_id = ? AND item_mode = ? AND res_id = ? AND item_id = ? AND difflist_type = ?"
, array($stepDetails['listinstance_id'], $stepDetails['item_mode'], $res_id, $stepDetails['item_id'], 'AVIS_CIRCUIT'));
$message = _AVIS_SENT . " " . _BY ." " . $_SESSION['user']['UserId']
. " " . _INSTEAD_OF . " " . $stepDetails['item_id'];
} else {
$stmt = $db->query("UPDATE listinstance SET process_date = CURRENT_TIMESTAMP "
. " WHERE listinstance_id = ? AND item_mode = ? AND res_id = ? AND item_id = ? AND difflist_type = ?"
, array($stepDetails['listinstance_id'], $stepDetails['item_mode'], $res_id, $_SESSION['user']['UserId'], 'AVIS_CIRCUIT'));
}
// if (
//
// $sequence == $circuit_avis->nbAvis($res_id, $coll_id)-1
//
// ){
//
// $stmt = $db->query("SELECT status_id FROM groupbasket_status WHERE group_id = ? and basket_id = ? and action_id = ?"
//
// ,array($_SESSION['current_basket']['group_id'],$_SESSION['current_basket']['id'],$id_action));
//
//
//
// if($status = $stmt->fetchObject()){
//
// $mailStatus = $status->status_id;
//
// $stmt = $db->query("UPDATE res_letterbox SET status = ? WHERE res_id = ? ", array($mailStatus, $res_id));
//
// }
//
// } else {
//
// //$mailStatus = 'EAVIS';
//
// }
$circuit_avis->processAvis($res_id);
# save note
if($formValues['note_content_to_users'] != ''){
//Add notes
$nb_avis = $sequence +1;
$userIdTypist = $stepDetails['item_id'];
$content_note = $formValues['note_content_to_users'];
$content_note = str_replace("##", "\n", $content_note);
$content_note = str_replace(";", ".", $content_note);
$content_note = str_replace("--", "-", $content_note);
$content_note = $content_note;
$content_note = '[' . _AVIS_NB . $nb_avis . '] ' . $content_note;
$note->addNote($res_id, $coll_id, $content_note, $userIdTypist);
}
return array('result' => $res_id.'#', 'history_msg' => $message);
}
/**
* 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<count($values);$i++)
{
if($values[$i]['ID'] == $field)
{
return $values[$i]['VALUE'];
}
}
return false;
}
?>
<?php
/**
* Copyright Maarch since 2008 under licence GPLv3.
* See LICENCE.txt file at the root folder for more details.
* This file is part of Maarch software.
* @brief send_to_avis
* @author dev <dev@maarch.org>
* @ingroup core
*/
$confirm = false;
$etapes = array('form');
$frm_width = '650px';
$frm_height = '90%';
require "modules/entities/entities_tables.php";
require_once "modules/entities/class/EntityControler.php";
require_once 'modules/entities/class/class_manage_entities.php';
require_once "modules" . DIRECTORY_SEPARATOR . "avis" . DIRECTORY_SEPARATOR
. "class" . DIRECTORY_SEPARATOR
. "avis_controler.php";
require_once "apps".DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR
."class".DIRECTORY_SEPARATOR."class_lists.php";
function get_form_txt($values, $path_manage_action, $id_action, $table, $module, $coll_id, $mode)
{
include_once 'apps/' . $_SESSION['config']['app_id'] . '/class/class_chrono.php';
$cr7 = new chrono();
include_once 'apps/maarch_entreprise/definition_mail_categories.php';
$res_id = $values[0];
// $data = get_general_data($coll_id, $res_id, 'minimal');
//print_r($data);
$avis = new avis_controler();
$ent = new entity();
$entity_ctrl = new EntityControler();
$services = array();
$servicesCompare = array();
$db = new Database();
$sec = new security();
$labelAction = '';
if ($id_action <> '') {
$stmt = $db->query("select label_action from actions where id = ?", array($id_action));
$resAction = $stmt->fetchObject();
$labelAction = functions::show_string($resAction->label_action);
}
$frm_str = '<div id="frm_error_' . $id_action . '" class="error"></div>';
if ($labelAction <> '') {
$frm_str .= '<h2 class="title">' . $labelAction . ' ' . _NUM;
} else {
$frm_str .= '<h2 class="title">' . _REDIRECT_MAIL . ' ' . _NUM;
}
$values_str = '';
if (empty($_SESSION['stockCheckbox'])) {
for ($i = 0; $i < count($values); $i++) {
$values_str .= $values[$i] . ', ';
}
} else {
for ($i = 0; $i < count($_SESSION['stockCheckbox']); $i++) {
$values_str .= $_SESSION['stockCheckbox'][$i] . ', ';
}
}
$values_str = preg_replace('/, $/', '', $values_str);
if (_ID_TO_DISPLAY == 'res_id') {
$frm_str .= $values_str;
} else if (_ID_TO_DISPLAY == 'chrono_number') {
$chrono_number = $cr7->get_chrono_number($values_str, 'res_view_letterbox');
$frm_str .= $chrono_number;
}
$frm_str .= '</h2><br/>';
include 'modules/templates/class/templates_controler.php';
$templatesControler = new templates_controler();
$templates = array();
$EntitiesIdExclusion = array();
$entities = $entity_ctrl->getAllEntities();
$countEntities = count($entities);
//var_dump($entities);
for ($cptAllEnt = 0; $cptAllEnt < $countEntities; $cptAllEnt++) {
if (!is_integer(array_search($entities[$cptAllEnt]->__get('entity_id'), $servicesCompare))) {
array_push($EntitiesIdExclusion, $entities[$cptAllEnt]->__get('entity_id'));
}
}
$allEntitiesTree = array();
$allEntitiesTree = $ent->getShortEntityTreeAdvanced(
$allEntitiesTree, 'all', '', $EntitiesIdExclusion, 'all'
);
//Collection
if (isset($_REQUEST['coll_id']) && ! empty($_REQUEST['coll_id'])) {
$collId = trim($_REQUEST['coll_id']);
$parameters .= '&coll_id='.$_REQUEST['coll_id'];
$view = $sec->retrieve_view_from_coll_id($collId);
$table = $sec->retrieve_table_from_coll($collId);
//retrieve the process entity of document
$stmt = $db->query(
"SELECT destination FROM " . $table . " WHERE res_id in (?)", array($values_str)
);
$resultDest = $stmt->fetchObject();
$destination = $resultDest->destination;
}
if ($destination <> '') {
$templates = $templatesControler->getAllTemplatesForProcess($destination);
} else {
$templates = $templatesControler->getAllTemplatesForSelect();
}
$frm_str .='<b>' . _OPINION_LIMIT_DATE . ':</b><br/>';
$frm_str .= '<input name="opinion_limit_date_tr" type="text" '
. 'id="opinion_limit_date_tr" value="" placeholder="JJ-MM-AAAA" onfocus="checkRealDateAvis();" onChange="checkRealDateAvis();" onclick="clear_error(\'frm_error_'
. $actionId . '\');showCalender(this);" onblur="document.getElementById(\'opinion_limit_date\').value=document.getElementById(\'opinion_limit_date_tr\').value;"/>';
$frm_str .='<br/>';
$frm_str .='<br/><b>' . _RECOMMENDATION_NOTE . ':</b><br/>';
$frm_str .= '<select name="templateNotes" id="templateNotes" style="width:98%;margin-bottom: 10px;background-color: White;border: 1px solid #999;color: #666;text-align: left;" '
. 'onchange="addTemplateToNote($(\'templateNotes\').value, \''
. $_SESSION['config']['businessappurl'] . 'index.php?display=true'
. '&module=templates&page=templates_ajax_content_for_notes\');document.getElementById(\'notes\').focus();">';
$frm_str .= '<option value="">' . _SELECT_NOTE_TEMPLATE . '</option>';
for ($i = 0; $i < count($templates); $i++) {
if ($templates[$i]['TYPE'] == 'TXT' && ($templates[$i]['TARGET'] == 'notes' || $templates[$i]['TARGET'] == '')) {
$frm_str .= '<option value="';
$frm_str .= $templates[$i]['ID'];
$frm_str .= '">';
$frm_str .= $templates[$i]['LABEL'];
}
$frm_str .= '</option>';
}
$frm_str .= '</select><br />';
$frm_str .= '<textarea style="width:98%;height:60px;resize:none;" name="notes" id="notes" onblur="document.getElementById(\'note_content_to_users\').value=document.getElementById(\'notes\').value.replace(/[\n]/gi, \'##\' );"></textarea>';
//var_dump($allEntitiesTree);
$frm_str .= '<hr />';
$frm_str .= '<div class="error" id="divError" name="divError"></div>';
$frm_str .= '<div style="text-align:center;">';
$frm_str .= $avis->getList($res_id, $coll_id, true, 'AVIS_CIRCUIT');
$frm_str .='</div>';
$frm_str .='<div id="form2" style="border:none;">';
$frm_str .= '<form name="frm_redirect_dep" id="frm_redirect_dep" method="post" class="forms" action="#">';
$frm_str .= '<input type="hidden" name="chosen_action" id="chosen_action" value="end_action" />';
$frm_str .= '<input type="hidden" name="note_content_to_users" id="note_content_to_users" />';
$frm_str .= '<input type="hidden" name="opinion_limit_date" id="opinion_limit_date" />';
$frm_str .= '<input type="hidden" name="doc_date" id="doc_date" value ="' . $data['doc_date'] . '"/>';
$frm_str .= '<input type="hidden" name="process_limit_date" id="process_limit_date" value ="' . $data['process_limit_date'] . '" />';
$frm_str .='</form>';
$frm_str .='</div>';
$frm_str .='<hr />';
$frm_str .='<div align="center">';
$frm_str .=' <input type="button" name="redirect_dep" value="' . _VALIDATE . '" id="redirect_dep" class="button" onclick="updateAvisWorkflow(' . $res_id . ');valid_action_form( \'frm_redirect_dep\', \'' . $path_manage_action . '\', \'' . $id_action . '\', \'' . $values_str . '\', \'' . $table . '\', \'' . $module . '\', \'' . $coll_id . '\', \'' . $mode . '\');" />';
$frm_str .=' <input type="button" name="cancel" id="cancel" class="button" value="' . _CANCEL . '" onclick="pile_actions.action_pop();actions_status.action_pop();destroyModal(\'modal_' . $id_action . '\');"/>';
$frm_str .='</div>';
return addslashes($frm_str);
}
function check_form($form_id, $values)
{
$opinionLimitDate = get_value_fields($values, 'opinion_limit_date');
$note_content_to_users = get_value_fields($values, 'note_content_to_users');
if ($opinionLimitDate == null || $opinionLimitDate == '') {
$_SESSION['action_error'] = _OPINION_LIMIT_DATE . " " . _MANDATORY;
return false;
} else if ($note_content_to_users == null || $note_content_to_users == '') {
$_SESSION['action_error'] = _NOTE . " " . _MANDATORY;
return false;
}
$avis = new avis_controler();
$curr_avis_wf = $avis->getWorkflow($_SESSION['doc_id'], $_SESSION['current_basket']['coll_id'], 'AVIS_CIRCUIT');
if (count($curr_avis_wf['avis']) == 0) {
$_SESSION['action_error'] = _AVIS_WORKFLOW . " " . _MANDATORY;
return false;
}
return true;
}
function manage_form($arr_id, $history, $id_action, $label_action, $status, $coll_id, $table, $values_form)
{
/*
Redirect to dep:
$values_form = array (size=3)
0 =>
array (size=2)
'ID' => string 'chosen_action' (length=13)
'VALUE' => string 'end_action' (length=10)
1 =>
array (size=2)
'ID' => string 'department' (length=10)
'VALUE' => string 'DGA' (length=3)
2 =>
array (size=2)
'ID' => string 'redirect_dep' (length=12)
'VALUE' => string 'Rediriger' (length=9)
Redirect to user:
$values_form = array (size=3)
0 =>
array (size=2)
'ID' => string 'chosen_action' (length=13)
'VALUE' => string 'end_action' (length=10)
1 =>
array (size=2)
'ID' => string 'user' (length=4)
'VALUE' => string 'aackermann' (length=10)
2 =>
array (size=2)
'ID' => string 'redirect_user' (length=13)
'VALUE' => string 'Rediriger' (length=9)
*/
if (empty($values_form) || count($arr_id) < 1)
return false;
$res_id = $arr_id[0];
include_once 'modules/entities/class/class_manage_listdiff.php';
include_once 'modules/notes/class/notes_controler.php';
include_once 'modules/avis/class/avis_controler.php';
$note = new notes_controler();
$db = new Database();
$formValues = array();
for ($i = 0; $i < count($values_form); $i++) {
$formValue = $values_form[$i];
$id = $formValue['ID'];
$value = $formValue['VALUE'];
$formValues[$id] = $value;
}
//save note
if ($formValues['note_content_to_users'] != '') {
//Add notes
$userIdTypist = $_SESSION['user']['UserId'];
$content_note = $formValues['note_content_to_users'];
$content_note = str_replace("##", "\n", $content_note);
$content_note = str_replace(";", ".", $content_note);
$content_note = str_replace("--", "-", $content_note);
$content_note = $content_note;
$content_note = '[' . _TO_AVIS . '] ' . $content_note;
$note->addNote($res_id, $coll_id, $content_note);
}
return array('result' => implode('#', $arr_id), 'history_msg' => $message);
}
/**
* 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 < count($values); $i++) {
if ($values[$i]['ID'] == $field) {
return $values[$i]['VALUE'];
}
}
return false;
}
?>
<?php
/**
* Copyright Maarch since 2008 under licence GPLv3.
* See LICENCE.txt file at the root folder for more details.
* This file is part of Maarch software.
* @brief redirect
* @author dev <dev@maarch.org>
* @ingroup entities
*/
$confirm = false;
$etapes = array('form');
$frm_width='400px';
$frm_height = '90%';
$destination = '';
require "modules/entities/entities_tables.php";
require_once "modules/entities/class/EntityControler.php";
require_once 'modules/entities/class/class_manage_entities.php';
require_once 'apps/' . $_SESSION['config']['app_id'] . '/class/class_chrono.php';
require_once "apps".DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR ."class".DIRECTORY_SEPARATOR."class_lists.php";
function get_form_txt($values, $path_manage_action, $id_action, $table, $module, $coll_id, $mode)
{
$ent = new entity();
$entity_ctrl = new EntityControler();
$services = array();
$servicesCompare = array();
$cr7 = new chrono();
$db = new Database();
$sec = new security();
$labelAction = '';
if ($id_action <> '') {
$stmt = $db->query("select label_action from actions where id = ?", array($id_action));
$resAction = $stmt->fetchObject();
$labelAction = functions::show_string($resAction->label_action);
}
preg_match("'^ ,'", $_SESSION['user']['redirect_groupbasket_by_group'][$_SESSION['current_basket']['id']][$_SESSION['current_basket']['group_id']][$id_action]['entities'], $out);
if (is_array($out[0]) && count($out[0]) == 1) {
$_SESSION['user']['redirect_groupbasket_by_group'][$_SESSION['current_basket']['id']][$_SESSION['current_basket']['group_id']][$id_action]['entities'] = substr($_SESSION['user']['redirect_groupbasket_by_group'][$_SESSION['current_basket']['id']][$_SESSION['current_basket']['group_id']][$id_action]['entities'], 2, strlen($_SESSION['user']['redirect_groupbasket_by_group'][$_SESSION['current_basket']['id']][$_SESSION['current_basket']['group_id']][$id_action]['entities']));
}
if (!empty($_SESSION['user']['redirect_groupbasket_by_group'][$_SESSION['current_basket']['id']][$_SESSION['current_basket']['group_id']][$id_action]['entities'])) {
$stmt = $db->query("select entity_id, entity_label from ".ENT_ENTITIES." where entity_id in (".$_SESSION['user']['redirect_groupbasket_by_group'][$_SESSION['current_basket']['id']][$_SESSION['current_basket']['group_id']][$id_action]['entities'].") and enabled= 'Y' order by entity_label");
while ($res = $stmt->fetchObject()) {
array_push($services, array( 'ID' => $res->entity_id, 'LABEL' => $db->show_string($res->entity_label)));
array_push($servicesCompare, $res->entity_id);
}
}
$users = array();
if (!empty($_SESSION['user']['redirect_groupbasket_by_group'][$_SESSION['current_basket']['id']][$_SESSION['current_basket']['group_id']][$id_action]['users_entities'])) {
$stmt = $db->query("select distinct ue.user_id, u.lastname, u.firstname from ".ENT_USERS_ENTITIES." ue, ".$_SESSION['tablename']['users']." u where ue.entity_id in (".$_SESSION['user']['redirect_groupbasket_by_group'][$_SESSION['current_basket']['id']][$_SESSION['current_basket']['group_id']][$id_action]['users_entities'].") and u.user_id = ue.user_id and (u.status = 'OK' or u.status = 'ABS') order by u.lastname asc");
while ($res = $stmt->fetchObject()) {
array_push($users, array( 'ID' => $res->user_id, 'NOM' => functions::show_string($res->lastname), "PRENOM" => functions::show_string($res->firstname)));
}
}
$frm_str = '<div id="frm_error_'.$id_action.'" class="error"></div>';
if ($labelAction <> '') {
$frm_str .= '<h2 class="title">' . $labelAction . ' ' . _NUM;
} else {
$frm_str .= '<h2 class="title">'._REDIRECT_MAIL.' '._NUM;
}
$values_str = '';
if (empty($_SESSION['stockCheckbox'])) {
for ($i=0; $i<count($values); $i++) {
if (_ID_TO_DISPLAY == 'res_id') {
$values_str .= $values[$i].', ';
} elseif (_ID_TO_DISPLAY == 'chrono_number') {
$values_str .= $values[$i].', ';
$chrono_number = $cr7->get_chrono_number($values[$i], 'res_view_letterbox');
$values_str_chrn .= $chrono_number.', ';
}
}
} else {
for ($i=0; $i<count($_SESSION['stockCheckbox']); $i++) {
if (_ID_TO_DISPLAY == 'res_id') {
$values_str .= $_SESSION['stockCheckbox'][$i].', ';
} elseif (_ID_TO_DISPLAY == 'chrono_number') {
$values_str .= $_SESSION['stockCheckbox'][$i].', ';
$chrono_number = $cr7->get_chrono_number($_SESSION['stockCheckbox'][$i], 'res_view_letterbox');
$values_str_chrn .= $chrono_number.', ';
}
}
}
$values_str = preg_replace('/, $/', '', $values_str);
if (_ID_TO_DISPLAY == 'res_id') {
$frm_str .= $values_str;
} elseif (_ID_TO_DISPLAY == 'chrono_number') {
$values_str_chrn = preg_replace('/, $/', '', $values_str_chrn);
$frm_str .= $values_str_chrn;
}
$frm_str .= '</h2><br/><br/>';
include 'modules/templates/class/templates_controler.php';
$templatesControler = new templates_controler();
$templates = array();
if (!empty($_SESSION['user']['redirect_groupbasket_by_group'][$_SESSION['current_basket']['id']][$_SESSION['current_basket']['group_id']][$id_action]['entities'])) {
$EntitiesIdExclusion = array();
$entities = $entity_ctrl->getAllEntities();
$countEntities = count($entities);
for ($cptAllEnt=0; $cptAllEnt<$countEntities; $cptAllEnt++) {
if (!is_integer(array_search($entities[$cptAllEnt]->__get('entity_id'), $servicesCompare))) {
array_push($EntitiesIdExclusion, $entities[$cptAllEnt]->__get('entity_id'));
}
}
$allEntitiesTree = array();
$allEntitiesTree = $ent->getShortEntityTreeAdvanced(
$allEntitiesTree,
'all',
'',
$EntitiesIdExclusion,
'all'
);
//Collection
if (isset($_REQUEST['coll_id']) && ! empty($_REQUEST['coll_id'])) {
$collId = trim($_REQUEST['coll_id']);
$parameters .= '&coll_id='.$_REQUEST['coll_id'];
$view = $sec->retrieve_view_from_coll_id($collId);
$table = $sec->retrieve_table_from_coll($collId);
//retrieve the process entity of document
$aResId = explode(", ", $values_str);
$stmt = $db->query(
"SELECT destination FROM " . $table . " WHERE res_id in (?)",
array($aResId)
);
$resultDest = $stmt->fetchObject();
$destination = $resultDest->destination;
}
if ($destination <> '') {
$templates = $templatesControler->getAllTemplatesForProcess($destination);
} else {
$templates = $templatesControler->getAllTemplatesForSelect();
}
$frm_str .='<br/><b>'._REDIRECT_NOTE.':</b><br/>';
$frm_str .= '<select name="templateNotes" id="templateNotes" style="width:98%;margin-bottom: 10px;background-color: White;border: 1px solid #999;color: #666;text-align: left;" '
. 'onchange="addTemplateToNote($(\'templateNotes\').value, \''
. $_SESSION['config']['businessappurl'] . 'index.php?display=true'
. '&module=templates&page=templates_ajax_content_for_notes\');document.getElementById(\'notes\').focus();">';
$frm_str .= '<option value="">' . _SELECT_NOTE_TEMPLATE . '</option>';
for ($i=0; $i<count($templates); $i++) {
if ($templates[$i]['TYPE'] == 'TXT' && ($templates[$i]['TARGET'] == 'notes' || $templates[$i]['TARGET'] == '')) {
$frm_str .= '<option value="';
$frm_str .= $templates[$i]['ID'];
$frm_str .= '">';
$frm_str .= $templates[$i]['LABEL'];
}
$frm_str .= '</option>';
}
$frm_str .= '</select><br />';
$frm_str .= '<textarea style="width:98%;height:60px;resize:none;" name="notes" id="notes" onblur="setNoteRedirect()"></textarea>';
$frm_str .= '<hr />';
$frm_str .='<div id="form2" style="border:none;">';
$frm_str .= '<form name="frm_redirect_dep" id="frm_redirect_dep" method="post" class="forms" action="#">';
$frm_str .= '<input type="hidden" name="chosen_action" id="chosen_action" value="end_action" />';
$frm_str .= '<input type="hidden" name="note_content_to_dep" id="note_content_to_dep" />';
$frm_str .='<p>';
$frm_str .= '<b>'._REDIRECT_TO_OTHER_DEP.' :</b><br/>';
$frm_str .= '<select name="department" id="department" data-placeholder="'._CHOOSE_DEPARTMENT.'" onchange="change_entity(this.options[this.selectedIndex].value, \''.$_SESSION['config']['businessappurl'].'index.php?display=true&module=entities&page=load_listinstance'.'\', \'diff_list_div_redirect\', \'redirect\');" style="float:left;">';
$frm_str .='<option value=""></option>';
$countAllEntities = count($allEntitiesTree);
for ($cptEntities = 0; $cptEntities<$countAllEntities; $cptEntities++) {
if (!$allEntitiesTree[$cptEntities]['KEYWORD']) {
$frm_str .= '<option data-object_type="entity_id" value="' . $allEntitiesTree[$cptEntities]['ID'] . '"';
if ($allEntitiesTree[$cptEntities]['ID'] == $_SESSION['user']['primaryentity']['id']) {
$frm_str .= ' selected="selected"';
}
if ($allEntitiesTree[$cptEntities]['DISABLED']) {
$frm_str .= ' disabled="disabled" class="disabled_entity"';
}
$frm_str .= '>'
. $ent->show_string($allEntitiesTree[$cptEntities]['SHORT_LABEL'])
. '</option>';
}
}
$frm_str .='</select>';
$frm_str .='<script>$j("#department").chosen({width: "80%", disable_search_threshold: 10, search_contains: true,allow_single_deselect: true});document.getElementById("department").onchange();$j("#department").trigger("chosen:updated");</script>';
$frm_str .=' <input type="button" style="float:right;margin:0px;" name="redirect_dep" value="'._REDIRECT.'" id="redirect_dep" class="button" onclick="valid_action_form( \'frm_redirect_dep\', \''.$path_manage_action.'\', \''. $id_action.'\', \''.$values_str.'\', \''.$table.'\', \''.$module.'\', \''.$coll_id.'\', \''.$mode.'\');" />';
$frm_str .='<div style="clear:both;"></div>';
$frm_str .= '<div id="diff_list_div_redirect" class="scroll_div" style="height:auto;"></div>';
$frm_str .='</p>';
$frm_str .='</form>';
$frm_str .='</div>';
}
if (!empty($_SESSION['user']['redirect_groupbasket_by_group'][$_SESSION['current_basket']['id']][$_SESSION['current_basket']['group_id']][$id_action]['users_entities'])) {
$frm_str .='<hr />';
$frm_str .='<div id="form3">';
$frm_str .= '<form name="frm_redirect_user" id="frm_redirect_user" method="post" class="forms" action="#">';
$frm_str .= '<input type="hidden" name="chosen_action" id="chosen_action" value="end_action" />';
$frm_str .= '<input type="hidden" name="note_content_to_user" id="note_content_to_user" value="" />';
$frm_str .='<p>';
$frm_str .='<label><b>'._REDIRECT_TO_USER.' :</b></label>';
$frm_str .='<select name="user" id="user" style="float:left;" data-placeholder="'._CHOOSE_USER2.'">';
$frm_str .='<option value=""></option>';
for ($i=0; $i < count($users); $i++) {
$frm_str .='<option value="'.$users[$i]['ID'].'">'.$users[$i]['NOM'].' '.$users[$i]['PRENOM'].'</option>';
}
$frm_str .='</select>';
$frm_str .='<script>$j("#user").chosen({width: "80%", disable_search_threshold: 10, search_contains: true,allow_single_deselect: true});</script>';
$frm_str .=' <input type="button" style="float:right;margin:0px;" name="redirect_user" id="redirect_user" value="'
._REDIRECT
. '" class="button" onclick="valid_action_form( \'frm_redirect_user\', \''
. $path_manage_action . '\', \'' . $id_action . '\', \'' . $values_str . '\', \'' . $table . '\', \'' . $module . '\', \'' . $coll_id . '\', \'' . $mode . '\');" />';
$frm_str .='</p>';
$frm_str .='<div style="clear:both;"></div>';
$frm_str .='</form>';
$frm_str .='</div>';
}
$frm_str .='<hr />';
$frm_str .='<div align="center">';
$frm_str .='<input type="button" name="cancel" id="cancel" class="button" value="'._CANCEL.'" onclick="pile_actions.action_pop();destroyModal(\'modal_'.$id_action.'\');"/>';
$frm_str .='</div>';
return addslashes($frm_str);
}
function check_form($form_id, $values)
{
if ($form_id == 'frm_redirect_dep') {
$dep = get_value_fields($values, 'department');
if ($dep == '') {
$_SESSION['action_error'] = _MUST_CHOOSE_DEP;
return false;
} elseif (empty($_SESSION['redirect']['diff_list']['dest']['users'][0]) || ! isset($_SESSION['redirect']['diff_list']['dest']['users'][0])) {
$_SESSION['action_error'] = _DEST . " " . _MANDATORY;
return false;
} else {
return true;
}
} elseif ($form_id == 'frm_redirect_user') {
$user = get_value_fields($values, 'user');
if ($user == '') {
$_SESSION['action_error'] = _MUST_CHOOSE_USER;
return false;
} else {
return true;
}
} else {
$_SESSION['action_error'] = _FORM_ERROR;
return false;
}
}
function manage_form($arr_id, $history, $id_action, $label_action, $status, $coll_id, $table, $values_form)
{
/*
Redirect to dep:
$values_form = array (size=3)
0 =>
array (size=2)
'ID' => string 'chosen_action' (length=13)
'VALUE' => string 'end_action' (length=10)
1 =>
array (size=2)
'ID' => string 'department' (length=10)
'VALUE' => string 'DGA' (length=3)
2 =>
array (size=2)
'ID' => string 'redirect_dep' (length=12)
'VALUE' => string 'Rediriger' (length=9)
Redirect to user:
$values_form = array (size=3)
0 =>
array (size=2)
'ID' => string 'chosen_action' (length=13)
'VALUE' => string 'end_action' (length=10)
1 =>
array (size=2)
'ID' => string 'user' (length=4)
'VALUE' => string 'aackermann' (length=10)
2 =>
array (size=2)
'ID' => string 'redirect_user' (length=13)
'VALUE' => string 'Rediriger' (length=9)
*/
if (empty($values_form) || count($arr_id) < 1) {
return false;
}
include_once 'modules/entities/class/class_manage_listdiff.php';
$diffList = new diffusion_list();
$db = new Database();
$formValues = array();
for ($i=0; $i<count($values_form); $i++) {
$formValue = $values_form[$i];
$id = $formValue['ID'];
$value = $formValue['VALUE'];
$formValues[$id] = $value;
}
// 1 : Redirect to user :
// - create new listinstance from scratch with only dest user
// - do not change destination
if (isset($formValues['redirect_user'])) {
$userId = $formValues['user'];
// Select new_dest user info
$stmt = $db->query(
"select u.user_id, u.firstname, u.lastname, e.entity_id, e.entity_label "
. "FROM " . $_SESSION['tablename']['users'] . " u, " . ENT_ENTITIES . " e, "
. ENT_USERS_ENTITIES . " ue WHERE u.status <> 'DEL' and u.status != 'SPD' and"
. " e.entity_id = ue.entity_id and u.user_id = ue.user_id and"
. " e.enabled = 'Y' and ue.primary_entity='Y' and u.user_id = ?",
array($userId)
);
$user = $stmt->fetchObject();
// Create new listinstance
$_SESSION['redirect']['diff_list'] = array();
$_SESSION['redirect']['diff_list']['difflist_type'] = 'entity_id';
$_SESSION['redirect']['diff_list']['dest']['users'][0] = array(
'user_id' => $userId,
'lastname' => $user->lastname,
'firstname' => $user->firstname,
'entity_id' => $user->entity_id,
'viewed' => 0,
'visible' => 'Y',
'difflist_type' => 'entity_id'
);
$message = ' (' . _REDIRECT_TO_USER_OK . ': ' . $userId . ')';
} elseif (isset($formValues['redirect_dep'])) {
// 2 : Redirect to departement (+ dest user)
// - listinstance has laready been loaded when selecting entity
// - get entity_id that will update destination
$entityId = $formValues['department'];
$stmt = $db->query("SELECT entity_label FROM entities WHERE entity_id = ?", array($entityId));
$list = $stmt->fetchObject();
$entity_label = $list->entity_label;
$message = " (" . _REDIRECT_TO_DEP_OK . ": " . $entity_label . ')';
}
// 1 + 2 :
// - update dest_user
// - move former dest user to copy if requested
// - finally save listinstance
for ($i=0; $i<count($arr_id); $i++) {
$new_difflist = $_SESSION['redirect']['diff_list'];
// Fix lorsque l'on redirige vers une entité qui n'a pas de liste de diffusion par défaut
if (empty($new_difflist['difflist_type'])) {
$new_difflist['difflist_type'] = 'entity_id';
}
$res_id = $arr_id[$i];
// update dest_user
$new_dest = $new_difflist['dest']['users'][0]['user_id'];
if ($new_dest) {
if ($formValues['note_content_to_user'] != '') {
//Add notes
$userIdTypist = $_SESSION['user']['UserId'];
$content_note = $formValues['note_content_to_user'];
$content_note = str_replace(";", ".", $content_note);
$content_note = str_replace("--", "-", $content_note);
$content_note = str_replace("___", "\n", $content_note);
$stmt = $db->query(
"INSERT INTO notes (identifier, user_id, "
. "creation_date, note_text ) VALUES (?,?,CURRENT_TIMESTAMP,?)",
array($res_id,$userIdTypist,$content_note)
);
}
// Update destination if needed
$resEntities = \User\models\UserEntityModel::get(['select' => ['entity_id', 'primary_entity'], 'where' => ['user_id = ?'], 'data' => [$new_dest]]);
$mailDestination = \Resource\models\ResModel::getById(['select' => ['destination'], 'resId' => $res_id]);
$entityFound = false;
$primaryEntity = '';
foreach ($resEntities as $key => $value) {
if ($mailDestination['destination'] == $value['entity_id']) {
$entityFound = true;
}
if ($value['primary_entity'] == 'Y') {
$primaryEntity = $value['entity_id'];
}
}
if ($entityFound) {
$stmt = $db->query('update res_letterbox set dest_user = ? where res_id = ?', array($new_dest, $res_id));
} else {
$stmt = $db->query('update res_letterbox set dest_user = ?, destination = ? where res_id = ?', array($new_dest, $primaryEntity, $res_id));
}
// If new dest was in other roles, get number of views
$stmt = $db->query(
"select viewed"
. " from " . $_SESSION['tablename']['ent_listinstance']
. " where coll_id = ? and res_id = ? and item_type = 'user_id' and item_id = ?",
array($coll_id,$res_id,$new_dest)
);
$res = $stmt->fetchObject();
$viewed = $res->viewed;
$new_difflist['dest']['users'][0]['viewed'] = (integer)$viewed;
}
if ($formValues['note_content_to_dep'] != '') {
//Add notes
$userIdTypist = $_SESSION['user']['UserId'];
$content_note = $formValues['note_content_to_dep'];
$content_note = str_replace(";", ".", $content_note);
$content_note = str_replace("--", "-", $content_note);
$content_note = str_replace("___", "\n", $content_note);
$stmt = $db->query(
"INSERT INTO notes (identifier, user_id, "
. "creation_date, note_text ) VALUES (?,?,CURRENT_TIMESTAMP,?)",
array($res_id, $userIdTypist, $content_note)
);
}
$new_difflist = $diffList->list_difflist_roles_to_keep($res_id, $coll_id, $new_difflist['difflist_type'], $new_difflist);
// If feature activated, put old dest in copy
$parameter = \Parameter\models\ParameterModel::getById(['select' => ['param_value_int'], 'id' => 'keepDestForRedirection']);
if (!empty($parameter['param_value_int'])) {
// Get old dest
$stmt = $db->query(
"select * "
. " from " . $_SESSION['tablename']['ent_listinstance']
. " where coll_id = ? and res_id = ? and item_type = 'user_id' and item_mode = 'dest'",
array($coll_id, $res_id)
);
$old_dest = $stmt->fetchObject();
if ($old_dest) {
// try to find old dest in copies already
$found = false;
if (isset($new_difflist['copy']['users'])) {
for ($ci=0; $ci<count($new_difflist['copy']['users']); $ci++) {
// If in copies before, add number of views as dest to number of views as copy
if ($new_difflist['copy']['users'][$ci]['user_id'] == $old_dest->item_id) {
$found = true;
$new_difflist['copy']['users'][$ci]['viewed'] =
$new_difflist['copy']['users'][$ci]['viewed'] + (integer)$old_dest->viewed;
break;
}
}
//re-built session without dest in copy
$tab=array();
for ($ci=0; $ci<count($new_difflist['copy']['users']); $ci++) {
if ($new_difflist['copy']['users'][$ci]['user_id'] != $new_dest) {
array_push(
$tab,
array(
'user_id' => $new_difflist['copy']['users'][$ci]['user_id'],
'viewed' => (integer)$new_difflist['copy']['users'][$ci]['viewed'],
'visible' => 'Y',
'difflist_type' => $new_difflist['copy']['users'][$ci]['viewed']
)
);
}
}
$new_difflist['copy']['users']=$tab;
} else {
if (!isset($new_difflist['copy'])) {
$new_difflist['copy'] = array();
}
$new_difflist['copy']['users'] = array();
}
if (!$found) {
array_push(
$new_difflist['copy']['users'],
array(
'user_id' => $old_dest->item_id,
'viewed' => (integer)$old_dest->viewed,
'visible' => 'Y',
'difflist_type' => $new_difflist['difflist_type']
)
);
}
}
}
// Save listinstance
$diffList->save_listinstance(
$new_difflist,
$new_difflist['difflist_type'],
$coll_id,
$res_id,
$_SESSION['user']['UserId'],
$_SESSION['user']['primaryentity']['id']
);
}
// Pb with action chain : main action page is saved after this.
// if process, $_SESSION['process']['diff_list'] will override this one
$_SESSION['ListDiffFromRedirect'] = true;
$_SESSION['process']['diff_list'] = $new_difflist;
$_SESSION['action_error'] = $message;
return array('result' => implode('#', $arr_id), 'history_msg' => $message);
// OLD SCRIPT
$list = new diffusion_list();
$arr_list = '';
for ($j=0; $j<count($values_form); $j++) {
$queryEntityLabel = "SELECT entity_label FROM entities WHERE entity_id=?";
$stmt = $db->query($queryEntityLabel, array($values_form[$j]['VALUE']));
while ($entityLabel = $stmt->fetchObject()) {
$zeEntityLabel = $entityLabel->entity_label;
}
$msg = _TO." : ".$zeEntityLabel." (".$values_form[$j]['VALUE'].")";
if ($values_form[$j]['ID'] == "department") {
for ($i=0; $i < count($arr_id); $i++) {
$arr_list .= $arr_id[$i].'#';
$stmt = $db->query("update ".$table." set destination = ? where res_id = ?", array($values_form[$j]['VALUE'],$arr_id[$i]));
if (isset($_SESSION['redirect']['diff_list']['dest']['users'][0]['user_id']) && !empty($_SESSION['redirect']['diff_list']['dest']['users'][0]['user_id'])) {
$stmt = $db->query("update ".$table." set dest_user = ? where res_id = ?", array($_SESSION['redirect']['diff_list']['dest']['user_id'],$arr_id[$i]));
}
$newDestViewed = 0;
// Récupère le nombre de fois où le futur destinataire principal a vu le document
$stmt = $db->query("select viewed from ".$_SESSION['tablename']['ent_listinstance']." where coll_id = ? and res_id = ? and item_type = 'user_id' and item_id = ?", array($coll_id,$arr_id[$i],$_SESSION['redirect']['diff_list']['dest']['users'][0]['user_id']));
//$db->show();
$res = $stmt->fetchObject();
if ($res->viewed <> "") {
$_SESSION['redirect']['diff_list']['dest']['users'][0]['viewed'] = $res->viewed;
$newDestViewed = $res->viewed;
}
$parameter = \Parameter\models\ParameterModel::getById(['select' => ['param_value_int'], 'id' => 'keepDestForRedirection']);
if (!empty($parameter['param_value_int'])) {
$lastDestViewed = 0;
// Récupère le nombre de fois où l'ancien destinataire principal a vu le document
$stmt = $db->query("select viewed from ".$_SESSION['tablename']['ent_listinstance']." where coll_id = ? and res_id = ? and item_type = 'user_id' and item_mode = 'dest'", array($coll_id,$arr_id[$i]));
$res = $stmt->fetchObject();
if ($res->viewed <> "") {
$lastDestViewed = $res->viewed;
}
for ($cptCopy=0;$cptCopy<count($_SESSION['redirect']['diff_list']['copy']['users']);$cptCopy++) {
if ($_SESSION['redirect']['diff_list']['copy']['users'][$cptCopy]['user_id'] == $_SESSION['user']['UserId']) {
$_SESSION['redirect']['diff_list']['copy']['users'][$cptCopy]['viewed'] = $lastDestViewed;
}
}
array_push($_SESSION['redirect']['diff_list']['copy']['users'], array('user_id' => $_SESSION['user']['UserId'], 'lastname' => $_SESSION['user']['LastName'], 'firstname' => $_SESSION['user']['FirstName'], 'entity_id' => $_SESSION['user']['primaryentity']['id'], 'viewed' => $lastDestViewed));
}
$params = array('mode'=> 'listinstance', 'table' => $_SESSION['tablename']['ent_listinstance'], 'coll_id' => $coll_id, 'res_id' => $arr_id[$i], 'user_id' => $_SESSION['user']['UserId'], 'concat_list' => true);
$list->load_list_db($_SESSION['redirect']['diff_list'], $params);
}
$_SESSION['action_error'] = _REDIRECT_TO_DEP_OK;
return array('result' => $arr_list, 'history_msg' => $msg );
} elseif ($values_form[$j]['ID'] == "user") {
for ($i=0;$i<count($arr_id);$i++) {
// Update listinstance
$difflist['dest'] = array();
$difflist['copy'] = array();
$difflist['copy']['users'] = array();
$difflist['copy']['entities'] = array();
$difflist['dest']['users'][0]['user_id'] = $values_form[$j]['VALUE'];
$arr_list .= $arr_id[$i].'#';
// Récupère le nombre de fois où le futur destinataire principal a vu le document
$stmt = $db->query("select viewed from ".$_SESSION['tablename']['ent_listinstance']." where coll_id = ? and res_id = ? and item_type = 'user_id' and item_id = ?", array($coll_id,$arr_id[$i],$difflist['dest']['users'][0]['user_id']));
//$db->show();
$res = $stmt->fetchObject();
$newDestViewed = 0;
if ($res->viewed <> "") {
$difflist['dest']['users'][0]['viewed'] = $res->viewed;
$newDestViewed = $res->viewed;
}
// Récupère le nombre de fois où l'ancien destinataire principal a vu le document
$stmt = $db->query("select viewed from ".$_SESSION['tablename']['ent_listinstance']." where coll_id = ? and res_id = ? and item_type = 'user_id' and item_mode = 'dest'", array($coll_id,$arr_id[$i]));
$res = $stmt->fetchObject();
$lastDestViewed = 0;
if ($res->viewed <> "") {
$lastDestViewed = $res->viewed;
}
// Update dest_user in res table
$stmt = $db->query("update ".$table." set dest_user = ? where res_id = ?", array($values_form[$j]['VALUE'],$arr_id[$i]));
$list->set_main_dest($values_form[$j]['VALUE'], $coll_id, $arr_id[$i], 'DOC', 'user_id', $newDestViewed);
$parameter = \Parameter\models\ParameterModel::getById(['select' => ['param_value_int'], 'id' => 'keepDestForRedirection']);
if (!empty($parameter['param_value_int'])) {
array_push($difflist['copy']['users'], array('user_id' => $_SESSION['user']['UserId'], 'lastname' => $_SESSION['user']['LastName'], 'firstname' => $_SESSION['user']['FirstName'], 'entity_id' => $_SESSION['user']['primaryentity']['id'], 'viewed' => $lastDestViewed));
}
$params = array('mode'=> 'listinstance', 'table' => $_SESSION['tablename']['ent_listinstance'], 'coll_id' => $coll_id, 'res_id' => $arr_id[$i], 'user_id' => $_SESSION['user']['UserId'], 'concat_list' => true);
$list->load_list_db($difflist, $params);
}
$_SESSION['action_error'] = _REDIRECT_TO_USER_OK;
return array('result' => $arr_list, 'history_msg' => $msg);
}
}
return false;
}
/**
* 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<count($values);$i++) {
if ($values[$i]['ID'] == $field) {
return $values[$i]['VALUE'];
}
}
return false;
}
<?php
/**
* Copyright Maarch since 2008 under licence GPLv3.
* See LICENCE.txt file at the root folder for more details.
* This file is part of Maarch software.
* @brief interrupt_visa
* @author dev <dev@maarch.org>
* @ingroup visa
*/
require_once 'modules/visa/class/class_modules_tools.php';
$visa = new visa();
if ($visa->currentUserSignRequired($_SESSION['doc_id']) == 'true') {
$label_action .=" ("._NO_USER_SIGNED_DOC.")";
}
$confirm = true;
$etapes = ['empty_error'];
function manage_empty_error($arr_id, $history, $id_action, $label_action, $status)
{
$db = new Database();
$_SESSION['action_error'] = '';
$coll_id = $_SESSION['current_basket']['coll_id'];
$res_id = $arr_id[0];
$circuit_visa = new visa();
$sequence = $circuit_visa->getCurrentStep($res_id, $coll_id, 'VISA_CIRCUIT');
$stepDetails = $circuit_visa->getStepDetails($res_id, $coll_id, 'VISA_CIRCUIT', $sequence);
// Person who ends the workflow
if ($stepDetails['listinstance_id']) {
$db->query(
'UPDATE listinstance SET process_date = CURRENT_TIMESTAMP, process_comment = ? WHERE listinstance_id = ? AND item_id = ? AND res_id = ? AND difflist_type = ?',
["A terminé le circuit avec l'action {$label_action}", $stepDetails['listinstance_id'], $stepDetails['item_id'], $res_id, 'VISA_CIRCUIT']
);
} else {
$db->query(
'UPDATE listinstance SET process_date = CURRENT_TIMESTAMP, process_comment = ? WHERE res_id = ? AND difflist_type = ? AND item_mode = ?',
["A terminé le circuit avec l'action {$label_action}", $res_id, 'VISA_CIRCUIT', 'sign']
);
}
// People remaining in the workflow
$db->query(
'UPDATE listinstance SET process_date = CURRENT_TIMESTAMP, process_comment = ? WHERE res_id = ? AND difflist_type = ? AND process_date IS NULL',
['Circuit Interrompu', $res_id, 'VISA_CIRCUIT']
);
return array('result' => $res_id.'#', 'history_msg' => '');
}
?>
<?php
$confirm = false;
$etapes = ['form', 'empty_error'];
$frm_width = '355px';
$frm_height = 'auto';
function get_form_txt($values, $path_manage_action, $id_action, $table, $module, $coll_id, $mode)
{
require('modules/entities/entities_tables.php');
require_once('modules/entities/class/EntityControler.php');
require_once('apps/' . $_SESSION['config']['app_id'] . '/class/class_chrono.php');
$db = new Database();
$cr7 = new chrono();
$entity_ctrl = new EntityControler();
$servicesCompare = [];
$labelAction = '';
if ($id_action != '') {
$stmt = $db->query('select label_action from actions where id = ?', [$id_action]);
$resAction = $stmt->fetchObject();
$labelAction = functions::show_string($resAction->label_action);
}
$frm_str = '<div id="frm_error_'.$id_action.'" class="error"></div>';
if ($labelAction != '') {
$frm_str .= '<h2 class="title">' . $labelAction . ' ' . _NUM;
} else {
$frm_str .= '<h2 class="title">' . _REDIRECT_MAIL . ' ' ._NUM;
}
$values_str = '';
if(empty($_SESSION['stockCheckbox'])) {
for($i=0; $i < count($values); $i++)
{
$values_str .= $values[$i] . ', ';
}
} else {
for($i=0; $i < count($_SESSION['stockCheckbox']); $i++)
{
$values_str .= $_SESSION['stockCheckbox'][$i].', ';
}
}
$values_str = preg_replace('/, $/', '', $values_str);
if(_ID_TO_DISPLAY == 'res_id'){
$frm_str .= $values_str;
} else if (_ID_TO_DISPLAY == 'chrono_number'){
$chrono_number = $cr7->get_chrono_number($values_str, 'res_view_letterbox');
$frm_str .= $chrono_number;
}
$frm_str .= '</h2><br/>';
require 'modules/templates/class/templates_controler.php';
$templatesControler = new templates_controler();
$EntitiesIdExclusion = [];
$entities = $entity_ctrl->getAllEntities();
$countEntities = count($entities);
for ($cptAllEnt = 0;$cptAllEnt<$countEntities;$cptAllEnt++) {
if (!is_integer(array_search($entities[$cptAllEnt]->__get('entity_id'), $servicesCompare))) {
array_push($EntitiesIdExclusion, $entities[$cptAllEnt]->__get('entity_id'));
}
}
$templates = $templatesControler->getAllTemplatesForSelect();
$frm_str .='<br/><b>'. _NOTES .':</b><br/>';
$frm_str .= '<select name="templateNotes" id="templateNotes" style="width:98%;margin-bottom: 10px;background-color: White;border: 1px solid #999;color: #666;text-align: left;" '
. 'onchange="addTemplateToNote($(\'templateNotes\').value, \''
. $_SESSION['config']['businessappurl'] . 'index.php?display=true'
. '&module=templates&page=templates_ajax_content_for_notes\');document.getElementById(\'notes\').focus();">';
$frm_str .= '<option value="">' . _SELECT_NOTE_TEMPLATE . '</option>';
for ($i=0;$i<count($templates);$i++) {
if ($templates[$i]['TYPE'] == 'TXT' && ($templates[$i]['TARGET'] == 'notes' || $templates[$i]['TARGET'] == '')) {
$frm_str .= '<option value="';
$frm_str .= $templates[$i]['ID'];
$frm_str .= '">';
$frm_str .= $templates[$i]['LABEL'];
}
$frm_str .= '</option>';
}
$frm_str .= '</select><br />';
$frm_str .= '<textarea style="width:98%;height:60px;resize:none;" name="notes" id="notes" onblur="document.getElementById(\'note_content_to_users\').value = document.getElementById(\'notes\').value;"></textarea>';
$frm_str .= '<div id="form2" style="border:none;">';
$frm_str .= '<form name="frm_redirect_dep" id="frm_redirect_dep" method="post" class="forms" action="#">';
$frm_str .= '<input type="hidden" name="chosen_action" id="chosen_action" value="end_action" />';
$frm_str .= '<input type="hidden" name="note_content_to_users" id="note_content_to_users" />';
$frm_str .= '</form>';
$frm_str .= '</div>';
$frm_str .= '<hr />';
$frm_str .= '<div align="center">';
$frm_str .= ' <input type="button" name="redirect_dep" value="'._VALIDATE.'" id="redirect_dep" class="button" onclick="valid_action_form( \'frm_redirect_dep\', \''.$path_manage_action.'\', \''. $id_action.'\', \''.$values_str.'\', \''.$table.'\', \''.$module.'\', \''.$coll_id.'\', \''.$mode.'\');" />';
$frm_str .= ' <input type="button" name="cancel" id="cancel" class="button" value="'._CANCEL.'" onclick="pile_actions.action_pop();destroyModal(\'modal_'.$id_action.'\');"/>';
$frm_str .= '</div>';
return addslashes($frm_str);
}
function check_form($form_id, $values)
{
return true;
}
function manage_form($arr_id, $history, $id_action, $label_action, $status, $coll_id, $table, $values_form )
{
if(empty($values_form) || count($arr_id) < 1)
return false;
require_once('modules/notes/class/notes_controler.php');
$note = new notes_controler();
$coll_id = $_SESSION['current_basket']['coll_id'];
$res_id = $arr_id[0];
$formValues = [];
for($i = 0; $i < count($values_form); $i++) {
$id = $values_form[$i]['ID'];
$formValues[$id] = $values_form[$i]['VALUE'];
}
# save note
if($formValues['note_content_to_users'] != ''){
//Add notes
$note->addNote($res_id, $coll_id, $formValues['note_content_to_users']);
}
return array('result' => $res_id.'#', 'history_msg' => '');
}
function manage_empty_error($arr_id, $history, $id_action, $label_action, $status)
{
$db = new Database();
$_SESSION['action_error'] = '';
$res_id = $arr_id[0];
$where = "res_id = ? and difflist_type = ? AND process_date IS NOT NULL";
$order = "ORDER BY process_date DESC";
$query = $db->limit_select(0, 1, 'listinstance_id, requested_signature', 'listinstance', $where, '', '', $order);
$stmt = $db->query($query,[$res_id, 'VISA_CIRCUIT']);
if ($stmt->rowCount() > 0) {
$listInstance = $stmt->fetchObject();
$db->query('UPDATE listinstance SET process_date = NULL WHERE res_id = ? AND difflist_type = ? AND listinstance_id = ?',
[$res_id, 'VISA_CIRCUIT', $listInstance->listinstance_id]);
if ($listInstance->requested_signature) {
$newStatus = 'ESIG';
} else {
$newStatus = 'EVIS';
}
$db->query("UPDATE res_letterbox SET status = ? WHERE res_id = ? ", [$newStatus, $res_id]);
}
return array('result' => $res_id.'#', 'history_msg' => $label_action);
}
<?php
$confirm = false;
$etapes = ['form', 'empty_error'];
$frm_width = '355px';
$frm_height = 'auto';
function get_form_txt($values, $path_manage_action, $id_action, $table, $module, $coll_id, $mode)
{
require('modules/entities/entities_tables.php');
require_once('modules/entities/class/EntityControler.php');
require_once('apps/' . $_SESSION['config']['app_id'] . '/class/class_chrono.php');
$db = new Database();
$cr7 = new chrono();
$entity_ctrl = new EntityControler();
$servicesCompare = [];
$labelAction = '';
if ($id_action != '') {
$stmt = $db->query('select label_action from actions where id = ?', [$id_action]);
$resAction = $stmt->fetchObject();
$labelAction = functions::show_string($resAction->label_action);
}
$frm_str = '<div id="frm_error_'.$id_action.'" class="error"></div>';
if ($labelAction != '') {
$frm_str .= '<h2 class="title">' . $labelAction . ' ' . _NUM;
} else {
$frm_str .= '<h2 class="title">' . _REDIRECT_MAIL . ' ' ._NUM;
}
$values_str = '';
if (empty($_SESSION['stockCheckbox'])) {
for ($i=0; $i < count($values); $i++) {
$values_str .= $values[$i] . ', ';
}
} else {
for ($i=0; $i < count($_SESSION['stockCheckbox']); $i++) {
$values_str .= $_SESSION['stockCheckbox'][$i].', ';
}
}
$values_str = preg_replace('/, $/', '', $values_str);
if (_ID_TO_DISPLAY == 'res_id') {
$frm_str .= $values_str;
} elseif (_ID_TO_DISPLAY == 'chrono_number') {
$chrono_number = $cr7->get_chrono_number($values_str, 'res_view_letterbox');
$frm_str .= $chrono_number;
}
$frm_str .= '</h2><br/>';
require 'modules/templates/class/templates_controler.php';
$templatesControler = new templates_controler();
$EntitiesIdExclusion = [];
$entities = $entity_ctrl->getAllEntities();
$countEntities = count($entities);
for ($cptAllEnt = 0;$cptAllEnt<$countEntities;$cptAllEnt++) {
if (!is_integer(array_search($entities[$cptAllEnt]->__get('entity_id'), $servicesCompare))) {
array_push($EntitiesIdExclusion, $entities[$cptAllEnt]->__get('entity_id'));
}
}
$templates = $templatesControler->getAllTemplatesForSelect();
$frm_str .='<br/><b>'. _NOTES .':</b><br/>';
$frm_str .= '<select name="templateNotes" id="templateNotes" style="width:98%;margin-bottom: 10px;background-color: White;border: 1px solid #999;color: #666;text-align: left;" '
. 'onchange="addTemplateToNote($(\'templateNotes\').value, \''
. $_SESSION['config']['businessappurl'] . 'index.php?display=true'
. '&module=templates&page=templates_ajax_content_for_notes\');document.getElementById(\'notes\').focus();">';
$frm_str .= '<option value="">' . _SELECT_NOTE_TEMPLATE . '</option>';
for ($i=0;$i<count($templates);$i++) {
if ($templates[$i]['TYPE'] == 'TXT' && ($templates[$i]['TARGET'] == 'notes' || $templates[$i]['TARGET'] == '')) {
$frm_str .= '<option value="';
$frm_str .= $templates[$i]['ID'];
$frm_str .= '">';
$frm_str .= $templates[$i]['LABEL'];
}
$frm_str .= '</option>';
}
$frm_str .= '</select><br />';
$frm_str .= '<textarea style="width:98%;height:60px;resize:none;" name="notes" id="notes" onblur="document.getElementById(\'note_content_to_users\').value = document.getElementById(\'notes\').value;"></textarea>';
$frm_str .= '<div id="form2" style="border:none;">';
$frm_str .= '<form name="frm_redirect_dep" id="frm_redirect_dep" method="post" class="forms" action="#">';
$frm_str .= '<input type="hidden" name="chosen_action" id="chosen_action" value="end_action" />';
$frm_str .= '<input type="hidden" name="note_content_to_users" id="note_content_to_users" />';
$frm_str .= '</form>';
$frm_str .= '</div>';
$frm_str .= '<hr />';
$frm_str .= '<div align="center">';
$frm_str .= ' <input type="button" name="redirect_dep" value="'._VALIDATE.'" id="redirect_dep" class="button" onclick="valid_action_form( \'frm_redirect_dep\', \''.$path_manage_action.'\', \''. $id_action.'\', \''.$values_str.'\', \''.$table.'\', \''.$module.'\', \''.$coll_id.'\', \''.$mode.'\');" />';
$frm_str .= ' <input type="button" name="cancel" id="cancel" class="button" value="'._CANCEL.'" onclick="pile_actions.action_pop();destroyModal(\'modal_'.$id_action.'\');"/>';
$frm_str .= '</div>';
return addslashes($frm_str);
}
function check_form($form_id, $values)
{
return true;
}
function manage_form($arr_id, $history, $id_action, $label_action, $status, $coll_id, $table, $values_form)
{
if (empty($values_form) || count($arr_id) < 1) {
return false;
}
require_once('modules/notes/class/notes_controler.php');
$note = new notes_controler();
$coll_id = $_SESSION['current_basket']['coll_id'];
$res_id = $arr_id[0];
$formValues = [];
for ($i = 0; $i < count($values_form); $i++) {
$id = $values_form[$i]['ID'];
$formValues[$id] = $values_form[$i]['VALUE'];
}
# save note
if ($formValues['note_content_to_users'] != '') {
//Add notes
$note->addNote($res_id, $coll_id, $formValues['note_content_to_users']);
}
return array('result' => $res_id.'#', 'history_msg' => '');
}
function manage_empty_error($arr_id, $history, $id_action, $label_action, $status)
{
$db = new Database();
$_SESSION['action_error'] = '';
$res_id = $arr_id[0];
$db->query('UPDATE listinstance SET process_date = NULL WHERE res_id = ? AND difflist_type = ?', [$res_id, 'VISA_CIRCUIT']);
return array('result' => $res_id.'#', 'history_msg' => '');
}
<?php
/*
* Copyright 2008-2015 Maarch
*
* This file is part of Maarch Framework.
*
* Maarch Framework is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Maarch Framework is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Maarch Framework. If not, see <http://www.gnu.org/licenses/>.
*/
require_once "modules" . DIRECTORY_SEPARATOR . "visa" . DIRECTORY_SEPARATOR . "class" . DIRECTORY_SEPARATOR . "class_modules_tools.php";
/**
* $confirm bool true
*/
$error_visa = false;
$error_visa_response_project = false;
if (isset($_SESSION['error_visa']) && $_SESSION['error_visa'] <> '') {
$error_visa = true;
}
$visa = new visa();
$curr_visa_wf = $visa->getWorkflow($_SESSION['doc_id'], $_SESSION['current_basket']['coll_id'], 'VISA_CIRCUIT');
if (empty($curr_visa_wf['visa']) && empty($curr_visa_wf['sign'])) {
$error_visa = true;
//IF NO VISA WF CHECK VISA MODEL
include_once "modules/entities/class/class_manage_listdiff.php";
$diff_list = new diffusion_list();
$db = new Database();
$stmt = $db->query("SELECT destination from res_letterbox WHERE res_id = ?", array($_SESSION['doc_id']));
$res = $stmt->fetchObject();
$listModel = $diff_list->get_listmodel('VISA_CIRCUIT', $res->destination);
if ($listModel != false) {
$visa->saveWorkflow($_SESSION['doc_id'], 'letterbox_coll', $listModel, 'VISA_CIRCUIT');
$error_visa = false;
}
}
$visa->checkResponseProject($_SESSION['doc_id'], $_SESSION['current_basket']['coll_id']);
if ($visa->errorMessageVisa) {
$error_visa_response_project = true;
}
$confirm = true;
/**
* $etapes array Contains only one etap, the status modification
*/
$etapes = array('empty_error');
function manage_empty_error($arr_id, $history, $id_action, $label_action, $status)
{
$_SESSION['action_error'] = '';
$result = '';
$res_id = $arr_id[0];
$visa = new visa();
$visa->setStatusVisa($_SESSION['doc_id'], $_SESSION['current_basket']['coll_id']);
// for($i=0; $i<count($arr_id );$i++)
// {
// $result .= $arr_id[$i].'#';
// }
return array('result' => $res_id.'#', 'history_msg' => '');
}
<?php
/**
* Copyright Maarch since 2008 under licence GPLv3.
* See LICENCE.txt file at the root folder for more details.
* This file is part of Maarch software.
*
* @brief visa_workflow
*
* @author dev <dev@maarch.org>
* @ingroup visa
*/
require_once 'modules/visa/class/class_modules_tools.php';
$db = new Database();
$visa = new visa();
$confirm = true;
$warnMsg = '';
$error_visa_workflow_signature_book = false;
$isMailingAttach = \Attachment\controllers\AttachmentController::isMailingAttach(["resIdMaster" => $_SESSION['doc_id'], "login" => $_SESSION['user']['UserId']]);
if ($visa->isAllAttachementSigned($_SESSION['doc_id']) == 'noAttachment') {
$error_visa_workflow_signature_book = true;
} elseif ($visa->currentUserSignRequired($_SESSION['doc_id']) == 'true') {
$warnMsg = _NO_USER_SIGNED_DOC;
} else if ($isMailingAttach != false) {
$warnMsg = $isMailingAttach['nbContacts'] . " " . _RESPONSES_WILL_BE_GENERATED;
}
$stmt = $db->query("SELECT 1 FROM listinstance WHERE res_id = ? AND (item_mode = 'visa' OR item_mode = 'sign') AND process_date IS NULL", [$_SESSION['doc_id']]);
$res = $stmt->fetchAll();
if (empty($res) || count($res) < 2) {
$error_visa_workflow = true;
}
$etapes = ['empty_error'];
function manage_empty_error($arr_id, $history, $id_action, $label_action, $status)
{
$db = new Database();
$result = '';
if (!empty($_SESSION['stockCheckbox'])) {
$arr_id = $_SESSION['stockCheckbox'];
}
for ($i = 0; $i < count($arr_id); ++$i) {
$_SESSION['action_error'] = '';
$coll_id = $_SESSION['current_basket']['coll_id'];
$res_id = $arr_id[$i];
include_once 'core/class/class_security.php';
$sec = new security();
include_once 'core/class/class_history.php';
$history = new history();
$table = $sec->retrieve_table_from_coll($coll_id);
$circuit_visa = new visa();
$sequence = $circuit_visa->getCurrentStep($res_id, $coll_id, 'VISA_CIRCUIT');
$stepDetails = array();
$stepDetails = $circuit_visa->getStepDetails($res_id, $coll_id, 'VISA_CIRCUIT', $sequence);
$message = $circuit_visa->processVisaWorkflow(['stepDetails' => $stepDetails, 'res_id' => $res_id]);
$stmt = $db->query('SELECT status FROM res_letterbox WHERE res_id = ?', array($res_id));
$resource = $stmt->fetchObject();
if ($resource->status == 'EVIS' || $resource->status == 'ESIG') {
$circuit_visa->setStatusVisa($res_id, 'letterbox_coll');
}
//USEFULL FOR SPM PARAM (can set SIGN WITH OTHER STATUS)
$stmt = $db->query(
'select count(1) as total FROM listinstance '
.' WHERE item_mode = ? AND res_id = ? AND difflist_type = ? AND requested_signature = ?',
array('sign', $res_id, 'VISA_CIRCUIT', true)
);
$res = $stmt->fetchObject();
if ($res->total > 0 && $circuit_visa->getCurrentStep($res_id, $coll_id, 'VISA_CIRCUIT') == $circuit_visa->nbVisa($res_id, $coll_id)) {
$mailStatus = 'ESIG';
$db->query('UPDATE res_letterbox SET status = ? WHERE res_id = ? ', [$mailStatus, $res_id]);
}
$result .= $arr_id[$i].'#';
}
return array('result' => $result, 'history_msg' => $message);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment