noalyss  Version-6.7.2
Public Member Functions
Stock Class Reference
Inheritance diagram for Stock:
Stock_Sql Phpcompta_SQL

Public Member Functions

 build_tmp_table ($p_array)
 create_query_histo ($p_array)
 export_stock_histo_form ()
 export_stock_summary_list_form ()
 history ($p_array)
 show history of all the stock movement
 search_box ($p_array)
 search_box_button ()
 summary ($p_array)

Detailed Description

Definition at line 31 of file class_stock.php.


Member Function Documentation

Stock::build_tmp_table ( p_array)

Definition at line 258 of file class_stock.php.

References $cn, $date, $g_user, $p_array, $periode, $tmp_id, and format_date().

Referenced by summary().

        {
                global $cn,$g_user;
                // exercice 
                if (isset ($p_array['state_exercice']))
                {
                    $periode=new Periode($cn);
                    $date=  format_date($p_array['state_exercice'], 'YYYY-MM-DD');
                    $periode->find_periode($date);
                    
                } else {
                    $periode_id=$g_user->get_periode();
                    $periode=new Periode($cn,$periode_id);
                }
                $periode->load();
                $tmp_id = $cn->get_next_seq("public.tmp_stockgood_s_id_seq");
                $cn->exec_sql("delete from tmp_stockgood where s_date < now() - interval '2 days' ");
                $cn->exec_sql("insert into tmp_stockgood(s_id) values ($1)", array($tmp_id));

                // get all readable repository
                $a_repository = $g_user->get_available_repository('R');

                // From ACH : IN
                $sql_repo_detail = "
                        insert into tmp_stockgood_detail(s_id,sg_code,s_qin,r_id,f_id)
                                select $tmp_id,trim(sg_code), coalesce(sum(sg_quantity),0) as qin,r_id,f_id
                                from stock_goods
                                where
                                        sg_type='d'
                                        and j_id is not null
                                        and j_id in (select j_id from jrnx where  j_tech_per in (select p_id from parm_periode where p_exercice=$2))
                                        and r_id  in (select r_id from profile_sec_repository where p_id=$1)
                                        group by r_id,trim(sg_code),f_id
                        ";

                // From VEN : out
                $cn->exec_sql($sql_repo_detail, array($g_user->get_profile(), $periode->p_exercice));
                $sql_repo_detail = "
                                insert into tmp_stockgood_detail(s_id,sg_code,s_qout,r_id,f_id)
                                select $tmp_id,trim(sg_code) , coalesce(sum(sg_quantity),0) as qout,r_id,f_id
                                from stock_goods as sg
                                where
                                        sg_type='c'
                                        and sg.j_id is not null
                                        and sg.j_id in (select j_id from jrnx where  j_tech_per in (select p_id from parm_periode where p_exercice=$2))
                                        and sg.r_id  in (select r_id from profile_sec_repository where p_id=$1)
                                        group by r_id,trim(sg_code),f_id
                        ";
                $cn->exec_sql($sql_repo_detail, array($g_user->get_profile(), $periode->p_exercice));

                // From INV  IN
                $sql_repo_detail = "
                        insert into tmp_stockgood_detail(s_id,sg_code,s_qin,r_id,f_id)
                                select $tmp_id,trim(sg_code) , coalesce(sum(sg_quantity),0) as qin,r_id,f_id
                                from stock_goods as sg
                                where
                                        sg_type='d'
                                        and j_id is null
                                        and sg_date >= ( select min(p_start) from parm_periode where p_exercice=$2)
                                        and sg_date <= ( select max(p_end) from parm_periode where p_exercice=$2)
                                         and sg.r_id  in (select r_id from profile_sec_repository where p_id=$1)
                                        group by r_id,trim(sg_code),f_id
                        ";
                // From INV: OUT
                $cn->exec_sql($sql_repo_detail, array($g_user->get_profile(), $periode->p_exercice));
                $sql_repo_detail = "
                                insert into tmp_stockgood_detail(s_id,sg_code,s_qout,r_id,f_id)
                                select $tmp_id,trim(sg_code), coalesce(sum(sg_quantity),0) as qout,r_id,f_id
                                from stock_goods
                                where
                                        sg_type='c'
                                        and j_id is null
                                         and r_id  in (select r_id from profile_sec_repository where p_id=$1)
                                        and sg_date  <= to_date($2,'DD.MM.YYYY')
                                        group by r_id,trim(sg_code),f_id
                        ";
                $cn->exec_sql($sql_repo_detail, array($g_user->get_profile(), $periode->p_exercice));
                return $tmp_id;
        }
