/* * This file is part of PhpCompta. * * PhpCompta is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * PhpCompta is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with PhpCompta; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Revision$ */ // Copyright Author Dany De Bontridder ddebontridder@yahoo.f require_once("class_fiche.php"); require_once("class_document.php"); require_once("class_document_type.php"); require_once("user_common.php"); /*!\file * \brief class_action for manipulating actions * action can be : * - an invoice * - a meeting * - an order * - a letter * * The table document_type are the possible actions */ /*! * \brief class_action for manipulating actions * action can be : * - an invoice * - a meeting * - an order * - a letter * * The table document_type are the possible actions */ class action { /*! \enum $db database connexion * \enum $ag_desc description (ag_gestion.ag_desc) * \enum $ag_date document date (ag_gestion.ag_date) * \enum $dt_id type of the document (document_type.dt_id) * \enum $d_state stage of the document (printed, send to client...) * \enum $d_number number of the document * \enum $d_filename filename's document * \enum $d_mimetype document's filename * \enum $ag_title title document * \enum $f_id fiche id */ var $db; var $ag_desc; var $ag_date; var $d_lob; var $dt_id; var $d_state; var $d_number; var $d_filename; var $d_mimetype; var $ag_title; var $f_id; /*! constructor * \brief constructor * \param p_cn database connection */ function action ($p_cn) { $this->db=$p_cn; $this->f_id=0; } /*! Display * \brief Display the object * * \return string containing the html code */ function Display() { $r=""; // Compute the widget // Date $date=new widget("text"); $date->readonly=true; $date->name="ag_date"; $date->value=$this->ag_date; // Doc Type $doc_type=new widget("hidden"); $doc_type->name="dt_id"; $doc_type->value=$this->dt_id; $a=ExecSql($this->db,"select dt_value from document_type where dt_id=".$this->dt_id); $v=pg_fetch_array($a,0); $str_type=$v[0]; // state // Retrieve the value $a=ExecSql($this->db,"select s_value from document_state where s_id=".$this->d_state); $v=pg_fetch_array($a,0); $str_state=$v[0]; $state=new widget("hidden"); $state->name="d_state"; $state->value=$this->d_state; // title $title=new widget("text"); $title->readonly=true; $title->name="ag_title"; $title->value=FormatString($this->ag_title); // Description $desc=new widget('textarea'); $desc->name="ag_desc"; $desc->readonly=" disabled "; $desc->value=$this->ag_desc; // Propose to generate a document $gen=new widget ("checkbox"); $gen->name="p_gen"; $doc_gen=new widget("select"); $doc_gen->name="gen_doc"; $doc_gen->value=make_array($this->db, "select md_id,md_name from document_modele where md_type=".$this->dt_id); // f_id $tiers=new fiche($this->db); $tiers->GetByQCode($this->qcode); // Preparing the return string $r.="
Date : ".$date->IOValue()."
"; $r.="Etat $str_state".$state->IOValue()."
"; $r.="Type du document $str_type".$doc_type->IOValue()."
"; $r.="Tiers : ".$this->qcode." ".$tiers->strAttribut(1).'
'; $r.="Titre : ".$title->IOValue(); $r.="
Description :".urldecode($desc->IOValue())."
"; return $r; } /*! Confirm * \brief Display the encoded data and ask a confirmation * this correspond to the stage 1, before the generation * or the upload of document * * * \return string containing the form */ function Confirm() { if ( isDate($this->ag_date) == NULL ) { // if the date is invalid, default date is today $this->ag_date=date("d.m.Y"); } // Compute the widget // Date $date=new widget("text"); $date->readonly=true; $date->name="ag_date"; $date->value=$this->ag_date; // Doc Type $doc_type=new widget("hidden"); $doc_type->name="dt_id"; $doc_type->value=$this->dt_id; $a=ExecSql($this->db,"select dt_value from document_type where dt_id=".$this->dt_id); $v=pg_fetch_array($a,0); $str_type=$v[0]; if ( isset ($_REQUEST['url'])) { $retour=sprintf('',urldecode($_REQUEST['url'])); $h_url=sprintf('',urldecode($_REQUEST['url'])); } else { $retour=""; $h_url=""; } // state // Retrieve the value $a=ExecSql($this->db,"select s_value from document_state where s_id=".$this->d_state); $v=pg_fetch_array($a,0); $str_state=$v[0]; $state=new widget("hidden"); $state->name="d_state"; $state->value=$this->d_state; // title $title=new widget("text"); $title->readonly=true; $title->name="ag_title"; $title->value=FormatString($this->ag_title); // Description $desc=new widget('textarea'); $desc->name="ag_desc"; $desc->readonly=" disabled "; $desc->value=$this->ag_desc; // Propose to generate a document $gen=new widget ("checkbox"); $gen->name="p_gen"; $doc_gen=new widget("select"); $doc_gen->name="gen_doc"; $doc_gen->value=make_array($this->db, "select md_id,md_name from document_modele where md_type=".$this->dt_id); // f_id $tiers=new fiche($this->db); $tiers->GetByQCode($this->qcode); // Preparing the return string $r=$retour.""; return $r; } /*! SaveStage2 * \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 * * \return */ function SaveStage2() { // Get The sequence id, $seq_name="seq_doc_type_".$this->dt_id; $str_file=""; $add_file=''; // f_id $tiers=new fiche($this->db); $tiers->GetByQCode($this->qcode); 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; } echo_debug('class_action',__LINE__," tiers->id ".$tiers->id); $sql=sprintf("insert into action_gestion(ag_type,ag_title,f_id,ag_comment) values ('%s','%s',%d,'%s')", $this->dt_id, FormatString($this->ag_title), $tiers->id, FormatString(urlencode($this->ag_desc))); ExecSql($this->db,$sql); $this->ag_id=GetSequence($this->db,'action_gestion_ag_id_seq'); // the lob filename and the mimetype needed if we want to generate a doc. if ( $this->gen == 'on' ) { $doc=new Document($this->db); $doc->f_id=$tiers->id; $doc->md_id=$this->md_id; $doc->ag_id=$this->ag_id; $str_file=$doc->Generate(); } $r=$this->Display(); $r.="| Date | "; $r.="Société | "; $r.="Titre | "; $r.="type | "; $r.="Document | "; $r.="
|---|---|---|---|---|
| ".$row['my_date']." | "; $f=new fiche($this->db); $f->id=$row['f_id']; $r.="".$f->getName()." | "; $r.="".$row['ag_title']." | "; $r.="".$row['dt_value']." | "; $doc=new Document($this->db,$row['d_id']); $r.="".$doc->a_ref()." | "; $r.="