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

concerns the predefined operation for the operation from 'Ecriture direct' More...

Inheritance diagram for Pre_Op_Advanced:
Pre_operation_detail

Public Member Functions

 compute_array ()
 compute an array accordingly with the FormVenView function
 display ($p_array)
 get_post ()
 load ()
 load the data from the database and return an array
 Pre_Op_Advanced ($cn)
 save ()
 save the detail and op in the database
 set_od_id ($p_id)

Data Fields

 $op

Detailed Description

concerns the predefined operation for the operation from 'Ecriture direct'

Definition at line 30 of file class_pre_op_advanced.php.


Member Function Documentation

compute an array accordingly with the FormVenView function

Definition at line 96 of file class_pre_op_advanced.php.

References $array, $count, $p_array, $row, and load().

    {
        $count=0;
        $a_op=$this->operation->load();
        $array=$this->operation->compute_array($a_op);
        $array['desc']=$array['e_comm'];
        $p_array=$this->load();
                if (empty($p_array)) return array();
        foreach ($p_array as $row)
        {
            $tmp_array=array("qc_".$count=>'',
                             "poste".$count=>'',
                             "amount".$count=>$row['opd_amount'],
                             'ck'.$count=>$row['opd_debit']
                            );

            if ( $row['opd_qc'] == 't' )
                $tmp_array['qc_'.$count]=$row['opd_poste'];
            else
                $tmp_array['poste'.$count]=$row['opd_poste'];


            if ( $row['opd_debit'] == 'f' )
                unset ($tmp_array['ck'.$count]);

            $array+=$tmp_array;
            $count++;

        }

        return $array;
    }
Pre_Op_Advanced::display ( p_array)

Definition at line 144 of file class_pre_op_advanced.php.

References $amount, $deb, $Fiche, $g_parameter, $g_user, $label, $p_array, $poste, $quick_code, $ret, db, HtmlInput\hidden(), Dossier\id(), HtmlInput\infobulle(), table, td(), tr(), trim(), and value.

    {
        global $g_parameter, $g_user;
        require_once 'class_acc_ledger.php';
        $legder=new Acc_Ledger($this->db,$this->jrn_def_id);
        $legder->nb=$legder->get_min_row();

        if ($p_array != null)
                extract($p_array);
        $add_js = "";
       
        $ret = "";
        if ($g_user->check_action(FICADD) == 1)
        {
                /* Add button */
                $f_add_button = new IButton('add_card');
                $f_add_button->label = _('Créer une nouvelle fiche');
                $f_add_button->set_attribute('ipopup', 'ipop_newcard');
                $f_add_button->set_attribute('jrn', $legder->id);
                $f_add_button->javascript = " this.jrn=\$('p_jrn').value;select_card_type(this);";
                $f_add_button->input();
        }
       
        $nb_row = (isset($nb_item) ) ? $nb_item : $legder->nb;

        $ret.=HtmlInput::hidden('nb_item', $nb_row);
        $ret.=HtmlInput::hidden('p_jrn', $this->jrn_def_id);
        $ret.=dossier::hidden();
        
        $ret.=dossier::hidden();

        $ret.=HtmlInput::hidden('jrn_type', $legder->get_type());
        $info = HtmlInput::infobulle(0);
        $info_poste = HtmlInput::infobulle(9);
        if ($g_user->check_action(FICADD) == 1)
                $ret.=$f_add_button->input();
        $ret.='<table id="quick_item" style="width:100%">';
        $ret.='<tr>' .
                        '<th style="text-align:left">Quickcode' . $info . '</th>' .
                        '<th style="text-align:left">' . _('Poste') . $info_poste . '</th>' .
                        '<th style="text-align:left">' . _('Libellé') . '</th>' .
                        '<th style="text-align:left">' . _('Montant') . '</th>' .
                        '<th style="text-align:left">' . _('Débit') . '</th>' .
                        '</tr>';


        for ($i = 0; $i < $nb_row; $i++)
        {
                // Quick Code
                $quick_code = new ICard('qc_' . $i);
                $quick_code->set_dblclick("fill_ipopcard(this);");
                $quick_code->set_attribute('ipopup', 'ipopcard');

                // name of the field to update with the name of the card
                $quick_code->set_attribute('label', "ld" . $i);
                $quick_code->set_attribute('jrn', $legder->id);

                // name of the field to update with the name of the card
                $quick_code->set_attribute('typecard', 'filter');

                // Add the callback function to filter the card on the jrn
                $quick_code->set_callback('filter_card');
                $quick_code->set_function('fill_data');
                $quick_code->javascript = sprintf(' onchange="fill_data_onchange(\'%s\');" ', $quick_code->name);

                $quick_code->jrn = $legder->id;
                $quick_code->value = (isset(${'qc_' . $i})) ? ${'qc_' . $i} : "";

                $label = '';
                if ($quick_code->value != '')
                {
                        $Fiche = new Fiche($legder->db);
                        $Fiche->get_by_qcode($quick_code->value);
                        $label = $Fiche->strAttribut(ATTR_DEF_NAME);
                }


                // Account
                $poste = new IPoste();
                $poste->name = 'poste' . $i;
                $poste->set_attribute('jrn', $legder->id);
                $poste->set_attribute('ipopup', 'ipop_account');
                $poste->set_attribute('label', 'ld' . $i);
                $poste->set_attribute('account', 'poste' . $i);
                $poste->set_attribute('dossier', Dossier::id());

                $poste->value = (isset(${'poste' . $i})) ? ${"poste" . $i} : ''
                ;
                $poste->dbl_click_history();


                if ($poste->value != '')
                {
                        $Poste = new Acc_Account($legder->db);
                        $Poste->set_parameter('value', $poste->value);
                        $label = $Poste->get_lib();
                }

                // Description of the line
                $line_desc = new IText();
                $line_desc->name = 'ld' . $i;
                $line_desc->size = 30;
                $line_desc->value = (isset(${"ld" . $i})) ? ${"ld" . $i} :
                                $label;

                // Amount
                $amount = new INum();
                $amount->size = 10;
                $amount->name = 'amount' . $i;
                $amount->value = (isset(${'amount' . $i})) ? ${"amount" . $i} : ''
                ;
                $amount->javascript = ' onChange="format_number(this);checkTotalDirect()"';
                // D/C
                $deb = new ICheckBox();
                $deb->name = 'ck' . $i;
                $deb->selected = (isset(${'ck' . $i})) ? true : false;
                $deb->javascript = ' onChange="checkTotalDirect()"';

                $ret.='<tr>';
                $ret.='<td>' . $quick_code->input() . $quick_code->search() . '</td>';
                $ret.='<td>' . $poste->input() .
                                '<script> document.getElementById(\'poste' . $i . '\').onblur=function(){ if (trim(this.value) !=\'\') {document.getElementById(\'qc_' . $i . '\').value="";}}</script>' .
                                '</td>';
                $ret.='<td>' . $line_desc->input() . '</td>';
                $ret.='<td>' . $amount->input() . '</td>';
                $ret.='<td>' . $deb->input() . '</td>';
                $ret.='</tr>';
                // If readonly == 1 then show CA
        }
        $ret.='</table>';
        return $ret;
    }

