AnonSec Shell
Server IP : 162.214.74.102  /  Your IP : 216.73.217.114
Web Server : Apache
System : Linux dedi-4363141.lrsys.com.br 3.10.0-1160.119.1.el7.tuxcare.els25.x86_64 #1 SMP Wed Oct 1 17:37:27 UTC 2025 x86_64
User : lrsys ( 1015)
PHP Version : 5.6.40
Disable Function : exec,passthru,shell_exec,system
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/lrsys/public_html/lrsys_apps/rodeio/application/plugins/module_stock/controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/lrsys/public_html/lrsys_apps/rodeio/application/plugins/module_stock/controllers/stock.php
<?php
 
_auth();

$dir = "application/plugins/module_stock";
 
$ui->assign('_application_menu', "stock_module");
$ui->assign('_title', $_L['Stock module'].' - '. $config['CompanyName']);
$action = $routes['2'];
$user = User::_info();
$ui->assign('user', $user);
$ui->assign('_st', $_L['Stock module']);

switch ($action) {
    case 'list':
        $ui->assign('xheader', '<link rel="stylesheet" type="text/css" href="' . $dir . '/assets/css/default.css">');
        $ui->assign('xfooter', '<script type="text/javascript" src="' . $dir . '/assets/js/list.js"></script>');
        $ui->assign('_include', $action);
        $ui->display('wrapper.tpl');
        break;
    case 'item':
        $data = ORM::for_table('sys_stock')
                    ->table_alias('i')
                    ->select('i.*')
                    ->where('i.sys_items_id', $routes['3'])
                    ->order_by_asc('id')
                    ->find_many();

        $itm = ORM::for_table('sys_items')
                    ->select('description')
                    ->select('unit_id')
                    ->where('id', $routes['3'])
                    ->find_many();

        $unit = ORM::for_table('sys_items_unit')
                    ->select('*')
                    ->where('id', $itm[0]['unit_id'])
                    ->find_many();

        $qtdTotalIn=0.00;
        $qtdTotalOut=0.00;
        $qtdReleases=0.00;
        $ui->assign('qtdTotalIn', $qtdTotalIn);
        $ui->assign('qtdTotalOut', $qtdTotalOut);
        $ui->assign('qtdReleases', $qtdReleases);

        $ui->assign('bar_records', 1);
        $ui->assign('bar_value', 2);
        $ui->assign('bar_balance', 3);
        $ui->assign('bar_payed', 4);

        $ui->assign('itemSelected', $data);
        $ui->assign('id_item', $routes['3']);

        $ui->assign('name', $itm[0]['description']);
        $ui->assign('item_unidade', $unit[0]['initials']);
        $ui->assign('item_decimal', $unit[0]['int_value']);

        $ui->assign('config', $config);
        $ui->assign('dir', $dir);
        $css = array('modal','dp/dist/datepicker.min');
        $js_arr = array('modal','numeric','dp/dist/datepicker.min');
        $assets_css = Asset::css($css);
        $assets_js = Asset::js($js_arr);
        $ui->assign('xheader', $assets_css.'<link rel="stylesheet" type="text/css" href="'.$dir.'/assets/css/default.css">'. '<link rel="stylesheet" type="text/css" href="'.$dir.'/assets/css/bottom_bar.css"/>');
        $ui->assign('xfooter', $assets_js.'<script type="text/javascript" src="'.$dir.'/assets/js/item.js"></script>'.'<script type="text/javascript" src="'.$dir.'/assets/js/bottom_bar.js"></script>');
        $ui->assign('_include', $action);
        $ui->display('wrapper.tpl');
        break;
    /*add && update*/
    case 'add':
        $ret;
        $type = $_POST["type_release"];
        $date = implode('-',array_reverse(explode('/', $_POST["date_release"])));
        $time = $_POST["time_release"];
        $qty = str_replace(",", "", $_POST["qty_release"]);
        $qty = explode(" ", $qty);
        $qty = $qty[0];
        $price = str_replace(",", "", $_POST["price_release"]);
        $obs = $_POST["obs_release"];

        if(! empty($_POST["id_rels"])){
            $stock = ORM::for_table('sys_stock')
                        ->find_one($_POST["id_rels"]);
            $stock->type = $type;
            $stock->date = $date;
            $stock->time = $time;
            $stock->quantity = $qty;
            $stock->unit_price = $price;
            $stock->observation = $obs;
            $stock->dt_atualizacao = date("Y-m-d H:i:s");
            $ret = $_L['Realease add'];
        }else{
            $stock = ORM::for_table('sys_stock')
                        ->create();
            $stock->sys_items_id = $_POST["id"];
            $stock->type = $type;
            $stock->date = $date;
            $stock->time = $time;
            $stock->quantity = $qty;
            $stock->unit_price = $price;
            $stock->observation = $obs;
            $stock->dt_cadastro = date("Y-m-d H:i:s");
            $ret = $_L['Realease upd'];
        }

        $stock->save();
        echo $ret;

        /*Alerts of stock*/
        $validaParams = ORM::for_table('sys_items_stock')
                            ->where('sys_items_id', $stock->sys_items_id)
                            ->find_many();

        $min = $validaParams[0]['minumum_stock'];
        $max = $validaParams[0]['maximum_stock'];
        $alert = $validaParams[0]['control_stock'];
        
        // pego as entradas e saídas
        $valMax = ORM::for_table('sys_stock')
                ->raw_query('select CAST( SUM(quantity) AS DECIMAL(10,2)) as qtd
                              from sys_stock
                             where sys_items_id = '.$stock->sys_items_id.'
                               and (type = \'entry\')')
                ->find_many();

        $valMin = ORM::for_table('sys_stock')
                ->raw_query('select CAST( SUM(quantity) AS DECIMAL(10,2)) as qtd
                              from sys_stock
                             where sys_items_id = '.$stock->sys_items_id.'
                               and type = \'out\'')
                ->find_many();
        
        $entradas   = 0;
        $saidas     = 0;
        ($valMax[0]['qtd']) ? $entradas = $valMax[0]['qtd'] : $entradas = 0;
        ($valMin[0]['qtd']) ? $saidas = $valMin[0]['qtd'] : $saidas = 0;
        $saldo = $entradas - $saidas;
        
        // atualizo o saldo de produtos
        $b = ORM::for_table('sys_items_stock')
                ->where('sys_items_id',$stock->sys_items_id)->find_result_set()
                ->set('current_stock', $saldo)
                ->save();
        
        if($alert == 1){
            if($min >= $saldo || $max <= $saldo){
                $notifications = new Notifications();
                $notifications->verify(20, $user['id'], U.'module_stock/stock/item/'.$stock->sys_items_id);
            }
        }

        break;
    case 'del':
        $stock = ORM::for_table('sys_stock')->find_one($_POST["id"]);
        if($stock['sys_orders_id'] > 0)
        {
            echo "Não é possível deletar este lançamento pois ele está vinculado a um pedido.";
        }
        else
        {
            $stock ->delete();
            echo "Lançamento excluído com sucesso!";
        }
            

        break;
    case 'busca':
        $data = ORM::for_table('sys_stock')
                    ->table_alias('i')
                    ->select('i.*')
                    ->where('i.id', $routes['3'])
                    ->order_by_asc('id')
                    ->find_many();
        echo($data[0]['type'].";".implode("/", array_reverse(explode("-", $data[0]['date']))).";".$data[0]['time'].";".$data[0]['quantity'].";".$data[0]['unit_price'].";".$data[0]['observation'].";".$data[0]['id']);
        break;
    case 'buyOs':
        //adicionar o controller
        //require_once "controllers/".$action.".php";
        $ui->assign('_include', $action);
        $ui->display('wrapper.tpl');
        
        break;
    case 'inNotes':
        //adicionar o controller
        //require_once "controllers/".$action.".php";
        $ui->assign('_include', $action);
        $ui->display('wrapper.tpl');
        
        break;
    case 'prodOrders':
        //adicionar o controller
        //require_once "controllers/".$action.".php";
        $ui->assign('_include', $action);
        $ui->display('wrapper.tpl');
        
        break;
    case 'fci':
        //adicionar o controller
        //require_once "controllers/".$action.".php";
        $ui->assign('_include', $action);
        $ui->display('wrapper.tpl');
        
        break;
    case 'rels':
        //adicionar o controller
        //require_once "controllers/".$action.".php";
        $ui->assign('_include', $action);
        $ui->display('wrapper.tpl');
        
        break;
    case 'load_list':
        $ret="";
        $type = _post('stype');
        $search = _post('search');

        $data = ORM::for_table('sys_items')
                    ->table_alias('i')
                    ->select('i.*')
                    ->where('type',$type)
                    ->select_expr("(select initials from sys_items_unit u where u.id=i.unit_id )", 'u_unit')
                    ->select_expr("(select current_stock from sys_items_stock st where st.sys_items_id=i.id )", 'stock')
                    ->order_by_asc('name');

        if(!empty($search))
            $data->where('id',$search);

        $d = $data->find_many();
//        var_dump($d[0]);exit;
        $valorFinal = 0;
        if(sizeof($d) > 0){
            foreach ($d as $ds){
                $price = number_format($ds['sales_price'],2,$config['dec_point'],$config['thousands_sep']);
                $ret .="<tr class='list_stock_1'>
                            <td>
                                <div class='btn-group dropdown dropdown-main-actions'>
                                    <button data-toggle='dropdown' class='btn btn-primary btn-xs dropdown-toggle' type='button'>
                                    <span class='caret'></span></button>
                                    <ul class='dropdown-menu'>
                                        <li style='display:none;' onclick='etiqueta()'><a href='#'><i class='fa fa-th'></i>&nbsp;Imprimir etiquetas</a></li>
                                        <li><a href='?ng=module_stock/stock/item/".$ds['id']."'><i class='fa fa-cog'></i>&nbsp;Gerenciar Estoque</a></li>
                                    </ul>
                                </div>
                            </td>
                            <td onclick='goItem(".$ds['id'].")'>".$ds['description']."</td>
                            <td onclick='goItem(".$ds['id'].")'>".$ds['id']."</td>
                            <td onclick='goItem(".$ds['id'].")' style='width: 20px;'>".$config['currency_code']."</td>
                            <td onclick='goItem(".$ds['id'].")'>".$price."</td>
                            <td onclick='goItem(".$ds['id'].")'>".$ds['stock']."</td>
                            <td onclick='goItem(".$ds['id'].")'>".$ds['u_unit']."</td>
                            <td onclick='goItem(".$ds['id'].")'>&nbsp;</td></tr>
                ";
                $valorFinal = $valorFinal + $ds['sales_price'];
            }

        }else{
            $ret = "<tr><td colspan='8' style='text-align: center'>Nenhum produto encontrado!</td></tr>";
        }
        $ret .= "<tr><td colspan='8' style='text-align: right'><strong>Valor Total ".$config['currency_code']." ".number_format($valorFinal,2,$config['dec_point'],$config['thousands_sep'])."</strong></td></tr>";

        echo $ret;

        break;

    case 'list_notifications_users':
        $ui->assign('xfooter', '<script type="text/javascript" src="' . $dir . '/assets/js/notifications.js"></script>');

        $notifications_users = ORM::for_table('sys_notifications_types')
            ->table_alias('snt')
            ->select('snt.id')
            ->select('snt.description')
            ->select('snt.module')
            ->select('snu.method')
            ->left_outer_join('sys_notifications_users', 'snt.id = snu.id_notification_type', 'snu')
            ->where('snt.module', 'module_stock')
            ->order_by_asc('snt.description')
            ->find_many();

        $ui->assign('notifications_users', $notifications_users);
        $ui->assign('_st', $_L['User Notifications']);
        $ui->display($dir.'/views/notifications.tpl');

        break;

    case 'add_notifications_users_post':
        $id = (isset($_POST['id'])) ? $_POST['id'] : 0;
        $values = (isset($_POST['values'])) ? json_encode($_POST['values']) : 0;

        if($id <= 0) {
            r2(U.'module_stock/stock/list_notifications_users/', 'e', $_L['Invalid ID']);
        }

        $notifications_users = ORM::for_table('sys_notifications_users')
            ->where('id_notification_type', $id)
            ->find_one();

        if($notifications_users) {
            $notifications_users->method = $values;
            $notifications_users->save();

            die('1');
        }

        $notifications_users = ORM::for_table('sys_notifications_users')->create();
        $notifications_users->id_notification_type = $id;
        $notifications_users->id_user = $user['id'];
        $notifications_users->method = $values;
        $notifications_users->description = "";
        $notifications_users->save();

        die('1');

        break;

    default:
        echo 'action not defined';
}
 

Anon7 - 2022
AnonSec Team