🗄️ Rastreabilidade de Cilindro

Tabela auxiliar que armazena rastreabilidade dos cilindros.
🔗 Tabela relacionada: cilindros

📋 23 colunas 🔗 7 relacionamentos 🎮 7 controles 👁️ view_cilindros_rastreabilidade 🔑 PRIMARY KEY

📋 Estrutura da Tabela

A tabela cilindros_rastreabilidade possui 23 colunas.

🔑 Id PRIMARY KEY
🔑 PRIMARY KEY🔒 Somente leitura📋 Somente view
Campo Tabela id
Campo VIEW / Exibido id_cilindros_rastreabilidade ⚠️ (somente view) 🔹 Alias na VIEW: id_cilindros_rastreabilidade
Tipo number (readonly - PRIMARY KEY)
Data Table view_cilindros_rastreabilidade
Descrição

Campo id

🔑 PRIMARY KEY

Campo na tabela: id

Alias na VIEW: id_cilindros_rastreabilidade

Readonly: ✅ Gerado automaticamente pelo sistema

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou id
  • Alias OndeVou id_cilindros_rastreabilidade
  • Tabela OndeVou view_cilindros_rastreabilidade
  • Alias: id_cilindros_rastreabilidade
  • Tabelas: view_cilindros_rastreabilidade (só view)
  • 🔑 PRIMARY KEY
  • VIEW: id_cilindros_rastreabilidade
📋 Inclusão
🔒 Somente leitura📋 Somente view
Campo Tabela data_hora_inclusao
Campo VIEW / Exibido data_hora_inclusao ⚠️ (somente view)
Tipo date
Data Table view_cilindros_rastreabilidade
Descrição

Campo inclusão

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

Campo tabela origem

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

Campo id origem

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou id_origem
  • Tabela OndeVou view_cilindros_rastreabilidade
  • Tabelas: view_cilindros_rastreabilidade (só view)
📋 Id cilindro
✅ Obrigatório🔒 Somente leitura📋 Somente view🔗 getdata
Campo Tabela id_cilindro
Campo VIEW / Exibido id_cilindro ⚠️ (somente view)
Tipo number (getdata)
Data Table view_cilindros_rastreabilidade
Descrição

Campo id cilindro

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou id_cilindro
  • Tabela OndeVou view_cilindros_rastreabilidade
🔗 Getdata
  • {
      "view": "view_cilindros",
      "data": "view_cilindros",
      "text-empty-search": "sim",
      "data-update-full-fields": "sim",
      "campo-data-id": "id_cilindro",
      "campo-data-value-input": "id_cilindro,referencia_cilindro,nome_tipo,nome_aplicacao,nome_capacidade,nome_unidade_capacidade,nome_situacao,nome_localizacao",
      "campo-data-input-select-view": "id_cilindro,referencia_cilindro,nome_tipo,nome_aplicacao,nome_capacidade,nome_unidade_capacidade,nome_situacao,nome_localizacao",
      "query": {
        "select": "* from view_cilindros",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(ativo is null) and (unaccent(LOWER(concat(id_cilindro,` `,referencia_cilindro,` `,nome_tipo,` `,nome_aplicacao,` `,nome_capacidade,` `,nome_unidade_capacidade))) ilike `%",
              "right": "%`) and (participante = 1)"
            }
          }
        },
        "order": "id_cilindro desc"
      }
    }
🚀 Launch
  • {
      "menu": {
        "data-id": "19"
      },
      "formsearch": {
        "id": "id_cilindro"
      }
    }
  • Tabelas: view_cilindros_rastreabilidade (só view)
  • Launch: ✓
  • FormSearch: ✓
📋 Produto
🔒 Somente leitura📋 Somente view
Campo Tabela
Campo VIEW / Exibido nome_tipo + nome_aplicacao + nome_capacidade + nome_unidade_capacidade
Tipo text (concatenação)
Data Table view_cilindros_rastreabilidade
Descrição

Campo produto

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_tipo,nome_aplicacao,nome_capacidade,nome_u...
  • Tabela OndeVou view_cilindros_rastreabilidade
  • Tabelas: view_cilindros_rastreabilidade (só view)
📋 Id rotina
🔒 Somente leitura👁️ Oculto📋 Somente view
Campo Tabela id_rotina
Campo VIEW / Exibido id_rotina ⚠️ (somente view)
Tipo number
Data Table view_cilindros_rastreabilidade
Descrição

Campo id rotina

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou id_rotina
  • Tabela OndeVou view_cilindros_rastreabilidade
  • Tabelas: view_cilindros_rastreabilidade (só view)
  • Hidden: ✓ (dados ocultos)
📋 Rotina
🔒 Somente leitura📋 Somente view🔗 getdata
Campo Tabela id_rotina
Campo VIEW / Exibido nome_rotina ⚠️ (somente view)
Tipo number (getdata)
Data Table view_cilindros_rastreabilidade
Descrição

Campo rotina

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_rotina
  • ID OndeVou id_rotina
  • Tabela OndeVou view_cilindros_rastreabilidade
🔗 Getdata
  • {
      "view": "view_rotinas",
      "data": "view_rotinas",
      "text-empty-search": "sim",
      "campo-data-id": "id_rotina",
      "campo-data-value-input": "nome_rotina",
      "campo-data-input-select-view": "id_rotina,nome_rotina",
      "query": {
        "select": "* from view_rotinas",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_rotina,` `,nome_rotina))) ilike `%",
              "right": "%`)"
            }
          }
        }
      }
    }
  • ID: id_rotina
  • Tabelas: view_cilindros_rastreabilidade (só view)
📋 Id romaneio
🔒 Somente leitura📋 Somente view
Campo Tabela id_romaneio
Campo VIEW / Exibido id_romaneio ⚠️ (somente view)
Tipo number
Data Table view_cilindros_rastreabilidade
Descrição

Campo id romaneio

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou id_romaneio
  • Tabela OndeVou view_cilindros_rastreabilidade