Reimplemented from Pre_operation_detail.

Definition at line 38 of file class_pre_op_advanced.php.

References trim().

    {
        parent::get_post();

        extract($_POST);

        for ($i=0;$i<$this->operation->nb_item;$i++)
        {
            if ( ! isset ($_POST['poste'.$i]) && ! isset ($_POST['qc_'.$i]))
                continue;
            $this->{'poste'.$i}=(trim($_POST['qc_'.$i]) != "" )?$_POST['qc_'.$i]:$_POST['poste'.$i];
            $this->{'isqc'.$i}=(trim($_POST['qc_'.$i]) != "")?'t':'f';
            $this->{"amount".$i}=$_POST['amount'.$i];
            $this->{"ck".$i}=(isset($_POST['ck'.$i]))?'t':'f';

        }
    }

load the data from the database and return an array

Returns:
an array

Definition at line 131 of file class_pre_op_advanced.php.

References $array, $res, $sql, db, and Database\fetch_all().

Referenced by compute_array().

    {
        $sql="select opd_id,opd_poste,opd_amount,opd_debit,".
             " opd_qc from op_predef_detail where od_id=".$this->operation->od_id.
             " order by opd_id";
        $res=$this->db->exec_sql($sql);
        $array=Database::fetch_all($res);
        return $array;
    }

Definition at line 33 of file class_pre_op_advanced.php.

References $cn, and Pre_operation_detail\__construct().

    {
        parent::__construct($cn);
        $this->operation->od_direct='t';
    }

save the detail and op in the database

Definition at line 59 of file class_pre_op_advanced.php.

References $e, $sql, db, echo, and false.

    {
        try
        {
            $this->db->start();
            if ($this->operation->save() == false )
                return;
            // save the selling
            for ($i=0;$i<$this->operation->nb_item;$i++)
            {
                if ( ! isset ($this->{"poste".$i}))
                    continue;

                $sql=sprintf('insert into op_predef_detail (opd_poste,opd_amount,'.
                             'opd_debit,od_id,opd_qc)'.
                             ' values '.
                             "('%s',%.2f,'%s',%d,'%s')",
                             $this->{"poste".$i},
                             $this->{"amount".$i},
                             $this->{"ck".$i},
                             $this->operation->od_id,
                             $this->{'isqc'.$i}
                            );

                $this->db->exec_sql($sql);

            }
        }
        catch (Exception $e)
        {
            echo ($e->getMessage());
            $this->db->rollback();
        }

    }

Definition at line 140 of file class_pre_op_advanced.php.

    {
        $this->operation->od_id=$p_id;
    }

Field Documentation

Pre_Op_Advanced::$op

Definition at line 32 of file class_pre_op_advanced.php.


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