<?php
require '../conexao/conexao.php';
//require '../sessao.php';
require '../conexao/acesso.php';
require '../configuacoes.php';
require '../configuracao/consulta_banco_dados.php';
require '../configuracao/filtros.php';
require '../logs/gera-log.php';

// Instancia a classe de consulta_bb ao banco de dados
$consulta_bb = new ConsultaBancoDeDados();
$filtros = new Filtros();

require '../querys/query-etapas-pcp.php';

$Etapas = new EtapasPCP($connectionmysql);

function getBadgeClass($percentage)
{
    if ($percentage <= 89) {
        return 'badge-danger';
    } elseif ($percentage >= 70 && $percentage <= 100) {
        return 'badge-warning';
    } elseif ($percentage > 90) {
        return 'badge-primary';
    } else {
        return 'badge-success';
    }
}

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

function get_funcionario($connection)
{
    $query = "SELECT cdcon, nomefun from fc08000";

    // $result = ibase_query($connection, $query);

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

    // $funcionarioArray = [];

    // while ($row = ibase_fetch_assoc($result)) {
    //     $funcionarioArray[] = $row;
    // }

    //return $funcionarioArray;
}

// Carrega o array de funcionários
$funcionarioArray = get_funcionario($connection);


//$hoje = DateTime::createFromFormat('d-m-Y', '22-09-2023');
//$hoje = DateTime::createFromFormat('d-m-Y H:i', '23-11-2023 08:51');
$hoje = new DateTime();
$hojeFormatado = $hoje->format('Y-m-d');

// pega a data de ontem
$dataOntem = date('Y-m-d', strtotime('-1 day', strtotime($hojeFormatado)));

// Obtém o mês e ano da data atual
$mesAtual = date('m', strtotime($hojeFormatado));
$anoAtual = date('Y', strtotime($hojeFormatado));

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
}

$filiais = $consulta_bb->get_filiais();
$cidades = $consulta_bb->get_cidades(); // Obtém todas as cidades


$etapas = $consulta_bb->get_etapa();


$encontroualgumregistro = false;
$cidade = $_GET['cidade'] ?? null;
$requisicao = $_GET['requisicao'] ?? null;
$paciente = $_GET['paciente'] ?? null;


$filialselect = !empty($_GET['filial']) ? $_GET['filial'] : null;
$filial = explode(',', $filialselect);

$filial = array_filter($filial, function ($item) {
    return $item !== 'x';
});
$filial = array_values($filial);
$filial = implode(',', $filial);

// Obter as variáveis de data e filial da URL
$DataInicial = isset($_GET['DataInicial']) ? $_GET['DataInicial'] : null; // valor default
$DataFinal = isset($_GET['DataFinal']) ? $_GET['DataFinal'] : null; // valor default

// Construa a consulta SQL
$sql = "select   FU.NOMEFUNCIONARIO as FUNCIONARIO,
FU.CODIGO as CDFUN , ";

// Carregue a lista de etapas
$listaEtapas = $Etapas->ListaEtapasKPYPHARMA();

//var_dump($listaEtapas);
// Percorra cada etapa para construir as somas condicionais
foreach ($listaEtapas as $NomeEtapa) {
    // Retire acentos do nome da etapa para o alias
    $NomeEtapaSemAcento = retiraAcento($NomeEtapa['NOMETIPO']);

    // Construa a soma condicional
    $sql .= "SUM(CASE WHEN PM.CODIGO_PROCESSO_TIPO = '" . $NomeEtapa['CODIGO'] . "' THEN 1 ELSE 0 END) AS \"" . $NomeEtapaSemAcento . "\", ";
}

gerarLog(
    1, // tipo de log (acesso)
    $basePath, // módulo
    $_SESSION['CodUsuario'],
    $_SESSION['NomeUsuario']
);


