# Guia de Migração para Sistema de Layout

## Arquivos dm_* a migrar (8 restantes):

### 1. **dm_motorista/index.php**
**Colunas (do select.php e tabela):**
```
id, nome, cpf, rastreador, rastreador2, classificacao, centrocusto, gestor, status
```

**Mapeamento:**
```php
$layout_padrao_json = json_encode([
    'columns' => [
        0 => ['id' => 'id', 'title' => 'Id', 'visible' => true],
        1 => ['id' => 'nome', 'title' => 'Nome', 'visible' => true],
        2 => ['id' => 'cpf', 'title' => 'CPF', 'visible' => true],
        3 => ['id' => 'rastreador', 'title' => 'Rastreador', 'visible' => true],
        4 => ['id' => 'rastreador2', 'title' => 'Rastreador 2', 'visible' => true],
        5 => ['id' => 'classificacao', 'title' => 'Classificação', 'visible' => true],
        6 => ['id' => 'centrocusto', 'title' => 'Centro de Custo', 'visible' => true],
        7 => ['id' => 'gestor', 'title' => 'Gestor', 'visible' => true],
        8 => ['id' => 'status', 'title' => 'Status', 'visible' => true]
    ],
    'order' => [0, 1, 2, 3, 4, 5, 6, 7, 8]
]);
```

### 2. **dm_gestor/index.php**
**Colunas:** id, nome, email, telefone, status

### 3. **dm_carreta/index.php**
**Colunas:** id, placa, proprietario, modelo, cor, status

### 4. **dm_tipoocorrencia/index.php**
**Colunas:** id, descricao, nivel, status

### 5. **dm_veiculo/index.php**
**Colunas:** Múltiplas - verificar select.php

### 6. **dm_ponto/index.php**
**Colunas:** Múltiplas - verificar select.php

### 7. **dm_cliente/index.php**
**Colunas:** Múltiplas - verificar select.php

### 8. **dm_clienteorcado/index.php**
**Colunas:** Múltiplas - verificar select.php

## Template Aplicado:

Para cada arquivo, aplicar o padrão:

```php
<?php require ('../include/autenticacao.php'); 
$empresa            = $_SESSION['Codempresa'];
$grupotitulo = 'Cadastro';
$rotinatitulo = 'SEU_TITULO_AQUI';
$usuario = $_SESSION['UsuarioID'];
$rotina_layout = 'dm_suarotina'; // IMPORTANTE: identificador único

// JSON padrão da estrutura de colunas
$layout_padrao_json = json_encode([
    'columns' => [
        // ... suas colunas aqui
    ],
    'order' => [0, 1, 2, ...] // ordem padrão
]);

include ('../include/inicio.php');

// ... seus filtros e includes ...

include ('select.php');

// Buscar layout personalizado do usuário
$query_layout = "SELECT * FROM public.sis005_layout WHERE usuario = $usuario AND rotina = '$rotina_layout'";
$result_layout = pg_query($bdcon, $query_layout);
$layout = pg_fetch_assoc($result_layout);

if (!$layout) {
    $layout = [
        'colunasorder' => $layout_padrao_json,
        'usuario' => $usuario,
        'rotina' => $rotina_layout
    ];
}

$colunas_order_json = json_decode($layout['colunasorder'], true);
$order = $colunas_order_json['order'];
$colunas = $colunas_order_json['columns'];

// Passar variáveis PHP para JavaScript
?>
<script>
  window.rotinaLayout = '<?= $rotina_layout ?>';
  window.usuarioAtual = <?= $usuario ?>;
  window.colunasStructure = <?= json_encode($colunas) ?>;
  window.orderStructure = <?= json_encode($order) ?>;
</script>

<?php include ('../include/lista.php'); ?>

<!-- Sua tabela aqui, renderizando colunas dinamicamente -->

<?php include ('../include/fim.php');  ?>
<!-- Bootstrap JS Explícito -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<!-- Script de edição de layout -->
<script src="../layout/editar.js"></script>
```

## Processo para Cada Arquivo:

1. ✅ Abrir o arquivo dm_*/index.php
2. ✅ Verificar select.php para saber as colunas disponíveis
3. ✅ Mapear colunas no JSON padrão
4. ✅ Adicionar código de busca de layout do banco
5. ✅ Passar variáveis globais
6. ✅ Incluir lista.php antes da tabela
7. ✅ Modificar tabela para renderizar colunas dinamicamente
8. ✅ Adicionar Bootstrap JS e editar.js no final

## Automação Possível:

Se quiser, posso criar um script que:
- Identifica automaticamente as colunas do select.php
- Gera o JSON padrão
- Aplica o padrão em todos os arquivos de uma vez

Basta confirmar a estratégia! 🚀
