Jump to content
violin101

Codeigniter + PHP - Como passar valor da página anterior para a próxima

Recommended Posts

Caros amigos, saudações...

 

Estou com um pequeno problema de paginação.

 

Tenho uma tabela de HISTÓRICO onde toda a movimentação que for realizada com o Produto o sistema grava nessa tabela do MySql.  <<=== até aqui tudo bem

 

O problema é o seguinte:

 

quando exibo todos os dados na Tabela da seguinte forma, o sistema faz a conta corretamente.

DATA MOV        HISTÓRICO                                           QTDE     SALDO

01/11/2020......Saldo Inicial.........................................100 +      100

02/11/2020......Venda conf. Compr. n.0001...............   30 -          70

02/11/2020......Devol. conf. Compr. n.0002...............   10 +         80

02/11/2020......Venda conf. Compr. n.0003...............   15 -          65

=====================================================

ESTOQUE ATUAL DO PRODUTO...............................................65

 

 

Quando faço a paginação o resultado da TABELA fica assim:

PÁGINA 1

DATA MOV        HISTÓRICO                                           QTDE     SALDO

01/11/2020......Saldo Inicial.........................................100 +      100

02/11/2020......Venda conf. Compr. n.0001...............   30 -         70

 

=====================================================

 

PÁGINA 2

DATA MOV        HISTÓRICO                                           QTDE     SALDO

02/11/2020......Venda conf. Compr. n.0002...............   10 +          10

02/11/2020......Venda conf. Compr. n.0003...............   15 -           - 5

 

======================================================

 

Como faço para passar o Resultado final da Página ,1 para a Página 2  e etc ?

 

Abaixo posto o Código que estou usando.

 

Controller

    //Função para Visualizar e Paginar Histórico de Produtos
    function history($id = null)
    {        
        if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'rProduto')) {
            $this->session->set_flashdata('error', 'Você não tem permissão para visualizar o histórico do produto.');
            redirect(base_url());
        }

        //URL para fazer paginação
        $url_hist = $id!=NULL ? base_url('admin/produtos/history/'.$id) : 
                                base_url('admin/produtos/history/'.$id);                  

        /**Paginação*/
        $get_total_results = $this->produtos_model->getHistory($id);
       
        $tot_histores = $get_total_results['total'];

        $get_paginar = $this->pagina_history($url_hist, $tot_histores, 2);
                          
        $get_produtos = $this->produtos_model->getHistory($id, $get_paginar['inicio'], $get_paginar['final']);
                                 
        $this->load->view('estilo/header', $this->data);  
        $this->load->view('admin/produtos/history',
                    array("results" => $get_produtos['dados'],                     
                          "paginar" => $get_paginar['paginacao'])
                         );        
    }    


    /*Função para paginar*/
    public function pagina_history($url_pagination, $tot_histores, $result_hist_pagina=2){
        
        $this->load->library('table');
        $this->load->library('pagination');  

        $config['base_url'] = $url_pagination;
        $config['total_rows'] = $tot_histores;
        $config['per_page'] = $result_hist_pagina;
        $config['page_query_string'] = TRUE;
        $config['next_link'] = 'Próxima';
        $config['prev_link'] = 'Anterior';
        $config['full_tag_open'] = '<div class="pagination alternate"><ul>';
        $config['full_tag_close'] = '</ul></div>';
        $config['num_tag_open'] = '<li>';
        $config['num_tag_close'] = '</li>';
        $config['cur_tag_open'] = '<li><a style="color: #2D335B"><b>';
        $config['cur_tag_close'] = '</b></a></li>';
        $config['prev_tag_open'] = '<li>';
        $config['prev_tag_close'] = '</li>';
        $config['next_tag_open'] = '<li>';
        $config['next_tag_close'] = '</li>';
        $config['first_link'] = 'Primeira';
        $config['last_link'] = 'Última';
        $config['first_tag_open'] = '<li>';
        $config['first_tag_close'] = '</li>';
        $config['last_tag_open'] = '<li>';
        $config['last_tag_close'] = '</li>';
        $qtidade = $config['per_page'];

        $this->pagination->initialize($config);
        
        $dados['final'] = $qtidade;
        $dados['inicio'] = $this->input->get('per_page') != NULL ? $this->input->get('per_page') :  '0'; 

        $dados['paginacao'] = $this->pagination->create_links();

        return $dados;
    }

 

