<?php
date_default_timezone_set('America/Sao_Paulo');
include_once('../config.php'); 
include_once('../header.php');

// LÓGICA DE BAIXA POR ITEM (DOIS CLIQUES)
if (isset($_GET['baixa_item']) && isset($_GET['id'])) {
    $col = mysqli_real_escape_string($conn, $_GET['baixa_item']);
    $id = intval($_GET['id']);
    
    // Inverte o sinal do valor específico daquela célula
    $sql = "UPDATE cartao_credito SET `$col` = `$col` * -1 WHERE id = $id AND `$col` <> 0";
    
    if($conn->query($sql)){ 
        echo "<script>window.location.href='exibir_cartao.php';</script>"; exit; 
    }
}

// LÓGICA DE BAIXA DO RESUMO (POR DONO)
if (isset($_GET['baixa']) && isset($_GET['dono'])) {
    $col = mysqli_real_escape_string($conn, $_GET['baixa']);
    $dono = mysqli_real_escape_string($conn, $_GET['dono']);
    $check = $conn->query("SELECT id FROM cartao_credito WHERE `$col` > 0 AND UPPER(dono) = '$dono' LIMIT 1");
    $sql = ($check && $check->num_rows > 0) ? 
        "UPDATE cartao_credito SET `$col` = ABS(`$col`) * -1 WHERE `$col` <> 0 AND UPPER(dono) = '$dono'" : 
        "UPDATE cartao_credito SET `$col` = ABS(`$col`) WHERE `$col` <> 0 AND UPPER(dono) = '$dono'";
    
    if($conn->query($sql)){ 
        echo "<script>window.location.href='exibir_cartao.php';</script>"; exit; 
    }
}

// BAIXA TOTAL DA COLUNA (AFETA TODOS OS CAMPOS)
if (isset($_GET['baixa_total'])) {
    $col = mysqli_real_escape_string($conn, $_GET['baixa_total']);
    // Verifica se existe algum pendente (>0) na coluna para decidir se marca tudo como pago ou limpa tudo
    $check_pendente = $conn->query("SELECT id FROM cartao_credito WHERE `$col` > 0 LIMIT 1");
    
    if ($check_pendente && $check_pendente->num_rows > 0) {
        // Se houver pendentes, transforma tudo o que for positivo em negativo (baixa total)
        $sql = "UPDATE cartao_credito SET `$col` = ABS(`$col`) * -1 WHERE `$col` <> 0";
    } else {
        // Se já estiver tudo pago, volta tudo para positivo (estorno total)
        $sql = "UPDATE cartao_credito SET `$col` = ABS(`$col`) WHERE `$col` <> 0";
    }

    if($conn->query($sql)){ 
        echo "<script>window.location.href='exibir_cartao.php';</script>"; exit; 
    }
}

if (isset($_GET['excluir'])) {
    $conn->query("DELETE FROM cartao_credito WHERE id = ".intval($_GET['excluir']));
    echo "<script>window.location.href='exibir_cartao.php';</script>"; exit;
}