Stock::create_query_histo ( p_array)

Definition at line 156 of file class_stock.php.

References $cn, $f, $g_user, $p_array, $profile, $sql, cn, isNumber(), sql_string(), and trim().

Referenced by history().

        {
                global $cn,$g_user;
                $profile=$g_user->get_profile();
                $sql = "
                        select sg_id,
                                sg.f_id,
                                (select ad_value from fiche_Detail as fd1 where ad_id=1 and fd1.f_id=jx.f_id) as fname,
                                (select ad_value from fiche_Detail as fd1 where ad_id=23 and fd1.f_id=jx.f_id) as qcode,
                                sg_code,
                                coalesce(sg_comment,jr_comment) as ccomment,
                                sg_exercice,
                                r_name,
                                sg.r_id,
                                j_montant,
                                jr_date,
                                sg_quantity,
                                case when sg_type='c' then 'OUT' when sg_type='d' then 'IN' end as direction,
                                jr_internal,
                                jr_id,
                                coalesce(sg_date,jr_date) as real_date,
                                to_char(coalesce(sg_date,jr_date),'DD.MM.YY') as cdate
                        from stock_goods as sg
                        join stock_repository as sr on (sg.r_id=sr.r_id)
                        left join jrnx as jx on (sg.j_id=jx.j_id)
                        left join jrn as j on (j.jr_grpt_id=jx.j_grpt)
                        where
                        sg.r_id in (select r_id from profile_sec_repository where p_id = $profile)";
                $and = " and ";
                $clause = "";
                if (isset($p_array['wdate_start']) && $p_array['wdate_start'] != '')
                {
                        $clause = $and." to_date('" . sql_string($p_array['wdate_start']) . "','DD.MM.YYYY')<=coalesce(sg_date,jr_date) ";
                }
                if (isset($p_array['wdate_end']) && $p_array['wdate_end'] != '')
                {
                        $clause.=$and . " to_date('" . sql_string($p_array['wdate_end']) . "','DD.MM.YYYY')>=coalesce(sg_date,jr_date) ";
                }
                if (isset($p_array['wamount_start']) && $p_array['wamount_start'] != '' && isNumber($p_array['wamount_start']) == 1
                                 && $p_array['wamount_start'] != 0 )
                {
                        $clause.=$and . " j_montant >= " . sql_string($p_array['wamount_start']);
                }
                if (isset($p_array['wamount_end'])
                                && $p_array['wamount_end'] != ''
                                && $p_array['wamount_end'] != 0
                                && isNumber($p_array['wamount_end']) == 1)
                {
                        $clause.=$and . " j_montant <= " . sql_string($p_array['wamount_end']);
                }
                if (isset($p_array['wcard']) && $p_array['wcard'] != '')
                {
                        $f = new Fiche($this->cn);
                        $f->get_by_qcode($p_array['wcard'], false);
                        if ($f->id != 0)
                        {
                                $clause.=$and . " sg.f_id =  " . sql_string($f->id);
                        }
                }
                if (isset($p_array['wcode_stock']) && $p_array['wcode_stock'] != "")
                {
                        $clause.=$and . " upper(sg_code) =  upper('" . sql_string(trim($p_array['wcode_stock'])) . "')";
                }
                if (isset($p_array['wrepo']) && $p_array['wrepo'] != -1)
                {
                        $clause.=$and . " sg.r_id = " . sql_string($p_array['wrepo']);
                }
                if (isset($p_array['wdirection']) && $p_array['wdirection'] != -1)
                {
                        $clause.=$and . " sg.sg_type = '" . sql_string($p_array['wdirection']) . "'";
                }

                return $sql . $clause;
        }

