{% extends "base.html" %}

{% block title %}Materiais{% endblock %}

{% block content %}
<div class="row mb-4">
    <div class="col-12">
        <div class="d-flex justify-content-between align-items-center">
            <h1 class="mb-0">
                <i class="fas fa-box me-2"></i>Materiais
            </h1>
            <button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#modalNovoMaterial">
                <i class="fas fa-plus me-2"></i>Novo Material
            </button>
        </div>
    </div>
</div>

<div class="card shadow-sm">
    <div class="card-body">
        <div class="row mb-4">
            <div class="col-md-6">
                <div class="input-group">
                    <span class="input-group-text">
                        <i class="fas fa-search"></i>
                    </span>
                    <input type="text" class="form-control" id="searchInput" placeholder="Pesquisar materiais...">
                </div>
            </div>
            <div class="col-md-6 text-end">
                <button id="btnExportar" class="btn btn-outline-primary">
                    <i class="fas fa-download me-2"></i>Exportar
                </button>
            </div>
        </div>

        <div class="table-responsive">
            <table class="table table-hover" id="materiaisTable">
                <thead>
                    <tr>
                        <th data-sort="militante">Militante <i class="fas fa-sort"></i></th>
                        <th data-sort="tipo">Tipo <i class="fas fa-sort"></i></th>
                        <th data-sort="descricao">Descrição <i class="fas fa-sort"></i></th>
                        <th data-sort="valor">Valor <i class="fas fa-sort"></i></th>
                        <th data-sort="data">Data <i class="fas fa-sort"></i></th>
                        <th class="text-end">Ações</th>
                    </tr>
                </thead>
                <tbody>
                    {% for material in materiais %}
                    <tr>
                        <td data-militante="{{ material.militante.nome }}">{{ material.militante.nome }}</td>
                        <td data-tipo="{{ material.tipo_material.nome }}">{{ material.tipo_material.nome }}</td>
                        <td data-descricao="{{ material.descricao }}">{{ material.descricao }}</td>
                        <td data-valor="{{ material.valor }}">R$ {{ "%.2f"|format(material.valor) }}</td>
                        <td data-data="{{ material.data_venda }}">{{ material.data_venda.strftime('%d/%m/%Y') }}</td>
                        <td class="text-end">
                            <div class="btn-group">
                                <button type="button" 
                                       class="btn btn-sm btn-outline-primary"
                                       data-bs-toggle="modal"
                                       data-bs-target="#modalEditarMaterial"
                                       data-material-id="{{ material.id }}"
                                       data-material-militante="{{ material.militante_id }}"
                                       data-material-tipo="{{ material.tipo_material_id }}"
                                       data-material-descricao="{{ material.descricao }}"
                                       data-material-valor="{{ material.valor }}"
                                       data-material-data="{{ material.data_venda.strftime('%Y-%m-%d') }}"
                                       title="Editar">
                                    <i class="fas fa-edit"></i>
                                </button>
                                <button type="button" 
                                        class="btn btn-sm btn-outline-danger"
                                        data-bs-toggle="modal"
                                        data-bs-target="#deleteModal"
                                        data-material-id="{{ material.id }}"
                                        data-material-info="{{ material.militante.nome }} - {{ material.tipo_material.nome }}"
                                        title="Excluir">
                                    <i class="fas fa-trash"></i>
                                </button>
                            </div>
                        </td>
                    </tr>
                    {% endfor %}
                </tbody>
            </table>
        </div>
    </div>
</div>

