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

$hojeFormatado = $_GET['data'];

$encontroualgumregistro = false;

$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;
}

if (!empty($data)) {
    $ano = date('Y', strtotime($data));
    $mes = date('m', strtotime($data));
} else {
    $ano = '2024';
    $mes = '1';
}

$cidade = $_GET['cidade'] ?? null;

if ($cidade == "todos" || $cidade == "TODOS") {
    $cidade = '';
}

$filial = isset($_GET['filial']) ? strtoupper(trim($_GET['filial'])) : null;

$etapa = $_GET['etapa'] ?? null;
$requisicao = $_GET['requisicao'] ?? null;
$paciente = $_GET['paciente'] ?? null;
$cliente = $_GET['cliente'] ?? null;

// Consulta para buscar as etapas
$query_input_etapa = "SELECT etp.posicao||etp.cdetapa as cod_etapa, etp.descricao FROM FC12540 etp ORDER BY etp.descricao";
$result_input_etapa = ibase_query($connection, $query_input_etapa);

if (!$result_input_etapa) {
    die('Erro ao executar a consulta: ' . ibase_errmsg());
}

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)
    {
        $filialDestino = isset($_GET['filial_destino']) ? strtoupper(trim($_GET['filial_destino'])) : null;

        $filialOrigem = isset($_GET['filial_origem']) ? strtoupper(trim($_GET['filial_origem'])) : null;

        $condicoes = "CAST(r.dtret AS DATE) $operador '" . addslashes($hojeFormatado) . "'";

        // Verifica se a filial foi passada e não é "TODOS"
        if (!empty($filial) && $filial !== "TODOS") {
            $filial = addslashes($filial); // Escapa o valor da filial para segurança
            $condicoes .= " AND r.cdfile = '$filial'";
        }

        // Verifica se a filialOrigem foi passada e não é "TODOS"
        if (!empty($filialOrigem) && $filialOrigem !== "TODOS") {
            $condicoes .= " AND r.cdfil = '$filialOrigem'";
        }

        // Verifica se a filial de destino foi passada e não é "TODOS"
        if (!empty($filialDestino) && $filialDestino !== "TODOS") {
            $condicoes .= " AND r.cdfild = '$filialDestino'";
        }


        $query = "
        SELECT
            selecao.*,
            et.descricao 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  
                    $condicoes
                GROUP BY 
                    r.cdfil, r.NOMEPA, r.CDCLI, cli.NOMECLI, r.cdfild, r.nrrqu, r.serier, r.dtret, r.hrret
            ) AS selecao
        INNER JOIN 
        fc12540 et ON selecao.etapa = CAST(et.posicao || et.cdetapa AS NUMERIC)
    ";

        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 . "%'";
        }

        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);

    //echo $queryAtual;

    $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);

    //echo $querySuperior;

    if (!$resultETAPA) {
        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>


<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<?php
$pageTitle = "PCP - Monitoramento"; // Definir o título da página aqui
include('../geral/header.php');
?>

<!-- JavaScript do Bootstrap e dependência de jQuery e Popper.js -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.3/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>

<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-6 col-md-4 col-lg-2">';
                    echo '<label for="filial" class="col-form-label">Filial Estoque:</label>';
                    echo '<select id="filial" name="filial" class="form-control">';

                    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>';
                    ?>

                    <!--NOVA BUSCA DE FILIAL ORIGEM -->

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

                    echo '<div class="col-6 col-md-4 col-lg-2">';
                    echo '<label for="filialOrigem" class="col-form-label">Filial Origem:</label>';
                    echo '<select id="filiaisOrigem" name="filial_origem" class="form-control">';

                    echo '<option value="Todos"' . ($filialOrigemSelecionada == "Todos" ? ' selected' : '') . '>Todos</option>';

                    foreach ($filiaisOrigem as $item) {
                        $selected = ($filialOrigemSelecionada == $item['CDFILD']) ? ' selected' : '';
                        echo '<option value="' . $item['CDFILD'] . '"' . $selected . '>Filial ' . $item['CDFILD'] . '</option>';
                    }

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

                    <!--FIM NOVO SELECT PARA FILIAL ORIGEM-->

                    <!--NOVA BUSCA DE FILIAL DESTINO -->

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

                    echo '<div class="col-6 col-md-4 col-lg-2">';
                    echo '<label for="filialDestino" class="col-form-label">Filial Destino:</label>';
                    echo '<select id="filialDestino" name="filial_destino" class="form-control">';

                    echo '<option value="Todos"' . ($filialDestinoSelecionada == "Todos" ? ' selected' : '') . '>Todos</option>';

                    foreach ($filiaisDestino as $item) {
                        $selected = ($filialDestinoSelecionada == $item['CDFILD']) ? ' selected' : '';
                        echo '<option value="' . $item['CDFILD'] . '"' . $selected . '>Filial ' . $item['CDFILD'] . '</option>';
                    }

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

                    <!--FIM NOVO SELECT PARA FILIAL DESTINO-->

                    <!--NOVO SELECT PARA ETAPAS-->
                    <style>
                        /* Garantir que o dropdown caiba na tela */
                        .select2-container--open .select2-dropdown--below {
                            width: auto !important;
                            min-width: 160.891px !important;
                            position: inherit !important;
                            ;
                        }

                        .select2-container--default .select2-results__option--selected::after {
                            content: "✓";
                            display: inline-block;
                            position: absolute;
                            left: 4.5%;
                            top: 40%;
                            width: 20px;
                            height: 20px;
                            text-align: center;
                            color: black;
                            transform: translate(-50%, -50%);
                            padding-left: 18px;
                        }
                    </style>

                    <div class="col-6 col-md-4 col-lg-2">
                        <label for="etapa" class="col-form-label">Etapa:

                            <input style="margin-left: -3px;" type="checkbox" class="form-check-input" id="todos" name="etapa[]" value="Selecione"
                                <?php
                                if (isset($etapa) && is_array($etapa) && in_array('Selecione', $etapa)) {
                                    echo 'checked';
                                }
                                ?>>
                            <label style="margin-left: 10px;" for="todos" class="form-check-label">Todos</label>

                        </label>
                        <!-- Select múltiplo -->
                        <select name="etapa[]" id="etapa" class="form-control" multiple="multiple">
                            <?php
                            while ($row = ibase_fetch_assoc($result_input_etapa)) {
                                $row['DESCRICAO'] = mb_convert_encoding($row['DESCRICAO'], 'UTF-8', 'ISO-8859-1');
                                $cod_etapa = $row['COD_ETAPA'];
                                $descricao = $row['DESCRICAO'];
                                $selected = (isset($etapa) && is_array($etapa) && in_array($cod_etapa, $etapa)) ? "selected" : "";
                                echo "<option value=\"$cod_etapa\" $selected>$descricao</option>";
                            }
                            ?>
                        </select>
                    </div>

                    <script>
                        const todosCheckbox = document.getElementById('todos');
                        const select = document.getElementById('etapa');
                        const options = Array.from(select.options);

                        // Listener para o checkbox "Todos"
                        todosCheckbox.addEventListener('change', function() {
                            if (this.checked) {
                                // Desmarcar todas as opções do select e desabilitar o select
                                options.forEach(option => option.selected = false);
                                select.disabled = true;
                            } else {
                                // Habilitar o select novamente
                                select.disabled = false;
                            }
                        });

                        // Listener para o select múltiplo
                        select.addEventListener('change', function() {
                            if (Array.from(select.options).some(option => option.selected)) {
                                // Desmarcar o checkbox "Todos" se alguma opção for selecionada
                                todosCheckbox.checked = false;
                            }
                        });

                        // Configurar o estado inicial com base nos valores carregados do servidor
                        window.addEventListener('load', function() {
                            const isTodosSelected = todosCheckbox.checked;

                            if (isTodosSelected) {
                                // Se "Todos" estiver marcado, desmarcar todas as opções do select e desabilitá-lo
                                options.forEach(option => option.selected = false);
                                select.disabled = true;
                            }
                        });
                    </script>
                    <!--FIM NOVO SELECT PARA ETAPAS-->

                    <div class="col-6 col-md-4 col-lg-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-6 col-md-4 col-lg-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-6 col-md-4 col-lg-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-6 col-md-4 col-lg-2">
                        <label for="cliente" class="col-form-label">Data</label>
                        <input type="date" class="form-control" id="data" name="data" placeholder="Cliente" value="<?php echo $hojeFormatado; ?>">

                    </div>

                    <div class="col-6 col-md-8 col-lg-10 d-flex mt-3" style="align-items:center;justify-content: end;">
                        <div>
                            <a href="painel_monitoramento.php" class="btn btn-warning mr-2"><i class="mdi mdi-plus"></i> Limpar</a>
                        </div>
                        <div>
                            <button name="pesquisar" class="btn btn-primary" type="submit">Pesquisar</button>
                        </div>
                    </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">

                                <h6>Lista de Fórmulas</h6>


                            </div>

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

                                    <ul class="nav nav-tabs">
                                        <li class="nav-item">
                                            <a href="#hoje" data-bs-toggle="tab" aria-expanded="true" class="nav-link active">
                                                Dia - <?php echo formataData($hojeFormatado); ?>
                                            </a>
                                        </li>
                                    </ul>
                                    <div class="tab-content">

                                        <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;

                                                    $totalPorHora = array_fill_keys(range(8, 17), 0);
                                                    $hasResults = false;

                                                    $query = "SELECT etp.posicao||etp.cdetapa as cod_etapa, etp.descricao FROM FC12540 etp";
                                                    $result = ibase_query($connection, $query);

                                                    if (!$result) {
                                                        die('Erro ao executar a consulta: ' . ibase_errmsg());
                                                    }

                                                    $etapasList = [];

                                                    while ($row = ibase_fetch_assoc($result)) {
                                                        //print_r($row);
                                                        $row['DESCRICAO'] = mb_convert_encoding($row['DESCRICAO'], 'UTF-8', 'ISO-8859-1');
                                                        // Adiciona cada descrição ao array $etapasList
                                                        $etapasList[] = [
                                                            'COD_ETAPA' => $row['COD_ETAPA'],
                                                            'DESCRICAO' => $row['DESCRICAO']
                                                        ];
                                                    }

                                                    $horasList = range(8, 17); // De 8h a 18h, contando até a hora 17:59.
                                                    $contagemEtapas = [];

                                                    foreach ($etapasList as $etapa) {
                                                        $codEtapa = $etapa['COD_ETAPA'];
                                                        $contagemEtapas[$codEtapa] = 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');

                                                        $row['DESCRICAO_ETAPA'] = mb_convert_encoding($row['DESCRICAO_ETAPA'], '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');

                                                            $etapaNormalizada = $row['ETAPA'];

                                                            if (isset($contagemEtapas[$etapaNormalizada]) && isset($contagemEtapas[$etapaNormalizada][$hora])) {
                                                                $contagemEtapas[$etapaNormalizada][$hora]++;
                                                            }
                                                        }

                                                        if (!($dataHoraRetirada instanceof DateTime)) {
                                                            $dataHoraRetiradaObj = new DateTime($dataHoraRetirada);
                                                        } else {
                                                            $dataHoraRetiradaObj = $dataHoraRetirada;
                                                        }
                                                        $hojeFormatadoObj = new DateTime($hojeFormatado);

                                                        $intervalo = $hojeFormatadoObj->diff($dataHoraRetiradaObj);

                                                        $diferencaHoras = ($intervalo->days * 24) + $intervalo->h + ($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 ?>><?= formataData($row['DATA_RETIRADA']) ?> </td>
                                                            <td <?= $style ?>><?= htmlspecialchars($row['HORA_RETIRADA']) ?> </td>
                                                            <td><?= htmlspecialchars($row['DESCRICAO_ETAPA']) ?></td>
                                                        </tr>
                                                    <?php
                                                    }



                                                    if (!$hasResults) {
                                                        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>';

                                                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>';


                                                foreach ($etapasList as $etapa) {

                                                    $codEtapa = $etapa['COD_ETAPA'];
                                                    $descricaoEtapa = $etapa['DESCRICAO'];

                                                    echo "<tr><td><strong>{$descricaoEtapa}</strong></td>";
                                                    $totalPorEtapa = 0;

                                                    if (isset($contagemEtapas[$codEtapa])) {
                                                        foreach ($horasList as $hora) {

                                                            if (isset($contagemEtapas[$codEtapa][$hora])) {
                                                                $quantidade = $contagemEtapas[$codEtapa][$hora];
                                                            } else {
                                                                $quantidade = 0;
                                                            }
                                                            echo "<td>{$quantidade}</td>";
                                                            $totalPorEtapa += $quantidade;
                                                            $totalPorHora[$hora] += $quantidade;
                                                        }
                                                    } else {

                                                        foreach ($horasList as $hora) {
                                                            echo "<td>0</td>";
                                                        }
                                                    }

                                                    echo "<td><strong>{$totalPorEtapa}</strong></td></tr>";
                                                }
                                                echo '</tbody>';


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

                                        </div>

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



                        </div>

                    </div>
                </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 -->

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

<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.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() {
        // Função para preencher o combo de filiais destino
        function filiaisDestino(cidade) {
            $.ajax({
                url: 'get_filiais_destino.php',
                type: 'POST',
                dataType: 'json',
                data: {
                    cidade: cidade
                },
                success: function(data) {
                    $('#filialDestino').empty();

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

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

                    // Seleciona a filial previamente selecionada (se houver)
                    var filialDestinoSelecionada = '<?php echo $filialDestinoSelecionada; ?>';
                    if (filialDestinoSelecionada) {
                        $('#filialDestino').val(filialDestinoSelecionada).trigger('change');
                    } else {
                        // Se a filialDestinoSelecionada não estiver definida, seleciona "Todos"
                        $('#filialDestino').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
        filiaisDestino($('#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();
            filiaisDestino(cidade);
        });

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

    $(document).ready(function() {
        // Função para preencher o combo de filiais destino
        function filiaisOrigem(cidade) {
            $.ajax({
                url: 'get_filiais_origem.php',
                type: 'POST',
                dataType: 'json',
                data: {
                    cidade: cidade
                },
                success: function(data) {
                    $('#filiaisOrigem').empty();

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

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

                    // Seleciona a filial previamente selecionada (se houver)
                    var filialOrigemSelecionada = '<?php echo $filialOrigemSelecionada; ?>';
                    if (filialOrigemSelecionada) {
                        $('#filiaisOrigem').val(filialOrigemSelecionada).trigger('change');
                    } else {
                        // Se a filialOrigemSelecionada não estiver definida, seleciona "Todos"
                        $('#filiaisOrigem').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
        filiaisOrigem($('#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();
            filiaisOrigem(cidade);
        });

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

    $(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>

</body>

</html>