Main Page | Namespace List | Class Hierarchy | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

action Class Reference

class_action for manipulating actions action can be : More...


Public Member Functions

 action ($p_cn)
 constructor
 Display ($p_view, $p_gen)
 Display the object, the tags for the FORM are in the caller. It will be used for adding and updating action.
 get ()
 This function shows the detail of an action thanks the ag_id.
 Confirm ()
 Display the encoded data and ask a confirmation this correspond to the stage 1, before the generation or the upload of document.
 SaveStage2 ()
 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 savethe ag_comment is already urlencoded.
 SaveStage3 ($d_id)
 Upload the document or save the generated document.
 myList ($p_filter="", $p_search="")
 Show list of action.
 Update ()
 Update the data into the database.

Data Fields

 $db
 $ag_comment
 $ag_timestamp
 $dt_id
 $d_state
 $d_number
 $d_filename
 $d_mimetype
 $ag_title
 $f_id
 $ag_ref_ag_id


Detailed Description

class_action for manipulating actions action can be :

The table document_type are the possible actions

Definition at line 46 of file class_action.php.


Constructor & Destructor Documentation

action::action p_cn  ) 
 

constructor

constructor

Parameters:
p_cn database connection

Definition at line 78 of file class_action.php.

References f_id.

00079     {
00080       $this->db=$p_cn;
00081       $this->f_id=0;
00082 
00083     }


Member Function Documentation

action::Confirm  ) 
 

Display the encoded data and ask a confirmation this correspond to the stage 1, before the generation or the upload of document.

Confirm

Returns:
string containing the form
Todo:
add the hour

Definition at line 364 of file class_action.php.

References $a, $desc, $h_url, $r, $retour, ag_comment, ag_timestamp, d_state, dt_id, echo_debug(), ExecSql(), f_id_dest, f_id_exp, fiche, FormatString(), isDate(), make_array(), name, and value.

00365     {
00366       echo_debug('class_action',__LINE__,'confirm()  :'.var_export($_POST,true));
00367       echo_debug('class_action',__LINE__,'confirm $this  :'.var_export($this,true));
00369       if ( isDate($this->ag_timestamp) == null )
00370         {
00371           // if the date is invalid, default date is today
00372           $this->ag_timestamp=date("d.m.Y");
00373         }
00374       // Compute the widget
00375       // Date 
00376       $date=new widget("text");
00377       $date->readonly=true;
00378       $date->name="ag_timestamp";
00379       $date->value=$this->ag_timestamp;
00380       // Doc Type
00381       $doc_type=new widget("hidden");
00382       $doc_type->name="dt_id";
00383       $doc_type->value=$this->dt_id;
00384       $a=ExecSql($this->db,"select dt_value from document_type where dt_id=".$this->dt_id);
00385       $v=pg_fetch_array($a,0);
00386       $str_type=$v[0];
00387       if ( isset ($_REQUEST['url'])) 
00388         {
00389           $retour=sprintf('<A HREF="%s"><input type="button" value="Retour"></A>',urldecode($_REQUEST['url']));
00390           $h_url=sprintf('<input type="hidden" name="url" value="%s">',urldecode($_REQUEST['url']));
00391         }
00392       else 
00393         { 
00394           $retour="";
00395           $h_url="";
00396         }
00397 
00398       // state
00399       $a=ExecSql($this->db,"select s_value from document_state where s_id=".$this->d_state);
00400       $v=pg_fetch_array($a,0);
00401       $str_state=$v[0];
00402       $state=new widget("hidden");
00403       $state->name="d_state";
00404       $state->value=$this->d_state;
00405         
00406       // title
00407       $title=new widget("text");
00408       $title->readonly=true;
00409       $title->name="ag_title";
00410       $title->value=FormatString($this->ag_title);
00411 
00412       // Description
00413       $desc=new widget('textarea');
00414       $desc->name="ag_comment";
00415       $desc->readonly=" disabled ";
00416       $desc->value=$this->ag_comment;
00417       // Propose to generate a document
00418       $gen=new widget ("checkbox");
00419       $gen->name="p_gen";
00420       $doc_gen=new widget("select");
00421       $doc_gen->name="gen_doc";
00422       $doc_gen->value=make_array($this->db,
00423                                  "select md_id,md_name from document_modele where md_type=".$this->dt_id);
00424 
00425       $h_agrefid=new widget('hidden');
00426 
00427        // f_id
00428        if ( trim($this->qcode_dest) =="")
00429          {
00430            // internal document
00431            $this->f_id_dest=0; // internal document
00432            $namedest="interne";
00433          }
00434        else // ( trim($this->qcode_dest) !=""  )
00435          {
00436            $tiers=new fiche($this->db);
00437            $tiers->GetByQCode($this->qcode_dest);
00438            $this->f_id_dest=$tiers->id;
00439            $namedest=$tiers->strAttribut(1);
00440                 if ( $namedest == '- ERROR  -') $this->f_id_dest=-1;    
00441          }
00442  
00443        // f_id
00444        if ( trim($this->qcode_exp) =="")
00445          {
00446            // internal document
00447            $this->f_id_exp=0; // internal document
00448            $nameexp="interne";
00449          }
00450        else // ( trim($this->qcode_exp) !=""  )
00451          {
00452            $tiers=new fiche($this->db);
00453            $tiers->GetByQCode($this->qcode_exp);
00454            $this->f_id_exp=$tiers->id;
00455            $nameexp=$tiers->strAttribut(1);
00456                 if ( $nameexp == '- ERROR  -') $this->f_id_exp=-1;      
00457          }
00458  
00459 
00460 
00461       // Preparing the return string
00462       $r=$retour."<form method=\"post\">";
00463       $r.="<p>Date : ".$date->IOValue()."</p>";
00464       $r.="<p>Etat $str_state".$state->IOValue()."</p>";
00465       $r.="<p>Type du document $str_type".$doc_type->IOValue()."</p>";
00466       $r.="<p> Expediteur : ".$this->qcode_exp." ".$nameexp.'</p>';
00467       $r.="<p> Destinataire : ".$this->qcode_dest." ".$namedest.'</p>';
00468       $r.="<p> Titre : ".$title->IOValue();
00469       $r.="<p>Description :".$desc->IOValue()."</p>";
00470 
00471       // if no document exist for this type then do not display the question
00472       if ( sizeof($doc_gen->value) != 0) 
00473         $r.="<p> G&eacute;n&eacute;rer un document ".$gen->IOValue()." ".$doc_gen->IOValue()."</p>";
00474         
00475 
00476       // Add the hidden tag
00477       $r.='<input type="hidden" name="sa" value="save_action_st2">';
00478       $r.='<input type="hidden" name="p_action" value="suivi_courrier">';
00479       $r.='<input type="hidden" name="f_id_dest" value="'.$this->f_id_dest.'">';
00480       $r.='<input type="hidden" name="f_id_exp" value="'.$this->f_id_exp.'">';
00481       $r.='<input type="hidden" name="qcode_dest" value="'.$this->qcode_dest.'">';
00482       $r.='<input type="hidden" name="qcode_exp" value="'.$this->qcode_exp.'">';
00483 
00484 
00485       $r.=      $h_agrefid->IOValue("ag_ref_ag_id",$this->ag_ref_ag_id);
00486         
00487       // retrieve customer
00488 
00489 
00490       if ( $this->f_id_dest != -1 && $this->f_id_exp !=-1 )
00491         $r.=$desc->Submit("Save","Sauve");
00492       $r.=$desc->Submit("corr","Corrige");
00493 
00494       $r.=$h_url."</form>";
00495       return $r;
00496     }