<!-- Modal Novo Material -->
<div class="modal fade" id="modalNovoMaterial" tabindex="-1">
    <div class="modal-dialog modal-dialog-centered">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">
                    <i class="fas fa-plus me-2"></i>Novo Material
                </h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
            </div>
            <div class="modal-body">
                <form id="formNovoMaterial" method="post" action="{{ url_for('novo_material') }}">
                    <div class="mb-3">
                        <label for="militante_id" class="form-label">Militante:</label>
                        <select class="form-select" id="militante_id" name="militante_id" required>
                            <option value="">Selecione um militante</option>
                            {% for militante in militantes %}
                            <option value="{{ militante.id }}">{{ militante.nome }}</option>
                            {% endfor %}
                        </select>
                    </div>
                    <div class="mb-3">
                        <label for="tipo_material_id" class="form-label">Tipo de Material:</label>
                        <select class="form-select" id="tipo_material_id" name="tipo_material_id" required>
                            <option value="">Selecione um tipo</option>
                            {% for tipo in tipos_material %}
                            <option value="{{ tipo.id }}">{{ tipo.nome }}</option>
                            {% endfor %}
                        </select>
                    </div>
                    <div class="mb-3">
                        <label for="descricao" class="form-label">Descrição:</label>
                        <input type="text" class="form-control" id="descricao" name="descricao" required>
                    </div>
                    <div class="mb-3">
                        <label for="valor" class="form-label">Valor:</label>
                        <input type="number" step="0.01" class="form-control" id="valor" name="valor" required>
                    </div>
                    <div class="mb-3">
                        <label for="data_venda" class="form-label">Data da Venda:</label>
                        <input type="date" class="form-control" id="data_venda" name="data_venda" required>
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
                <button type="submit" form="formNovoMaterial" class="btn btn-success">
                    <i class="fas fa-save me-2"></i>Salvar
                </button>
            </div>
        </div>
    </div>
</div>

<!-- Modal de Edição -->
<div class="modal fade" id="modalEditarMaterial" tabindex="-1">
    <div class="modal-dialog modal-dialog-centered">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">
                    <i class="fas fa-edit me-2"></i>Editar Material
                </h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
            </div>
            <div class="modal-body">
                <form id="formEditarMaterial" method="post">
                    <div class="mb-3">
                        <label for="editMilitante" class="form-label">Militante:</label>
                        <select class="form-select" id="editMilitante" name="militante_id" required>
                            <option value="">Selecione um militante</option>
                            {% for militante in militantes %}
                            <option value="{{ militante.id }}">{{ militante.nome }}</option>
                            {% endfor %}
                        </select>
                    </div>
                    <div class="mb-3">
                        <label for="editTipo" class="form-label">Tipo de Material:</label>
                        <select class="form-select" id="editTipo" name="tipo_material_id" required>
                            <option value="">Selecione um tipo</option>
                            {% for tipo in tipos_material %}
                            <option value="{{ tipo.id }}">{{ tipo.nome }}</option>
                            {% endfor %}
                        </select>
                    </div>
                    <div class="mb-3">
                        <label for="editDescricao" class="form-label">Descrição:</label>
                        <input type="text" class="form-control" id="editDescricao" name="descricao" required>
                    </div>
                    <div class="mb-3">
                        <label for="editValor" class="form-label">Valor:</label>
                        <input type="number" step="0.01" class="form-control" id="editValor" name="valor" required>
                    </div>
                    <div class="mb-3">
                        <label for="editData" class="form-label">Data da Venda:</label>
                        <input type="date" class="form-control" id="editData" name="data_venda" required>
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
                <button type="submit" form="formEditarMaterial" class="btn btn-success">
                    <i class="fas fa-save me-2"></i>Salvar
                </button>
            </div>
        </div>
    </div>
</div>

<!-- Modal de Confirmação de Exclusão -->
<div class="modal fade" id="deleteModal" tabindex="-1">
    <div class="modal-dialog modal-dialog-centered">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">
                    <i class="fas fa-exclamation-triangle me-2 text-danger"></i>Confirmar Exclusão
                </h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
            </div>
            <div class="modal-body">
                <p>Tem certeza que deseja excluir o material <strong id="materialInfo"></strong>?</p>
                <p class="text-danger mb-0">Esta ação não pode ser desfeita.</p>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
                <form id="formDeleteMaterial" method="post" style="display: inline;">
                    <button type="submit" class="btn btn-danger">
                        <i class="fas fa-trash me-2"></i>Excluir
                    </button>
                </form>
            </div>
        </div>
    </div>