$meses_db = ["jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "setem", "outu", "nov", "dez"];
$meses_nomes = ["JAN", "FEV", "MAR", "ABR", "MAI", "JUN", "JUL", "AGO", "SET", "OUT", "NOV", "DEZ"];
$query = $conn->query("SELECT * FROM cartao_credito ORDER BY id DESC");

$compra_ale = array_fill_keys($meses_db, 0); $compra_fran = array_fill_keys($meses_db, 0);
$status_ale = array_fill_keys($meses_db, ""); $status_fran = array_fill_keys($meses_db, "");
$dados = [];

// Variável para verificar se o mês todo está pago (para pintar a coluna)
$mes_todo_pago = array_fill_keys($meses_db, true);

if($query){
    while($row = $query->fetch_assoc()) {
        $dados[] = $row;
        $dono = strtoupper($row['dono']);
        foreach($meses_db as $m) {
            $v = floatval($row[$m]);
            if ($v > 0) { $mes_todo_pago[$m] = false; } 
            if ($v == 0) continue;
            if ($dono == 'ALEXANDRE') {
                $compra_ale[$m] += abs($v);
                if ($v > 0) $status_ale[$m] = "PENDENTE"; else $status_ale[$m] = "PAGO";
            } else {
                $compra_fran[$m] += abs($v);
                if ($v > 0) $status_fran[$m] = "PENDENTE"; else $status_fran[$m] = "PAGO";
            }
        }
    }
}
?>

<style>
    .excel-container { padding: 5px; font-family: 'Segoe UI', sans-serif; text-transform: uppercase; overflow-x: auto; }
    .excel-table { width: 100%; border-collapse: collapse; font-size: 8.5px; background: white; border: 1px solid #bbb; min-width: 1000px; }
    .excel-table th { background: #00569e; color: white; border: 1px solid #bbb; padding: 3px; }
    .excel-table td { border: 1px solid #ccc; text-align: center; padding: 1px; height: 22px; color: #000 !important; font-weight: bold !important; }
    .col-pendente { background-color: #FA8072 !important; }
    .col-paga { background-color: #00FA9A !important; }
    .fix-verde { background-color: #00FA9A !important; }
    .item-pago { background-color: #00FA9A !important; }
    .item-pendente { background-color: #FA8072 !important; }
</style>

<div class="excel-container">
    <div style="display: flex; justify-content: space-between; margin-bottom: 8px;">
        <h2 style="color: #00569e; font-size: 12px; margin: 0;">💳 DETALHAMENTO DE CARTÕES</h2>
        <a href="cadastrar_cartao.php" style="background:#00569e; color:white; padding:5px; text-decoration:none; font-size:10px; font-weight:bold;">➕ LANÇAR</a>
    </div>

    <table class="excel-table">
        <thead>
            <tr>
                <th style="width:150px;">DESCRIÇÃO</th>
                <th style="width:100px;">OBS</th>
                <th style="width:55px;">DONO</th>
                <th style="width:25px;">DIA</th>
                <th style="width:45px;">AÇÕES</th>
                <?php foreach($meses_nomes as $index => $m): 
                    $nome_db = $meses_db[$index];
                    $marcado = $mes_todo_pago[$nome_db] ? "checked" : "";
                ?> 
                    <th style="width:62px;">
                        <?php echo $m; ?><br>
                        <input type="checkbox" <?php echo $marcado; ?> onclick="if(confirm('MARCAR/DESMARCAR MÊS TODO?')) window.location.href='exibir_cartao.php?baixa_total=<?php echo $nome_db; ?>'">
                    </th> 
                <?php endforeach; ?>
            </tr>
            <tr style="background:#eee; font-weight:bold; color:#00569e;">
                <td colspan="4" style="text-align:right; padding-right:5px;">RESUMO ALEXANDRE:</td>
                <td></td>
                <?php foreach($meses_db as $m): 
                    $cl = ($status_ale[$m] == "PENDENTE") ? "col-pendente" : (($status_ale[$m] == "PAGO") ? "col-paga" : "");
                    if($mes_todo_pago[$m]) $cl .= " fix-verde";
                ?>
                <td class="<?php echo $cl; ?>" onclick="window.location.href='exibir_cartao.php?baixa=<?php echo $m; ?>&dono=ALEXANDRE'" style="cursor:pointer;"><?php echo ($compra_ale[$m]>0)?number_format($compra_ale[$m],2,',','.'):''; ?></td>
                <?php endforeach; ?>
            </tr>
            <tr style="background:#eee; font-weight:bold; color:#c2185b;">
                <td colspan="4" style="text-align:right; padding-right:5px;">RESUMO FRAN:</td>
                <td></td>
                <?php foreach($meses_db as $m): 
                    $cl = ($status_fran[$m] == "PENDENTE") ? "col-pendente" : (($status_fran[$m] == "PAGO") ? "col-paga" : "");
                    if($mes_todo_pago[$m]) $cl .= " fix-verde";
                ?>
                <td class="<?php echo $cl; ?>" onclick="window.location.href='exibir_cartao.php?baixa=<?php echo $m; ?>&dono=FRAN'" style="cursor:pointer;"><?php echo ($compra_fran[$m]>0)?number_format($compra_fran[$m],2,',','.'):''; ?></td>
                <?php endforeach; ?>
            </tr>
        </thead>
        <tbody>
            <?php foreach($dados as $d): 
                $dono_u = strtoupper($d['dono']);
            ?>
            <tr>
                <td style="text-align:left; padding-left:3px;"><?php echo $d['descricao']; ?></td>
                <td style="font-size:7px; color:#666;"><?php echo $d['observacao']; ?></td>
                <td><?php echo $d['dono']; ?></td>
                <td><?php echo str_pad($d['dia_vencimento'], 2, "0", STR_PAD_LEFT); ?></td>
                <td>
                    <a href="alterar_cartao.php?id=<?php echo $d['id']; ?>" style="color:#00569e;">ALT</a> |
                    <a href="exibir_cartao.php?excluir=<?php echo $d['id']; ?>" style="color:red;" onclick="return confirm('APAGAR?')">EXC</a>
                </td>
                <?php foreach($meses_db as $m): 
                    $v = floatval($d[$m]); 
                    $cor_item = "";
                    if ($v > 0) $cor_item = "item-pendente";
                    elseif ($v < 0) $cor_item = "item-pago";
                    
                    // Se o mês todo estiver marcado como pago, força o fundo verde na célula
                    if($mes_todo_pago[$m]) $cor_item .= " fix-verde";
                ?>
                <td class="<?php echo $cor_item; ?>" 
                    ondblclick="window.location.href='exibir_cartao.php?baixa_item=<?php echo $m; ?>&id=<?php echo $d['id']; ?>'" 
                    style="cursor:cell;">
                    <?php echo ($v != 0) ? number_format(abs($v), 2, ',', '.') : ''; ?>
                </td>
                <?php endforeach; ?>
            </tr>
            <?php endforeach; ?>
        </tbody>
    </table>
</div>