action::Display p_view,
p_gen
 

Display the object, the tags for the FORM are in the caller. It will be used for adding and updating action.

Display

Note:
If ag_id is not equal to zero then it is an update otherwise it is a new document
Parameters:
$p_view if set to true the form will be in readonly mode \param $p_gen true we show the tag for generating a doc
Todo:
change this parameter by UPD : ag_ref and document type are read only, the other are writable, NEW: everything is writable, READ readonly mode
Note:
update the reference number or the document type is not allowed
Returns:
string containing the html code

Definition at line 101 of file class_action.php.

References $a, $d_id, $desc, $doc, $r, $sp, $w, ag_id, ag_ref, ag_ref_ag_id, ag_timestamp, CountSql(), d_id, d_state, dt_id, echo_debug(), exit, f_id_dest, f_id_exp, fiche, FormatString(), getDbValue(), make_array(), myList(), qcode_dest, and qcode_exp.

Referenced by SaveStage2().

00102     {
00103       echo_debug('class_action',__LINE__,'Display()  :'.var_export($_POST,true));
00104       echo_debug('class_action',__LINE__,'Display $this  :'.var_export($this,true));
00105 
00106 
00107       if ( $p_view=='UPD')
00108         {
00109           $upd=true;    
00110           $readonly=false;
00111         }
00112       elseif ($p_view=="NEW")
00113         {
00114           $upd=false;
00115           $readonly=false;
00116         }
00117       elseif ($p_view=='READ')
00118         {
00119           $upd=true;
00120           $readonly=true;
00121         }
00122       else
00123         {
00124           exit('class_action'.__LINE__.'Action::Display error unknown parameter'.$p_view);
00125 
00126         }
00127       // Compute the widget
00128       // Date 
00129       $date=new widget("text");
00130       $date->readonly=$readonly;
00131       $date->name="ag_timestamp";
00132       $date->value=$this->ag_timestamp;
00133       
00134       
00135       // for insert mode only
00136       if ( $upd == false )
00137         {
00138           // Doc Type
00139           $doc_type=new widget("select");
00140           $doc_type->name="dt_id";
00141           $doc_type->value=make_array($this->db,"select dt_id,dt_value from document_type where dt_id in (".ACTION.")");
00142           $doc_type->selected=$this->dt_id;
00143           $doc_type->readonly=false;
00144           $str_doc_type=$doc_type->IOValue();
00145           echo_debug('class_action',__LINE__,var_export($doc_type,true));
00146         }
00147       else {
00148         // Doc Type
00149         $doc_type=new widget("hidden");
00150         $doc_type->name="dt_id";
00151         $doc_type->value=$this->dt_id;
00152         $str_doc_type=$doc_type->IOValue()." ".getDbValue($this->db,"select dt_value from document_type where dt_id=".$this->dt_id);
00153       }
00154 
00155       // Description
00156       $desc=new widget('RICHTEXT');
00157       $desc->width=500;
00158       $desc->heigh=250;
00159       $desc->name="ag_comment";
00160       $desc->readonly=$readonly;
00161       $desc->value=FormatString(urldecode($this->ag_comment));
00162 
00163       // state
00164       // Retrieve the value
00165       if ( $p_view != 'READ' )
00166         {
00167           $a=make_array($this->db,"select s_id,s_value from document_state ");
00168           $state=new widget("select");
00169           $state->readonly=$readonly;
00170           $state->name="d_state";
00171           $state->value=$a;
00172           $state->selected=$this->d_state;
00173           $str_state=$state->IOValue();
00174         } else {
00175           $str_state=getDbValue($this->db,"select s_value from document_state where s_id=".$this->d_state);
00176           $g=new widget("hidden");
00177           $str_state.=$g->IOValue('d_state',$this->d_state);
00178         }
00179       // Retrieve the value if there is an attached doc
00180       $doc_ref="";
00181       // Document id
00182 
00183       $h2=new widget("hidden");
00184       $h2->name="d_id";
00185       $h2->value=$this->d_id;
00186       
00187       if ( $this->d_id != 0 && $this->d_id != "" )
00188         {
00189           $h2->readonly=($p_view=='NEW')?false:true;
00190           $doc=new Document($this->db,$this->d_id);
00191           $d_id=new widget("hidden");
00192           $doc_ref="<p> Document ".$doc->a_ref().'</p>';
00193           $doc_ref.=$h2->IOValue().$d_id->IOValue('d_id',$this->d_id);
00194           
00195         }
00196 
00197 
00198       // title
00199       $title=new widget("text");
00200       $title->readonly=$readonly;
00201       $title->name="ag_title";
00202       $title->value=FormatString($this->ag_title);
00203       $title->size=80;
00204 
00205       // ag_ref
00206       // Always false for update
00207       $ag_ref=new widget("text");
00208       $ag_ref->readonly=$upd;
00209       $ag_ref->name="ag_ref";
00210       $ag_ref->value=FormatString($this->ag_ref);
00211       $client_label=new widget("span");
00212 
00213       // f_id_dest destination
00214       if ( $this->qcode_dest != '- ERROR -' && strlen(trim($this->qcode_dest)) != 0)
00215         {
00216           $tiers=new fiche($this->db);
00217           $tiers->GetByQCode($this->qcode_dest);
00218           $qcode_dest_label=$tiers->strAttribut(1);
00219         } else {
00220           //      echo "f_id $this->f_id";
00221           $qcode_dest_label=($this->f_id_dest==0 || trim($this->qcode_dest)=="")?'Interne ':'Error';
00222         }
00223 
00224       // f_id_exp sender
00225       if ( $this->qcode_exp != '- ERROR -' && strlen(trim($this->qcode_exp)) != 0)
00226         {
00227           $tiers=new fiche($this->db);
00228           $tiers->GetByQCode($this->qcode_exp);
00229           $qcode_exp_label=$tiers->strAttribut(1);
00230         } else {
00231           $qcode_exp_label=($this->f_id_exp==0 || trim($this->qcode_exp)=="")?'Interne ':'Error';
00232         }
00233 
00234       $h_ag_id=new widget("hidden");
00235       // if concerns another action : show the link otherwise nothing
00236       $lag_ref_ag_id=" X / XX ";
00237       
00238       if ( $this->ag_ref_ag_id != 0 )
00239         {
00240     //      $this->GetAgRef("ag_ref_ag_id")."</A>";
00241 
00242           $lag_ref_ag_id='<a class="mtitle" href="commercial.php?p_action=suivi_courrier&sa=detail&ag_id='.
00243             $this->ag_ref_ag_id.'">'.
00244             getDbValue($this->db,"select ag_ref from action_gestion where ag_id=".$this->ag_ref_ag_id).
00245             "</A>";
00246         } 
00247       // sender
00248       $w=new widget('js_search_only');
00249       $w->readonly=$readonly;
00250       $w->name='qcode_exp';
00251       $w->value=($this->f_id_exp != 0)?$this->qcode_exp:"";
00252       $w->label="";
00253       $w->extra='4,8,9,14,16';
00254       $sp= new widget("span");
00255       $h_agrefid=new widget('hidden');
00256       // destination
00257       $wdest=new widget('js_search_only');
00258       $wdest->readonly=$readonly;
00259       $wdest->name='qcode_dest';
00260       $wdest->value=($this->f_id_dest != 0)?$this->qcode_dest:"";
00261       $wdest->label="";
00262       $wdest->extra='4,8,9,14,16';
00263       $spdest= new widget("span");
00264       $h_agrefid=new widget('hidden');
00265       $str_ag_ref="<b>".(($this->ag_ref != "")?$this->ag_ref:" Nouveau ")."</b>";
00266       // Preparing the return string
00267       $r="";
00268       $r.=JS_SEARCH_CARD;
00269       $r.= '<p>Date :'.$date->IOValue()." Reference  ".$str_ag_ref; 
00270       $r.="&nbsp;         Concerne :".$lag_ref_ag_id.
00271       '   Type d\' action';
00272       echo_debug('class_action',__LINE__,"str_doc_type $str_doc_type");
00273       $r.= $str_doc_type;
00274 
00275       // state
00276       $r.="     Etat :".$str_state."</p>";
00277 
00278 
00279       $r.= "<p> ";
00280       $r.="Exp&eacute;diteur : ".$w->IOValue();
00281       $r.=$sp->IOValue('qcode_exp_label',$qcode_exp_label)."</TD></TR>";
00282  
00283       $r.="Destinataire :".$wdest->IOValue();
00284       $r.=$spdest->IOValue('qcode_dest_label',$qcode_dest_label)."</TD></TR>";
00285 
00286       //      $r.=' Ref :'.$ag_ref->IOValue();
00287       $r.="</p>";
00288       echo_debug('class_action',__LINE__,' ag_id is '.$this->ag_id);
00289 
00290       $r.= "<p> Titre : ".$title->IOValue();
00291       $r.= $doc_ref;
00292       $r.= "<p>".$desc->IOValue()."</p>";
00293 
00294       //hidden
00295       $r.="<p>";
00296       $r.=$h2->IOValue();
00297       $r.=$h_agrefid->IOValue("ag_ref_ag_id",$this->ag_ref_ag_id); 
00298       $r.=$h_ag_id->IOValue('ag_id',$this->ag_id);
00299       $hidden=new widget('hidden');
00300       $r.=$hidden->IOValue('f_id_dest',$this->f_id_dest);
00301       $hidden2=new widget('hidden');
00302       $r.=$hidden2->IOValue('f_id_exp',$this->f_id_exp);
00303       $r.="</p>";
00304 
00305       // show the list of the concern operation
00306       if ( CountSql($this->db,'select * from action_gestion where ag_ref_ag_id!=0 and ag_ref_ag_id='.$this->ag_id.
00307                     " limit 2") > 0 )
00308         $r.=$this->myList(ACTION," and ag_ref_ag_id=".$this->ag_id);
00309       return $r;
00310  
00311     }

