<?php
require '../conexao/conexao.php';
//require '../sessao.php';
require '../conexao/acesso.php';
require '../configuacoes.php';



$hoje = DateTime::createFromFormat('d-m-Y', '16-01-2024');
//$hoje = DateTime::createFromFormat('d-m-Y H:i', '22-09-2023 08:51');
//$hoje = new DateTime();
$hojeFormatado = $hoje->format('Y-m-d');
if ($hoje !== false) {
    //$hoje->setTime(0, 0, 0);
    // Continue com seu código
} else {
    echo "Formato de data inválido.";
    // Tratar o erro conforme necessário
}


$encontroualgumregistro = false;


//recuperando cidade combo filial
$query_cidade_filial = "SELECT DISTINCT MUNIC FROM FC01000 fc WHERE fc.cdfil IN (SELECT cdfil FROM fc15100)";
$result_cidade_filial = ibase_query($connection, $query_cidade_filial);

if (!$result_cidade_filial) {
    die('Erro na consulta: ' . ibase_errmsg());
}

$cidadefiliais = [];
while ($row = ibase_fetch_assoc($result_cidade_filial)) {
    $cidadefiliais[] = $row;
}



// $ano = $_GET['ano'] ?? null;
// $mes = $_GET['mes'] ?? null;
//$ano = date('Y'); // Obtém o ano atual com 4 dígitos (ex: 2024)
//$mes = date('n'); // Obtém o mês atual sem zeros à esquerda (ex: 2 para fevereiro)
$ano = '2024';
$mes = '1';
$cidade = $_GET['cidade'] ?? null;
$filial = $_GET['filial'] ?? null;
$etapa = $_GET['etapa'] ?? null;
$requisicao = $_GET['requisicao'] ?? null;
$paciente = $_GET['paciente'] ?? null;
$cliente = $_GET['cliente'] ?? null;




if (isset($_GET['pesquisar'])) {


    // Função para criar a consulta SQL com base no operador de comparação
    function criarConsulta($operador, $hojeFormatado, $ano, $mes, $filial, $etapa, $requisicao, $paciente, $cliente)
    {
        $query = "SELECT
      selecao.*,
      CASE selecao.etapa
          WHEN 1001 THEN 'Inclusão'
          WHEN 2002 THEN 'Conferência Inicial'
          WHEN 3003 THEN 'Sólidos'
          WHEN 3004 THEN 'Semi Sólidos'
          WHEN 4005 THEN 'Encapsulação'
          WHEN 4006 THEN 'Envelopes'
          WHEN 5007 THEN 'Conferência Final'
          WHEN 6008 THEN 'Dispensação'
          WHEN 6009 THEN 'Logística'
          WHEN 7010 THEN 'Entrega Cliente'
          ELSE 'Outra Etapa' 
      END AS descricao_etapa
    FROM
      (
        SELECT MAX(CAST(etp.posicao || pcp.cdetapa AS NUMERIC)) AS etapa, 
               CAST(r.dtret AS VARCHAR(10)) || ' ' || CAST(r.hrret AS VARCHAR(15)) AS data_hora, 
               r.cdfil as filial, 
               r.NOMEPA as nome_paciente,
               r.CDCLI AS codigo_cliente,
               cli.NOMECLI AS nome_cliente,
               r.cdfild as filial_destino, 
               r.nrrqu as requisicao, 
               r.serier as formula, 
               r.dtret as data_retirada, 
               r.hrret as hora_retirada 
        FROM fc12500 pcp
        INNER JOIN fc12100 r ON r.cdfil = pcp.cdfil AND r.nrrqu = pcp.nrrqu AND r.serier = pcp.serier
        INNER JOIN fc12540 etp ON pcp.cdetapa = etp.cdetapa
        LEFT JOIN FC07000 cli ON r.CDCLI = cli.CDCLI AND r.CDCLI IS NOT NULL
        WHERE  pcp.cdetapa = etp.cdetapa AND
              CAST(r.dtret AS DATE) $operador '$hojeFormatado' AND
              r.cdfil = pcp.cdfil AND
              r.nrrqu = pcp.nrrqu AND
              r.serier = pcp.serier";

        if ($ano && $ano != "Selecione") {
            $query .= " AND EXTRACT(YEAR FROM r.dtret) = " . intval($ano);
        }
        if ($mes && $mes != "Selecione") {
            $query .= " AND EXTRACT(MONTH FROM r.dtret) = " . intval($mes);
        }

        if ($filial && $filial != "Todos") {
            $query .= " AND r.cdfile = " . intval($filial);
        }

        /* if ($etapa && $etapa != "Selecione") {
        $query .= " AND etp.posicao || pcp.cdetapa = '" . $etapa . "'";
    } */

        if ($requisicao != null) {
            $query .= " AND r.nrrqu LIKE '%" . $requisicao . "%'";
        }

        if ($paciente != null) {
            $pacienteMaiusculo = strtoupper($paciente);
            $query .= " AND r.NOMEPA LIKE '" . $pacienteMaiusculo . "%'";
        }

        if ($cliente != null) {
            $clienteMaiusculo = strtoupper($cliente);
            $query .= " AND cli.NOMECLI LIKE '" . $clienteMaiusculo . "%'";
        }

        $query .= " GROUP BY 
                r.cdfil, r.cdfild, r.nrrqu, r.serier, r.dtret, r.hrret, r.NOMEPA, r.CDCLI, cli.NOMECLI
      ) selecao";

        if ($etapa && $etapa != "Selecione") {
            $query .= " WHERE selecao.etapa = '" . $etapa . "'";
        }
        if ($operador === ">" || $operador === ">=") {
            $query .= " ORDER BY selecao.data_hora";
        } else {
            $query .= " ORDER BY selecao.data_hora DESC";
        }

        return $query;
    }


    // Use a função para criar as consultas
    $queryAtual = criarConsulta("=", $hojeFormatado, $ano, $mes, $filial, $etapa, $requisicao, $paciente, $cliente);
    $queryAnterior = criarConsulta("<", $hojeFormatado, $ano, $mes, $filial, $etapa, $requisicao, $paciente, $cliente);

    // Calcular a data do dia seguinte
    $dataSeguinte = date('Y-m-d', strtotime($hojeFormatado . ' + 1 day'));

    // Use a função para criar a consulta do dia seguinte
    $querySeguinte = criarConsulta("=", $dataSeguinte, $ano, $mes, $filial, $etapa, $requisicao, $paciente, $cliente);

    // Calcular a data do dia seguinte
    $dataSuperior = date('Y-m-d', strtotime($hojeFormatado . ' + 2 day'));
    $querySuperior = criarConsulta(">=", $dataSuperior, $ano, $mes, $filial, $etapa, $requisicao, $paciente, $cliente);

    //echo $queryAtual;
    // Execute as consultas e obtenha os resultados
    $resultETAPA = ibase_query($connection, $queryAtual);
    $resultETAPAAnterior = ibase_query($connection, $queryAnterior);
    $resultETAPASeguinte  = ibase_query($connection, $querySeguinte);
    $resultETAPASuperior  = ibase_query($connection, $querySuperior);

    //echo $querySuperior;

    if (!$resultETAPA || !$resultETAPAAnterior || !$resultETAPASuperior || !$resultETAPASeguinte) {
        die('Erro na consulta: ' . $resultETAPA . ' - ' . ibase_errmsg());
    }
}