🚀 Launch
  • {
      "menu": {
        "data-id": "64"
      },
      "formsearch": {
        "id": "id_romaneio"
      }
    }
  • Tabelas: view_cilindros_rastreabilidade (só view)
  • Launch: ✓
📋 Romaneio
🔒 Somente leitura📋 Somente view🔗 getdata
Campo Tabela id_romaneio
Campo VIEW / Exibido descricao_romaneio ⚠️ (somente view)
Tipo number (getdata)
Data Table view_cilindros_rastreabilidade
Descrição

Campo romaneio

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou descricao_romaneio
  • ID OndeVou id_romaneio
  • Tabela OndeVou view_cilindros_rastreabilidade
🔗 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"
      }
    }
  • ID: id_romaneio
  • Tabelas: view_cilindros_rastreabilidade (só view)
📋 Id lote
🔒 Somente leitura📋 Somente view
Campo Tabela id_lote_producao
Campo VIEW / Exibido id_lote_producao ⚠️ (somente view)
Tipo number
Data Table view_cilindros_rastreabilidade
Descrição

Campo id lote

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou id_lote_producao
  • Tabela OndeVou view_cilindros_rastreabilidade
🚀 Launch
  • {
      "menu": {
        "data-id": "71"
      },
      "formsearch": {
        "id": "id_lote_producao"
      }
    }
  • Tabelas: view_cilindros_rastreabilidade (só view)
  • Launch: ✓
📋 Lote produção
🔒 Somente leitura📋 Somente view🔗 getdata
Campo Tabela id_lote_producao
Campo VIEW / Exibido nome_lote_producao ⚠️ (somente view)
Tipo number (getdata)
Data Table view_cilindros_rastreabilidade
Descrição

Campo lote produção

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_lote_producao
  • ID OndeVou id_lote_producao
  • Tabela OndeVou view_cilindros_rastreabilidade
🔗 Getdata
  • {
      "view": "view_lote_producao",
      "data": "view_lote_producao",
      "text-empty-search": "sim",
      "data-update-full-fields": "sim",
      "campo-data-id": "id_lote_producao",
      "campo-data-value-input": "id_lote_producao,nome_lote_producao",
      "campo-data-input-select-view": "id_lote_producao,nome_lote_producao,nome_tipo,nome_situacao",
      "query": {
        "select": "* from view_lote_producao",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_lote_producao,` `,nome_lote_producao))) ilike `%",
              "right": "%`) and (participante=`1`)"
            }
          }
        },
        "order": "id_lote_producao desc"
      }
    }
  • ID: id_lote_producao
  • Tabelas: view_cilindros_rastreabilidade (só view)
📋 Razão Social
🔒 Somente leitura📋 Somente view
Campo Tabela razao_social_cliente
Campo VIEW / Exibido razao_social_cliente ⚠️ (somente view)
Tipo text
Data Table view_cilindros_rastreabilidade
Descrição

Campo razão social

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou razao_social_cliente
  • Tabela OndeVou view_cilindros_rastreabilidade
  • Tabelas: view_cilindros_rastreabilidade (só view)
📋 Membro
🔒 Somente leitura📋 Somente view🔗 getdata
Campo Tabela id_membro
Campo VIEW / Exibido nome_membro ⚠️ (somente view)
Tipo number (getdata)
Data Table view_cilindros_rastreabilidade
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 view_cilindros_rastreabilidade
🔗 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": "%`)"
            }
          }
        }
      }
    }
  • ID: id_membro
  • Tabelas: view_cilindros_rastreabilidade (só view)
📋 Id etiqueta
🔒 Somente leitura📋 Somente view
Campo Tabela id_etiqueta_avulsa
Campo VIEW / Exibido id_etiqueta_avulsa ⚠️ (somente view)
Tipo number
Data Table view_cilindros_rastreabilidade
Descrição

Campo id etiqueta

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou id_etiqueta_avulsa
  • Tabela OndeVou view_cilindros_rastreabilidade
  • Tabelas: view_cilindros_rastreabilidade (só view)
📋 Sit antes
🔒 Somente leitura📋 Somente view🔗 getdata
Campo Tabela id_situacao_antes
Campo VIEW / Exibido nome_situacao_antes ⚠️ (somente view)
Tipo number (getdata)
Data Table view_cilindros_rastreabilidade
Descrição

Campo sit antes

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_situacao_antes
  • ID OndeVou id_situacao_antes
  • Tabela OndeVou view_cilindros_rastreabilidade
🔗 Getdata
  • {
      "view": "view_cilindros_situacao",
      "data": "view_cilindros_situacao",
      "data-update-full-fields": "sim",
      "text-empty-search": "sim",
      "campo-data-id": "id_situacao",
      "campo-data-value-input": "nome_situacao",
      "campo-data-input-select-view": "nome_situacao",
      "query": {
        "select": "* from view_cilindros_situacao",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_situacao,` `,nome_situacao))) ilike `%",
              "right": "%`)"
            }
          }
        }
      }
    }
  • ID: id_situacao_antes
  • Tabelas: view_cilindros_rastreabilidade (só view)
📋 Sit depois
🔒 Somente leitura📋 Somente view🔗 getdata
Campo Tabela id_situacao_cilindro
Campo VIEW / Exibido nome_situacao_cilindro ⚠️ (somente view)
Tipo number (getdata)
Data Table view_cilindros_rastreabilidade
Descrição

Campo sit depois

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_situacao_cilindro
  • ID OndeVou id_situacao_cilindro
  • Tabela OndeVou view_cilindros_rastreabilidade