action::get  ) 
 

This function shows the detail of an action thanks the ag_id.

Definition at line 315 of file class_action.php.

References $r, $row, $sql, ag_comment, ag_ref, ag_ref_ag_id, ag_timestamp, ag_title, d_id, d_state, dt_id, echo_debug(), ExecSql(), f_id_dest, f_id_exp, fiche, qcode_dest, and qcode_exp.

00316     {
00317       echo_debug('class_action',__LINE__,'Action::Get() ');
00318       $sql="select ag_id, ag_comment,to_char (ag_timestamp,'DD-MM-YYYY') as ag_timestamp,".
00319         " f_id_dest,f_id_exp,ag_title,ag_comment,ag_ref,d_id,ag_type,d_state,  ".
00320         " ag_ref_ag_id ".
00321         " from action_gestion left join document using (ag_id) where ag_id=".$this->ag_id;
00322       $r=ExecSql($this->db,$sql);
00323       $row=pg_fetch_all($r);
00324       if ( $row==false) return;
00325       $this->ag_comment=$row[0]['ag_comment'];
00326       $this->ag_timestamp=$row[0]['ag_timestamp'];
00327       $this->f_id_dest=$row[0]['f_id_dest'];
00328       $this->f_id_exp=$row[0]['f_id_exp'];
00329       $this->ag_title=$row[0]['ag_title'];
00330       $this->ag_type=$row[0]['ag_type'];
00331       $this->ag_ref=$row[0]['ag_ref'];
00332       $this->ag_ref_ag_id=$row[0]['ag_ref_ag_id'];
00333       $this->d_id=$row[0]['d_id'];
00334       //
00335       echo_debug('class_action',__LINE__,' Document id = '.$this->d_id);
00336       // if there is no document set 0 to d_id
00337       if ( $this->d_id == "" ) 
00338         $this->d_id=0;
00339       // if there is a document fill the object
00340       if ($this->d_id != 0 )
00341         {
00342           $this->state=$row['0']['d_state'];
00343           $this->d_state=$row[0]['d_state'];
00344         }
00345       echo_debug('class_action',__LINE__,' After test Document id = '.$this->d_id);
00346       $this->dt_id=$this->ag_type;
00347       $adest=new fiche($this->db,$this->f_id_dest);
00348       $this->qcode_dest=$adest->strAttribut(ATTR_DEF_QUICKCODE);
00349       $aexp=new fiche($this->db,$this->f_id_exp);
00350       $this->qcode_exp=$aexp->strAttribut(ATTR_DEF_QUICKCODE);
00351 
00352       echo_debug('class_action',__LINE__,'Detail end ()  :'.var_export($_POST,true));
00353       echo_debug('class_action',__LINE__,'Detail $this  :'.var_export($this,true));
00354 
00355     }

