🗄️ Gestão Eficiente de Requisições: Organize e Controle com OndeVou.com

Gerencie requisições de forma eficiente com a OndeVou.com. Acompanhe status, prazos e detalhes, garantindo organização e eficiência nos seus processos.

📋 20 colunas 🔗 6 relacionamentos 🎮 9 controles 👁️ view_requisicoes 📱 QR Code 🔑 PRIMARY KEY 🎮 1 ações externas 📱 GetCollector

📋 Estrutura da Tabela

A tabela requisicoes possui 20 colunas.

🔑 Id PRIMARY KEY
🔑 PRIMARY KEY🔒 Somente leitura💾 Grava
Campo Tabela id
Campo VIEW / Exibido id_requisicao 🔹 Alias na VIEW: id_requisicao
Tipo number (readonly - PRIMARY KEY)
Data Table requisicoes
Descrição

Campo id

🔑 PRIMARY KEY

Campo na tabela: id

Alias na VIEW: id_requisicao

Readonly: ✅ Gerado automaticamente pelo sistema

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_requisicao
  • Tabela OndeVou requisicoes
🔍 Formsearch
  • {
      "required": ""
    }
🎮 Controls Acao
  • {
      "qrcode": {
        "acao": "getQRcode",
        "messagem": "Gerar QR Code"
      }
    }
  • Alias: id_requisicao
  • Tabelas: requisicoes ✅
  • ControlsAcao: ✓
  • FormSearch: ✓
  • 🔑 PRIMARY KEY
  • VIEW: id_requisicao
  • 📋 FormSearch
📋 qrcode
🔒 Somente leitura📋 Somente view📱 QRCode: Requisição
Campo Tabela qrcode
Campo VIEW / Exibido qrcode ⚠️ (somente view)
Tipo canvas (QR Code: Requisição)
Data Table qrcode
Descrição

Campo qrcode

📱 QR Code

Tipo: Requisição (req)

Texto: Campos

Formato: ondevou_req_{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: Requisição
📋 Participante
✅ Obrigatório🔒 Somente leitura👁️ Oculto💾 Grava
Campo Tabela participante
Campo VIEW / Exibido participante
Tipo text
Data Table requisicoes
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 requisicoes
  • Tabelas: requisicoes ✅
  • Hidden: ✓ (dados ocultos)
  • Value: 1
📋 Data requisição
🔒 Somente leitura📋 Somente view
Campo Tabela data_hora_inclusao_requisicao
Campo VIEW / Exibido data_hora_inclusao_requisicao ⚠️ (somente view)
Tipo date
Data Table view_requisicoes
Descrição

Campo data requisição

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados date
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou data_hora_inclusao_requisicao
  • Tabela OndeVou view_requisicoes
  • Tabelas: view_requisicoes (só view)
📋 Situação
🔒 Somente leitura📋 Somente view🔗 getdata
Campo Tabela id_situacao
Campo VIEW / Exibido nome_situacao_requisicao ⚠️ (somente view)
Tipo number (getdata)
Data Table view_requisicoes
Descrição

Campo situação

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_situacao_requisicao
  • ID OndeVou id_situacao
  • ID Alias OndeVou id_situacao_requisicao
  • Tabela OndeVou view_requisicoes
🔗 Getdata
  • {
      "view": "view_requisicoes_situacao",
      "data": "view_requisicoes_situacao",
      "text-empty-search": "sim",
      "campo-data-id": "id_situacao",
      "campo-data-value-input": "id_situacao,nome_situacao",
      "campo-data-input-select-view": "id_situacao,nome_situacao",
      "query": {
        "select": "* from view_requisicoes_situacao",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_situacao,` `,nome_situacao))) ilike `%",
              "right": "%`)"
            }
          }
        }
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_situacao
  • ID VIEW: id_situacao_requisicao
  • Tabelas: view_requisicoes (só view)
  • FormSearch: ✓
📋 Tipo
✅ Obrigatório💾 Grava🔗 getdata
Campo Tabela id_tipo
Campo VIEW / Exibido nome_tipo_requisicao (ID: id_tipo_requisicao)
Tipo number (getdata)
Data Table requisicoes
Descrição

Campo tipo

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

Campo descrição

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
📊 Dados
  • Campo OndeVou descricao
  • Alias OndeVou descricao_requisicao
  • Tabela OndeVou requisicoes
  • Alias: descricao_requisicao
  • Tabelas: requisicoes ✅
📋 Responsável
💾 Grava🔗 getdata
Campo Tabela id_responsavel
Campo VIEW / Exibido nome_responsavel (ID: id_responsavel)
Tipo number (getdata)
Data Table requisicoes
Descrição

Campo responsável

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
📊 Dados
  • Campo OndeVou nome_responsavel
  • ID OndeVou id_responsavel
  • Tabela OndeVou requisicoes
🔗 Getdata
  • {
      "view": "view_membros_participantes",
      "data": "view_membros_participantes",
      "text-empty-search": "sim",
      "campo-data-id": "id_membro",
      "campo-data-value-input": "nome_membro",
      "campo-data-input-select-view": "nome_membro,email_membro,nome_situacao",
      "query": {
        "select": "* from view_membros_participantes",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_membro,` `,nome_membro,` `,email_membro))) ilike `%",
              "right": "%`) and (id_participante=`1`)"
            }
          }
        }
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_responsavel
  • Tabelas: requisicoes ✅
  • FormSearch: ✓
📋 Romaneio
💾 Grava🔗 getdata
Campo Tabela id_romaneio
Campo VIEW / Exibido descricao_romaneio (ID: id_romaneio)
Tipo number (getdata)
Data Table requisicoes
Descrição

Campo romaneio

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
📊 Dados
  • Campo OndeVou descricao_romaneio
  • ID OndeVou id_romaneio
  • Tabela OndeVou requisicoes