🔗 Getdata
  • {
      "view": "view_cilindros_situacao",
      "data": "view_cilindros_situacao",
      "data-update-full-fields": "sim",
      "text-empty-search": "sim",
      "campo-data-id": "id_situacao",
      "campo-data-value-input": "nome_situacao",
      "campo-data-input-select-view": "nome_situacao",
      "query": {
        "select": "* from view_cilindros_situacao",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_situacao,` `,nome_situacao))) ilike `%",
              "right": "%`)"
            }
          }
        }
      }
    }
  • ID: id_situacao_cilindro
  • Tabelas: view_cilindros_rastreabilidade (só view)
📋 Loc antes
🔒 Somente leitura📋 Somente view🔗 getdata
Campo Tabela id_localizacao_antes
Campo VIEW / Exibido nome_localizacao_antes ⚠️ (somente view)
Tipo number (getdata)
Data Table view_cilindros_rastreabilidade
Descrição

Campo loc antes

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_localizacao_antes
  • ID OndeVou id_localizacao_antes
  • Tabela OndeVou view_cilindros_rastreabilidade
🔗 Getdata
  • {
      "view": "view_cilindros_localizacao",
      "data": "view_cilindros_localizacao",
      "text-empty-search": "sim",
      "data-update-full-fields": "sim",
      "campo-data-id": "id_localizacao",
      "campo-data-value-input": "nome_localizacao",
      "campo-data-input-select-view": "nome_localizacao",
      "query": {
        "select": "* from view_cilindros_localizacao",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_localizacao,` `,nome_localizacao))) ilike `%",
              "right": "%`)"
            }
          }
        }
      }
    }
  • ID: id_localizacao_antes
  • Tabelas: view_cilindros_rastreabilidade (só view)
📋 Loc depois
🔒 Somente leitura📋 Somente view🔗 getdata
Campo Tabela id_localizacao_cilindro
Campo VIEW / Exibido nome_localizacao_cilindro ⚠️ (somente view)
Tipo number (getdata)
Data Table view_cilindros_rastreabilidade
Descrição

Campo loc depois

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_localizacao_cilindro
  • ID OndeVou id_localizacao_cilindro
  • Tabela OndeVou view_cilindros_rastreabilidade
🔗 Getdata
  • {
      "view": "view_cilindros_localizacao",
      "data": "view_cilindros_localizacao",
      "text-empty-search": "sim",
      "data-update-full-fields": "sim",
      "campo-data-id": "id_localizacao",
      "campo-data-value-input": "nome_localizacao",
      "campo-data-input-select-view": "nome_localizacao",
      "query": {
        "select": "* from view_cilindros_localizacao",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_localizacao,` `,nome_localizacao))) ilike `%",
              "right": "%`)"
            }
          }
        }
      }
    }
  • ID: id_localizacao_cilindro
  • Tabelas: view_cilindros_rastreabilidade (só view)
📋 Latitude
🔒 Somente leitura👁️ Oculto📋 Somente view
Campo Tabela latitude
Campo VIEW / Exibido lat_rastreabilidade ⚠️ (somente view)
Tipo number
Data Table view_cilindros_rastreabilidade
Descrição

Campo latitude

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

