Task #0002035: Improve GESTION/FOLLOW - Export CSV
This commit is contained in:
parent
2769a25e8d
commit
03c8b004d0
3 changed files with 129 additions and 19 deletions
|
|
@ -211,6 +211,7 @@ if ($sub_action == "update")
|
|||
//--------------------------------------------------------------------------------
|
||||
// Show the detail of an action
|
||||
// permit the update
|
||||
//--------------------------------------------------------------------------------
|
||||
if ($sub_action == 'detail')
|
||||
{
|
||||
echo '<div class="content">';
|
||||
|
|
@ -264,6 +265,7 @@ method="post" style="display:inline" onsubmit="return check_file_size(this,%s
|
|||
}
|
||||
//-------------------------------------------------------------------------------
|
||||
// Delete an action
|
||||
//-------------------------------------------------------------------------------
|
||||
if ($sub_action == 'delete')
|
||||
{
|
||||
// confirmed
|
||||
|
|
@ -282,6 +284,7 @@ if ($sub_action == 'delete')
|
|||
|
||||
//--------------------------------------------------------------------------------
|
||||
// Show a list of the action
|
||||
//--------------------------------------------------------------------------------
|
||||
if ($sub_action == "list")
|
||||
{
|
||||
// Add a button to export to Csv
|
||||
|
|
@ -289,7 +292,16 @@ if ($sub_action == "list")
|
|||
echo HtmlInput::request_to_hidden(array("closed_action","remind_date_end","remind_date","sag_ref", "remind_date","only_internal", "state", "gDossier", "qcode", "start_date", "end_date", "ag_id", "ag_dest_query",
|
||||
"tdoc", "action_query","date_start","date_end","hsstate","searchtag"));
|
||||
echo HtmlInput::hidden("act", "CSV:ActionGestion");
|
||||
echo HtmlInput::submit("follow_up_csv", "Export CSV",'','smallbutton');
|
||||
echo HtmlInput::hidden("export_type", "simple");
|
||||
echo HtmlInput::submit("follow_up_csv", _("Export CSV"),'','smallbutton');
|
||||
echo "</form>";
|
||||
// Add a button to export complete to Csv
|
||||
echo '<form method="GET" style="display:inline;" ACTION="export.php">';
|
||||
echo HtmlInput::request_to_hidden(array("closed_action","remind_date_end","remind_date","sag_ref", "remind_date","only_internal", "state", "gDossier", "qcode", "start_date", "end_date", "ag_id", "ag_dest_query",
|
||||
"tdoc", "action_query","date_start","date_end","hsstate","searchtag"));
|
||||
echo HtmlInput::hidden("act", "CSV:ActionGestion");
|
||||
echo HtmlInput::hidden("export_type", "detail");
|
||||
echo HtmlInput::submit("follow_up_csv", _("Export CSV détaillé"),'','smallbutton');
|
||||
echo "</form>";
|
||||
Follow_Up::show_action_list($cn, $base);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1018,7 +1018,7 @@ class Follow_Up
|
|||
}
|
||||
|
||||
/**
|
||||
* get the action where the remind day is today
|
||||
* @brief get the action where the remind day is today
|
||||
* @return array
|
||||
*/
|
||||
function get_today()
|
||||
|
|
@ -1036,7 +1036,7 @@ class Follow_Up
|
|||
}
|
||||
|
||||
/**
|
||||
* get the action where the remind day is today
|
||||
* @brief get the action where the remind day is today
|
||||
* @return array
|
||||
*/
|
||||
function get_late()
|
||||
|
|
@ -1050,7 +1050,7 @@ class Follow_Up
|
|||
}
|
||||
|
||||
/**
|
||||
* insert a related operation
|
||||
* @brief insert a related operation
|
||||
*/
|
||||
function insert_operation()
|
||||
{
|
||||
|
|
@ -1068,7 +1068,7 @@ class Follow_Up
|
|||
}
|
||||
|
||||
/**
|
||||
* remove a related operation
|
||||
* @brief remove a related operation
|
||||
* @deprecated not used : dead_code
|
||||
* @todo to remove
|
||||
*/
|
||||
|
|
@ -1084,7 +1084,7 @@ class Follow_Up
|
|||
}
|
||||
|
||||
/**
|
||||
* Display only a search box for searching an action
|
||||
* @brief Display only a search box for searching an action
|
||||
* @param $cn database connx
|
||||
* @param $inner true if coming from an ajax (ajax_search_action)
|
||||
*/
|
||||
|
|
@ -1208,7 +1208,7 @@ class Follow_Up
|
|||
echo '</form>';
|
||||
}
|
||||
/**
|
||||
* Show a button for adding follow-up action, display the FORM
|
||||
* @brief Show a button for adding follow-up action, display the FORM
|
||||
* @param array $pa_param , will be converted in a HIDDEN input type in the form
|
||||
*/
|
||||
static function show_action_add($pa_param)
|
||||
|
|
@ -1218,7 +1218,7 @@ class Follow_Up
|
|||
}
|
||||
|
||||
/**
|
||||
* Create a subquery to filter thanks the selected tag
|
||||
*@brief Create a subquery to filter thanks the selected tag
|
||||
* @param $cn db connx
|
||||
* @param $p_array
|
||||
* @return SQL
|
||||
|
|
@ -1251,7 +1251,7 @@ class Follow_Up
|
|||
}
|
||||
|
||||
/**
|
||||
* Get date from $_GET and create the sql stmt for the query
|
||||
* @briefGet date from $_GET and create the sql stmt for the query
|
||||
* @note the query is taken in $_REQUEST
|
||||
* @see Follow_Up::ShowActionList
|
||||
* @return string SQL condition
|
||||
|
|
@ -1361,7 +1361,7 @@ class Follow_Up
|
|||
}
|
||||
|
||||
/**
|
||||
* Show the result of a search in an inner windows, the result is limited to 25
|
||||
* @brief Show the result of a search in an inner windows, the result is limited to 25
|
||||
* @param type $cn database connx
|
||||
* @param type $p_sql the query
|
||||
*/
|
||||
|
|
@ -1386,7 +1386,7 @@ class Follow_Up
|
|||
}
|
||||
|
||||
/**
|
||||
* Insert a related action into the table action_gestion_related
|
||||
* @brief Insert a related action into the table action_gestion_related
|
||||
*/
|
||||
function insert_action()
|
||||
{
|
||||
|
|
@ -1407,9 +1407,8 @@ class Follow_Up
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* export to CSV the query the p_array has
|
||||
* @brief export to CSV the query the p_array has
|
||||
* @param array $p_array
|
||||
*/
|
||||
function export_csv($p_array)
|
||||
|
|
@ -1455,6 +1454,96 @@ class Follow_Up
|
|||
)
|
||||
);
|
||||
}
|
||||
/**
|
||||
* @brief export to CSV the query the p_array has
|
||||
* @param array $p_array
|
||||
*/
|
||||
function export_csv_detail($p_array)
|
||||
{
|
||||
|
||||
|
||||
$p_search=self::create_query($this->db, $p_array);
|
||||
$sql="
|
||||
select ag_id,
|
||||
to_char(ag_timestamp,'DD.MM.YYYY') as my_date,
|
||||
to_char(ag_remind_date,'DD.MM.YYYY') as my_remind,
|
||||
to_char(coalesce((select max(agc_date)
|
||||
from action_gestion_comment as agc
|
||||
where agc.ag_id=ag.ag_id),ag.ag_timestamp),'DD.MM.YY HH24:MI') as last_comment,
|
||||
array_to_string((select array_agg(t1.t_tag)
|
||||
from action_tags as a1 join tags as t1 on (a1.t_id=t1.t_id)
|
||||
where a1.ag_id=ag.ag_id ),',') as tags,
|
||||
array_to_string((select array_agg(coalesce(jrn1.jr_pj_number,jrn1.jr_internal))
|
||||
from action_gestion_operation ago join jrn jrn1 using (jr_id)
|
||||
where ago.ag_id=ag.ag_id),',') as related_operation,
|
||||
array_to_string((select array_agg(agc2.agc_comment order by agc2.agc_date desc)
|
||||
from action_gestion_comment agc2 where agc2.ag_id=ag.ag_id ),'|') as action_comment,
|
||||
array_to_string((select array_agg(followup_id) from (select agr1.aga_least followup_id
|
||||
from action_gestion_related agr1
|
||||
where agr1.aga_greatest = ag.ag_id
|
||||
union
|
||||
select agr2.aga_greatest
|
||||
from
|
||||
action_gestion_related agr2
|
||||
where agr2.aga_least=ag.ag_id) as followup),',') follow_up,
|
||||
(select ad_value from fiche_Detail where f_id=ag.f_id_dest and ad_id=1) as name,
|
||||
ag_title,
|
||||
dt_value,
|
||||
ag_ref,
|
||||
ag_priority,
|
||||
ag_state,
|
||||
coalesce((select p_name from profile where p_id=ag_dest),'Aucun groupe') as dest
|
||||
from action_gestion as ag
|
||||
join document_type on (ag.ag_type=dt_id)
|
||||
join document_state on(ag.ag_state=s_id)
|
||||
where
|
||||
true $p_search order by ag.ag_timestamp,ag.ag_id";
|
||||
$ret=$this->db->exec_sql($sql);
|
||||
|
||||
$nb_record=Database::num_row($ret);
|
||||
$export_csv=new Noalyss_Csv('action_gestion_detail');
|
||||
$export_csv->send_header();
|
||||
$export_csv->write_header([
|
||||
_("Document id"),
|
||||
_("Date"),
|
||||
_("Date rappel"),
|
||||
_("Destinataire"),
|
||||
_("Référence "),
|
||||
_("Titre "),
|
||||
_("Commentaires "),
|
||||
_("Date dernier commentaire "),
|
||||
_("Etiquette "),
|
||||
_("Priorité "),
|
||||
_("Etat "),
|
||||
_("Opérations"),
|
||||
_("Autres actions"),
|
||||
_("Type action"),
|
||||
_("Groupe "),
|
||||
]);
|
||||
for ($i=0;$i<$nb_record;$i++)
|
||||
{
|
||||
$row=Database::fetch_array($ret,$i);
|
||||
$export_csv->add($row['ag_id']);
|
||||
$export_csv->add($row['my_date']);
|
||||
$export_csv->add($row['my_remind']);
|
||||
$export_csv->add($row['name']);
|
||||
$export_csv->add($row['ag_ref']);
|
||||
$export_csv->add($row['ag_title']);
|
||||
$export_csv->add($row['action_comment']);
|
||||
$export_csv->add($row['last_comment']);
|
||||
$export_csv->add($row['tags']);
|
||||
$export_csv->add($row['ag_priority']);
|
||||
$export_csv->add($row['ag_state']);
|
||||
$export_csv->add($row['related_operation']);
|
||||
$export_csv->add($row['follow_up']);
|
||||
$export_csv->add($row['dt_value']);
|
||||
$export_csv->add($row['dest']);
|
||||
|
||||
$export_csv->write();
|
||||
}
|
||||
if ($nb_record==0)
|
||||
return;
|
||||
}
|
||||
|
||||
static function get_all_operation($p_jr_id)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -26,15 +26,24 @@
|
|||
*
|
||||
*/
|
||||
if ( ! defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
|
||||
header('Pragma: public');
|
||||
header('Content-type: application/csv');
|
||||
header('Content-Disposition: attachment;filename="action-gestion.csv"',FALSE);
|
||||
|
||||
$http=new HttpInput();
|
||||
$follow=new Follow_Up($cn);
|
||||
$array=$_GET;
|
||||
if ( isset ($_POST['query']) ) $p_array['query']=$_POST['query'];
|
||||
|
||||
echo $follow->export_csv($_GET);
|
||||
//- export follow up simple :no comment
|
||||
if ( $http->get("export_type") == "simple") {
|
||||
header('Pragma: public');
|
||||
header('Content-type: application/csv');
|
||||
header('Content-Disposition: attachment;filename="action-gestion.csv"',FALSE);
|
||||
echo $follow->export_csv($_GET);
|
||||
}
|
||||
|
||||
/*
|
||||
* export follow up full : comments
|
||||
* Mantis task #0002035
|
||||
*/
|
||||
if ( $http->get("export_type") == "detail") { echo $follow->export_csv_detail($_GET); }
|
||||
|
||||
exit();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue