🗄️ Gerenciamento de Operações com Tacógrafos: Controle e Eficiência

Acompanhe e analise os registros de tacógrafo para garantir conformidade e otimizar o desempenho dos motoristas.
🔗 Tabela relacionada: veiculos

📋 19 colunas 🔗 3 relacionamentos 🎮 9 controles 👁️ view_veiculos_tacografos_operacoes 📱 QR Code 🔑 PRIMARY KEY 🎮 1 ações externas

📋 Estrutura da Tabela

A tabela veiculos_tacografos_operacoes possui 19 colunas.

🔑 Id PRIMARY KEY
🔑 PRIMARY KEY🔒 Somente leitura💾 Grava📋 Auditoria
Campo Tabela id
Campo VIEW / Exibido id_operacao 🔹 Alias na VIEW: id_operacao
Tipo number (readonly - PRIMARY KEY)
Data Table veiculos_tacografos_operacoes,auditor_veiculos_tacografos_operacoes 📋 Grava em auditoria
Descrição

Campo id

🔑 PRIMARY KEY

Campo na tabela: id

Alias na VIEW: id_operacao

Readonly: ✅ Gerado automaticamente pelo sistema

Grava em auditoria: ✅ Sim

Formsearch: ✅ Permite busca avançada

📱 qrcode: Gerar QR Code Documento
📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou id
  • Alias OndeVou id_operacao
  • Tabela OndeVou veiculos_tacografos_operacoes,auditor_veiculos_...
🔍 Formsearch
  • {
      "required": ""
    }
🎮 Controls Acao
  • {
      "qrcode": {
        "acao": "getQRcode",
        "messagem": "Gerar QR Code"
      }
    }
  • Alias: id_operacao
  • Tabelas: veiculos_tacografos_operacoes, auditor_veiculos_tacografos_operacoes ✅
  • ControlsAcao: ✓
  • FormSearch: ✓
  • 🔑 PRIMARY KEY
  • VIEW: id_operacao
  • 📋 Auditoria
  • 📋 FormSearch
📋 qrcode
🔒 Somente leitura📋 Somente view📱 QRCode: veitacope
Campo Tabela qrcode
Campo VIEW / Exibido qrcode ⚠️ (somente view)
Tipo canvas (QR Code: veitacope)
Data Table qrcode
Descrição

Campo qrcode

📱 QR Code

Tipo: veitacope (veitacope)

Texto: Campos

Formato: ondevou_veitacope_{participante}_{id}

Uso: Identificação física do registro. Clique para imprimir.

Geração: Automática ao salvar o registro. Biblioteca QRious.

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
  • Tipo de input canvas
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou qrcode
  • Tabela OndeVou qrcode
  • Tabelas: qrcode (só view)
  • QRCode: veitacope
📋 Participante
✅ Obrigatório🔒 Somente leitura👁️ Oculto💾 Grava
Campo Tabela participante
Campo VIEW / Exibido participante
Tipo text
Data Table veiculos_tacografos_operacoes,auditor_veiculos_tacografos_operacoes
Descrição

Campo participante

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
Validacao
  • Obrigatório ✅ Sim
  • Somente leitura 🔒 Sim
⚙️ Comportamento
  • Valor padrão 1
📊 Dados
  • Campo OndeVou participante
  • Tabela OndeVou veiculos_tacografos_operacoes,auditor_veiculos_...
  • Tabelas: veiculos_tacografos_operacoes, auditor_veiculos_tacografos_operacoes ✅
  • Hidden: ✓ (dados ocultos)
  • Value: 1
📋 Data e hora
✅ Obrigatório💾 Grava
Campo Tabela data_tacografo
Campo VIEW / Exibido data_hora_tacografo
Tipo date
Data Table veiculos_tacografos_operacoes
Descrição

Campo data e hora

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados date
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou data_tacografo
  • Alias OndeVou data_hora_tacografo
  • Tabela OndeVou veiculos_tacografos_operacoes
  • Alias: data_hora_tacografo
  • Tabelas: veiculos_tacografos_operacoes ✅
📋 Placa
✅ Obrigatório🔒 Somente leitura📋 Somente view
Campo Tabela placa_veiculo
Campo VIEW / Exibido placa_veiculo ⚠️ (somente view)
Tipo text
Data Table view_veiculos_tacografos_operacoes
Descrição

Campo placa

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
Validacao
  • Obrigatório ✅ Sim
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou placa_veiculo
  • Tabela OndeVou view_veiculos_tacografos_operacoes
  • Tabelas: view_veiculos_tacografos_operacoes (só view)
📋 Tacógrafo
✅ Obrigatório💾 Grava🔗 getdata
Campo Tabela id_tacografo
Campo VIEW / Exibido descricao_veiculo (ID: id_tacografo)
Tipo number (getdata)
Data Table veiculos_tacografos_operacoes,auditor_veiculos_tacografos_operacoes
Descrição

Campo tacógrafo

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou descricao_veiculo
  • ID OndeVou id_tacografo
  • Tabela OndeVou veiculos_tacografos_operacoes,auditor_veiculos_...
🔗 Getdata
  • {
      "view": "view_veiculos_tacografos",
      "data": "view_veiculos_tacografos",
      "text-empty-search": "sim",
      "campo-data-id": "id_tacografo",
      "campo-data-value-input": "id_tacografo,placa_veiculo,descricao_veiculo",
      "campo-data-input-select-view": "id_tacografo,placa_veiculo,descricao_veiculo,nome_situacao_tacografo",
      "query": {
        "select": "* from view_veiculos_tacografos",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_tacografo,` `,placa_veiculo,` `,descricao_veiculo))) ilike `%",
              "right": "%`) and (participante=`1`)"
            }
          }
        },
        "order": "id_tacografo desc"
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_tacografo
  • Tabelas: veiculos_tacografos_operacoes, auditor_veiculos_tacografos_operacoes ✅
  • FormSearch: ✓
📋 Período
✅ Obrigatório💾 Grava🔗 getdata
Campo Tabela id_periodo
Campo VIEW / Exibido nome_periodo_tacografo (ID: id_periodo_tacografo)
Tipo number (getdata)
Data Table veiculos_tacografos_operacoes
Descrição

Campo período

Getdata🔗 veiculos_tacografos_periodos
📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou nome_periodo_tacografo
  • ID OndeVou id_periodo
  • ID Alias OndeVou id_periodo_tacografo
  • Tabela OndeVou veiculos_tacografos_operacoes
🔗 Getdata
  • {
      "view": "view_veiculos_tacografos_periodos",
      "data": "view_veiculos_tacografos_periodos",
      "text-empty-search": "sim",
      "campo-data-id": "id_periodo_tacografo",
      "campo-data-value-input": "id_periodo_tacografo,nome_periodo_tacografo",
      "campo-data-input-select-view": "id_periodo_tacografo,nome_periodo_tacografo",
      "query": {
        "select": "* from view_veiculos_tacografos_periodos",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_periodo_tacografo,` `,nome_periodo_tacografo))) ilike `%",
              "right": "%`)"
            }
          }
        },
        "order": "id_periodo_tacografo asc"
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_periodo
  • ID VIEW: id_periodo_tacografo
  • Tabelas: veiculos_tacografos_operacoes ✅
  • FormSearch: ✓
📋 KM inicial
💾 Grava
Campo Tabela km_inicial
Campo VIEW / Exibido km_inicial
Tipo number
Data Table veiculos_tacografos_operacoes
Descrição

Campo km inicial

📋 Todos os Atributos
Eventos
  • Tecla solta setInputFormatApenasNumeros(this) 📌 setInputFormatApenasNumeros
  • Tecla pressionada/solta return SomenteNumero(event) 📌 return
🎨 Formatacao
  • Tipo de dados number
📊 Dados
  • Campo OndeVou km_inicial
  • Tabela OndeVou veiculos_tacografos_operacoes
  • Tabelas: veiculos_tacografos_operacoes ✅
  • Eventos: keyup
📋 KM final
💾 Grava
Campo Tabela km_final
Campo VIEW / Exibido km_final
Tipo number
Data Table veiculos_tacografos_operacoes
Descrição

Campo km final

📋 Todos os Atributos
Eventos
  • Tecla solta setInputFormatApenasNumeros(this) 📌 setInputFormatApenasNumeros
  • Tecla pressionada/solta return SomenteNumero(event) 📌 return
🎨 Formatacao
  • Tipo de dados number
📊 Dados
  • Campo OndeVou km_final
  • Tabela OndeVou veiculos_tacografos_operacoes
  • Tabelas: veiculos_tacografos_operacoes ✅
  • Eventos: keyup
📋 Horimetro inicial
💾 Grava
Campo Tabela horimetro_inicial
Campo VIEW / Exibido horimetro_inicial
Tipo number
Data Table veiculos_tacografos_operacoes
Descrição

Campo horimetro inicial

📋 Todos os Atributos
Eventos
  • Tecla solta setInputFormatApenasNumeros(this) 📌 setInputFormatApenasNumeros
  • Tecla pressionada/solta return SomenteNumero(event) 📌 return
🎨 Formatacao
  • Tipo de dados number
📊 Dados
  • Campo OndeVou horimetro_inicial
  • Tabela OndeVou veiculos_tacografos_operacoes
  • Tabelas: veiculos_tacografos_operacoes ✅
  • Eventos: keyup
📋 Horimetro final
💾 Grava
Campo Tabela horimetro_final
Campo VIEW / Exibido horimetro_final
Tipo number
Data Table veiculos_tacografos_operacoes
Descrição

Campo horimetro final

📋 Todos os Atributos
Eventos
  • Tecla solta setInputFormatApenasNumeros(this) 📌 setInputFormatApenasNumeros
  • Tecla pressionada/solta return SomenteNumero(event) 📌 return
🎨 Formatacao
  • Tipo de dados number
📊 Dados
  • Campo OndeVou horimetro_final
  • Tabela OndeVou veiculos_tacografos_operacoes
  • Tabelas: veiculos_tacografos_operacoes ✅
  • Eventos: keyup
📋 Data inicial
✅ Obrigatório💾 Grava
Campo Tabela data_inicial
Campo VIEW / Exibido data_inicial
Tipo date
Data Table veiculos_tacografos_operacoes
Descrição

Campo data inicial

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados date
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou data_inicial
  • Tabela OndeVou veiculos_tacografos_operacoes
  • Tabelas: veiculos_tacografos_operacoes ✅
📋 Data final prevista
✅ Obrigatório💾 Grava
Campo Tabela data_final_prevista
Campo VIEW / Exibido data_final_prevista
Tipo date
Data Table veiculos_tacografos_operacoes
Descrição

Campo data final prevista

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados date
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou data_final_prevista
  • Tabela OndeVou veiculos_tacografos_operacoes
  • Tabelas: veiculos_tacografos_operacoes ✅
📋 Data final
✅ Obrigatório💾 Grava
Campo Tabela data_final
Campo VIEW / Exibido data_final
Tipo date
Data Table veiculos_tacografos_operacoes
Descrição

Campo data final

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados date
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou data_final
  • Tabela OndeVou veiculos_tacografos_operacoes
  • Tabelas: veiculos_tacografos_operacoes ✅
📋 Observações
💾 Grava
Campo Tabela informacoes_adicionais
Campo VIEW / Exibido informacoes_adicionais_operacao
Tipo text
Data Table veiculos_tacografos_operacoes
Descrição

Campo observações

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
📊 Dados
  • Campo OndeVou informacoes_adicionais
  • Alias OndeVou informacoes_adicionais_operacao
  • Tabela OndeVou veiculos_tacografos_operacoes
  • Alias: informacoes_adicionais_operacao
  • Tabelas: veiculos_tacografos_operacoes ✅
📋 Membro
🔒 Somente leitura📋 Somente view🔗 getdata
Campo Tabela id_membro
Campo VIEW / Exibido nome_membro ⚠️ (somente view)
Tipo number (getdata)
Data Table auditor_veiculos_tacografos_operacoes
Descrição

Campo membro

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_membro
  • ID OndeVou id_membro
  • Tabela OndeVou auditor_veiculos_tacografos_operacoes
🔗 Getdata
  • {
      "view": "view_membros",
      "data": "view_membros",
      "campo-data-id": "id_membro",
      "campo-data-value-input": "nome_membro",
      "campo-data-input-select-view": "nome_membro,email_membro",
      "query": {
        "select": "* from view_membros",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_membro,` `,nome_membro,` `,email_membro))) ilike `%",
              "right": "%`)"
            }
          }
        }
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_membro
  • Tabelas: auditor_veiculos_tacografos_operacoes (só view)
  • FormSearch: ✓
📋 Latitude
🔒 Somente leitura👁️ Oculto📋 Somente view
Campo Tabela latitude
Campo VIEW / Exibido latitude ⚠️ (somente view)
Tipo number
Data Table auditor_veiculos_tacografos_operacoes
Descrição

Campo latitude

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou latitude
  • Tabela OndeVou auditor_veiculos_tacografos_operacoes
  • Tabelas: auditor_veiculos_tacografos_operacoes (só view)
  • Hidden: ✓ (dados ocultos)
📋 Longitude
🔒 Somente leitura👁️ Oculto📋 Somente view
Campo Tabela longitude
Campo VIEW / Exibido longitude ⚠️ (somente view)
Tipo number
Data Table auditor_veiculos_tacografos_operacoes
Descrição

Campo longitude

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou longitude
  • Tabela OndeVou auditor_veiculos_tacografos_operacoes
  • Tabelas: auditor_veiculos_tacografos_operacoes (só view)
  • Hidden: ✓ (dados ocultos)
📋 Ip
🔒 Somente leitura👁️ Oculto📋 Somente view
Campo Tabela ip
Campo VIEW / Exibido ip ⚠️ (somente view)
Tipo text
Data Table auditor_veiculos_tacografos_operacoes
Descrição