🔗 Getdata
  • {
      "view": "view_romaneios",
      "data": "view_romaneios",
      "text-empty-search": "sim",
      "campo-data-id": "id_romaneio",
      "campo-data-value-input": "id_romaneio,descricao_romaneio,romaneio_erplinux",
      "campo-data-input-select-view": "id_romaneio,descricao_romaneio,romaneio_erplinux,nome_situacao",
      "query": {
        "select": "* from view_romaneios",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_romaneio,` `,romaneio_erplinux,` `,descricao_romaneio))) ilike `%",
              "right": "%`) and (participante=`1`)"
            }
          }
        },
        "order": "id_romaneio desc"
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_romaneio
  • Tabelas: requisicoes ✅
  • FormSearch: ✓
📋 Veículo
💾 Grava🔗 getdata
Campo Tabela id_veiculo
Campo VIEW / Exibido descricao_veiculo (ID: id_veiculo)
Tipo number (getdata)
Data Table requisicoes
Descrição

Campo veículo

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
📊 Dados
  • Campo OndeVou descricao_veiculo
  • ID OndeVou id_veiculo
  • Tabela OndeVou requisicoes
🔗 Getdata
  • {
      "view": "view_veiculos",
      "data": "view_veiculos",
      "text-empty-search": "sim",
      "campo-data-id": "id_veiculo",
      "campo-data-value-input": "id_veiculo,placa_veiculo,descricao_veiculo",
      "campo-data-input-select-view": "id_veiculo,placa_veiculo,descricao_veiculo,renavam",
      "query": {
        "select": "* from view_veiculos",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_veiculo,` `,placa_veiculo,` `,descricao_veiculo,` `,renavam))) ilike `%",
              "right": "%`) and (participante=`1`)"
            }
          }
        }
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_veiculo
  • Tabelas: requisicoes ✅
  • FormSearch: ✓
📋 Razão social do participante
💾 Grava🔗 getdata
Campo Tabela id_participante
Campo VIEW / Exibido razao_social (ID: id_participante)
Tipo number (getdata)
Data Table requisicoes
Descrição

Campo razão social do participante

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
📊 Dados
  • Campo OndeVou razao_social
  • ID OndeVou id_participante
  • Tabela OndeVou requisicoes
🔗 Getdata
  • {
      "view": "view_participantes_privado",
      "data": "view_participantes_privado",
      "campo-data-id": "id_participante",
      "campo-data-value-input": "id_participante,razao_social",
      "campo-data-input-select-view": "id_participante,codigo_erplinux_cliente,codigo_erplinux_fornecedor,razao_social,nome_fantasia,cnpj,cpf,cep,cep_erplinux,nome_bairro,nome_cidade,sigla_uf",
      "query": {
        "select": "* from view_participantes_privado",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_participante,` `,codigo_erplinux_cliente,` `,codigo_erplinux_fornecedor,` `,razao_social,` `,nome_fantasia,` `,cnpj,` `,cpf,` `,cep,` `,cep_erplinux,` `,nome_bairro,` `,nome_cidade,` `,sigla_uf))) ilike `%",
              "right": "%`) and (participante=`1`)"
            }
          }
        }
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_participante
  • Tabelas: requisicoes ✅
  • FormSearch: ✓
📋 Requisitante
🔒 Somente leitura📋 Somente view🔗 getdata
Campo Tabela id_membro_requisicao
Campo VIEW / Exibido nome_membro_requisicao ⚠️ (somente view)
Tipo number (getdata)
Data Table view_requisicoes
Descrição

Campo requisitante

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_membro_requisicao
  • ID OndeVou id_membro_requisicao
  • Tabela OndeVou view_requisicoes
🔗 Getdata
  • {
      "view": "view_membros_participantes",
      "data": "view_membros_participantes",
      "text-empty-search": "sim",
      "campo-data-id": "id_membro",
      "campo-data-value-input": "nome_membro",
      "campo-data-input-select-view": "nome_membro,email_membro,nome_situacao",
      "query": {
        "select": "* from view_membros_participantes",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_membro,` `,nome_membro,` `,email_membro))) ilike `%",
              "right": "%`) and (id_participante=`1`)"
            }
          }
        }
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_membro_requisicao
  • Tabelas: view_requisicoes (só view)
  • FormSearch: ✓
📋 Última ação
🔒 Somente leitura📋 Somente view
Campo Tabela data_hora_ultima_atividade
Campo VIEW / Exibido data_hora_ultima_atividade ⚠️ (somente view)
Tipo date
Data Table view_requisicoes
Descrição

Campo última ação

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados date
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou data_hora_ultima_atividade
  • Tabela OndeVou view_requisicoes
  • Tabelas: view_requisicoes (só view)
📋 Ação realizada
🔒 Somente leitura📋 Somente view
Campo Tabela nome_rotina_ultima_atividade
Campo VIEW / Exibido nome_rotina_ultima_atividade ⚠️ (somente view)
Tipo text
Data Table view_requisicoes
Descrição

Campo ação realizada

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_rotina_ultima_atividade
  • Tabela OndeVou view_requisicoes
  • Tabelas: view_requisicoes (só view)
📋 Membro
🔒 Somente leitura📋 Somente view
Campo Tabela nome_membro_ultima_atividade
Campo VIEW / Exibido nome_membro_ultima_atividade ⚠️ (somente view)
Tipo text
Data Table view_requisicoes
Descrição

Campo membro

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_membro_ultima_atividade
  • Tabela OndeVou view_requisicoes
  • Tabelas: view_requisicoes (só view)
📋 Histórico
🔒 Somente leitura📋 Somente view
Campo Tabela historico_requisicao
Campo VIEW / Exibido historico_requisicao ⚠️ (somente view)
Tipo text
Data Table view_requisicoes
Descrição

Campo histórico

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

Campo latitude

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

Campo longitude

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

Campo ip

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

