diff --git a/include/class_profile_sql.php b/include/class_profile_sql.php index 17b7be95f..3be9a8cda 100644 --- a/include/class_profile_sql.php +++ b/include/class_profile_sql.php @@ -1,240 +1,55 @@ column_name,"email"=>"column_name_email","val3"=>0); */ - - protected $variable=array("p_id"=>"p_id","p_name"=>"p_name" -,"p_desc"=>"p_desc" -,"with_calc"=>"with_calc" -,"with_direct_form"=>"with_direct_form" -); - function __construct ( & $p_cn,$p_id=-1) { - $this->cn=$p_cn; - $this->p_id=$p_id; - - if ( $p_id == -1 ) { - /* Initialize an empty object */ - foreach ($this->variable as $key=>$value) $this->$value=null; - $this->p_id=$p_id; - } else { - /* load it */ - - $this->load(); - } - } - public function get_parameter($p_string) { - if ( array_key_exists($p_string,$this->variable) ) { - $idx=$this->variable[$p_string]; - return $this->$idx; - } - else - throw new Exception (__FILE__.":".__LINE__.$p_string.'Erreur attribut inexistant'); - } - public function set_parameter($p_string,$p_value) { - if ( array_key_exists($p_string,$this->variable) ) { - $idx=$this->variable[$p_string]; - $this->$idx=$p_value; - } - else - throw new Exception (__FILE__.":".__LINE__.$p_string.'Erreur attribut inexistant'); - } - public function get_info() { return var_export($this,true); } - public function verify() { - // Verify that the elt we want to add is correct - /* verify only the datatype */ - if ( trim($this->p_name) == '') $this->p_name=null; - if ( trim($this->p_desc) == '') $this->p_desc=null; - if ( trim($this->with_calc) == '') $this->with_calc=null; - if ( trim($this->with_direct_form) == '') $this->with_direct_form=null; - - - } - public function save() { - /* please adapt */ - if ( $this->p_id == -1 ) - $this->insert(); - else - $this->update(); - } - /** - *@brief retrieve array of object thanks a condition - *@param $cond condition (where clause) (optional by default all the rows are fetched) - * you can use this parameter for the order or subselect - *@param $p_array array for the SQL stmt - *@see Database::exec_sql get_object Database::num_row - *@return the return value of exec_sql - */ - public function seek($cond='',$p_array=null) - { - $sql="select * from public.profile $cond"; - $aobj=array(); - $ret= $this->cn->exec_sql($sql,$p_array); - return $ret; - } - /** - *get_seek return the next object, the return of the query must have all the column - * of the object - *@param $p_ret is the return value of an exec_sql - *@param $idx is the index - *@see seek - *@return object - */ - public function get_object($p_ret,$idx) - { - // map each row in a object - $oobj=new Profile_sql ($this->cn); - $array=Database::fetch_array($p_ret,$idx); - foreach ($array as $idx=>$value) { $oobj->$idx=$value; } - return $oobj; - } - public function insert() { - if ( $this->verify() != 0 ) return; - if( $this->p_id==-1 ){ - /* please adapt */ - $sql="insert into public.profile(p_name -,p_desc -,with_calc -,with_direct_form -) values ($1 -,$2 -,$3 -,$4 -) returning p_id"; - - $this->p_id=$this->cn->get_value( - $sql, - array( $this->p_name -,$this->p_desc -,$this->with_calc -,$this->with_direct_form -) - ); - } else { - $sql="insert into public.profile(p_name -,p_desc -,with_calc -,with_direct_form -,p_id) values ($1 -,$2 -,$3 -,$4 -,$5 -) returning p_id"; - - $this->p_id=$this->cn->get_value( - $sql, - array( $this->p_name -,$this->p_desc -,$this->with_calc -,$this->with_direct_form -,$this->p_id) - ); - - } - - } - - public function update() { - if ( $this->verify() != 0 ) return; - /* please adapt */ - $sql=" update public.profile set p_name = $1 -,p_desc = $2 -,with_calc = $3 -,with_direct_form = $4 - where p_id= $5"; - $res=$this->cn->exec_sql( - $sql, - array($this->p_name -,$this->p_desc -,$this->with_calc -,$this->with_direct_form -,$this->p_id) - ); - - } -/** - *@brief load a object - *@return 0 on success -1 the object is not found + * @brief Manage the table public.profile */ - public function load() { +class Profile_sql extends phpcompta_sql +{ + /* example private $variable=array("easy_name"=>column_name,"email"=>"column_name_email","val3"=>0); */ - $sql="select p_name -,p_desc -,with_calc -,with_direct_form - from public.profile where p_id=$1"; - /* please adapt */ - $res=$this->cn->get_array( - $sql, - array($this->p_id) - ); - - if ( count($res) == 0 ) { - /* Initialize an empty object */ - foreach ($this->variable as $key=>$value) $this->$key=''; + function __construct(& $p_cn, $p_id = -1) + { + $this->table = "public.profile"; + $this->primary_key = "p_id"; - return -1; - } - foreach ($res[0] as $idx=>$value) { $this->$idx=$value; } - return 0; - } + $this->name = array( + "p_id" => "p_id" + , "p_name" => "p_name" + , "p_desc" => "p_desc" + , "with_calc" => "with_calc" + , "with_direct_form" => "with_direct_form" + ); + $this->type = array( + "p_id" => "numeric" + , "p_name" => "text" + , "p_desc" => "text" + , "with_calc" => "text" + , "with_direct_form" => "text" + ); + $this->default = array( + "p_id" => "auto", + ); + global $cn; - public function delete() { - $sql="delete from public.profile where p_id=$1"; - $res=$this->cn->exec_sql($sql,array($this->p_id)); - } - /** - * Unit test for the class - */ - static function test_me() { - $cn=new Database(25); -$cn->start(); - echo h2info('Test object vide'); - $obj=new Profile_sql($cn); - var_dump($obj); + parent::__construct($cn,$p_id); - echo h2info('Test object NON vide'); - $obj->set_parameter('j_id',3); - $obj->load(); - var_dump($obj); + } - echo h2info('Update'); - $obj->set_parameter('j_qcode','NOUVEAU CODE'); - $obj->save(); - $obj->load(); - var_dump($obj); - - echo h2info('Insert'); - $obj->set_parameter('j_id',0); - $obj->save(); - $obj->load(); - var_dump($obj); - - echo h2info('Delete'); - $obj->delete(); - echo (($obj->load()==0)?'Trouve':'non trouve'); - var_dump($obj); -$cn->rollback(); - - } - } + // Profile_sql::test_me(); ?>