<?php
//include 'header.php';
//include 'erpc_fluxo_caixa_toolbar.php';
require_once 'inc/clientes.php';
require_once 'inc/usuario.php';
error_reporting(E_ALL ^ E_NOTICE);
?>

<div class="block">
  <div class="header">
    <h2>Receitas</h2>
  </div>
  <div class="content">
    <?php
    //echo '<pre>' . var_export($_SESSION, true) . '</pre>';
    //displayMessagesAndErrors();
    ?>
    <div class="table-responsive">
      <table class="table table-bordered table-striped table-responsible rolagem-horizontal" data-order-by="0">
      <?php 
      
      //Variáveis Iniciais
      $dt_inicio = '2018-01-01';
      $dt_fim = '2018-12-31';
      $vl_saldo_inicial = 0.00;
      

      
      //POSTS
      if(isset($_POST['vl_saldo_inicial'])){
          $vl_saldo_inicial = $_POST['vl_saldo_inicial'];
      }
      if(isset($_POST['nr_ano'])){
          $nr_ano = $_POST['nr_ano'];
      }
      
      //GETS
      if(isset($_GET['vl_saldo_inicial'])){
          $vl_saldo_inicial = $_GET['vl_saldo_inicial'];
      }
      if(isset($_GET['nr_ano'])){
          $nr_ano = $_GET['nr_ano'];
      }
      
      $vl_saldo_inicial = str_replace('R$ ', '', $vl_saldo_inicial);
      $vl_saldo_inicial = str_replace('.', '', $vl_saldo_inicial);
      $vl_saldo_inicial = str_replace(',', '.', $vl_saldo_inicial);
      
      $dt_inicio = "$nr_ano-01-01";
      $dt_fim    = "$nr_ano-12-31";
      
      
      $nr_ano = date("Y", strtotime("$dt_inicio"));
      $nr_mes = date("m", strtotime("$dt_inicio"));
      
      
      $d1 = strtotime("$dt_inicio");
      $d2 = strtotime("$dt_fim");
      $min_date = min($d1, $d2);
      $max_date = max($d1, $d2);
      $diferenca_meses = 0;
      
      //Calcula o número de meses entre a data inicial e final
      while (($min_date = strtotime("+1 MONTH", $min_date)) <= $max_date) {
          $diferenca_meses++;
      }
      
      $ar_linhas = array('Fluxo de Caixa', 'Saldo Inicial', 'Receitas', 'Despesas', 'Lucro/Prejuizo', 'Acumulado', 'Lucratividade');
      $ar_meses = array(    'Janeiro&emsp;&emsp;&emsp;'
                          , 'Fevereiro&ensp;&ensp;&ensp;'
                          , 'Março&emsp;&emsp;&emsp;&ensp;'
                          , 'Abril&emsp;&emsp;&emsp;&ensp;&ensp;'
                          , 'Maio&emsp;&emsp;&emsp;&ensp;&ensp;'
                          , 'Junho&emsp;&emsp;&emsp;&ensp;'
                          , 'Julho&emsp;&emsp;&emsp;&ensp;'
                          , 'Agosto&emsp;&emsp;&emsp;'
                          , 'Setembro&ensp;&ensp;&ensp;'
                          , 'Outubro&emsp;&emsp;&emsp; '
                          , 'Novembro&ensp;&ensp;&ensp;'
                          , 'Dezembro&ensp;&ensp;&ensp;');
      
      $ar_colunas = array();
      
      $nr_mes_inicial = date("m", strtotime("$dt_inicio"));
      
      
      
      
      //Seta o mês inicial no array ds_meses para o mês correspondente da $dt_inicio
      while($ar_meses[$nr_mes_inicial-1] != current($ar_meses)){
          next($ar_meses);
      }
      $corrente = current($ar_meses);
      
      
      //Prencher o ar_meses com os meses que serão títulos das colunas
      $i = 0;
      $primeiro_loop = true;
      while($i <= $diferenca_meses+1){//Numero de meses em intervalos - Representa o número de colunas-1
          
      if($i == 0){
          //array_push($ar_colunas, next($ar_linhas));
      }else{
          $a = current($ar_meses);
          if($a == false or $a == 'Dezembro'){
              reset($ar_meses);
              $primeiro_loop = true;
          }
          if($primeiro_loop){
              array_push($ar_colunas, current($ar_meses));
              $primeiro_loop = false;
          }else{
              array_push($ar_colunas, next($ar_meses));
          }
      }
      $i++;
      }
      
      
      //Obtendo do banco os valores de receita e despesa
      //e cálculo de despesas, saldo e acumulado;
      $ar_saldo         = array();
      $ar_receitas      = array();
      $ar_despesas      = array();
      $ar_lucro         = array();
      $ar_acumulado     = array();
      $ar_lucratividade = array();
      
      
      //Obtem receitas e despesas do banco, pra cada mês entre a data inicial e final
      for($i = 0; $i <= $diferenca_meses; $i++){

          if($i == 0){
              array_push($ar_saldo, $vl_saldo_inicial);
          }else{
              array_push($ar_saldo, $ar_acumulado[$i-1]);
          }
          
          $sql_receita = "select sum(vl_saldo) as vl_receita from erpc_financeiro_lancamentos
                               where id_tipo_titulo = 1
                               and year(dt_vencimento) = '$nr_ano'
                               and month(dt_vencimento) = '$nr_mes'
                               and dt_vencimento between '$dt_inicio' and '$dt_fim 23:59'";
          
          $sql_despesa = "select sum(vl_saldo) as vl_despesa from erpc_financeiro_lancamentos
                               where id_tipo_titulo = 2
                               and year(dt_vencimento) = '$nr_ano'
                               and month(dt_vencimento) = '$nr_mes'
                               and dt_vencimento between '$dt_inicio' and '$dt_fim 23:59'";
          
          $resultado_receita = mysqli_query($conexao, $sql_receita);
          $resultado_despesa = mysqli_query($conexao, $sql_despesa);
          
          $vl_receita = 0;
          $vl_despesa = 0;
          
          // Insere no array os valores de RECEITA, despesa e lucro dos mêses entre as datas inicial e final
          if(mysqli_num_rows($resultado_receita)>0){
              while($receita = mysqli_fetch_assoc($resultado_receita)){
                  $vl_receita = $receita['vl_receita'];
                  array_push($ar_receitas, $vl_receita);
              }
          }else{
              array_push($ar_receitas, $vl_receita);
          }
          
          // Insere no array os valores de DESPESA
          if(mysqli_num_rows($resultado_despesa)>0){
              while($despesa = mysqli_fetch_assoc($resultado_despesa)){
                  $vl_despesa = $despesa['vl_despesa'];
                  array_push($ar_despesas, $vl_despesa);
              }
          }else{
              array_push($ar_despesas, $vl_despesa);
          }
          
          // Insere no array os valores de LUCRO
          array_push($ar_lucro, $vl_receita-$vl_despesa);
          
          // Insere no array os valores do ACUMULADO
          $vl_acumulado = (float)$ar_saldo[$i] + (float)($vl_receita-$vl_despesa);
          array_push($ar_acumulado, $vl_acumulado);
          
          // Insere no array os valores de LUCRATIVIDADE (Lucro em % = Lucro/100)
          array_push($ar_lucratividade, ($vl_receita-$vl_despesa));
          
          $nr_mes++; 
          if($nr_mes == 13){
              $nr_mes = 1;
              $nr_ano++;
          }
          
      }
      
      array_push($ar_colunas, 'TOTAL&emsp;&emsp;&emsp;&ensp;');
      array_push($ar_saldo, array_sum($ar_saldo));
      array_push($ar_receitas, array_sum($ar_receitas));
      array_push($ar_lucro, array_sum($ar_lucro));
      array_push($ar_acumulado, array_sum($ar_acumulado));
      array_push($ar_lucratividade, array_sum($ar_lucratividade));
      
      $ar_impressao =   array(  $ar_colunas
                                ,$ar_saldo
                                ,$ar_receitas
                                ,$ar_despesas
                                ,$ar_lucro
                                ,$ar_acumulado
                                ,$ar_lucratividade                        
                        );
      

      //APENAS após todo processamento que a impressão da tabela é realizada;
      
      //Laço com o número de Linhas   
      for($linha = 0; $linha < count($ar_linhas); $linha++){
          echo "<tr>";
          
          // Laço com o número de Colunas
          for($coluna = 0; $coluna < $diferenca_meses+3; $coluna++){
             
              if($coluna == 0){
                  echo "<th>$ar_linhas[$linha]</th>";
              }else{
                  if($linha == 0){
                      //Impressão do Table Head com o nome dos Meses
                      echo "<th>" . $ar_impressao[$linha][$coluna-1] . "</th>";
                  }elseif($linha == 6){
                      //A última linha é uma Porcentagem e não valor em R$
                      if($coluna <= 12 ){
                          echo "<td>" . $ar_impressao[$linha][$coluna-1] . "% </td>";
                      }
                  }else{
                      //Impressão das Informações obtidas
                      echo "<td>R$ " . number_format((float)$ar_impressao[$linha][$coluna-1], 2, ',', '.') . "</td>";
                  }
              }
          } 
          echo "</tr>";   
      }

     
      
      ?> 
      </table>
    </div> <!-- table-responsive -->
  </div> <!-- content -->
