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

//recuperando combo filial
$query_filial = "SELECT cdfil, DESCRFIL FROM FC01000 fc WHERE fc.cdfil IN (SELECT cdfil FROM fc15100)";
$result_filial = ibase_query($connection, $query_filial);

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

$filiais = [];
while ($row = ibase_fetch_assoc($result_filial)) {
    $filiais[] = $row;
}

function getBadgeClass($status)
{
    $lowerStatus = strtolower($status);

    if (strpos($lowerStatus, 'rejeitado') !== false) {
        return 'badge-danger';
    } elseif (strpos($lowerStatus, 'aprovado') !== false) {
        return 'badge-success';
    } else {
        return 'badge-secondary';  // ou qualquer outra classe padrão
    }
}


//$filial = 'Todos';
$records_per_page = 10;
$current_page = $_GET['page'] ?? 1;
$start_from = ($current_page - 1) * $records_per_page;
$hasResults = false;

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



    // Obtendo os parâmetros
    //$nome_consulta = 'fun.nomefun';

    $dias = $_GET['dias'] ?? null;
    $grupo = $_GET['grupo'] ?? null;
    $filial = $_GET['filial'] ?? null;
    $setor = $_GET['setor'] ?? null;
    $situacao = $_GET['situacao'] ?? null;
    $bloqueado = $_GET['bloqueado'] ?? null;

    // Iniciando a construção do SQL BASE

    $sql_base = "SELECT DISTINCT                                            
    mv.CDFIL,                                      
    p.CDPRO,                                      
    p.DESCR,                                      
    p.GRUPO,                                      
    p.SETOR,                                      
    p.UNIDA,                                      
    p.PRCOM,                                      
    CAST(mv.ESTAT as NUMERIC(18,6)) as ESTAT,
cast( sum(lote.estat - lote.saidatr) AS NUMERIC(18,6) ) as QTDISPONIVEL,	
    mv.DTMOV

FROM FC03000 as p                                               
INNER JOIN FC03100 as mv ON                                      
( mv.CDPRO  = p.CDPRO)
left join fc03140 lote on ( lote.cdfil = mv.cdfil) and (lote.cdpro = mv.cdpro) and (lote.stlot in ('L', 'P'))
AND  (( NOT mv.DTMOV >= CURRENT_DATE -60 )
OR   ( mv.DTMOV IS NULL ))                            
AND ( mv.ESTAT <> 0 )                                
WHERE   ( p.INDDEL <> 'S' or p.INDDEL is null )
and ( p.CDPRO > 0 ) AND  ( NOT mv.DTMOV >= CURRENT_DATE - $dias )";


    // Adicionando condições conforme os parâmetros

    if ($grupo && $grupo != "Todos") {
        // Use firebird_escape_string para evitar injeção de SQL
        $grupo = firebird_escape_string($grupo);
        $sql_base .= " AND p.GRUPO = '$grupo'";
    }

    // Condição para verificar se $filial é diferente de "Todos"
    if ($filial && $filial != "Todos") {
        $sql_base .= " AND mv.CDFIL = " . intval($filial);
    }
    // Condição para verificar se o setor não é vazio"
    if (!empty($setor) && is_numeric($setor)) {
        $sql_base .= " AND p.setor = " . intval($setor);
    }
    if ($situacao && $situacao != "Todos") {
        $sql_base .= " AND p.situa = '$situacao'";
    }
    if ($bloqueado && $bloqueado != "Todos") {
        $sql_base .= " AND p.indbloqueio = '$bloqueado'";
    }
    $sql_base .= " GROUP BY  mv.CDFIL,p.CDPRO,p.DESCR,p.GRUPO,p.SETOR, p.UNIDA,p.PRCOM,ESTAT,mv.DTMOV   HAVING SUM(lote.estat - lote.saidatr) > 0 ";

    //$sql_base .= " Order by mv.CDFIL,p.GRUPO,p.DESCR";


    // Construindo SQL para contagem
    $sql_count = "SELECT COUNT(*) AS total FROM (" . $sql_base . ")";
    //echo $sql_count;
    $result_count = ibase_query($connection, $sql_count);

    if ($result_count) {
        $total_records = ibase_fetch_assoc($result_count)['TOTAL'];
        $total_pages = ceil($total_records / $records_per_page);

        // Corrigindo a ordenação do SQL final
        $sql_final = $sql_base .= "ORDER by mv.CDFIL,p.GRUPO,p.DESCR";
        //$sql_final = "SELECT FIRST $records_per_page SKIP $start_from  * FROM (" . substr($sql_base, 6) .  " ORDER BY vl_recebido DESC";
        // $sql_final = "SELECT FIRST $records_per_page SKIP $start_from * FROM ($sql_base) ORDER BY vl_recebido DESC";

        // echo $sql_final;
        $result = ibase_query($connection, $sql_final);

        if (!$result) {
            die('Erro na consulta: ' . ibase_errmsg());
        }
    } else {
        die('Erro na contagem de registros: ' . ibase_errmsg());
    }
}
function firebird_escape_string($value)
{
    return str_replace(["'", "\""], ["''", "\"\""], $value);
}

