noalyss  Version-6.7.2
Public Member Functions | Data Fields
Fiche_Def Class Reference

define Class fiche and fiche def, those class are using class attribut More...

Public Member Functions

 __construct ($p_cn, $p_id=0)
 Add ($array)
 Add a fiche category thanks the element from the array you cannot add twice the same cat. name table : insert into fiche_def insert into attr_def.
 count_category ($p_frd_id)
 count the number of fiche_def (category) which has the frd_id (type of category)
 Display ()
 Display category into a table.
 DisplayAttribut ($str="")
 Display all the attribut of the fiche_def.
 get ()
 Get attribut of the fiche_def.
 get_all ()
 Get all the fiche_def.
 get_attr_min ($p_fiche_def_ref)
 retrieve the mandatory field of the card model
 get_by_category ($p_cat)
 Get all the card where the fiche_def.frd_id is given in parameter.
 get_by_type ($step=0)
 Get all the card where the fiche_def.fd_id is given in parameter.
 getAttribut ()
 Get attribut of a fiche_def.
 HasAttribute ($p_attr)
 Check in vw_fiche_def if a fiche has a attribut X.
 input ()
 show the content of the form to create a new Fiche_Def_Ref
 input_base ()
 show input for the basic attribute : label, class_base, create_account use only when we want to update
 input_detail ()
 input_new ()
 InsertAttribut ($p_ad_id)
 insert a new attribut for this fiche_def
 myList ()
 list the card of a fd_id
 remove ()
 remove all the card from a categorie after having verify that the card is not used and then remove also the category
 RemoveAttribut ($array)
 remove an attribut for this fiche_def
 save_class_base ($p_label)
 Save the class base.
 save_description ($p_description)
 save_order ($p_array)
 save the order of a card, update the column jnt_fic_attr.jnt_order
 SaveLabel ($p_label)
 Save the label of the fiche_def.
 set_autocreate ($p_label)
 set the auto create accounting item for each card and save it into the database

Data Fields

 $all
 $attribut
 $class_base
 $cn
 $create_account
 $fiche_def
 $id
 $label

Detailed Description

define Class fiche and fiche def, those class are using class attribut

Definition at line 35 of file class_fiche_def.php.


Constructor & Destructor Documentation

Fiche_Def::__construct ( p_cn,
p_id = 0 
)

Definition at line 45 of file class_fiche_def.php.

References cn.

    {
        $this->cn=$p_cn;
        $this->id=$p_id;
    }

Member Function Documentation

Fiche_Def::Add ( array)

Add a fiche category thanks the element from the array you cannot add twice the same cat. name table : insert into fiche_def insert into attr_def.

Parameters:
$arrayarray index FICHE_REF nom_mod class_base