action::myList p_filter = "",
p_search = ""
 

Show list of action.

myList($p_filter="")

Parameters:
$p_filter filters on the document_type
$p_search must a valid sql command ( ex 'and ag_title like upper('hjkh'))
Returns:
string containing html code
Todo:
add a sort on column $r.='

Definition at line 638 of file class_action.php.

References $_SESSION, $bar, $doc, $limit, $line, $offset, $page, $r, $Res, $row, $sql, $step, ag_ref, ag_ref_ag_id, ag_title, CountSql(), d_id, echo_debug(), ExecSql(), f_id_dest, f_id_exp, fiche, jrn_navigation_bar(), and table.

Referenced by Display().

00639     {
00640       // for the sort
00641       $sort="";
00642       if ( isset($_GET['s'])){
00643         {
00644           switch ($_GET['s']) {
00645           case "date":
00646             $sort=" ag_timestamp";
00647             break;
00648           case "exp":
00649             $sort=" f_id_exp";
00650             break;
00651           case "dest":
00652             $sort=" f_id_dest";
00653             break;
00654           case "ti":
00655             $sort=" ag_title";
00656             break;
00657           case "type":
00658             $sort=" ag_type";
00659             break;
00660           case "ref":
00661             $sort=" ag_ref";
00662             break;
00663           case "conc":
00664             $sort=" ag_ref_ag_id";
00665             break;
00666           }
00667           $sort=" order by ".$sort." desc ";
00668         }
00669       }
00670       $sql="
00671    select ag_id,to_char(ag_timestamp,'DD-MM-YYYY') as my_date,ag_ref_ag_id,f_id_dest,f_id_exp".
00672         ",ag_title,d_id,md_type,dt_value,ag_ref 
00673    from action_gestion 
00674       left outer join document using (ag_id)
00675       left outer join document_modele on (ag_type=md_type) 
00676       join document_type on (ag_type=dt_id)
00677    where dt_id in ($p_filter) $p_search $sort";
00678       $max_line=CountSql($this->db,$sql);
00679       $step=$_SESSION['g_pagesize'];
00680       $page=(isset($_GET['offset']))?$_GET['page']:1;
00681       $offset=(isset($_GET['offset']))?$_GET['offset']:0;
00682       $limit=" LIMIT $step OFFSET $offset ";  
00683       $bar=jrn_navigation_bar($offset,$max_line,$step,$page);
00684 
00685       $Res=ExecSql($this->db,$sql.$limit);
00686       $a_row=pg_fetch_all($Res);
00687       //      $r='<div class="u_redcontent">';
00688       $query="";
00689       if ( isset ($_GET['query'])) 
00690         $query.="query=".$_GET['query'];
00691       else 
00692         $query="1";
00693 
00694       if ( isset ($_GET['qcode_query'])) $query.='&qcode_query='.$_GET['qcode_query'];
00695       echo_debug('class_action',__LINE__,"jrn bar = $bar");
00696       echo_debug('class_action',__LINE__,'$_SESSION='.var_export($_SESSION,true));
00697       $r="";
00698       $r.=$bar;
00699       $r.='<table class="document">';
00700       $r.="<tr>";
00713       $r.='<th> Date</th>';
00714       $r.='<th>Destinataire</th>';
00715       $r.='<th>Expéditeur</th>';
00716       $r.='<th>Titre</th>';
00717       $r.='<th>type</th>';
00718       $r.='<th>Référence</th>';
00719       $r.='<th>concerne</th>';
00720       $r.='<th>Document</th>';
00721       $r.="</tr>";
00722 
00723       // if there are no records return a message
00724       if ( sizeof ($a_row) == 0 or $a_row == false ) 
00725         {
00726           $r='<div class="u_redcontent">';
00727           $r.='<hr>Aucun enregistrement trouvé';
00728           $r.="</div>";
00729           return $r;
00730 
00731         }
00732       $r.=JS_SEARCH_CARD;
00733       foreach ($a_row as $row )
00734         {
00735 
00736           $r.="<tr>";
00737           $r.="<td>".$row['my_date']."</td>";
00738           // Destinataire
00739           $fdest=new fiche($this->db);
00740           $fdest->id=$row['f_id_dest'];
00741           $qcode_dest=$fdest->strAttribut(ATTR_DEF_QUICKCODE);
00742 
00743           $qdest=($qcode_dest=="- ERROR -")?"Interne":$qcode_dest;
00744           $jsdest=sprintf("javascript:showfiche('%s','%s')",
00745                       $_REQUEST['PHPSESSID'],$qdest);
00746           if ( $qdest != 'Interne' )
00747             {
00748               $r.="<td>".'<A HREF="'.$jsdest.'">'.$qdest." : ".$fdest->getName().'</A></td>';
00749             }
00750           else
00751             $r.="<td>Interne </td>";
00752 
00753           // Expediteur
00754           $fexp=new fiche($this->db);
00755           $fexp->id=$row['f_id_exp'];
00756           $qcode_exp=$fexp->strAttribut(ATTR_DEF_QUICKCODE);
00757 
00758           $qexp=($qcode_exp=="- ERROR -")?"Interne":$qcode_exp;
00759           $jsexp=sprintf("javascript:showfiche('%s','%s')",
00760                       $_REQUEST['PHPSESSID'],$qexp);
00761           if ( $qexp != 'Interne' )
00762             {
00763               $r.="<td>".'<A HREF="'.$jsexp.'">'.$qexp." : ".$fexp->getName().'</A></td>';
00764             }
00765           else
00766             $r.="<td>Interne </td>";
00767 
00768           $ref="";
00769 
00770           // show reference
00771           if ( $row['ag_ref_ag_id'] != 0 ) 
00772             {
00773               $retSqlStmt=ExecSql($this->db,
00774                                   "select ag_ref from action_gestion where ag_id=".$row['ag_ref_ag_id']);
00775               $retSql=pg_fetch_all($retSqlStmt);
00776               if ( $retSql != null )
00777                 {
00778                   foreach ($retSql as $line) 
00779                     {
00780                       $ref.='<A  href="commercial.php?p_action=suivi_courrier&query='.$line['ag_ref'].'">'.
00781                         $line['ag_ref']."<A>";
00782                     }
00783                 }
00784             }
00785 
00786           $r.='<td><A HREF="commercial.php?p_action=suivi_courrier&sa=detail&ag_id='.$row['ag_id'].'">'.
00787             $row['ag_title']."</A></td>";
00788           $r.="<td>".$row['dt_value']."</td>";
00789           $r.="<td>".$row['ag_ref']."</td>";
00790           $r.="<td>".$ref."</td>";
00791           $doc=new Document($this->db,$row['d_id']);
00792           $r.="<td>".$doc->a_ref()."</td>";
00793           $r.="</tr>";
00794 
00795         }
00796       $r.="</table>";
00797 
00798       $r.=$bar;
00799       //$r.="</div>";
00800       return $r;
00801     }

action::SaveStage2  ) 
 

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 savethe ag_comment is already urlencoded.