?>

<!DOCTYPE html>
<html lang="pt-br">

<style>
    /* Outros estilos */

    .dataTables_length {
        float: left;
        /* Alinha o seletor de registros por página à esquerda */
    }

    .dataTables_filter {
        float: right;
        /* Alinha o campo de busca à direita */
        text-align: right;
        /* Alinha o texto dentro da busca à direita */
    }

    .dataTables_info {
        float: left;
        /* Alinha a informação de paginação à esquerda */
    }



    /* Mais estilos */
</style>



<?php
$pageTitle = "PCP - Monitoramento"; // Definir o título da página aqui
include('../geral/header.php');
?>


<body>

    <!-- Navigation Bar-->
    <?php
    include('../geral/menu.php');
    ?>
    <!-- End Navigation Bar-->

    <!-- ============================================================== -->
    <!-- Start Page Content here -->
    <!-- ============================================================== -->

    <div class="wrapper candidato">
        <div class="container-fluid">

            <div class="card-box mt-3">
                <div class="row align-items-center">

                    <div class="col-12">
                        <form method="get" action="painel_monitoramento.php" id="indexForm">
                            <h3>Painel de Monitoramento</h3>
                    </div>

                    <div class="col-4">
                        <label for="cidade" class="col-form-label">Cidade:</label>
                        <select id="cidade" name="cidade" class="form-control">
                            <option value="Todos" <?php echo (!isset($cidade) || $cidade == "Todos") ? "selected" : ""; ?>>Todos</option>
                            <?php foreach ($cidadefiliais as $item) : ?>
                                <option value="<?php echo $item['MUNIC']; ?>" <?php echo (isset($cidade) && $cidade == $item['MUNIC']) ? "selected" : ""; ?>>
                                    <?php echo $item['MUNIC']; ?>
                                </option>
                            <?php endforeach; ?>
                        </select>
                    </div>

                    <?php
                    // Verifica se uma filial foi selecionada anteriormente e define o valor padrão
                    $filialSelecionada = isset($_COOKIE['filialSelecionada']) ? $_COOKIE['filialSelecionada'] : 'Todos';

                    echo '<div class="col-4">';
                    echo '<label for="filial" class="col-form-label">Filial:</label>';
                    echo '<select id="filial" name="filial" class="form-control">';

                    // Adiciona a opção "Todos"
                    echo '<option value="Todos"' . ($filialSelecionada == "Todos" ? ' selected' : '') . '>Todos</option>';

                    foreach ($filiais as $item) {
                        // Verifica se esta filial foi selecionada anteriormente
                        $selected = ($filialSelecionada == $item['CDFIL']) ? ' selected' : '';
                        echo '<option value="' . $item['CDFIL'] . '"' . $selected . '>Filial ' . $item['CDFIL'] . '</option>';
                    }

                    echo '</select>';
                    echo '</div>';
                    ?>





                    <div class="col-2">
                        <label for="etapa" class="col-form-label">Etapa:</label>
                        <select name="etapa" id="etapa" class="form-control">
                            <option value="Selecione" <?php echo (isset($etapa) && $etapa == "Selecione") ? "selected" : ""; ?>>Selecione</option>
                            <option value="1001" <?php echo (isset($etapa) && $etapa == "1001") ? "selected" : ""; ?>>Inclusão</option>
                            <option value="2002" <?php echo (isset($etapa) && $etapa == "2002") ? "selected" : ""; ?>>Conferência Inicial</option>
                            <option value="3003" <?php echo (isset($etapa) && $etapa == "3003") ? "selected" : ""; ?>>Sólidos</option>
                            <option value="3004" <?php echo (isset($etapa) && $etapa == "3004") ? "selected" : ""; ?>>Semi Sólidos</option>
                            <option value="4005" <?php echo (isset($etapa) && $etapa == "4005") ? "selected" : ""; ?>>Encapsulação</option>
                            <option value="4006" <?php echo (isset($etapa) && $etapa == "4006") ? "selected" : ""; ?>>Envelopes</option>
                            <option value="5007" <?php echo (isset($etapa) && $etapa == "5007") ? "selected" : ""; ?>>Conferência Final</option>
                            <option value="6008" <?php echo (isset($etapa) && $etapa == "6008") ? "selected" : ""; ?>>Dispensação</option>
                            <option value="6009" <?php echo (isset($etapa) && $etapa == "6009") ? "selected" : ""; ?>>Logística</option>
                            <option value="7010" <?php echo (isset($etapa) && $etapa == "7010") ? "selected" : ""; ?>>Entrega Cliente</option>
                        </select>
                    </div>

                    <div class="col-2">
                        <label for="requisicao" class="col-form-label">Requisição</label>
                        <input type="text" class="form-control" id="requisicao" name="requisicao" placeholder="Requisição" value="<?php echo isset($requisicao) ? htmlspecialchars($requisicao) : ''; ?>">

                    </div>
                    <div class="col-2">
                        <label for="paciente" class="col-form-label">Paciente</label>
                        <input type="text" class="form-control" id="paciente" name="paciente" placeholder="Paciente" value="<?php echo isset($paciente) ? htmlspecialchars($paciente) : ''; ?>">

                    </div>
                    <div class="col-2">
                        <label for="cliente" class="col-form-label">Cliente</label>
                        <input type="text" class="form-control" id="cliente" name="cliente" placeholder="Cliente" value="<?php echo isset($cliente) ? htmlspecialchars($cliente) : ''; ?>">

                    </div>


                    <div class="col-12 text-right mt-3">
                        <a href="painel_monitoramento.php" class="btn btn-warning mr-2"><i class="mdi mdi-plus"></i> Limpar</a>
                        <button name="pesquisar" class="btn btn-primary" type="submit">Pesquisar</button>
                    </div>
                    </form>
                </div>
            </div>
            <?php if (isset($_GET['pesquisar'])) { ?>
                <div class="card-box mt-3">
                    <div class="row align-items-center">

                        <div class="col-12 text-center">

                            <div class="col-12 text-center">
                                <!-- <a href="<?php ?>" class="badge badge-pill badge-secondary mb-4" style="font-size:1.5rem;">Rio Verde</a> -->
                                <h6>Lista de Fórmulas (hoje <?php echo $hoje->format('d-m-Y H:i') ?>)</h6>


                            </div>



                            <div class="card">
                                <div class="card-body">
                                    <!-- <h4 class="header-title mb-4">Default Tabs</h4> -->

                                    <ul class="nav nav-tabs">
                                        <li class="nav-item">
                                            <a href="#antes" data-bs-toggle="tab" aria-expanded="false" class="nav-link">
                                                Anteriores a Hoje
                                            </a>
                                        </li>
                                        <li class="nav-item">
                                            <a href="#hoje" data-bs-toggle="tab" aria-expanded="true" class="nav-link active">
                                                Hoje
                                            </a>
                                        </li>
                                        <li class="nav-item">
                                            <a href="#amanha" data-bs-toggle="tab" aria-expanded="false" class="nav-link">
                                                Amanhã
                                            </a>
                                        </li>
                                        <li class="nav-item">
                                            <a href="#futuro" data-bs-toggle="tab" aria-expanded="false" class="nav-link">
                                                Depois de Amanhã
                                            </a>
                                        </li>
                                    </ul>
                                    <div class="tab-content">
                                        <div class="tab-pane" id="antes">

                                            <table id="minhaTabela" class="table table-bordered table-hover table-sm">
                                                <thead class="thead-light">
                                                    <tr>
                                                        <th scope="col">Cliente</th>
                                                        <th scope="col">Requisição</th>
                                                        <th scope="col">Filial</th>
                                                        <th scope="col">Fórmula</th>
                                                        <th scope="col">Filial Destino</th>
                                                        <th scope="col">Data Retirada</th>
                                                        <th scope="col">Hora Retirada</th>
                                                        <th scope="col">Descrição Etapa</th>
                                                    </tr>
                                                </thead>
                                                <tbody>
                                                    <?php

                                                    $now = new DateTime();


                                                    $hasResults = false;
                                                    $etapasList = [
                                                        'Inclusão',
                                                        'Conferência Inicial',
                                                        'Sólidos',
                                                        'Semi Sólidos',
                                                        'Encapsulação',
                                                        'Envelopes',
                                                        'Conferência Final',
                                                        'Dispensação',
                                                        'Logística',
                                                        'Entrega Cliente'
                                                    ];
                                                    $contagemEtapas = array_fill_keys($etapasList, 0);

                                                    while ($row = ibase_fetch_assoc($resultETAPAAnterior)) {
                                                        $encontroualgumregistro = true;
                                                        $hasResults = true;

                                                        $row['NOME_CLIENTE'] = mb_convert_encoding($row['NOME_CLIENTE'], 'UTF-8', 'ISO-8859-1');


                                                        $dataHoraRetirada = DateTime::createFromFormat('Y-m-d H:i:s', $row['DATA_RETIRADA'] . ' ' . $row['HORA_RETIRADA']);

                                                        if ($dataHoraRetirada) {
                                                            $etapaNormalizada = trim($row['DESCRICAO_ETAPA']);
                                                            if (isset($contagemEtapas[$etapaNormalizada])) {
                                                                $contagemEtapas[$etapaNormalizada]++;
                                                            }
                                                        }

                                                        $intervalo = $hoje->diff($dataHoraRetirada);
                                                        $diferencaHoras = ($intervalo->days * 24) + $intervalo->h + ($intervalo->i / 60) + ($intervalo->s / 3600);
                                                        $style = '';

                                                        if ((strcasecmp($etapaNormalizada, "dispensação") !== 0 && strcasecmp($etapaNormalizada, "entrega cliente") !== 0) && $diferencaHoras >= 24) {
                                                            $style = 'style="color: red;"';
                                                        }

                                                        // Exibindo os dados na tabela
                                                    ?>
                                                        <tr>
                                                            <td>
                                                                <?= !empty($row['NOME_CLIENTE']) ? $row['NOME_CLIENTE'] : ('<strong>Paciente:</strong> ' . $row['NOME_PACIENTE']) ?>
                                                            </td>
                                                            <td <?= $style ?>>
                                                                <a href="#" class="open-modal-link" data-bs-toggle="modal" data-bs-target="#standard-modal" data-requisicao="<?= htmlspecialchars($row['REQUISICAO']) ?>">
                                                                    <?= htmlspecialchars($row['REQUISICAO']) ?>
                                                                </a>
                                                            </td>
                                                            <td><?= htmlspecialchars($row['FILIAL']) ?></td>
                                                            <td><?= htmlspecialchars($row['FORMULA']) ?></td>
                                                            <td><?= htmlspecialchars($row['FILIAL_DESTINO']) ?></td>
                                                            <td <?= $style ?>><?= htmlspecialchars($row['DATA_RETIRADA']) ?></td>
                                                            <td <?= $style ?>><?= htmlspecialchars($row['HORA_RETIRADA']) ?></td>
                                                            <td><?= htmlspecialchars($row['DESCRICAO_ETAPA']) ?></td>
                                                        </tr>
                                                    <?php
                                                    }



                                                    if (!$hasResults) {
                                                        // Código para lidar com o caso de não haver resultados
                                                        echo "<tr><td colspan='8'>Nenhum registro encontrado para anteriores a hoje.</td></tr>";
                                                    }

                                                    ?>
                                                </tbody>
                                            </table>

                                            <?php
                                            if ($hasResults) {
                                            ?>
                                                <h6>QUADRO RESUMO</h6>

                                                <table class="table table-striped table-bordered dt-responsive nowrap">
                                                    <thead>
                                                        <tr>
                                                            <th>Etapas</th>
                                                            <th><strong>TOTAL</strong></th>
                                                        </tr>
                                                    </thead>
                                                    <tbody>
                                                        <?php
                                                        $totalGeral = 0;
                                                        foreach ($etapasList as $etapa) {
                                                            $totalPorEtapa = $contagemEtapas[$etapa];
                                                            echo "<tr><td>{$etapa}</td><td>{$totalPorEtapa}</td></tr>";
                                                            $totalGeral += $totalPorEtapa;
                                                        }
                                                        ?>
                                                    </tbody>
                                                    <tfoot>
                                                        <tr>
                                                            <td><strong>TOTAL</strong></td>
                                                            <td><strong><?php echo $totalGeral; ?></strong></td>
                                                        </tr>
                                                    </tfoot>
                                                </table>
                                            <?php
                                            }
                                            ?>

                                        </div>
                                        <div class="tab-pane show active" id="hoje">


                                            <table id="minhaTabela1" class="table table-bordered table-hover table-sm">
                                                <thead class="thead-light">
                                                    <tr>
                                                        <th scope="col">Cliente</th>
                                                        <th scope="col">Requisição</th>
                                                        <th scope="col">Filial</th>


                                                        <th scope="col">Fórmula</th>
                                                        <th scope="col">Filial Destino</th>
                                                        <th scope="col">Data Retirada</th>
                                                        <th scope="col">Hora Retirada</th>
                                                        <th scope="col">Descrição Etapa</th>
                                                    </tr>
                                                </thead>
                                                <tbody>
                                                    <?php
                                                    $hasResults = false;
                                                    //    $hoje = new DateTime(); // Data atual sem tempo
                                                    //  $hoje->setTime(0, 0, 0); // Zera a hora para comparar apenas a data

                                                    // $hoje = DateTime::createFromFormat('d-m-Y', '22-09-2023');
                                                    // $hoje = DateTime::createFromFormat('d-m-Y H:i', '22-09-2023 10:43');

                                                    $totalPorHora = array_fill_keys(range(8, 17), 0); // Define o array com chaves de 8 a 17, todas com valor inicial 0.


                                                    $etapasList = [
                                                        'Inclusão',
                                                        'Conferência Inicial',
                                                        'Sólidos',
                                                        'Semi Sólidos',
                                                        'Encapsulação',
                                                        'Envelopes',
                                                        'Conferência Final',
                                                        'Dispensação',
                                                        'Logística',
                                                        'Entrega Cliente'
                                                    ];
                                                    $horasList = range(8, 17); // De 8h a 18h, contando até a hora 17:59.
                                                    $contagemEtapas = array_fill_keys($etapasList, array_fill_keys($horasList, 0));

                                                    while ($row = ibase_fetch_assoc($resultETAPA)) {

                                                        $row['NOME_CLIENTE'] = mb_convert_encoding($row['NOME_CLIENTE'], 'UTF-8', 'ISO-8859-1');

                                                        $encontroualgumregistro = true;
                                                        $hasResults = true;

                                                        $dataHoraRetirada = DateTime::createFromFormat('Y-m-d H:i:s', $row['DATA_RETIRADA'] . ' ' . $row['HORA_RETIRADA']);

                                                        if ($dataHoraRetirada) {
                                                            $hora = (int)$dataHoraRetirada->format('H');

                                                            // Use a descrição da etapa para incrementar o contador apropriado.
                                                            $etapaNormalizada = trim($row['DESCRICAO_ETAPA']);

                                                            // Verifica se a etapa está na lista e incrementa a contagem
                                                            if (isset($contagemEtapas[$etapaNormalizada]) && isset($contagemEtapas[$etapaNormalizada][$hora])) {
                                                                $contagemEtapas[$etapaNormalizada][$hora]++;
                                                            }
                                                        }




                                                        $intervalo = $hoje->diff($dataHoraRetirada);

                                                        // Calcula a diferença total em horas, incluindo dias, horas, minutos e segundos
                                                        $diferencaHoras = ($intervalo->days * 24) + $intervalo->h;
                                                        $diferencaHoras += ($intervalo->i / 60) + ($intervalo->s / 3600);

                                                        $style = '';
                                                        $etapaNormalizada = strtolower(trim($row['DESCRICAO_ETAPA']));


                                                        if ((strcasecmp($etapaNormalizada, "dispensação") !== 0 && strcasecmp($etapaNormalizada, "entrega cliente") !== 0)) {
                                                            $style = 'style="color: orange;"';
                                                        }



                                                        if ((strcasecmp($etapaNormalizada, "dispensação") !== 0 && strcasecmp($etapaNormalizada, "entrega cliente") !== 0) && $diferencaHoras > 2) {
                                                            $style = 'style="color: red;"';
                                                        }

                                                    ?>
                                                        <tr>
                                                            <td>
                                                                <?= !empty($row['NOME_CLIENTE']) ? $row['NOME_CLIENTE'] : ('<strong>Paciente:</strong> ' . $row['NOME_PACIENTE']) ?>
                                                            </td>


                                                            <td <?= $style ?>>
                                                                <a href="#" class="open-modal-link" data-bs-toggle="modal" data-bs-target="#standard-modal" data-requisicao="<?= htmlspecialchars($row['REQUISICAO']) ?>">
                                                                    <?= htmlspecialchars($row['REQUISICAO']) ?>
                                                                </a>
                                                            </td>


                                                            <td><?= htmlspecialchars($row['FILIAL']) ?></td>


                                                            <td><?= htmlspecialchars($row['FORMULA']) ?></td>
                                                            <td><?= htmlspecialchars($row['FILIAL_DESTINO']) ?></td>
                                                            <td <?= $style ?>><?= htmlspecialchars($row['DATA_RETIRADA']) ?> </td>
                                                            <td <?= $style ?>><?= htmlspecialchars($row['HORA_RETIRADA']) ?> </td>
                                                            <td><?= htmlspecialchars($row['DESCRICAO_ETAPA']) ?></td>
                                                        </tr>
                                                    <?php
                                                    }



                                                    if (!$hasResults) {
                                                        // Código para lidar com o caso de não haver resultados
                                                        echo "<tr><td colspan='8'>Nenhum registro encontrado para hoje.</td></tr>";
                                                    }

                                                    ?>
                                                </tbody>
                                            </table>
                                            <?php
                                            if ($hasResults) {
                                            ?>
                                                <h6>QUADRO RESUMO</h6>
                                            <?php


                                                echo '<table class="table table-striped table-bordered dt-responsive nowrap">';
                                                echo '<thead><tr><th>Etapas</th>';

                                                // Imprime os cabeçalhos das horas
                                                foreach ($horasList as $hora) {
                                                    echo "<th>{$hora}:00 - " . str_pad($hora + 1, 2, '0', STR_PAD_LEFT) . ":59</th>";
                                                }
                                                echo '<th><strong>TOTAL</strong></th></tr></thead>';
                                                echo '<tbody>';

                                                // Imprime as linhas das etapas e seus totais
                                                foreach ($etapasList as $etapa) {
                                                    echo "<tr><td><strong>{$etapa}</strong></td>";
                                                    $totalPorEtapa = 0;
                                                    foreach ($horasList as $hora) {
                                                        $quantidade = $contagemEtapas[$etapa][$hora];
                                                        echo "<td>{$quantidade}</td>";
                                                        $totalPorEtapa += $quantidade;
                                                        $totalPorHora[$hora] += $quantidade; // Isto deve ser feito no while, não aqui.
                                                    }
                                                    echo "<td><strong>{$totalPorEtapa}</strong></td></tr>";
                                                }
                                                echo '</tbody>';

                                                // Total por hora
                                                echo '<tfoot><tr><td><strong>TOTAL</strong></td>';
                                                $totalGeral = 0;
                                                foreach ($totalPorHora as $total) {
                                                    echo "<td><strong>{$total}</strong></td>";
                                                    $totalGeral += $total; // Acumula o total geral
                                                }
                                                echo "<td><strong>{$totalGeral}</strong></td></tr></tfoot>";
                                                echo '</table>';
                                            }
                                            ?>

                                        </div>


                                        <div class="tab-pane" id="amanha">


                                            <table id="minhaTabela3" class="table table-bordered table-hover table-sm">
                                                <thead class="thead-light">
                                                    <tr>
                                                        <th scope="col">Cliente</th>
                                                        <th scope="col">Requisição</th>
                                                        <th scope="col">Filial</th>


                                                        <th scope="col">Fórmula</th>
                                                        <th scope="col">Filial Destino</th>
                                                        <th scope="col">Data Retirada</th>
                                                        <th scope="col">Hora Retirada</th>
                                                        <th scope="col">Descrição Etapa</th>
                                                    </tr>
                                                </thead>
                                                <tbody>
                                                    <?php
                                                    $hasResults = false;
                                                    //    $hoje = new DateTime(); // Data atual sem tempo
                                                    //  $hoje->setTime(0, 0, 0); // Zera a hora para comparar apenas a data

                                                    // $hoje = DateTime::createFromFormat('d-m-Y', '22-09-2023');
                                                    // $hoje = DateTime::createFromFormat('d-m-Y H:i', '22-09-2023 10:43');

                                                    $totalPorHora = array_fill_keys(range(8, 17), 0); // Define o array com chaves de 8 a 17, todas com valor inicial 0.


                                                    $etapasList = [
                                                        'Inclusão',
                                                        'Conferência Inicial',
                                                        'Sólidos',
                                                        'Semi Sólidos',
                                                        'Encapsulação',
                                                        'Envelopes',
                                                        'Conferência Final',
                                                        'Dispensação',
                                                        'Logística',
                                                        'Entrega Cliente'
                                                    ];
                                                    $horasList = range(8, 17); // De 8h a 18h, contando até a hora 17:59.
                                                    $contagemEtapas = array_fill_keys($etapasList, array_fill_keys($horasList, 0));

                                                    while ($row = ibase_fetch_assoc($resultETAPASeguinte)) {
                                                        $encontroualgumregistro = true;
                                                        $hasResults = true;

                                                        $row['NOME_CLIENTE'] = mb_convert_encoding($row['NOME_CLIENTE'], 'UTF-8', 'ISO-8859-1');

                                                        $dataHoraRetirada = DateTime::createFromFormat('Y-m-d H:i:s', $row['DATA_RETIRADA'] . ' ' . $row['HORA_RETIRADA']);

                                                        if ($dataHoraRetirada) {
                                                            $hora = (int)$dataHoraRetirada->format('H');

                                                            // Use a descrição da etapa para incrementar o contador apropriado.
                                                            $etapaNormalizada = trim($row['DESCRICAO_ETAPA']);

                                                            // Verifica se a etapa está na lista e incrementa a contagem
                                                            if (isset($contagemEtapas[$etapaNormalizada]) && isset($contagemEtapas[$etapaNormalizada][$hora])) {
                                                                $contagemEtapas[$etapaNormalizada][$hora]++;
                                                            }
                                                        }




                                                        $intervalo = $hoje->diff($dataHoraRetirada);

                                                        // Calcula a diferença total em horas, incluindo dias, horas, minutos e segundos
                                                        $diferencaHoras = ($intervalo->days * 24) + $intervalo->h;
                                                        $diferencaHoras += ($intervalo->i / 60) + ($intervalo->s / 3600);

                                                        $style = '';
                                                        $etapaNormalizada = strtolower(trim($row['DESCRICAO_ETAPA']));

                                                        if ((strcasecmp($etapaNormalizada, "dispensação") !== 0 && strcasecmp($etapaNormalizada, "entrega cliente") !== 0) && $diferencaHoras < 24) {
                                                            $style = 'style="color: red;"';
                                                        }

                                                    ?>
                                                        <tr>
                                                            <td>
                                                                <?= !empty($row['NOME_CLIENTE']) ? $row['NOME_CLIENTE'] : ('<strong>Paciente:</strong> ' . $row['NOME_PACIENTE']) ?>
                                                            </td>
                                                            <td <?= $style ?>>
                                                                <a href="#" class="open-modal-link" data-bs-toggle="modal" data-bs-target="#standard-modal" data-requisicao="<?= htmlspecialchars($row['REQUISICAO']) ?>">
                                                                    <?= htmlspecialchars($row['REQUISICAO']) ?>
                                                                </a>
                                                            </td>


                                                            <td><?= htmlspecialchars($row['FILIAL']) ?></td>


                                                            <td><?= htmlspecialchars($row['FORMULA']) ?></td>
                                                            <td><?= htmlspecialchars($row['FILIAL_DESTINO']) ?></td>
                                                            <td <?= $style ?>><?= htmlspecialchars($row['DATA_RETIRADA']) ?> </td>
                                                            <td <?= $style ?>><?= htmlspecialchars($row['HORA_RETIRADA']) ?> </td>
                                                            <td><?= htmlspecialchars($row['DESCRICAO_ETAPA']) ?></td>
                                                        </tr>
                                                    <?php
                                                    }



                                                    if (!$hasResults) {
                                                        // Código para lidar com o caso de não haver resultados
                                                        echo "<tr><td colspan='8'>Nenhum registro encontrado para amanhã.</td></tr>";
                                                    }

                                                    ?>
                                                </tbody>
                                            </table>
                                            <?php
                                            if ($hasResults) {
                                            ?>
                                                <h6>QUADRO RESUMO</h6>
                                            <?php


                                                echo '<table class="table table-striped table-bordered dt-responsive nowrap">';
                                                echo '<thead><tr><th>Etapas</th>';

                                                // Imprime os cabeçalhos das horas
                                                foreach ($horasList as $hora) {
                                                    echo "<th>{$hora}:00 - " . str_pad($hora + 1, 2, '0', STR_PAD_LEFT) . ":59</th>";
                                                }
                                                echo '<th><strong>TOTAL</strong></th></tr></thead>';
                                                echo '<tbody>';

                                                // Imprime as linhas das etapas e seus totais
                                                foreach ($etapasList as $etapa) {
                                                    echo "<tr><td><strong>{$etapa}</strong></td>";
                                                    $totalPorEtapa = 0;
                                                    foreach ($horasList as $hora) {
                                                        $quantidade = $contagemEtapas[$etapa][$hora];
                                                        echo "<td>{$quantidade}</td>";
                                                        $totalPorEtapa += $quantidade;
                                                        $totalPorHora[$hora] += $quantidade; // Isto deve ser feito no while, não aqui.
                                                    }
                                                    echo "<td><strong>{$totalPorEtapa}</strong></td></tr>";
                                                }
                                                echo '</tbody>';

                                                // Total por hora
                                                echo '<tfoot><tr><td><strong>TOTAL</strong></td>';
                                                $totalGeral = 0;
                                                foreach ($totalPorHora as $total) {
                                                    echo "<td><strong>{$total}</strong></td>";
                                                    $totalGeral += $total; // Acumula o total geral
                                                }
                                                echo "<td><strong>{$totalGeral}</strong></td></tr></tfoot>";
                                                echo '</table>';
                                            }
                                            ?>




                                        </div>
                                        <div class="tab-pane" id="futuro">

                                            <table id="minhaTabela2" class="table table-bordered table-hover table-sm">
                                                <thead class="thead-light">
                                                    <tr>
                                                        <th scope="col">Cliente</th>
                                                        <th scope="col">Requisição</th>
                                                        <th scope="col">Filial</th>
                                                        <th scope="col">Fórmula</th>
                                                        <th scope="col">Filial Destino</th>
                                                        <th scope="col">Etapa</th>
                                                        <th scope="col">Data Retirada</th>
                                                        <th scope="col">Hora Retirada</th>
                                                        <th scope="col">Descrição Etapa</th>
                                                    </tr>
                                                </thead>
                                                <tbody>
                                                    <?php
                                                    $hasResults = false;
                                                    //   $hoje = new DateTime(); // Data atual
                                                    //   $hoje->setTime(0, 0, 0); // Zera a hora para comparar apenas a data

                                                    $etapasList = [
                                                        'Inclusão',
                                                        'Conferência Inicial',
                                                        'Sólidos',
                                                        'Semi Sólidos',
                                                        'Encapsulação',
                                                        'Envelopes',
                                                        'Conferência Final',
                                                        'Dispensação',
                                                        'Logística',
                                                        'Entrega Cliente'
                                                    ];
                                                    $contagemEtapas = array_fill_keys($etapasList, 0);


                                                    while ($row = ibase_fetch_assoc($resultETAPASuperior)) {
                                                        $encontroualgumregistro = true;
                                                        $hasResults = true;

                                                        $row['NOME_CLIENTE'] = mb_convert_encoding($row['NOME_CLIENTE'], 'UTF-8', 'ISO-8859-1');

                                                        $dataHoraRetirada = DateTime::createFromFormat('Y-m-d H:i:s', $row['DATA_RETIRADA'] . ' ' . $row['HORA_RETIRADA']);

                                                        if ($dataHoraRetirada) {
                                                            $etapaNormalizada = trim($row['DESCRICAO_ETAPA']);
                                                            if (isset($contagemEtapas[$etapaNormalizada])) {
                                                                $contagemEtapas[$etapaNormalizada]++;
                                                            }
                                                        }
                                                        $intervalo = $hoje->diff($dataHoraRetirada);

                                                        // Calcula a diferença total em horas, incluindo dias, horas, minutos e segundos
                                                        $diferencaHoras = ($intervalo->days * 24) + $intervalo->h;
                                                        $diferencaHoras += ($intervalo->i / 60) + ($intervalo->s / 3600);

                                                        $style = '';



                                                        $hasResults = true;
                                                    ?>
                                                        <tr>
                                                            <td>
                                                                <?= !empty($row['NOME_CLIENTE']) ? $row['NOME_CLIENTE'] : ('<strong>Paciente:</strong> ' . $row['NOME_PACIENTE']) ?>
                                                            </td>
                                                            <td <?= $style ?>>
                                                                <a href="#" class="open-modal-link" data-bs-toggle="modal" data-bs-target="#standard-modal" data-requisicao="<?= htmlspecialchars($row['REQUISICAO']) ?>">
                                                                    <?= htmlspecialchars($row['REQUISICAO']) ?>
                                                                </a>
                                                            </td>


                                                            <td><?= htmlspecialchars($row['FILIAL']) ?></td>
                                                            <td><?= htmlspecialchars($row['FORMULA']) ?></td>
                                                            <td><?= htmlspecialchars($row['FILIAL_DESTINO']) ?></td>
                                                            <td><?= htmlspecialchars($row['ETAPA']) ?></td>

                                                            <td <?= $style ?>><?= htmlspecialchars($row['DATA_RETIRADA']) ?> </td>
                                                            <td <?= $style ?>><?= htmlspecialchars($row['HORA_RETIRADA']) ?> </td>
                                                            <td><?= htmlspecialchars($row['DESCRICAO_ETAPA']) ?></td>
                                                        </tr>
                                                    <?php

                                                    }


                                                    if (!$hasResults) {
                                                        // Código para lidar com o caso de não haver resultados
                                                        echo "<tr><td colspan='8'>Nenhum registro encontrado para amanhã em diante.</td></tr>";
                                                    }

                                                    ?>
                                                </tbody>
                                            </table>
                                            <?php
                                            if ($hasResults) {
                                            ?>
                                                <h6>QUADRO RESUMO</h6>

                                                <table class="table table-striped table-bordered dt-responsive nowrap">
                                                    <thead>
                                                        <tr>
                                                            <th>Etapas</th>
                                                            <th><strong>TOTAL</strong></th>
                                                        </tr>
                                                    </thead>
                                                    <tbody>
                                                        <?php
                                                        $totalGeral = 0;
                                                        foreach ($etapasList as $etapa) {
                                                            $totalPorEtapa = $contagemEtapas[$etapa];
                                                            echo "<tr><td>{$etapa}</td><td>{$totalPorEtapa}</td></tr>";
                                                            $totalGeral += $totalPorEtapa;
                                                        }
                                                        ?>
                                                    </tbody>
                                                    <tfoot>
                                                        <tr>
                                                            <td><strong>TOTAL</strong></td>
                                                            <td><strong><?php echo $totalGeral; ?></strong></td>
                                                        </tr>
                                                    </tfoot>
                                                </table>
                                            <?php
                                            }
                                            ?>

                                        </div>
                                    </div>
                                </div>
                            </div> <!-- end card-->



                        </div>

                    </div>
                </div>




                <!-- <div class="col-12 text-right mt-3 mb-3">
                    <button class="btn btn-primary" type="submit">Exportar</button>
                </div>     -->

        </div> <!-- end container -->
    </div>
    <!-- end wrapper -->
<?php

                // Verifica se não encontrou registros
                if ($encontroualgumregistro === false) {
                    echo '<script>alert("Sem resultado para consulta");</script>';
                }
            } ?>