Campo longitude

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou longitude
  • Alias OndeVou lng_rastreabilidade
  • Tabela OndeVou view_cilindros_rastreabilidade
  • Alias: lng_rastreabilidade
  • Tabelas: view_cilindros_rastreabilidade (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_cilindros_rastreabilidade
Descrição

Campo ip

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

Campo data

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

cilindros · Principal: Id cilindro 📄
rotinas · Principal: Rotina 📄
romaneios · Principal: Romaneio 📄
lote_producao · Auxiliar: Lote produção 📄
membros · Principal: Membro 📄
cilindros_situacao · Auxiliar: Sit antes 📄
cilindros_localizacao · Auxiliar: Loc antes 📄

🔍 Filtros (formsearch)

Campos disponíveis para filtragem na busca.

Data Inicial date
Data Final date

🎮 Controles Disponíveis

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

📂 Controle
🔘 Info info 🔘 Marker marker 🔘 Add add 🔘 Copy copy 💾 Salvar save 🔘 Delete delete 🔘 Remove remove

👁️ View Associada

Nome: view_cilindros_rastreabilidade

🔑 PRIMARY KEY - Campo Id

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

Configuração

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

Comportamento

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

💾 JSON da Tabela

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

code Clique para ver o JSON completo 37 KB
{
  "table-id": "cilindros_rastreabilidade",
  "data-table-ondevou": "cilindros_rastreabilidade",
  "data-table-update": "nao",
  "readonly": "sim",
  "table-class": "highlight",
  "controls": [
    "info",
    "marker",
    "add",
    "copy",
    "save",
    "delete",
    "remove"
  ],
  "html": {
    "div": {
      "before": "<h1>Movimentações</h1>",
      "after": ""
    }
  },
  "pdf": {
    "format": "a3",
    "orientation": "landscape",
    "columns-remove": [
      "Id"
    ]
  },
  "headers": {
    "Id": {
      "width": "5%"
    },
    "Inclusão": {
      "width": "10%"
    },
    "Tabela origem": {
      "type": "hidden"
    },
    "Id origem": {
      "width": "7%"
    },
    "Id cilindro": {
      "width": "7%"
    },
    "Produto": {
      "width": "20%"
    },
    "Id rotina": {
      "type": "hidden"
    },
    "Rotina": {
      "width": "20%"
    },
    "Id romaneio": {
      "width": "7%"
    },
    "Romaneio": {
      "width": "20%"
    },
    "Id lote": {
      "width": "7%"
    },
    "Lote produção": {
      "width": "20%"
    },
    "Razão Social": {
      "width": "20%"
    },
    "Membro": {
      "width": "15%"
    },
    "Id etiqueta": {
      "width": "7%"
    },
    "Sit antes": {
      "width": "7%"
    },
    "Sit depois": {
      "width": "7%"
    },
    "Loc antes": {
      "width": "7%"
    },
    "Loc depois": {
      "width": "7%"
    },
    "Latitude": {
      "type": "hidden"
    },
    "Longitude": {
      "type": "hidden"
    },
    "Ip": {
      "type": "hidden"
    },
    "Data": {
      "type": "hidden"
    }
  },
  "columns": {
    "Id": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "id",
        "data-field-alias-ondevou": "id_cilindros_rastreabilidade",
        "data-table-ondevou": "view_cilindros_rastreabilidade"
      }
    },
    "Inclusão": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "date",
        "data-field-ondevou": "data_hora_inclusao",
        "data-table-ondevou": "view_cilindros_rastreabilidade"
      }
    },
    "Tabela origem": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "text",
        "data-field-ondevou": "tabela_origem",
        "data-table-ondevou": "view_cilindros_rastreabilidade"
      }
    },
    "Id origem": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "id_origem",
        "data-table-ondevou": "view_cilindros_rastreabilidade"
      }
    },
    "Id cilindro": {
      "input": {
        "readonly": "readonly",
        "required": "required",
        "data-type-ondevou": "number",
        "data-field-ondevou": "id_cilindro",
        "data-table-ondevou": "view_cilindros_rastreabilidade",
        "formsearch": {
          "getcollector": "{\"modal\":\"\",\"qrcode\":\"{\\\"qrcode-type\\\":[\\\"cl\\\"]}\",\"table-add\":\"addTableColetar_dados_leituras\",\"table-setups\":\"{\\\"search\\\":\\\"nao\\\",\\\"html\\\":\\\"nao\\\",\\\"controls\\\":[\\\"info\\\",\\\"remove\\\"]}\"}"
        },
        "launch": {
          "menu": {
            "data-id": "19"
          },
          "formsearch": {
            "id": "id_cilindro"
          }
        },
        "getdata": "{\"view\":\"view_cilindros\",\"data\":\"view_cilindros\",\"text-empty-search\":\"sim\",\"data-update-full-fields\":\"sim\",\"campo-data-id\":\"id_cilindro\",\"campo-data-value-input\":\"id_cilindro,referencia_cilindro,nome_tipo,nome_aplicacao,nome_capacidade,nome_unidade_capacidade,nome_situacao,nome_localizacao\",\"campo-data-input-select-view\":\"id_cilindro,referencia_cilindro,nome_tipo,nome_aplicacao,nome_capacidade,nome_unidade_capacidade,nome_situacao,nome_localizacao\",\"query\":{\"select\":\"* from view_cilindros\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(ativo is null) and (unaccent(LOWER(concat(id_cilindro,` `,referencia_cilindro,` `,nome_tipo,` `,nome_aplicacao,` `,nome_capacidade,` `,nome_unidade_capacidade))) ilike `%\",\"right\":\"%`) and (participante = 1)\"}}},\"order\":\"id_cilindro desc\"}}"
      }
    },
    "Produto": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "text",
        "data-field-ondevou": "nome_tipo,nome_aplicacao,nome_capacidade,nome_unidade_capacidade",
        "data-table-ondevou": "view_cilindros_rastreabilidade"
      }
    },
    "Id rotina": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "id_rotina",
        "data-table-ondevou": "view_cilindros_rastreabilidade"
      }
    },
    "Rotina": {
      "input": {
        "data-type-ondevou": "number",
        "readonly": "readonly",
        "data-id-field-ondevou": "id_rotina",
        "data-field-ondevou": "nome_rotina",
        "data-table-ondevou": "view_cilindros_rastreabilidade",
        "getdata": "{\"view\":\"view_rotinas\",\"data\":\"view_rotinas\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_rotina\",\"campo-data-value-input\":\"nome_rotina\",\"campo-data-input-select-view\":\"id_rotina,nome_rotina\",\"query\":{\"select\":\"* from view_rotinas\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_rotina,` `,nome_rotina))) ilike `%\",\"right\":\"%`)\"}}}}}"
      }
    },
    "Id romaneio": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "id_romaneio",
        "data-table-ondevou": "view_cilindros_rastreabilidade",
        "launch": {
          "menu": {
            "data-id": "64"
          },
          "formsearch": {
            "id": "id_romaneio"
          }
        }
      }
    },
    "Romaneio": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_romaneio",
        "data-field-ondevou": "descricao_romaneio",
        "data-table-ondevou": "view_cilindros_rastreabilidade",
        "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\"}}"
      }
    },
    "Id lote": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "id_lote_producao",
        "data-table-ondevou": "view_cilindros_rastreabilidade",
        "launch": {
          "menu": {
            "data-id": "71"
          },
          "formsearch": {
            "id": "id_lote_producao"
          }
        }
      }
    },
    "Lote produção": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_lote_producao",
        "data-field-ondevou": "nome_lote_producao",
        "data-table-ondevou": "view_cilindros_rastreabilidade",
        "getdata": "{\"view\":\"view_lote_producao\",\"data\":\"view_lote_producao\",\"text-empty-search\":\"sim\",\"data-update-full-fields\":\"sim\",\"campo-data-id\":\"id_lote_producao\",\"campo-data-value-input\":\"id_lote_producao,nome_lote_producao\",\"campo-data-input-select-view\":\"id_lote_producao,nome_lote_producao,nome_tipo,nome_situacao\",\"query\":{\"select\":\"* from view_lote_producao\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_lote_producao,` `,nome_lote_producao))) ilike `%\",\"right\":\"%`) and (participante=`1`)\"}}},\"order\":\"id_lote_producao desc\"}}"
      }
    },
    "Razão Social": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "text",
        "data-field-ondevou": "razao_social_cliente",
        "data-table-ondevou": "view_cilindros_rastreabilidade"
      }
    },
    "Membro": {
      "input": {
        "data-type-ondevou": "number",
        "readonly": "readonly",
        "data-id-field-ondevou": "id_membro",
        "data-field-ondevou": "nome_membro",
        "data-table-ondevou": "view_cilindros_rastreabilidade",
        "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\":\"%`)\"}}}}}"
      }
    },
    "Id etiqueta": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "id_etiqueta_avulsa",
        "data-table-ondevou": "view_cilindros_rastreabilidade"
      }
    },
    "Sit antes": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_situacao_antes",
        "data-field-ondevou": "nome_situacao_antes",
        "data-table-ondevou": "view_cilindros_rastreabilidade",
        "getdata": "{\"view\":\"view_cilindros_situacao\",\"data\":\"view_cilindros_situacao\",\"data-update-full-fields\":\"sim\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_situacao\",\"campo-data-value-input\":\"nome_situacao\",\"campo-data-input-select-view\":\"nome_situacao\",\"query\":{\"select\":\"* from view_cilindros_situacao\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_situacao,` `,nome_situacao))) ilike `%\",\"right\":\"%`)\"}}}}}"
      }
    },
    "Sit depois": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_situacao_cilindro",
        "data-field-ondevou": "nome_situacao_cilindro",
        "data-table-ondevou": "view_cilindros_rastreabilidade",
        "getdata": "{\"view\":\"view_cilindros_situacao\",\"data\":\"view_cilindros_situacao\",\"data-update-full-fields\":\"sim\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_situacao\",\"campo-data-value-input\":\"nome_situacao\",\"campo-data-input-select-view\":\"nome_situacao\",\"query\":{\"select\":\"* from view_cilindros_situacao\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_situacao,` `,nome_situacao))) ilike `%\",\"right\":\"%`)\"}}}}}"
      }
    },
    "Loc antes": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_localizacao_antes",
        "data-field-ondevou": "nome_localizacao_antes",
        "data-table-ondevou": "view_cilindros_rastreabilidade",
        "getdata": "{\"view\":\"view_cilindros_localizacao\",\"data\":\"view_cilindros_localizacao\",\"text-empty-search\":\"sim\",\"data-update-full-fields\":\"sim\",\"campo-data-id\":\"id_localizacao\",\"campo-data-value-input\":\"nome_localizacao\",\"campo-data-input-select-view\":\"nome_localizacao\",\"query\":{\"select\":\"* from view_cilindros_localizacao\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_localizacao,` `,nome_localizacao))) ilike `%\",\"right\":\"%`)\"}}}}}"
      }
    },
    "Loc depois": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_localizacao_cilindro",
        "data-field-ondevou": "nome_localizacao_cilindro",
        "data-table-ondevou": "view_cilindros_rastreabilidade",
        "getdata": "{\"view\":\"view_cilindros_localizacao\",\"data\":\"view_cilindros_localizacao\",\"text-empty-search\":\"sim\",\"data-update-full-fields\":\"sim\",\"campo-data-id\":\"id_localizacao\",\"campo-data-value-input\":\"nome_localizacao\",\"campo-data-input-select-view\":\"nome_localizacao\",\"query\":{\"select\":\"* from view_cilindros_localizacao\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_localizacao,` `,nome_localizacao))) ilike `%\",\"right\":\"%`)\"}}}}}"
      }
    },
    "Latitude": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "latitude",
        "data-field-alias-ondevou": "lat_rastreabilidade",
        "data-table-ondevou": "view_cilindros_rastreabilidade"
      }
    },
    "Longitude": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "longitude",
        "data-field-alias-ondevou": "lng_rastreabilidade",
        "data-table-ondevou": "view_cilindros_rastreabilidade"
      }
    },
    "Ip": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "text",
        "data-field-ondevou": "ip",
        "data-table-ondevou": "view_cilindros_rastreabilidade"
      }
    },
    "Data": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "date",
        "data-field-ondevou": "data_inclusao",
        "data-table-ondevou": "view_cilindros_rastreabilidade"
      }
    }
  },
  "formsearch": {
    "data-table-ondevou": "view_cilindros_rastreabilidade",
    "data-view-ondevou": "view_cilindros_rastreabilidade",
    "data-where-limit": "N",
    "data-where-order": "order by id_cilindros_rastreabilidade desc",
    "input": {
      "data_inicial": {
        "data-field-ondevou": "data_inicial",
        "data-type-ondevou": "date",
        "type": "date",
        "class": "datepicker",
        "texto_label": "Data Inicial",
        "data-field-where": "data"
      },
      "data_final": {
        "data-field-ondevou": "data_final",
        "data-type-ondevou": "date",
        "type": "date",
        "class": "datepicker",
        "texto_label": "Data Final",
        "data-field-where": "data"
      }
    }
  },
  "graficos": {
    "1": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "data_inclusao",
          "y": "count",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "Data movimentação"
        }
      }
    },
    "2": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "id_cilindro",
          "y": "count",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "Ações por id do cilindro"
        }
      }
    },
    "3": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "nome_tipo,nome_aplicacao,nome_capacidade,nome_unidade_capacidade",
          "y": "count",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "Ações por produto"
        }
      }
    }
  },
  "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": "🔍 RASTREABILIDADE DO CILINDRO",
      "subtitle": "Histórico completo de movimentações",
      "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_movimentacoes": {
        "type": "summary_cards_full",
        "title": "RESUMO DE MOVIMENTAÇÕES",
        "subtitle": "Total de movimentações por tipo de operação",
        "class": "dashboard-section dashboard-section-full-width",
        "icon": "📊",
        "config": {
          "container_id": "cards-resumo-movimentacoes",
          "size": "full",
          "cards": [
            {
              "title": "TOTAL MOVIMENTAÇÕES",
              "value": "COUNT:id_cilindros_rastreabilidade",
              "format": "numero",
              "decimals": 0,
              "suffix": " vezes",
              "icon": "🔄",
              "color": "#3b82f6"
            },
            {
              "title": "ENCHIMENTO",
              "value": "COUNT:id_cilindros_rastreabilidade WHERE tabela_origem = cilindros_lote_producao",
              "format": "numero",
              "decimals": 0,
              "suffix": " vezes",
              "icon": "🔵",
              "color": "#22c55e"
            },
            {
              "title": "CARREGAMENTO",
              "value": "COUNT:id_cilindros_rastreabilidade WHERE tabela_origem = cilindros_romaneios_carregamentos",
              "format": "numero",
              "decimals": 0,
              "suffix": " vezes",
              "icon": "🚛",
              "color": "#f97316"
            },
            {
              "title": "ENTREGA NORMAL",
              "value": "COUNT:id_cilindros_rastreabilidade WHERE tabela_origem = cilindros_romaneios_entregas",
              "format": "numero",
              "decimals": 0,
              "suffix": " vezes",
              "icon": "📦",
              "color": "#3b82f6"
            },
            {
              "title": "ENTREGA ENVASE",
              "value": "COUNT:id_cilindros_rastreabilidade WHERE tabela_origem = cilindros_romaneios_entregas_envase",
              "format": "numero",
              "decimals": 0,
              "suffix": " vezes",
              "icon": "🏪",
              "color": "#14b8a6"
            },
            {
              "title": "RECOLH. NORMAL",
              "value": "COUNT:id_cilindros_rastreabilidade WHERE tabela_origem = cilindros_romaneios_recolhimentos",
              "format": "numero",
              "decimals": 0,
              "suffix": " vezes",
              "icon": "📥",
              "color": "#a855f7"
            },
            {
              "title": "RECOLH. ENVASE",
              "value": "COUNT:id_cilindros_rastreabilidade WHERE tabela_origem = cilindros_romaneios_recolhimentos_envase",
              "format": "numero",
              "decimals": 0,
              "suffix": " vezes",
              "icon": "🏪",
              "color": "#ec4899"
            },
            {
              "title": "RETORNO",
              "value": "COUNT:id_cilindros_rastreabilidade WHERE tabela_origem = cilindros_romaneios_retornos",
              "format": "numero",
              "decimals": 0,
              "suffix": " vezes",
              "icon": "🔄",
              "color": "#964B00"
            },
            {
              "title": "EMPRÉSTIMO",
              "value": "COUNT:id_cilindros_rastreabilidade WHERE tabela_origem = cilindros_romaneios_emprestimos",
              "format": "numero",
              "decimals": 0,
              "suffix": " vezes",
              "icon": "🤝",
              "color": "#eab308"
            },
            {
              "title": "DEVOLUÇÃO",
              "value": "COUNT:id_cilindros_rastreabilidade WHERE tabela_origem = cilindros_romaneios_devolucoes",
              "format": "numero",
              "decimals": 0,
              "suffix": " vezes",
              "icon": "↩️",
              "color": "#ec4899"
            },
            {
              "title": "ALTERAÇÃO SITUAÇÃO",
              "value": "COUNT:id_cilindros_rastreabilidade WHERE tabela_origem = cilindros_alterar_situacao",
              "format": "numero",
              "decimals": 0,
              "suffix": " vezes",
              "icon": "🔄",
              "color": "#f59e0b"
            },
            {
              "title": "ALTERAÇÃO LOCALIZAÇÃO",
              "value": "COUNT:id_cilindros_rastreabilidade WHERE tabela_origem = cilindros_alterar_localizacao",
              "format": "numero",
              "decimals": 0,
              "suffix": " vezes",
              "icon": "📍",
              "color": "#14b8a6"
            },
            {
              "title": "ALTERAÇÃO VALIDADE",
              "value": "COUNT:id_cilindros_rastreabilidade WHERE tabela_origem = cilindros_alterar_validade",
              "format": "numero",
              "decimals": 0,
              "suffix": " vezes",
              "icon": "📅",
              "color": "#8b5cf6"
            },
            {
              "title": "TITULARIDADE",
              "value": "COUNT:id_cilindros_rastreabilidade WHERE tabela_origem = cilindros_titularidade",
              "format": "numero",
              "decimals": 0,
              "suffix": " vezes",
              "icon": "📄",
              "color": "#64748b"
            },
            {
              "title": "INVENTÁRIO",
              "value": "COUNT:id_cilindros_rastreabilidade WHERE tabela_origem = inventarios_cilindros",
              "format": "numero",
              "decimals": 0,
              "suffix": " vezes",
              "icon": "📋",
              "color": "#06b6d4"
            }
          ]
        }
      },
      "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": "📌 ÚLTIMAS MOVIMENTAÇÕES",
              "cards": [
                {
                  "title": "ÚLTIMO CLIENTE",
                  "filters": "razao_social_cliente is not null",
                  "group_by": "razao_social_cliente",
                  "campo_data": "data_inclusao",
                  "value": "METRICA_AGRUPAMENTO:ultimo",
                  "format": "texto",
                  "icon": "🏢",
                  "color": "#3b82f6"
                },
                {
                  "title": "ÚLTIMO ROMANEIO",
                  "filters": "id_romaneio is not null",
                  "group_by": "descricao_romaneio",
                  "campo_data": "data_inclusao",
                  "value": "METRICA_AGRUPAMENTO:ultimo",
                  "format": "texto",
                  "icon": "📋",
                  "color": "#14b8a6"
                },
                {
                  "title": "ÚLTIMO LOTE PRODUÇÃO",
                  "filters": "id_lote_producao is not null",
                  "group_by": "nome_lote_producao",
                  "campo_data": "data_inclusao",
                  "value": "METRICA_AGRUPAMENTO:ultimo",
                  "format": "texto",
                  "icon": "🏷️",
                  "color": "#06b6d4"
                },
                {
                  "title": "ÚLTIMO OPERADOR",
                  "filters": "nome_membro is not null",
                  "group_by": "nome_membro",
                  "campo_data": "data_inclusao",
                  "value": "METRICA_AGRUPAMENTO:ultimo",
                  "format": "texto",
                  "icon": "👤",
                  "color": "#f59e0b"
                }
              ]
            },
            {
              "title": "📊 DIVERSIDADE",
              "cards": [
                {
                  "title": "CLIENTES",
                  "value": "COUNT_DISTINCT:razao_social_cliente",
                  "format": "numero",
                  "decimals": 0,
                  "icon": "🏢",
                  "color": "#3b82f6"
                },
                {
                  "title": "ROMANEIOS",
                  "value": "COUNT_DISTINCT:descricao_romaneio",
                  "format": "numero",
                  "decimals": 0,
                  "icon": "📋",
                  "color": "#14b8a6"
                },
                {
                  "title": "LOTES PRODUÇÃO",
                  "value": "COUNT_DISTINCT:nome_lote_producao",
                  "format": "numero",
                  "decimals": 0,
                  "icon": "🏷️",
                  "color": "#06b6d4"
                },
                {
                  "title": "OPERADORES",
                  "value": "COUNT_DISTINCT:nome_membro",
                  "format": "numero",
                  "decimals": 0,
                  "icon": "👤",
                  "color": "#f59e0b"
                }
              ]
            },
            {
              "title": "📅 ANÁLISE TEMPORAL",
              "cards": [
                {
                  "title": "PRIMEIRA MOVIMENTAÇÃO",
                  "group_by": "data_inclusao",
                  "campo_data": "data_inclusao",
                  "value": "METRICA_AGRUPAMENTO:primeiro",
                  "format": "data_hora",
                  "icon": "🌅",
                  "color": "#22c55e"
                },
                {
                  "title": "ÚLTIMA MOVIMENTAÇÃO",
                  "group_by": "data_inclusao",
                  "campo_data": "data_inclusao",
                  "value": "METRICA_AGRUPAMENTO:ultimo",
                  "format": "data_hora",
                  "icon": "🌙",
                  "color": "#f97316"
                },
                {
                  "title": "FREQUÊNCIA MÉDIA",
                  "group_by": "id_cilindros_rastreabilidade",
                  "campo_data": "data_inclusao",
                  "value": "METRICA_AGRUPAMENTO:media_dias_entre",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": " dias",
                  "icon": "🔄",
                  "color": "#a855f7"
                },
                {
                  "title": "PERÍODO EM CAMPO",
                  "group_by": "id_cilindros_rastreabilidade",
                  "campo_data": "data_inclusao",
                  "value": "METRICA_AGRUPAMENTO:diferenca_dias",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " dias",
                  "icon": "⏱️",
                  "color": "#3b82f6"
                },
                {
                  "title": "MENOR INTERVALO",
                  "group_by": "id_cilindros_rastreabilidade",
                  "campo_data": "data_inclusao",
                  "value": "METRICA_AGRUPAMENTO:menor_intervalo",
                  "format": "numero",
                  "decimals": 6,
                  "suffix": " dias",
                  "icon": "⚡",
                  "color": "#22c55e"
                },
                {
                  "title": "MAIOR INATIVIDADE",
                  "group_by": "id_cilindros_rastreabilidade",
                  "campo_data": "data_inclusao",
                  "value": "METRICA_AGRUPAMENTO:maior_intervalo",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": " dias",
                  "icon": "⏸️",
                  "color": "#f97316"
                },
                {
                  "title": "MEDIANA DOS INTERVALOS",
                  "group_by": "id_cilindros_rastreabilidade",
                  "campo_data": "data_inclusao",
                  "value": "METRICA_AGRUPAMENTO:mediana_intervalo",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": " dias",
                  "icon": "📊",
                  "color": "#8b5cf6"
                },
                {
                  "title": "DESVIO PADRÃO",
                  "group_by": "id_cilindros_rastreabilidade",
                  "campo_data": "data_inclusao",
                  "value": "METRICA_AGRUPAMENTO:desvio_padrao_intervalo",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": " dias",
                  "icon": "📈",
                  "color": "#f59e0b"
                },
                {
                  "title": "PREVISÃO PRÓXIMA",
                  "group_by": "id_cilindros_rastreabilidade",
                  "campo_data": "data_inclusao",
                  "value": "METRICA_AGRUPAMENTO:previsao_proxima",
                  "format": "data_hora",
                  "icon": "🔮",
                  "color": "#06b6d4"
                }
              ]
            }
          ]
        }
      },
      "bloco3_evolucao_total": {
        "type": "charts_grid_section",
        "title": "EVOLUÇÃO - TOTAL DE MOVIMENTAÇÕES",
        "subtitle": "Todas as movimentações ao longo do tempo",
        "class": "dashboard-section dashboard-section-full-width",
        "icon": "📈",
        "config": {
          "container_id": "evolucao-total-grid",
          "size": "full",
          "charts": [
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-total",
                "data_config": {
                  "campo_data": "data_inclusao",
                  "operation": "COUNT:id_cilindros_rastreabilidade",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "📊 Total de Movimentações",
                  "layout": "vertical",
                  "format": "numero",
                  "decimals": 0,
                  "height": "350px",
                  "color": "#3b82f6"
                }
              }
            }
          ]
        }
      },
      "bloco4_evolucao_ciclo_saida": {
        "type": "charts_grid_section",
        "title": "EVOLUÇÃO - CICLO DE SAÍDA",
        "subtitle": "Enchimento → Carregamento → Retorno",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-3",
        "icon": "🏭",
        "config": {
          "container_id": "evolucao-ciclo-saida-grid",
          "size": "full",
          "charts": [
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-enchimentos",
                "data_config": {
                  "campo_data": "data_inclusao",
                  "operation": "COUNT:id_cilindros_rastreabilidade",
                  "filters": "tabela_origem = cilindros_lote_producao",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "🔵 Enchimentos",
                  "layout": "vertical",
                  "format": "numero",
                  "decimals": 0,
                  "height": "280px",
                  "color": "#22c55e"
                }
              }
            },
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-carregamentos",
                "data_config": {
                  "campo_data": "data_inclusao",
                  "operation": "COUNT:id_cilindros_rastreabilidade",
                  "filters": "tabela_origem = cilindros_romaneios_carregamentos",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "🚛 Carregamentos",
                  "layout": "vertical",
                  "format": "numero",
                  "decimals": 0,
                  "height": "280px",
                  "color": "#f97316"
                }
              }
            },
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-retornos",
                "data_config": {
                  "campo_data": "data_inclusao",
                  "operation": "COUNT:id_cilindros_rastreabilidade",
                  "filters": "tabela_origem = cilindros_romaneios_retornos",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "🔄 Retornos",
                  "layout": "vertical",
                  "format": "numero",
                  "decimals": 0,
                  "height": "280px",
                  "color": "#964B00"
                }
              }
            }
          ]
        }
      },
      "bloco5_evolucao_ciclo_cliente": {
        "type": "charts_grid_section",
        "title": "EVOLUÇÃO - CICLO COM CLIENTE",
        "subtitle": "Entrega ↔ Recolhimento",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-2",
        "icon": "🏪",
        "config": {
          "container_id": "evolucao-ciclo-cliente-grid",
          "size": "full",
          "charts": [
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-entregas",
                "data_config": {
                  "campo_data": "data_inclusao",
                  "operation": "COUNT:id_cilindros_rastreabilidade",
                  "filters": "tabela_origem = cilindros_romaneios_entregas OR tabela_origem = cilindros_romaneios_entregas_envase",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "📦 Entregas",
                  "layout": "vertical",
                  "format": "numero",
                  "decimals": 0,
                  "height": "300px",
                  "color": "#3b82f6"
                }
              }
            },
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-recolhimentos",
                "data_config": {
                  "campo_data": "data_inclusao",
                  "operation": "COUNT:id_cilindros_rastreabilidade",
                  "filters": "tabela_origem = cilindros_romaneios_recolhimentos OR tabela_origem = cilindros_romaneios_recolhimentos_envase",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "📥 Recolhimentos",
                  "layout": "vertical",
                  "format": "numero",
                  "decimals": 0,
                  "height": "300px",
                  "color": "#a855f7"
                }
              }
            }
          ]
        }
      },
      "bloco6_evoluco_alteracoes": {
        "type": "charts_grid_section",
        "title": "EVOLUÇÃO - ALTERAÇÕES E OUTROS",
        "subtitle": "Alterações de situação, localização, validade, titularidade, inventário",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-3",
        "icon": "🔄",
        "config": {
          "container_id": "evolucao-alteracoes-grid",
          "size": "full",
          "charts": [
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-alteracoes-situacao",
                "data_config": {
                  "campo_data": "data_inclusao",
                  "operation": "COUNT:id_cilindros_rastreabilidade",
                  "filters": "tabela_origem = cilindros_alterar_situacao",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "🔄 Alteração Situação",
                  "layout": "vertical",
                  "format": "numero",
                  "decimals": 0,
                  "height": "280px",
                  "color": "#f59e0b"
                }
              }
            },
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-alteracoes-localizacao",
                "data_config": {
                  "campo_data": "data_inclusao",
                  "operation": "COUNT:id_cilindros_rastreabilidade",
                  "filters": "tabela_origem = cilindros_alterar_localizacao",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "📍 Alteração Localização",
                  "layout": "vertical",
                  "format": "numero",
                  "decimals": 0,
                  "height": "280px",
                  "color": "#14b8a6"
                }
              }
            },
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-alteracoes-validade",
                "data_config": {
                  "campo_data": "data_inclusao",
                  "operation": "COUNT:id_cilindros_rastreabilidade",
                  "filters": "tabela_origem = cilindros_alterar_validade",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "📅 Alteração Validade",
                  "layout": "vertical",
                  "format": "numero",
                  "decimals": 0,
                  "height": "280px",
                  "color": "#8b5cf6"
                }
              }
            }
          ]
        }
      }
    }
  },
  "url_documentacao": "/docs/ondevou-db-cilindros_rastreabilidade.html",
  "nome_tabela": "cilindros_rastreabilidade"
}