Campo data inclusão

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados date
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou data_inclusao_requisicao
  • Tabela OndeVou view_requisicoes
  • Tabelas: view_requisicoes (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.

requisicoes_situacao · Auxiliar: Situação 📄
requisicoes_tipos · Auxiliar: Tipo 📄
membros_participantes · Auxiliar: Responsável 📄
romaneios · Principal: Romaneio 📄
veiculos · Principal: Veículo 📄
participantes_privado · Auxiliar: Razão social do participante 📄

🔍 Filtros (formsearch)

Campos disponíveis para filtragem na busca.

Data e Hora Inicial datetime-local
Data e Hora Final datetime-local

🎮 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_requisicoes

📱 GetCollector - Coleta de Dados

A tabela requisicoes possui suporte a coleta de dados via QR Code através do sistema GetCollector.

Configuração (JSON expandido)

{
  "qrcode": {
    "qrcode-type": [
      "vei"
    ]
  },
  "table-setups": {
    "search": "nao",
    "html": "nao",
    "controls": [
      "info",
      "remove"
    ]
  }
}

Tipos de QR Code

  • vei: Veículo

Detalhes

  • Table Add: addTableColetar_dados_leituras

📱 QR Code

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

Configuração

'qrcode': {
    'input': {
        'readonly': 'readonly',
        'type': 'canvas',
        'qrcode-type': 'req',
        '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_req_{participante}_{id}
  • Uso: Identificação física do registro

🔑 PRIMARY KEY - Campo Id

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

Configuração

'Id': {
    'input': {
        'readonly': 'readonly',
        'data-type-ondevou': 'number',
        'data-field-ondevou': 'id',
        "data-field-alias-ondevou": "id_requisicao",
        'data-table-ondevou': 'requisicoes'
    }
}

Comportamento

  • 🔒 Readonly: Campo não editável
  • 📊 Tipo: number
  • 🔹 Alias na VIEW: id_requisicao

🎮 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 40 KB
{
  "table-id": "requisicoes",
  "data-table-ondevou": "requisicoes",
  "data-table-related": "requisicoes_atividades",
  "table-launch-filter": "nao",
  "table-class": "highlight",
  "putdata": {
    "trigger": "setTableFromPutData();setTableRequisicoesAtividadesFromPutData();"
  },
  "controls": [
    "add",
    "copy",
    "edit",
    "save",
    "delete",
    "remove",
    "qrcode",
    "marker",
    "timeline"
  ],
  "html": {
    "div": {
      "before": "",
      "after": ""
    }
  },
  "entidade": {
    "page": "requisicao",
    "title": "Requisição",
    "table": "requisicoes",
    "campo_id": "id_requisicao",
    "view": "view_requisicoes",
    "where_post": "",
    "function": "getRequisicaoQrCode",
    "ogTitle": "Gestão Eficiente de Requisições: Organize e Controle com OndeVou.com",
    "ogDescription": "Gerencie requisições de forma eficiente com a OndeVou.com. Acompanhe status, prazos e detalhes, garantindo organização e eficiência nos seus processos.",
    "ogImage": "",
    "ogUrl": "https://ondevou.com/requisicao",
    "ogKeywords": "requisicao, gestão de requisições, controle de demandas, acompanhamento de status, organização, eficiência, processos, ondevou, onde, onde ir, software",
    "sobre": {},
    "posts": {
      "1": {
        "id_post": "1",
        "nome_rotina": "Sobre OndeVou Requisições",
        "descricao": "O OndeVou Requisições é a solução ideal para empresas que desejam automatizar e otimizar seus processos de requisição. Com um fluxo organizado, permite controle de pendências, aprovações e histórico detalhado, garantindo maior eficiência e transparê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": 1786541091241,
        "link_post": {
          "title": "Saiba mais sobre o OndeVou Requisições",
          "url": "plataforma/produto/requisicoes",
          "onclick": "navClose();startMenu(this);return false;",
          "menu": "585"
        }
      }
    }
  },
  "routines": {
    "add": "632",
    "edit": "633"
  },
  "pdf": {
    "orientation": "landscape",
    "format": "a3",
    "columns-remove": [
      "Participante",
      "qrcode",
      "latitude",
      "longitude",
      "Ip",
      "Data inclusão"
    ]
  },
  "search": {
    "id_search_requisicao": {
      "data-type-ondevou": "number",
      "texto_label": "Requisição",
      "title": "Digite algo sobre a requisição",
      "data-field-ondevou": "id_search_requisicao",
      "data-table-ondevou": "view_requisicoes",
      "getcollector": "{\"qrcode\":\"{\\\"qrcode-type\\\":[\\\"vei\\\"]}\",\"table-setups\":\"{\\\"search\\\":\\\"nao\\\",\\\"html\\\":\\\"nao\\\",\\\"controls\\\":[\\\"info\\\",\\\"remove\\\"]}\"}",
      "getdata": "{\"view\":\"view_requisicoes\",\"data\":\"view_requisicoes\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_requisicao\",\"campo-data-value-input\":\"nome_tipo_requisicao\",\"campo-data-input-select-view\":\"nome_tipo_requisicao,descricao_requisicao,nome_membro_requisicao\",\"query\":{\"select\":\"* from view_requisicoes\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_requisicao,` `,nome_tipo_requisicao,` `,descricao_requisicao))) ilike `%\",\"right\":\"%`) and (participante=`1`)\"}}},\"order\":\"id_requisicao desc\"}}"
    }
  },
  "headers": {
    "Id": {
      "width": "7%"
    },
    "qrcode": {
      "width": "100px",
      "align": "left",
      "class": "qrcode"
    },
    "Participante": {
      "width": "10%",
      "type": "hidden"
    },
    "Data requisição": {
      "width": "10%"
    },
    "Situação": {
      "width": "10%"
    },
    "Tipo": {
      "width": "15%"
    },
    "Descrição": {
      "width": "15%"
    },
    "Responsável": {
      "width": "15%"
    },
    "Romaneio": {
      "width": "15%"
    },
    "Veículo": {
      "width": "15%"
    },
    "Razão social do participante": {
      "width": "15%"
    },
    "Requisitante": {
      "width": "15%"
    },
    "Última ação": {
      "width": "10%"
    },
    "Ação realizada": {
      "width": "10%"
    },
    "Membro": {
      "width": "10%"
    },
    "Histórico": {
      "type": "textarea",
      "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_requisicao",
        "data-table-ondevou": "requisicoes",
        "controls-acao": {
          "qrcode": {
            "acao": "getQRcode",
            "messagem": "Gerar QR Code"
          }
        },
        "formsearch": {
          "required": ""
        }
      }
    },
    "qrcode": {
      "input": {
        "readonly": "readonly",
        "type": "canvas",
        "qrcode-type": "req",
        "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": "requisicoes"
      }
    },
    "Data requisição": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "date",
        "data-field-ondevou": "data_hora_inclusao_requisicao",
        "data-table-ondevou": "view_requisicoes"
      }
    },
    "Situação": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_situacao",
        "data-id-field-alias-ondevou": "id_situacao_requisicao",
        "data-field-ondevou": "nome_situacao_requisicao",
        "data-table-ondevou": "view_requisicoes",
        "getdata": "{\"view\":\"view_requisicoes_situacao\",\"data\":\"view_requisicoes_situacao\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_situacao\",\"campo-data-value-input\":\"id_situacao,nome_situacao\",\"campo-data-input-select-view\":\"id_situacao,nome_situacao\",\"query\":{\"select\":\"* from view_requisicoes_situacao\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_situacao,` `,nome_situacao))) ilike `%\",\"right\":\"%`)\"}}}}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Tipo": {
      "input": {
        "required": "required",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_tipo",
        "data-id-field-alias-ondevou": "id_tipo_requisicao",
        "data-field-ondevou": "nome_tipo_requisicao",
        "data-table-ondevou": "requisicoes",
        "getdata": "{\"view\":\"view_requisicoes_tipos\",\"data\":\"view_requisicoes_tipos\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_tipo_requisicao\",\"campo-data-value-input\":\"nome_tipo_requisicao\",\"campo-data-input-select-view\":\"nome_tipo_requisicao\",\"query\":{\"select\":\"* from view_requisicoes_tipos\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_tipo_requisicao,` `,nome_tipo_requisicao))) ilike `%\",\"right\":\"%`)\"}}}}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Descrição": {
      "input": {
        "data-type-ondevou": "text",
        "data-field-ondevou": "descricao",
        "data-field-alias-ondevou": "descricao_requisicao",
        "data-table-ondevou": "requisicoes"
      }
    },
    "Responsável": {
      "input": {
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_responsavel",
        "data-field-ondevou": "nome_responsavel",
        "data-table-ondevou": "requisicoes",
        "getdata": "{\"view\":\"view_membros_participantes\",\"data\":\"view_membros_participantes\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_membro\",\"campo-data-value-input\":\"nome_membro\",\"campo-data-input-select-view\":\"nome_membro,email_membro,nome_situacao\",\"query\":{\"select\":\"* from view_membros_participantes\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_membro,` `,nome_membro,` `,email_membro))) ilike `%\",\"right\":\"%`) and (id_participante=`1`)\"}}}}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Romaneio": {
      "input": {
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_romaneio",
        "data-field-ondevou": "descricao_romaneio",
        "data-table-ondevou": "requisicoes",
        "getdata": "{\"view\":\"view_romaneios\",\"data\":\"view_romaneios\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_romaneio\",\"campo-data-value-input\":\"id_romaneio,descricao_romaneio,romaneio_erplinux\",\"campo-data-input-select-view\":\"id_romaneio,descricao_romaneio,romaneio_erplinux,nome_situacao\",\"query\":{\"select\":\"* from view_romaneios\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_romaneio,` `,romaneio_erplinux,` `,descricao_romaneio))) ilike `%\",\"right\":\"%`) and (participante=`1`)\"}}},\"order\":\"id_romaneio desc\"}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Veículo": {
      "input": {
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_veiculo",
        "data-field-ondevou": "descricao_veiculo",
        "data-table-ondevou": "requisicoes",
        "getdata": "{\"view\":\"view_veiculos\",\"data\":\"view_veiculos\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_veiculo\",\"campo-data-value-input\":\"id_veiculo,placa_veiculo,descricao_veiculo\",\"campo-data-input-select-view\":\"id_veiculo,placa_veiculo,descricao_veiculo,renavam\",\"query\":{\"select\":\"* from view_veiculos\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_veiculo,` `,placa_veiculo,` `,descricao_veiculo,` `,renavam))) ilike `%\",\"right\":\"%`) and (participante=`1`)\"}}}}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Razão social do participante": {
      "input": {
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_participante",
        "data-field-ondevou": "razao_social",
        "data-table-ondevou": "requisicoes",
        "getdata": "{\"view\":\"view_participantes_privado\",\"data\":\"view_participantes_privado\",\"campo-data-id\":\"id_participante\",\"campo-data-value-input\":\"id_participante,razao_social\",\"campo-data-input-select-view\":\"id_participante,codigo_erplinux_cliente,codigo_erplinux_fornecedor,razao_social,nome_fantasia,cnpj,cpf,cep,cep_erplinux,nome_bairro,nome_cidade,sigla_uf\",\"query\":{\"select\":\"* from view_participantes_privado\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_participante,` `,codigo_erplinux_cliente,` `,codigo_erplinux_fornecedor,` `,razao_social,` `,nome_fantasia,` `,cnpj,` `,cpf,` `,cep,` `,cep_erplinux,` `,nome_bairro,` `,nome_cidade,` `,sigla_uf))) ilike `%\",\"right\":\"%`) and (participante=`1`)\"}}}}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Requisitante": {
      "input": {
        "data-type-ondevou": "number",
        "readonly": "readonly",
        "data-id-field-ondevou": "id_membro_requisicao",
        "data-field-ondevou": "nome_membro_requisicao",
        "data-table-ondevou": "view_requisicoes",
        "getdata": "{\"view\":\"view_membros_participantes\",\"data\":\"view_membros_participantes\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_membro\",\"campo-data-value-input\":\"nome_membro\",\"campo-data-input-select-view\":\"nome_membro,email_membro,nome_situacao\",\"query\":{\"select\":\"* from view_membros_participantes\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_membro,` `,nome_membro,` `,email_membro))) ilike `%\",\"right\":\"%`) and (id_participante=`1`)\"}}}}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Última ação": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "date",
        "data-field-ondevou": "data_hora_ultima_atividade",
        "data-table-ondevou": "view_requisicoes"
      }
    },
    "Ação realizada": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "text",
        "data-field-ondevou": "nome_rotina_ultima_atividade",
        "data-table-ondevou": "view_requisicoes"
      }
    },
    "Membro": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "text",
        "data-field-ondevou": "nome_membro_ultima_atividade",
        "data-table-ondevou": "view_requisicoes"
      }
    },
    "Histórico": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "text",
        "data-field-ondevou": "historico_requisicao",
        "data-table-ondevou": "view_requisicoes"
      }
    },
    "Latitude": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "latitude",
        "data-table-ondevou": "view_requisicoes"
      }
    },
    "Longitude": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "longitude",
        "data-table-ondevou": "view_requisicoes"
      }
    },
    "Ip": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "text",
        "data-field-ondevou": "ip",
        "data-table-ondevou": "view_requisicoes"
      }
    },
    "Data inclusão": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "date",
        "data-field-ondevou": "data_inclusao_requisicao",
        "data-table-ondevou": "view_requisicoes"
      }
    }
  },
  "formsearch": {
    "data-table-ondevou": "view_requisicoes",
    "data-where-order": "order by id_requisicao desc",
    "data-where-fixed": "participante in (`1`)",
    "input": {
      "data_inicial": {
        "data-field-ondevou": "data_inicial",
        "data-type-ondevou": "date",
        "type": "datetime-local",
        "class": "datetimepicker",
        "texto_label": "Data e Hora Inicial",
        "data-field-where": "data"
      },
      "data_final": {
        "data-field-ondevou": "data_final",
        "data-type-ondevou": "date",
        "type": "datetime-local",
        "class": "datetimepicker",
        "texto_label": "Data e Hora Final",
        "data-field-where": "data"
      }
    }
  },
  "graficos": {
    "1": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "data_inclusao_requisicao",
          "y": "count",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "Ocorrência por data"
        }
      }
    },
    "2": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "nome_situacao_requisicao",
          "y": "count",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "Ocorrência por Situação"
        }
      }
    },
    "3": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "nome_tipo_requisicao",
          "y": "count",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "Ocorrência por Tipo"
        }
      }
    },
    "4": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "nome_membro_requisicao",
          "y": "count",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "Ocorrência por Requisitante"
        }
      }
    },
    "5": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "nome_responsavel",
          "y": "count",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "Ocorrência por Responsável"
        }
      }
    },
    "6": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "descricao_romaneio",
          "y": "count",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "Ocorrência por Romaneio"
        }
      }
    },
    "7": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "descricao_veiculo",
          "y": "count",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "Ocorrência por Veículo"
        }
      }
    },
    "8": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "razao_social",
          "y": "count",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "Ocorrência por Razão social do participante"
        }
      }
    }
  },
  "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": "REQUISIÇÕES",
      "subtitle": "Gestão de Requisições e Atendimentos",
      "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": {
      "bloco1_resumo_executivo": {
        "type": "summary_cards_full",
        "title": "RESUMO EXECUTIVO - REQUISIÇÕES",
        "class": "dashboard-section dashboard-section-full-width",
        "icon": "📋",
        "config": {
          "container_id": "cards-resumo-executivo",
          "size": "full",
          "cards": [
            {
              "title": "TOTAL DE REQUISIÇÕES",
              "value": "COUNT:id_requisicao",
              "format": "numero",
              "decimals": 0,
              "suffix": " requisições",
              "icon": "📋",
              "color": "#2c3e50"
            },
            {
              "title": "📌 PENDENTE",
              "value": "COUNT:id_requisicao",
              "filters": "id_situacao_requisicao = 1",
              "format": "numero",
              "decimals": 0,
              "suffix": " req",
              "icon": "⏳",
              "color": "#f39c12"
            },
            {
              "title": "🔍 EM ANDAMENTO",
              "value": "COUNT:id_requisicao",
              "filters": "id_situacao_requisicao = 2",
              "format": "numero",
              "decimals": 0,
              "suffix": " req",
              "icon": "🔍",
              "color": "#3498db"
            },
            {
              "title": "⚡ EM EXECUÇÃO",
              "value": "COUNT:id_requisicao",
              "filters": "id_situacao_requisicao = 3",
              "format": "numero",
              "decimals": 0,
              "suffix": " req",
              "icon": "⚡",
              "color": "#9b59b6"
            },
            {
              "title": "✅ APROVADA",
              "value": "COUNT:id_requisicao",
              "filters": "id_situacao_requisicao = 4",
              "format": "numero",
              "decimals": 0,
              "suffix": " req",
              "icon": "✅",
              "color": "#27ae60"
            },
            {
              "title": "🏁 CONCLUÍDA",
              "value": "COUNT:id_requisicao",
              "filters": "id_situacao_requisicao = 6",
              "format": "numero",
              "decimals": 0,
              "suffix": " req",
              "icon": "🏁",
              "color": "#1abc9c"
            },
            {
              "title": "❌ REPROVADA",
              "value": "COUNT:id_requisicao",
              "filters": "id_situacao_requisicao = 5",
              "format": "numero",
              "decimals": 0,
              "suffix": " req",
              "icon": "❌",
              "color": "#e74c3c"
            },
            {
              "title": "🚫 CANCELADA",
              "value": "COUNT:id_requisicao",
              "filters": "id_situacao_requisicao = 7",
              "format": "numero",
              "decimals": 0,
              "suffix": " req",
              "icon": "🚫",
              "color": "#95a5a6"
            },
            {
              "title": "📊 TAXA DE APROVAÇÃO",
              "value": "CALC:(COUNT(id_requisicao where id_situacao_requisicao = 4 or id_situacao_requisicao = 6)/COUNT(id_requisicao))*100",
              "format": "numero",
              "decimals": 1,
              "suffix": "%",
              "icon": "📊",
              "color": "#27ae60"
            },
            {
              "title": "📊 TAXA DE CONCLUSÃO",
              "value": "CALC:(COUNT(id_requisicao where id_situacao_requisicao = 6)/COUNT(id_requisicao))*100",
              "format": "numero",
              "decimals": 1,
              "suffix": "%",
              "icon": "📊",
              "color": "#1abc9c"
            },
            {
              "title": "📊 TAXA DE REPROVAÇÃO",
              "value": "CALC:(COUNT(id_requisicao where id_situacao_requisicao = 5)/COUNT(id_requisicao))*100",
              "format": "numero",
              "decimals": 1,
              "suffix": "%",
              "icon": "📊",
              "color": "#e74c3c"
            },
            {
              "title": "🔄 EM PROCESSO",
              "value": "COUNT:id_requisicao",
              "filters": "id_situacao_requisicao IN (1,2,3)",
              "format": "numero",
              "decimals": 0,
              "suffix": " req",
              "icon": "🔄",
              "color": "#f39c12"
            }
          ]
        }
      },
      "bloco2_metricas_detalhadas": {
        "type": "summary_cards_grid",
        "title": "MÉTRICAS DETALHADAS",
        "class": "dashboard-section dashboard-section-full-width",
        "icon": "🔢",
        "config": {
          "container_id": "cards-metricas-detalhadas",
          "size": "full",
          "sections": [
            {
              "title": "📊 ANÁLISE DE SITUAÇÃO",
              "cards": [
                {
                  "title": "REQUISIÇÕES EM ABERTO",
                  "value": "COUNT:id_requisicao",
                  "filters": "id_situacao_requisicao IN (1,2,3)",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " req",
                  "icon": "📌",
                  "color": "#f39c12"
                },
                {
                  "title": "REQUISIÇÕES FINALIZADAS",
                  "value": "COUNT:id_requisicao",
                  "filters": "id_situacao_requisicao IN (4,6)",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " req",
                  "icon": "✅",
                  "color": "#27ae60"
                },
                {
                  "title": "REQUISIÇÕES NEGATIVAS",
                  "value": "COUNT:id_requisicao",
                  "filters": "id_situacao_requisicao IN (5,7)",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " req",
                  "icon": "⚠️",
                  "color": "#e74c3c"
                }
              ]
            },
            {
              "title": "👤 ANÁLISE POR MEMBRO",
              "cards": [
                {
                  "title": "MEMBROS ATENDENTES",
                  "group_by": "nome_membro_requisicao",
                  "value": "METRICA_AGRUPAMENTO:total_grupos",
                  "filters": "nome_membro_requisicao IS NOT NULL AND nome_membro_requisicao != \"\"",
                  "format": "numero",
                  "decimals": 0,
                  "icon": "👥",
                  "color": "#3498db"
                },
                {
                  "title": "MÉDIA REQUISIÇÕES/MEMBRO",
                  "group_by": "nome_membro_requisicao",
                  "value": "METRICA_AGRUPAMENTO:media",
                  "filters": "nome_membro_requisicao IS NOT NULL AND nome_membro_requisicao != \"\"",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": " req",
                  "icon": "📊",
                  "color": "#1abc9c"
                },
                {
                  "title": "MEMBRO MAIS ATIVO",
                  "group_by": "nome_membro_requisicao",
                  "value": "METRICA_AGRUPAMENTO:moda",
                  "filters": "nome_membro_requisicao IS NOT NULL AND nome_membro_requisicao != \"\"",
                  "format": "texto",
                  "icon": "🥇",
                  "color": "#f1c40f"
                },
                {
                  "title": "MAIOR ATENDENTE",
                  "group_by": "nome_membro_requisicao",
                  "value": "METRICA_AGRUPAMENTO:maior_grupo",
                  "filters": "nome_membro_requisicao IS NOT NULL AND nome_membro_requisicao != \"\"",
                  "format": "texto",
                  "icon": "🏆",
                  "color": "#f1c40f"
                }
              ]
            },
            {
              "title": "🏢 ANÁLISE POR PARTICIPANTE",
              "cards": [
                {
                  "title": "PARTICIPANTES ATENDIDOS",
                  "group_by": "id_participante",
                  "value": "METRICA_AGRUPAMENTO:total_grupos",
                  "filters": "id_participante IS NOT NULL AND id_participante != \"\"",
                  "format": "numero",
                  "decimals": 0,
                  "icon": "👥",
                  "color": "#8e44ad"
                },
                {
                  "title": "MÉDIA REQUISIÇÕES/PARTICIPANTE",
                  "group_by": "id_participante",
                  "value": "METRICA_AGRUPAMENTO:media",
                  "filters": "id_participante IS NOT NULL AND id_participante != \"\"",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": " req",
                  "icon": "📊",
                  "color": "#2ecc71"
                }
              ]
            }
          ]
        }
      },
      "bloco3_distribuicao_situacao": {
        "type": "charts_grid_section",
        "title": "DISTRIBUIÇÃO POR SITUAÇÃO",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-2",
        "icon": "📊",
        "config": {
          "container_id": "distribuicao-situacao",
          "charts": [
            {
              "type": "chart_pie",
              "config": {
                "container_id": "graf-situacao-pizza",
                "data_config": {
                  "group_by": "nome_situacao_requisicao",
                  "operation": "COUNT:id_requisicao",
                  "filters": "nome_situacao_requisicao IS NOT NULL AND nome_situacao_requisicao != \"\""
                },
                "display_config": {
                  "title": "REQUISIÇÕES POR SITUAÇÃO",
                  "donut": true,
                  "show_percentages": true,
                  "show_values": true,
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " req",
                  "height": "350px"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-situacao-ranking",
                "data_config": {
                  "group_by": "nome_situacao_requisicao",
                  "operation": "COUNT:id_requisicao",
                  "filters": "nome_situacao_requisicao IS NOT NULL AND nome_situacao_requisicao != \"\""
                },
                "display_config": {
                  "title": "RANKING POR SITUAÇÃO",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " req",
                  "height": "350px",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            }
          ]
        }
      },
      "bloco4_distribuicao_tipo": {
        "type": "charts_grid_section",
        "title": "DISTRIBUIÇÃO POR TIPO",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-2",
        "icon": "🏷️",
        "config": {
          "container_id": "distribuicao-tipo",
          "charts": [
            {
              "type": "chart_pie",
              "config": {
                "container_id": "graf-tipo-pizza",
                "data_config": {
                  "group_by": "nome_tipo_requisicao",
                  "operation": "COUNT:id_requisicao",
                  "filters": "nome_tipo_requisicao IS NOT NULL AND nome_tipo_requisicao != \"\""
                },
                "display_config": {
                  "title": "REQUISIÇÕES POR TIPO",
                  "donut": true,
                  "show_percentages": true,
                  "show_values": true,
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " req",
                  "height": "350px"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-tipo-ranking",
                "data_config": {
                  "group_by": "nome_tipo_requisicao",
                  "operation": "COUNT:id_requisicao",
                  "filters": "nome_tipo_requisicao IS NOT NULL AND nome_tipo_requisicao != \"\""
                },
                "display_config": {
                  "title": "RANKING POR TIPO",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " req",
                  "height": "350px",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            }
          ]
        }
      },
      "bloco5_ranking_participante": {
        "type": "charts_grid_section",
        "title": "RANKING POR PARTICIPANTE",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-1",
        "icon": "🏢",
        "config": {
          "container_id": "ranking-participante",
          "charts": [
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-participante",
                "data_config": {
                  "group_by": "razao_social",
                  "operation": "COUNT:id_requisicao",
                  "filters": "razao_social IS NOT NULL AND razao_social != \"\""
                },
                "display_config": {
                  "title": "REQUISIÇÕES POR PARTICIPANTE",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " req",
                  "height": "400px",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            }
          ]
        }
      },
      "bloco6_ranking_membro": {
        "type": "charts_grid_section",
        "title": "RANKING POR MEMBRO",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-2",
        "icon": "👤",
        "config": {
          "container_id": "ranking-membro",
          "charts": [
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-membro-requisicoes",
                "data_config": {
                  "group_by": "nome_membro_requisicao",
                  "operation": "COUNT:id_requisicao",
                  "filters": "nome_membro_requisicao IS NOT NULL AND nome_membro_requisicao != \"\""
                },
                "display_config": {
                  "title": "TOTAL POR MEMBRO",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " req",
                  "height": "400px",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-membro-aprovadas",
                "data_config": {
                  "group_by": "nome_membro_requisicao",
                  "operation": "COUNT:id_requisicao",
                  "filters": "nome_membro_requisicao IS NOT NULL AND nome_membro_requisicao != \"\" AND id_situacao_requisicao IN (4,6)"
                },
                "display_config": {
                  "title": "APROVADAS/CONCLUÍDAS POR MEMBRO",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " req",
                  "height": "400px",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            }
          ]
        }
      },
      "bloco7_evolucao_requisicoes": {
        "type": "charts_grid_section",
        "title": "EVOLUÇÃO DAS REQUISIÇÕES",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-3",
        "icon": "📈",
        "config": {
          "container_id": "evolucao-requisicoes",
          "charts": [
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-requisicoes-geral",
                "data_config": {
                  "campo_data": "data_inclusao_requisicao",
                  "operation": "COUNT:id_requisicao",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "📋 TOTAL DE REQUISIÇÕES",
                  "layout": "vertical",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " req",
                  "height": "350px",
                  "color": "#3498db"
                }
              }
            },
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-requisicoes-aprovadas",
                "data_config": {
                  "campo_data": "data_inclusao_requisicao",
                  "operation": "COUNT:id_requisicao",
                  "filters": "id_situacao_requisicao IN (4,6)",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "✅ APROVADAS/CONCLUÍDAS",
                  "layout": "vertical",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " req",
                  "height": "350px",
                  "color": "#27ae60"
                }
              }
            },
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-requisicoes-negativas",
                "data_config": {
                  "campo_data": "data_inclusao_requisicao",
                  "operation": "COUNT:id_requisicao",
                  "filters": "id_situacao_requisicao IN (5,7)",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "❌ REPROVADAS/CANCELADAS",
                  "layout": "vertical",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " req",
                  "height": "350px",
                  "color": "#e74c3c"
                }
              }
            }
          ]
        }
      },
      "bloco8_qualidade_atendimento": {
        "type": "summary_cards_grid",
        "title": "QUALIDADE DO ATENDIMENTO",
        "class": "dashboard-section dashboard-section-full-width",
        "icon": "⭐",
        "config": {
          "container_id": "cards-qualidade-atendimento",
          "size": "full",
          "sections": [
            {
              "title": "📊 MÉTRICAS DE SITUAÇÃO",
              "cards": [
                {
                  "title": "TAXA DE APROVAÇÃO",
                  "value": "CALC:(COUNT(id_requisicao where id_situacao_requisicao = 4 or id_situacao_requisicao = 6)/COUNT(id_requisicao))*100",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": "%",
                  "icon": "✅",
                  "color": "#27ae60"
                },
                {
                  "title": "TAXA DE REPROVAÇÃO",
                  "value": "CALC:(COUNT(id_requisicao where id_situacao_requisicao = 5)/COUNT(id_requisicao))*100",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": "%",
                  "icon": "❌",
                  "color": "#e74c3c"
                },
                {
                  "title": "TAXA DE CANCELAMENTO",
                  "value": "CALC:(COUNT(id_requisicao where id_situacao_requisicao = 7)/COUNT(id_requisicao))*100",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": "%",
                  "icon": "🚫",
                  "color": "#95a5a6"
                },
                {
                  "title": "TAXA DE CONCLUSÃO",
                  "value": "CALC:(COUNT(id_requisicao where id_situacao_requisicao = 6)/COUNT(id_requisicao))*100",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": "%",
                  "icon": "🏁",
                  "color": "#1abc9c"
                }
              ]
            },
            {
              "title": "📊 DISTRIBUIÇÃO DE STATUS",
              "cards": [
                {
                  "title": "REQUISIÇÕES ATIVAS",
                  "value": "COUNT:id_requisicao",
                  "filters": "id_situacao_requisicao IN (1,2,3)",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " req",
                  "icon": "🔄",
                  "color": "#f39c12"
                },
                {
                  "title": "REQUISIÇÕES FINALIZADAS",
                  "value": "COUNT:id_requisicao",
                  "filters": "id_situacao_requisicao IN (4,6)",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " req",
                  "icon": "✅",
                  "color": "#27ae60"
                },
                {
                  "title": "REQUISIÇÕES REPROVADAS/CANCELADAS",
                  "value": "COUNT:id_requisicao",
                  "filters": "id_situacao_requisicao IN (5,7)",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " req",
                  "icon": "⚠️",
                  "color": "#e74c3c"
                }
              ]
            }
          ]
        }
      }
    }
  },
  "url_documentacao": "/docs/ondevou-db-requisicoes.html",
  "nome_tabela": "requisicoes"
}