<!-- ============================================================== -->
<!-- End Page content -->
<!-- ============================================================== -->

<!-- Footer Start -->
<?php
include('../geral/footer.php');
?>
<!-- end Footer -->

<?php
include('../geral/mensagens_modais.php');
?>


<!-- Right bar overlay-->
<div class="rightbar-overlay"></div>

<!-- Vendor js -->
<script src="../../assets/js/vendor.min.js"></script>
<script src="../../assets/libs/bootstrap/js/bootstrap.bundle.min.js"></script>


<!-- Init js-->
<script src="../../assets/js/pages/form-advanced.init.js"></script>

<!-- knob plugin -->
<script src="../../assets/libs/jquery-knob/jquery.knob.min.js"></script>
<!-- App js-->
<script src="../../assets/js/app.min.js"></script>

<script src="../geral/javascript.js"></script>


<!-- Standard modal content -->
<!-- Modal -->
<div id="standard-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="standard-modalLabel" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title" id="standard-modalLabel">Detalhe da Fórmula</h4>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body">
                <!-- Aqui incluímos a página buscar_detalhes_requisicao.php na modal -->
                <div id="detalhes-requisicao-container">
                    <!-- O conteúdo da página buscar_detalhes_requisicao.php será carregado aqui -->

                    <?php

                    include('buscar_detalhes_requisicao.php');

                    ?>
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-light" data-bs-dismiss="modal">Fechar</button>
            </div>
        </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