</div> <!-- block -->    



<div class="block">
  <div class="header">
    <h2>Despesas</h2>
  </div>
  <div class="content">
    <div class="table-responsive">
      <table class="table table-bordered table-striped table-responsible rolagem-horizontal" data-order-by="0">
      
        <!-- 
        Contas a Pagar
    
        Fluxo | Janeiro | Fevereiro ... | TOTAL
        Contas a Receber | R$ 5.000,00
        Contas a Pagar | R$ 2.800,00
        Necessidade de Caixa | R$ 2.200,00
        -->

	  <?php 
	  $ar_linhas_contas = array('Fluxo', 'Contas a Receber', 'Contas a Pagar', 'Necessidade de Caixa');
	  
	  $ar_necessidade_caixa = array();
	  
	  for( $i=0; $i < count($ar_receitas); $i++){
	      if ( $ar_receitas[$i] < $ar_despesas[$i]) {
	          array_push($ar_necessidade_caixa,  $ar_receitas[$i] - $ar_despesas[$i]);
	      }else{
	          array_push($ar_necessidade_caixa, 0);
	      }
	  }
	  
	  array_push($ar_colunas, 'TOTAL&emsp;&emsp;&emsp;&ensp;');
	  array_push($ar_receitas, array_sum($ar_receitas));
	  array_push($ar_despesas, array_sum($ar_despesas));
	  array_push($ar_necessidade_caixa, array_sum($ar_necessidade_caixa));
	  
	  $ar_contas_pagar = array( $ar_colunas
	                           ,$ar_receitas
	                           ,$ar_despesas
	                           ,$ar_necessidade_caixa
	  );

	  for($linha_contas = 0; $linha_contas < count($ar_contas_pagar); $linha_contas++){
	      echo "<tr>";
	      for($colunas_contas = 0; $colunas_contas <= $diferenca_meses+2; $colunas_contas++){
	          if($colunas_contas == 0){
	              //Impressão da Coluna de Títulos
	              echo "<th>$ar_linhas_contas[$linha_contas]</th>";
	          }else{
	              if($linha_contas == 0){
	                  //Impressão do Table Head com o nome dos Meses
	                  //echo "<th>" . $ar_impressao[$linha][$coluna-1] . "</th>";
	                  //echo "<th>" . $ar_contas_pagar[$linhas_contas][$colunas_contas-1] . "</th>";
	                  echo "<th>" . $ar_colunas[$colunas_contas-1] . "</th>";
	              }else{
	                  //Impressão das Informações
	                  echo "<td>R$ " . number_format($ar_contas_pagar[$linha_contas][$colunas_contas-1], 2, ',', '.') . "</td>";
	              }
	          }
	      }
	      echo "</tr>";	      
	  }
	  
	  ?>
	  
	  </table>
    </div> <!-- table-responsive -->
  </div> <!-- content -->
</div> <!-- block -->

<?php

// Configurações header para forçar o download
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header('Content-Type: text/html; charset=utf-8');
header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
header ("Content-type: application/x-msexcel");
header ("Content-Disposition: attachment; filename=\"Fluxo Caixa.xls\"" );
header ("Content-Description: PHP Generated Data" );

//echo $html;

//include 'footer.php';
?>