SaveStage2

Returns:

Definition at line 504 of file class_action.php.

References $d, $doc, $r, $sql, $str_file, $upload, ag_comment, ag_id, ag_ref, ag_title, d_state, Display(), dt_id, echo_debug(), ExecSql(), fiche, FormatString(), md_id, name, NextSequence(), and value.

00505     {
00506       echo_debug('class_action',__LINE__,'saveStage2()  :'.var_export($_POST,true));
00507       echo_debug('class_action',__LINE__,' saveStage2()  $this  :'.var_export($this,true));
00508 
00509       // Get The sequence id, 
00510       $seq_name="seq_doc_type_".$this->dt_id;
00511       $str_file="";
00512       $add_file='';
00513       // f_id dest
00514       $tiers=new fiche($this->db);
00515       $tiers->GetByQCode($this->qcode_dest);
00516 
00517       // f_id exp
00518       $exp=new fiche($this->db);
00519       $exp->GetByQCode($this->qcode_exp);
00520 
00521       if ( trim($this->ag_title) == "") 
00522         {
00523           $doc_mod=new document_type($this->db);
00524           $doc_mod->dt_id=$this->dt_id;
00525           $doc_mod->get();
00526           $this->ag_title=$doc_mod->dt_value;
00527         }
00528       echo_debug('class_action',__LINE__," tiers->id  ".$tiers->id);
00529       $this->ag_id=NextSequence($this->db,'action_gestion_ag_id_seq');
00530       // Create the reference 
00531       $ref=$this->dt_id.'/'.$this->ag_id;
00532       $this->ag_ref=$ref;
00535       //we remove newline 
00536       $this->ag_comment=str_replace("%OD","",$this->ag_comment);
00537       $this->ag_comment=str_replace("%OA","",$this->ag_comment);
00538       // save into the database
00539       $sql=sprintf("insert into action_gestion".
00540                    "(ag_id,ag_timestamp,ag_type,ag_title,f_id_dest,f_id_exp,ag_comment,ag_ref,ag_ref_ag_id) ".
00541                    " values (%d,to_date('%s','DD-MM-YYYY'),'%d','%s',%d,%d,'%s','%s',%d)",
00542                    $this->ag_id,
00543                    $this->ag_timestamp,
00544                    $this->dt_id,
00545                    FormatString($this->ag_title),
00546                    $tiers->id,
00547                    $exp->id,
00548                    $this->ag_comment,
00549                    $ref,
00550                    $this->ag_ref_ag_id
00551                    );
00552       ExecSql($this->db,$sql);
00553 
00554 
00555 
00556       // the lob filename and the mimetype needed if we want to generate a doc.
00557       if ( $this->gen == 'on' ) 
00558         {
00559           $doc=new Document($this->db);
00560           $doc->f_id=$tiers->id;
00561           $doc->md_id=$this->md_id;
00562           $doc->ag_id=$this->ag_id;
00563           $doc->d_state=$this->d_state;
00564           $str_file=$doc->Generate();
00565           $d='<input type="hidden" name="d_id" value="'.$doc->d_id.'">';
00566         }
00567       $r="";
00568       // readonly and upload of a file
00569       $r.="<hr>";
00570       $r.='<form enctype="multipart/form-data" method="post">';
00571       echo_debug("class_action",__LINE__,"call display");
00572       $r.=$this->Display('READ',false);
00573       // Add the hidden tag
00574       $r.='<input type="hidden" name="sa" value="save_action_st3">';
00575       $r.='<input type="hidden" name="p_action" value="suivi_courrier">';
00576       // add the d_id
00577       $r.='<input type="hidden" name="d_id" value="'.$this->d_id.'">'; 
00578       // ag_comment must be saved in urlcode
00579       $r.='<input type="hidden" name="ag_comment" value="'.urlencode($this->ag_comment).'">';
00580       // Value for the generated document
00581       if ( $this->gen == 'on' ) 
00582         {
00583           $r.='<input type="hidden" name="d_id" value="'.$doc->d_id.'">';
00584           $r.="Sauver le document généré :";
00585           $r.=$str_file;
00586           $checkbox=new widget("checkbox");
00587           $checkbox->name="save_generate";
00588           $r.=$checkbox->IOValue();
00589           $r.="<hr>";
00590         }
00591       $upload=new widget("file");
00592       $upload->name="file_upload";
00593       $upload->value="";
00594       $r.="Enregistrer le fichier ".$upload->IOValue();
00595       $r.=$upload->Submit("save","Sauve le fichier");
00596       $r.="</form>";
00597       return $r;
00598     }