if (isset($_GET['form_submitted']) && $_GET['form_submitted'] == '1') {

    gerarLog(
        5, // tipo de log (acesso)
        $basePath, // módulo
        $_SESSION['CodUsuario'],
        $_SESSION['NomeUsuario']
    );

    // Adicione a contagem total e finalize a query
    $sql .= "
    COUNT(A2.codigo_atend_a1) AS TOTAL
    from PROCESSO_MANIPULACAO PM
    INNER JOIN ATENDIMENTO_A2 A2 ON PM.CODIGO_MOV = A2.CODIGO_ATEND_A1 and PM.NUMEROFORMULA_MOV = A2.NUMEROFORMULA and
    A2.CONCLUIDOFORMULA = -1
    inner join FUNCIONARIO FU on PM.CODIGO_FUNCIONARIO = FU.CODIGO
    inner join FORMAFARMACEUTICA_PROCESSO_TIPO FFP on PM.CODIGO_PROCESSO_TIPO = FFP.CODIGO
    left join UTIL_REL_AG1(1) AG on AG.AG1_OP >= 0
    where 1 = 1 ";

    // if ($filial && $filial != "Todos") {
    //     $sql .= " AND UPPER(FU.NOMEFUNCIONARIO) IN ($filial)";
    // }

    if ($funcionario && $funcionario != "Todos") {
        $sql .= " AND UPPER(FU.NOMEFUNCIONARIO) LIKE '" . $funcionario . "%'";
    }

    $sql .= " AND PM.DATA_PROCESSO between '$DataInicial' AND '$DataFinal'
        group by  FU.NOMEFUNCIONARIO, FU.CODIGO
        order by  FU.NOMEFUNCIONARIO ";

    // Execute a consulta
    $resultmetaetapa = ibase_query($connection, $sql);

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

    // Processa os resultados
    $metas_etapas = [];
    while ($row2 = ibase_fetch_assoc($resultmetaetapa)) {
        $metas_etapas[] = $row2;
    }
}
?>

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



