From c4e4a168bec69058668a29705bd41a86f3a778c9 Mon Sep 17 00:00:00 2001 From: sparkyx Date: Sun, 14 Oct 2007 10:30:27 +0000 Subject: [PATCH] Change name --- include/class_operation.php | 579 ------------------------------------ 1 file changed, 579 deletions(-) delete mode 100644 include/class_operation.php diff --git a/include/class_operation.php b/include/class_operation.php deleted file mode 100644 index e0aebd099..000000000 --- a/include/class_operation.php +++ /dev/null @@ -1,579 +0,0 @@ -db=$p_cn; - $this->id=$p_id; - } - /*!\brief add a row to the table operation_analytique - * \note if $this->oa_group if 0 then a sequence id will be computed for - * the oa_group, if $this->j_id=0 then it will be null - * - */ - function add($p_seq=0) { - - if ( $this->oa_group == 0) { - $this->oa_group=NextSequence($this->db,'s_oa_group'); - } - - if ( $this->j_id == 0 ) { - $this->j_id="null"; - } - - - // we don't save null operations - if ( $this->oa_amount == 0 || $this->po_id==-1) - return; - - $oa_row=(isset($this->oa_row))?$this->oa_row:"NULL"; - $sql='insert into operation_analytique ( - po_id, - pa_id, - oa_amount, - oa_description, - oa_debit, - oa_group, - j_id, - oa_date, - oa_row - ) values ('. - $this->po_id.",". - $this->pa_id.",". - $this->oa_amount.",". - "' ".pg_escape_string($this->oa_description)."',". - "'".$this->oa_debit."',". - $this->oa_group.",". - $this->j_id.",". - "to_date('".$this->oa_date."','DD.MM.YYYY'),".$oa_row.")"; - - - ExecSql($this->db,$sql); - - } - /*!\brief delete a row from the table operation_analytique - * \note be carefull : do not delete a row when we have a group - */ - function delete() { - $sql="delete from operation_analytique where oa_id=".$this->oa_id; - - ExecSql($this->db,$sql); - } - - /*!\brief update a row in the table operation_analytique - * \todo update - */ - function update() { - if ( $this->po_id == -1) { $this->delete();return;} - - $sql="update operation_analytique set po_id=".$this->po_id." where oa_id=".$this->oa_id; - ExecSql($this->db,$sql); - } - - /*!\brief get a list of row from a certain periode - * \todo to be done - */ - function get_list($p_from,$p_to,$p_from_poste="",$p_to_poste="") { - $cond=""; - $cond_poste=""; - - if ($p_from!="") - $cond="and oa_date >= to_date('$p_from','DD.MM.YYYY') "; - if ( $p_to!="" ) - $cond.="and oa_date <=to_date('$p_to','DD.MM.YYYY')"; - - if ($p_from_poste != "" ) - $cond_poste=" and upper(po_name) >= upper('".$p_from_poste."')"; - if ($p_to_poste != "" ) - $cond_poste.=" and upper(po_name) <= upper('".$p_to_poste."')"; - $pa_id_cond=""; - if ( isset ( $this->pa_id) && $this->pa_id !='') - $pa_id_cond= "B.pa_id=".$this->pa_id." and"; - - $sql="select oa_id,po_name,oa_description,". - "oa_debit,to_char(oa_date,'DD.MM.YYYY') as oa_date,oa_amount,oa_group,j_id ". - " from operation_analytique as B". - " join poste_analytique using(po_id) ". - "where $pa_id_cond oa_amount <> 0.0 $cond $cond_poste". - " order by oa_date ,oa_group,oa_debit desc,oa_id"; - $RetSql=ExecSql($this->db,$sql); - - - $array=pg_fetch_all($RetSql); - return $array; - } - - /*\brief show the HTML table for the operation - */ - function html_table($p_from){ - - - if ($p_from=="") - { $from="";$to="";} - else - list($from,$to)=GetPeriode($this->db,$p_from); - - - $array=$this->get_list($from,$to); - if ( empty($array) ) - return "Pas d'enregistrement trouvé"; - - // jrn_navigation_bar - $step=$_SESSION['g_pagesize']; - $page=(isset($_GET['offset']))?$_GET['page']:1; - $offset=(isset($_GET['offset']))?$_GET['offset']:0; - $bar=jrn_navigation_bar($offset+1,count($array),$step,$page); - - $view=array_splice($array,$offset,$step); - $gDossier=dossier::id(); - $ret=""; - $ret.=$bar; - $ret.=JS_VIEW_JRN_MODIFY; - $count=0; - $group=0; - $oldgroup=0; - $oldjrid=0; - foreach ($view as $row) { - $group=$row['oa_group']; - if ( $group !=$oldgroup ) { - if ( $oldgroup!=0 ) - { - - $efface=new widget('button'); - $efface->javascript="op_remove('".$_REQUEST['PHPSESSID']."',".$gDossier.",".$oldgroup.")"; - $efface->name="Efface"; - $efface->label="Efface"; - $ret.="".$efface->IOValue().""; - - $this->oa_group=$oldgroup; - $jr_id=$this->get_jrid(); - - if ( $jr_id != 0) { - // get the old jr_id - $detail=new widget('button'); - $detail->javascript="viewOperation($jr_id,'".$_REQUEST['PHPSESSID']."',$gDossier)"; - $detail->name="Detail"; - $detail->label="Detail"; - $ret.="".$detail->IOValue().""; - } - $ret.=''; - - } - $ret.=''; - - $ret.="". - ""; - - $ret.=""; - - - $oldgroup=$group; - - } - - $class=($count%2==0)?"odd":""; - $count++; - $cred= ( $row['oa_debit'] == 'f')?"CREDIT":"DEBIT"; - $ret.=""; - if ( $cred=='CREDIT') - $ret.=''; - $ret.= ""; - if ( $cred=='DEBIT') - $ret.=''; - - $ret.='". - "". - - ""; - } - - - $efface=new widget('button'); - $efface->javascript="op_remove('".$_REQUEST['PHPSESSID']."',$gDossier,".$oldgroup.")"; - $efface->name="Efface"; - $efface->label="Efface"; - $ret.=""; - // get the old jr_id - $this->oa_group=$oldgroup; - $jr_id=$this->get_jrid(); - if ( $jr_id != 0 ){ - $detail=new widget('button'); - $detail->javascript="viewOperation($jr_id,'".$_REQUEST['PHPSESSID']."',$gDossier)"; - $detail->name="Detail"; - $detail->label="Detail"; - $ret.=""; - } - $ret.='
". - $row['oa_date']. - "". - $row['oa_description']. - "". - "Groupe id : ".$row['oa_group']. - "
". - $row['po_name']. - "'. $row['oa_amount']. - "". - $cred. - "
".$efface->IOValue()."".$detail->IOValue()."
'; - $ret.=$bar; - return $ret; - } - /*!\brief retrieve an operation thanks a jrnx.j_id - * \param the jrnx.j_id - * \return false if nothing is found other true - */ - function get_by_jid($p_jid) { - $sql="select distinct oa_id, - po_id, - oa_amount, - oa_description, - oa_debit, - j_id, - oa_group, - oa_date, - pa_id, - oa_row - from operation_analytique - where - j_id=$p_jid order by j_id,oa_row"; - $ret=ExecSql($this->db,$sql); - $res=pg_fetch_all($ret); - echo_debug(__FILE__.":".__LINE__."count res is ",count($res)); - echo_debug(__FILE__.":".__LINE__," res =",$res); - if ( $res== false) return null; - - foreach ($res as $row) { - $a=new operation($this->db); - foreach ( $row as $attr=>$value ) - { - $a->$attr=$row[$attr]; - } - $array[]=clone $a; - } - return $array; - } - /*!\brief modify an op from modify_op.php - * - */ - function update_from_jrnx($p_po_id){ - $a=$this->get_by_jid($this->j_id); - if ( $a == null ) { - // retrieve data from jrnx - $sql="select jr_date,j_montant,j_debit from jrnx ". - " join jrn on (jr_grpt_id = j_grpt) ". - "where j_id=".$this->j_id; - $res=ExecSql($this->db,$sql); - if (pg_NumRows($res) == 0 ) return; - $row=pg_fetch_array($res,0); - $this->oa_amount=$row['j_amount']; - $this->oa_date=$row['jr_date']; - $this->oa_debit=$row['j_debit']; - $this->oa_description=$row['jr_comment']; - $this->add(); - } else { - foreach ($a as $row ) { - if ( $row->pa_id == $this->pa_id ) { - $row->po_id=$p_po_id; - $row->update(); - } - } - } - } - /*!\brief retrieve the jr_id thanks the oa_group */ - function get_jrid() { - $sql="select distinct jr_id from jrn join jrnx on (j_grpt=jr_grpt_id) join operation_analytique using (j_id) where j_id is not null and oa_group=".$this->oa_group; - $res=ExecSql($this->db,$sql); - if ( pg_NumRows($res) == 0 ) return 0; - $ret=pg_fetch_all($res); - return $ret[0]['jr_id']; - } - /*\brief this function get the balance for a certain period - *\param $p_from from date (accountancy period) - *\param $p_to to dat (accountancy period) - *\param $p_plan_id the plan id - */ -function get_balance($p_from,$p_to,$p_plan_id) - { - // for the operation connected to jrnx - $cond=sql_filter_per($this->db,$p_from,$p_to,'p_id','j_date'); - $sql="select oa_id, po_id, oa_amount, oa_debit, j_date from jrnx join operation_analytique using (j_id) - join poste_analytique using (pa_id) - where - $cond and j_id is not null and pa_id=$p_plan_id"; - - // OD - $cond=sql_filter_per($this->db,$p_from,$p_to,'p_id','oa_date'); - $sql="union select oa_id, po_id, oa_amount, oa_debit,oa_date from - operation_analytique - join poste_analytique using (pa_id) - where j_id is null and - $cond and pa_id=$p_plan_id "; - try { - $res=ExecSql($this->db,$sql); - $array=pg_fetch_all($res); - echo_debug(__FILE__.":".__LINE__," array =",$array); - } catch (Exception $e) { - var_dump($e); - } - } - /*!\brief display the form for PA - * \param $p_null = 1 if PA optional otherwise 0 mandatory - * \param $p_mode == form 1 ==> read/write otherwise 0==>readonly - * \param $p_seq number of the row - * \param $p_amount amount - * \see save_form_plan - */ - function display_form_plan($p_array,$p_null,$p_mode,$p_seq,$p_amount) { - echo_debug(__FILE__.':'.__LINE__,' display_form_plan($p_array,$p_null,$p_doc,$p_seq,$p_amount) '," $p_array,$p_null,$p_mode,$p_seq,$p_amount) "); - if ( $p_array != null) - extract ($p_array); - $result=""; - $plan=new PlanAnalytic($this->db); - $a_plan=$plan->get_list(); - - $table_id="t".$p_seq; - - $hidden=new widget("hidden"); - - - $result.=$hidden->IOValue('amount_'.$table_id,$p_amount); - if ( $p_mode==1 ) - $result.=''; - else - $result.='
'; - $result.="".$plan->header().""; - - - - $nb_row=(!isset(${'nb_'.$table_id}))?1:${'nb_'.$table_id}; - $result.=$hidden->IOValue('nb_'.$table_id,$nb_row); - - for ( $i=1; $i <= $nb_row;$i++) { - $result.=''; - $count=0; - foreach ($a_plan as $r_plan) - { - $count++; - - $array=make_array($this->db, - "select pa_id||'_'||po_id as value,". - " po_name as label from poste_analytique ". - " where pa_id = ".$r_plan['id']. - " order by po_name",$p_null); - $select = new widget("select","","ta_".$p_seq."o".$count."row_".$i,$array); - $select->table=0; - // view only or editable - if ( $p_mode==1 ) { - // editable - $select->readonly=false; - $select->selected=(isset(${"ta_".$p_seq."o".$count."row_".$i}))?${"ta_".$p_seq."o".$count."row_".$i}:0; - } else { - // view only - $select->readonly=true; - $select->selected=(isset(${"ta_".$p_seq."o".$count."row_".$i}))?${"ta_".$p_seq."o".$count."row_".$i}:0; - } - if ($p_mode==1) - $result.=''; - else - $result.=''; - - - } - $value=new widget("text"); - $value->name="val".$p_seq."l$i"; - $value->size=6; - $value->value=(isset(${"val".$p_seq."l$i"}))?round(${"val".$p_seq."l$i"},2):$p_amount; - // $value->value=($p_doc=="form")?$p_amount:round(${"val".$p_seq."l$i"},2); - $value->readonly=($p_mode==1)?false:true; - - $result.=''; - - $result.=""; - } - - $result.="
montant
'.$select->IOValue().''.$select->IOValue().''.$value->IOValue().'
"; - // add a button to add a row - $button=new widget("button"); - $button->javascript="onChange=add_row('$table_id',$p_seq,$count);"; - $button->name="js".$p_seq; - $button->label="Nouvelle ligne"; - if ( $p_mode == 1 ) - $result.=$button->IOValue(); - return $result; - } - /*!\brief it called for each item, the data are taken from $p_array - * data and set before in this. - * \param $p_item if the item nb for each item (purchase or selling - * merchandise) - * \param $p_array structure - * \verbatim - nb_tA A is the number of the item contains the number of - rows of CA for this card - valAlR amount for the CA (item A row R) - ta_AoCrow_R contains the value of the pa_id and po_id for this - row with the form pa_id_po_id %d_%d - *\endverbatim - * \attention The idea is one j_id matches several oa_id, - * serveral data are set before the call : - * -j_id - * -oa_debit - * -oa_group - * -oa_date - * -oa_description - * - */ - function save_form_plan($p_array,$p_item) { - echo_debug(__FILE__.':'.__LINE__,"p_array is ",$p_array); - extract($p_array); - if ( !isset (${"nb_t".$p_item}) ) { - echo __FILE__.':'.__LINE."nb_t".$p_item." n'est pas defini !!!"; - exit(); - } - $max=${"nb_t".$p_item}; - echo_debug(__FILE__.':'.__LINE__.'- ', "max of row for CA = ".$max); - // get all the PA - $plan=new PlanAnalytic($this->db); - $cplan=$plan->count(); - echo_debug(__FILE__.':'.__LINE__," nb of PA $cplan"); - // foreach row - for ($i=1;$i<=$max;$i++) { - echo_debug(__FILE__.':'.__LINE__." loop i $i"); - // foreach col PA - for ($e=1;$e<=$cplan+1;$e++) - { - echo_debug(__FILE__.':'.__LINE__."loop e $e"); - echo_debug(__FILE__.':'.__LINE__," Checking ta_".$p_item."o".$e."row_".$i); - if ( isset(${"ta_".$p_item."o".$e."row_".$i}) && ${"ta_".$p_item."o".$e."row_".$i}!=-1) - { - echo_debug(__FILE__.':'.__LINE__,"Value is ".${"ta_".$p_item."o".$e."row_".$i}); - $op=new operation($this->db); - $val=${"ta_".$p_item."o".$e."row_".$i}; - list($op->pa_id,$op->po_id)=sscanf($val,"%d_%d"); - $op->oa_group=$this->oa_group; - $op->j_id=$this->j_id; - $op->oa_amount=${"val".$p_item."l".$i}; - $op->oa_debit=$this->oa_debit; - $op->oa_date=$this->oa_date; - - $op->oa_description=$this->oa_description; - $op->oa_row=$i; - $op->add(); - } - } - } - - } - /*\brief transform a array of operation into a array usage by - *display_form_plan & save_form_plan - *\param $p_array array of operation - *\param $p_line line - *\return an array complying with \see save_form_plan - */ - function to_request ($p_array,$p_line){ - if ( count($p_array) == 0 ) { - echo_debug(__FILE__.':'.__LINE__,"p_array est vide",$p_array); - return null; - } - $result=array(); - $table="nb_t".$p_line; - - $col=1; - $line=1; - $first=true; - $last_pa_id=0; - foreach ( $p_array as $row) { - $val="val".$p_line."l".$row->oa_row; - $result[$val]=$row->oa_amount; - if ( $first ) { - $first_pa_id=$row->pa_id; - $first=false; - } - - if ( $first_pa_id != $row->pa_id ) - $col++; - else { - $col=1; - $line++; - } - $po="ta_".$p_line."o".$col."row_".$row->oa_row; - $result[$po]=$row->pa_id."_".$row->po_id; - // $last_pa_id=$row->pa_id; - } - $result[$table]=$line-1; - return $result; - } -/*! - * \brief delete from operation_analytique - * \param $p_jid the operation_analytique.j_id field - * - * \return none - */ - function delete_by_jid($p_jid) { - $sql="delete from operation_analytique where j_id=$p_jid"; - ExecSql($this->db,$sql); - } - - /*\brief test the class - *\param - *\param - *\return - */ - function test_me() { - $array=$this->get_by_jid(442); - echo_debug(__FILE__.':'.__LINE__,"resultat get_by_jid",$array); - - $a=$this->to_request($array,1); - echo_debug(__FILE__.':'.__LINE__,"resultat to_request ligne 1",$a); - - - } -}