action::SaveStage3 d_id  ) 
 

Upload the document or save the generated document.

SaveStage3

Parameters:
$d_id document_id when we upload we don't increment seq. if = 0 then no file

Definition at line 604 of file class_action.php.

References $d_id, $doc, ag_id, d_id, dt_id, and echo_debug().

00605     {
00606       echo_debug('class_action',__LINE__,'SaveStage3()  :'.var_export($_POST,true));
00607       echo_debug('class_action',__LINE__,'SaveStage3  :'.var_export($this,true));
00608 
00609       // if we save the generated doc
00610       if ( isset($_POST['save_generate']))
00611         {
00612           return;
00613         }
00614 
00615       // Upload a new document
00616       $doc=new Document($this->db);
00617       $doc->ag_id=$this->ag_id;
00618       // if there is a document and it is not an update
00619       if ( sizeof($_FILES) !=0 && $d_id==0) 
00620         {
00621           $doc->md_type=$this->dt_id;
00622           $doc->blank();
00623         }
00624       else 
00625         $doc->d_id=$d_id;
00626 
00627       $doc->Upload($this->ag_id);
00628     }

action::Update  ) 
 

Update the data into the database.

Returns:
true on success otherwise false

Definition at line 807 of file class_action.php.

References $doc, $sql, ag_comment, ag_id, d_id, d_state, dt_id, echo_debug(), ExecSql(), f_id_dest, f_id_exp, fiche, FormatString(), and return.