</div>

{% block scripts %}
<script>
document.addEventListener('DOMContentLoaded', function() {
    // Configuração da tabela
    const table = document.getElementById('materiaisTable');
    const searchInput = document.getElementById('searchInput');
    const exportBtn = document.getElementById('btnExportar');
    
    // Função de pesquisa
    searchInput.addEventListener('input', function() {
        const searchTerm = this.value.toLowerCase();
        const rows = table.getElementsByTagName('tbody')[0].getElementsByTagName('tr');
        
        Array.from(rows).forEach(row => {
            const text = row.textContent.toLowerCase();
            row.style.display = text.includes(searchTerm) ? '' : 'none';
        });
    });
    
    // Função de ordenação
    const headers = table.getElementsByTagName('th');
    Array.from(headers).forEach(header => {
        if (header.dataset.sort) {
            header.addEventListener('click', () => {
                const column = header.dataset.sort;
                const tbody = table.getElementsByTagName('tbody')[0];
                const rows = Array.from(tbody.getElementsByTagName('tr'));
                
                rows.sort((a, b) => {
                    const aValue = a.querySelector(`td[data-${column}]`).dataset[column];
                    const bValue = b.querySelector(`td[data-${column}]`).dataset[column];
                    
                    if (column === 'valor') {
                        return parseFloat(aValue) - parseFloat(bValue);
                    } else if (column === 'data') {
                        return new Date(aValue) - new Date(bValue);
                    }
                    return aValue.localeCompare(bValue);
                });
                
                if (header.classList.contains('asc')) {
                    rows.reverse();
                    header.classList.remove('asc');
                    header.classList.add('desc');
                } else {
                    header.classList.remove('desc');
                    header.classList.add('asc');
                }
                
                tbody.innerHTML = '';
                rows.forEach(row => tbody.appendChild(row));
            });
        }
    });
    
    // Configuração do modal de edição
    const editModal = document.getElementById('modalEditarMaterial');
    editModal.addEventListener('show.bs.modal', function(event) {
        const button = event.relatedTarget;
        const materialId = button.dataset.materialId;
        const form = this.querySelector('form');
        
        form.action = `/editar_material/${materialId}`;
        
        document.getElementById('editMilitante').value = button.dataset.materialMilitante;
        document.getElementById('editTipo').value = button.dataset.materialTipo;
        document.getElementById('editDescricao').value = button.dataset.materialDescricao;
        document.getElementById('editValor').value = button.dataset.materialValor;
        document.getElementById('editData').value = button.dataset.materialData;
    });
    
    // Configuração do modal de exclusão
    const deleteModal = document.getElementById('deleteModal');
    deleteModal.addEventListener('show.bs.modal', function(event) {
        const button = event.relatedTarget;
        const materialId = button.dataset.materialId;
        const materialInfo = button.dataset.materialInfo;
        
        document.getElementById('materialInfo').textContent = materialInfo;
        document.getElementById('formDeleteMaterial').action = `/deletar_material/${materialId}`;
    });
    
    // Configuração do botão de exportação
    exportBtn.addEventListener('click', function() {
        const rows = Array.from(table.getElementsByTagName('tbody')[0].getElementsByTagName('tr'));
        const csv = [
            ['Militante', 'Tipo', 'Descrição', 'Valor', 'Data'],
            ...rows.map(row => [
                row.cells[0].textContent,
                row.cells[1].textContent,
                row.cells[2].textContent,
                row.cells[3].textContent,
                row.cells[4].textContent
            ])
        ].map(row => row.join(',')).join('\n');
        
        const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });
        const link = document.createElement('a');
        link.href = URL.createObjectURL(blob);
        link.download = 'materiais.csv';
        link.click();
    });
});
</script>
{% endblock %}
{% endblock %} 