//echo $sql_base  ; 

?>


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

<?php
$pageTitle = "Produtos Não Movimentados"; // 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">

                    <div class="col-6 text-left">
                        <h4 class="page-title">Consultar Produtos Não Movimentados</h4>

                    </div>


                    <div class="col-12">
                        <hr>
                    </div>

                    <div class="col-12">
                        <form method="get" action="" onsubmit="return validarFormulario();">
                            <div class="form-row mb-3">


                                <div class="form-group col-md-3">
                                    <label for="filial" class="col-form-label">Filial</label>
                                    <select id="filial" name="filial" class="form-control">
                                        <option value="Todos" <?php echo (!isset($filial) || $filial == "Todos") ? "selected" : ""; ?>>Todos</option>
                                        <?php foreach ($filiais as $item) : ?>
                                            <option value="<?php echo $item['CDFIL']; ?>" <?php echo (isset($filial) && $filial == $item['CDFIL']) ? "selected" : ""; ?>>
                                                <?php echo $item['DESCRFIL']; ?>
                                            </option>
                                        <?php endforeach; ?>
                                    </select>
                                </div>



                                <div class="form-group col-md-3">
                                    <label for="dias" class="col-form-label">Dias Sem Movimento</label>
                                    <input type="number" class="form-control" id="dias" name="dias" placeholder="Dias" value="<?php echo isset($dias) ? htmlspecialchars($dias) : ''; ?>">

                                </div>



                                <div class="form-group col-md-3">
                                    <label for="categoria" class="col-form-label">Grupo</label>
                                    <select name="grupo" id="grupo" class="form-control">
                                        <option value="Todos" <?php echo (isset($grupo) && $grupo == "Todos") ? "selected" : ""; ?>>Todos</option>
                                         <option value="1" <?php echo (isset($grupo) && $grupo == "1") ? "selected" : ""; ?>>Alopatia</option>
                                        <option value="2" <?php echo (isset($grupo) && $grupo == "2") ? "selected" : ""; ?>>Homeopatia</option>
                                        <option value="3" <?php echo (isset($grupo) && $grupo == "3") ? "selected" : ""; ?>>Revenda</option>
                                        <option value="4" <?php echo (isset($grupo) && $grupo == "4") ? "selected" : ""; ?>>Embalagem</option>
                                        <option value="9" <?php echo (isset($grupo) && $grupo == "9") ? "selected" : ""; ?>>Outros</option>

                                    </select>
                                </div>


                                <div class="form-group col-md-3">
                                    <label for="setor" class="col-form-label">Setor</label>
                                    <input type="number" class="form-control" id="setor" name="setor" placeholder="Setor" value="<?php echo isset($setor) ? htmlspecialchars($setor) : ''; ?>">

                                </div>

                                <div class="form-group col-md-3">
                                    <label for="categoria" class="col-form-label">Situação</label>
                                    <select name="situacao" id="situacao" class="form-control">
                                        <option value="Todos" <?php echo (isset($situacao) && $situacao == "Todos") ? "selected" : ""; ?>>Todos</option>
                                        <option value="A" <?php echo (isset($situacao) && $situacao == "A") ? "selected" : ""; ?>>Ativo</option>
                                        <option value="I" <?php echo (isset($situacao) && $situacao == "I") ? "selected" : ""; ?>>Inativo</option>


                                    </select>
                                </div>

                                <div class="form-group col-md-3">
                                    <label for="categoria" class="col-form-label">Bloqueado</label>
                                    <select name="bloqueado" id="bloqueado" class="form-control">
                                        <option value="Todos" <?php echo (isset($bloqueado) && $bloqueado == "Todos") ? "selected" : ""; ?>>Todos</option>
                                        <option value="N" <?php echo (isset($bloqueado) && $bloqueado == "N") ? "selected" : ""; ?>>Não</option>
                                        <option value="S" <?php echo (isset($bloqueado) && $bloqueado == "S") ? "selected" : ""; ?>>Sim</option>
                                        <option value="O" <?php echo (isset($bloqueado) && $bloqueado == "O") ? "selected" : ""; ?>>Oculto</option>


                                    </select>
                                </div>



                                <div class="col-12 text-right">
                                    <a href="index.php" class="btn btn-warning mr-2"><i class="mdi mdi-plus"></i> Limpar</a>
                                    <button name="pesquisar" type="submit" class="btn btn-primary"><i class="mdi mdi-magnify"></i> Pesquisar</button>
                                </div>
                        </form>
                    </div>
                </div>

                <div class="col-12">
                    <h6>
                        <?php
                        if (empty($dias)) {
                            echo 'Lista de produtos não movimentados';
                        } else {
                            echo 'Produtos não movimentados a mais de ' . $dias . ' dias';
                        }
                        ?>
                    </h6>


                    <div class="row">
                        <div class="col-12">
                            <table id="minhaTabela" class="table table-bordered table-hover table-sm" style="width:100%;">
                                <thead class="thead-light">
                                    <tr>
                                        <th>Filial</th>
                                        <th>Código</th>
                                        <th>Produto</th>
                                        <th>Grupo</th>
                                        <th>Unidade</th>
                                        <th>DT MOV</th>
                                        <th>Estoque Disponível</th>
                                        <th>Preço Custo</th>
                                        <th>Total Custo</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php
                                    $hasResults = false;
                                    $totalValorRecebido = 0; // Inicializa o totalizador
                                    if (isset($result)) {
                                        while ($row = ibase_fetch_assoc($result)) {
                                            $row['DESCR'] =  mb_convert_encoding($row['DESCR'], 'UTF-8', 'ISO-8859-1');
                                            $hasResults = true; // Indica que encontrou ao menos um resultado
                                            echo '<tr>';
                                            echo '<th scope="row">' . htmlspecialchars($row['CDFIL']) . '</th>';
                                            echo '<td><a href="#" class="open-modal-link" data-bs-toggle="modal" data-bs-target="#standard-modal" data-produto="' . htmlspecialchars($row['CDPRO']) . '">' . htmlspecialchars($row['CDPRO']) . '</a></td>';
                                            echo '<td>' . htmlspecialchars($row['DESCR']) . ' </td>';
                                            echo '<td>' . htmlspecialchars($row['GRUPO']) . ' </td>';
                                            echo '<td>' . htmlspecialchars($row['UNIDA']) . ' </td>';
                                            echo '<td data-order="' . $row['DTMOV'] . '">' . date('d/m/Y', strtotime($row['DTMOV'])) . ' </td>';

                                            // Formatação de QTDISPONIVEL
                                            $qtdDisponivel = floatval($row['QTDISPONIVEL']);
                                            if ($qtdDisponivel < 1) {
                                                echo '<td data-order="' . $row['QTDISPONIVEL'] . '">' . number_format($qtdDisponivel, 5, ',', '.') . ' </td>';
                                            } else {
                                                echo '<td data-order="' . $row['QTDISPONIVEL'] . '">' . number_format($qtdDisponivel, 2, ',', '.') . ' </td>';
                                            }

                                            // Formatação de PRCOM
                                            $prCom = floatval($row['PRCOM']);
                                            if ($prCom < 1) {
                                                echo '<td data-order="' . $row['PRCOM'] . '">' . number_format($prCom, 5, ',', '.') . ' </td>';
                                            } else {
                                                echo '<td data-order="' . $row['PRCOM'] . '">' . number_format($prCom, 2, ',', '.') . ' </td>';
                                            }

                                            // Formatação de PRCOM * QTDISPONIVEL
                                            $total = $prCom * $qtdDisponivel;
                                            if ($total < 1) {
                                                echo '<td data-order="' . $total . '">R$ ' . number_format($total, 5, ',', '.') . '</td>';
                                            } else {
                                                echo '<td data-order="' . $total . '">R$ ' . number_format($total, 2, ',', '.') . '</td>';
                                            }

                                            echo '</tr>';
                                        }
                                    }
                                    if (!$hasResults) {
                                        echo "<tr><td colspan='9' class='text-center'>Sem resultado para a consulta</td></tr>";
                                    }
                                    ?>
                                </tbody>

                            </table>

                            <!-- Adiciona a linha com o totalizador -->
                            <div class="row">
                                <div class="col-md-12">
                                    <!-- <h4>Total Valor Recebido: R$ <?php echo number_format($totalValorRecebido, 2, ',', '.'); ?></h4> -->
                                </div>
                            </div>

                        </div>

                    </div>


                </div>

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

    <!-- Vendor js -->
    <script src="../../assets/js/vendor.min.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>



</body>

</html>

<!-- No final do seu documento, antes dos scripts, adicione: -->
<!-- No final do seu documento, antes dos scripts, adicione: -->

<script>
    function showModal(modalId, title, message) {
        const modalElement = document.getElementById(modalId);
        const modal = new bootstrap.Modal(modalElement);
        modalElement.querySelector('.modal-title').textContent = title;
        modalElement.querySelector('.modal-body p').textContent = message;
        modal.show();
    }

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

        if (!valor || valor === 'Selecione' || valor === 'Todos') {
            campoValido = false;
            campo.classList.add('is-invalido');
        } else {
            campo.classList.remove('is-invalido');
        }
        return campoValido;
    }


    function validarFormulario() {
        //   const funcionarioValido = validarCampo('funcionario');
        let camposValidos = true;

        // if (!funcionarioValido) {
        const diasValido = validarCampo('dias');


        camposValidos = diasValido;
        //  }

        if (!camposValidos) {
            showModal('exampleModal', 'Informação', 'Por favor insira a quantidade de dias para realizar a consulta.');
        }

        return camposValidos;
    }


    function verificarErroNaURL() {
        const urlParams = new URLSearchParams(window.location.search);
        const errorMessage = urlParams.get('error');
        if (errorMessage) {
            showModal('exampleModal', 'Erro', errorMessage);
        }
    }

    window.onload = verificarErroNaURL;
</script>
<style>
    .is-invalido {
        box-shadow: 0 0 5px red !important;
    }
</style>
<script src="../geral/javascript.js"></script>

<!-- Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>

<!-- third party js -->
<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">

<script>
    $(document).ready(function() {
        var order = [
            [2, "asc"]
        ];

        $('#minhaTabela').DataTable({
            "language": {
                "url": "//cdn.datatables.net/plug-ins/1.10.21/i18n/Portuguese-Brasil.json"
            },
            "order": order,
            "ordering": true,
            "lengthMenu": [
                [10, 25, 50, 100, -1],
                [10, 25, 50, 100, "Todos"]
            ],
            "buttons": [
                'copyHtml5',
                'excelHtml5',
                'csvHtml5',
                'pdfHtml5'
            ],
            "dom": 'lBfrtip' // Adicionando "l" para incluir a opção de seleção de quantidade de registros por página
        });
    });
</script>

<!-- 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">Fórmulas onde contém o produto</h4>
                <!-- Corrigido o botão de fechar -->
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body">
                <div id="detalhes-produto-container">
                    <!-- O conteúdo da página buscar_detalhes_produto.php será carregado aqui -->
                    <?php
                    include('buscar_detalhes_produto.php');
                    ?>
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-light" data-bs-dismiss="modal">Fechar</button>
            </div>
        </div>
    </div>
</div>

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

        // Adicione um evento de clique aos links de abrir modal
        modalLinkElements.forEach(function(element) {
            element.addEventListener("click", function(event) {
                event.preventDefault();
                const produtoId = element.getAttribute("data-produto");

                modalContainer.innerHTML = '<p>Carregando...</p>';
                fetch('buscar_detalhes_produto.php?id=' + encodeURIComponent(produtoId))
                    .then(response => response.text())
                    .then(data => {
                        modalContainer.innerHTML = data;
                    })
                    .catch(() => {
                        modalContainer.innerHTML = '<p>Erro ao carregar os detalhes do produto.</p>';
                    });

                modal.show();
            });
        });
    });
</script>