Definition at line 79 of file class_stock.php.

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

Referenced by history().

        {
                echo '<form style="display:inline" method="GET" action="export.php">';
                 echo HtmlInput::get_to_hidden(array("gDossier", "wcard", "wdate_start", "wdate_end", "wrepo",
                                        "wamount_start", "wamount_end", "wcode_stock", "wdirection"));
                 echo HtmlInput::hidden('act','CSV:StockHisto');
                 echo HtmlInput::submit('stockhisto','Export CSV');
                 echo '</form>';
        }

Definition at line 88 of file class_stock.php.

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

Referenced by summary().

        {
                echo '<form style="display:inline"  method="GET" action="export.php">';
                 echo HtmlInput::get_to_hidden(array("gDossier", "state_exercice"));
                 echo HtmlInput::hidden('act','CSV:StockResmList');

                 echo HtmlInput::submit('stockresm','Export CSV');
                 echo '</form>';
        }
Stock::history ( p_array)

show history of all the stock movement

Parameters:
$p_arrayusually contains $_GET

Definition at line 38 of file class_stock.php.

References $_GET, $max_row, $offset, $order, $p_array, $p_url, $page, $res, $sql, $step, $tb, cn, create_query_histo(), echo, export_stock_histo_form(), HtmlInput\get_to_string(), navigation_bar(), Database\num_row(), HtmlInput\print_window(), search_box(), and search_box_button().

        {

                $sql = $this->create_query_histo($p_array);
                require_once 'class_sort_table.php';
                $p_url = HtmlInput::get_to_string(array("gDossier", "ac", "wcard", "wdate_start", "wdate_end", "wrepo",
                                        "wamount_start", "wamount_end", "wcode_stock", "wdirection"));

                $tb = new Sort_Table();
                $tb->add("Date", $p_url, " order by real_date asc", "order by real_date desc", "da", "dd");
                $tb->add("Code Stock", $p_url, " order by sg_code asc", "order by sg_code desc", "sa", "sd");
                $tb->add("Dépôt", $p_url, " order by r_name asc", "order by r_name desc", "ra", "rd");
                $tb->add("Fiche", $p_url, " order by 2 asc", "order by 2 desc", "fa", "fd");
                $tb->add("Commentaire", $p_url, " order by coalesce(sg_comment,jr_comment)  asc", "order by coalesce(sg_comment,jr_comment)  desc", "ca", "cd");
                $tb->add("Montant", $p_url, " order by j_montant asc", "order by j_montant desc", "ja", "jd");
                $tb->add("Quantité", $p_url, " order by sg_quantity asc", "order by sg_quantity  desc", "qa", "qd");
                $tb->add("IN/OUT", $p_url, " order by (case when sg_type='c' then 'OUT' when sg_type='c' then 'IN' end ) asc", "order by (case when sg_type='c' then 'OUT' when sg_type='c' then 'IN' end ) desc", "ta", "td");
                $order = (isset($p_array['ord'])) ? $p_array['ord'] : 'da';

                $sql.=$tb->get_sql_order($order);
                $step = $_SESSION['g_pagesize'];
                $page = (isset($_GET['offset'])) ? $_GET['page'] : 1;
                $offset = (isset($_GET['offset'])) ? $_GET['offset'] : 0;

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

                $max_row = Database::num_row($res);

                $nav_bar = navigation_bar($offset, $max_row, 0, $page);

                if ($step != -1)
                        $res = $this->cn->exec_sql($sql . " , sg_id asc limit " . $step . " offset " . $offset);
                $max_row = Database::num_row($res);

                $this->search_box_button();
                $this->search_box($p_array);
                require_once 'template/stock_histo.php';
                $this->export_stock_histo_form();
                echo HtmlInput::print_window();
        }
