db=$cn;
}
/*!\brief fill the object with the $_POST variable */
function get_post() {
echo_debug(__FILE__.':'.__LINE__.'-',' $_POST',$_POST);
$this->nb_item=$_POST['nb_item'];
$this->p_jrn=$_REQUEST['p_jrn'];
$this->jrn_type=$_POST['jrn_type'];
$this->name=(isset($_POST['e_comm']))?$_POST['e_comm']:"";
if ( $this->name=="") {
$n=NextSequence($this->db,'op_def_op_seq');
$this->name=$this->jrn_type.$n;
// common value
}
}
function delete () {
$sql="delete from op_predef where od_id=".$this->od_id;
ExecSql($this->db,$sql);
}
/*!\brief save the predef check first is the name is unique
* \return true op.success otherwise false
*/
function save() {
if ( CountSql($this->db,"select * from op_predef ".
"where upper(od_name)=upper('".pg_escape_string($this->name)."')".
"and jrn_def_id=".$this->p_jrn)
!= 0 )
{
echo "Cette opération a déjà été sauvée";
return false;
}
if ( $this->count() > 20 ){
echo '
Vous avez atteint le max. d\'opération prédéfinie, désolé
';
return false;
}
$sql=sprintf('insert into op_predef (jrn_def_id,od_name,od_item,od_jrn_type)'.
'values'.
"(%d,'%s',%d,'%s')",
$this->p_jrn,
pg_escape_string($this->name),
$this->nb_item,
$this->jrn_type);
ExecSql($this->db,$sql);
$this->od_id=GetSequence($this->db,'op_def_op_seq');
return true;
}
/*!\brief load the data from the database and return an array
* \return an array
*/
function load() {
$sql="select od_id,jrn_def_id,od_name,od_item,od_jrn_type".
" from op_predef where od_id=".$this->od_id." order by od_name";
$res=ExecSql($this->db,$sql);
$array=pg_fetch_all($res);
echo_debug(__FILE__.':'.__LINE__.'- ','load pre_op',$array);
return $array;
}
function compute_array() {
$p_array=$this->load();
$array=array(
"e_comm"=>$p_array[0]["od_name"],
"nb_item"=>$p_array[0]["od_item"],
"p_jrn"=>$p_array[0]["jrn_def_id"],
"jrn_type"=>$p_array[0]["od_jrn_type"]
);
return $array;
}
/*!\brief show the button for selecting a predefined operation */
function show_button() {
$select=new widget("select");
$value=make_array($this->db,"select od_id,od_name from op_predef ".
" where jrn_def_id=".$this->p_jrn.
" order by od_name");
if ( empty($value)==true) return "";
$select->value=$value;
$r=$select->IOValue("pre_def");
return $r;
}
/*!\brief count the number of pred operation for a ledger */
function count() {
$a=CountSql($this->db,"select od_id,od_name from op_predef ".
" where jrn_def_id=".$this->p_jrn.
" order by od_name");
return $a;
}
/*!\brief get the list of the predef. operation of a ledger
* \return string
*/
function get_list_ledger() {
$sql="select od_id,od_name from op_predef ".
" where jrn_def_id=".$this->p_jrn.
" order by od_name";
$res=ExecSql($this->db,$sql);
$all=pg_fetch_all($res);
return $all;
}
function set_jrn($p_jrn) {
$this->p_jrn=$p_jrn;
}
}
class Pre_operation_detail {
var $operation;
function Pre_operation_detail($p_cn) {
$this->db=$p_cn;
$this->operation=new Pre_operation($this->db);
}
function get_post() {
$this->operation->get_post();
}
}