[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Noalyss-commit] [noalyss] 11/22: Documentation & indentation
From: |
Dany De Bontridder |
Subject: |
[Noalyss-commit] [noalyss] 11/22: Documentation & indentation |
Date: |
Thu, 18 Jun 2015 15:56:08 +0000 |
sparkyx pushed a commit to branch master
in repository noalyss.
commit d8522f1cbd8e727c2af8884811c308e493a50fca
Author: Dany De Bontridder <address@hidden>
Date: Tue Jun 16 20:24:56 2015 +0200
Documentation & indentation
---
include/class_follow_up.php | 3120 ++++++++++++++++++++++---------------------
1 files changed, 1580 insertions(+), 1540 deletions(-)
diff --git a/include/class_follow_up.php b/include/class_follow_up.php
index 3434864..a8d649a 100644
--- a/include/class_follow_up.php
+++ b/include/class_follow_up.php
@@ -50,6 +50,7 @@ require_once 'class_default_menu.php';
* </ul>
* The table document_type are the possible actions
*/
+
/**
* \brief class_action for manipulating actions
* action can be :
@@ -60,146 +61,147 @@ require_once 'class_default_menu.php';
* </ul>
* The table document_type are the possible actions
*/
-
class Follow_Up
{
-
-
- var $db; /*!< $db database connexion */
- var $ag_timestamp; /*!< $ag_timestamp document date
(ag_gestion.ag_timestamp) */
- var $dt_id; /*!< $dt_id type of the document (document_type.dt_id)
*/
- var $ag_state; /*!< $ag_state stage of the document (printed, send to
client...) */
- var $d_number; /*!< $d_number number of the document */
- var $d_filename; /*!< $d_filename filename's document */
- var $d_mimetype; /*!< $d_mimetype document's filename */
- var $ag_title; /*!< $ag_title title document */
- var $f_id; /*!< $f_id_dest fiche id (From field ) */
- var $ag_ref; /*!< $ag_ref is the ref */
- var $ag_hour; /*!< $ag_hour is the hour of the meeting, action */
- var $ag_priority; /*!< $ag_priority is the priority 1 High, 2 medium, 3
low */
- var $ag_dest; /*!< $ag_dest person who is in charged */
- var $ag_contact; /*!< $ag_contact contact */
- var $ag_remind_date; /*!< $ag_contact contact */
- /**
- * @brief $operation string related operation
- */
- var $operation;
- /**
- * @brief $action string related action
- */
- var $action;
-
- /** constructor
- * \brief constructor
- * \param p_cn database connection
- */
-
- function __construct($p_cn,$p_id=0)
- {
- $this->db = $p_cn;
- $this->ag_id=$p_id;
- $this->f_id = 0;
- $this->aAction_detail=array();
- $this->operation="";
- $this->action="";
-
- }
- static function sql_security_filter($cn,$p_mode)
- {
- global $g_user;
- $profile=$cn->get_value("select p_id from profile_user where
user_name=$1",array($g_user->login));
- if ($profile == '') die ("Security");
- if ($p_mode == 'R')
- {
- $sql=" (ag_dest in (select p_granted from
user_sec_action_profile where p_id=$profile ) ) ";
- }
- if ($p_mode == 'W')
- {
- $sql=" ( ag_dest in (select p_granted from
user_sec_action_profile where p_id=$profile and ua_right='W' ) )";
- }
- return $sql;
- }
-
-
//----------------------------------------------------------------------
- /**
- * \brief Display the object, the tags for the FORM
- * are in the caller. It will be used for adding and updating
- * action
- * \note If ag_id is not equal to zero then it is an update otherwise
- * it is a new document
- *
- * \param $p_view form will be in readonly mode (value: READ, UPD or
NEW )
- * \param $p_gen true we show the tag for generating a doc (value :
true or false) and adding files
- * \param $p_base is the ac parameter
- * \param $retour is the html code for the return button
- * \note update the reference number or the document type is not
allowed
- *
- *
- * \return string containing the html code
- */
- function Display($p_view, $p_gen, $p_base, $retour = "")
- {
- global $g_user;
- if ($p_view == 'UPD')
- {
- $upd = true;
- $readonly = false;
- }
- elseif ($p_view == "NEW")
- {
- $upd = false;
- $readonly = false;
- $this->ag_ref=_("Nouveau");
- }
- elseif ($p_view == 'READ')
- {
- $upd = true;
- $readonly = true;
- }
- else
- {
- throw new Exception('class_action' . __LINE__ .
'Follow_Up::Display error unknown parameter' . $p_view);
- }
- // Compute the widget
- // Date
- $date = new IDate();
- $date->readOnly = $readonly;
- $date->name = "ag_timestamp";
- $date->id= "ag_timestamp";
- $date->value = $this->ag_timestamp;
-
- $remind_date = new IDate();
- $remind_date->readOnly = $readonly;
- $remind_date->name = "ag_remind_date";
- $remind_date->id = "ag_remind_date";
- $remind_date->value = $this->ag_remind_date;
-
-
- // Doc Type
- $doc_type = new ISelect();
- $doc_type->name = "dt_id";
- $doc_type->value = $this->db->make_array("select dt_id,dt_value
from document_type order by dt_value",1);
- $doc_type->selected = $this->dt_id;
- $doc_type->readOnly = $readonly;
- $str_doc_type = $doc_type->input();
-
- // Description
- $desc = new ITextArea();
- $desc->style=' class="itextarea"
style="width:80%;margin-left:0px"';
- $desc->name = "ag_comment";
- $desc->readOnly = $readonly;
- $acomment = $this->db->get_array("SELECT agc_id, ag_id,
to_char(agc_date,'DD.MM.YYYY HH24:MI') as str_agc_date, agc_comment, tech_user
+
+ var $db; /* !< $db database connexion */
+ var $ag_timestamp; /* !< $ag_timestamp document date
(ag_gestion.ag_timestamp) */
+ var $dt_id; /* !< $dt_id type of the document (document_type.dt_id) */
+ var $ag_state; /* !< $ag_state stage of the document (printed, send to
client...) */
+ var $d_number; /* !< $d_number number of the document */
+ var $d_filename; /* !< $d_filename filename's document */
+ var $d_mimetype; /* !< $d_mimetype document's filename */
+ var $ag_title; /* !< $ag_title title document */
+ var $f_id; /* !< $f_id_dest fiche id (From field ) */
+ var $ag_ref; /* !< $ag_ref is the ref */
+ var $ag_hour; /* !< $ag_hour is the hour of the meeting, action */
+ var $ag_priority; /* !< $ag_priority is the priority 1 High, 2 medium, 3
low */
+ var $ag_dest; /* !< $ag_dest person who is in charged */
+ var $ag_contact; /* !< $ag_contact contact */
+ var $ag_remind_date; /* !< $ag_contact contact */
+
+ /**
+ * @brief $operation string related operation
+ */
+ var $operation;
+
+ /**
+ * @brief $action string related action
+ */
+ var $action;
+
+ /**
+ * @brief constructor
+ * \brief constructor
+ * \param p_cn database connection
+ */
+ function __construct($p_cn, $p_id=0)
+ {
+ $this->db=$p_cn;
+ $this->ag_id=$p_id;
+ $this->f_id=0;
+ $this->aAction_detail=array();
+ $this->operation="";
+ $this->action="";
+ }
+
+ static function sql_security_filter($cn, $p_mode)
+ {
+ global $g_user;
+ $profile=$cn->get_value("select p_id from profile_user where
user_name=$1", array($g_user->login));
+ if ($profile=='')
+ die("Security");
+ if ($p_mode=='R')
+ {
+ $sql=" (ag_dest in (select p_granted from user_sec_action_profile
where p_id=$profile ) ) ";
+ }
+ if ($p_mode=='W')
+ {
+ $sql=" ( ag_dest in (select p_granted from user_sec_action_profile
where p_id=$profile and ua_right='W' ) )";
+ }
+ return $sql;
+ }
+
+ //----------------------------------------------------------------------
+ /**
+ * \brief Display the object, the tags for the FORM
+ * are in the caller. It will be used for adding and updating
+ * action
+ * \note If ag_id is not equal to zero then it is an update otherwise
+ * it is a new document
+ *
+ * \param $p_view form will be in readonly mode (value: READ, UPD or NEW )
+ * \param $p_gen true we show the tag for generating a doc (value : true
or false) and adding files
+ * \param $p_base is the ac parameter
+ * \param $retour is the html code for the return button
+ * \note update the reference number or the document type is not allowed
+ *
+ *
+ * \return string containing the html code
+ */
+ function Display($p_view, $p_gen, $p_base, $retour="")
+ {
+ global $g_user;
+ if ($p_view=='UPD')
+ {
+ $upd=true;
+ $readonly=false;
+ }
+ elseif ($p_view=="NEW")
+ {
+ $upd=false;
+ $readonly=false;
+ $this->ag_ref=_("Nouveau");
+ }
+ elseif ($p_view=='READ')
+ {
+ $upd=true;
+ $readonly=true;
+ }
+ else
+ {
+ throw new Exception('class_action'.__LINE__.'Follow_Up::Display
error unknown parameter'.$p_view);
+ }
+ // Compute the widget
+ // Date
+ $date=new IDate();
+ $date->readOnly=$readonly;
+ $date->name="ag_timestamp";
+ $date->id="ag_timestamp";
+ $date->value=$this->ag_timestamp;
+
+ $remind_date=new IDate();
+ $remind_date->readOnly=$readonly;
+ $remind_date->name="ag_remind_date";
+ $remind_date->id="ag_remind_date";
+ $remind_date->value=$this->ag_remind_date;
+
+
+ // Doc Type
+ $doc_type=new ISelect();
+ $doc_type->name="dt_id";
+ $doc_type->value=$this->db->make_array("select dt_id,dt_value from
document_type order by dt_value", 1);
+ $doc_type->selected=$this->dt_id;
+ $doc_type->readOnly=$readonly;
+ $str_doc_type=$doc_type->input();
+
+ // Description
+ $desc=new ITextArea();
+ $desc->style=' class="itextarea" style="width:80%;margin-left:0px"';
+ $desc->name="ag_comment";
+ $desc->readOnly=$readonly;
+ $acomment=$this->db->get_array("SELECT agc_id, ag_id,
to_char(agc_date,'DD.MM.YYYY HH24:MI') as str_agc_date, agc_comment, tech_user
FROM action_gestion_comment where ag_id=$1
order by agc_id;", array($this->ag_id)
- );
+ );
- // List opération liées
- $operation = $this->db->get_array("select
ago_id,j.jr_id,j.jr_internal,j.jr_comment,to_char(j.jr_date,'DD.MM.YY') as
str_date
+ // List opération liées
+ $operation=$this->db->get_array("select
ago_id,j.jr_id,j.jr_internal,j.jr_comment,to_char(j.jr_date,'DD.MM.YY') as
str_date
from jrn as j join action_gestion_operation as ago on
(j.jr_id=ago.jr_id)
where ag_id=$1 order by jr_date", array($this->ag_id));
- $iconcerned = new IConcerned('operation');
+ $iconcerned=new IConcerned('operation');
- // List related action
- $action = $this->db->get_array("
+ // List related action
+ $action=$this->db->get_array("
select ag_id,ag_ref,substr(ag_title,1,40) as
sub_title,to_char(ag_timestamp,'DD.MM.YY') as str_date ,
ag_timestamp,dt_value
from action_gestion
@@ -209,515 +211,514 @@ class Follow_Up
or
ag_id in (select aga_least from
action_gestion_related where aga_greatest =$1)
order by ag_timestamp", array($this->ag_id));
- $iaction = new IRelated_Action('action');
- $iaction->value = (isset($this->action)) ? $this->action : "";
-
- // state
- // Retrieve the value
- $a = $this->db->make_array("select s_id,s_value from
document_state ");
- $state = new ISelect();
- $state->readOnly = $readonly;
- $state->name = "ag_state";
- $state->value = $a;
- $state->selected = $this->ag_state;
- $str_state = $state->input();
-
- // Retrieve the value if there is an attached doc
- $doc_ref = "";
- // Document id
-
- $h2 = new IHidden();
- $h2->name = "d_id";
- $h2->value = $this->d_id;
-
- if ($this->d_id != 0 && $this->d_id != "")
- {
- $h2->readonly = ($p_view == 'NEW') ? false : true;
- $doc = new Document($this->db, $this->d_id);
- $doc->get();
- if (strlen(trim($doc->d_lob)) != 0)
- {
- $d_id = new IHidden();
- $doc_ref = "<p> Document " . $doc->anchor() .
'</p>';
- $doc_ref.=$h2->input() . $d_id->input('d_id',
$this->d_id);
- }
- }
-
-
- // title
- $title = new IText();
- $title->readOnly = $readonly;
- $title->name = "ag_title";
- $title->value = $this->ag_title;
- $title->size = 60;
-
-
- // Priority of the ag_priority
- $ag_priority = new ISelect();
- $ag_priority->readOnly = $readonly;
- $ag_priority->name = "ag_priority";
- $ag_priority->selected = $this->ag_priority;
- $ag_priority->value = array(array('value' => 1, 'label' =>
'Haute'),
- array('value' => 2, 'label' => 'Moyenne'),
- array('value' => 3, 'label' => 'Basse')
- );
- $str_ag_priority = $ag_priority->input();
-
- // hour of the action (meeting) ag_hour
- $ag_hour = new IText();
- $ag_hour->readOnly = $readonly;
- $ag_hour->name = "ag_hour";
- $ag_hour->value = $this->ag_hour;
- $ag_hour->size = 6;
- $ag_hour->javascript = " onblur=check_hour('ag_hour');";
- $str_ag_hour = $ag_hour->input();
-
- // Profile in charged of the action
- $ag_dest = new ISelect();
- $ag_dest->readOnly = $readonly;
- $ag_dest->name = "ag_dest";
- // select profile
- $aAg_dest = $this->db->make_array("select p_id as value, " .
- "p_name as label " .
- " from profile where p_id in (select p_granted
from user_sec_action_profile where ua_right='W' and
p_id=".$g_user->get_profile().") order by 2");
-
- $ag_dest->value = $aAg_dest;
- $ag_dest->selected = $this->ag_dest;
- $str_ag_dest = $ag_dest->input();
-
- // ag_ref
- // Always false for update
-
- $client_label = new ISpan();
-
- /* Add button */
- $f_add_button = new IButton('add_card');
- $f_add_button->label = _('Créer une nouvelle fiche');
- $f_add_button->set_attribute('ipopup', 'ipop_newcard');
- $filter = $this->db->make_list('select fd_id from fiche_def ');
- $f_add_button->set_attribute('filter', $filter);
-
- $f_add_button->javascript = " select_card_type(this);";
- $str_add_button = $f_add_button->input();
-
- // f_id_dest sender
- if ($this->qcode_dest != NOTFOUND &&
strlen(trim($this->qcode_dest)) != 0)
- {
- $tiers = new Fiche($this->db);
- $tiers->get_by_qcode($this->qcode_dest);
- $qcode_dest_label = $tiers->strAttribut(1);
- $this->f_id_dest = $tiers->id;
- }
- else
- {
- $qcode_dest_label = ($this->f_id_dest == 0 ||
trim($this->qcode_dest) == "") ? 'Interne ' : 'Error';
- }
-
- $h_ag_id = new IHidden();
- // if concerns another action : show the link otherwise nothing
- //
+ $iaction=new IRelated_Action('action');
+ $iaction->value=(isset($this->action))?$this->action:"";
+
+ // state
+ // Retrieve the value
+ $a=$this->db->make_array("select s_id,s_value from document_state ");
+ $state=new ISelect();
+ $state->readOnly=$readonly;
+ $state->name="ag_state";
+ $state->value=$a;
+ $state->selected=$this->ag_state;
+ $str_state=$state->input();
+
+ // Retrieve the value if there is an attached doc
+ $doc_ref="";
+ // Document id
+
+ $h2=new IHidden();
+ $h2->name="d_id";
+ $h2->value=$this->d_id;
+
+ if ($this->d_id!=0&&$this->d_id!="")
+ {
+ $h2->readonly=($p_view=='NEW')?false:true;
+ $doc=new Document($this->db, $this->d_id);
+ $doc->get();
+ if (strlen(trim($doc->d_lob))!=0)
+ {
+ $d_id=new IHidden();
+ $doc_ref="<p> Document ".$doc->anchor().'</p>';
+ $doc_ref.=$h2->input().$d_id->input('d_id', $this->d_id);
+ }
+ }
+
+
+ // title
+ $title=new IText();
+ $title->readOnly=$readonly;
+ $title->name="ag_title";
+ $title->value=$this->ag_title;
+ $title->size=60;
+
+
+ // Priority of the ag_priority
+ $ag_priority=new ISelect();
+ $ag_priority->readOnly=$readonly;
+ $ag_priority->name="ag_priority";
+ $ag_priority->selected=$this->ag_priority;
+ $ag_priority->value=array(array('value'=>1, 'label'=>'Haute'),
+ array('value'=>2, 'label'=>'Moyenne'),
+ array('value'=>3, 'label'=>'Basse')
+ );
+ $str_ag_priority=$ag_priority->input();
+
+ // hour of the action (meeting) ag_hour
+ $ag_hour=new IText();
+ $ag_hour->readOnly=$readonly;
+ $ag_hour->name="ag_hour";
+ $ag_hour->value=$this->ag_hour;
+ $ag_hour->size=6;
+ $ag_hour->javascript=" onblur=check_hour('ag_hour');";
+ $str_ag_hour=$ag_hour->input();
+
+ // Profile in charged of the action
+ $ag_dest=new ISelect();
+ $ag_dest->readOnly=$readonly;
+ $ag_dest->name="ag_dest";
+ // select profile
+ $aAg_dest=$this->db->make_array("select p_id as value, ".
+ "p_name as label ".
+ " from profile where p_id in (select p_granted from
user_sec_action_profile where ua_right='W' and p_id=".$g_user->get_profile().")
order by 2");
+
+ $ag_dest->value=$aAg_dest;
+ $ag_dest->selected=$this->ag_dest;
+ $str_ag_dest=$ag_dest->input();
+
+ // ag_ref
+ // Always false for update
+
+ $client_label=new ISpan();
+
+ /* Add button */
+ $f_add_button=new IButton('add_card');
+ $f_add_button->label=_('Créer une nouvelle fiche');
+ $f_add_button->set_attribute('ipopup', 'ipop_newcard');
+ $filter=$this->db->make_list('select fd_id from fiche_def ');
+ $f_add_button->set_attribute('filter', $filter);
+
+ $f_add_button->javascript=" select_card_type(this);";
+ $str_add_button=$f_add_button->input();
+
+ // f_id_dest sender
+ if ($this->qcode_dest!=NOTFOUND&&strlen(trim($this->qcode_dest))!=0)
+ {
+ $tiers=new Fiche($this->db);
+ $tiers->get_by_qcode($this->qcode_dest);
+ $qcode_dest_label=$tiers->strAttribut(1);
+ $this->f_id_dest=$tiers->id;
+ }
+ else
+ {
+
$qcode_dest_label=($this->f_id_dest==0||trim($this->qcode_dest)=="")?'Interne
':'Error';
+ }
+
+ $h_ag_id=new IHidden();
+ // if concerns another action : show the link otherwise nothing
+ //
// sender
- $w = new ICard();
- $w->readOnly = $readonly;
- $w->jrn = 0;
- $w->name = 'qcode_dest';
- $w->value = ($this->f_id_dest != 0) ? $this->qcode_dest : "";
- $w->label = "";
- $list_recipient = $this->db->make_list('select fd_id from
fiche_def where frd_id in (14,25,8,9,16)');
- $w->extra = $list_recipient;
- $w->set_attribute('typecard', $list_recipient);
- $w->set_dblclick("fill_ipopcard(this);");
- $w->set_attribute('ipopup', 'ipopcard');
-
- // name of the field to update with the name of the card
- $w->set_attribute('label', 'qcode_dest_label');
- // name of the field to update with the name of the card
- $w->set_attribute('typecard', $w->extra);
- $w->set_function('fill_data');
- $w->javascript = sprintf('
onchange="fill_data_onchange(\'%s\');" ', $w->name);
-
- $sp = new ISpan();
- $sp->name = 'qcode_dest_label';
- $sp->value = $qcode_dest_label;
-
- // autre - a refaire pour avoir plusieurs fiches
- // Sur le modèle des tags
- $ag_contact = new ICard();
- $ag_contact->readOnly = $readonly;
- $ag_contact->jrn = 0;
- $ag_contact->name = 'ag_contact';
- $ag_contact->value = '';
- $ag_contact->set_attribute('ipopup', 'ipopcard');
-
- if ($this->ag_contact != 0)
- {
- $contact = new Fiche($this->db, $this->ag_contact);
- $ag_contact->value = $contact->get_quick_code();
- }
-
- $ag_contact->label = "";
-
- $list_contact = $this->db->make_list('select fd_id from
fiche_def where frd_id=16');
- $ag_contact->extra = $list_contact;
-
- $ag_contact->set_dblclick("fill_ipopcard(this);");
- // name of the field to update with the name of the card
- $ag_contact->set_attribute('label', 'ag_contact_label');
- // name of the field to update with the name of the card
- $ag_contact->set_attribute('typecard', $list_contact);
- $ag_contact->set_function('fill_data');
- $ag_contact->javascript = sprintf('
onchange="fill_data_onchange(\'%s\');" ', $ag_contact->name);
-
- $spcontact = new ISpan();
- $spcontact->name = 'ag_contact_label';
- $spcontact->value = '';
- $fiche_contact = new Fiche($this->db);
- $fiche_contact->get_by_qcode($this->ag_contact);
- if ($fiche_contact->id != 0)
- {
- $spcontact->value =
$fiche_contact->strAttribut(ATTR_DEF_NAME);
- }
-
-
- $h_agrefid = new IHidden();
- $iag_ref=new IText("ag_ref");
- $iag_ref->value=$this->ag_ref;
- $iag_ref->readOnly = ($p_view == "NEW" ||$p_view ==
'READ')?true:false;
- $str_ag_ref =$iag_ref->input();
- // Preparing the return string
- $r = "";
-
- /* for new files */
- $upload = new IFile();
- $upload->name = "file_upload[]";
- $upload->readOnly=$readonly;
- $upload->value = "";
- $aAttachedFile = $this->db->get_array('select
d_id,d_filename,d_description,d_mimetype,' .
- '\'show_document.php?' .
- Dossier::get() . '&d_id=\'||d_id as link' .
- ' from document where ag_id=$1',
array($this->ag_id));
- /* create the select for document */
- $aDocMod = new ISelect();
- $aDocMod->name = 'doc_mod';
- $aDocMod->value = $this->db->make_array('select
md_id,dt_value||\' : \'||md_name as md_name' .
- ' from document_modele join document_type on
(md_type=dt_id)' .
- ' order by md_name');
- $str_select_doc = $aDocMod->input();
- /* if no document then do not show the generate button */
- if (empty($aDocMod->value) )
- $str_submit_generate = "";
- else
- $str_submit_generate = HtmlInput::submit("generate",
_("Génére le document"));
-
- $ag_id = $this->ag_id;
-
- /* fid = Icard */
- $icard = new ICard();
- $icard->jrn = 0;
- $icard->table = 0;
- $icard->extra2 = 'QuickCode';
- $icard->noadd = "no";
- $icard->extra = 'all';
-
- /* Text desc */
- $text = new IText();
- $num = new INum();
-
- /* TVA */
- $itva = new ITva_Popup($this->db);
- $itva->in_table = true;
- $aCard=array();
- /* create aArticle for the detail section */
-
$article_count=(count($this->aAction_detail)==0)?MAX_ARTICLE:count($this->aAction_detail);
-
- for ($i = 0; $i < $article_count; $i++)
- {
- /* fid = Icard */
- $icard = new ICard();
- $icard->jrn = 0;
- $icard->table = 0;
- $icard->noadd = "no";
- $icard->extra = 'all';
- $icard->name = "e_march" . $i;
- $tmp_ad = (isset($this->aAction_detail[$i])) ?
$this->aAction_detail[$i] : false;
- $icard->readOnly=$readonly;
- $icard->value = '';
- $aCard[$i]=0;
- if ($tmp_ad)
- {
- $march = new Fiche($this->db);
- $f = $tmp_ad->get_parameter('qcode');
- if ($f != 0)
- {
- $march->id = $f;
- $icard->value =
$march->get_quick_code();
- $aCard[$i]=$f;
- }
- }
- $icard->set_dblclick("fill_ipopcard(this);");
- // name of the field to update with the name of the card
- $icard->set_attribute('label', "e_march" . $i .
"_label");
- // name of the field to update with the name of the card
- $icard->set_attribute('typecard', $icard->extra);
- $icard->set_attribute('ipopup', 'ipopcard');
- $icard->set_function('fill_data');
- $icard->javascript = sprintf('
onchange="fill_data_onchange(\'%s\');" ', $icard->name);
-
- $aArticle[$i]['fid'] = $icard->search() .
$icard->input();
-
- $text->javascript = ' onchange="clean_tva(' . $i .
');compute_ledger(' . $i . ')"';
- $text->css_size="100%";
- $text->name = "e_march" . $i . "_label";
- $text->id = "e_march" . $i . "_label";
- $text->size = 40;
- $text->value = ($tmp_ad) ?
$tmp_ad->get_parameter('text') : "";
- $text->readOnly=$readonly;
- $aArticle[$i]['desc'] = $text->input();
-
- $num->javascript = '
onchange="format_number(this);clean_tva(' . $i . ');compute_ledger(' . $i .
')"';
- $num->name = "e_march" . $i . "_price";
- $num->id = "e_march" . $i . "_price";
- $num->size = 8;
- $num->readOnly=$readonly;
- $num->value = ($tmp_ad) ?
$tmp_ad->get_parameter('price_unit') : 0;
- $aArticle[$i]['pu'] = $num->input();
-
- $num->name = "e_quant" . $i;
- $num->id = "e_quant" . $i;
- $num->size = 8;
- $num->value = ($tmp_ad) ?
$tmp_ad->get_parameter('quantity') : 0;
- $aArticle[$i]['quant'] = $num->input();
-
- $itva->name = 'e_march' . $i . '_tva_id';
- $itva->id = 'e_march' . $i . '_tva_id';
- $itva->value = ($tmp_ad) ?
$tmp_ad->get_parameter('tva_id') : 0;
- $itva->readOnly=$readonly;
- $itva->js = ' onchange="format_number(this);clean_tva('
. $i . ');compute_ledger(' . $i . ')"';
- $itva->set_attribute('compute', $i);
-
- $aArticle[$i]['tvaid'] = $itva->input();
-
- $num->name = "e_march" . $i . "_tva_amount";
- $num->id = "e_march" . $i . "_tva_amount";
- $num->value = ($tmp_ad) ?
$tmp_ad->get_parameter('tva_amount') : 0;
- $num->javascript = " onchange=\"compute_ledger('" . $i
." ')\"";
- $num->size = 8;
- $aArticle[$i]['tva'] = $num->input();
-
- $num->name = "tvac_march" . $i;
- $num->id = "tvac_march" . $i;
- $num->value = ($tmp_ad) ?
$tmp_ad->get_parameter('total') : 0;
- $num->size = 8;
- $aArticle[$i]['tvac'] = $num->input();
-
- $aArticle[$i]['hidden_htva'] =
HtmlInput::hidden('htva_march' . $i, 0);
- $aArticle[$i]['hidden_tva'] =
HtmlInput::hidden('tva_march' . $i, 0);
- $aArticle[$i]['ad_id'] = ($tmp_ad) ?
HtmlInput::hidden('ad_id' . $i, $tmp_ad->get_parameter('id')) :
HtmlInput::hidden('ad_id' . $i, 0);
- }
-
- /* Add the needed hidden values */
- $r.=dossier::hidden();
-
- /* add the number of item */
- $Hid = new IHidden();
- $r.=$Hid->input("nb_item", $article_count);
-
$r.=HtmlInput::request_to_hidden(array("closed_action","remind_date_end","remind_date","sag_ref","only_internal","state","qcode",
"ag_dest_query", "action_query", "tdoc", "date_start", "date_end",
"hsstate","searchtag"));
- $a_tag=$this->tag_get();
- $menu=new Default_Menu();
- /* get template */
- ob_start();
- require 'template/detail-action.php';
- $content = ob_get_contents();
- ob_end_clean();
- $r.=$content;
-
- //hidden
- $r.="<p>";
- $r.=$h2->input();
- $r.=$h_ag_id->input('ag_id', $this->ag_id);
- $hidden2 = new IHidden();
- $r.=$hidden2->input('f_id_dest', $this->f_id_dest);
- $r.="</p>";
-
- return $r;
- }
-
- //----------------------------------------------------------------------
- /**\brief This function shows the detail of an action thanks the ag_id
- */
- function get()
- {
- $sql = "select ag_id,to_char (ag_timestamp,'DD.MM.YYYY') as
ag_timestamp," .
- "
f_id_dest,ag_title,ag_ref,d_id,ag_type,ag_state, ag_owner, " .
- " ag_dest, ag_hour, ag_priority,
ag_contact,to_char (ag_remind_date,'DD.MM.YYYY') as ag_remind_date " .
- " from action_gestion left join document using
(ag_id) where ag_id=" . $this->ag_id;
- $r = $this->db->exec_sql($sql);
- $row = Database::fetch_all($r);
- if ($row == false){
- $this->ag_id=0;
- return;
- }
- $this->ag_timestamp = $row[0]['ag_timestamp'];
- $this->ag_contact = $row[0]['ag_contact'];
- $this->f_id_dest = $row[0]['f_id_dest'];
- $this->ag_title = $row[0]['ag_title'];
- $this->ag_type = $row[0]['ag_type'];
- $this->ag_ref = $row[0]['ag_ref'];
- $this->ag_state = $row[0]['ag_state'];
- $this->d_id = $row[0]['d_id'];
- $this->ag_dest = $row[0]['ag_dest'];
- $this->ag_hour = $row[0]['ag_hour'];
- $this->ag_priority = $row[0]['ag_priority'];
- $this->ag_remind_date = $row[0]['ag_remind_date'];
- $this->ag_owner= $row[0]['ag_owner'];
-
- $action_detail = new Follow_Up_Detail($this->db);
- $action_detail->set_parameter('ag_id', $this->ag_id);
- $this->aAction_detail = $action_detail->load_all();
-
-
- // if there is no document set 0 to d_id
- if ($this->d_id == "")
- $this->d_id = 0;
- // if there is a document fill the object
- if ($this->d_id != 0)
- {
- $this->state = $row['0']['ag_state'];
- $this->ag_state = $row[0]['ag_state'];
- }
- $this->dt_id = $this->ag_type;
- $aexp = new Fiche($this->db, $this->f_id_dest);
- $this->qcode_dest = $aexp->strAttribut(ATTR_DEF_QUICKCODE);
- }
-
- /**
- * \brief Save the document and propose to save the generated document
or
- * to upload one, the data are included except the file. Temporary the
generated
- * document is save.
- * The files into $_FILES['file_upload'] will be saved
- * @note the array $_POST['input_desc'] must be set, contains the
description
- * of the uploaded files
- *
- * \return
- */
-
- function save()
- {
-
- // Get The sequence id,
- $seq_name = "seq_doc_type_" . $this->dt_id;
- $str_file = "";
- $add_file = '';
-
- // f_id exp
- $exp = new Fiche($this->db);
- $exp->get_by_qcode($this->qcode_dest);
- $exp->id=($exp->id==0)?null:$exp->id;
-
- $contact = new Fiche($this->db);
- $contact->get_by_qcode($this->ag_contact);
-
- if (trim($this->ag_title) == "")
- {
- $doc_mod = new document_type($this->db);
- $doc_mod->dt_id = $this->dt_id;
- $doc_mod->get();
- $this->ag_title = $doc_mod->dt_value;
- }
- $this->ag_id =
$this->db->get_next_seq('action_gestion_ag_id_seq');
-
- // Create the reference
- $ag_ref=$this->db->get_value('select dt_prefix from
document_type where
dt_id=$1',array($this->dt_id)).'-'.$this->db->get_next_seq($seq_name);
- $this->ag_ref = $ag_ref;
-
- // save into the database
- if ($this->ag_remind_date != null || $this->ag_remind_date !=
'')
- {
- $sql = "insert into action_gestion" .
-
"(ag_id,ag_timestamp,ag_type,ag_title,f_id_dest,ag_ref, ag_dest, " .
- " ag_hour,
ag_priority,ag_owner,ag_contact,ag_state,ag_remind_date) " .
- " values
($1,to_date($2,'DD.MM.YYYY'),$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,to_date($13,'DD.MM.YYYY'))";
- }
- else
- {
- $this->ag_remind_date = null;
- $sql = "insert into action_gestion" .
-
"(ag_id,ag_timestamp,ag_type,ag_title,f_id_dest,ag_ref, ag_dest, " .
- " ag_hour,
ag_priority,ag_owner,ag_contact,ag_state,ag_remind_date) " .
- " values
($1,to_date($2,'DD.MM.YYYY'),$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13)";
- }
- $this->db->exec_sql($sql, array($this->ag_id, /* 1 */
- $this->ag_timestamp, /* 2 */
- $this->dt_id, /* 3 */
- $this->ag_title, /* 4 */
- $exp->id, /* 5 */
- $ag_ref, /* 6 */
- $this->ag_dest, /* 7 */
- $this->ag_hour, /* 8 */
- $this->ag_priority, /* 9 */
- $_SESSION['g_user'], /* 10 */
- $contact->id, /* 11 */
- $this->ag_state, /* 12 */
- $this->ag_remind_date /* 13 */
- )
- );
-
- /* insert also the details */
- for ($i = 0; $i < $_POST['nb_item']; $i++)
- {
- $act = new Follow_Up_Detail($this->db);
- $act->from_array($_POST, $i);
- if ($act->f_id == 0)
- continue;
- $act->ag_id = $this->ag_id;
- $act->save();
- }
-
- /* Upload the documents */
- $doc = new Document($this->db);
- $doc->Upload($this->ag_id);
- if (trim($this->ag_comment) != '')
- {
- $this->db->exec_sql("insert into action_gestion_comment
(ag_id,tech_user,agc_comment) values ($1,$2,$3)"
- , array($this->ag_id,
$_SESSION['g_user'], $this->ag_comment));
- }
- $this->insert_operation();
- $this->insert_action();
- }
-
- /**
- * myList($p_base, $p_filter = "", $p_search = "")
- * Show list of action by default if sorted on date
- * @param $p_base base url with ac...
- * @param $p_filter filters on the document_type
- * @param $p_search must a valid sql command ( ex 'and ag_title like
upper('%hjkh%'))
- * @return string containing html code
- */
-
- function myList($p_base, $p_filter = "", $p_search = "")
- {
- // for the sort
- $url =
HtmlInput::get_to_string(array("closed_action","remind_date_end","remind_date","sag_ref","only_internal","state","qcode",
"ag_dest_query", "action_query", "tdoc", "date_start", "date_end",
"hsstate","searchtag")) . '&' . $p_base;
-
- $table = new Sort_Table();
- $table->add('Date Doc.', $url, 'order by ag_timestamp asc',
'order by ag_timestamp desc', 'da', 'dd');
- $table->add('Date Comm.', $url, 'order by last_comment', 'order
by last_comment desc', 'dca', 'dcd');
- $table->add('Date Limite', $url, 'order by ag_remind_date asc',
'order by ag_remind_date desc', 'ra', 'rd');
- $table->add('Tag', $url, 'order by tags asc', 'order by tags
desc', 'taa', 'tad');
- $table->add('Réf.', $url, 'order by ag_ref asc', 'order by
ag_ref desc', 'ra', 'rd');
- $table->add('Groupe', $url, "order by coalesce((select p_name
from profile where p_id=ag_dest),'Aucun groupe')", "order by coalesce((select
p_name from profile where p_id=ag_dest),'Aucun groupe') desc", 'dea', 'ded');
- $table->add('Dest/Exp', $url, 'order by name asc', 'order by
name desc', 'ea', 'ed');
- $table->add('Titre', $url, 'order by ag_title asc', 'order by
ag_title desc', 'ta', 'td');
-
- $ord = (!isset($_GET['ord'])) ? "dcd" : $_GET['ord'];
- $sort = $table->get_sql_order($ord);
-
- if (strlen(trim($p_filter)) != 0)
- $p_filter_doc = " dt_id in ( $p_filter )";
- else
- $p_filter_doc = " 1=1 ";
-
- $sql = "
+ $w=new ICard();
+ $w->readOnly=$readonly;
+ $w->jrn=0;
+ $w->name='qcode_dest';
+ $w->value=($this->f_id_dest!=0)?$this->qcode_dest:"";
+ $w->label="";
+ $list_recipient=$this->db->make_list('select fd_id from fiche_def
where frd_id in (14,25,8,9,16)');
+ $w->extra=$list_recipient;
+ $w->set_attribute('typecard', $list_recipient);
+ $w->set_dblclick("fill_ipopcard(this);");
+ $w->set_attribute('ipopup', 'ipopcard');
+
+ // name of the field to update with the name of the card
+ $w->set_attribute('label', 'qcode_dest_label');
+ // name of the field to update with the name of the card
+ $w->set_attribute('typecard', $w->extra);
+ $w->set_function('fill_data');
+ $w->javascript=sprintf(' onchange="fill_data_onchange(\'%s\');" ',
$w->name);
+
+ $sp=new ISpan();
+ $sp->name='qcode_dest_label';
+ $sp->value=$qcode_dest_label;
+
+ // autre - a refaire pour avoir plusieurs fiches
+ // Sur le modèle des tags
+ $ag_contact=new ICard();
+ $ag_contact->readOnly=$readonly;
+ $ag_contact->jrn=0;
+ $ag_contact->name='ag_contact';
+ $ag_contact->value='';
+ $ag_contact->set_attribute('ipopup', 'ipopcard');
+
+ if ($this->ag_contact!=0)
+ {
+ $contact=new Fiche($this->db, $this->ag_contact);
+ $ag_contact->value=$contact->get_quick_code();
+ }
+
+ $ag_contact->label="";
+
+ $list_contact=$this->db->make_list('select fd_id from fiche_def where
frd_id=16');
+ $ag_contact->extra=$list_contact;
+
+ $ag_contact->set_dblclick("fill_ipopcard(this);");
+ // name of the field to update with the name of the card
+ $ag_contact->set_attribute('label', 'ag_contact_label');
+ // name of the field to update with the name of the card
+ $ag_contact->set_attribute('typecard', $list_contact);
+ $ag_contact->set_function('fill_data');
+ $ag_contact->javascript=sprintf('
onchange="fill_data_onchange(\'%s\');" ', $ag_contact->name);
+
+ $spcontact=new ISpan();
+ $spcontact->name='ag_contact_label';
+ $spcontact->value='';
+ $fiche_contact=new Fiche($this->db);
+ $fiche_contact->get_by_qcode($this->ag_contact);
+ if ($fiche_contact->id!=0)
+ {
+ $spcontact->value=$fiche_contact->strAttribut(ATTR_DEF_NAME);
+ }
+
+
+ $h_agrefid=new IHidden();
+ $iag_ref=new IText("ag_ref");
+ $iag_ref->value=$this->ag_ref;
+ $iag_ref->readOnly=($p_view=="NEW"||$p_view=='READ')?true:false;
+ $str_ag_ref=$iag_ref->input();
+ // Preparing the return string
+ $r="";
+
+ /* for new files */
+ $upload=new IFile();
+ $upload->name="file_upload[]";
+ $upload->readOnly=$readonly;
+ $upload->value="";
+ $aAttachedFile=$this->db->get_array('select
d_id,d_filename,d_description,d_mimetype,'.
+ '\'show_document.php?'.
+ Dossier::get().'&d_id=\'||d_id as link'.
+ ' from document where ag_id=$1', array($this->ag_id));
+ /* create the select for document */
+ $aDocMod=new ISelect();
+ $aDocMod->name='doc_mod';
+ $aDocMod->value=$this->db->make_array('select md_id,dt_value||\' :
\'||md_name as md_name'.
+ ' from document_modele join document_type on (md_type=dt_id)'.
+ ' order by md_name');
+ $str_select_doc=$aDocMod->input();
+ /* if no document then do not show the generate button */
+ if (empty($aDocMod->value))
+ $str_submit_generate="";
+ else
+ $str_submit_generate=HtmlInput::submit("generate", _("Génére le
document"));
+
+ $ag_id=$this->ag_id;
+
+ /* fid = Icard */
+ $icard=new ICard();
+ $icard->jrn=0;
+ $icard->table=0;
+ $icard->extra2='QuickCode';
+ $icard->noadd="no";
+ $icard->extra='all';
+
+ /* Text desc */
+ $text=new IText();
+ $num=new INum();
+
+ /* TVA */
+ $itva=new ITva_Popup($this->db);
+ $itva->in_table=true;
+ $aCard=array();
+ /* create aArticle for the detail section */
+
$article_count=(count($this->aAction_detail)==0)?MAX_ARTICLE:count($this->aAction_detail);
+
+ for ($i=0; $i<$article_count; $i++)
+ {
+ /* fid = Icard */
+ $icard=new ICard();
+ $icard->jrn=0;
+ $icard->table=0;
+ $icard->noadd="no";
+ $icard->extra='all';
+ $icard->name="e_march".$i;
+
$tmp_ad=(isset($this->aAction_detail[$i]))?$this->aAction_detail[$i]:false;
+ $icard->readOnly=$readonly;
+ $icard->value='';
+ $aCard[$i]=0;
+ if ($tmp_ad)
+ {
+ $march=new Fiche($this->db);
+ $f=$tmp_ad->get_parameter('qcode');
+ if ($f!=0)
+ {
+ $march->id=$f;
+ $icard->value=$march->get_quick_code();
+ $aCard[$i]=$f;
+ }
+ }
+ $icard->set_dblclick("fill_ipopcard(this);");
+ // name of the field to update with the name of the card
+ $icard->set_attribute('label', "e_march".$i."_label");
+ // name of the field to update with the name of the card
+ $icard->set_attribute('typecard', $icard->extra);
+ $icard->set_attribute('ipopup', 'ipopcard');
+ $icard->set_function('fill_data');
+ $icard->javascript=sprintf('
onchange="fill_data_onchange(\'%s\');" ', $icard->name);
+
+ $aArticle[$i]['fid']=$icard->search().$icard->input();
+
+ $text->javascript='
onchange="clean_tva('.$i.');compute_ledger('.$i.')"';
+ $text->css_size="100%";
+ $text->name="e_march".$i."_label";
+ $text->id="e_march".$i."_label";
+ $text->size=40;
+ $text->value=($tmp_ad)?$tmp_ad->get_parameter('text'):"";
+ $text->readOnly=$readonly;
+ $aArticle[$i]['desc']=$text->input();
+
+ $num->javascript='
onchange="format_number(this);clean_tva('.$i.');compute_ledger('.$i.')"';
+ $num->name="e_march".$i."_price";
+ $num->id="e_march".$i."_price";
+ $num->size=8;
+ $num->readOnly=$readonly;
+ $num->value=($tmp_ad)?$tmp_ad->get_parameter('price_unit'):0;
+ $aArticle[$i]['pu']=$num->input();
+
+ $num->name="e_quant".$i;
+ $num->id="e_quant".$i;
+ $num->size=8;
+ $num->value=($tmp_ad)?$tmp_ad->get_parameter('quantity'):0;
+ $aArticle[$i]['quant']=$num->input();
+
+ $itva->name='e_march'.$i.'_tva_id';
+ $itva->id='e_march'.$i.'_tva_id';
+ $itva->value=($tmp_ad)?$tmp_ad->get_parameter('tva_id'):0;
+ $itva->readOnly=$readonly;
+ $itva->js='
onchange="format_number(this);clean_tva('.$i.');compute_ledger('.$i.')"';
+ $itva->set_attribute('compute', $i);
+
+ $aArticle[$i]['tvaid']=$itva->input();
+
+ $num->name="e_march".$i."_tva_amount";
+ $num->id="e_march".$i."_tva_amount";
+ $num->value=($tmp_ad)?$tmp_ad->get_parameter('tva_amount'):0;
+ $num->javascript=" onchange=\"compute_ledger('".$i." ')\"";
+ $num->size=8;
+ $aArticle[$i]['tva']=$num->input();
+
+ $num->name="tvac_march".$i;
+ $num->id="tvac_march".$i;
+ $num->value=($tmp_ad)?$tmp_ad->get_parameter('total'):0;
+ $num->size=8;
+ $aArticle[$i]['tvac']=$num->input();
+
+ $aArticle[$i]['hidden_htva']=HtmlInput::hidden('htva_march'.$i, 0);
+ $aArticle[$i]['hidden_tva']=HtmlInput::hidden('tva_march'.$i, 0);
+ $aArticle[$i]['ad_id']=($tmp_ad)?HtmlInput::hidden('ad_id'.$i,
$tmp_ad->get_parameter('id')):HtmlInput::hidden('ad_id'.$i, 0);
+ }
+
+ /* Add the needed hidden values */
+ $r.=dossier::hidden();
+
+ /* add the number of item */
+ $Hid=new IHidden();
+ $r.=$Hid->input("nb_item", $article_count);
+ $r.=HtmlInput::request_to_hidden(array("closed_action",
"remind_date_end", "remind_date", "sag_ref", "only_internal", "state", "qcode",
"ag_dest_query", "action_query", "tdoc", "date_start", "date_end", "hsstate",
"searchtag"));
+ $a_tag=$this->tag_get();
+ $menu=new Default_Menu();
+ /* get template */
+ ob_start();
+ require 'template/detail-action.php';
+ $content=ob_get_contents();
+ ob_end_clean();
+ $r.=$content;
+
+ //hidden
+ $r.="<p>";
+ $r.=$h2->input();
+ $r.=$h_ag_id->input('ag_id', $this->ag_id);
+ $hidden2=new IHidden();
+ $r.=$hidden2->input('f_id_dest', $this->f_id_dest);
+ $r.="</p>";
+
+ return $r;
+ }
+
+ //----------------------------------------------------------------------
+ /* * \brief This function shows the detail of an action thanks the
ag_id
+ */
+ function get()
+ {
+ $sql="select ag_id,to_char (ag_timestamp,'DD.MM.YYYY') as
ag_timestamp,".
+ " f_id_dest,ag_title,ag_ref,d_id,ag_type,ag_state, ag_owner, ".
+ " ag_dest, ag_hour, ag_priority, ag_contact,to_char
(ag_remind_date,'DD.MM.YYYY') as ag_remind_date ".
+ " from action_gestion left join document using (ag_id) where
ag_id=".$this->ag_id;
+ $r=$this->db->exec_sql($sql);
+ $row=Database::fetch_all($r);
+ if ($row==false)
+ {
+ $this->ag_id=0;
+ return;
+ }
+ $this->ag_timestamp=$row[0]['ag_timestamp'];
+ $this->ag_contact=$row[0]['ag_contact'];
+ $this->f_id_dest=$row[0]['f_id_dest'];
+ $this->ag_title=$row[0]['ag_title'];
+ $this->ag_type=$row[0]['ag_type'];
+ $this->ag_ref=$row[0]['ag_ref'];
+ $this->ag_state=$row[0]['ag_state'];
+ $this->d_id=$row[0]['d_id'];
+ $this->ag_dest=$row[0]['ag_dest'];
+ $this->ag_hour=$row[0]['ag_hour'];
+ $this->ag_priority=$row[0]['ag_priority'];
+ $this->ag_remind_date=$row[0]['ag_remind_date'];
+ $this->ag_owner=$row[0]['ag_owner'];
+
+ $action_detail=new Follow_Up_Detail($this->db);
+ $action_detail->set_parameter('ag_id', $this->ag_id);
+ $this->aAction_detail=$action_detail->load_all();
+
+
+ // if there is no document set 0 to d_id
+ if ($this->d_id=="")
+ $this->d_id=0;
+ // if there is a document fill the object
+ if ($this->d_id!=0)
+ {
+ $this->state=$row['0']['ag_state'];
+ $this->ag_state=$row[0]['ag_state'];
+ }
+ $this->dt_id=$this->ag_type;
+ $aexp=new Fiche($this->db, $this->f_id_dest);
+ $this->qcode_dest=$aexp->strAttribut(ATTR_DEF_QUICKCODE);
+ }
+
+ /**
+ * \brief Save the document and propose to save the generated document or
+ * to upload one, the data are included except the file. Temporary the
generated
+ * document is save.
+ * The files into $_FILES['file_upload'] will be saved
+ * @note the array $_POST['input_desc'] must be set, contains the
description
+ * of the uploaded files
+ *
+ * \return
+ */
+ function save()
+ {
+
+ // Get The sequence id,
+ $seq_name="seq_doc_type_".$this->dt_id;
+ $str_file="";
+ $add_file='';
+
+ // f_id exp
+ $exp=new Fiche($this->db);
+ $exp->get_by_qcode($this->qcode_dest);
+ $exp->id=($exp->id==0)?null:$exp->id;
+
+ $contact=new Fiche($this->db);
+ $contact->get_by_qcode($this->ag_contact);
+
+ if (trim($this->ag_title)=="")
+ {
+ $doc_mod=new document_type($this->db);
+ $doc_mod->dt_id=$this->dt_id;
+ $doc_mod->get();
+ $this->ag_title=$doc_mod->dt_value;
+ }
+ $this->ag_id=$this->db->get_next_seq('action_gestion_ag_id_seq');
+
+ // Create the reference
+ $ag_ref=$this->db->get_value('select dt_prefix from document_type
where dt_id=$1', array($this->dt_id)).'-'.$this->db->get_next_seq($seq_name);
+ $this->ag_ref=$ag_ref;
+
+ // save into the database
+ if ($this->ag_remind_date!=null||$this->ag_remind_date!='')
+ {
+ $sql="insert into action_gestion".
+ "(ag_id,ag_timestamp,ag_type,ag_title,f_id_dest,ag_ref,
ag_dest, ".
+ " ag_hour,
ag_priority,ag_owner,ag_contact,ag_state,ag_remind_date) ".
+ " values
($1,to_date($2,'DD.MM.YYYY'),$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,to_date($13,'DD.MM.YYYY'))";
+ }
+ else
+ {
+ $this->ag_remind_date=null;
+ $sql="insert into action_gestion".
+ "(ag_id,ag_timestamp,ag_type,ag_title,f_id_dest,ag_ref,
ag_dest, ".
+ " ag_hour,
ag_priority,ag_owner,ag_contact,ag_state,ag_remind_date) ".
+ " values
($1,to_date($2,'DD.MM.YYYY'),$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13)";
+ }
+ $this->db->exec_sql($sql, array($this->ag_id, /* 1 */
+ $this->ag_timestamp, /* 2 */
+ $this->dt_id, /* 3 */
+ $this->ag_title, /* 4 */
+ $exp->id, /* 5 */
+ $ag_ref, /* 6 */
+ $this->ag_dest, /* 7 */
+ $this->ag_hour, /* 8 */
+ $this->ag_priority, /* 9 */
+ $_SESSION['g_user'], /* 10 */
+ $contact->id, /* 11 */
+ $this->ag_state, /* 12 */
+ $this->ag_remind_date /* 13 */
+ )
+ );
+
+ /* insert also the details */
+ for ($i=0; $i<$_POST['nb_item']; $i++)
+ {
+ $act=new Follow_Up_Detail($this->db);
+ $act->from_array($_POST, $i);
+ if ($act->f_id==0)
+ continue;
+ $act->ag_id=$this->ag_id;
+ $act->save();
+ }
+
+ /* Upload the documents */
+ $doc=new Document($this->db);
+ $doc->Upload($this->ag_id);
+ if (trim($this->ag_comment)!='')
+ {
+ $this->db->exec_sql("insert into action_gestion_comment
(ag_id,tech_user,agc_comment) values ($1,$2,$3)"
+ , array($this->ag_id, $_SESSION['g_user'],
$this->ag_comment));
+ }
+ $this->insert_operation();
+ $this->insert_action();
+ }
+
+ /**
+ * myList($p_base, $p_filter = "", $p_search = "")
+ * Show list of action by default if sorted on date
+ * @param $p_base base url with ac...
+ * @param $p_filter filters on the document_type
+ * @param $p_search must a valid sql command ( ex 'and ag_title like
upper('%hjkh%'))
+ * @return string containing html code
+ */
+ function myList($p_base, $p_filter="", $p_search="")
+ {
+ // for the sort
+ $url=HtmlInput::get_to_string(array("closed_action",
"remind_date_end", "remind_date", "sag_ref", "only_internal", "state", "qcode",
"ag_dest_query", "action_query", "tdoc", "date_start", "date_end", "hsstate",
"searchtag")).'&'.$p_base;
+
+ $table=new Sort_Table();
+ $table->add('Date Doc.', $url, 'order by ag_timestamp asc', 'order by
ag_timestamp desc', 'da', 'dd');
+ $table->add('Date Comm.', $url, 'order by last_comment', 'order by
last_comment desc', 'dca', 'dcd');
+ $table->add('Date Limite', $url, 'order by ag_remind_date asc', 'order
by ag_remind_date desc', 'ra', 'rd');
+ $table->add('Tag', $url, 'order by tags asc', 'order by tags desc',
'taa', 'tad');
+ $table->add('Réf.', $url, 'order by ag_ref asc', 'order by ag_ref
desc', 'ra', 'rd');
+ $table->add('Groupe', $url, "order by coalesce((select p_name from
profile where p_id=ag_dest),'Aucun groupe')", "order by coalesce((select p_name
from profile where p_id=ag_dest),'Aucun groupe') desc", 'dea', 'ded');
+ $table->add('Dest/Exp', $url, 'order by name asc', 'order by name
desc', 'ea', 'ed');
+ $table->add('Titre', $url, 'order by ag_title asc', 'order by ag_title
desc', 'ta', 'td');
+
+ $ord=(!isset($_GET['ord']))?"dcd":$_GET['ord'];
+ $sort=$table->get_sql_order($ord);
+
+ if (strlen(trim($p_filter))!=0)
+ $p_filter_doc=" dt_id in ( $p_filter )";
+ else
+ $p_filter_doc=" 1=1 ";
+
+ $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_timestamp),'DD.MM.YY') as str_last_comment,
@@ -732,661 +733,672 @@ class Follow_Up
join document_type on (ag_type=dt_id)
join document_state on (ag_state=s_id)
where $p_filter_doc $p_search $sort";
- $max_line = $this->db->count_sql($sql);
- $step = $_SESSION['g_pagesize'];
- $page = (isset($_GET['offset'])) ? $_GET['page'] : 1;
- $offset = (isset($_GET['offset'])) ?
Database::escape_string($_GET['offset']) : 0;
- if ($step != -1)
- $limit = " LIMIT $step OFFSET $offset ";
- else
- $limit = '';
- $bar = navigation_bar($offset, $max_line, $step, $page);
-
- $Res = $this->db->exec_sql($sql . $limit);
- $a_row = Database::fetch_all($Res);
-
- $r = "";
- $r.='<p>'.$bar.'</p>';
- $r.='<table class="document">';
- $r.="<tr>";
- $r.='<th name="ag_id_td" style="display:none" >'.
ICheckBox::toggle_checkbox('ag','list_ag_frm').'</th>';
- $r.='<th>' . $table->get_header(0) . '</th>';
- $r.='<th>' . $table->get_header(1) . '</th>';
- $r.='<th>' . $table->get_header(2) . '</th>';
- $r.='<th>' . $table->get_header(3) . '</th>';
- $r.='<th>' . $table->get_header(4) . '</th>';
- $r.='<th>' . $table->get_header(5) . '</th>';
- $r.='<th>' . $table->get_header(6) . '</th>';
- $r.='<th>' . $table->get_header(7) . '</th>';
- $r.=th('Priorité');
- $r.="</tr>";
-
-
- // if there are no records return a message
- if (sizeof($a_row) == 0 or $a_row == false)
- {
- $r = '<div style="clear:both">';
- $r.='<hr>Aucun enregistrement trouvé';
- $r.="</div>";
- return $r;
- }
- $today = date('d.m.Y');
- $i = 0;
- $checkbox=new ICheckBox("mag_id[]");
- //show the sub_action
- foreach ($a_row as $row)
- {
- $href = '<A class="document" HREF="do.php?' . $p_base
.HtmlInput::get_to_string(array("closed_action","remind_date_end","remind_date","sag_ref","only_internal","state","gDossier",
"qcode", "ag_dest_query", "action_query", "tdoc", "date_start", "date_end",
"hsstate", "searchtag","ac"),"&") . '&sa=detail&ag_id=' . $row['ag_id'] . '">';
- $i++;
- $tr = ($i % 2 == 0) ? 'even' : 'odd';
- if ($row['ag_priority'] < 2)
- $tr = 'priority1';
- $st = '';
- if ($row['my_date'] == $today)
- $st = ' style="font-weight:bold; border:2px
solid orange;"';
- $date_remind = format_date($row['my_remind'],
'DD.MM.YYYY', 'YYYYMMDD');
- $date_today = date('Ymd');
- if ($date_remind != "" && $date_remind == $date_today
&& $row['ag_state']!=1 && $row['ag_state']!=3)
- $st = '
style="font-weight:bold;background:orange"';
- if ($date_remind != "" && $date_remind < $date_today &&
$row['ag_state']!=1 && $row['ag_state']!=3)
- $st = '
style="font-weight:bold;background:#FF0000;color:white;"';
- $r.="<tr class=\"$tr\" $st>";
- $checkbox->value=$row['ag_id'];
- $r.='<td name="ag_id_td"
style="display:none">'.$checkbox->input().'</td>';
- $r.="<td>" . $href . smaller_date($row['my_date']) .
'</a>' . "</td>";
- $r.="<td>" . $href . $row['str_last_comment'] . '</a>'
. "</td>";
- $r.="<td>" . $href . smaller_date($row['my_remind']) .
'</a>' . "</td>";
- $r.="<td>" . $href . h($row['tags']). '</a>' . "</td>";
- $r.="<td>" . $href . $row['ag_ref'] . '</a>' . "</td>";
- $r.="<td>" . $href . h($row['dest']) . '</a>' . "</td>";
-
- // Expediteur
- $fexp = new Fiche($this->db);
- $fexp->id = $row['f_id_dest'];
- $qcode_dest = $fexp->strAttribut(ATTR_DEF_QUICKCODE);
-
- $qexp = ($qcode_dest == NOTFOUND) ? "Interne" :
$qcode_dest;
- $jsexp = sprintf("javascript:showfiche('%s')", $qexp);
- if ($qexp != 'Interne')
- {
- $r.="<td>$href" . $qexp . " : " .
$fexp->getName() . '</a></td>';
- }
- else
- $r.="<td>$href Interne </a></td>";
-
- $ref = "";
-
-
- $r.='<td>' . $href .
- h($row['ag_title']) . "</A></td>";
-
- /*
- * State
- */
- switch ($row['ag_priority'])
- {
- case 1:
- $priority = 'Haute';
- break;
- case 2:
- $priority = "Moyenne";
- break;
- case 3:
- $priority = "Important";
- break;
- }
- $r.=td($priority);
-
- $r.="<td>" . $ref . "</td>";
- $r.="</tr>";
- }
-
- $r.="</table>";
-
- $r.='<p>'.$bar.'</p>';
- return $r;
- }
-
- //----------------------------------------------------------------------
- /**\brief Update the data into the database
- *
- * \return true on success otherwise false
- */
- function Update()
- {
-
- // if ag_id == 0 nothing to do
- if ($this->ag_id == 0)
- return;
- // retrieve customer
- // f_id
-
- if (trim($this->qcode_dest) == "")
- {
- // internal document
- $this->f_id_dest = null; // internal document
- }
- else
- {
- $tiers = new Fiche($this->db);
- if ($tiers->get_by_qcode($this->qcode_dest) == -1) //
Error we cannot retrieve this qcode
- return false;
- else
- $this->f_id_dest = $tiers->id;
- }
- $contact = new Fiche($this->db);
- if ($contact->get_by_qcode($this->ag_contact) == -1)
- $contact->id = 0;
-
- // reload the old one
- $old=new Follow_Up($this->db);
- $old->ag_id=$this->ag_id;
- $old->get();
-
- // If ag_ref changed then check if unique
- if ($old->ag_ref != $this->ag_ref)
- {
- $nAg_ref=$this->db->get_value("select count(*) from
action_gestion where ag_ref=$1",array($this->ag_ref));
- if ($nAg_ref != 0 )
- {
- echo h2("Référence en double, référence non
sauvée",'class="error"');
- $this->ag_ref=$old->ag_ref;
- }
- }
-
-
- if ($this->ag_remind_date != null)
- {
- $this->db->exec_sql("update action_gestion set " .
- "
ag_timestamp=to_date($1,'DD.MM.YYYY')," .
- " ag_title=$2," .
- " ag_type=$3, " .
- " f_id_dest=$4, " .
- "ag_state=$5," .
- " ag_hour = $7 ," .
- " ag_priority = $8 ," .
- " ag_dest = $9 , " .
- " ag_contact = $10, " .
- " ag_ref = $11, " .
- "
ag_remind_date=to_date($12,'DD.MM.YYYY') " .
- " where ag_id = $6", array(
- $this->ag_timestamp, /* 1 */
- $this->ag_title, /* 2 */
- $this->dt_id, /* 3 */
- $this->f_id_dest, /* 4 */
- $this->ag_state, /* 5 */
- $this->ag_id, /* 6 */
- $this->ag_hour, /* 7 */
- $this->ag_priority, /* 8 */
- $this->ag_dest, /* 9 */
- $contact->id, /* 10*/
- $this->ag_ref, /* 11 */
- $this->ag_remind_date /* 12 */
- ));
- }
- else
- {
- $this->db->exec_sql("update action_gestion set " .
- "
ag_timestamp=to_date($1,'DD.MM.YYYY')," .
- " ag_title=$2," .
- " ag_type=$3, " .
- " f_id_dest=$4, " .
- "ag_state=$5," .
- " ag_hour = $7 ," .
- " ag_priority = $8 ," .
- " ag_dest = $9 , " .
- " ag_contact = $10, " .
- " ag_ref = $11, " .
- " ag_remind_date=null " .
- " where ag_id = $6", array(
- $this->ag_timestamp, /* 1 */
- $this->ag_title, /* 2 */
- $this->dt_id, /* 3 */
- $this->f_id_dest, /* 4 */
- $this->ag_state, /* 5 */
- $this->ag_id, /* 6 */
- $this->ag_hour, /* 7 */
- $this->ag_priority, /* 8 */
- $this->ag_dest, /* 9 */
- $contact->id, /* 10 */
- $this->ag_ref /* 11 */
- ));
- }
- // Upload documents
- $doc = new Document($this->db);
- $doc->Upload($this->ag_id);
-
- /* save action details */
- for ($i = 0; $i < $_POST['nb_item']; $i++)
- {
- $act = new Follow_Up_Detail($this->db);
- $act->from_array($_POST, $i);
- if ($act->f_id == 0 && $act->ad_id != 0)
- $act->delete();
- if ($act->f_id == 0)
- continue;
- $act->save();
- }
- if (trim($this->ag_comment) != '')
- {
- $this->db->exec_sql("insert into action_gestion_comment
(ag_id,tech_user,agc_comment) values ($1,$2,$3)"
- , array($this->ag_id,
$_SESSION['g_user'], $this->ag_comment));
- }
- $this->insert_operation();
- $this->insert_action();
- return true;
- }
-
- /**\brief generate the document and add it to the action
- * \param md_id is the id of the document_modele
- * \param $p_array contains normally the $_POST
- */
-
- function generate_document($md_id, $p_array)
- {
- $doc = new Document($this->db);
- $mod = new Document_Modele($this->db, $md_id);
- $mod->load();
- $doc->f_id = $this->f_id_dest;
- $doc->md_id = $md_id;
- $doc->ag_id = $this->ag_id;
- $doc->Generate($p_array);
- }
-
- /**\brief put an array in the variable member, the indice
- * is the member name
- * \param $p_array to parse
- * - ag_id id of the Follow_up
- * - ag_ref reference of the action
- * - qcode_dest quick_code of the card of dest
- * - f_id_dest f_id of the card of dest
- * - dt_id Document_Modele::dt_id
- * - ag_state document_state::s_id (default:2)
- * - ag_title title of the action
- * - ag_hour
- * - ag_dest Profile, profile of the user
- * - ag_comment comment
- * - ag_remind_date Remind Date
- * - operation related operation
- * - action related action
- * - op deprecated
- * \return nothing
- */
-
- function fromArray($p_array)
- {
- global $g_user;
- $this->ag_id = (isset($p_array['ag_id'])) ? $p_array['ag_id'] :
0;
- $this->ag_ref = (isset($p_array['ag_ref'])) ?
$p_array['ag_ref'] : "";
- $this->qcode_dest = (isset($p_array['qcode_dest'])) ?
$p_array['qcode_dest'] : "";
- $this->f_id_dest = (isset($p_array['f_id_dest'])) ?
$p_array['f_id_dest'] : null;
- $this->ag_timestamp = (isset($p_array['ag_timestamp'])) ?
$p_array['ag_timestamp'] : date('d.m.Y');
- $this->qcode_dest = (isset($p_array['qcode_dest'])) ?
$p_array['qcode_dest'] : "";
- $this->dt_id = (isset($p_array['dt_id'])) ? $p_array['dt_id'] :
"";
- $this->ag_state = (isset($p_array['ag_state'])) ?
$p_array['ag_state'] : 2;
- $this->ag_ref = (isset($p_array['ag_ref'])) ?
$p_array['ag_ref'] : "";
- $this->ag_title = (isset($p_array['ag_title'])) ?
$p_array['ag_title'] : "";
- $this->ag_hour = (isset($p_array['ag_hour'])) ?
$p_array['ag_hour'] : "";
- $this->ag_dest = (isset($p_array['ag_dest'])) ?
$p_array['ag_dest'] : $g_user->get_profile();
- $this->ag_priority = (isset($p_array['ag_priority'])) ?
$p_array['ag_priority'] : 2;
- $this->ag_contact = (isset($p_array['ag_contact'])) ?
$p_array['ag_contact'] : "";
- $this->ag_comment = (isset($p_array['ag_comment'])) ?
$p_array['ag_comment'] : "";
- $this->ag_remind_date = (isset($p_array['ag_remind_date'])) ?
$p_array['ag_remind_date'] : null;
- $this->operation = (isset($p_array['operation'])) ?
$p_array['operation'] : null;
- /**
- * @todo
- * deprecated : to remove
- $this->op = (isset($p_array['op'])) ? $p_array['op'] :
null;
- */
- $this->action = (isset($p_array['action'])) ?
$p_array['action'] : null;
- }
-
- /**\brief remove the action
- *
- */
-
- function remove()
- {
- $this->get();
- // remove the key
- $sql = "delete from action_gestion where ag_id=$1";
- $this->db->exec_sql($sql, array($this->ag_id));
-
- /* check the number of attached document */
- $doc = new Document($this->db);
- $aDoc = $doc->get_all($this->ag_id);
- if (!empty($aDoc))
- {
- // if there are documents
- for ($i = 0; $i < sizeof($aDoc); $i++)
- {
- $aDoc[$i]->remove();
- }
- }
- }
-
- /**\brief return the last p_limit operation into an array
- * \param $p_limit is the max of operation to return
- * \return $p_array of Follow_Up object
- */
-
- function get_last($p_limit)
- {
- $sql = "select coalesce(vw_name,'Interne') as
vw_name,ag_id,ag_title,ag_ref, dt_value,to_char(ag_timestamp,'DD.MM.YYYY') as
ag_timestamp_fmt,ag_timestamp " .
- " from action_gestion join document_type " .
- " on (ag_type=dt_id) left join vw_fiche_attr on
(f_id=f_id_dest) where ag_state in (2,3) order by ag_timestamp desc limit
$p_limit";
- $array = $this->db->get_array($sql);
- return $array;
- }
+ $max_line=$this->db->count_sql($sql);
+ $step=$_SESSION['g_pagesize'];
+ $page=(isset($_GET['offset']))?$_GET['page']:1;
+
$offset=(isset($_GET['offset']))?Database::escape_string($_GET['offset']):0;
+ if ($step!=-1)
+ $limit=" LIMIT $step OFFSET $offset ";
+ else
+ $limit='';
+ $bar=navigation_bar($offset, $max_line, $step, $page);
+
+ $Res=$this->db->exec_sql($sql.$limit);
+ $a_row=Database::fetch_all($Res);
+
+ $r="";
+ $r.='<p>'.$bar.'</p>';
+ $r.='<table class="document">';
+ $r.="<tr>";
+ $r.='<th name="ag_id_td" style="display:none"
>'.ICheckBox::toggle_checkbox('ag', 'list_ag_frm').'</th>';
+ $r.='<th>'.$table->get_header(0).'</th>';
+ $r.='<th>'.$table->get_header(1).'</th>';
+ $r.='<th>'.$table->get_header(2).'</th>';
+ $r.='<th>'.$table->get_header(3).'</th>';
+ $r.='<th>'.$table->get_header(4).'</th>';
+ $r.='<th>'.$table->get_header(5).'</th>';
+ $r.='<th>'.$table->get_header(6).'</th>';
+ $r.='<th>'.$table->get_header(7).'</th>';
+ $r.=th('Priorité');
+ $r.="</tr>";
+
+
+ // if there are no records return a message
+ if (sizeof($a_row)==0 or $a_row==false)
+ {
+ $r='<div style="clear:both">';
+ $r.='<hr>Aucun enregistrement trouvé';
+ $r.="</div>";
+ return $r;
+ }
+ $today=date('d.m.Y');
+ $i=0;
+ $checkbox=new ICheckBox("mag_id[]");
+ //show the sub_action
+ foreach ($a_row as $row)
+ {
+ $href='<A class="document"
HREF="do.php?'.$p_base.HtmlInput::get_to_string(array("closed_action",
"remind_date_end", "remind_date", "sag_ref", "only_internal", "state",
"gDossier", "qcode", "ag_dest_query", "action_query", "tdoc", "date_start",
"date_end", "hsstate", "searchtag", "ac"),
"&").'&sa=detail&ag_id='.$row['ag_id'].'">';
+ $i++;
+ $tr=($i%2==0)?'even':'odd';
+ if ($row['ag_priority']<2)
+ $tr='priority1';
+ $st='';
+ if ($row['my_date']==$today)
+ $st=' style="font-weight:bold; border:2px solid orange;"';
+ $date_remind=format_date($row['my_remind'], 'DD.MM.YYYY',
'YYYYMMDD');
+ $date_today=date('Ymd');
+ if
($date_remind!=""&&$date_remind==$date_today&&$row['ag_state']!=1&&$row['ag_state']!=3)
+ $st=' style="font-weight:bold;background:orange"';
+ if
($date_remind!=""&&$date_remind<$date_today&&$row['ag_state']!=1&&$row['ag_state']!=3)
+ $st='
style="font-weight:bold;background:#FF0000;color:white;"';
+ $r.="<tr class=\"$tr\" $st>";
+ $checkbox->value=$row['ag_id'];
+ $r.='<td name="ag_id_td"
style="display:none">'.$checkbox->input().'</td>';
+ $r.="<td>".$href.smaller_date($row['my_date']).'</a>'."</td>";
+ $r.="<td>".$href.$row['str_last_comment'].'</a>'."</td>";
+ $r.="<td>".$href.smaller_date($row['my_remind']).'</a>'."</td>";
+ $r.="<td>".$href.h($row['tags']).'</a>'."</td>";
+ $r.="<td>".$href.$row['ag_ref'].'</a>'."</td>";
+ $r.="<td>".$href.h($row['dest']).'</a>'."</td>";
+
+ // Expediteur
+ $fexp=new Fiche($this->db);
+ $fexp->id=$row['f_id_dest'];
+ $qcode_dest=$fexp->strAttribut(ATTR_DEF_QUICKCODE);
+
+ $qexp=($qcode_dest==NOTFOUND)?"Interne":$qcode_dest;
+ $jsexp=sprintf("javascript:showfiche('%s')", $qexp);
+ if ($qexp!='Interne')
+ {
+ $r.="<td>$href".$qexp." : ".$fexp->getName().'</a></td>';
+ }
+ else
+ $r.="<td>$href Interne </a></td>";
+
+ $ref="";
+
+
+ $r.='<td>'.$href.
+ h($row['ag_title'])."</A></td>";
+
+ /*
+ * State
+ */
+ switch ($row['ag_priority'])
+ {
+ case 1:
+ $priority='Haute';
+ break;
+ case 2:
+ $priority="Moyenne";
+ break;
+ case 3:
+ $priority="Important";
+ break;
+ }
+ $r.=td($priority);
+
+ $r.="<td>".$ref."</td>";
+ $r.="</tr>";
+ }
+
+ $r.="</table>";
+
+ $r.='<p>'.$bar.'</p>';
+ return $r;
+ }
+
+ //----------------------------------------------------------------------
+ /* * \brief Update the data into the database
+ *
+ * \return true on success otherwise false
+ */
+ function Update()
+ {
+
+ // if ag_id == 0 nothing to do
+ if ($this->ag_id==0)
+ return;
+ // retrieve customer
+ // f_id
+
+ if (trim($this->qcode_dest)=="")
+ {
+ // internal document
+ $this->f_id_dest=null; // internal document
+ }
+ else
+ {
+ $tiers=new Fiche($this->db);
+ if ($tiers->get_by_qcode($this->qcode_dest)==-1) // Error we
cannot retrieve this qcode
+ return false;
+ else
+ $this->f_id_dest=$tiers->id;
+ }
+ $contact=new Fiche($this->db);
+ if ($contact->get_by_qcode($this->ag_contact)==-1)
+ $contact->id=0;
+
+ // reload the old one
+ $old=new Follow_Up($this->db);
+ $old->ag_id=$this->ag_id;
+ $old->get();
+
+ // If ag_ref changed then check if unique
+ if ($old->ag_ref!=$this->ag_ref)
+ {
+ $nAg_ref=$this->db->get_value("select count(*) from action_gestion
where ag_ref=$1", array($this->ag_ref));
+ if ($nAg_ref!=0)
+ {
+ echo h2("Référence en double, référence non sauvée",
'class="error"');
+ $this->ag_ref=$old->ag_ref;
+ }
+ }
+
+
+ if ($this->ag_remind_date!=null)
+ {
+ $this->db->exec_sql("update action_gestion set ".
+ " ag_timestamp=to_date($1,'DD.MM.YYYY'),".
+ " ag_title=$2,".
+ " ag_type=$3, ".
+ " f_id_dest=$4, ".
+ "ag_state=$5,".
+ " ag_hour = $7 ,".
+ " ag_priority = $8 ,".
+ " ag_dest = $9 , ".
+ " ag_contact = $10, ".
+ " ag_ref = $11, ".
+ " ag_remind_date=to_date($12,'DD.MM.YYYY') ".
+ " where ag_id = $6", array(
+ $this->ag_timestamp, /* 1 */
+ $this->ag_title, /* 2 */
+ $this->dt_id, /* 3 */
+ $this->f_id_dest, /* 4 */
+ $this->ag_state, /* 5 */
+ $this->ag_id, /* 6 */
+ $this->ag_hour, /* 7 */
+ $this->ag_priority, /* 8 */
+ $this->ag_dest, /* 9 */
+ $contact->id, /* 10 */
+ $this->ag_ref, /* 11 */
+ $this->ag_remind_date /* 12 */
+ ));
+ }
+ else
+ {
+ $this->db->exec_sql("update action_gestion set ".
+ " ag_timestamp=to_date($1,'DD.MM.YYYY'),".
+ " ag_title=$2,".
+ " ag_type=$3, ".
+ " f_id_dest=$4, ".
+ "ag_state=$5,".
+ " ag_hour = $7 ,".
+ " ag_priority = $8 ,".
+ " ag_dest = $9 , ".
+ " ag_contact = $10, ".
+ " ag_ref = $11, ".
+ " ag_remind_date=null ".
+ " where ag_id = $6", array(
+ $this->ag_timestamp, /* 1 */
+ $this->ag_title, /* 2 */
+ $this->dt_id, /* 3 */
+ $this->f_id_dest, /* 4 */
+ $this->ag_state, /* 5 */
+ $this->ag_id, /* 6 */
+ $this->ag_hour, /* 7 */
+ $this->ag_priority, /* 8 */
+ $this->ag_dest, /* 9 */
+ $contact->id, /* 10 */
+ $this->ag_ref /* 11 */
+ ));
+ }
+ // Upload documents
+ $doc=new Document($this->db);
+ $doc->Upload($this->ag_id);
+
+ /* save action details */
+ for ($i=0; $i<$_POST['nb_item']; $i++)
+ {
+ $act=new Follow_Up_Detail($this->db);
+ $act->from_array($_POST, $i);
+ if ($act->f_id==0&&$act->ad_id!=0)
+ $act->delete();
+ if ($act->f_id==0)
+ continue;
+ $act->save();
+ }
+ if (trim($this->ag_comment)!='')
+ {
+ $this->db->exec_sql("insert into action_gestion_comment
(ag_id,tech_user,agc_comment) values ($1,$2,$3)"
+ , array($this->ag_id, $_SESSION['g_user'],
$this->ag_comment));
+ }
+ $this->insert_operation();
+ $this->insert_action();
+ return true;
+ }
+
+ /**
+ * \brief generate the document and add it to the action
+ * \param md_id is the id of the document_modele
+ * \param $p_array contains normally the $_POST
+ */
+ function generate_document($md_id, $p_array)
+ {
+ $doc=new Document($this->db);
+ $mod=new Document_Modele($this->db, $md_id);
+ $mod->load();
+ $doc->f_id=$this->f_id_dest;
+ $doc->md_id=$md_id;
+ $doc->ag_id=$this->ag_id;
+ $doc->Generate($p_array);
+ }
+
+ /**
+ * \brief put an array in the variable member, the indice
+ * is the member name
+ * \param $p_array to parse
+ * - ag_id id of the Follow_up
+ * - ag_ref reference of the action
+ * - qcode_dest quick_code of the card of dest
+ * - f_id_dest f_id of the card of dest
+ * - dt_id Document_Modele::dt_id
+ * - ag_state document_state::s_id (default:2)
+ * - ag_title title of the action
+ * - ag_hour
+ * - ag_dest Profile, profile of the user
+ * - ag_comment comment
+ * - ag_remind_date Remind Date
+ * - operation related operation
+ * - action related action
+ * - op deprecated
+ * \return nothing
+ */
+ function fromArray($p_array)
+ {
+ global $g_user;
+ $this->ag_id=(isset($p_array['ag_id']))?$p_array['ag_id']:0;
+ $this->ag_ref=(isset($p_array['ag_ref']))?$p_array['ag_ref']:"";
+
$this->qcode_dest=(isset($p_array['qcode_dest']))?$p_array['qcode_dest']:"";
+
$this->f_id_dest=(isset($p_array['f_id_dest']))?$p_array['f_id_dest']:null;
+
$this->ag_timestamp=(isset($p_array['ag_timestamp']))?$p_array['ag_timestamp']:date('d.m.Y');
+
$this->qcode_dest=(isset($p_array['qcode_dest']))?$p_array['qcode_dest']:"";
+ $this->dt_id=(isset($p_array['dt_id']))?$p_array['dt_id']:"";
+ $this->ag_state=(isset($p_array['ag_state']))?$p_array['ag_state']:2;
+ $this->ag_ref=(isset($p_array['ag_ref']))?$p_array['ag_ref']:"";
+ $this->ag_title=(isset($p_array['ag_title']))?$p_array['ag_title']:"";
+ $this->ag_hour=(isset($p_array['ag_hour']))?$p_array['ag_hour']:"";
+
$this->ag_dest=(isset($p_array['ag_dest']))?$p_array['ag_dest']:$g_user->get_profile();
+
$this->ag_priority=(isset($p_array['ag_priority']))?$p_array['ag_priority']:2;
+
$this->ag_contact=(isset($p_array['ag_contact']))?$p_array['ag_contact']:"";
+
$this->ag_comment=(isset($p_array['ag_comment']))?$p_array['ag_comment']:"";
+
$this->ag_remind_date=(isset($p_array['ag_remind_date']))?$p_array['ag_remind_date']:null;
+
$this->operation=(isset($p_array['operation']))?$p_array['operation']:null;
/**
- * get the action where the remind day is today
- * @return array
+ * @todo
+ * deprecated : to remove
+ $this->op = (isset($p_array['op'])) ? $p_array['op'] : null;
*/
- function get_today()
- {
- $sql = "select ag_ref,coalesce(vw_name,'Interne') as
vw_name,ag_id,ag_title,ag_ref, dt_value,to_char(ag_remind_date,'DD.MM.YYYY') as
ag_timestamp_fmt,ag_timestamp " .
- " from action_gestion join document_type " .
- " on (ag_type=dt_id) left join vw_fiche_attr on
(f_id=f_id_dest) where ag_state not in (1,4)
+ $this->action=(isset($p_array['action']))?$p_array['action']:null;
+ }
+
+ /**
+ * \brief remove the action
+ *
+ */
+ function remove()
+ {
+ $this->get();
+ // remove the key
+ $sql="delete from action_gestion where ag_id=$1";
+ $this->db->exec_sql($sql, array($this->ag_id));
+
+ /* check the number of attached document */
+ $doc=new Document($this->db);
+ $aDoc=$doc->get_all($this->ag_id);
+ if (!empty($aDoc))
+ {
+ // if there are documents
+ for ($i=0; $i<sizeof($aDoc); $i++)
+ {
+ $aDoc[$i]->remove();
+ }
+ }
+ }
+
+ /**
+ * \brief return the last p_limit operation into an array, there is no
security
+ * on user
+ * \param $p_limit is the max of operation to return
+ * \return $p_array of Follow_Up object
+ */
+ function get_last($p_limit)
+ {
+ $sql="select coalesce(vw_name,'Interne') as
vw_name,ag_id,ag_title,ag_ref, dt_value,to_char(ag_timestamp,'DD.MM.YYYY') as
ag_timestamp_fmt,ag_timestamp ".
+ " from action_gestion join document_type ".
+ " on (ag_type=dt_id) left join vw_fiche_attr on
(f_id=f_id_dest) where ag_state in (2,3) order by ag_timestamp desc limit
$p_limit";
+ $array=$this->db->get_array($sql);
+ return $array;
+ }
+
+ /**
+ * get the action where the remind day is today
+ * @return array
+ */
+ function get_today()
+ {
+ $sql="select ag_ref,coalesce(vw_name,'Interne') as
vw_name,ag_id,ag_title,ag_ref, dt_value,to_char(ag_remind_date,'DD.MM.YYYY') as
ag_timestamp_fmt,ag_timestamp ".
+ " from action_gestion join document_type ".
+ " on (ag_type=dt_id) left join vw_fiche_attr on
(f_id=f_id_dest) where ag_state not in (1,4)
and
to_char(ag_remind_date,'DDMMYYYY')=to_char(now(),'DDMMYYYY') ";
- $array = $this->db->get_array($sql);
- return $array;
- }
- /**
- * get the action where the remind day is today
- * @return array
- */
- function get_late()
- {
- $sql = "select ag_ref,coalesce(vw_name,'Interne') as
vw_name,ag_id,ag_title,ag_ref, dt_value,to_char(ag_remind_date,'DD.MM.YYYY') as
ag_timestamp_fmt,ag_timestamp " .
- " from action_gestion join document_type " .
- " on (ag_type=dt_id) left join vw_fiche_attr on
(f_id=f_id_dest) where ag_state not in (1,4)
+ $array=$this->db->get_array($sql);
+ return $array;
+ }
+
+ /**
+ * get the action where the remind day is today
+ * @return array
+ */
+ function get_late()
+ {
+ $sql="select ag_ref,coalesce(vw_name,'Interne') as
vw_name,ag_id,ag_title,ag_ref, dt_value,to_char(ag_remind_date,'DD.MM.YYYY') as
ag_timestamp_fmt,ag_timestamp ".
+ " from action_gestion join document_type ".
+ " on (ag_type=dt_id) left join vw_fiche_attr on
(f_id=f_id_dest) where ag_state not in (1,4)
and ag_remind_date < now() ";
- $array = $this->db->get_array($sql);
- return $array;
- }
- /**
- * insert a related operation
- */
- function insert_operation()
- {
- if (trim($this->operation) == '')
- return;
- $array = explode(",", $this->operation);
- for ($i = 0; $i < count($array); $i++)
- {
- if ($this->db->get_value("select count(*) from
action_gestion_operation
- where ag_id=$1 and jr_id=$2",
array($this->ag_id, $array[$i])) == 0)
- {
- $this->db->exec_sql("insert into
action_gestion_operation (ag_id,jr_id) values ($1,$2)", array($this->ag_id,
$array[$i]));
- }
- }
- }
-
- /**
- * remove a related operation
- * @deprecated not used : dead_code
- * @todo to remove
- */
- function remove_operation_deprecated()
- {
- if ($this->op == null)
- return;
- $op = $this->op;
- for ($i = 0; $i < count($op); $i++)
- {
- $this->db->exec_sql("delete from
action_gestion_operation where ago_id=$1", array($op[$i]));
- }
- }
-
- /**
- * Display only a search box for searching an action
- * @param $cn database connx
- */
- static function display_search($cn, $inner = false)
- {
- $a = (isset($_GET['action_query'])) ? $_GET['action_query'] :
"";
- $qcode = (isset($_GET['qcode'])) ? $_GET['qcode'] : "";
-
- $supl_hidden = '';
- if (isset($_REQUEST['sc']))
- $supl_hidden.=HtmlInput::hidden('sc', $_REQUEST['sc']);
- if (isset($_REQUEST['f_id']))
- {
- $supl_hidden.=HtmlInput::hidden('f_id',
$_REQUEST['f_id']);
- $f = new Fiche($cn, $_REQUEST['f_id']);
- $supl_hidden.=HtmlInput::hidden('qcode_dest',
$f->get_quick_code());
- }
- if (isset($_REQUEST['sb']))
- $supl_hidden.=HtmlInput::hidden('sb', $_REQUEST['sb']);
- $supl_hidden.=HtmlInput::hidden('ac', $_REQUEST['ac']);
-
- /**
- * Show the default button (add action, show search...)
- */
- if (!$inner)
- require_once 'template/action_button.php';
-
- $w = new ICard();
- $w->name = 'qcode';
- $w->id = $w->generate_id($w->name);
- $w->value = $qcode;
- $w->extra = "all";
- $w->typecard = 'all';
- $w->jrn = 0;
- $w->table = 0;
- $list = $cn->make_list("select fd_id from fiche_def where
frd_id in (4,8,9,14,15,16,25)");
- $w->extra = $list;
-
-
- /* type of documents */
- $type_doc = new ISelect('tdoc');
- $aTDoc = $cn->make_array('select dt_id,dt_value from
document_type order by dt_value');
- $aTDoc[] = array('value' => '-1', 'label' => _('Tous les
types'));
- $type_doc->value = $aTDoc;
- $type_doc->selected = (isset($_GET['tdoc'])) ? $_GET['tdoc'] :
-1;
-
- /* State of documents */
- $type_state= new ISelect('state');
- $aState = $cn->make_array('select s_id,s_value from
document_state order by s_value');
- $aState[] = array('value' => '-1', 'label' => _('Tous les
Etats'));
- $type_state->value = $aState;
- $type_state->selected = (isset($_GET['state'])) ?
$_GET['state'] : -1;
-
-
-
- /* Except State of documents */
- $hsExcptype_state= new ISelect('hsstate');
- $aExcpState = $cn->make_array('select s_id,s_value from
document_state order by s_value');
- $aExcpState[] = array('value' => '-1', 'label' => _('Aucun'));
- $hsExcptype_state->value = $aExcpState;
- $hsExcptype_state->selected = (isset($_GET['hsstate'])) ?
$_GET['hsstate'] : -1;
-
-
- // date
- $start = new IDate('date_start');
- $start->value = (isset($_GET['date_start'])) ?
$_GET['date_start'] : "";
- $end = new IDate('date_end');
- $end->value = (isset($_GET['date_end'])) ? $_GET['date_end'] :
"";
-
- // Closed action
- $closed_action=new ICheckBox('closed_action');
-
$closed_action->selected=(isset($_GET['closed_action']))?true:false;
-
- // Internal
- $only_internal= new ICheckBox('only_internal');
- $only_internal->selected = (isset($_GET['only_internal'])) ?
true : false;
- // select profile
- $aAg_dest = $cn->make_array("select p_id as value, " .
- "p_name as label " .
- " from profile order by 2");
- $aAg_dest[] = array('value' => '-2', 'label' => _('Tous les
profiles'));
- $ag_dest = new ISelect();
- $ag_dest->name = "ag_dest_query";
- $ag_dest->value = $aAg_dest;
- $ag_dest->selected = (isset($_GET["ag_dest_query"])) ?
$_GET["ag_dest_query"] : -2;
- $str_ag_dest = $ag_dest->input();
- $osag_ref=new IText("sag_ref");
- $osag_ref->value=(isset($_GET['sag_ref']))?$_GET['sag_ref']:"";
- $remind_date=new IDate('remind_date');
-
$remind_date->value=(isset($_GET['remind_date']))?$_GET['remind_date']:"";
- $remind_date_end=new IDate('remind_date_end');
-
$remind_date_end->value=(isset($_GET['remind_date_end']))?$_GET['remind_date_end']:"";
- $otag=new Tag($cn);
-
- // show the action in
- require_once 'template/action_search.php';
- }
- /**
- address@hidden show a list of documents
- * @param $cn database connextion
- * @param $p_base base URL
- */
- static function show_action_list($cn, $p_base)
- {
-
- Follow_Up::display_search($cn);
-
- $act = new Follow_Up($cn);
- /** \brief
- * \note The field 'recherche' is about a part of the title
or a ref. number
- */
- $query = Follow_Up::create_query($cn);
-
- echo '<form method="POST" id="list_ag_frm"
style="display:inline">';
- echo
HtmlInput::request_to_hidden(array("gDossier","ac","sb","sc","f_id"));
- require_once 'template/action_other_action.php';
- echo $act->myList($p_base, "", $query);
- echo '</form>';
- }
+ $array=$this->db->get_array($sql);
+ return $array;
+ }
+
+ /**
+ * insert a related operation
+ */
+ function insert_operation()
+ {
+ if (trim($this->operation)=='')
+ return;
+ $array=explode(",", $this->operation);
+ for ($i=0; $i<count($array); $i++)
+ {
+ if ($this->db->get_value("select count(*) from
action_gestion_operation
+ where ag_id=$1 and jr_id=$2",
array($this->ag_id, $array[$i]))==0)
+ {
+ $this->db->exec_sql("insert into action_gestion_operation
(ag_id,jr_id) values ($1,$2)", array($this->ag_id, $array[$i]));
+ }
+ }
+ }
+
+ /**
+ * remove a related operation
+ * @deprecated not used : dead_code
+ * @todo to remove
+ */
+ function remove_operation_deprecated()
+ {
+ if ($this->op==null)
+ return;
+ $op=$this->op;
+ for ($i=0; $i<count($op); $i++)
+ {
+ $this->db->exec_sql("delete from action_gestion_operation where
ago_id=$1", array($op[$i]));
+ }
+ }
+
+ /**
+ * Display only a search box for searching an action
+ * @param $cn database connx
+ */
+ static function display_search($cn, $inner=false)
+ {
+ $a=(isset($_GET['action_query']))?$_GET['action_query']:"";
+ $qcode=(isset($_GET['qcode']))?$_GET['qcode']:"";
+
+ $supl_hidden='';
+ if (isset($_REQUEST['sc']))
+ $supl_hidden.=HtmlInput::hidden('sc', $_REQUEST['sc']);
+ if (isset($_REQUEST['f_id']))
+ {
+ $supl_hidden.=HtmlInput::hidden('f_id', $_REQUEST['f_id']);
+ $f=new Fiche($cn, $_REQUEST['f_id']);
+ $supl_hidden.=HtmlInput::hidden('qcode_dest',
$f->get_quick_code());
+ }
+ if (isset($_REQUEST['sb']))
+ $supl_hidden.=HtmlInput::hidden('sb', $_REQUEST['sb']);
+ $supl_hidden.=HtmlInput::hidden('ac', $_REQUEST['ac']);
+
/**
- * Create a subquery to filter thanks the selected tag
- * @param $cn db connx
- * @param $p_array
- * @return SQL
+ * Show the default button (add action, show search...)
*/
- static function filter_by_tag ($cn, $p_array = null)
- {
- if ($p_array == null)
- $p_array = $_GET;
-
- extract($p_array);
- $query = "";
- if ( count($searchtag) == 0 )return "";
- for ($i=0;$i<count($searchtag);$i++) {
- if (isNumber($searchtag[$i])==1)
- $query .= ' and ag_id in (select ag_id from action_tags
where t_id= '. sql_string($searchtag[$i]).')';
- }
- return $query;
+ if (!$inner)
+ require_once 'template/action_button.php';
+
+ $w=new ICard();
+ $w->name='qcode';
+ $w->id=$w->generate_id($w->name);
+ $w->value=$qcode;
+ $w->extra="all";
+ $w->typecard='all';
+ $w->jrn=0;
+ $w->table=0;
+ $list=$cn->make_list("select fd_id from fiche_def where frd_id in
(4,8,9,14,15,16,25)");
+ $w->extra=$list;
+
+
+ /* type of documents */
+ $type_doc=new ISelect('tdoc');
+ $aTDoc=$cn->make_array('select dt_id,dt_value from document_type order
by dt_value');
+ $aTDoc[]=array('value'=>'-1', 'label'=>_('Tous les types'));
+ $type_doc->value=$aTDoc;
+ $type_doc->selected=(isset($_GET['tdoc']))?$_GET['tdoc']:-1;
+
+ /* State of documents */
+ $type_state=new ISelect('state');
+ $aState=$cn->make_array('select s_id,s_value from document_state order
by s_value');
+ $aState[]=array('value'=>'-1', 'label'=>_('Tous les Etats'));
+ $type_state->value=$aState;
+ $type_state->selected=(isset($_GET['state']))?$_GET['state']:-1;
+
+
+
+ /* Except State of documents */
+ $hsExcptype_state=new ISelect('hsstate');
+ $aExcpState=$cn->make_array('select s_id,s_value from document_state
order by s_value');
+ $aExcpState[]=array('value'=>'-1', 'label'=>_('Aucun'));
+ $hsExcptype_state->value=$aExcpState;
+
$hsExcptype_state->selected=(isset($_GET['hsstate']))?$_GET['hsstate']:-1;
+
+
+ // date
+ $start=new IDate('date_start');
+ $start->value=(isset($_GET['date_start']))?$_GET['date_start']:"";
+ $end=new IDate('date_end');
+ $end->value=(isset($_GET['date_end']))?$_GET['date_end']:"";
+
+ // Closed action
+ $closed_action=new ICheckBox('closed_action');
+ $closed_action->selected=(isset($_GET['closed_action']))?true:false;
+
+ // Internal
+ $only_internal=new ICheckBox('only_internal');
+ $only_internal->selected=(isset($_GET['only_internal']))?true:false;
+ // select profile
+ $aAg_dest=$cn->make_array("select p_id as value, ".
+ "p_name as label ".
+ " from profile order by 2");
+ $aAg_dest[]=array('value'=>'-2', 'label'=>_('Tous les profiles'));
+ $ag_dest=new ISelect();
+ $ag_dest->name="ag_dest_query";
+ $ag_dest->value=$aAg_dest;
+
$ag_dest->selected=(isset($_GET["ag_dest_query"]))?$_GET["ag_dest_query"]:-2;
+ $str_ag_dest=$ag_dest->input();
+ $osag_ref=new IText("sag_ref");
+ $osag_ref->value=(isset($_GET['sag_ref']))?$_GET['sag_ref']:"";
+ $remind_date=new IDate('remind_date');
+
$remind_date->value=(isset($_GET['remind_date']))?$_GET['remind_date']:"";
+ $remind_date_end=new IDate('remind_date_end');
+
$remind_date_end->value=(isset($_GET['remind_date_end']))?$_GET['remind_date_end']:"";
+ $otag=new Tag($cn);
+
+ // show the action in
+ require_once 'template/action_search.php';
+ }
+
+ /**
+ * @brief show a list of documents
+ * @param $cn database connextion
+ * @param $p_base base URL
+ */
+ static function show_action_list($cn, $p_base)
+ {
+
+ Follow_Up::display_search($cn);
+
+ $act=new Follow_Up($cn);
+ /** \brief
+ * \note The field 'recherche' is about a part of the title or a
ref. number
+ */
+ $query=Follow_Up::create_query($cn);
+
+ echo '<form method="POST" id="list_ag_frm" style="display:inline">';
+ echo HtmlInput::request_to_hidden(array("gDossier", "ac", "sb", "sc",
"f_id"));
+ require_once 'template/action_other_action.php';
+ echo $act->myList($p_base, "", $query);
+ echo '</form>';
+ }
+
+ /**
+ * Create a subquery to filter thanks the selected tag
+ * @param $cn db connx
+ * @param $p_array
+ * @return SQL
+ */
+ static function filter_by_tag($cn, $p_array=null)
+ {
+ if ($p_array==null)
+ $p_array=$_GET;
+
+ extract($p_array);
+ $query="";
+ if (count($searchtag)==0)
+ return "";
+ for ($i=0; $i<count($searchtag); $i++)
+ {
+ if (isNumber($searchtag[$i])==1)
+ $query .= ' and ag_id in (select ag_id from action_tags where
t_id= '.sql_string($searchtag[$i]).')';
}
- /**
- * Get 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
- */
- static function create_query($cn, $p_array = null)
- {
- if ($p_array == null)
- $p_array = $_GET;
+ return $query;
+ }
- extract($p_array);
- $action_query = "";
+ /**
+ * Get 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
+ */
+ static function create_query($cn, $p_array=null)
+ {
+ if ($p_array==null)
+ $p_array=$_GET;
+
+ extract($p_array);
+ $action_query="";
if (isset($_REQUEST['action_query']))
- {
- // if a query is request build the sql stmt
- $action_query = "and (ag_title ~* '" .
sql_string($_REQUEST['action_query']) . "' " .
- "or ag_ref ='" .
trim(sql_string($_REQUEST['action_query'])) .
- "' or ag_id in (select ag_id from
action_gestion_comment where agc_comment ~* '" .
trim(sql_string($_REQUEST['action_query'])) . "')" .
- ")";
- }
-
- $str = "";
- if (isset($qcode))
- {
- // verify that qcode is not empty
- if (strlen(trim($qcode)) != 0)
- {
-
- $fiche = new Fiche($cn);
- $fiche->get_by_qcode($_REQUEST['qcode']);
- // if quick code not found then nothing
- if ($fiche->id == 0)
- $str = ' and false ';
- else
- $str = " and (f_id_dest= " . $fiche->id
. " or ag_id in (select ag_id from action_person as ap where ap.f_id=".
$fiche->id .") )";
- }
- }
- if (isset($tdoc) && $tdoc != -1)
- {
- $action_query .= ' and dt_id = ' . sql_string($tdoc);
- }
- if (isset($state) && $state!= -1)
- {
- $action_query .= ' and ag_state= ' . sql_string($state);
- }
- if (isset($hsstate) && $hsstate!= -1)
- {
- $action_query .= ' and ag_state <> ' .
sql_string($hsstate);
- }
- if (isset($sag_ref) && trim($sag_ref) != "")
- {
- $query .= ' and ag_ref= \'' . sql_string($sag_ref)."'";
- }
-
- if (isset($_GET['only_internal']))
- $action_query .= ' and f_id_dest=0 ';
-
- if (isset($date_start) && isDate($date_start) != null)
- {
- $action_query.=" and ag_timestamp >=
to_date('$date_start','DD.MM.YYYY')";
- }
- if (isset($date_end) && isDate($date_end) != null)
- {
- $action_query.=" and ag_timestamp <=
to_date('$date_end','DD.MM.YYYY')";
- }
- if (isset($ag_dest_query) && $ag_dest_query != -2 )
- {
- $action_query.= " and ((ag_dest = " .
sql_string($ag_dest_query)." and ".self::sql_security_filter($cn, "R").") or ".
- "(ag_dest = " . sql_string($ag_dest_query)."
and ".self::sql_security_filter($cn, "R")." and ".
- " ag_owner='" . $_SESSION['g_user'] . "'))";
- }
- else
- {
- $action_query .=" and (ag_owner='" .
$_SESSION['g_user'] . "' or ".self::sql_security_filter($cn, "R")." or
ag_dest=-1 )";
- }
-
-
- if (isNumber($ag_id) == 1 && $ag_id != 0)
- {
- $action_query = " and ag_id= " . sql_string($ag_id);
- }
- if ( isset($remind_date) && $remind_date != "" &&
isDate($remind_date)==$remind_date)
- {
- $action_query .= " and
to_date('".sql_string($remind_date)."','DD.MM.YYYY')<= ag_remind_date";
- }
- if ( isset($remind_date_end) && $remind_date_end != "" &&
isDate($remind_date_end)==$remind_date_end)
- {
- $action_query .= " and
to_date('".sql_string($remind_date_end)."','DD.MM.YYYY')>= ag_remind_date";
- }
- if ( ! isset ($closed_action)) {
- $action_query.=" and s_status is null ";
- }
- if ( isset ($searchtag)) {
- $action_query .= Follow_Up::filter_by_tag($cn,$p_array);
- }
- return $action_query . $str;
- }
-
- /**
- * 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
- */
- static function short_list($cn, $p_sql)
- {
- $sql = "
+ {
+ // if a query is request build the sql stmt
+ $action_query="and (ag_title ~*
'".sql_string($_REQUEST['action_query'])."' ".
+ "or ag_ref ='".trim(sql_string($_REQUEST['action_query'])).
+ "' or ag_id in (select ag_id from action_gestion_comment
where agc_comment ~* '".trim(sql_string($_REQUEST['action_query']))."')".
+ ")";
+ }
+
+ $str="";
+ if (isset($qcode))
+ {
+ // verify that qcode is not empty
+ if (strlen(trim($qcode))!=0)
+ {
+
+ $fiche=new Fiche($cn);
+ $fiche->get_by_qcode($_REQUEST['qcode']);
+ // if quick code not found then nothing
+ if ($fiche->id==0)
+ $str=' and false ';
+ else
+ $str=" and (f_id_dest= ".$fiche->id." or ag_id in (select
ag_id from action_person as ap where ap.f_id=".$fiche->id.") )";
+ }
+ }
+ if (isset($tdoc)&&$tdoc!=-1)
+ {
+ $action_query .= ' and dt_id = '.sql_string($tdoc);
+ }
+ if (isset($state)&&$state!=-1)
+ {
+ $action_query .= ' and ag_state= '.sql_string($state);
+ }
+ if (isset($hsstate)&&$hsstate!=-1)
+ {
+ $action_query .= ' and ag_state <> '.sql_string($hsstate);
+ }
+ if (isset($sag_ref)&&trim($sag_ref)!="")
+ {
+ $query .= ' and ag_ref= \''.sql_string($sag_ref)."'";
+ }
+
+ if (isset($_GET['only_internal']))
+ $action_query .= ' and f_id_dest=0 ';
+
+ if (isset($date_start)&&isDate($date_start)!=null)
+ {
+ $action_query.=" and ag_timestamp >=
to_date('$date_start','DD.MM.YYYY')";
+ }
+ if (isset($date_end)&&isDate($date_end)!=null)
+ {
+ $action_query.=" and ag_timestamp <=
to_date('$date_end','DD.MM.YYYY')";
+ }
+ if (isset($ag_dest_query)&&$ag_dest_query!=-2)
+ {
+ $action_query.= " and ((ag_dest = ".sql_string($ag_dest_query)."
and ".self::sql_security_filter($cn, "R").") or ".
+ "(ag_dest = ".sql_string($ag_dest_query)." and
".self::sql_security_filter($cn, "R")." and ".
+ " ag_owner='".$_SESSION['g_user']."'))";
+ }
+ else
+ {
+ $action_query .=" and (ag_owner='".$_SESSION['g_user']."' or
".self::sql_security_filter($cn, "R")." or ag_dest=-1 )";
+ }
+
+
+ if (isNumber($ag_id)==1&&$ag_id!=0)
+ {
+ $action_query=" and ag_id= ".sql_string($ag_id);
+ }
+ if
(isset($remind_date)&&$remind_date!=""&&isDate($remind_date)==$remind_date)
+ {
+ $action_query .= " and
to_date('".sql_string($remind_date)."','DD.MM.YYYY')<= ag_remind_date";
+ }
+ if
(isset($remind_date_end)&&$remind_date_end!=""&&isDate($remind_date_end)==$remind_date_end)
+ {
+ $action_query .= " and
to_date('".sql_string($remind_date_end)."','DD.MM.YYYY')>= ag_remind_date";
+ }
+ if (!isset($closed_action))
+ {
+ $action_query.=" and s_status is null ";
+ }
+ if (isset($searchtag))
+ {
+ $action_query .= Follow_Up::filter_by_tag($cn, $p_array);
+ }
+ return $action_query.$str;
+ }
+
+ /**
+ * 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
+ */
+ static function short_list($cn, $p_sql)
+ {
+ $sql="
select ag_id,to_char(ag_timestamp,'DD.MM.YY') as my_date,
f_id_dest,
substr(ag_title,1,40) as sub_ag_title,dt_value,ag_ref,
ag_priority,ag_state,
@@ -1396,43 +1408,43 @@ class Follow_Up
join document_type on (ag_type=dt_id)
join document_state on (s_id=ag_state)
where $p_sql";
- $max_line = $cn->count_sql($sql);
-
- $limit = ($max_line > 25) ? 25 : $max_line;
- $Res = $cn->exec_sql($sql . "limit " . $limit);
- $a_row = Database::fetch_all($Res);
- require_once 'template/action_search_result.php';
- }
-
- /**
- * Insert a related action into the table action_gestion_related
- */
- function insert_action()
- {
- if (trim($this->action) == '')
- return;
- $array = explode(",", $this->action);
- for ($i = 0; $i < count($array); $i++)
- {
- if ($this->db->get_value("select count(*) from
action_gestion_related
- where (aga_least=$1 and aga_greatest=$2) or
(aga_greatest=$1 and aga_least=$2)", array($array[$i], $this->ag_id)) == 0 &&
$this->ag_id != $array[$i])
- {
- $this->db->exec_sql("insert into
action_gestion_related(aga_least,aga_greatest) values ($1,$2)",
array($this->ag_id, $array[$i]));
- }
- }
- }
-
- /**
- * export to CSV the query the p_array has
- * @param array $p_array
- */
- function export_csv($p_array)
- {
- extract($p_array);
-
-
- $p_search=self::create_query($this->db, $p_array);
- $sql = "
+ $max_line=$cn->count_sql($sql);
+
+ $limit=($max_line>25)?25:$max_line;
+ $Res=$cn->exec_sql($sql."limit ".$limit);
+ $a_row=Database::fetch_all($Res);
+ require_once 'template/action_search_result.php';
+ }
+
+ /**
+ * Insert a related action into the table action_gestion_related
+ */
+ function insert_action()
+ {
+ if (trim($this->action)=='')
+ return;
+ $array=explode(",", $this->action);
+ for ($i=0; $i<count($array); $i++)
+ {
+ if ($this->db->get_value("select count(*) from
action_gestion_related
+ where (aga_least=$1 and aga_greatest=$2) or
(aga_greatest=$1 and aga_least=$2)", array($array[$i],
$this->ag_id))==0&&$this->ag_id!=$array[$i])
+ {
+ $this->db->exec_sql("insert into
action_gestion_related(aga_least,aga_greatest) values ($1,$2)",
array($this->ag_id, $array[$i]));
+ }
+ }
+ }
+
+ /**
+ * export to CSV the query the p_array has
+ * @param array $p_array
+ */
+ function export_csv($p_array)
+ {
+ extract($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,
@@ -1450,257 +1462,285 @@ class Follow_Up
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);
-
- if ( Database::num_row($ret)==0) return;
- $this->db->query_to_csv($ret,array(
- array("title"=>"doc id","type"=>"string"),
- array("title"=>"date","type"=>"date"),
- array("title"=>"rappel","type"=>"date"),
- array("title"=>"date dernier
commentaire","type"=>"date"),
- array("title"=>"tags","type"=>"string"),
- array("title"=>"nom","type"=>"string"),
- array("title"=>"titre","type"=>"string"),
- array("title"=>"type
document","type"=>"string"),
- array("title"=>"ref","type"=>"string"),
- array("title"=>"priorite","type"=>"string"),
- array("title"=>"etat","type"=>"string"),
- array("title"=>"profil","type"=>"string")
- )
- );
- }
- static function get_all_operation($p_jr_id)
- {
- global $cn;
- $array=$cn->get_array("
+ $ret=$this->db->exec_sql($sql);
+
+ if (Database::num_row($ret)==0)
+ return;
+ $this->db->query_to_csv($ret, array(
+ array("title"=>"doc id", "type"=>"string"),
+ array("title"=>"date", "type"=>"date"),
+ array("title"=>"rappel", "type"=>"date"),
+ array("title"=>"date dernier commentaire", "type"=>"date"),
+ array("title"=>"tags", "type"=>"string"),
+ array("title"=>"nom", "type"=>"string"),
+ array("title"=>"titre", "type"=>"string"),
+ array("title"=>"type document", "type"=>"string"),
+ array("title"=>"ref", "type"=>"string"),
+ array("title"=>"priorite", "type"=>"string"),
+ array("title"=>"etat", "type"=>"string"),
+ array("title"=>"profil", "type"=>"string")
+ )
+ );
+ }
+
+ static function get_all_operation($p_jr_id)
+ {
+ global $cn;
+ $array=$cn->get_array("
select ag_id,ag_ref,ago_id,
ag_title
from action_gestion
join action_gestion_operation using(ag_id)
where
- jr_id=$1",array($p_jr_id));
- return $array;
- }
- /**
- * @brief get the tags of the current objet
- * @return an array idx [ag_id,t_id,at_id,t_tag]
- */
- function tag_get()
+ jr_id=$1", array($p_jr_id));
+ return $array;
+ }
+
+ /**
+ * @brief get the tags of the current objet
+ * @return an array idx [ag_id,t_id,at_id,t_tag]
+ */
+ function tag_get()
+ {
+ if ($this->ag_id==0)
+ return;
+ $sql='select b.ag_id,b.t_id,b.at_id,a.t_tag'
+ .' from '
+ .' tags as a join action_tags as b on (a.t_id=b.t_id)'
+ .' where ag_id=$1 '
+ .' order by a.t_tag';
+ $array=$this->db->get_array($sql, array($this->ag_id));
+ return $array;
+ }
+
+ /**
+ * @brief show the tags of the current objet
+ * normally used by ajax. The same tag cannot be added twice
+ *
+ */
+ function tag_add($p_t_id)
+ {
+ if ($this->ag_id==0)
+ return;
+ $count=$this->db->get_value('select count(*) from action_tags'.
+ ' where ag_id=$1 and t_id=$2', array($this->ag_id, $p_t_id));
+ if ($count>0)
+ return;
+ $sql=' insert into action_tags (ag_id,t_id) values ($1,$2)';
+ $this->db->exec_sql($sql, array($this->ag_id, $p_t_id));
+ }
+
+ /**
+ * @brief remove the tags of the current objet
+ * normally used by ajax
+ */
+ function tag_remove($p_t_id)
+ {
+ if ($this->ag_id==0)
+ return;
+ $sql=' delete from action_tags where ag_id=$1 and t_id=$2';
+ $this->db->exec_sql($sql, array($this->ag_id, $p_t_id));
+ }
+
+ /**
+ * @brief show the cell content in Display for the tags
+ * called also by ajax
+ */
+ function tag_cell()
+ {
+ global $g_user;
+ $a_tag=$this->tag_get();
+ $c=count($a_tag);
+ for ($e=0; $e<$c; $e++)
{
- if ($this->ag_id==0)return;
- $sql='select b.ag_id,b.t_id,b.at_id,a.t_tag'
- . ' from '
- .' tags as a join action_tags as b on (a.t_id=b.t_id)'
- . ' where ag_id=$1 '
- .' order by a.t_tag';
- $array=$this->db->get_array($sql,array($this->ag_id));
- return $array;
- }
- /**
- * @brief show the tags of the current objet
- * normally used by ajax. The same tag cannot be added twice
- *
- */
- function tag_add($p_t_id)
- {
- if ($this->ag_id==0)return;
- $count=$this->db->get_value('select count(*) from action_tags'.
- ' where ag_id=$1 and t_id=$2',
- array($this->ag_id,$p_t_id));
- if ( $count > 0 ) return;
- $sql=' insert into action_tags (ag_id,t_id) values ($1,$2)';
- $this->db->exec_sql($sql,array($this->ag_id,$p_t_id));
-
- }
- /**
- * @brief remove the tags of the current objet
- * normally used by ajax
- */
- function tag_remove($p_t_id)
- {
- if ($this->ag_id==0)return;
- $sql=' delete from action_tags where ag_id=$1 and t_id=$2';
- $this->db->exec_sql($sql,array($this->ag_id,$p_t_id));
- }
- /**
- * @brief show the cell content in Display for the tags
- * called also by ajax
- */
- function tag_cell()
- {
- global $g_user;
- $a_tag=$this->tag_get();
- $c=count($a_tag);
- for ($e=0;$e<$c;$e++) {
-
$js_remove=sprintf("onclick=\"action_tag_remove('%s','%s','%s')\"",dossier::id(),$this->ag_id,
- $a_tag[$e]['t_id']);
- echo '<span style="border:1px solid black;margin-right:5px;">';
- echo $a_tag[$e]['t_tag'];
- if ($g_user->can_write_action($this->ag_id) == true )
- { HtmlInput::anchor( SMALLX, "javascript:void(0)",
$js_remove, ' class="smallbutton" style="padding:0px;display:inline" ');}
- echo '</span>';
- echo ' ';
- echo ' ';
- }
-
$js=sprintf("onclick=\"action_tag_select('%s','%s')\"",dossier::id(),$this->ag_id);
- if ($g_user->can_write_action($this->ag_id) == true )
+
$js_remove=sprintf("onclick=\"action_tag_remove('%s','%s','%s')\"",
dossier::id(), $this->ag_id, $a_tag[$e]['t_id']);
+ echo '<span style="border:1px solid black;margin-right:5px;">';
+ echo $a_tag[$e]['t_tag'];
+ if ($g_user->can_write_action($this->ag_id)==true)
{
- echo HtmlInput::button('tag_bt', 'Ajout tag',$js,
'smallbutton');
+ HtmlInput::anchor(SMALLX, "javascript:void(0)", $js_remove, '
class="smallbutton" style="padding:0px;display:inline" ');
}
-
+ echo '</span>';
+ echo ' ';
+ echo ' ';
}
- static function action_tag_remove($cn,$p_array)
+ $js=sprintf("onclick=\"action_tag_select('%s','%s')\"", dossier::id(),
$this->ag_id);
+ if ($g_user->can_write_action($this->ag_id)==true)
{
- global $g_user;
- $mag_id=$p_array['mag_id'];
- $remtag=$p_array['remtag'];
- for ($i=0;$i< count($mag_id);$i++)
- {
- if ($g_user->can_write_action($mag_id[$i]) == false) continue;
- for ($e=0;$e<count($remtag);$e++)
- {
- $a=new Follow_Up($cn,$mag_id[$i]);
- $a->tag_remove($remtag[$e]);
- }
- }
-
+ echo HtmlInput::button('tag_bt', 'Ajout tag', $js, 'smallbutton');
}
- static function action_tag_add($cn,$p_array)
+ }
+
+ static function action_tag_remove($cn, $p_array)
+ {
+ global $g_user;
+ $mag_id=$p_array['mag_id'];
+ $remtag=$p_array['remtag'];
+ for ($i=0; $i<count($mag_id); $i++)
{
- global $g_user;
- $mag_id=$p_array['mag_id'];
- $addtag=$p_array['addtag'];
- for ($i=0;$i< count($mag_id);$i++)
+ if ($g_user->can_write_action($mag_id[$i])==false)
+ continue;
+ for ($e=0; $e<count($remtag); $e++)
{
- if ($g_user->can_write_action($mag_id[$i]) == false) continue;
- for ($e=0;$e<count($addtag);$e++)
- {
- $a=new Follow_Up($cn,$mag_id[$i]);
- $a->tag_add($addtag[$e]);
- }
+ $a=new Follow_Up($cn, $mag_id[$i]);
+ $a->tag_remove($remtag[$e]);
}
}
- static function action_tag_clear($cn,$p_array)
+ }
+
+ static function action_tag_add($cn, $p_array)
+ {
+ global $g_user;
+ $mag_id=$p_array['mag_id'];
+ $addtag=$p_array['addtag'];
+ for ($i=0; $i<count($mag_id); $i++)
{
- global $g_user;
- $mag_id=$p_array['mag_id'];
- for ($i=0;$i< count($mag_id);$i++)
+ if ($g_user->can_write_action($mag_id[$i])==false)
+ continue;
+ for ($e=0; $e<count($addtag); $e++)
{
- if ($g_user->can_write_action($mag_id[$i]) == false) continue;
- $a=new Follow_Up($cn,$mag_id[$i]);
- $a->tag_clear();
+ $a=new Follow_Up($cn, $mag_id[$i]);
+ $a->tag_add($addtag[$e]);
}
}
- static function action_print($cn,$p_array)
+ }
+
+ static function action_tag_clear($cn, $p_array)
+ {
+ global $g_user;
+ $mag_id=$p_array['mag_id'];
+ for ($i=0; $i<count($mag_id); $i++)
{
- global $g_user;
- $mag_id=$p_array['mag_id'];
- for ($i=0;$i< count($mag_id);$i++)
- {
- if ($g_user->can_read_action($mag_id[$i]) == false) continue;
- $a=new Follow_Up($cn,$mag_id[$i]);
- $a->get();
- echo '<div class="content">';
- echo $a->Display("READ", false, "");
- echo '</div>';
- echo '<P id="breakhere"> - - </p>';
- }
+ if ($g_user->can_write_action($mag_id[$i])==false)
+ continue;
+ $a=new Follow_Up($cn, $mag_id[$i]);
+ $a->tag_clear();
}
- function tag_clear() {
- $this->db->exec_sql('delete from action_tags where
ag_id=$1',array($this->ag_id));
+ }
+
+ static function action_print($cn, $p_array)
+ {
+ global $g_user;
+ $mag_id=$p_array['mag_id'];
+ for ($i=0; $i<count($mag_id); $i++)
+ {
+ if ($g_user->can_read_action($mag_id[$i])==false)
+ continue;
+ $a=new Follow_Up($cn, $mag_id[$i]);
+ $a->get();
+ echo '<div class="content">';
+ echo $a->Display("READ", false, "");
+ echo '</div>';
+ echo '<P id="breakhere"> - - </p>';
}
- static function action_set_state($cn,$p_array)
+ }
+
+ function tag_clear()
+ {
+ $this->db->exec_sql('delete from action_tags where ag_id=$1',
array($this->ag_id));
+ }
+
+ static function action_set_state($cn, $p_array)
+ {
+
+ global $g_user;
+ $mag_id=$p_array['mag_id'];
+ $state=$p_array['ag_state'];
+ for ($i=0; $i<count($mag_id); $i++)
{
-
- global $g_user;
- $mag_id=$p_array['mag_id'];
- $state=$p_array['ag_state'];
- for ($i=0;$i< count($mag_id);$i++)
- {
- if ($g_user->can_write_action($mag_id[$i]) == false) continue;
- $cn->exec_sql('update action_gestion set ag_state=$1 where
ag_id=$2',
- array($state,$mag_id[$i]));
- }
+ if ($g_user->can_write_action($mag_id[$i])==false)
+ continue;
+ $cn->exec_sql('update action_gestion set ag_state=$1 where
ag_id=$2', array($state, $mag_id[$i]));
}
- static function action_remove($cn,$p_array)
+ }
+
+ static function action_remove($cn, $p_array)
+ {
+ global $g_user;
+
+ $mag_id=$p_array['mag_id'];
+ for ($i=0; $i<count($mag_id); $i++)
{
- global $g_user;
-
- $mag_id=$p_array['mag_id'];
- for ($i=0;$i< count($mag_id);$i++)
- {
- if ($g_user->can_write_action($mag_id[$i]) == false) continue;
- $cn->exec_sql('delete from action_gestion where ag_id=$1',
- array($mag_id[$i]));
- }
+ if ($g_user->can_write_action($mag_id[$i])==false)
+ continue;
+ $cn->exec_sql('delete from action_gestion where ag_id=$1',
array($mag_id[$i]));
}
- /**
- * Verify that data are correct
- * @throws Exception
- */
- function verify()
+ }
+
+ /**
+ * Verify that data are correct
+ * @throws Exception
+ */
+ function verify()
+ {
+ if ($this->dt_id==-1)
{
- if ( $this->dt_id == -1 ) {
- throw new Exception (_('Type action invalide'),10);
- }
- if ( isDate($this->ag_timestamp) != $this->ag_timestamp )
- throw new Exception (_('Date invalide'),20);
- if ( isDate($this->ag_remind_date) != $this->ag_remind_date )
- throw new Exception (_('Date invalide'),30);
- if ( $this->f_id_dest == 0 ) $this->f_id_dest=null;
+ throw new Exception(_('Type action invalide'), 10);
}
- /**
- * Add another concerned (tiers, supplier...)
- * @global type $g_user
- * @param type $p_fiche_id
- */
- function insert_linked_card($p_fiche_id)
+ if (isDate($this->ag_timestamp)!=$this->ag_timestamp)
+ throw new Exception(_('Date invalide'), 20);
+ if (isDate($this->ag_remind_date)!=$this->ag_remind_date)
+ throw new Exception(_('Date invalide'), 30);
+ if ($this->f_id_dest==0)
+ $this->f_id_dest=null;
+ }
+
+ /**
+ * Add another concerned (tiers, supplier...)
+ * @global type $g_user
+ * @param type $p_fiche_id
+ */
+ function insert_linked_card($p_fiche_id)
+ {
+ global $g_user;
+ if ($g_user->can_write_action($this->ag_id))
{
- global $g_user;
- if ( $g_user->can_write_action($this->ag_id)) {
- /**
- * insert into action_person
- */
- $count=$this->db->get_value('select count(*) from
action_person where f_id=$1 and ag_id=$2',array($p_fiche_id,$this->ag_id));
- if ( $count == 0 )
- {
- $this->db->exec_sql('insert into action_person
(ag_id,f_id) values ($1,$2)',array($this->ag_id,$p_fiche_id));
- }
+ /**
+ * insert into action_person
+ */
+ $count=$this->db->get_value('select count(*) from action_person
where f_id=$1 and ag_id=$2', array($p_fiche_id, $this->ag_id));
+ if ($count==0)
+ {
+ $this->db->exec_sql('insert into action_person (ag_id,f_id)
values ($1,$2)', array($this->ag_id, $p_fiche_id));
}
}
- /**
- * Remove another concerned (tiers, supplier...)
- * @global type $g_user
- * @param type $p_fiche_id
- */
- function remove_linked_card($p_fiche_id)
+ }
+
+ /**
+ * Remove another concerned (tiers, supplier...)
+ * @global type $g_user
+ * @param type $p_fiche_id
+ */
+ function remove_linked_card($p_fiche_id)
+ {
+ global $g_user;
+ if ($g_user->can_write_action($this->ag_id))
{
- global $g_user;
- if ( $g_user->can_write_action($this->ag_id)) {
- $this->db->exec_sql('delete from action_person where ag_id =
$1 and f_id = $2',array($this->ag_id,$p_fiche_id));
- }
-
+ $this->db->exec_sql('delete from action_person where ag_id = $1
and f_id = $2', array($this->ag_id, $p_fiche_id));
}
- /**
- * Display the other concerned (tiers, supplier...)
- * @return string
- */
- function display_linked()
+ }
+
+ /**
+ * Display the other concerned (tiers, supplier...)
+ * @return string
+ */
+ function display_linked()
+ {
+ $a_linked=$this->db->get_array('select ap_id,f_id from action_person
where ag_id=$1', array($this->ag_id));
+ if (count($a_linked)==0)
+ return "";
+ for ($i=0; $i<count($a_linked); $i++)
{
- $a_linked=$this->db->get_array('select ap_id,f_id from
action_person where ag_id=$1',array($this->ag_id));
- if ( count($a_linked) == 0 ) return "";
- for ($i=0;$i<count($a_linked);$i++)
- {
- $fiche=new Fiche($this->db,$a_linked[$i]['f_id']);
- $qc=$fiche->get_quick_code();
-
$js_remove=sprintf("onclick=\"action_remove_concerned('%s','%s','%s')\"",dossier::id(),
- $a_linked[$i]['f_id'],$this->ag_id);
- echo '<span style="border:1px solid black;margin-right:5px;">';
- echo $qc;
- echo HtmlInput::anchor(SMALLX, "javascript:void(0)",
$js_remove, ' class="smallbutton" style="padding:0px;display:inline" ');
- echo '</span>';
- echo ' ';
- echo ' ';
- }
+ $fiche=new Fiche($this->db, $a_linked[$i]['f_id']);
+ $qc=$fiche->get_quick_code();
+
$js_remove=sprintf("onclick=\"action_remove_concerned('%s','%s','%s')\"",
dossier::id(), $a_linked[$i]['f_id'], $this->ag_id);
+ echo '<span style="border:1px solid black;margin-right:5px;">';
+ echo $qc;
+ echo HtmlInput::anchor(SMALLX, "javascript:void(0)", $js_remove, '
class="smallbutton" style="padding:0px;display:inline" ');
+ echo '</span>';
+ echo ' ';
+ echo ' ';
}
+ }
+
}
- [Noalyss-commit] [noalyss] 02/22: translation, (continued)
- [Noalyss-commit] [noalyss] 02/22: translation, Dany De Bontridder, 2015/06/18
- [Noalyss-commit] [noalyss] 22/22: Cosmetic, Dany De Bontridder, 2015/06/18
- [Noalyss-commit] [noalyss] 01/22: translation, Dany De Bontridder, 2015/06/18
- [Noalyss-commit] [noalyss] 19/22: upgrade SQL scripts, Dany De Bontridder, 2015/06/18
- [Noalyss-commit] [noalyss] 15/22: New : new parameter (choice_cat) for the sub_menu see wiki, Dany De Bontridder, 2015/06/18
- [Noalyss-commit] [noalyss] 17/22: Bug replace "Fermer" by a cross, Dany De Bontridder, 2015/06/18
- [Noalyss-commit] [noalyss] 21/22: upgrade SQL, Dany De Bontridder, 2015/06/18
- [Noalyss-commit] [noalyss] 20/22: translation, Dany De Bontridder, 2015/06/18
- [Noalyss-commit] [noalyss] 03/22: translation, Dany De Bontridder, 2015/06/18
- [Noalyss-commit] [noalyss] 06/22: translation, Dany De Bontridder, 2015/06/18
- [Noalyss-commit] [noalyss] 11/22: Documentation & indentation,
Dany De Bontridder <=