!! (== fiche_def_ref.frd_id if (! isset ($p_FICHE_REF) || strlen($p_FICHE_REF) == 0 ) { echo alert (_('Vous devez choisir une categorie')); return 1; } $fiche_Def_ref=new Fiche_Def_Ref($this->cn,$p_FICHE_REF); $fiche_Def_ref->Get();

build the sql request for fiche_def and insert into fiche_def if p_class_base is null get the default class base from fiche_def_ref if ( sql_string($p_class_base) == null ) { // p_class is null So we take the default one $p_class_base=$fiche_Def_ref->frd_class_base; } /* check if the cat. name already exists

Definition at line 197 of file class_fiche_def.php.

References $array, $count, $fd_id, $order, $Res, $sql, alert(), cn, echo, get_attr_min(), sql_string(), and trim().

    {
        foreach ( $array as $key=>$element )
        {
            ${"p_$key"}=$element;
        }
        // Format correctly the name of the cat. of card
        $p_nom_mod=sql_string($p_nom_mod);


        // Name can't be empty
        if ( strlen(trim($p_nom_mod)) == 0 )
                {
                        alert (_('Le nom de la catégorie ne peut pas être vide'));
            return 1;
                }
        /**!! (== fiche_def_ref.frd_id
        if (! isset ($p_FICHE_REF) || strlen($p_FICHE_REF) == 0 )
        {
            echo alert (_('Vous devez choisir une categorie'));
            return 1;
        }
        $fiche_Def_ref=new Fiche_Def_Ref($this->cn,$p_FICHE_REF);
        $fiche_Def_ref->Get();

        // build the sql request for fiche_def
        // and insert into fiche_def
        // if p_class_base is null get the default class base from
        // fiche_def_ref
        if ( sql_string($p_class_base) == null )
        { // p_class is null
            // So we take the default one
            $p_class_base=$fiche_Def_ref->frd_class_base;
        }
        /* check if the cat. name already exists */
        $sql="select count(*) from fiche_Def where upper(fd_label)=upper($1)";
        $count=$this->cn->get_value($sql,array(trim($p_nom_mod)));

        if ($count != 0 ) {
                         echo alert (_('Catégorie existante'));
                        return 1;
                }
        // Set the value of fiche_def.fd_create_account
        // automatic creation for 'poste comptable'
        if ( isset($p_create) && strlen(trim($p_class_base)) != 0)
            $p_create='true';
        else
            $p_create='false';

        // Class is valid ?
        if ( sql_string($p_class_base) != null || strpos(',',$p_class_base) != 0 )
        {
            // p_class is a valid number
            $sql="insert into fiche_def(fd_label,fd_class_base,frd_id,fd_create_account,fd_description)
                 values ($1,$2,$3,$4,$5) returning fd_id";

            $fd_id=$this->cn->get_value($sql,array($p_nom_mod,$p_class_base,$p_FICHE_REF,$p_create,$p_fd_description));

            // p_class must be added to tmp_pcmn if it is a single accounting
            if ( strpos(',',$p_class_base) ==0)
            {
                $sql="select account_add($1,$2)";
                $Res=$this->cn->exec_sql($sql,array($p_class_base,$p_nom_mod));
            }
                        // Get the fd_id
                        $fd_id=$this->cn->get_current_seq('s_fdef');

                        // update jnt_fic_attr
                        $sql=sprintf("insert into jnt_fic_attr(fd_id,ad_id,jnt_order)
                                         values (%d,%d,10)",$fd_id,ATTR_DEF_ACCOUNT);
                        $Res=$this->cn->exec_sql($sql);
        }
        else
        {
            //There is no class base not even as default
            $sql="insert into fiche_def(fd_label,frd_id,fd_create_account,fd_description) values ($1,$2,$3,$4) returning fd_id";


            $this->id=$this->cn->get_value($sql,array($p_nom_mod,$p_FICHE_REF,$p_create,$p_fd_description));

            // Get the fd_id
            $fd_id=$this->cn->get_current_seq('s_fdef');

        }

        // Get the default attr_def from attr_min
        $def_attr=$this->get_attr_min($p_FICHE_REF);

        //if defaut attr not null
        // build the sql insert for the table attr_def
        if (sizeof($def_attr) != 0 )
        {
            // insert all the mandatory fields into jnt_fiche_attr
            $jnt_order=10;
            foreach ( $def_attr as $i=>$v)
            {
                                $order=$jnt_order;
                if ( $v['ad_id'] == ATTR_DEF_NAME )
                    $order=0;
                                $count=$this->cn->get_value("select count(*) from jnt_fic_attr where fd_id=$1 and ad_id=$2",array($fd_id,$v['ad_id']));
                                if ($count == 0)
                                {
                                        $sql=sprintf("insert into jnt_fic_Attr(fd_id,ad_id,jnt_order)
                             values (%d,%s,%d)",
                             $fd_id,$v['ad_id'],$order);
                                        $this->cn->exec_sql($sql);
                                        $jnt_order+=10;
                                }
            }
        }
        $this->id=$fd_id;
        return 0;

    }//--------------end function Add ----------------------------
Fiche_Def::count_category ( p_frd_id)

count the number of fiche_def (category) which has the frd_id (type of category)

Parameters:
$p_frd_idis the frd_id in constant.php the FICHE_TYPE_
Returns:
the number of cat. of card of the given type
See also:
constant.php

Definition at line 751 of file class_fiche_def.php.

References $ret, and cn.

    {
        $ret=$this->cn->count_sql("select fd_id from fiche_def where frd_id=$1",array($p_frd_id));
        return $ret;
    }

Display category into a table.

Returns:
HTML row

Definition at line 167 of file class_fiche_def.php.

References $_GET, $order, $res, $tab, $url, cn, and HtmlInput\get_to_string().

    {
                $tab = new Sort_Table();

                $url = HtmlInput::get_to_string(array('ac', 'gDossier'));
                $tab->add("Nom de fiche", $url, "order by fd_label asc", "order by fd_label desc", "na", "nd");
                $tab->add("Basé sur le poste comptable", $url, "order by fd_class_base asc", "order by fd_class_base desc", "pa", "pd");
                $tab->add("Calcul automatique du poste comptable", $url, "order by fd_create_account asc", "order by fd_create_account desc", "ca", "cd");
                $tab->add("Basé sur le modèle", $url, "order by frd_text asc", "order by frd_text  desc", "ma", "md");

                $order = (isset($_GET['ord'])) ? $tab->get_sql_order($_GET["ord"]) : $tab->get_sql_order("na");


                $res = $this->cn->exec_sql("SELECT fd_id, fd_class_base, fd_label, fd_create_account, fiche_def_ref.frd_id,
frd_text , fd_description FROM fiche_def join fiche_def_ref on (fiche_def.frd_id=fiche_def_ref.frd_id)
$order
");

                require_once 'template/fiche_def_list.php';
        }
Fiche_Def::DisplayAttribut ( str = "")

Display all the attribut of the fiche_def.

Parameters:
$strgive the action possible values are remove, empty

Definition at line 482 of file class_fiche_def.php.

References $a, $class, $l, $order, $r, $Res, $str, cn, Database\fetch_array(), and Database\num_row().

Referenced by input_detail().

    {
        if ( $this->id == 0 )
            return ;
           $this->cn->exec_sql('select fiche_attribut_synchro($1)',array($this->id));

                   $MaxLine=sizeof($this->attribut);
        $r="<TABLE>";
        $r.="<tr>".th('Nom attribut').th('').th('Ordre','style="text-align:right"').'</tr>';
        // Display each attribute
        $add_action="";
        for ($i=0;$i<$MaxLine;$i++)
        {
            $class="even";
            if ( $i % 2 == 0 )
                $class="odd";

            $r.='<TR class="'.$class.'"><td>';
            // Can change the name
            if ( $this->attribut[$i]->ad_id == ATTR_DEF_NAME )
            {
                continue;
            }
            else
            {
                if ( $str == "remove" )
                {
                    //Only for the not mandatory attribute (not defined in attr_min)
                    if ( $this->cn->count_sql("select * from attr_min where frd_id=".
                                              $this->fiche_def." and ad_id = ".$this->attribut[$i]->ad_id) == 0
                            && $this->attribut[$i]->ad_id != ATTR_DEF_QUICKCODE
                            && $this->attribut[$i]->ad_id != ATTR_DEF_ACCOUNT
                       )
                    {
                        $add_action=sprintf( '</TD><TD> Supprimer <input type="checkbox" name="chk_remove[]" value="%d">',
                                             $this->attribut[$i]->ad_id);
                    }
                    else
                        $add_action="</td><td>";
                }
                // The attribut.
                $a=sprintf('%s ',  $this->attribut[$i]->ad_text);
                $r.=$a.$add_action;
                /*----------------------------------------  */
                /*  ORDER OF THE CARD */
                /*----------------------------------------  */
                $order=new IText();
                $order->name='jnt_order'.$this->attribut[$i]->ad_id;
                $order->size=3;
                $order->value=$this->attribut[$i]->jnt_order;
                $r.='</td><td> '.$order->input();
            }
            $r.= '</td></tr>';
        }

        // Show the possible attribute which are not already attribute of the model
        // of card
        $Res=$this->cn->exec_sql("select ad_id,ad_text from attr_def
                                 where
                                 ad_id not in (select ad_id from fiche_def natural join jnt_fic_attr
                                 where fd_id=$1) order by ad_text",array($this->id) );
        $M=Database::num_row($Res);

        // Show the unused attribute
        $r.='<TR> <TD>';
        $r.= '<SELECT NAME="ad_id">';
        for ($i=0;$i<$M;$i++)
        {
            $l=Database::fetch_array($Res,$i);
            $a=sprintf('<OPTION VALUE="%s"> %s',
                       $l['ad_id'],$l['ad_text']);
            $r.=$a;
        }
        $r.='</SELECT>';

        $r.="</TABLE>";
        return $r;
    }

Get attribut of the fiche_def.

Definition at line 104 of file class_fiche_def.php.

References $Max, $Ret, $row, $sql, cn, Database\fetch_array(), label, and Database\num_row().

Referenced by myList().

    {
        if ( $this->id == 0 )
            return 0;
        /*    $this->cn->exec_sql('select fiche_attribut_synchro($1)',
        array($this->id));
        */
        $sql="select * from fiche_def ".
             " where fd_id=".$this->id;
        $Ret=$this->cn->exec_sql($sql);
        if ( ($Max=Database::num_row($Ret)) == 0 )
            return ;
        $row=Database::fetch_array($Ret,0);
        $this->label=$row['fd_label'];
        $this->class_base=$row['fd_class_base'];
        $this->fiche_def=$row['frd_id'];
        $this->create_account=$row['fd_create_account'];
        $this->fd_description=$row['fd_description'];
    }

Get all the fiche_def.

Returns:
an array of fiche_def object

Definition at line 129 of file class_fiche_def.php.

References $Max, $Ret, $row, $sql, cn, Database\fetch_array(), and Database\num_row().

    {
        $sql="select * from fiche_def ";

        $Ret=$this->cn->exec_sql($sql);
        if ( ($Max=Database::num_row($Ret)) == 0 )
            return ;

        for ( $i = 0; $i < $Max;$i++)
        {
            $row=Database::fetch_array($Ret,$i);
            $this->all[$i]=new Fiche_Def($this->cn,$row['fd_id']);
            $this->all[$i]->label=$row['fd_label'];
            $this->all[$i]->class_base=$row['fd_class_base'];
            $this->all[$i]->fiche_def=$row['frd_id'];
            $this->all[$i]->create_account=$row['fd_create_account'];
        }
    }
Fiche_Def::get_attr_min ( p_fiche_def_ref)

retrieve the mandatory field of the card model

Parameters:
$p_fiche_def_ref
Returns:
array of ad_id (attr_min.ad_id) and labels (attr_def.ad_text)

Definition at line 723 of file class_fiche_def.php.

References $array, $f, $Res, cn, Database\fetch_array(), and Database\num_row().

Referenced by Add().

    {

        // find the min attr for the fiche_def_ref
        $Sql="select ad_id,ad_text from attr_min natural join attr_def
             natural join fiche_def_ref
             where
             frd_id= $1";
        $Res=$this->cn->exec_sql($Sql,array($p_fiche_def_ref));
        $Num=Database::num_row($Res);

        // test the number of returned rows
        if ($Num == 0 ) return null;

        // Get Results & Store them in a array
        for ($i=0;$i<$Num;$i++)
        {
            $f=Database::fetch_array($Res,$i);
            $array[$i]['ad_id']=$f['ad_id'];
            $array[$i]['ad_text']=$f['ad_text'];
        }
        return $array;
    }

Get all the card where the fiche_def.frd_id is given in parameter.

Returns:
array of fiche or null is nothing is found

Definition at line 342 of file class_fiche_def.php.

References $all, $Max, $Ret, $row, $sql, cn, Database\fetch_array(), and Database\num_row().

    {
        $sql="select f_id,ad_value
             from
             fiche join fiche_def  using(fd_id)
             join fiche_detail using(f_id)
             where ad_id=1 and frd_id=$1 order by 2 ";

        $Ret=$this->cn->exec_sql($sql,array($p_cat));
        if ( ($Max=Database::num_row($Ret)) == 0 )
            return null;
        $all[0]=new Fiche($this->cn);

        for ($i=0;$i<$Max;$i++)
        {
            $row=Database::fetch_array($Ret,$i);
            $t=new Fiche($this->cn,$row['f_id']);
            $t->getAttribut();
            $all[$i]=$t;

        }
        return $all;
    }
Fiche_Def::get_by_type ( step = 0)

Get all the card where the fiche_def.fd_id is given in parameter.

Parameters:
$step= 0 we don't use the offset, page_size,... $step = 1 we use the jnr_bar_nav
Returns:
array ('f_id'=>..,'ad_value'=>..)
See also:
fiche

Definition at line 319 of file class_fiche_def.php.

References $_GET, $offset, $Ret, $sql, $step, and cn.

    {
        $sql="select f_id,ad_value
             from
             fiche join fiche_detail using(f_id)
             where ad_id=1 and fd_id=$1 order by 2";

        // we use navigation_bar
        if ($step == 1  && $_SESSION['g_pagesize'] != -1   )
        {
            $offset=(isset($_GET['offset']))?$_GET['offset']:0;
            $step=$_SESSION['g_pagesize'];
            $sql.=" offset $offset limit $step";
        }

        $Ret=$this->cn->get_array($sql,array($this->id));

        return $Ret;
    }

Get attribut of a fiche_def.

Returns:
string value of the attribute

Definition at line 75 of file class_fiche_def.php.

References $Max, $Ret, $row, $sql, cn, Database\fetch_array(), and Database\num_row().

    {
        $sql="select * from jnt_fic_attr ".
             " natural join attr_def where fd_id=".$this->id.
             " order by jnt_order";

        $Ret=$this->cn->exec_sql($sql);

        if ( ($Max=Database::num_row($Ret)) == 0 )
            return ;
        for ($i=0;$i < $Max;$i++)
        {
            $row=Database::fetch_array($Ret,$i);
            $t = new Fiche_Attr($this->cn);
            $t->ad_id=$row['ad_id'];
            $t->ad_text=$row['ad_text'];
            $t->jnt_order=$row['jnt_order'];
            $t->ad_size=$row['ad_size'];
            $t->ad_type=$row['ad_type'];
            $t->ad_extra=$row['ad_extra'];
            $this->attribut[$i]=clone $t;
        }
        return $this->attribut;
    }
Fiche_Def::HasAttribute ( p_attr)

Check in vw_fiche_def if a fiche has a attribut X.

Parameters:
$p_attrattribut to check
Returns:
true or false

Definition at line 156 of file class_fiche_def.php.

References cn.

    {
        return ($this->cn->count_sql("select * from vw_fiche_def where ad_id=$p_attr and fd_id=".$this->id)>0)?true:false;

    }

show the content of the form to create a new Fiche_Def_Ref

Definition at line 52 of file class_fiche_def.php.

References $class_base, $iradio, and cn.

    {
        $ref=$this->cn->get_array("select * from fiche_def_ref order by frd_text");
        $iradio=new IRadio();
        /* the accounting item */
        $class_base=new IPoste('class_base');
        $class_base->set_attribute('ipopup','ipop_account');
        $class_base->set_attribute('account','class_base');
        $class_base->set_attribute('label','acc_label');
        $f_class_base=$class_base->input();
                $fd_description=new ITextarea('fd_description');
                $fd_description->width=80;
                $fd_description->heigh=4;
                $fd_description->style='style="vertical-align:text-top"';
        require_once ('template/fiche_def_input.php');
        return;
    }

show input for the basic attribute : label, class_base, create_account use only when we want to update

Returns:
HTML string with the form

Definition at line 450 of file class_fiche_def.php.

References $ck, $class_base, $label, $r, and label.

Referenced by input_detail().

    {
        $r="";
        $r.=_('Label');
        $label=new IText('label',$this->label);
        $r.=$label->input();
        $r.='<br>';
        /* the accounting item */
        $class_base=new IPoste('class_base',$this->class_base);
        $class_base->set_attribute('ipopup','ipop_account');
        $class_base->set_attribute('account','class_base');
        $class_base->set_attribute('label','acc_label');
                $fd_description=new ITextarea('fd_description',$this->fd_description);
                $fd_description->width=80;
                $fd_description->heigh=4;
                $fd_description->style='style="vertical-align:text-top"';
        $r.=_('Poste Comptable de base').' : ';
        $r.=$class_base->input();
        $r.='<span id="acc_label"></span><br>';
                $r.='<br/>';
                $r.=" Description ".$fd_description->input();
        /* auto Create */
                $r.='<br/>';
        $ck=new ICheckBox('create');
        $ck->selected=($this->create_account=='f')?false:true;
        $r.=_('Chaque fiche aura automatiquement son propre poste comptable : ');
        $r.=$ck->input();
        return $r;
    }

Definition at line 756 of file class_fiche_def.php.

References $r, DisplayAttribut(), h(), HtmlInput\hidden(), input_base(), label, onclick, and HtmlInput\submit().

        {
                $r = "";
                // Save the label

                $this->get();
                $this->GetAttribut();
                $r.= '<H2 class="info">' . $this->id . " " . h($this->label) . '</H2>';
                $r.='<fieldset><legend>Données générales</legend>';

                /* show the values label class_base and create account */
                $r.='<form method="post">';
                $r.=dossier::hidden();
                $r.=HtmlInput::hidden("fd_id", $this->id);
                $r.=HtmlInput::hidden("p_action", "fiche");
                $r.= $this->input_base();
                $r.='<hr>';
                $r.=HtmlInput::submit('change_name', _('Sauver'));
                $r.='</form>';
                $r.='</fieldset>';
                /* attributes */
                $r.='<fieldset><legend>Détails</legend>';

                $r.= '<FORM  method="POST">';
                $r.=dossier::hidden();
                $r.=HtmlInput::hidden("fd_id", $this->id);
                $r.= $this->DisplayAttribut("remove");
                $r.= HtmlInput::submit('add_line', _('Ajoutez cet élément'));
                $r.= HtmlInput::submit("save_line", _("Sauvez"));
                $r.=HtmlInput::submit('remove_cat', _('Effacer cette catégorie'), 'onclick="return confirm(\'' . _('Vous confirmez ?') . '\')"');
                // if there is nothing to remove then hide the button
                if (strpos($r, "chk_remove") != 0)
                {
                        $r.=HtmlInput::submit('remove_line', _("Enleve les éléments cochés"), "onclick=\"return confirm('Vous confirmez?')\"");
                }
                $r.= "</form>";
                $r.=" <p class=\"notice\"> " . _("Attention : il n'y aura pas de demande de confirmation pour enlever les
                                   attributs sélectionnés. Il ne sera pas possible de revenir en arrière") . "</p>";
                $r.='</fieldset>';
                return $r;
        }

Definition at line 797 of file class_fiche_def.php.

References echo, HtmlInput\hidden(), and HtmlInput\submit().

        {
                $single=new Tool_Uos("dup");
                echo '<form method="post" style="display:inline">';
                echo $single->hidden();
                echo HtmlInput::hidden("p_action","fiche");
                echo dossier::hidden();
                echo $this->input(); //    CreateCategory($cn,$search);
                echo HtmlInput::submit("add_modele" ,"Sauve");
                echo '</FORM>';
        }
Fiche_Def::InsertAttribut ( p_ad_id)

insert a new attribut for this fiche_def

Parameters:
$p_ad_idid of the attribut

Definition at line 618 of file class_fiche_def.php.

References $max, $Res, $sql, and cn.

    {
        if ( $this->id == 0 ) return;
        /* ORDER */
        $this->GetAttribut();
        $max=sizeof($this->attribut)*15;
        // Insert a new attribute for the model
        // it means insert a row in jnt_fic_attr
        $sql=sprintf("insert into jnt_fic_attr (fd_id,ad_id,jnt_order) values (%d,%d,%d)",
                     $this->id,$p_ad_id,$max);
        $Res=$this->cn->exec_sql($sql);
        // update all the existing card

    }

list the card of a fd_id

Definition at line 368 of file class_fiche_def.php.

References $_GET, $_REQUEST, $bar, $Max, $max_line, $offset, $page, $Res, $step, $str, $str_dossier, cn, echo, Database\fetch_array(), get(), h(), HtmlInput\hidden(), label, navigation_bar(), Database\num_row(), and HtmlInput\submit().

    {
        $this->get();
        echo '<H2 class="info">'.$this->id." ".$this->label.'</H2>';

        $step=$_SESSION['g_pagesize'];
        $sql_limit="";
        $sql_offset="";
        $bar="";
        if ( $step != -1 )
        {

            $page=(isset($_GET['page']))?$_GET['page']:1;
            $offset=(isset($_GET['offset']))?$_GET['offset']:0;
            $max_line=$this->cn->count_sql("select f_id,ad_value  from
                                           fiche join fiche_detail using (f_id)
                                           where fd_id='".$this->id."' and ad_id=".ATTR_DEF_NAME." order by f_id");
            $sql_limit=" limit ".$step;
            $sql_offset=" offset ".$offset;
            $bar=navigation_bar($offset,$max_line,$step,$page);
        }

        // Get all name the cards of the select category
        // 1 for attr_def.ad_id is always the name
        $Res=$this->cn->exec_sql("select f_id,vw_name,quick_code  from ".
                                 " vw_fiche_attr ".
                                 " where fd_id='".$this->id.
                                 "' order by f_id $sql_offset $sql_limit ");
        $Max=Database::num_row($Res);
        echo $bar;
        $str="";
        // save the url
        // with offet &offset=15&step=15&page=2&size=15
        if ( $_SESSION['g_pagesize'] != -1)
        {
            $str=sprintf("&offset=%s&step=%s&page=%s&size=%s",
                         $offset,
                         $step,
                         $page,
                         $max_line);
        }


        echo '<FORM METHOD="POST" action="?p_action=fiche&action=vue'.$str.'">';
        echo HtmlInput::hidden('ac',$_REQUEST['ac']);
        echo dossier::hidden();
        echo HtmlInput::hidden("fiche",$this->id);
        echo HtmlInput::submit('add','Ajout fiche');
        echo '</FORM>';
        $str_dossier=dossier::get();
        echo '<table>';
        for ( $i = 0; $i < $Max; $i++)
        {
            $l_line=Database::fetch_array($Res,$i);
            if ( $i%2 == 0)
                echo '<TR class="odd">';
            else
                echo '<TR class="even">';

            $span_mod='<TD><A href="?p_action=fiche&'.$str_dossier.
                    '&action=detail&fiche_id='.$l_line['f_id'].$str.'&fiche='.
                    $_REQUEST['fiche'].'&ac='.$_REQUEST['ac'].'">'.$l_line['quick_code']
                    .'</A></TD>';

            echo $span_mod.'<TD>'.h($l_line['vw_name'])."</TD>";
            echo '</tr>';
        }
        echo '</table>';
        echo '<FORM METHOD="POST" action="?p_action=fiche&action=vue'.$str.'">';
        echo HtmlInput::hidden('ac',$_REQUEST['ac']);
        echo dossier::hidden();
        echo HtmlInput::hidden("fiche",$this->id);
        echo HtmlInput::submit('add','Ajout fiche');
        echo '</FORM>';
        echo $bar;

    }

remove all the card from a categorie after having verify that the card is not used and then remove also the category

Returns:
the remains items, not equal to 0 if a card remains and then the category is not removed

Definition at line 684 of file class_fiche_def.php.

References $fiche, $sql, cn, and false.

    {
        $remain=0;
        /* get all the card */
        $aFiche=fiche::get_fiche_def($this->cn,$this->id);
        if ( $aFiche != null )
        {
            /* check if the card is used */
            foreach ($aFiche as $dfiche)
            {
              $fiche=new Fiche($this->cn,$dfiche['f_id']);

                /* if the card is not used then remove it otherwise increment remains */
                if ( $fiche->is_used() == false )
                {
                    $fiche->delete();
                }
                else
                    $remain++;
            }
        }
        /* if remains == 0 then remove cat */
        if ( $remain == 0 )
        {
            $sql='delete from jnt_fic_attr where fd_id=$1';
            $this->cn->exec_sql($sql,array($this->id));
            $sql='delete from fiche_def where fd_id=$1';
            $this->cn->exec_sql($sql,array($this->id));
        }

        return $remain;

    }

remove an attribut for this fiche_def

Parameters:
arrayof ad_id to remove
Remarks:
you can't remove the attribut defined in attr_min

Definition at line 636 of file class_fiche_def.php.

References $array, $sql, and cn.

    {
        foreach ($array as $ch)
        {
            $this->cn->start();
            $sql="delete from jnt_fic_attr where fd_id=$1 ".
                 "   and ad_id=$2";
            $this->cn->exec_sql($sql,array($this->id,$ch));

            $sql="delete from fiche_detail  where jft_id in ( select ".
                 " jft_id from fiche_Detail ".
                 " join fiche using(f_id) ".
                 " where ".
                 "fd_id = $1 and ".
                 "ad_id=$2)";
            $this->cn->exec_sql($sql,array($this->id,$ch));

            $this->cn->commit();
        }
    }

Save the class base.

Parameters:
$p_labellabel

Definition at line 598 of file class_fiche_def.php.

References $Res, $sql, cn, and sql_string().

    {
        if ( $this->id == 0 ) return;
        $p_label=sql_string($p_label);

        $sql="update   fiche_def set fd_class_base=$1 ".
             "where                    fd_id=$2";

        $Res=$this->cn->exec_sql($sql,array($p_label,$this->id));
    }
Fiche_Def::save_description ( p_description)

Definition at line 608 of file class_fiche_def.php.

References cn.

        {
                if ( $this->id == 0)                    return;
                $this->cn->exec_sql("update fiche_def set fd_description=$1 where fd_id=$2",array($p_description,$this->id));
        }
Fiche_Def::save_order ( p_array)

save the order of a card, update the column jnt_fic_attr.jnt_order

Parameters:
$p_arraycontaining the order

Definition at line 660 of file class_fiche_def.php.

References $p_array, $row, $sql, cn, and id.

    {
        extract($p_array);
        $this->GetAttribut();
        foreach ($this->attribut as $row)
        {
            if ( $row->ad_id == 1 ) continue;
            if ( ${'jnt_order'.$row->ad_id} <= 0 ) continue;
            $sql='update jnt_fic_attr set jnt_order=$1 where fd_id=$2 and ad_id=$3';
            $this->cn->exec_sql($sql,array(${'jnt_order'.$row->ad_id},
                                           $this->id,
                                           $row->ad_id));

        }
        /* correct the order */
        $this->cn->exec_sql('select attribute_correct_order()');
    }
Fiche_Def::SaveLabel ( p_label)

Save the label of the fiche_def.

Parameters:
$p_labellabel

Definition at line 563 of file class_fiche_def.php.

References $Res, $sql, cn, sql_string(), and trim().

    {
        if ( $this->id == 0 ) return;
        $p_label=sql_string($p_label);
        if (strlen(trim ($p_label)) == 0 )
        {
            return;
        }
        $sql=sprintf("update   fiche_def set fd_label='%s' ".
                     "where                    fd_id=%d",
                     $p_label,$this->id);
        $Res=$this->cn->exec_sql($sql);

    }
Fiche_Def::set_autocreate ( p_label)

set the auto create accounting item for each card and save it into the database

Parameters:
$p_labeltrue or false

Definition at line 581 of file class_fiche_def.php.

References $Res, $sql, and cn.

    {
        if ( $this->id == 0 ) return;
        if ($p_label==true)
            $t='t';
        if ($p_label==false)
            $t='f';

        $sql="update   fiche_def set fd_create_account=$1 ".
             "where                    fd_id=$2";

        $Res=$this->cn->exec_sql($sql,array($t,$this->id));

    }

Field Documentation

Fiche_Def::$all

Definition at line 43 of file class_fiche_def.php.

Referenced by get_by_category().

Fiche_Def::$attribut

Definition at line 44 of file class_fiche_def.php.

Fiche_Def::$class_base

Definition at line 40 of file class_fiche_def.php.

Referenced by input(), and input_base().

Fiche_Def::$cn

Definition at line 37 of file class_fiche_def.php.

Fiche_Def::$create_account

Definition at line 42 of file class_fiche_def.php.

Fiche_Def::$fiche_def

Definition at line 41 of file class_fiche_def.php.

Fiche_Def::$id

Definition at line 38 of file class_fiche_def.php.

Fiche_Def::$label

Definition at line 39 of file class_fiche_def.php.

Referenced by input_base().


The documentation for this class was generated from the following file:
 All Data Structures Namespaces Files Functions Variables Enumerations