request("sc"));
if (isset($_REQUEST['f_id']))
$supl_hidden.=HtmlInput::hidden('f_id', $http->request("f_id","number"));
if (isset($_REQUEST['sb']))
$supl_hidden.=HtmlInput::hidden('sb', $http->request("sb"));
$supl_hidden.=HtmlInput::hidden('ac', $http->request("ac"));
\Noalyss\Dbg::echo_file(__FILE__);
/**
* if no group available , then stop
*/
global $g_user;
if ( empty ($g_user->get_readable_profile() ) ) {
echo ''. _("Aucun profil disponible").'';
return;
}
$correction = 0;
$error_id=0;
/*-----------------------------------------------------------------------------*/
/* For other action */
/*-----------------------------------------------------------------------------*/
if ( isset ($_POST['other_action_bt'])) {
/**
* The action id are in the array mag_id
* the tag to remove are vin the array remtag
* the tag to add are in the array addtag
* the state in ag_state
*/
if ( isset ($_POST['mag_id'])) {
switch ($_POST['othact']) {
case 'IMP':
//Impression
Follow_Up::action_print($cn,$_POST);
return;
break;
case 'ST':
// Etat
Follow_Up::action_set_state($cn, $_POST);
break;
case 'ETIREM':
//tag
Follow_Up::action_tag_remove($cn, $_POST);
break;
case 'ETIADD':
Follow_Up::action_tag_add($cn, $_POST);
break;
case 'ETICLEAR':
Follow_Up::action_tag_clear($cn,$_POST);
break;
case 'DOCREM':
Follow_Up::action_remove($cn, $_POST);
break;
}
}
}
/* --------------------------------------------------------------------------- */
/* We ask to generate the document */
/* --------------------------------------------------------------------------- */
if (isset($_POST['generate']))
{
$act = new Follow_Up($cn);
$act->fromArray($_POST);
if ($act->ag_id == 0)
{
$act->save();
$ag_id = $act->ag_id;
}
else
{
$act->update();
}
$doc_mod=$http->post('doc_mod',"number");
$act->generate_document($doc_mod, $_POST);
$sub_action = 'detail';
}
/* for delete */
if (isset($_POST['delete']) && $_POST['delete'] == "1")
$sub_action = 'delete';
if ($sub_action == "")
$sub_action = "list";
// if correction is asked go to directly to add_action
if (isset($_POST['corr']))
{
$ag_comment = urldecode($_POST['ag_comment']);
$sub_action = "add_action";
}
// if this page is called from another menu (customer, supplier,...)
// a button back is added
//----------------------------------------------------------------------
// update the detail
// Add a new action related to this one or update
//----------------------------------------------------------------------
if ($sub_action == "update")
{
// update the modification
if (isset($_POST['save']))
{
$act2 = new Follow_Up($cn);
$act2->fromArray($_POST);
if ($g_user->can_write_action($act2->ag_id) == FALSE )
{
echo '
';
echo '
'._('Cette action ne vous est pas autorisée Contactez votre responsable').'
';
echo '';
return;
}
$sub_action = "detail";
put_global(array(array('key' => "sa", "value" => "detail")));
try {
$act2->verify() ;
$act2->update() ;
}
catch (Exception $e)
{
echo '';
echo _("Erreur")." ".$e->getMessage();
echo '';
$sub_action="detail";
$correction = 1;
$act = clone $act2;
$act->get();
$act->fromArray($_POST);
$error_id=$e->getCode();
record_log($e);
}
}
//----------------------------------------------------------------------
// Add a related action
//----------------------------------------------------------------------
if (isset($_GET['add_action_here']))
{
$ag_id=$http->get('ag_id',"number");
$act = new Follow_Up($cn,$ag_id);
if ($g_user->can_write_action($act->ag_id) == FALSE )
{
echo '';
echo '
'._('Cette action ne vous est pas autorisée Contactez votre responsable').'
';
echo '';
return;
}
//----------------------------------------
// puis comme ajout normal (copier / coller )
$act->ag_id = 0;
$act->d_id = 0;
$act->action = $ag_id;
$act->ag_timestamp=date('d.m.Y');
$act->ag_dest=$g_user->get_profile();
$act->ag_hour="";
$act->ag_title="";
$act->ag_remind_date="";
$act->dt_id = $http->request("action_type","number");
$act->d_id = 0;
$act->ag_comment = "";
$act->qcode_dest="";
if (isset($_REQUEST['qcode'])){
$act->qcode_dest = $http->request ('qcode');
} else {
// Retrieve recipient of previous followup-action
$act->qcode_dest=$cn->get_value("select ad_value from action_gestion ag join fiche_detail fd
on (fd.f_id=ag.f_id_dest) where ag_id=$1 and ad_id=$2",
[$ag_id,ATTR_DEF_QUICKCODE ]);
}
$act->f_id_dest=$act->qcode_dest;
$act->save();
// Add hidden tag
echo '';
return;
}
}
//--------------------------------------------------------------------------------
// Show the detail of an action
// permit the update
//--------------------------------------------------------------------------------
if ($sub_action == 'detail')
{
echo '';
if ( $correction == 0 )
{
$act = new Follow_Up($cn);
$act->ag_id = $ag_id;
echo $act->get();
}
if ($g_user->can_write_action($ag_id) == true)
{
printf( '';
// Create select box for new Action
Follow_Up::show_action_add(["sa"=>"update","add_action_here"=>1,"ag_id"=>$ag_id]);
}
else if ($g_user->can_read_action($ag_id) == true || $act->ag_dest == -1)
{
echo $act->Display('READ', false, $base, $retour);
}
else
{
echo h2info(_("Ce document n'est pas accessible"));
return;
}
echo '
';
}
//-------------------------------------------------------------------------------
// Delete an action
//-------------------------------------------------------------------------------
if ($sub_action == 'delete')
{
// confirmed
$cn->start();
$act = new Follow_Up($cn);
$act->ag_id =$http->request("ag_id","number") ;
$act->get();
if ($g_user->can_delete_action($act->ag_id)==true) $act->remove();
$sub_action = "list";
$cn->commit();
Follow_Up::show_action_list($cn, $base);
if (isset($act->ag_ref))
echo hb(_('Action ') . $act->ag_ref . _(' effacée'));
return;
}
//--------------------------------------------------------------------------------
// Show a list of the action
//--------------------------------------------------------------------------------
if ($sub_action == "list")
{
// Add a button to export to Csv
echo '";
// Add a button to export complete to Csv
echo '";
//if filter_name exists then we save the $_GET into the DB as a JSON object
$filter_name=$http->get("filter_name","string",null);
if ( noalyss_trim($filter_name) != "" ) {
// save filter
// $follow_up_filter=new Follow_Up_Filter($cn);
$a_content=json_encode($_GET);
$action_gestion_filter=new Follow_Up_Filter($filter_name,$a_content);
$action_gestion_filter->save();
}
// si filtered on charge la DB
Follow_Up::show_action_list($cn, $base);
}
//--------------------------------------------------------------------------------
// Save Follow_Up
// Stage 2 : Save a NEW action + Files and generate a document
//--------------------------------------------------------------------------------
if ($sub_action == "save_action_st2")
{
$act = new Follow_Up($cn);
$act->fromArray($_POST);
try {
$act->d_id = 0;
$act->ag_id = $http->request("ag_id", "number");
$act->md_id = $http->post('gen_doc', 'number', 0);
$act->verify();
$sup_parameter = HtmlInput::array_to_string(["sc", "sb", "f_id", "qcode"], $_REQUEST, "&");
// insert into action_gestion
$act->update();
$url = "?sa=detail&ag_id=" . $act->ag_id . '&' . dossier::get() . "&ac=" . $http->request("ac") .
$sup_parameter;
echo '' . hb(_('Action Sauvée') . ' : ' . $act->ag_ref) . '
';
Follow_Up::show_action_list($cn, $base);
$url = "?sa=detail&ag_id=" . $act->ag_id . '&' . dossier::get() . "&ac=" . $http->request("ac") .
$sup_parameter;
echo '' . hb(_('Action Sauvée') . ' : ' . $act->ag_ref) . '
';
} catch (Exception $e) {
echo '';
echo _("Erreur") . " " . $e->getMessage();
echo '';
$sub_action = "add_action";
$error_id = $e->getCode();
record_log($e);
}
}
//--------------------------------------------------------------------------------
// Add an action
if ($sub_action == "add_action" && ! empty($g_user->get_writable_profile() ) )
{
$act = new Follow_Up($cn);
$act->fromArray($_POST);
$act->dt_id = $http->request("action_type","number");
$act->d_id = 0;
$f_id_dest=$http->request("f_id","number",null);
if ( $f_id_dest != NULL ) {
$act->qcode_dest=$cn->get_value("select ad_value from fiche_detail where ad_id=$1 and f_id=$2",
[ATTR_DEF_QUICKCODE,$f_id_dest]);
}
$act->save();
echo '';
// Add hidden tag
echo '';
echo '
';
}
if ( $error_id != 0 ){
$error[10]='dt_id';
$error[20]='ag_timestamp';
$error[30]='ag_remind_date';
$div=$error[$error_id];
$js=<<$('$div').style.borderColor="red";
$('info_div').innerHTML='erreur';
EOF;
echo $js;
}
?>