📝 SQL CREATE TABLE - Estrutura Completa

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

🏗️ Estrutura Completa

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

CREATE TABLE public.cilindros_rastreabilidade (
    id integer NOT NULL DEFAULT nextval('cilindros_rastreabilidade_id_seq'::regclass),
    CONSTRAINT cilindros_rastreabilidade_pkey PRIMARY KEY (id),
    CONSTRAINT 2200_221086_1_not_null CHECK (id IS NOT NULL)
);

-- ============================================================
-- ÍNDICES
-- ============================================================
CREATE UNIQUE INDEX cilindros_rastreabilidade_pk_id ON public.cilindros_rastreabilidade 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_hora_inclusao date - ⚠️ Só no JSON
data_inclusao date - ⚠️ Só no JSON
descricao_romaneio number - ⚠️ Só no JSON
id number integer ✅ OK
id_cilindro number - ⚠️ Só no JSON
id_etiqueta_avulsa number - ⚠️ Só no JSON
id_lote_producao number - ⚠️ Só no JSON
id_origem number - ⚠️ Só no JSON
id_romaneio number - ⚠️ Só no JSON
id_rotina number - ⚠️ Só no JSON
ip text - ⚠️ Só no JSON
latitude number - ⚠️ Só no JSON
longitude number - ⚠️ Só no JSON
nome_localizacao_antes number - ⚠️ Só no JSON
nome_localizacao_cilindro number - ⚠️ Só no JSON
nome_lote_producao number - ⚠️ Só no JSON
nome_membro number - ⚠️ Só no JSON
nome_rotina number - ⚠️ Só no JSON
nome_situacao_antes number - ⚠️ Só no JSON
nome_situacao_cilindro number - ⚠️ Só no JSON
nome_tipo,nome_aplicacao,nome_capacidade,nome_unidade_capacidade text - ⚠️ Só no JSON
razao_social_cliente text - ⚠️ Só no JSON
tabela_origem 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_cilindros_rastreabilidade WHERE participante = ${globais.dados_fixo.participante}`,
    'view': 'view_cilindros_rastreabilidade'
});

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

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