00808     {
00809       echo_debug('class_action',__LINE__,'Update() $_POST()  :'.var_export($_POST,true));
00810       echo_debug('class_action',__LINE__,'Update()  $this  :'.var_export($this,true));
00811 
00812       // if ag_id == 0 nothing to do
00813       if ( $this->ag_id == 0 ) return ;
00814 
00815 
00816       // retrieve customer
00817       // f_id
00818      
00819       if ( trim($this->qcode_exp) =="" )
00820         {
00821           // internal document
00822           $this->f_id_exp=0; // internal document
00823         }
00824       else
00825         {
00826           $tiers=new fiche($this->db);
00827           if ( $tiers->GetByQCode($this->qcode_exp) == -1 ) // Error we cannot retrieve this qcode
00828             return false; 
00829           else
00830             $this->f_id_exp=$tiers->id;
00831 
00832         }
00833       if ( trim($this->qcode_dest) =="" )
00834         {
00835           // internal document
00836           $this->f_id_dest=0; // internal document
00837         }
00838       else
00839         {
00840           $tiers=new fiche($this->db);
00841           if ( $tiers->GetByQCode($this->qcode_dest) == -1 ) // Error we cannot retrieve this qcode
00842             return false; 
00843           else
00844             $this->f_id_dest=$tiers->id;
00845 
00846         }
00847 
00848 
00849       //remove newline from ag_comment
00850       $this->ag_comment=str_replace("\n","",$this->ag_comment);
00851       $this->ag_comment=str_replace("\r","",$this->ag_comment);
00852 
00853       // url encoded
00854       $this->ag_comment=urlencode($this->ag_comment);
00855 
00856       // bug PHP : sometimes the newline remains
00857       $this->ag_comment=str_replace("%A0","",$this->ag_comment);
00858       $this->ag_comment=str_replace("%0D","",$this->ag_comment);
00859       $this->ag_comment=str_replace("+%A0+","",$this->ag_comment);
00860       $this->ag_comment=str_replace("+%0D+","",$this->ag_comment);
00861 
00862 
00863       $sql=sprintf("update action_gestion set ag_comment='%s',".
00864                    " ag_timestamp=to_date('%s','DD.MM.YYYY'),".
00865                    " ag_title='%s',".
00866                    " ag_type=%d, ".
00867                    " f_id_exp=%d, ".
00868                    " f_id_dest=%d, ".
00869                    " ag_ref_ag_id=%d".
00870                    " where ag_id = %d",
00871                    $this->ag_comment,
00872                    $this->ag_timestamp,
00873                    FormatString($this->ag_title),
00874                    $this->dt_id,
00875                    $this->f_id_exp,
00876                    $this->f_id_dest,
00877                    $this->ag_ref_ag_id,
00878                    $this->ag_id);
00879       ExecSql($this->db,$sql);
00880       
00881       if ( sizeof($_FILES) !=0 ) 
00882         {
00883           // Upload a new document
00884           $doc=new Document($this->db);
00885           if ( $this->d_id !=0 )
00886             {
00887               $doc->d_id=$this->d_id;
00888             } else {
00889               // we need to increment the counter 
00890               $doc->ag_id=$this->ag_id;
00891               $doc->md_type=$this->dt_id;
00892               $doc->blank();
00893             }
00894           $doc->Upload($this->ag_id);
00895       
00896         }
00897       if ( $this->d_id != 0 )
00898         {
00899           $doc=new Document($this->db);
00900           $doc->d_id=$this->d_id ;
00901           $doc->d_state=$this->d_state;
00902           $doc->save();
00903         }
00904       return true;
00905     }


Field Documentation

action::$ag_comment
 

description (ag_gestion.ag_comment)

Definition at line 64 of file class_action.php.

action::$ag_ref_ag_id
 

concern previous action

Todo:
replace attribut from class document document by an object document

Definition at line 73 of file class_action.php.

action::$ag_timestamp
 

document date (ag_gestion.ag_timestamp)

Definition at line 65 of file class_action.php.

action::$ag_title
 

title document

Definition at line 71 of file class_action.php.

action::$d_filename
 

filename's document

Definition at line 69 of file class_action.php.

action::$d_mimetype
 

document's filename

Definition at line 70 of file class_action.php.

action::$d_number
 

number of the document

Definition at line 68 of file class_action.php.

action::$d_state
 

stage of the document (printed, send to client...)

Definition at line 67 of file class_action.php.

action::$db
 

database connexion

Definition at line 63 of file class_action.php.

action::$dt_id
 

type of the document (document_type.dt_id)

Definition at line 66 of file class_action.php.

action::$f_id
 

Definition at line 72 of file class_action.php.


The documentation for this class was generated from the following file: