<?php
require '../../conexao/conexao.php';
require '../../conexao/acesso.php';
require '../../configuacoes.php';
require '../querys_financeiro/movimento_caixa.php';
require '../querys_financeiro/forma-pagamento.php';
require '../querys_financeiro/categorias.php';
require '../querys_financeiro/contas.php';

$movimentoCaixa = new MovimentoCaixa($connectionmysqlfinanceiro);
$formasPagamento = new FormasPagamento($connectionmysqlfinanceiro);
$categorias = new Categorias($connectionmysqlfinanceiro);
$contas = new Contas($connectionmysqlfinanceiro);

// Processa o formulário quando enviado
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $movimentoCaixa->updateMovimento();
}

$id = $_GET['id'];

$movimentos = $movimentoCaixa->listarMovimentos('', '', '', '', '', '', '', '', '', '', $id);

$movimento = !empty($movimentos) ? $movimentos[0] : null;

$tipo = $movimento['tipo'];

// Lista as formas de pagamento e categorias para o formulário
$lista_formas_pagamento = $formasPagamento->listarFormasPagamento();
$lista_categorias = $categorias->listarCategorias('', "AND tipo = '$tipo'");
$lista_subcategorias = $categorias->listarSubcategorias($movimento['id_categoria'], $movimento['id_subcategoria']);
$lista_contas = $contas->listarContas('', "AND ativo = 1");

// Exibe mensagem de erro/sucesso se existir
if (isset($_SESSION['message'])) {
    $alertClass = $_SESSION['message_type'] == 'success' ? 'success' : 'danger';
    echo "<div class='alert alert-{$alertClass} alert-dismissible fade show' role='alert'>
            " . htmlspecialchars($_SESSION['message']) . "
            <button type='button' class='close' data-dismiss='alert' aria-label='Close'>
                <span aria-hidden='true'>&times;</span>
            </button>
          </div>";
    unset($_SESSION['message']);
    unset($_SESSION['message_type']);
}

if ($movimento['tipo'] == 'D') {
    $pageTitle = "Alterar Movimento Despesa";
} else {
    $pageTitle = "Alterar Movimento Recebimento";
}
include('../header.php'); ?>

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

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

<head>
    <link rel="icon" href="/financeiromandareceita/logo-sm.png">
    <link rel="shortcut icon" href="/financeiromandareceita/logo-sm.png">
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.16/jquery.mask.min.js"></script>
    <style>
        .form-group {
            margin-bottom: 1rem;
        }
    </style>
</head>

<body>
    <div class="wrapper candidato">
        <div class="container-fluid">
            <div class="card-box mt-3">
                <div class="row">
                    <div class="col-6">
                        <h4 class="page-title">
                            Editar <?php echo $tipo == 'R' ? 'Recebimento' : 'Pagamento'; ?>
                        </h4>
                    </div>
                    <div class="col-6 text-right">
                        <button onclick="history.back()" class="btn btn-light">
                            <i class="mdi mdi-keyboard-backspace"></i> Voltar
                        </button>
                    </div>

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

                    <div class="col-12">
                        <form id="movimentoForm" method="post">
                            <input type="hidden" name="id" value="<?php echo $_GET['id']; ?>">
                            <input type="hidden" name="tipo" value="<?php echo $tipo; ?>">

                            <div class="row">
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label for="nome">Nome/Descrição</label>
                                        <input type="text" class="form-control" <?php if ($movimento['pago'] == 'S') echo 'disabled'; ?> id="nome" name="nome" value="<?php echo htmlspecialchars($movimento['nome']); ?>" required>
                                    </div>
                                </div>
                                <div class="col-md-3">
                                    <div class="form-group">
                                        <label for="valor">Valor</label>
                                        <input type="text" class="form-control money" <?php if ($movimento['pago'] == 'S') echo 'disabled'; ?> id="valor" name="valor" value="<?php echo number_format($movimento['valor'], 2, ',', '.'); ?>" required>
                                    </div>
                                </div>
                                <div class="col-md-3">
                                    <div class="form-group">
                                        <label for="desconto">Desconto</label>
                                        <input type="text" class="form-control money" <?php if ($movimento['pago'] == 'S') echo 'disabled'; ?> id="desconto" name="desconto" value="<?php echo number_format($movimento['desconto'], 2, ',', '.'); ?>">
                                    </div>
                                </div>
                            </div>

                            <div class="row">
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label for="data">Data</label>
                                        <input type="date" <?php if ($movimento['pago'] == 'S') echo 'disabled'; ?> class="form-control" id="data" name="data" value="<?php echo $movimento['data']; ?>" required>
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label for="id_conta">Conta</label>
                                        <select class="form-control" id="id_conta" <?php if ($movimento['pago'] == 'S') echo 'disabled'; ?> name="id_conta" required>
                                            <option value="">Selecione uma conta</option>
                                            <?php foreach ($lista_contas as $conta) : ?>
                                                <option value="<?php echo $conta['id']; ?>" <?php echo $movimento['id_conta_banco'] == $conta['id'] ? 'selected' : ''; ?>>
                                                    <?php echo htmlspecialchars($conta['nome_conta']); ?>
                                                </option>
                                            <?php endforeach; ?>
                                        </select>
                                    </div>
                                </div>
                            </div>

                            <div class="row">
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label for="id_forma_pagamento">Forma de Pagamento</label>
                                        <select class="form-control" id="id_forma_pagamento" <?php if ($movimento['pago'] == 'S') echo 'disabled'; ?> name="id_forma_pagamento" required>
                                            <option value="">Selecione uma forma de pagamento</option>
                                            <?php foreach ($lista_formas_pagamento as $forma) : ?>
                                                <option value="<?php echo $forma['id']; ?>" <?php echo $movimento['id_forma_pagamento'] == $forma['id'] ? 'selected' : ''; ?>>
                                                    <?php echo htmlspecialchars($forma['nome_forma_pagamento']); ?>
                                                </option>
                                            <?php endforeach; ?>
                                        </select>
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label for="n_parcelas">N° de Parcelas</label>
                                        <select class="form-control" name="n_parcelas" <?php if ($movimento['pago'] == 'S') echo 'disabled'; ?> id="n_parcelas" required>
                                            <?php
                                            for ($i = 1; $i <= 12; $i++) {
                                                $selected = ($i == $movimento['n_parcela']) ? 'selected' : '';
                                                echo "<option value='$i' $selected>" . ($i == 1 ? "À vista" : "$i Parcelas") . "</option>";
                                            }
                                            ?>
                                        </select>
                                    </div>
                                </div>
                            </div>

                            <div class="row">
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label for="id_categoria">Categoria</label>
                                        <select class="form-control" id="id_categoria" <?php if ($movimento['pago'] == 'S') echo 'disabled'; ?> name="id_categoria" required>
                                            <option value="">Selecione uma categoria</option>
                                            <?php foreach ($lista_categorias as $categoria) : ?>
                                                <option value="<?php echo $categoria['id']; ?>" <?php echo $movimento['id_categoria'] == $categoria['id'] ? 'selected' : ''; ?>>
                                                    <?php echo htmlspecialchars($categoria['nome']); ?>
                                                </option>
                                            <?php endforeach; ?>
                                        </select>
                                    </div>
                                </div>

                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label for="id_subcategoria">Subcategoria</label>
                                        <select class="form-control" id="id_subcategoria" <?php if ($movimento['pago'] == 'S') echo 'disabled'; ?> name="id_subcategoria">
                                            <option value="">Selecione uma categoria primeiro</option>
                                            <?php foreach ($lista_subcategorias as $subcategoria) : ?>
                                                <option value="<?php echo $subcategoria['id']; ?>" <?php echo $movimento['id_subcategoria'] == $subcategoria['id'] ? 'selected' : ''; ?>>
                                                    <?php echo htmlspecialchars($subcategoria['nome_subcategoria']); ?>
                                                </option>
                                            <?php endforeach; ?>
                                        </select>
                                    </div>
                                </div>
                            </div>

                            <?php if ($movimento['juros'] > 0) : ?>
                                <div class="row">
                                    <div class="col-md-3">
                                        <div class="form-group">
                                            <label for="juros">Juros Cobrados</label>
                                            <input type="text" class="form-control money" id="juros" <?php if ($movimento['pago'] == 'S') echo 'disabled'; ?> name="juros" value="<?php echo number_format($movimento['juros'], 2, ',', '.'); ?>" required>
                                        </div>
                                    </div>
                                </div>
                            <?php endif; ?>

                            <?php if ($movimento['pago'] <> 'S') : ?>
                                <div class="row">
                                    <div class="col-12 text-right">
                                        <button type="submit" class="btn btn-primary">
                                            <i class="mdi mdi-content-save"></i> Salvar Alterações
                                        </button>
                                    </div>
                                </div>
                            <?php endif; ?>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>

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

    <script src="../../../assets/js/vendor.min.js"></script>
    <script src="../../../assets/libs/jquery-knob/jquery.knob.min.js"></script>
    <script src="../../../assets/js/app.min.js"></script>
    <script src="../../geral/javascript.js"></script>
    <script src="../../../assets/js/funcoes.js"></script>

    <script>
        $(document).ready(function() {
            // Máscara para valor monetário
            $('.money').mask('#.##0,00', {
                reverse: true
            });
        });
    </script>

    <script>
        document.getElementById('id_categoria').addEventListener('change', function() {
            var categoriaId = this.value;
            var subcategoriaSelect = document.getElementById('id_subcategoria');

            // Limpa as opções atuais
            subcategoriaSelect.innerHTML = '<option value="">Carregando...</option>';

            if (categoriaId) {
                // Faz a requisição AJAX
                fetch('get_subcategorias.php', {
                        method: 'POST',
                        headers: {
                            'Content-Type': 'application/x-www-form-urlencoded',
                        },
                        body: 'id_categoria=' + categoriaId
                    })
                    .then(response => response.json())
                    .then(data => {
                        // Limpa o select
                        subcategoriaSelect.innerHTML = '<option value="">Selecione uma subcategoria</option>';

                        // Adiciona as novas opções
                        data.forEach(function(subcategoria) {
                            var option = document.createElement('option');
                            option.value = subcategoria.id;
                            option.textContent = subcategoria.nome_subcategoria;
                            subcategoriaSelect.appendChild(option);
                        });
                    })
                    .catch(error => {
                        console.error('Erro:', error);
                        subcategoriaSelect.innerHTML = '<option value="">Erro ao carregar subcategorias</option>';
                    });
            } else {
                subcategoriaSelect.innerHTML = '<option value="">Selecione uma categoria primeiro</option>';
            }
        });
    </script>

</body>

</html>