📝 SQL CREATE TABLE - Estrutura Completa

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

🏗️ Estrutura Completa

📋 9 colunas 🔗 4 constraints 📑 12 índices ⚡ 0 triggers
code Clique para ver o SQL completo ✅ COMPLETO
-- ============================================================
-- ESTRUTURA COMPLETA DA TABELA requisicoes
-- Fonte: PostgreSQL - 12/08/2026 10:24:51
-- ============================================================

CREATE TABLE public.requisicoes (
    id integer NOT NULL DEFAULT nextval('requisicoes_id_seq'::regclass),
    participante integer NOT NULL,
    id_romaneio integer,
    id_tipo integer,
    id_responsavel integer,
    id_participante integer,
    id_veiculo integer,
    descricao varchar(1000),
    data timestamp NOT NULL DEFAULT now(),
    CONSTRAINT requisicoes_pkey PRIMARY KEY (id),
    CONSTRAINT 2200_222062_1_not_null CHECK (id IS NOT NULL),
    CONSTRAINT 2200_222062_2_not_null CHECK (participante IS NOT NULL),
    CONSTRAINT 2200_222062_9_not_null CHECK (data IS NOT NULL)
);

-- ============================================================
-- ÍNDICES
-- ============================================================
CREATE INDEX idx_requisicoes_id_participante ON public.requisicoes USING btree (id_participante);
CREATE INDEX idx_requisicoes_id_responsavel ON public.requisicoes USING btree (id_responsavel);
CREATE INDEX idx_requisicoes_id_romaneio ON public.requisicoes USING btree (id_romaneio);
CREATE INDEX idx_requisicoes_id_tipo ON public.requisicoes USING btree (id_tipo);
CREATE INDEX idx_requisicoes_id_veiculo ON public.requisicoes USING btree (id_veiculo);
CREATE INDEX idx_requisicoes_p_data ON public.requisicoes USING btree (participante, data DESC);
CREATE INDEX idx_requisicoes_p_id ON public.requisicoes USING btree (participante, id DESC);
CREATE INDEX idx_requisicoes_p_id_participante ON public.requisicoes USING btree (participante, id_participante);
CREATE INDEX idx_requisicoes_p_id_romaneio ON public.requisicoes USING btree (participante, id_romaneio);
CREATE INDEX idx_requisicoes_p_id_veiculo ON public.requisicoes USING btree (participante, id_veiculo DESC);
CREATE INDEX idx_requisicoes_participante ON public.requisicoes USING btree (participante);
CREATE UNIQUE INDEX requisicoes_pk_id ON public.requisicoes 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_hora_inclusao_requisicao date - ⚠️ Só no JSON
data_hora_ultima_atividade date - ⚠️ Só no JSON
data_inclusao_requisicao date - ⚠️ Só no JSON
descricao text character varying ✅ OK
descricao_romaneio number - ⚠️ Só no JSON
descricao_veiculo number - ⚠️ Só no JSON
historico_requisicao text - ⚠️ Só no JSON
id number integer ✅ OK
id_participante - integer ❌ Só no banco
id_responsavel - integer ❌ Só no banco
id_romaneio - integer ❌ Só no banco
id_tipo - integer ❌ Só no banco
id_veiculo - integer ❌ Só no banco
ip text - ⚠️ Só no JSON
latitude number - ⚠️ Só no JSON
longitude number - ⚠️ Só no JSON
nome_membro_requisicao number - ⚠️ Só no JSON
nome_membro_ultima_atividade text - ⚠️ Só no JSON
nome_responsavel number - ⚠️ Só no JSON
nome_rotina_ultima_atividade text - ⚠️ Só no JSON
nome_situacao_requisicao number - ⚠️ Só no JSON
nome_tipo_requisicao number - ⚠️ Só no JSON
participante text integer ✅ OK
qrcode text - ⚠️ Só no JSON
razao_social number - ⚠️ 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_requisicoes WHERE participante = ${globais.dados_fixo.participante}`,
    'view': 'view_requisicoes'
});

// 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': 'requisicoes' });

// 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