<?php

session_start();
if (!isset($_SESSION['id'])) { header("Location: ../index/index.php"); exit(); }
// Inclui o seu arquivo de conexão
require_once '../configuracao/conexao.php';

// 1. Busca as contas para o select (reg_i050)
$sql_contas = "SELECT reg_i050_cod_cta, reg_i050_cta FROM reg_i050 WHERE reg_i050_ind_cta = 'A' ORDER BY reg_i050_cod_cta";
$res_contas = $mysqli->query($sql_contas);

// Variáveis de controle
$lancamentos = [];
$saldo_anterior = 0.00;
$conta_sel = $_GET['conta'] ?? '';
$data_ini = $_GET['inicio'] ?? '';
$data_fim = $_GET['fim'] ?? '';

if ($conta_sel && $data_ini && $data_fim) {
    
    // 2. Cálculo do Saldo Anterior (Soma tudo antes da data de início)
    // Como reg_i200_vl_lcto é varchar, tratamos a vírgula para ponto
    $sql_saldo = "SELECT SUM(REPLACE(reg_i200_vl_lcto, ',', '.')) as total 
                  FROM reg_i200 
                  WHERE reg_i200_dt_lcto < '$data_ini'";
    $res_saldo = $mysqli->query($sql_saldo);
    $row_saldo = $res_saldo->fetch_assoc();
    $saldo_anterior = (float)$row_saldo['total'];

    // 3. Busca lançamentos do período
    $sql_mov = "SELECT reg_i200_dt_lcto, reg_i200_num_lcto, reg_i200_vl_lcto, reg_i200_ind_lcto 
                FROM reg_i200 
                WHERE reg_i200_dt_lcto BETWEEN '$data_ini' AND '$data_fim' 
                ORDER BY reg_i200_dt_lcto ASC";
    $res_mov = $mysqli->query($sql_mov);
}
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title>Razão Contábil</title>
    <style>
        body { font-family: 'Segoe UI', Tahoma, sans-serif; background: #f4f7f6; padding: 30px; }
        .box { background: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); }
        h2 { color: #004a8e; margin-top: 0; }
        .filtros { display: flex; gap: 15px; margin-bottom: 25px; align-items: flex-end; padding: 15px; background: #eee; border-radius: 5px; }
        table { width: 100%; border-collapse: collapse; }
        th { background: #004a8e; color: white; padding: 10px; text-align: left; }
        td { padding: 10px; border-bottom: 1px solid #ddd; }
        .text-right { text-align: right; }
        .linha-saldo { background: #e3f2fd; font-weight: bold; }
    </style>
</head>
<body>

<div class="box">
    <h2>Razão Auxiliar</h2>

    <form class="filtros" method="GET">
        <div>
            <label>Conta:</label><br>
            <select name="conta" required>
                <option value="">Selecione...</option>
                <?php while($c = $res_contas->fetch_assoc()): ?>
                    <option value="<?= $c['reg_i050_cod_cta'] ?>" <?= $conta_sel == $c['reg_i050_cod_cta'] ? 'selected' : '' ?>>
                        <?= $c['reg_i050_cod_cta'] ?> - <?= $c['reg_i050_cta'] ?>
                    </option>
                <?php endwhile; ?>
            </select>
        </div>
        <div>
            <label>Início:</label><br>
            <input type="date" name="inicio" value="<?= $data_ini ?>" required>
        </div>
        <div>
            <label>Fim:</label><br>
            <input type="date" name="fim" value="<?= $data_fim ?>" required>
        </div>
        <button type="submit">Consultar</button>
    </form>

    <?php if ($conta_sel): ?>
    <table>
        <thead>
            <tr>
                <th>Data</th>
                <th>Lançamento</th>
                <th class="text-right">Débito</th>
                <th class="text-right">Crédito</th>
                <th class="text-right">Saldo</th>
            </tr>
        </thead>
        <tbody>
            <tr class="linha-saldo">
                <td colspan="4">SALDO ANTERIOR</td>
                <td class="text-right">R$ <?= number_format($saldo_anterior, 2, ',', '.') ?></td>
            </tr>

            <?php 
            $saldo_atual = $saldo_anterior;
            if($res_mov && $res_mov->num_rows > 0):
                while($l = $res_mov->fetch_assoc()): 
                    $valor = (float)str_replace(',', '.', $l['reg_i200_vl_lcto']);
                    
                    // Lógica básica: Se reg_i200_ind_lcto não define D/C,
                    // aqui somamos tudo ao débito para exemplo.
                    $saldo_atual += $valor; 
            ?>
            <tr>
                <td><?= date('d/m/Y', strtotime($l['reg_i200_dt_lcto'])) ?></td>
                <td><?= $l['reg_i200_num_lcto'] ?></td>
                <td class="text-right"><?= number_format($valor, 2, ',', '.') ?></td>
                <td class="text-right">0,00</td>
                <td class="text-right">R$ <?= number_format($saldo_atual, 2, ',', '.') ?></td>
            </tr>
            <?php 
                endwhile; 
            else:
            ?>
                <tr><td colspan="5">Nenhum movimento no período.</td></tr>
            <?php endif; ?>
        </tbody>
    </table>
    <?php endif; ?>
</div>

</body>
</html>