Stock::search_box ( p_array)

Definition at line 103 of file class_stock.php.

References $exercice, $g_user, $p_array, $periode, $periode_end, $periode_start, cn, HtmlInput\default_value(), and HtmlInput\select_stock().

Referenced by history().

        {
                // Declaration
                global $g_user;
                $wrepo = HtmlInput::select_stock($this->cn, "wrepo", 'R');
                $wrepo->value[] = array('value' => -1, 'label' => 'Tous les dépôts');

                $wdate_start = new IDate('wdate_start');
                $wdate_end = new IDate('wdate_end');
                $wamount_start = new INum('wamount_start');
                $wamount_end = new INum('wamount_end');
                $wcard = new ICard('wcard');
                $wcode_stock = new ICard('wcode_stock');
                $wdirection = new ISelect("wdirection");

                // value
                $wrepo->selected = HtmlInput::default_value("wrepo", -1, $p_array);

                // Date start / end
                $exercice = $g_user->get_exercice();
                $periode = new Periode($this->cn);
                list($periode_start, $periode_end) = $periode->get_limit($exercice);

                $wdate_start->value = HtmlInput::default_value("wdate_start", $periode_start->first_day(), $p_array);
                $wdate_end->value = HtmlInput::default_value("wdate_end", $periode_end->last_day(), $p_array);
                //amounts
                $wamount_start->value = HtmlInput::default_value("wamount_start", 0, $p_array);
                $wamount_end->value = HtmlInput::default_value("wamount_end", 0, $p_array);

                //Card
                $wcard->extra = "all";
                $wcard->set_attribute("typecard", "all");
                $wcard->value = HtmlInput::default_value("wcard", "", $p_array);

                //Card stock
                $wcode_stock->extra = " [sql] fd_id=500000 ";
                $wcode_stock->set_attribute("typecard", "[sql] fd_id=500000");
                $wcode_stock->value = HtmlInput::default_value("wcard", "", $p_array);

                // Repository
                $wcode_stock->value = HtmlInput::default_value("wcode_stock", "", $p_array);

                //Direction
                $wdirection->value = array(
                        array('value' => "-1", 'label' => "Tout"),
                        array('value' => "c", 'label' => "OUT"),
                        array('value' => "d", 'label' => "IN")
                );
                $wdirection->selected = HtmlInput::default_value("wdirection", "-1", $p_array);

                require_once 'template/stock_histo_search.php';
        }

Definition at line 97 of file class_stock.php.

References HtmlInput\button(), and echo.

Referenced by history().

        {
                $bt = HtmlInput::button("Recherche", "Recherche", ' onclick="$(\'histo_search_d\').show();"');
                echo $bt;
        }
Stock::summary ( p_array)

Definition at line 231 of file class_stock.php.

References $cn, $g_user, $p_array, $tmp_id, build_tmp_table(), echo, export_stock_summary_list_form(), and HtmlInput\print_window().

        {
                global $cn, $g_user;
                $tmp_id=$this->build_tmp_table($p_array);
                // Build condition
                $a_repository = $g_user->get_available_repository('R');
                $a_code = $cn->get_array("select distinct sg_code from tmp_stockgood_detail where s_id=$1", array($tmp_id));
                if (isset($p_array['present']))
                {
                        $present = $p_array['present'];
                }
                else
                {
                        $present = 'T';
                }
                if ($present == 'T')
                {
                        require_once 'template/stock_summary_table.php';
                }
                if ($present == 'L')
                {
                        require_once 'template/stock_summary_list.php';
                        $this->export_stock_summary_list_form();

                }
                echo HtmlInput::print_window();
        }

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