</div><!-- /.modal -->





</body>

</html>

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

<script>
    $(document).ready(function() {
        // Função para preencher o combo de filiais
        function carregarFiliais(cidade) {
            $.ajax({
                url: 'get_filiais.php',
                type: 'POST',
                dataType: 'json',
                data: {
                    cidade: cidade
                },
                success: function(data) {
                    $('#filial').empty();

                    // Adiciona a opção padrão "Todos"
                    $('#filial').append('<option value="Todos">Todos</option>');

                    if (data.length > 0) {
                        // Adiciona as filiais recebidas
                        data.forEach(function(item) {
                            $('#filial').append('<option value="' + item.CDFIL + '">' + item.DESCRFIL + '</option>');
                        });
                    }

                    // Seleciona a filial previamente selecionada (se houver)
                    var filialSelecionada = '<?php echo $filialSelecionada; ?>';
                    if (filialSelecionada) {
                        $('#filial').val(filialSelecionada).trigger('change');
                    } else {
                        // Se a filialSelecionada não estiver definida, seleciona "Todos"
                        $('#filial').val('Todos').trigger('change');
                    }
                },
                error: function(xhr, status, error) {
                    alert('Erro na chamada AJAX: ' + status + ' - ' + error);
                }
            });
        }

        // Ao carregar a página, chama a função para preencher o combo de filiais com base na cidade inicial
        carregarFiliais($('#cidade').val());

        // Ao alterar a cidade, chama a função para preencher o combo de filiais com base na nova cidade selecionada
        $('#cidade').change(function() {
            const cidade = $(this).val();
            carregarFiliais(cidade);
        });

        // Ao selecionar uma filial, atualiza o cookie com a filial selecionada
        $('#filial').on('change', function() {
            var filialSelecionada = $(this).val() || 'Todos';
            document.cookie = 'filialSelecionada=' + filialSelecionada;
        });
    });


    $(document).ready(function() {
        var tabela = $('#minhaTabela').DataTable({
            "order": [
                [5, "desc"]
            ],
            "language": {
                "lengthMenu": "Mostrar _MENU_ registros por página",
                "zeroRecords": "Nenhum registro encontrado",
                "info": "Mostrando página _PAGE_ de _PAGES_",
                "infoEmpty": "Nenhum registro disponível",
                "infoFiltered": "(filtrado de _MAX_ registros no total)",
                "search": "Pesquisar na Tabela:",
                "paginate": {
                    "first": "Primeiro",
                    "last": "Último",
                    "next": "Próximo",
                    "previous": "Anterior"
                },
                "loadingRecords": "Carregando...",
                "processing": "Processando...",
                "emptyTable": "Nenhum dado disponível na tabela"
            },
            ordering: false // Desativa a ordenação inicial
        });

        // Remova a classe que indica que a ordenação é aplicada
        $('#minhaTabela .sorting').removeClass('sorting');

        // Função para ativar a ordenação

    });




    $(document).ready(function() {
        var tabela = $('#minhaTabela1').DataTable({
            "order": [
                [6, "desc"]
            ],
            "language": {
                "lengthMenu": "Mostrar _MENU_ registros por página",
                "zeroRecords": "Nenhum registro encontrado",
                "info": "Mostrando página _PAGE_ de _PAGES_",
                "infoEmpty": "Nenhum registro disponível",
                "infoFiltered": "(filtrado de _MAX_ registros no total)",
                "search": "Pesquisar na Tabela:",
                "paginate": {
                    "first": "Primeiro",
                    "last": "Último",
                    "next": "Próximo",
                    "previous": "Anterior"
                },
                "loadingRecords": "Carregando...",
                "processing": "Processando...",
                "emptyTable": "Nenhum dado disponível na tabela"
            },
            ordering: false // Desativa a ordenação inicial
        });

        // Remova a classe que indica que a ordenação é aplicada
        $('#minhaTabela1 .sorting').removeClass('sorting');

        // Função para ativar a ordenação

    });




    $(document).ready(function() {
        var tabela = $('#minhaTabela2').DataTable({
            "order": [
                [5, "asc"]
            ],
            "language": {
                "lengthMenu": "Mostrar _MENU_ registros por página",
                "zeroRecords": "Nenhum registro encontrado",
                "info": "Mostrando página _PAGE_ de _PAGES_",
                "infoEmpty": "Nenhum registro disponível",
                "infoFiltered": "(filtrado de _MAX_ registros no total)",
                "search": "Pesquisar na Tabela:",
                "paginate": {
                    "first": "Primeiro",
                    "last": "Último",
                    "next": "Próximo",
                    "previous": "Anterior"
                },
                "loadingRecords": "Carregando...",
                "processing": "Processando...",
                "emptyTable": "Nenhum dado disponível na tabela"
            },
            ordering: false // Desativa a ordenação inicial
        });

        // Remova a classe que indica que a ordenação é aplicada
        $('#minhaTabela2 .sorting').removeClass('sorting');

        // Função para ativar a ordenação

    });

    $(document).ready(function() {
        var tabela = $('#minhaTabela3').DataTable({
            "order": [
                [5, "asc"]
            ],
            "language": {
                "lengthMenu": "Mostrar _MENU_ registros por página",
                "zeroRecords": "Nenhum registro encontrado",
                "info": "Mostrando página _PAGE_ de _PAGES_",
                "infoEmpty": "Nenhum registro disponível",
                "infoFiltered": "(filtrado de _MAX_ registros no total)",
                "search": "Pesquisar na Tabela:",
                "paginate": {
                    "first": "Primeiro",
                    "last": "Último",
                    "next": "Próximo",
                    "previous": "Anterior"
                },
                "loadingRecords": "Carregando...",
                "processing": "Processando...",
                "emptyTable": "Nenhum dado disponível na tabela"
            },
            ordering: false // Desativa a ordenação inicial
        });

        // Remova a classe que indica que a ordenação é aplicada
        $('#minhaTabela3 .sorting').removeClass('sorting');

        // Função para ativar a ordenação

    });


    document.addEventListener("DOMContentLoaded", function() {
        var form = document.getElementById("indexForm");

        form.addEventListener("submit", function(event) {
            var ano = document.getElementById("ano").value;
            var mes = document.getElementById("mes").value;
            var requisicao = document.getElementById('requisicao').value;
            var paciente = document.getElementById('paciente').value;
            var cliente = document.getElementById('cliente').value;


            if (requisicao.trim() === "" && paciente.trim() === "" && cliente.trim() === "") { // Verifica se o campo requisicao está vazio
                if (ano === "Selecione" || mes === "Selecione") {
                    alert("O Ano e Mês devem estar selecionados");
                    event.preventDefault(); // Previne a submissão do formulário
                }
            }
        });
    });