<?php
$pageTitle = "Resumo Funcionários"; // 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="index.php" id="indexForm" onsubmit="return validarFormulario()">
                            <h3>Resumo de Funcionários</h3>
                    </div>

                    <?php
                    // Exibe o filtro de cidade
                    //echo $filtros->filtroCidade($cidade, $cidades);

                    // Exibe o filtro de filial
                    //echo $filtros->filtroFilialSimples($filialselect, $filiais, false);

                    // Exibe o filtro de ano

                    ?>
                    <div class="form-group col-6 col-md-4 col-lg-2">
                        <label for="DataInicial" class="col-form-label">Data Inicial</label>
                        <input type="date" id="DataInicial" name="DataInicial" class="form-control" value="<?php echo isset($DataInicial) ? $DataInicial : ''; ?>" oninput="validarCampo('DataInicial')">
                    </div>

                    <div class="form-group col-6 col-md-4 col-lg-2">
                        <label for="DataFinal" class="col-form-label">Data Final</label>
                        <input type="date" id="DataFinal" name="DataFinal" class="form-control" value="<?php echo isset($DataFinal) ? $DataFinal : ''; ?>" oninput="validarCampo('DataFinal')">
                    </div>

                    <div class="form-group col-6 col-md-4 col-lg-2">
                        <label for="funcionario" class="col-form-label">Funcionário</label>
                        <input type="text" class="form-control" id="funcionario" name="funcionario" placeholder="funcionario" value="<?php echo isset($funcionario) ? htmlspecialchars($funcionario) : ''; ?>">

                    </div>
                    <input type="hidden" name="form_submitted" value="1" />
                    <div class="col-12 col-md-12 col-lg-6 d-flex mt-2" style="align-items:center;justify-content: end;">
                        <div>
                            <a href="index.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>

                <?php if (isset($_GET['pesquisar'])) { ?>
                    <div class="col-12 mt-2">
                        <h6>Resultados</h6>
                        <div class="row">
                            <div class="col-12">
                                <table id="datatable-buttons" class="table table-bordered table-hover table-sm" style="width:100%;">
                                    <thead>
                                        <tr>
                                            <th class="text-center">Funcionário</th>
                                            <?php $listaEtapas = $Etapas->ListaEtapasKPYPHARMA();
                                            foreach ($listaEtapas as $NomeEtapa) { ?>
                                                <th style="min-width: 130px;"><strong><?= $NomeEtapa['NOMETIPO']; ?></strong></th>
                                            <?php } ?>
                                            <th><strong>TOTAL</strong></th>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <?php foreach ($metas_etapas as $row) : ?>
                                            <tr>
                                                <td style="min-width: 200px;"><?php echo htmlspecialchars($row['FUNCIONARIO']); ?></td>
                                                <?php foreach ($listaEtapas as $NomeEtapa) : ?>
                                                    <?php
                                                    $NomeEtapaSemAcento = trim(mb_substr(retiraAcento($NomeEtapa['NOMETIPO']), 0, 31));
                                                    ?>
                                                    <td><?php echo $row[$NomeEtapaSemAcento]; ?></td>
                                                <?php endforeach; ?>
                                                <td><?php echo $row['TOTAL']; ?></td>
                                            </tr>
                                        <?php endforeach; ?>
                                    </tbody>
                                </table>
                            </div>
                        </div>
                    </div>
                <?php
                } ?>

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


    <!-- ============================================================== -->
    <!-- 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="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="../../assets/libs/bootstrap/js/bootstrap.bundle.min.js"></script>
    <script src="../../assets/js/vendor.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>

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

    <!-- App js -->
    <script src="../../assets/js/app.min.js"></script>

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

    <!-- Inclua isso no cabeçalho para garantir que as bibliotecas sejam carregadas -->
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <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>
    <link rel="stylesheet" href="https://cdn.datatables.net/1.11.3/css/dataTables.bootstrap5.min.css">
    <script src="https://cdn.datatables.net/buttons/2.0.1/js/dataTables.buttons.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/pdfmake.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/vfs_fonts.js"></script>
    <script src="https://cdn.datatables.net/buttons/2.0.1/js/buttons.html5.min.js"></script>

    <link rel="stylesheet" href="https://cdn.datatables.net/buttons/2.0.1/css/buttons.dataTables.min.css">
    <link rel="stylesheet" href="../../assets/css/resetedatatable.css">
    <!-- Seu script para inicializar o DataTables -->

    <!-- DataTables FixedHeader -->
    <link rel="stylesheet" href="https://cdn.datatables.net/fixedheader/3.3.2/css/fixedHeader.dataTables.min.css">
    <script src="https://cdn.datatables.net/fixedheader/3.3.2/js/dataTables.fixedHeader.min.js"></script>

    <!-- DataTables FixedColumns -->
    <link rel="stylesheet" href="https://cdn.datatables.net/fixedcolumns/4.3.0/css/fixedColumns.dataTables.min.css">
    <script src="https://cdn.datatables.net/fixedcolumns/4.3.0/js/dataTables.fixedColumns.min.js"></script>
    <script>
        $(document).ready(function() {
            var table = $('#datatable-buttons').DataTable({
                "language": {
                    "url": "https://cdn.datatables.net/plug-ins/1.10.21/i18n/Portuguese-Brasil.json"
                },
                "ordering": true,
                "responsive": true,
                "autoWidth": false,
                "lengthMenu": [
                    [10, 25, 50, 100, -1],
                    [10, 25, 50, 100, "Todos"]
                ],
                "buttons": [
                    //'copyHtml5',
                    'excelHtml5',
                    //'csvHtml5',
                    //'pdfHtml5'
                ],
                "dom": '<"top"Bf><"datatable-scroll"t><"bottom d-flex justify-content-between align-items-center"lip><"clear">',
                scrollX: true,
                scrollCollapse: true,
                fixedColumns: {
                    leftColumns: 1
                },
                fixedHeader: {
                    header: true,
                    footer: true
                },
                scrollY: '600px'
            });
            // setTimeout(function() {
            //     $("#datatable-buttons_filter").children("label").css("font-size", "15px");
            // }, 20);

        });
    </script>
    <style>
        #datatable-buttons_length label,
        #datatable-buttons_info {
            margin: 0 !important;
            padding: 0 !important;
            align-items: center;
        }
    </style>
    <!-- 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">Apuração Diária</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 -->
                    </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>
        // applyFilter('cidade', 'filial', 'data-cidade', '<?php echo isset($filialselect) ? $filialselect : ''; ?>');

        // function validarCampo(id) {
        //     const campo = document.getElementById(id);
        //     const valor = campo.value.trim();
        //     let campoValido = true;

        //     if (id === 'filial') {
        //         const valoresArray = valor.split(',');

        //         if (valoresArray.includes('x') && valoresArray.length > 1 || valor === 'Selecione' || valor === 'Todos') {
        //             campoValido = false;
        //             campo.classList.add('is-invalido');
        //         } else {
        //             campo.classList.remove('is-invalido');
        //         }
        //     } else {
        //         if (!valor || valor === 'Selecione' || valor === 'Todos') {
        //             campoValido = false;
        //             campo.classList.add('is-invalido');
        //         } else {
        //             campo.classList.remove('is-invalido');
        //         }
        //     }

        //     return campoValido;
        // }

        function showModal(title, message) {
            const modal = new bootstrap.Modal(document.getElementById('exampleModal'));
            const modalTitle = document.querySelector('.modal-title');
            const modalBody = document.querySelector('.modal-body p');

            modalTitle.textContent = title;
            modalBody.textContent = message;

            modal.show();
        }

        function validarCampo(id) {
            let campo = document.getElementById(id);
            return campo.value.trim(); // Retorna o valor do campo após remover espaços em branco
        }

        function adicionarClasseErro(campo) {
            campo.classList.add('is-invalido');
        }

        function removerClasseErro(campo) {
            campo.classList.remove('is-invalido');
        }

        function validarFormulario() {
            let DataInicial = validarCampo("DataInicial");
            let DataFinal = validarCampo("DataFinal");


            let DataInicialCampo = document.getElementById("DataInicial");
            let DataFinalCampo = document.getElementById("DataFinal");

            if (DataInicial === '' || DataFinal === '') {
                adicionarClasseErro(DataInicialCampo);
                adicionarClasseErro(DataFinalCampo);
                showModal('Informação', 'As datas de inicial e final são obrigatórias para realizar a consulta.');
                return false;
            }

            if (new Date(DataInicial) > new Date(DataFinal)) {
                adicionarClasseErro(DataInicialCampo);
                adicionarClasseErro(DataFinalCampo);
                showModal('Erro', 'A data inicial não pode ser maior que a data final.');
                return false;
            }

            if (!algumPreenchido) {
                showModal('Informação', 'Pelo menos um campo deve estar preenchido para realizar a consulta.');
                return false;
            }

            return true;
        }

        function verificarDatas() {
            let DataInicialCampo = document.getElementById("DataInicial");
            let DataFinalCampo = document.getElementById("DataFinal");
            let DataInicial = DataInicialCampo.value.trim();
            let DataFinal = DataFinalCampo.value.trim();

            if (DataInicial !== '' && DataFinal !== '') {
                removerClasseErro(DataInicialCampo);
                removerClasseErro(DataFinalCampo);

                if (new Date(DataInicial) > new Date(DataFinal)) {
                    adicionarClasseErro(DataInicialCampo);
                    adicionarClasseErro(DataFinalCampo);
                    //showModal('Erro', 'A data inicial não pode ser maior que a data final.');
                }
            }
        }

        document.getElementById("DataInicial").addEventListener('input', function() {
            removerClasseErro(this);
            verificarDatas();
        });

        document.getElementById("DataFinal").addEventListener('input', function() {
            removerClasseErro(this);
            verificarDatas();
        });
    </script>

</body>

</html>

<style>
    .is-invalido {
        box-shadow: 0 0 5px red !important;
    }
</style>