db=$p_db; $this->id=$p_id; $this->ga_id=null; } /*! \brief retrieve data from the database and * fill the object * \param $p_where the where clause */ private function fetch_from_db($p_where) { $sql="select po_id, po_name , pa_id, po_amount, po_description, ga_id from poste_analytique where ". $p_where; $ret=$this->db->exec_sql($sql); if ( Database::num_row($ret) == 0 )return null; $line=Database::fetch_array($ret); $this->id=$line['po_id']; $this->name=$line['po_name']; $this->pa_id=$line['pa_id']; $this->amount=$line['po_amount']; $this->description=$line['po_description']; $this->ga_id=$line['ga_id']; } function get_by_id() { $this->fetch_from_db("po_id=".$this->id); } /*! * \brief retrieve data thanks the name * \param $p_name name of the analytic account * */ function get_by_name($p_name) { $p_name=sql_string($p_name); if ( $p_name == null ) $p_name=$this->name; $this->fetch_from_db("po_name='".$p_name."'"); echo "id = ".$this->id; } function add() { $this->format_data(); if ( strlen($this->name) == 0) return; if ( $this->ga_id == null || strlen(trim($this->ga_id)) == 0 ) $ga_id=NULL; else $ga_id=$this->ga_id; $sql="insert into poste_analytique ( po_name , pa_id, po_amount, po_description, ga_id ) values ($1,$2,$3,$4,$5)"; try { $this->db->exec_sql($sql,array($this->name,$this->pa_id,$this->amount,$this->description,$ga_id)); } catch (Exception $e) { if ( DEBUG ) print_r($e); echo "
Doublon : l'enregistrement n'est pas sauve
"; } } static function make_array_name($cn,$pa_id) { $a=$cn->make_array("select po_name,po_name from poste_analytique ". " where ". " pa_id = $1 order by po_name ",0,array($pa_id)); return $a; } function update() { $this->format_data(); if ( strlen($this->name) == 0) return; $sql="update poste_analytique ". " set po_name=$1". " ,pa_id=$2". " ,po_amount=$3". " ,po_description=$4". " ,ga_id=$5". " where po_id=$6"; try { $this->db->exec_sql($sql,array($this->name,$this->pa_id,$this->amount, $this->description,$this->ga_id,$this->id)); } catch (Exception $e) { echo "Doublon : l'enregistrement n'est pas sauve
"; } } private function format_data() { $this->name=$this->name; $this->pa_id=$this->pa_id; $this->amount=$this->amount; if (strlen($this->amount) == 0 ) $this->amount=0.0; if ( isNumber($this->amount) ==0 ) $this->amount=0; $this->description=$this->description; } function delete() { $sql="delete from poste_analytique where po_id=".$this->id; $this->db->exec_sql($sql); } /*! * \brief return an array of object Poste_Analytique * */ function get_list() { $sql="select po_id, po_name , pa_id, po_amount, po_description, ga_id from poste_analytique ". " order by po_name"; $ex=$this->db->exec_sql($sql); $ret=Database::fetch_all($ex); if ( $ret == null ) return null; $array=array(); foreach ($ret as $line) { $object=new Anc_Account($this->db); $object->id=$line['po_id']; $object->name=$line['po_name']; $object->pa_id=$line['pa_id']; $object->amount=$line['po_amount']; $object->description=$line['po_description']; $object->ga_id=$line['ga_id']; $array[]=clone $object; } return $array; } function display_list() { $array=$this->get_list(); if ( empty($array) ) { echo "Vide"; return; } foreach ($array as $line) { echo $line->id." / ".$line->name." / ".$line->description."/". $line->amount." / ".$line->pa_id."/".$line->ga_id."