Campo ip

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou ip
  • Tabela OndeVou auditor_veiculos_tacografos_operacoes
  • Tabelas: auditor_veiculos_tacografos_operacoes (só view)
  • Hidden: ✓ (dados ocultos)
📋 Data inclusão
🔒 Somente leitura👁️ Oculto📋 Somente view
Campo Tabela data_inclusao_tacografo
Campo VIEW / Exibido data_inclusao_tacografo ⚠️ (somente view)
Tipo date
Data Table auditor_veiculos_tacografos_operacoes
Descrição

Campo data inclusão

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados date
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou data_inclusao_tacografo
  • Tabela OndeVou auditor_veiculos_tacografos_operacoes
  • Tabelas: auditor_veiculos_tacografos_operacoes (só view)
  • Hidden: ✓ (dados ocultos)
📌 Legenda: 🔑 PRIMARY KEY ✅ Obrigatório 🔒 Somente leitura 👁️ Oculto 💾 Grava 📋 Somente view 🔗 getdata 📝 putdata 🔢 AutoInc 📱 QR Code 📋 Auditoria 📱 GetCollector

🔗 Relacionamentos

Tabelas relacionadas via getdata.

veiculos_tacografos · Auxiliar: Tacógrafo 📄
veiculos_tacografos_periodos · Auxiliar: Período 📚
membros · Principal: Membro 📄

🔍 Filtros (formsearch)

Campos disponíveis para filtragem na busca.

Apenas veículos ativos checkbox
Apenas veículos inativos checkbox
Apenas veículos disponíveis checkbox
Apenas veículos indisponíveis checkbox

🎮 Controles Disponíveis

Ações que o usuário pode realizar na tabela.

📂 Controle
🔘 Add add 🔘 Copy copy 🔘 Edit edit 💾 Salvar save 🔘 Delete delete 🔘 Remove remove 🔘 Marker marker
📂 Documento
📱 Gerar QR Code qrcode Linha do tempo timeline

👁️ View Associada

Nome: view_veiculos_tacografos_operacoes

📱 QR Code

A tabela veiculos_tacografos_operacoes possui geração automática de QR Code.

Configuração

'qrcode': {
    'input': {
        'readonly': 'readonly',
        'type': 'canvas',
        'qrcode-type': 'veitacope',
        'qrcode-text-fields': '—',
        'data-type-ondevou': 'text',
        'data-field-ondevou': 'qrcode',
        'data-table-ondevou': 'qrcode'
    }
}

Como funciona

  • Geração automática: Ao salvar o registro
  • Formato: ondevou_veitacope_{participante}_{id}
  • Uso: Identificação física do registro

🔑 PRIMARY KEY - Campo Id

O campo Id é a chave primária da tabela veiculos_tacografos_operacoes.

Configuração

'Id': {
    'input': {
        'readonly': 'readonly',
        'data-type-ondevou': 'number',
        'data-field-ondevou': 'id',
        "data-field-alias-ondevou": "id_operacao",
        'data-table-ondevou': 'veiculos_tacografos_operacoes,auditor_veiculos_tacografos_operacoes'
    }
}

Comportamento

  • 🔒 Readonly: Campo não editável
  • 📊 Tipo: number
  • 🔹 Alias na VIEW: id_operacao
  • 📋 Auditoria: Grava em veiculos_tacografos_operacoes,auditor_veiculos_tacografos_operacoes

🎮 Controls-Ação

📂 Documento
qrcode: Gerar QR Code getQRcode

💾 JSON da Tabela

Estrutura completa em JSON para integração com APIs e IAs.

code Clique para ver o JSON completo 38 KB
{
  "table-id": "veiculos_tacografos_operacoes",
  "data-table-ondevou": "veiculos_tacografos_operacoes",
  "data-table-auditor": "auditor_veiculos_tacografos_operacoes",
  "data-field-auditor": "id_operacao",
  "table-class": "highlight",
  "controls": [
    "add",
    "copy",
    "edit",
    "save",
    "delete",
    "remove",
    "qrcode",
    "marker",
    "timeline"
  ],
  "html": {
    "div": {
      "before": "",
      "after": ""
    }
  },
  "entidade": {
    "page": "veiculo/tacografo/operacao",
    "title": "Operação com tacógrafo de veículo",
    "table": "veiculos_tacografos_operacoes",
    "campo_id": "id_operacao",
    "view": "view_veiculos_tacografos_operacoes",
    "where_post": "",
    "function": "getVeiculoTacografoOperacaoQrCode",
    "ogTitle": "Gerenciamento de Operações com Tacógrafos: Controle e Eficiência",
    "ogDescription": "Acompanhe e analise os registros de tacógrafo para garantir conformidade e otimizar o desempenho dos motoristas.",
    "ogImage": "",
    "ogUrl": "https://ondevou.com/veiculo/tacografo/operacao",
    "ogKeywords": "análise de tacógrafo, tempo de direção, monitoramento de motoristas, segurança na estrada, controle de jornada, ondevou, onde, onde ir, software",
    "sobre": {},
    "posts": {
      "1": {
        "id_post": "1",
        "nome_rotina": "Sobre OndeVou Veículos",
        "descricao": "O OndeVou Veículos é a solução ideal para empresas que precisam gerenciar frotas de forma eficiente. Com rastreamento em tempo real, controle de manutenção, abastecimento e relatórios detalhados, reduzimos custos operacionais e aumentamos a eficiência.",
        "id_rotina": "",
        "id_membro": "",
        "nome_membro": "Firmino Moreira Gusmão",
        "razao_social": "ONDEVOU.COM TECNOLOGIA LTDA",
        "cnpj": "17.058.605/0001-36",
        "razao_social_cliente": "",
        "nome_fantasia_cliente": "",
        "tabela_origem": "",
        "id_origem": "",
        "data_criacao": 1786541109943,
        "link_post": {
          "title": "Saiba mais sobre o OndeVou Veículos",
          "url": "plataforma/produto/veiculos",
          "onclick": "navClose();startMenu(this);return false;",
          "menu": "506"
        }
      }
    }
  },
  "routines": {
    "add": "603",
    "edit": "604",
    "remove": "605"
  },
  "pdf": {
    "orientation": "landscape",
    "format": "a3",
    "columns-remove": [
      "qrcode",
      "Participante"
    ]
  },
  "search": {
    "id_search_tacografo_operacao": {
      "data-type-ondevou": "number",
      "texto_label": "Disco de Tacógrafo",
      "title": "Digite parte do descrição ou placa do véiculo",
      "data-field-ondevou": "id_search_tacografo_operacao",
      "data-table-ondevou": "view_veiculos_tacografos_operacoes",
      "getdata": "{\"view\":\"view_veiculos_tacografos_operacoes\",\"data\":\"view_veiculos_tacografos_operacoes\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_operacao\",\"campo-data-value-input\":\"id_operacao,placa_veiculo,descricao_veiculo\",\"campo-data-input-select-view\":\"id_operacao,placa_veiculo,descricao_veiculo\",\"query\":{\"select\":\"* from view_veiculos_tacografos_operacoes\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_operacao,` `,placa_veiculo,` `,descricao_veiculo))) ilike `%\",\"right\":\"%`) and (participante=`1`)\"}}},\"order\":\"id_operacao desc\"}}"
    }
  },
  "headers": {
    "Id": {
      "width": "7%"
    },
    "qrcode": {
      "width": "100px",
      "align": "left",
      "class": "qrcode"
    },
    "Participante": {
      "width": "10%",
      "type": "hidden"
    },
    "Placa": {
      "width": "10%"
    },
    "Tacógrafo": {
      "width": "15%"
    },
    "Período": {
      "width": "10%"
    },
    "KM inicial": {
      "width": "10%",
      "align": "left"
    },
    "KM final": {
      "width": "10%",
      "align": "left"
    },
    "Horimetro inicial": {
      "width": "10%",
      "align": "left"
    },
    "Horimetro final": {
      "width": "10%",
      "align": "left"
    },
    "Data inicial": {
      "type": "datetime-local",
      "width": "17%"
    },
    "Data final prevista": {
      "type": "datetime-local",
      "width": "17%"
    },
    "Data final": {
      "type": "datetime-local",
      "width": "17%"
    },
    "Observações": {
      "width": "20%"
    },
    "Membro": {
      "width": "15%"
    },
    "Latitude": {
      "type": "hidden"
    },
    "Longitude": {
      "type": "hidden"
    },
    "Ip": {
      "type": "hidden"
    },
    "Data inclusão": {
      "type": "hidden"
    }
  },
  "columns": {
    "Id": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "clear-not-participante": "sim",
        "data-field-ondevou": "id",
        "data-field-alias-ondevou": "id_operacao",
        "data-table-ondevou": "veiculos_tacografos_operacoes,auditor_veiculos_tacografos_operacoes",
        "controls-acao": {
          "qrcode": {
            "acao": "getQRcode",
            "messagem": "Gerar QR Code"
          }
        },
        "formsearch": {
          "required": ""
        }
      }
    },
    "qrcode": {
      "input": {
        "readonly": "readonly",
        "type": "canvas",
        "qrcode-type": "veitacope",
        "data-type-ondevou": "text",
        "data-field-ondevou": "qrcode",
        "data-table-ondevou": "qrcode"
      }
    },
    "Participante": {
      "input": {
        "readonly": "readonly",
        "required": "required",
        "data-type-ondevou": "text",
        "value": "1",
        "data-field-ondevou": "participante",
        "data-table-ondevou": "veiculos_tacografos_operacoes,auditor_veiculos_tacografos_operacoes"
      }
    },
    "Data e hora": {
      "input": {
        "required": "required",
        "data-type-ondevou": "date",
        "data-field-ondevou": "data_tacografo",
        "data-field-alias-ondevou": "data_hora_tacografo",
        "data-table-ondevou": "veiculos_tacografos_operacoes"
      }
    },
    "Placa": {
      "input": {
        "readonly": "readonly",
        "required": "required",
        "data-type-ondevou": "text",
        "data-field-ondevou": "placa_veiculo",
        "data-table-ondevou": "view_veiculos_tacografos_operacoes"
      }
    },
    "Tacógrafo": {
      "input": {
        "required": "required",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_tacografo",
        "data-field-ondevou": "descricao_veiculo",
        "data-table-ondevou": "veiculos_tacografos_operacoes,auditor_veiculos_tacografos_operacoes",
        "getdata": "{\"view\":\"view_veiculos_tacografos\",\"data\":\"view_veiculos_tacografos\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_tacografo\",\"campo-data-value-input\":\"id_tacografo,placa_veiculo,descricao_veiculo\",\"campo-data-input-select-view\":\"id_tacografo,placa_veiculo,descricao_veiculo,nome_situacao_tacografo\",\"query\":{\"select\":\"* from view_veiculos_tacografos\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_tacografo,` `,placa_veiculo,` `,descricao_veiculo))) ilike `%\",\"right\":\"%`) and (participante=`1`)\"}}},\"order\":\"id_tacografo desc\"}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Período": {
      "input": {
        "required": "required",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_periodo",
        "data-id-field-alias-ondevou": "id_periodo_tacografo",
        "data-field-ondevou": "nome_periodo_tacografo",
        "data-table-ondevou": "veiculos_tacografos_operacoes",
        "getdata": "{\"view\":\"view_veiculos_tacografos_periodos\",\"data\":\"view_veiculos_tacografos_periodos\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_periodo_tacografo\",\"campo-data-value-input\":\"id_periodo_tacografo,nome_periodo_tacografo\",\"campo-data-input-select-view\":\"id_periodo_tacografo,nome_periodo_tacografo\",\"query\":{\"select\":\"* from view_veiculos_tacografos_periodos\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_periodo_tacografo,` `,nome_periodo_tacografo))) ilike `%\",\"right\":\"%`)\"}}},\"order\":\"id_periodo_tacografo asc\"}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "KM inicial": {
      "input": {
        "onkeypress": "return SomenteNumero(event)",
        "onkeyup": "setInputFormatApenasNumeros(this)",
        "data-type-ondevou": "number",
        "data-field-ondevou": "km_inicial",
        "data-table-ondevou": "veiculos_tacografos_operacoes"
      }
    },
    "KM final": {
      "input": {
        "onkeypress": "return SomenteNumero(event)",
        "onkeyup": "setInputFormatApenasNumeros(this)",
        "data-type-ondevou": "number",
        "data-field-ondevou": "km_final",
        "data-table-ondevou": "veiculos_tacografos_operacoes"
      }
    },
    "Horimetro inicial": {
      "input": {
        "onkeypress": "return SomenteNumero(event)",
        "onkeyup": "setInputFormatApenasNumeros(this)",
        "data-type-ondevou": "number",
        "data-field-ondevou": "horimetro_inicial",
        "data-table-ondevou": "veiculos_tacografos_operacoes"
      }
    },
    "Horimetro final": {
      "input": {
        "onkeypress": "return SomenteNumero(event)",
        "onkeyup": "setInputFormatApenasNumeros(this)",
        "data-type-ondevou": "number",
        "data-field-ondevou": "horimetro_final",
        "data-table-ondevou": "veiculos_tacografos_operacoes"
      }
    },
    "Data inicial": {
      "input": {
        "required": "required",
        "data-type-ondevou": "date",
        "data-field-ondevou": "data_inicial",
        "data-table-ondevou": "veiculos_tacografos_operacoes"
      }
    },
    "Data final prevista": {
      "input": {
        "required": "required",
        "data-type-ondevou": "date",
        "data-field-ondevou": "data_final_prevista",
        "data-table-ondevou": "veiculos_tacografos_operacoes"
      }
    },
    "Data final": {
      "input": {
        "required": "required",
        "data-type-ondevou": "date",
        "data-field-ondevou": "data_final",
        "data-table-ondevou": "veiculos_tacografos_operacoes"
      }
    },
    "Observações": {
      "input": {
        "data-type-ondevou": "text",
        "data-field-ondevou": "informacoes_adicionais",
        "data-field-alias-ondevou": "informacoes_adicionais_operacao",
        "data-table-ondevou": "veiculos_tacografos_operacoes"
      }
    },
    "Membro": {
      "input": {
        "data-type-ondevou": "number",
        "readonly": "readonly",
        "data-id-field-ondevou": "id_membro",
        "data-field-ondevou": "nome_membro",
        "data-table-ondevou": "auditor_veiculos_tacografos_operacoes",
        "getdata": "{\"view\":\"view_membros\",\"data\":\"view_membros\",\"campo-data-id\":\"id_membro\",\"campo-data-value-input\":\"nome_membro\",\"campo-data-input-select-view\":\"nome_membro,email_membro\",\"query\":{\"select\":\"* from view_membros\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_membro,` `,nome_membro,` `,email_membro))) ilike `%\",\"right\":\"%`)\"}}}}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Latitude": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "latitude",
        "data-table-ondevou": "auditor_veiculos_tacografos_operacoes"
      }
    },
    "Longitude": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "longitude",
        "data-table-ondevou": "auditor_veiculos_tacografos_operacoes"
      }
    },
    "Ip": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "text",
        "data-field-ondevou": "ip",
        "data-table-ondevou": "auditor_veiculos_tacografos_operacoes"
      }
    },
    "Data inclusão": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "date",
        "data-field-ondevou": "data_inclusao_tacografo",
        "data-table-ondevou": "auditor_veiculos_tacografos_operacoes"
      }
    }
  },
  "formsearch": {
    "data-table-ondevou": "view_veiculos_tacografos_operacoes",
    "data-where-order": "order by id_operacao desc",
    "data-where-fixed": "participante in (`1`)",
    "input": {
      "apenas_veiculos_ativos": {
        "data-field-ondevou": "apenas_veiculos_ativos",
        "data-type-ondevou": "text",
        "type": "checkbox",
        "divClass": "col s12 m1",
        "texto_label": "Apenas veículos ativos",
        "data-where-true": "ativo=`S`"
      },
      "apenas_veiculos_inativos": {
        "data-field-ondevou": "apenas_veiculos_inativos",
        "data-type-ondevou": "text",
        "type": "checkbox",
        "divClass": "col s12 m1",
        "texto_label": "Apenas veículos inativos",
        "data-where-true": "ativo!=`S`"
      },
      "apenas_veiculos_disponiveis": {
        "data-field-ondevou": "apenas_veiculos_disponiveis",
        "data-type-ondevou": "text",
        "type": "checkbox",
        "divClass": "col s12 m1",
        "texto_label": "Apenas veículos disponíveis",
        "data-where-true": "disponivel=`S`"
      },
      "apenas_veiculos_indisponiveis": {
        "data-field-ondevou": "apenas_veiculos_indisponiveis",
        "data-type-ondevou": "text",
        "type": "checkbox",
        "divClass": "col s12 m1",
        "texto_label": "Apenas veículos indisponíveis",
        "data-where-true": "disponivel!=`S`"
      }
    }
  },
  "dashboard": {
    "enabled": true,
    "theme": "modern",
    "layout": "free",
    "auto_refresh": false,
    "header": {
      "logo": {
        "src": "img/ondevou_plataforma.png",
        "alt": "OndeVou Plataforma",
        "class": "dashboard-logo-img"
      },
      "title": "GESTÃO DE OPERAÇÕES COM TACÓGRAFOS - FROTA",
      "subtitle": "Controle inteligente de operações, períodos e análise de desempenho dos tacógrafos",
      "filters_area": {
        "container_id": "dashboard-filters-area",
        "empty_message": "Sem filtros"
      },
      "actions": [
        {
          "type": "button",
          "container_id": "dashboard-atualizar-dados",
          "class": "dashboard-btn dashboard-btn-sm dashboard-btn-primary",
          "icon": "fas fa-sync-alt",
          "text": "Atualizar",
          "action": "dashboard_refreshData",
          "title": "Atualizar Dados"
        },
        {
          "type": "button",
          "container_id": "dashboard-voltar-dados",
          "class": "dashboard-btn dashboard-btn-sm dashboard-btn-outline",
          "icon": "fas fa-table",
          "text": "Voltar para dados",
          "action": "voltarParaDadosFromDashboard",
          "title": "Voltar para dados"
        },
        {
          "type": "button",
          "container_id": "dashboard-auto-refresh",
          "class": "dashboard-btn dashboard-btn-sm dashboard-btn-info",
          "icon": "fas fa-clock",
          "text": "Auto-Refresh",
          "action": "dashboard_toggleAutoRefresh",
          "title": "Alternar escuta automática de dados"
        }
      ]
    },
    "sections": {
      "resumo_geral": {
        "type": "summary_cards_full",
        "title": "📊 RESUMO GERAL DAS OPERAÇÕES",
        "class": "dashboard-section dashboard-section-full-width",
        "config": {
          "container_id": "cards-resumo-operacoes",
          "size": "full",
          "cards": [
            {
              "title": "TOTAL DE OPERAÇÕES",
              "value": "COUNT:id_operacao",
              "format": "numero",
              "decimals": 0,
              "icon": "📊",
              "color": "#3498db"
            },
            {
              "title": "VEÍCULOS COM OPERAÇÕES",
              "value": "COUNT_DISTINCT:placa_veiculo",
              "format": "numero",
              "decimals": 0,
              "icon": "🚗",
              "color": "#2ecc71"
            },
            {
              "title": "TACÓGRAFOS UTILIZADOS",
              "value": "COUNT_DISTINCT:id_tacografo",
              "format": "numero",
              "decimals": 0,
              "icon": "📡",
              "color": "#e74c3c"
            },
            {
              "title": "KM TOTAL PERCORRIDO",
              "value": "CALC:sum(km_final) - sum(km_inicial)",
              "format": "numero",
              "decimals": 0,
              "suffix": " km",
              "icon": "🛣️",
              "color": "#f39c12"
            },
            {
              "title": "HORAS TOTAL TRABALHADAS",
              "value": "CALC:sum(horimetro_final) - sum(horimetro_inicial)",
              "format": "segundos_dhm",
              "icon": "⏱️",
              "color": "#9b59b6"
            },
            {
              "title": "MÉDIA DIÁRIA DE OPERAÇÕES",
              "value": "CALC:count(id_operacao)/count_distinct(data_inclusao_operacao)",
              "format": "numero",
              "decimals": 1,
              "icon": "📈",
              "color": "#1abc9c"
            },
            {
              "title": "PERÍODOS DIFERENTES",
              "value": "COUNT_DISTINCT:nome_periodo_tacografo",
              "format": "numero",
              "decimals": 0,
              "icon": "📅",
              "color": "#34495e"
            }
          ]
        }
      },
      "metricas_detalhadas": {
        "type": "summary_cards_grid",
        "title": "📈 MÉTRICAS DE DESEMPENHO",
        "class": "dashboard-section dashboard-section-full-width",
        "config": {
          "container_id": "cards-metricas-operacoes",
          "size": "full",
          "sections": [
            {
              "title": "📊 QUILOMETRAGEM",
              "cards": [
                {
                  "title": "MAIOR PERCURSO",
                  "value": "CALC:max(km_final) - min(km_inicial)",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " km",
                  "icon": "📏",
                  "color": "#e74c3c"
                },
                {
                  "title": "MENOR PERCURSO",
                  "value": "CALC:min(km_final - km_inicial)",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " km",
                  "icon": "📐",
                  "color": "#2ecc71"
                },
                {
                  "title": "MÉDIA DE PERCURSO",
                  "value": "CALC:(sum(km_final) - sum(km_inicial))/count(id_operacao)",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": " km",
                  "icon": "📊",
                  "color": "#3498db"
                },
                {
                  "title": "TOTAL PERCORRIDO",
                  "value": "CALC:sum(km_final) - sum(km_inicial)",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " km",
                  "icon": "🛣️",
                  "color": "#f39c12"
                }
              ]
            },
            {
              "title": "⏱️ HORAS TRABALHADAS",
              "cards": [
                {
                  "title": "MAIOR JORNADA",
                  "value": "CALC:max(horimetro_final - horimetro_inicial)",
                  "format": "segundos_dhm",
                  "icon": "⏰",
                  "color": "#d35400"
                },
                {
                  "title": "MENOR JORNADA",
                  "value": "CALC:min(horimetro_final - horimetro_inicial)",
                  "format": "segundos_dhm",
                  "icon": "⚡",
                  "color": "#27ae60"
                },
                {
                  "title": "MÉDIA DE JORNADA",
                  "value": "CALC:(sum(horimetro_final) - sum(horimetro_inicial))/count(id_operacao)",
                  "format": "segundos_dhm",
                  "icon": "⏱️",
                  "color": "#8e44ad"
                },
                {
                  "title": "TOTAL DE HORAS",
                  "value": "CALC:sum(horimetro_final) - sum(horimetro_inicial)",
                  "format": "segundos_dhm",
                  "icon": "🕐",
                  "color": "#c0392b"
                }
              ]
            },
            {
              "title": "🔧 COMPOSIÇÃO TÉCNICA",
              "cards": [
                {
                  "title": "VEÍCULOS ATIVOS",
                  "value": "COUNT_DISTINCT:placa_veiculo",
                  "filters": "ativo = \"S\"",
                  "format": "numero",
                  "decimals": 0,
                  "icon": "✅",
                  "color": "#27ae60"
                },
                {
                  "title": "VEÍCULOS DISPONÍVEIS",
                  "value": "COUNT_DISTINCT:placa_veiculo",
                  "filters": "disponivel = \"S\"",
                  "format": "numero",
                  "decimals": 0,
                  "icon": "🚗",
                  "color": "#3498db"
                },
                {
                  "title": "FABRICANTES DIFERENTES",
                  "value": "COUNT_DISTINCT:nome_fabricante_tacografo",
                  "format": "numero",
                  "decimals": 0,
                  "icon": "🏭",
                  "color": "#e67e22"
                },
                {
                  "title": "TIPOS DE TACÓGRAFOS",
                  "value": "COUNT_DISTINCT:nome_tipo_tacografo",
                  "format": "numero",
                  "decimals": 0,
                  "icon": "📡",
                  "color": "#9b59b6"
                }
              ]
            }
          ]
        }
      },
      "analise_tipos": {
        "type": "visualization_section",
        "title": "🚗 ANÁLISE POR VEÍCULO",
        "class": "dashboard-section dashboard-section-full-width",
        "config": {
          "widgets": [
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "operacoes-por-veiculo",
                "size": "full",
                "data_config": {
                  "group_by": "placa_veiculo",
                  "operation": "COUNT:id_operacao"
                },
                "display_config": {
                  "title": "📊 OPERAÇÕES POR VEÍCULO (QUANTIDADE)",
                  "layout": "vertical",
                  "format": "numero",
                  "format_legend": "maiusculo",
                  "decimals": 0,
                  "sort_order": "DESC",
                  "limit": "all",
                  "height": "400px"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "km-percorrido-por-veiculo",
                "size": "full",
                "data_config": {
                  "group_by": "placa_veiculo",
                  "operation": "CALC:sum(km_final - km_inicial)"
                },
                "display_config": {
                  "title": "🛣️ KM PERCORRIDO POR VEÍCULO",
                  "layout": "vertical",
                  "format": "numero",
                  "format_legend": "maiusculo",
                  "decimals": 0,
                  "suffix": " km",
                  "sort_order": "DESC",
                  "limit": "all",
                  "height": "400px"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "horas-por-veiculo",
                "size": "full",
                "data_config": {
                  "group_by": "placa_veiculo",
                  "operation": "CALC:sum(horimetro_final - horimetro_inicial)"
                },
                "display_config": {
                  "title": "⏱️ HORAS TRABALHADAS POR VEÍCULO",
                  "layout": "vertical",
                  "format": "segundos_dhm",
                  "format_legend": "maiusculo",
                  "sort_order": "DESC",
                  "limit": "all",
                  "height": "400px"
                }
              }
            }
          ]
        }
      },
      "analise_evolucao": {
        "type": "visualization_section",
        "title": "📅 ANÁLISE TEMPORAL",
        "class": "dashboard-section dashboard-section-full-width",
        "config": {
          "widgets": [
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-operacoes-mensal",
                "size": "medium",
                "data_config": {
                  "campo_data": "data_inicial",
                  "operation": "COUNT:id_operacao",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "📈 EVOLUÇÃO DE OPERAÇÕES POR MÊS",
                  "layout": "vertical",
                  "format": "numero",
                  "decimals": 0,
                  "sort_order": "ASC",
                  "limit": "all",
                  "height": "300px"
                }
              }
            },
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-km-mensal",
                "size": "medium",
                "data_config": {
                  "campo_data": "data_inicial",
                  "operation": "CALC:sum(km_final - km_inicial)",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "🛣️ EVOLUÇÃO DE KM PERCORRIDOS POR MÊS",
                  "layout": "vertical",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " km",
                  "sort_order": "ASC",
                  "limit": "all",
                  "height": "300px"
                }
              }
            },
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-horas-mensal",
                "size": "medium",
                "data_config": {
                  "campo_data": "data_inicial",
                  "operation": "CALC:sum(horimetro_final - horimetro_inicial)",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "⏱️ EVOLUÇÃO DE HORAS TRABALHADAS POR MÊS",
                  "layout": "vertical",
                  "format": "segundos_dhm",
                  "sort_order": "ASC",
                  "limit": "all",
                  "height": "300px"
                }
              }
            }
          ]
        }
      },
      "rankings_comparacoes": {
        "type": "visualization_section",
        "title": "🏆 RANKINGS E COMPARAÇÕES",
        "class": "dashboard-section dashboard-section-full-width",
        "config": {
          "widgets": [
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "ranking-veiculos-km",
                "size": "medium",
                "data_config": {
                  "group_by": "placa_veiculo",
                  "operation": "CALC:sum(km_final - km_inicial)"
                },
                "display_config": {
                  "title": "🏆 RANKING VEÍCULOS POR KM PERCORRIDO",
                  "layout": "ranking",
                  "format": "numero",
                  "format_legend": "maiusculo",
                  "decimals": 0,
                  "suffix": " km",
                  "sort_order": "DESC",
                  "limit": "all",
                  "height": "350px"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "ranking-veiculos-horas",
                "size": "medium",
                "data_config": {
                  "group_by": "placa_veiculo",
                  "operation": "CALC:sum(horimetro_final - horimetro_inicial)"
                },
                "display_config": {
                  "title": "⏱️ RANKING VEÍCULOS POR HORAS TRABALHADAS",
                  "layout": "ranking",
                  "format": "segundos_dhm",
                  "format_legend": "maiusculo",
                  "sort_order": "DESC",
                  "limit": "all",
                  "height": "350px"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "ranking-veiculos-operacoes",
                "size": "medium",
                "data_config": {
                  "group_by": "placa_veiculo",
                  "operation": "COUNT:id_operacao"
                },
                "display_config": {
                  "title": "📊 RANKING VEÍCULOS POR OPERAÇÕES",
                  "layout": "ranking",
                  "format": "numero",
                  "format_legend": "maiusculo",
                  "decimals": 0,
                  "sort_order": "DESC",
                  "limit": "all",
                  "height": "350px"
                }
              }
            }
          ]
        }
      },
      "visualizacoes_detalhadas": {
        "type": "charts_grid_section",
        "title": "📋 VISUALIZAÇÕES DETALHADAS",
        "class": "dashboard-section dashboard-section-full-width",
        "config": {
          "layout": "grid-2",
          "charts": [
            {
              "type": "chart_pie",
              "config": {
                "container_id": "distribuicao-tipo-veiculo",
                "size": "medium",
                "data_config": {
                  "group_by": "nome_tipo_veiculo",
                  "operation": "COUNT:id_operacao"
                },
                "display_config": {
                  "title": "🚚 DISTRIBUIÇÃO POR TIPO DE VEÍCULO",
                  "colors": [
                    "#3498db",
                    "#2ecc71",
                    "#e74c3c",
                    "#9b59b6",
                    "#f39c12",
                    "#1abc9c"
                  ],
                  "format": "numero",
                  "format_legend": "capitalizado",
                  "decimals": 0,
                  "limit": "all",
                  "show_legend": true,
                  "show_values": true,
                  "show_percentages": true,
                  "show_total": true,
                  "donut": true,
                  "legend_position": "right",
                  "height": "320px"
                }
              }
            },
            {
              "type": "chart_pie",
              "config": {
                "container_id": "distribuicao-propriedade",
                "size": "medium",
                "data_config": {
                  "group_by": "nome_propriedade",
                  "operation": "COUNT:id_operacao"
                },
                "display_config": {
                  "title": "🏢 DISTRIBUIÇÃO POR TIPO DE PROPRIEDADE",
                  "colors": [
                    "#3498db",
                    "#2ecc71",
                    "#e74c3c",
                    "#9b59b6"
                  ],
                  "format": "numero",
                  "format_legend": "capitalizado",
                  "decimals": 0,
                  "limit": "all",
                  "show_legend": true,
                  "show_values": true,
                  "show_percentages": true,
                  "show_total": true,
                  "donut": true,
                  "legend_position": "right",
                  "height": "320px"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "distribuicao-uf-licenciamento",
                "size": "medium",
                "data_config": {
                  "group_by": "sigla_uf_licenciamento",
                  "operation": "COUNT:id_operacao"
                },
                "display_config": {
                  "title": "📍 DISTRIBUIÇÃO POR UF DE LICENCIAMENTO",
                  "layout": "vertical",
                  "format": "numero",
                  "format_legend": "maiusculo",
                  "decimals": 0,
                  "sort_order": "DESC",
                  "limit": "all",
                  "height": "320px"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "distribuicao-marca-veiculo",
                "size": "medium",
                "data_config": {
                  "group_by": "nome_marca",
                  "operation": "COUNT:id_operacao"
                },
                "display_config": {
                  "title": "🏭 DISTRIBUIÇÃO POR MARCA DO VEÍCULO",
                  "layout": "vertical",
                  "format": "numero",
                  "format_legend": "capitalizado",
                  "decimals": 0,
                  "sort_order": "DESC",
                  "limit": "all",
                  "height": "320px"
                }
              }
            }
          ]
        }
      },
      "analise_tacografos": {
        "type": "visualization_section",
        "title": "📡 ANÁLISE POR TACÓGRAFO",
        "class": "dashboard-section dashboard-section-full-width",
        "config": {
          "widgets": [
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "operacoes-por-fabricante",
                "size": "full",
                "data_config": {
                  "group_by": "nome_fabricante_tacografo",
                  "operation": "COUNT:id_operacao"
                },
                "display_config": {
                  "title": "🏭 OPERAÇÕES POR FABRICANTE DO TACÓGRAFO",
                  "layout": "vertical",
                  "format": "numero",
                  "format_legend": "capitalizado",
                  "decimals": 0,
                  "sort_order": "DESC",
                  "limit": "all",
                  "height": "400px"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "operacoes-por-modelo-tacografo",
                "size": "full",
                "data_config": {
                  "group_by": "nome_modelo_tacografo",
                  "operation": "COUNT:id_operacao"
                },
                "display_config": {
                  "title": "📱 OPERAÇÕES POR MODELO DO TACÓGRAFO",
                  "layout": "vertical",
                  "format": "numero",
                  "format_legend": "capitalizado",
                  "decimals": 0,
                  "sort_order": "DESC",
                  "limit": "all",
                  "height": "400px"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "operacoes-por-tipo-tacografo",
                "size": "full",
                "data_config": {
                  "group_by": "nome_tipo_tacografo",
                  "operation": "COUNT:id_operacao"
                },
                "display_config": {
                  "title": "📊 OPERAÇÕES POR TIPO DE TACÓGRAFO",
                  "layout": "vertical",
                  "format": "numero",
                  "format_legend": "capitalizado",
                  "decimals": 0,
                  "sort_order": "DESC",
                  "limit": "all",
                  "height": "400px"
                }
              }
            }
          ]
        }
      },
      "analise_periodos": {
        "type": "charts_grid_section",
        "title": "📅 ANÁLISE POR PERÍODO DO TACÓGRAFO",
        "class": "dashboard-section dashboard-section-full-width",
        "config": {
          "layout": "grid-3",
          "charts": [
            {
              "type": "chart_pie",
              "config": {
                "container_id": "distribuicao-periodos",
                "size": "medium",
                "data_config": {
                  "group_by": "nome_periodo_tacografo",
                  "operation": "COUNT:id_operacao"
                },
                "display_config": {
                  "title": "📅 DISTRIBUIÇÃO POR PERÍODO",
                  "colors": [
                    "#3498db",
                    "#2ecc71",
                    "#e74c3c",
                    "#9b59b6",
                    "#f39c12"
                  ],
                  "format": "numero",
                  "format_legend": "capitalizado",
                  "decimals": 0,
                  "limit": "all",
                  "show_legend": true,
                  "show_values": true,
                  "show_percentages": true,
                  "show_total": true,
                  "donut": true,
                  "legend_position": "right",
                  "height": "350px"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "km-por-periodo",
                "size": "medium",
                "data_config": {
                  "group_by": "nome_periodo_tacografo",
                  "operation": "CALC:sum(km_final - km_inicial)"
                },
                "display_config": {
                  "title": "🛣️ KM PERCORRIDO POR PERÍODO",
                  "layout": "vertical",
                  "format": "numero",
                  "format_legend": "capitalizado",
                  "decimals": 0,
                  "suffix": " km",
                  "sort_order": "DESC",
                  "limit": "all",
                  "height": "350px"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "horas-por-periodo",
                "size": "medium",
                "data_config": {
                  "group_by": "nome_periodo_tacografo",
                  "operation": "CALC:sum(horimetro_final - horimetro_inicial)"
                },
                "display_config": {
                  "title": "⏱️ HORAS TRABALHADAS POR PERÍODO",
                  "layout": "vertical",
                  "format": "segundos_dhm",
                  "format_legend": "capitalizado",
                  "sort_order": "DESC",
                  "limit": "all",
                  "height": "350px"
                }
              }
            }
          ]
        }
      }
    }
  },
  "url_documentacao": "/docs/ondevou-db-veiculos_tacografos_operacoes.html",
  "nome_tabela": "veiculos_tacografos_operacoes"
}

📝 SQL CREATE TABLE - Estrutura Completa

Comando SQL COMPLETO para criar a tabela veiculos_tacografos_operacoes no PostgreSQL. Esta estrutura foi extraída DIRETAMENTE do banco de dados.

🏗️ Estrutura Completa

📋 13 colunas 🔗 2 constraints 📑 6 índices ⚡ 0 triggers
code Clique para ver o SQL completo ✅ COMPLETO
-- ============================================================
-- ESTRUTURA COMPLETA DA TABELA veiculos_tacografos_operacoes
-- Fonte: PostgreSQL - 12/08/2026 10:25:10
-- ============================================================

CREATE TABLE public.veiculos_tacografos_operacoes (
    id integer NOT NULL DEFAULT nextval('veiculos_tacografos_operacoes_id_seq'::regclass),
    participante integer,
    id_tacografo integer,
    id_periodo integer,
    km_inicial integer,
    km_final integer,
    horimetro_inicial integer,
    horimetro_final integer,
    data_inicial timestamp DEFAULT now(),
    data_final_prevista timestamp,
    data_final timestamp,
    informacoes_adicionais varchar(255),
    data timestamp DEFAULT now(),
    CONSTRAINT veiculos_tacografos_operacoes_pkey PRIMARY KEY (id),
    CONSTRAINT 2200_222393_1_not_null CHECK (id IS NOT NULL)
);

-- ============================================================
-- ÍNDICES
-- ============================================================
CREATE INDEX idx_veiculos_tacografos_operacoes_id_periodo ON public.veiculos_tacografos_operacoes USING btree (id_periodo);
CREATE INDEX idx_veiculos_tacografos_operacoes_id_tacografo ON public.veiculos_tacografos_operacoes USING btree (id_tacografo);
CREATE INDEX idx_veiculos_tacografos_operacoes_p_data ON public.veiculos_tacografos_operacoes USING btree (participante, data DESC);
CREATE INDEX idx_veiculos_tacografos_operacoes_p_id ON public.veiculos_tacografos_operacoes USING btree (participante, id DESC);
CREATE INDEX idx_veiculos_tacografos_operacoes_participante ON public.veiculos_tacografos_operacoes USING btree (participante);
CREATE UNIQUE INDEX veiculos_tacografos_operacoes_pk_id ON public.veiculos_tacografos_operacoes USING btree (id);

SQL extraído DIRETAMENTE do banco de dados

📊 Comparação: JSON Config vs Banco Real

Verifique se a configuração JSON está sincronizada com a estrutura do banco de dados.

Campo Tipo (JSON) Tipo (Banco) Status
data - timestamp without time zone ❌ Só no banco
data_final date timestamp without time zone ✅ OK
data_final_prevista date timestamp without time zone ✅ OK
data_inclusao_tacografo date - ⚠️ Só no JSON
data_inicial date timestamp without time zone ✅ OK
data_tacografo date - ⚠️ Só no JSON
descricao_veiculo number - ⚠️ Só no JSON
horimetro_final number integer ✅ OK
horimetro_inicial number integer ✅ OK
id number integer ✅ OK
id_periodo - integer ❌ Só no banco
id_tacografo - integer ❌ Só no banco
informacoes_adicionais text character varying ✅ OK
ip text - ⚠️ Só no JSON
km_final number integer ✅ OK
km_inicial number integer ✅ OK
latitude number - ⚠️ Só no JSON
longitude number - ⚠️ Só no JSON
nome_membro number - ⚠️ Só no JSON
nome_periodo_tacografo number - ⚠️ Só no JSON
participante text integer ✅ OK
placa_veiculo text - ⚠️ Só no JSON
qrcode text - ⚠️ Só no JSON

💡 Dica: Use esta comparação para garantir que a configuração JSON está atualizada com a estrutura do banco.
📌 Legenda: ✅ OK = presente em ambos | ⚠️ Só no JSON = pode ser um campo virtual | ❌ Só no banco = falta adicionar ao JSON

💡 Como Popular a Tabela

Exemplo prático usando o padrão OndeVou.

📋 Fluxo completo padrão

// 1. Buscar dados com getData
var dados_retorno = getData({
    'query': `SELECT * FROM view_veiculos_tacografos_operacoes WHERE participante = ${globais.dados_fixo.participante}`,
    'view': 'view_veiculos_tacografos_operacoes'
});

// 2. Definir painel e slide
var painel = globais.dados_pagina.visivel.painel;
var slide = globais.dados_pagina.visivel.slide;

// 3. Encontrar a tabela no DOM
var idTable = getIdTableFromSlide({ 'table-id': 'veiculos_tacografos_operacoes' });

// 4. Resetar a tabela
setTableControlsReset(idTable);

// 5. Popular a tabela
setTableControlsSetValue(idTable, dados_retorno);

🏆 Propriedade Intelectual

OndeVou.com Marca Registrada

Marca Registrada

OndeVou.com®

Propriedade Intelectual Assegurada

Processo INPI:
908765967
Titular:
ONDEVOU.COM TECNOLOGIA LTDA
CNPJ:
17.058.605/0001-36
Classificação:
Classe 42 - Serviços de TI