MODEL:

    //Função de Busca Histórico do Produto
    function getHistory($id=null, $inicio=NULL, $quantidade=NULL){

        $inicio = $inicio != NULL ? "LIMIT {$inicio},{$quantidade}" : "";

        $numClie = $this->session->userdata('idCli');         

        //Executa SQL no Mysql
        $sql = $this->db->query("SELECT historico.*, produtos.*, clientes.*, marcas.*
                                   FROM historico 
                             INNER JOIN produtos ON produtos.idProdutos = historico.prd_idProdutos 
                             INNER JOIN clientes ON clientes.idClientes = historico.clie_idClientes 
                             INNER JOIN marcas ON marcas.idmarcas = produtos.marcas_idmarcas
                                  WHERE historico.prd_idProdutos = $id
                                    AND historico.clie_idClientes = $numClie 
                                    ORDER BY idhistorico ASC {$inicio} ");

        $dados['inicio'] = $inicio;
        
        $dados['total'] = $sql->num_rows();
        
        $dados['dados'] = $sql->result_array();         
        
        return $dados;
    }

 

VIEW:

<?php 
  defined('BASEPATH') OR exit('No direct script access allowed');
  $this->load->view('admin/tema/topo'); 
?>

<div class="content-wrapper">
  <!-- Content Header (Page header) -->
  <section class="content-header">
    <div class="container-fluid">
      <div class="row mb-2">
        <div class="col-sm-6">
          <h1>Histórico do Produto</h1>
        </div>
        <div class="col-sm-6">
          <ol class="breadcrumb float-sm-right">
            <li class="breadcrumb-item"><a href="<?php echo base_url()?>admin/">Home</a></li>
            <li class="breadcrumb-item active">Histórico do Produto</li>
          </ol>
        </div>
      </div>
    </div><!-- /.container-fluid -->
  </section>


  <?php
    if (!$results) { ?>
    <section class="content">
      <div class="container-fluid">
        <div class="row">
          <div class="col-12">
            <div class="card">
              <div class="card-header">
                <a href="<?php echo base_url() ?>admin/produtos" id="" class="btn btn-danger">
                  <i class="fa fa-undo"></i> Voltar
                </a>         
              </div>            
              <div class="card-body">
                <table id="tab_histprd" class="table table-bordered table-hover">
                  <thead style="background: #cecece;">
                    <tr>
                      <th style="text-align:center;">Data Lançamento</th>
                      <th style="text-align:center;">Nr Dcto</th>                            
                      <th style="text-align:center;">Histórico do Produto</th>
                      <th style="text-align:center;">Movimentação</th>
                      <th style="text-align:center;">Resultado</th>
                    </tr>
                  </thead>
                  <tbody>
                  <tr>
                    <td colspan="5" style="text-align:center;">
                        <img src="<?php echo base_url()?>assets/img/logo_mail.png" alt="" 
                             style="height:100%; margin: 50px 40px;">
                    </td>
                  </tr>
                  </tbody>
                </table>
              </div>
              <!-- /.card-body -->
            </div>
            <!-- /.card -->
          </div>
          <!-- /.col -->
        </div>
        <!-- /.row -->
      </div>
      <!-- /.container-fluid -->
    </section>

  <?php } else { ?>
    
    <section class="content">
      <div class="container-fluid">
        <div class="row">
          <div class="col-12">

            <div class="callout callout-success">
              <h5>
                <strong><?php echo $results[0]['cod_interno']; ?> - <?php echo $results[0]['descricao']; ?> - <?php echo $results[0]['mrc_descr']; ?></strong>
              </h5>
            </div> 

            <div class="card">          
              <div class="card-body">

                <form id="frmHist" action="<?php echo base_url(); ?>admin/relatorios/imprHistory" method="post">
                  <div class="row">
                  <div class="col-lg-3"> 
                    <label for="dataInicial">Data Início:&nbsp;<span class="required">*</span></label>
                    <div class="controls">
                      <input type="date" name="dataInicial" value="" class="form-control" style="width:70%;"
                             required />
                    </div>
                  </div>

                  <div class="col-lg-3" style="margin-left:-70px;"> 
                    <label for="dataFinal">Data Final:&nbsp;<span class="required">*</span></label>
                    <div class="controls">
                      <input type="date" name="dataFinal" value="" class="form-control" style="width:70%;" 
                             required />
                    </div>
                  </div>

                  <div class="col-lg-3" style="margin-left:-75px; margin-top:31px;"> 
                    <input type="hidden" id="idPrd" name="idPrd" value="<?php echo $results[0]['idProdutos']; ?>" />
                    <input type="hidden" id="idInt" name="idInt" value="<?php echo $results[0]['cod_interno']; ?>" />
                    <button type="submit" class="btn btn-success" formtarget="_blank">
                            <i class="fa fa-print"></i> Imprimir
                    </button>   
                    &nbsp;&nbsp;
                    <a href="<?php echo base_url() ?>admin/produtos" id="" class="btn btn-danger"><i class="fa fa-undo"></i> Voltar</a>           
                  </div>
                  </div>
                  <div class="clearfix"></div>    
                  <br/> 

                  <table id="tab_histprd" class="table table-bordered table-hover">
                    <thead style="background: #cecece;">
                      <tr>
                        <th style="text-align:center;">Data Lançamento</th>
                        <th style="text-align:center;">Nr Dcto</th>                            
                        <th style="text-align:center;">Histórico do Produto</th>
                        <th style="text-align:center;">Movimentação</th>
                        <th style="text-align:center;">Resultado</th>
                      </tr>
                    </thead>
                    <tbody>
                        <?php
                         $saldo = 0;
                         foreach ($results as $r) {
                          //Converte Data para Padrão Brasileiro
                          $dta_hist = date(('d/m/Y'), strtotime($r['dtahist']));

                          if ($r['credito'] == 0) {
                            $mvts = number_format($r['credito'], 0, ",", ".");
                            $corc = '#000000';
                          } else {
                            $mvts = number_format($r['credito'], 0, ",", ".").' +';
                            $corc = '#080871';
                          }

                          if ($r['debito'] == 0) {
                            $mvto = number_format($r['debito'], 0, ",", ".");
                            $cors = '#000000';
                          } else {
                            $mvto = number_format($r['debito'], 0, ",", ".").' -';
                            $cors = '#AF0F0F';
                          }    

                          //Executa Cálculo entre CRD x DEB
                          $saldo = ($r['credito'] - $r['debito']) + $saldo;                    
                          $result = number_format($saldo, 0, ",", ".");

                          //Mostra da Tabela 
                          echo '<tr>';
                            echo '<td width="70" height="10" style="text-align:center;">' .$dta_hist. '</td>';
                            echo '<td width="70" height="10" style="text-align:left;">' .$r['numdcto']. '</td>';
                            echo '<td width="240" height="10" style="text-align:left;">' .$r['historico']. '</td>';

                            if($mvts != 0){
                               echo '<td width="90" height="10" style="text-align:right; color:'.$corc.'">
                                     <strong>'.$mvts.'</strong></td>';
                            } elseif($mvto != 0) {
                              echo '<td width="90" height="10" style="text-align:right; color:'.$cors.'">
                                    <strong>'. $mvto.'</strong>&nbsp;</td>';                        
                            } else {
                               echo '<td width="90" height="10" style="text-align:right;">0</td>';
                            }

                            echo '<td width="90" height="10" style="text-align:right;">'.$result.'</td>';
                          echo '</tr>';

                        }//Fim do Foreach ?>
                    </tbody>
                  </table>

                  <?php echo $paginar; ?>  
                  
                 </form>

              </div>
              <!-- /.card-body -->
            </div>
            <!-- /.card -->
          </div>
          <!-- /.col -->
        </div>
        <!-- /.row -->
      </div>
      <!-- /.container-fluid -->
    </section>
  <?php } ?>

</div>

 
<?php $this->load->view('estilo/footer'); ?>

 

 

Grato a todos.

 

Atenciosamente,

 

Cesar

Share this post


Link to post
Share on other sites

Caros amigos,

 

saudações...

 

Consegui resolver o problema de Soma de Resultado.

No ato da Entrada de N.F. já faço a conta de ESTOQUE, atualizando o Histórico.

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By joeythai
      Bom dia pessoal, minha dúvida é simples, vi que alguns arquivos xml tem a saída de data desta forma  "2020-01-22T09:18:50", como faço pra imprimir a data desta forma ? E o que significa esse T?]
      Eu estou usando o Carbon, to tentando encontrar esse padrão na documentação.
      2018-05-29T17:47:57 2018-05-29T17:47:57
    • By Sapinn
      Resolvi atualizar meu xampp para a versão 7.4.14 e estou com um erro de Internal Server Error que fica em um projeto que estou usando htacess para fazer urls amigáveis o arquivo usados são:
      Arquivo externo:
       
      <IfModule mod_rewrite.c>
          RewriteEngine on
          RewriteRule ^$ public/ [L]
          RewriteRule (.*)public/$1 [L]
      </IfModule>
       
      Dentro da pasta public:
       
      <IfModule mod_rewrite.c>
          Options -Multiviews
          RewriteEngine On
          RewriteBase /unset_mvc/public
          RewriteCond %{REQUEST_FILENAME} !-d
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
      </IfModule>
       
      Dentro da pasta app:
      Options -Indexes
       
      Preciso de ajuda porquê não sei o que fazer, já tentei apagar algumas coisas no httpd.conf dentro do xampp mas não funcionou.
    • By violin101
      Caros amigo, saudações...

      por favor, me perdoa se postei na opção errada.
       
      estou com a seguinte dúvida.
       
      tenho o seguinte código no cadastro: 1234 0000 4320 9785
       
      como consigo mostrar /inibir os números no meio, para o usuário desta forma: 1234********9785
       
      Grato,
       
      Cesar
    • By Rodrigo5468
      Olá, boa tarde!
       
      Eu estava procurando na internet, mas não obtive nenhum resultado significativo.
      Eu preciso de um script em php que converte os links do youtube para o formato .mp4. Como que eu posso fazer isso? Alguma dica?
      Quero que quando o usuário informa o link do youtube no input e clica no botão de converter baixe o vídeo e faz a conversão para .mp4 e fornece para o usuário o link convertido para .mp4.
       
       
      Obrigado desde já.
    • By k9studio
      Olá Amigos,
      tenho essa tabela abaixo e estou apanhando para listar os dados e fazer validação,
      alguém pode ajudar como chamar os dados e validar mostrar o nome somente se estiver visible=on  

       
      CREATE TABLE `system` (   `namesystem` text COLLATE utf8_unicode_ci NOT NULL,   `setting` text COLLATE utf8_unicode_ci NOT NULL,   `value` text COLLATE utf8_unicode_ci NOT NULL,   `order` int(1) NOT NULL,   KEY `namesystem_setting` (`namesystem`(32),`setting`(32)),   KEY `setting_value` (`setting`(32),`value`(32)) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; como os dados estão na tabela:
       
      namesystem setting   value   order (honda)    (name)   (Honda)   1 (honda)    (xtts)   (ok)      0    (honda)   (visible)  (on)      0    (toyota)    (name)   (Toyota)  2 (toyota)    (xtts)   (ok)      0    (toyota)  (visible)  (on)      0    
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.