</script>



<script>
    document.addEventListener("DOMContentLoaded", function() {
        const modalLinkElements = document.querySelectorAll(".open-modal-link");
        const modalContainer = document.getElementById("detalhes-requisicao-container");

        modalLinkElements.forEach(function(element) {
            element.addEventListener("click", function(event) {
                event.preventDefault();
                const requisicaoId = element.getAttribute("data-requisicao");

                // Carregue a modal
                const modal = new bootstrap.Modal(document.getElementById("standard-modal"));
                modal.show();

                // Carregue o conteúdo da página buscar_detalhes_requisicao.php na modal
                modalContainer.innerHTML = '<p>Carregando...</p>';
                fetch('buscar_detalhes_requisicao.php?id=' + encodeURIComponent(requisicaoId))

                    .then(response => response.text())
                    .then(data => {
                        modalContainer.innerHTML = data;
                    });
            });
        });
    });






    //REMOVER O CINZA APÓS FECHAR A MODAL E PERMITIR O SCROLL
    var myModalEl = document.getElementById('standard-modal');
    myModalEl.addEventListener('hidden.bs.modal', function(event) {
        var modalsBackdrop = document.getElementsByClassName('modal-backdrop');
        while (modalsBackdrop.length > 0) {
            modalsBackdrop[0].parentNode.removeChild(modalsBackdrop[0]);
        }
        document.body.style.overflow = ''; // Reset overflow
    });
</script>




<!-- Scripts -->

<!-- jQuery -->
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<!-- DataTables JS -->
<script src="https://cdn.datatables.net/1.11.3/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.11.3/js/dataTables.bootstrap5.min.js"></script>