🗄️ Gestão de Devoluções: Controle e Organize Devoluções de Mercadorias Emprestadas

Com o OndeVou Devolução, você pode controlar de maneira eficiente as devoluções de mercadorias emprestadas. A plataforma facilita o processo com rastreamento em tempo real, integração com romaneios e controle de prazos de devolução.

📋 25 colunas 🔗 10 relacionamentos 🎮 10 controles 👁️ view_devolucoes 📱 QR Code 🔑 PRIMARY KEY 🎮 1 ações externas

📋 Estrutura da Tabela

A tabela devolucoes possui 25 colunas.

🔑 Id PRIMARY KEY
🔑 PRIMARY KEY🔒 Somente leitura💾 Grava
Campo Tabela id
Campo VIEW / Exibido id
Tipo number (readonly - PRIMARY KEY)
Data Table devolucoes
Descrição

Campo id

🔑 PRIMARY KEY

Campo na tabela: id

Readonly: ✅ Gerado automaticamente pelo sistema

Launch: ✅ Abre documento relacionado

Formsearch: ✅ Permite busca avançada

Coleta QR Code: ✅ Permite leitura via QR Code

📱 qrcode: Gerar QR Code Documento
📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou id
  • Tabela OndeVou devolucoes
🚀 Launch
  • {
      "type": "qrcode",
      "menu": {
        "data-id": "202"
      },
      "formsearch": {
        "id": "id"
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
🎮 Controls Acao
  • {
      "qrcode": {
        "acao": "getQRcode",
        "messagem": "Gerar QR Code"
      }
    }
  • Tabelas: devolucoes ✅
  • Launch: ✓
  • ControlsAcao: ✓
  • FormSearch: ✓
  • 🔑 PRIMARY KEY
  • 🚀 Launch
  • 📋 FormSearch
  • 📱 Coleta QR Code
📋 qrcode
🔒 Somente leitura📋 Somente view📱 QRCode: rvdev
Campo Tabela qrcode
Campo VIEW / Exibido qrcode ⚠️ (somente view)
Tipo canvas (QR Code: rvdev)
Data Table qrcode
Descrição

Campo qrcode

📱 QR Code

Tipo: rvdev (rvdev)

Texto: Campos

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

Campo data hora inclusão

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

Campo finalidade

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_rotina
  • Tabela OndeVou view_devolucoes
  • Tabelas: view_devolucoes (só view)
📋 Id romaneio
🔒 Somente leitura📋 Somente view
Campo Tabela id_romaneio
Campo VIEW / Exibido id_romaneio ⚠️ (somente view)
Tipo number
Data Table view_devolucoes
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_devolucoes
🚀 Launch
  • {
      "menu": {
        "data-id": "171"
      },
      "formsearch": {
        "id": "id_romaneio"
      }
    }
  • Tabelas: view_devolucoes (só view)
  • Launch: ✓
📋 Romaneio
✅ Obrigatório🔒 Somente leitura💾 Grava🔗 getdata
Campo Tabela id_romaneio
Campo VIEW / Exibido descricao_romaneio (ID: id_romaneio)
Tipo number (getdata)
Data Table devolucoes
Descrição

Campo romaneio

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou descricao_romaneio
  • ID OndeVou id_romaneio
  • Tabela OndeVou devolucoes
🔗 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: devolucoes ✅
  • FormSearch: ✓
📋 Cilindros
🔒 Somente leitura📋 Somente view
Campo Tabela cilindros
Campo VIEW / Exibido cilindros ⚠️ (somente view)
Tipo number
Data Table view_devolucoes
Descrição

Campo cilindros

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

Campo produtos

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou produtos
  • Tabela OndeVou view_devolucoes
🚀 Launch
  • {
      "menu": {
        "data-id": "284"
      },
      "formsearch": {
        "descricao_romaneio": "id_romaneio",
        "not_where_limit": "S"
      }
    }
  • Tabelas: view_devolucoes (só view)
  • Launch: ✓
📋 Id Participante
✅ Obrigatório🔒 Somente leitura📋 Somente view
Campo Tabela id_participante_cliente
Campo VIEW / Exibido id_participante_cliente ⚠️ (somente view)
Tipo number
Data Table view_devolucoes
Descrição

Campo id participante

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou id_participante_cliente
  • Tabela OndeVou view_devolucoes
  • Tabelas: view_devolucoes (só view)
📋 Nome/Razão Social
✅ Obrigatório🔒 Somente leitura💾 Grava🔗 getdata
Campo Tabela id_participante
Campo VIEW / Exibido razao_social_cliente (ID: id_participante_cliente)
Tipo number (getdata)
Data Table devolucoes
Descrição

Campo nome/razão social

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou razao_social_cliente
  • ID OndeVou id_participante
  • ID Alias OndeVou id_participante_cliente
  • Tabela OndeVou devolucoes
🔗 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`)"
            }
          }
        }
      }
    }
🚀 Launch
  • {
      "menu": {
        "data-id": "151"
      },
      "formsearch": {
        "participante-id": "id_participante"
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_participante
  • ID VIEW: id_participante_cliente
  • Tabelas: devolucoes ✅
  • Launch: ✓
  • FormSearch: ✓
📋 Cidade
✅ Obrigatório📋 Somente view🔗 getdata
Campo Tabela id_cidade_cliente
Campo VIEW / Exibido nome_cidade_cliente ⚠️ (somente view)
Tipo number (getdata)
Data Table view_devolucoes
Descrição

Campo cidade

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou nome_cidade_cliente
  • ID OndeVou id_cidade_cliente
  • Tabela OndeVou view_devolucoes
🔗 Getdata
  • {
      "view": "view_cidades",
      "data": "view_cidades",
      "campo-data-id": "id_cidade",
      "campo-data-value-input": "nome_cidade",
      "campo-data-input-select-view": "nome_cidade,sigla_uf",
      "query": {
        "select": "* from view_cidades",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(nome_cidade,` `,sigla_uf))) ilike `%",
              "right": "%`)"
            }
          }
        }
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_cidade_cliente
  • Tabelas: view_devolucoes (só view)
  • FormSearch: ✓
📋 UF
✅ Obrigatório📋 Somente view🔗 getdata
Campo Tabela id_uf_cliente
Campo VIEW / Exibido sigla_uf_cliente ⚠️ (somente view)
Tipo number (getdata)
Data Table view_devolucoes
Descrição

Campo uf

Getdata🔗 uf
📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou sigla_uf_cliente
  • ID OndeVou id_uf_cliente
  • Tabela OndeVou view_devolucoes
🔗 Getdata
  • {
      "view": "view_uf",
      "data": "view_uf",
      "text-empty-search": "sim",
      "campo-data-id": "id_uf",
      "campo-data-value-input": "sigla_uf",
      "campo-data-input-select-view": "nome_uf,sigla_uf",
      "query": {
        "select": "* from view_uf",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(nome_uf,` `,sigla_uf))) ilike `%",
              "right": "%`)"
            }
          }
        }
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_uf_cliente
  • Tabelas: view_devolucoes (só view)
  • FormSearch: ✓
📋 Motorista
✅ Obrigatório🔒 Somente leitura📋 Somente view🔗 getdata
Campo Tabela id_motorista
Campo VIEW / Exibido nome_motorista ⚠️ (somente view)
Tipo number (getdata)
Data Table view_devolucoes
Descrição

Campo motorista

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_motorista
  • ID OndeVou id_motorista
  • Tabela OndeVou view_devolucoes
🔗 Getdata
  • {
      "view": "view_motoristas",
      "data": "view_motoristas",
      "text-empty-search": "sim",
      "campo-data-id": "id_motorista",
      "campo-data-value-input": "nome_motorista,cpf_motorista",
      "campo-data-input-select-view": "nome_motorista,cpf_motorista",
      "query": {
        "select": "* from view_motoristas",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_motorista,` `,nome_motorista,` `,cpf_motorista))) ilike `%",
              "right": "%`) and (participante=`1`)"
            }
          }
        }
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_motorista
  • Tabelas: view_devolucoes (só view)
  • FormSearch: ✓
📋 Placa
🔒 Somente leitura👁️ Oculto📋 Somente view
Campo Tabela placa_veiculo
Campo VIEW / Exibido placa_veiculo ⚠️ (somente view)
Tipo text
Data Table view_devolucoes
Descrição

Campo placa

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou placa_veiculo
  • Tabela OndeVou view_devolucoes
  • Tabelas: view_devolucoes (só view)
  • Hidden: ✓ (dados ocultos)
📋 Veículo
✅ Obrigatório🔒 Somente leitura📋 Somente view🔗 getdata
Campo Tabela id_veiculo
Campo VIEW / Exibido descricao_veiculo ⚠️ (somente view)
Tipo number (getdata)
Data Table view_devolucoes
Descrição

Campo veículo

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou descricao_veiculo
  • ID OndeVou id_veiculo
  • Tabela OndeVou view_devolucoes
🔗 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: view_devolucoes (só view)
  • FormSearch: ✓
📋 Rota
✅ Obrigatório🔒 Somente leitura📋 Somente view🔗 getdata
Campo Tabela id_rota
Campo VIEW / Exibido nome_rota ⚠️ (somente view)
Tipo number (getdata)
Data Table view_devolucoes
Descrição

Campo rota

Getdata🔗 rotas
📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_rota
  • ID OndeVou id_rota
  • Tabela OndeVou view_devolucoes
🔗 Getdata
  • {
      "view": "view_rotas",
      "data": "view_rotas",
      "text-empty-search": "sim",
      "campo-data-id": "id_rota",
      "campo-data-value-input": "nome_rota",
      "campo-data-input-select-view": "codigo_erplinux_rota,nome_rota",
      "query": {
        "select": "* from view_rotas",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_rota,` `,codigo_erplinux_rota,` `,nome_rota))) ilike `%",
              "right": "%`) and (participante=`1`)"
            }
          }
        }
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_rota
  • Tabelas: view_devolucoes (só view)
  • FormSearch: ✓
📋 Situação
✅ Obrigatório🔒 Somente leitura📋 Somente view🔗 getdata
Campo Tabela id_situacao
Campo VIEW / Exibido nome_situacao ⚠️ (somente view)
Tipo number (getdata)
Data Table view_devolucoes
Descrição

Campo situação

Getdata🔗 romaneios_situacao
📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_situacao
  • ID OndeVou id_situacao
  • Tabela OndeVou view_devolucoes
🔗 Getdata
  • {
      "view": "view_romaneios_situacao",
      "data": "view_romaneios_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_romaneios_situacao",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_situacao,` `,nome_situacao))) ilike `%",
              "right": "%`)"
            }
          }
        }
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_situacao
  • Tabelas: view_devolucoes (só view)
  • FormSearch: ✓
📋 Produto da unidade de contrato
🔒 Somente leitura📋 Somente view🔗 getdata
Campo Tabela
Campo VIEW / Exibido descricao_produto_contrato + nome_unidade + descricao_contrato
Tipo text (concatenação)
Data Table view_devolucoes
Descrição

Campo produto da unidade de contrato

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou descricao_produto_contrato,nome_unidade,descric...
  • ID OndeVou id_contrato_produto
  • Tabela OndeVou view_devolucoes
🔗 Getdata
  • {
      "view": "view_contratos_produtos",
      "data": "view_contratos_produtos",
      "text-empty-search": "sim",
      "data-update-full-fields": "sim",
      "campo-data-id": "id_contrato_produto",
      "campo-data-value-input": "descricao_produto,nome_unidade,descricao_contrato",
      "campo-data-input-select-view": "id_contrato_produto,descricao_produto,nome_unidade,descricao_contrato",
      "query": {
        "select": "* from view_contratos_produtos",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_contrato_produto,` `,descricao_produto, ` `, nome_unidade, ` `, descricao_contrato))) ilike `%",
              "right": "%`) and (participante=`1`)"
            }
          }
        },
        "order": "id_contrato,id_unidade,numero_item desc"
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_contrato_produto
  • Tabelas: view_devolucoes (só view)
  • FormSearch: ✓
📋 Membro
🔒 Somente leitura💾 Grava🔗 getdata
Campo Tabela id_membro
Campo VIEW / Exibido nome_membro (ID: id_membro)
Tipo number (getdata)
Data Table devolucoes
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 devolucoes
🔗 Getdata
  • {
      "view": "view_membros",
      "data": "view_membros",
      "campo-data-id": "id_membro",
      "campo-data-value-input": "nome_membro",
      "campo-data-input-select-view": "nome_membro,email_membro",
      "query": {
        "select": "* from view_membros",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_membro,` `,nome_membro,` `,email_membro))) ilike `%",
              "right": "%`)"
            }
          }
        }
      }
    }
🔍 Formsearch
  • {
      "required": ""
    }
  • ID: id_membro
  • Tabelas: devolucoes ✅
  • FormSearch: ✓
📋 Latitude
🔒 Somente leitura👁️ Oculto💾 Grava
Campo Tabela latitude
Campo VIEW / Exibido latitude
Tipo number
Data Table devolucoes
Descrição

Campo latitude

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

Campo longitude

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

Campo ip

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

Campo data

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados date
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou data_inclusao_devolucao
  • Tabela OndeVou view_devolucoes
  • Tabelas: view_devolucoes (só view)
  • Hidden: ✓ (dados ocultos)
📋 Cidade/UF
✅ Obrigatório👁️ Oculto📋 Somente view
Campo Tabela
Campo VIEW / Exibido nome_cidade_cliente + sigla_uf_cliente
Tipo text (concatenação)
Data Table view_devolucoes
Descrição

Campo cidade/uf

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou nome_cidade_cliente,sigla_uf_cliente
  • Tabela OndeVou view_devolucoes
  • Tabelas: view_devolucoes (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.

romaneios · Principal: Romaneio 📄
participantes_privado · Auxiliar: Nome/Razão Social 📄
cidades · Principal: Cidade 📄
uf · Principal: UF 📄
motoristas · Principal: Motorista 📄
veiculos · Principal: Veículo 📄
rotas · Principal: Rota 📄
romaneios_situacao · Auxiliar: Situação 📚
contratos_produtos · Auxiliar: Produto da unidade de contrato 📄
membros · Principal: Membro 📄

🔍 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
🔘 Add add 🔘 Copy copy 🔘 Edit edit 💾 Salvar save 🔘 Delete delete 🔘 Remove remove 🔘 Person_Remove person_remove 🔘 Marker marker
📂 Documento
📱 Gerar QR Code qrcode Linha do tempo timeline

👁️ View Associada

Nome: view_devolucoes

📱 QR Code

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

Configuração

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

🔑 PRIMARY KEY - Campo Id

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

Configuração

'Id': {
    'input': {
        'readonly': 'readonly',
        'data-type-ondevou': 'number',
        'data-field-ondevou': 'id',
        
        'data-table-ondevou': 'devolucoes'
    }
}

Comportamento

  • 🔒 Readonly: Campo não editável
  • 📊 Tipo: number
  • 🚀 Launch: Abre documento relacionado

🎮 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 48 KB
{
  "table-id": "devolucoes",
  "data-table-ondevou": "devolucoes",
  "table-class": "highlight",
  "readonly": "sim",
  "controls": [
    "add",
    "copy",
    "edit",
    "save",
    "delete",
    "remove",
    "person_remove",
    "qrcode",
    "marker",
    "timeline"
  ],
  "html": {
    "div": {
      "before": "",
      "after": ""
    }
  },
  "entidade": {
    "page": "devolucao",
    "title": "Devolução",
    "table": "devolucoes",
    "campo_id": "id_devolucao",
    "view": "view_devolucoes",
    "where_post": "",
    "function": "getDevolucaoQrCode",
    "ogTitle": "Gestão de Devoluções: Controle e Organize Devoluções de Mercadorias Emprestadas",
    "ogDescription": "Com o OndeVou Devolução, você pode controlar de maneira eficiente as devoluções de mercadorias emprestadas. A plataforma facilita o processo com rastreamento em tempo real, integração com romaneios e controle de prazos de devolução.",
    "ogImage": "https://ondevou.com/img/ondevou_devolucao.png",
    "ogUrl": "https://ondevou.com/devolucao",
    "ogKeywords": "devolução, devolução de mercadorias, gestão de devoluções, controle de devoluções, rastreamento de devoluções, romaneio de viagem, logística reversa, controle de prazos, ondevou, onde, onde ir, software",
    "sobre": {
      "produto": "OndeVou Devolução",
      "descricao": "<span class=`destaque`>OndeVou Devolução</span> oferece uma plataforma eficiente para gerenciar a devolução de mercadorias emprestadas, com rastreamento em tempo real, controle de prazos e integração com romaneios, garantindo que o processo de devolução seja realizado de forma segura e eficiente.",
      "treinamento": "ondevou-devolucao",
      "menu": "515",
      "app": "0063",
      "destaques": [
        "<span class=`destaque`>Controle de Devoluções</span><br>Gerencie as devoluções de mercadorias emprestadas com facilidade e eficiência.",
        "<span class=`destaque`>Monitoramento de Status</span><br>Acompanhe em tempo real as devoluções e garanta o cumprimento dos prazos.",
        "<span class=`destaque`>Integração com Romaneios</span><br>Conecte as devoluções aos romaneios de viagem, otimizando o processo logístico.",
        "<span class=`destaque`>Controle de Prazos</span><br>Assegure-se de que as mercadorias sejam devolvidas dentro dos prazos estabelecidos, evitando custos adicionais."
      ],
      "motivos": {
        "Controle de Devoluções": "Gerencie as devoluções de mercadorias emprestadas, garantindo que o processo seja realizado de forma eficiente.",
        "Monitoramento de Status": "Acompanhe as devoluções em tempo real para garantir que sejam feitas de forma precisa e segura.",
        "Integração com Romaneios": "Conecte as devoluções aos romaneios de viagem, garantindo que a logística seja otimizada.",
        "Controle de Prazos": "Gerencie os prazos de devolução para evitar atrasos e custos adicionais no processo."
      },
      "operacoes": {
        "Controle de Devoluções": "Gerencie a devolução das mercadorias emprestadas e garanta que elas sejam entregues dentro do prazo.",
        "Monitoramento de Status": "Acompanhe o progresso das devoluções em tempo real e faça ajustes conforme necessário.",
        "Gestão de Documentos": "Centralize a gestão de documentos relacionados às devoluções, como comprovantes de entrega e registros de mercadorias."
      },
      "menus": {
        "segmentos": [],
        "produtos": [],
        "apps": [
          "5",
          "6",
          "17",
          "22"
        ],
        "rotinas": [
          "198",
          "106",
          "110",
          "108",
          "342",
          "343",
          "344",
          "345",
          "346",
          "204",
          "265"
        ]
      }
    },
    "posts": {
      "1": {
        "id_post": "1",
        "nome_rotina": "Sobre OndeVou Devolução",
        "descricao": "OndeVou Devolução oferece uma plataforma eficiente para gerenciar a devolução de mercadorias emprestadas, com rastreamento em tempo real, controle de prazos e integração com romaneios, garantindo que o processo de devolução seja realizado de forma segura e eficiente.",
        "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": 1786541059430,
        "link_post": {
          "title": "Saiba mais sobre o OndeVou Devolução",
          "url": "plataforma/produto/devolucao",
          "onclick": "navClose();startMenu(this);return false;",
          "menu": "515"
        }
      }
    }
  },
  "pdf": {
    "format": "a3",
    "orientation": "landscape",
    "columns-remove": [
      "qrcode",
      "Participante"
    ]
  },
  "headers": {
    "Id": {
      "width": "70px"
    },
    "qrcode": {
      "width": "100px",
      "align": "left",
      "class": "qrcode"
    },
    "Participante": {
      "type": "hidden"
    },
    "Data hora inclusão": {
      "width": "100px"
    },
    "Finalidade": {
      "width": "200px"
    },
    "Id romaneio": {
      "width": "100px"
    },
    "Romaneio": {
      "width": "250px"
    },
    "Cilindros": {
      "width": "100px"
    },
    "Produtos": {
      "width": "100px"
    },
    "Id Participante": {
      "width": "100px"
    },
    "Nome/Razão Social": {
      "width": "250px"
    },
    "Cidade": {
      "width": "150px"
    },
    "UF": {
      "width": "70px"
    },
    "Motorista": {
      "width": "150x"
    },
    "Placa": {
      "type": "hidden"
    },
    "Veículo": {
      "width": "150px"
    },
    "Rota": {
      "width": "150px"
    },
    "Situação": {
      "width": "110px"
    },
    "Produto da unidade de contrato": {
      "width": "250px"
    },
    "Membro": {
      "width": "150px"
    },
    "Latitude": {
      "type": "hidden"
    },
    "Longitude": {
      "type": "hidden"
    },
    "Ip": {
      "type": "hidden"
    },
    "Data": {
      "type": "hidden"
    },
    "Cidade/UF": {
      "type": "hidden"
    }
  },
  "columns": {
    "Id": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "id",
        "data-table-ondevou": "devolucoes",
        "controls-acao": {
          "qrcode": {
            "acao": "getQRcode",
            "messagem": "Gerar QR Code"
          }
        },
        "formsearch": {
          "required": "",
          "getcollector": "{\"qrcode\":\"{\\\"qrcode-type\\\":[\\\"rvdev\\\"]}\",\"table-setups\":\"{\\\"search\\\":\\\"nao\\\",\\\"html\\\":\\\"nao\\\",\\\"controls\\\":[\\\"info\\\",\\\"remove\\\"]}\"}"
        },
        "launch": {
          "type": "qrcode",
          "menu": {
            "data-id": "202"
          },
          "formsearch": {
            "id": "id"
          }
        }
      }
    },
    "qrcode": {
      "input": {
        "readonly": "readonly",
        "type": "canvas",
        "qrcode-type": "rvdev",
        "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": "devolucoes"
      }
    },
    "Data hora inclusão": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "date",
        "data-field-ondevou": "data_hora_inclusao_devolucao",
        "data-table-ondevou": "view_devolucoes"
      }
    },
    "Finalidade": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "text",
        "data-field-ondevou": "nome_rotina",
        "data-table-ondevou": "view_devolucoes"
      }
    },
    "Id romaneio": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "id_romaneio",
        "data-table-ondevou": "view_devolucoes",
        "launch": {
          "menu": {
            "data-id": "171"
          },
          "formsearch": {
            "id": "id_romaneio"
          }
        }
      }
    },
    "Romaneio": {
      "input": {
        "required": "required",
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_romaneio",
        "data-field-ondevou": "descricao_romaneio",
        "data-table-ondevou": "devolucoes",
        "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": ""
        }
      }
    },
    "Cilindros": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "cilindros",
        "data-table-ondevou": "view_devolucoes",
        "launch": {
          "menu": {
            "data-id": "78"
          },
          "formsearch": {
            "id_devolucao": "id",
            "descricao_romaneio": "id_romaneio",
            "not_where_limit": "S"
          }
        }
      }
    },
    "Produtos": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "produtos",
        "data-table-ondevou": "view_devolucoes",
        "launch": {
          "menu": {
            "data-id": "284"
          },
          "formsearch": {
            "descricao_romaneio": "id_romaneio",
            "not_where_limit": "S"
          }
        }
      }
    },
    "Id Participante": {
      "input": {
        "readonly": "readonly",
        "required": "required",
        "data-type-ondevou": "number",
        "data-field-ondevou": "id_participante_cliente",
        "data-table-ondevou": "view_devolucoes"
      }
    },
    "Nome/Razão Social": {
      "input": {
        "readonly": "readonly",
        "required": "required",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_participante",
        "data-id-field-alias-ondevou": "id_participante_cliente",
        "data-field-ondevou": "razao_social_cliente",
        "data-table-ondevou": "devolucoes",
        "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": ""
        },
        "launch": {
          "menu": {
            "data-id": "151"
          },
          "formsearch": {
            "participante-id": "id_participante"
          }
        }
      }
    },
    "Cidade": {
      "input": {
        "required": "required",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_cidade_cliente",
        "data-field-ondevou": "nome_cidade_cliente",
        "data-table-ondevou": "view_devolucoes",
        "getdata": "{\"view\":\"view_cidades\",\"data\":\"view_cidades\",\"campo-data-id\":\"id_cidade\",\"campo-data-value-input\":\"nome_cidade\",\"campo-data-input-select-view\":\"nome_cidade,sigla_uf\",\"query\":{\"select\":\"* from view_cidades\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(nome_cidade,` `,sigla_uf))) ilike `%\",\"right\":\"%`)\"}}}}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "UF": {
      "input": {
        "required": "required",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_uf_cliente",
        "data-field-ondevou": "sigla_uf_cliente",
        "data-table-ondevou": "view_devolucoes",
        "getdata": "{\"view\":\"view_uf\",\"data\":\"view_uf\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_uf\",\"campo-data-value-input\":\"sigla_uf\",\"campo-data-input-select-view\":\"nome_uf,sigla_uf\",\"query\":{\"select\":\"* from view_uf\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(nome_uf,` `,sigla_uf))) ilike `%\",\"right\":\"%`)\"}}}}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Motorista": {
      "input": {
        "readonly": "readonly",
        "required": "required",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_motorista",
        "data-field-ondevou": "nome_motorista",
        "data-table-ondevou": "view_devolucoes",
        "getdata": "{\"view\":\"view_motoristas\",\"data\":\"view_motoristas\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_motorista\",\"campo-data-value-input\":\"nome_motorista,cpf_motorista\",\"campo-data-input-select-view\":\"nome_motorista,cpf_motorista\",\"query\":{\"select\":\"* from view_motoristas\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_motorista,` `,nome_motorista,` `,cpf_motorista))) ilike `%\",\"right\":\"%`) and (participante=`1`)\"}}}}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Placa": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "text",
        "data-field-ondevou": "placa_veiculo",
        "data-table-ondevou": "view_devolucoes"
      }
    },
    "Veículo": {
      "input": {
        "readonly": "readonly",
        "required": "required",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_veiculo",
        "data-field-ondevou": "descricao_veiculo",
        "data-table-ondevou": "view_devolucoes",
        "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": ""
        }
      }
    },
    "Rota": {
      "input": {
        "readonly": "readonly",
        "required": "required",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_rota",
        "data-field-ondevou": "nome_rota",
        "data-table-ondevou": "view_devolucoes",
        "getdata": "{\"view\":\"view_rotas\",\"data\":\"view_rotas\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_rota\",\"campo-data-value-input\":\"nome_rota\",\"campo-data-input-select-view\":\"codigo_erplinux_rota,nome_rota\",\"query\":{\"select\":\"* from view_rotas\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_rota,` `,codigo_erplinux_rota,` `,nome_rota))) ilike `%\",\"right\":\"%`) and (participante=`1`)\"}}}}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Situação": {
      "input": {
        "readonly": "readonly",
        "required": "required",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_situacao",
        "data-field-ondevou": "nome_situacao",
        "data-table-ondevou": "view_devolucoes",
        "getdata": "{\"view\":\"view_romaneios_situacao\",\"data\":\"view_romaneios_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_romaneios_situacao\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_situacao,` `,nome_situacao))) ilike `%\",\"right\":\"%`)\"}}}}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Produto da unidade de contrato": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_contrato_produto",
        "data-field-ondevou": "descricao_produto_contrato,nome_unidade,descricao_contrato",
        "data-table-ondevou": "view_devolucoes",
        "getdata": "{\"view\":\"view_contratos_produtos\",\"data\":\"view_contratos_produtos\",\"text-empty-search\":\"sim\",\"data-update-full-fields\":\"sim\",\"campo-data-id\":\"id_contrato_produto\",\"campo-data-value-input\":\"descricao_produto,nome_unidade,descricao_contrato\",\"campo-data-input-select-view\":\"id_contrato_produto,descricao_produto,nome_unidade,descricao_contrato\",\"query\":{\"select\":\"* from view_contratos_produtos\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_contrato_produto,` `,descricao_produto, ` `, nome_unidade, ` `, descricao_contrato))) ilike `%\",\"right\":\"%`) and (participante=`1`)\"}}},\"order\":\"id_contrato,id_unidade,numero_item desc\"}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Membro": {
      "input": {
        "data-type-ondevou": "number",
        "readonly": "readonly",
        "data-id-field-ondevou": "id_membro",
        "data-field-ondevou": "nome_membro",
        "data-table-ondevou": "devolucoes",
        "getdata": "{\"view\":\"view_membros\",\"data\":\"view_membros\",\"campo-data-id\":\"id_membro\",\"campo-data-value-input\":\"nome_membro\",\"campo-data-input-select-view\":\"nome_membro,email_membro\",\"query\":{\"select\":\"* from view_membros\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_membro,` `,nome_membro,` `,email_membro))) ilike `%\",\"right\":\"%`)\"}}}}}",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Latitude": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "latitude",
        "data-table-ondevou": "devolucoes"
      }
    },
    "Longitude": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "longitude",
        "data-table-ondevou": "devolucoes"
      }
    },
    "Ip": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "text",
        "data-field-ondevou": "ip",
        "data-table-ondevou": "devolucoes"
      }
    },
    "Data": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "date",
        "data-field-ondevou": "data_inclusao_devolucao",
        "data-table-ondevou": "view_devolucoes"
      }
    },
    "Cidade/UF": {
      "input": {
        "required": "required",
        "data-type-ondevou": "text",
        "data-field-ondevou": "nome_cidade_cliente,sigla_uf_cliente",
        "data-table-ondevou": "view_devolucoes"
      }
    }
  },
  "formsearch": {
    "data-table-ondevou": "view_devolucoes",
    "data-view-ondevou": "view_devolucoes",
    "data-where-fixed": "participante=`1`",
    "data-where-order": "order by id 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_devolucao",
          "y": "count",
          "texttemplate": "%{y}"
        },
        "Cilindros": {
          "type": "bar",
          "name": "Cilindros",
          "x": "data_inclusao_devolucao",
          "y": "cilindros",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "devolucoes por data"
        }
      }
    },
    "2": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "data_inclusao_devolucao",
          "y": "count",
          "texttemplate": "%{y}"
        },
        "Cilindros": {
          "type": "bar",
          "name": "Cilindros",
          "x": "data_inclusao_devolucao",
          "y": "cilindros",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "devolucoes por data"
        }
      }
    },
    "3": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "data_inclusao_devolucao",
          "y": "count",
          "texttemplate": "%{y}"
        },
        "Cilindros": {
          "type": "bar",
          "name": "Cilindros",
          "x": "data_inclusao_devolucao",
          "y": "cilindros",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "devolucoes por data"
        }
      }
    },
    "4": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "data_inclusao_devolucao",
          "y": "count",
          "texttemplate": "%{y}"
        },
        "Cilindros": {
          "type": "bar",
          "name": "Cilindros",
          "x": "data_inclusao_devolucao",
          "y": "cilindros",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "devolucoes por data"
        }
      }
    },
    "5": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "data_inclusao_devolucao",
          "y": "count",
          "texttemplate": "%{y}"
        },
        "Cilindros": {
          "type": "bar",
          "name": "Cilindros",
          "x": "data_inclusao_devolucao",
          "y": "cilindros",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "devolucoes por data"
        }
      }
    },
    "6": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "data_inclusao_devolucao",
          "y": "count",
          "texttemplate": "%{y}"
        },
        "Cilindros": {
          "type": "bar",
          "name": "Cilindros",
          "x": "data_inclusao_devolucao",
          "y": "cilindros",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "devolucoes por data"
        }
      }
    },
    "7": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "data_inclusao_devolucao",
          "y": "count",
          "texttemplate": "%{y}"
        },
        "Cilindros": {
          "type": "bar",
          "name": "Cilindros",
          "x": "data_inclusao_devolucao",
          "y": "cilindros",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "devolucoes por data"
        }
      }
    },
    "8": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "data_inclusao_devolucao",
          "y": "count",
          "texttemplate": "%{y}"
        },
        "Cilindros": {
          "type": "bar",
          "name": "Cilindros",
          "x": "data_inclusao_devolucao",
          "y": "cilindros",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "devolucoes por data"
        }
      }
    },
    "9": {
      "data": {
        "Ocorrência": {
          "type": "bar",
          "name": "Ocorrência",
          "x": "data_inclusao_devolucao",
          "y": "count",
          "texttemplate": "%{y}"
        },
        "Cilindros": {
          "type": "bar",
          "name": "Cilindros",
          "x": "data_inclusao_devolucao",
          "y": "cilindros",
          "texttemplate": "%{y}"
        }
      },
      "layout": {
        "title": {
          "text": "devolucoes por data"
        }
      }
    }
  },
  "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": "⬅️ OPERAÇÃO DE DEVOLUÇÕES",
      "subtitle": "Acompanhamento das devoluções de cilindros por clientes",
      "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",
        "class": "dashboard-section dashboard-section-full-width",
        "icon": "⬅️",
        "config": {
          "container_id": "cards-resumo-devolucoes",
          "size": "full",
          "cards": [
            {
              "title": "TOTAL DEVOLUÇÕES",
              "value": "COUNT:id",
              "format": "numero",
              "decimals": 0,
              "suffix": " atos",
              "icon": "⬅️",
              "color": "#3b82f6"
            },
            {
              "title": "TOTAL CILINDROS",
              "value": "SUM:cilindros",
              "format": "numero",
              "decimals": 0,
              "suffix": " cil",
              "icon": "🏭",
              "color": "#22c55e"
            },
            {
              "title": "MÉDIA CIL/DEVOLUÇÃO",
              "value": "CALC:sum(cilindros)/count(id)",
              "format": "numero",
              "decimals": 1,
              "suffix": " cil/ato",
              "icon": "📊",
              "color": "#f97316"
            },
            {
              "title": "TOTAL PRODUTOS",
              "value": "SUM:produtos",
              "format": "numero",
              "decimals": 0,
              "suffix": " prod",
              "icon": "🧪",
              "color": "#a855f7"
            },
            {
              "title": "MÉDIA PROD/DEVOLUÇÃO",
              "value": "CALC:sum(produtos)/count(id)",
              "format": "numero",
              "decimals": 1,
              "suffix": " prod/ato",
              "icon": "📊",
              "color": "#ec4899"
            },
            {
              "title": "ROMANEIOS ATENDIDOS",
              "value": "COUNT_DISTINCT:id_romaneio",
              "format": "numero",
              "decimals": 0,
              "suffix": " romaneios",
              "icon": "📋",
              "color": "#14b8a6"
            },
            {
              "title": "CLIENTES ATENDIDOS",
              "value": "COUNT_DISTINCT:id_participante_cliente",
              "format": "numero",
              "decimals": 0,
              "icon": "👥",
              "color": "#8b5cf6"
            },
            {
              "title": "CIDADES ATENDIDAS",
              "value": "COUNT_DISTINCT:id_cidade_cliente",
              "format": "numero",
              "decimals": 0,
              "icon": "🏙️",
              "color": "#06b6d4"
            },
            {
              "title": "UFS ATENDIDAS",
              "value": "COUNT_DISTINCT:id_uf_cliente",
              "format": "numero",
              "decimals": 0,
              "icon": "🗺️",
              "color": "#ec4899"
            }
          ]
        }
      },
      "bloco2_eficiencia_operacional": {
        "type": "summary_cards_grid",
        "title": "EFICIÊNCIA OPERACIONAL",
        "class": "dashboard-section dashboard-section-full-width",
        "icon": "⚡",
        "config": {
          "container_id": "cards-eficiencia-devolucoes",
          "size": "full",
          "sections": [
            {
              "title": "DESEMPENHO",
              "cards": [
                {
                  "title": "ATOS/ROMANEIO",
                  "value": "CALC:count(id)/count_distinct(id_romaneio)",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": " atos/romaneio",
                  "icon": "🔄",
                  "color": "#3b82f6"
                },
                {
                  "title": "MAIOR Nº ATOS",
                  "group_by": "id_romaneio",
                  "value": "METRICA_AGRUPAMENTO:maior",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " atos",
                  "icon": "📈",
                  "color": "#22c55e"
                },
                {
                  "title": "MÉDIA CIL/ATO",
                  "value": "CALC:sum(cilindros)/count(id)",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": " cil/ato",
                  "icon": "📊",
                  "color": "#f97316"
                }
              ]
            },
            {
              "title": "PRODUTIVIDADE",
              "cards": [
                {
                  "title": "MÉDIA PROD/ATO",
                  "value": "CALC:sum(produtos)/count(id)",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": " prod/ato",
                  "icon": "📊",
                  "color": "#a855f7"
                },
                {
                  "title": "MAIOR ATO",
                  "group_by": "id_devolucao",
                  "value": "METRICA_AGRUPAMENTO:maior",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " cil",
                  "icon": "📈",
                  "color": "#22c55e"
                }
              ]
            }
          ]
        }
      },
      "bloco3_analise_romaneios": {
        "type": "summary_cards_grid",
        "title": "ANÁLISE POR ROMANEIO",
        "class": "dashboard-section dashboard-section-full-width",
        "icon": "📋",
        "config": {
          "container_id": "cards-analise-romaneios-devolucoes",
          "size": "full",
          "sections": [
            {
              "title": "ESTATÍSTICAS",
              "cards": [
                {
                  "title": "TOTAL ROMANEIOS",
                  "group_by": "id_romaneio",
                  "value": "METRICA_AGRUPAMENTO:total_grupos",
                  "format": "numero",
                  "icon": "🔢",
                  "color": "#3b82f6"
                },
                {
                  "title": "TOTAL ATOS",
                  "group_by": "id_romaneio",
                  "value": "METRICA_AGRUPAMENTO:soma",
                  "format": "numero",
                  "decimals": 0,
                  "icon": "⬅️",
                  "color": "#22c55e"
                },
                {
                  "title": "MÉDIA ATOS/ROMANEIO",
                  "group_by": "id_romaneio",
                  "value": "METRICA_AGRUPAMENTO:media",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": " atos",
                  "icon": "📊",
                  "color": "#f97316"
                },
                {
                  "title": "MAIOR Nº ATOS",
                  "group_by": "id_romaneio",
                  "value": "METRICA_AGRUPAMENTO:maior",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " atos",
                  "icon": "📈",
                  "color": "#22c55e"
                }
              ]
            },
            {
              "title": "CILINDROS",
              "cards": [
                {
                  "title": "TOTAL CILINDROS",
                  "group_by": "id_romaneio",
                  "value": "METRICA_AGRUPAMENTO:soma",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " cil",
                  "icon": "🏭",
                  "color": "#3b82f6"
                },
                {
                  "title": "MÉDIA CIL/ROMANEIO",
                  "group_by": "id_romaneio",
                  "value": "METRICA_AGRUPAMENTO:media",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": " cil",
                  "icon": "📊",
                  "color": "#10b981"
                },
                {
                  "title": "MAIOR ROMANEIO",
                  "group_by": "id_romaneio",
                  "value": "METRICA_AGRUPAMENTO:maior",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " cil",
                  "icon": "📈",
                  "color": "#22c55e"
                }
              ]
            }
          ]
        }
      },
      "bloco4_ranking_cliente": {
        "type": "charts_grid_section",
        "title": "RANKING POR CLIENTE",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-2",
        "icon": "🏭",
        "config": {
          "container_id": "ranking-cliente-devolucoes-grid",
          "charts": [
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-cliente-devolucoes-count",
                "data_config": {
                  "group_by": "razao_social_cliente",
                  "operation": "COUNT:id"
                },
                "display_config": {
                  "title": "ATOS POR CLIENTE",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " atos",
                  "height": "400px",
                  "color": "#3b82f6",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-cliente-devolucoes-cilindros",
                "data_config": {
                  "group_by": "razao_social_cliente",
                  "operation": "SUM:cilindros"
                },
                "display_config": {
                  "title": "CILINDROS POR CLIENTE",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " cil",
                  "height": "400px",
                  "color": "#22c55e",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            }
          ]
        }
      },
      "bloco5_ranking_rota": {
        "type": "charts_grid_section",
        "title": "RANKING POR ROTA",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-2",
        "icon": "📍",
        "config": {
          "container_id": "ranking-rota-devolucoes-grid",
          "charts": [
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-rota-devolucoes-count",
                "data_config": {
                  "group_by": "nome_rota",
                  "operation": "COUNT:id"
                },
                "display_config": {
                  "title": "ATOS POR ROTA",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " atos",
                  "height": "400px",
                  "color": "#3b82f6",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-rota-devolucoes-cilindros",
                "data_config": {
                  "group_by": "nome_rota",
                  "operation": "SUM:cilindros"
                },
                "display_config": {
                  "title": "CILINDROS POR ROTA",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " cil",
                  "height": "400px",
                  "color": "#22c55e",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            }
          ]
        }
      },
      "bloco6_ranking_cidade": {
        "type": "charts_grid_section",
        "title": "RANKING POR CIDADE",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-2",
        "icon": "🏙️",
        "config": {
          "container_id": "ranking-cidade-devolucoes-grid",
          "charts": [
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-cidade-devolucoes-count",
                "data_config": {
                  "group_by": "nome_cidade_cliente",
                  "operation": "COUNT:id"
                },
                "display_config": {
                  "title": "ATOS POR CIDADE",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " atos",
                  "height": "400px",
                  "color": "#3b82f6",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-cidade-devolucoes-cilindros",
                "data_config": {
                  "group_by": "nome_cidade_cliente",
                  "operation": "SUM:cilindros"
                },
                "display_config": {
                  "title": "CILINDROS POR CIDADE",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " cil",
                  "height": "400px",
                  "color": "#22c55e",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            }
          ]
        }
      },
      "bloco7_ranking_veiculo": {
        "type": "charts_grid_section",
        "title": "RANKING POR VEÍCULO",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-2",
        "icon": "🚛",
        "config": {
          "container_id": "ranking-veiculo-devolucoes-grid",
          "charts": [
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-veiculo-devolucoes-count",
                "data_config": {
                  "group_by": "placa_veiculo",
                  "operation": "COUNT:id"
                },
                "display_config": {
                  "title": "ATOS POR VEÍCULO",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " atos",
                  "height": "400px",
                  "color": "#3b82f6",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-veiculo-devolucoes-cilindros",
                "data_config": {
                  "group_by": "placa_veiculo",
                  "operation": "SUM:cilindros"
                },
                "display_config": {
                  "title": "CILINDROS POR VEÍCULO",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " cil",
                  "height": "400px",
                  "color": "#22c55e",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            }
          ]
        }
      },
      "bloco8_ranking_motorista": {
        "type": "charts_grid_section",
        "title": "RANKING POR MOTORISTA",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-2",
        "icon": "👨‍✈️",
        "config": {
          "container_id": "ranking-motorista-devolucoes-grid",
          "charts": [
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-motorista-devolucoes-count",
                "data_config": {
                  "group_by": "nome_motorista",
                  "operation": "COUNT:id"
                },
                "display_config": {
                  "title": "ATOS POR MOTORISTA",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " atos",
                  "height": "400px",
                  "color": "#3b82f6",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-motorista-devolucoes-cilindros",
                "data_config": {
                  "group_by": "nome_motorista",
                  "operation": "SUM:cilindros"
                },
                "display_config": {
                  "title": "CILINDROS POR MOTORISTA",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " cil",
                  "height": "400px",
                  "color": "#22c55e",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            }
          ]
        }
      },
      "bloco9_finalidade": {
        "type": "charts_grid_section",
        "title": "FINALIDADE",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-2",
        "icon": "🎯",
        "config": {
          "container_id": "finalidade-devolucoes-grid",
          "charts": [
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-finalidade-devolucoes-count",
                "data_config": {
                  "group_by": "nome_rotina",
                  "operation": "COUNT:id"
                },
                "display_config": {
                  "title": "ATOS POR FINALIDADE",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " atos",
                  "height": "400px",
                  "color": "#3b82f6",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            },
            {
              "type": "chart_pie",
              "config": {
                "container_id": "graf-finalidade-pie",
                "data_config": {
                  "group_by": "nome_rotina",
                  "operation": "COUNT:id"
                },
                "display_config": {
                  "title": "DISTRIBUIÇÃO",
                  "layout": "split",
                  "donut": false,
                  "show_legend": true,
                  "show_percentages": true,
                  "show_values": true,
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " atos",
                  "height": "400px",
                  "colors": [
                    "#3b82f6",
                    "#22c55e",
                    "#f97316",
                    "#a855f7",
                    "#ec4899",
                    "#06b6d4"
                  ]
                }
              }
            }
          ]
        }
      },
      "bloco10_evolucao_temporal": {
        "type": "charts_grid_section",
        "title": "EVOLUÇÃO TEMPORAL",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-2",
        "icon": "📈",
        "config": {
          "container_id": "evolucao-temporal-devolucoes-grid",
          "charts": [
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-devolucoes-count",
                "data_config": {
                  "campo_data": "data_inclusao_devolucao",
                  "operation": "COUNT:id",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "ATOS POR MÊS",
                  "layout": "vertical",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " atos",
                  "height": "350px",
                  "color": "#3b82f6"
                }
              }
            },
            {
              "type": "chart_bar_aggregated_evolution",
              "config": {
                "container_id": "evolucao-devolucoes-cilindros",
                "data_config": {
                  "campo_data": "data_inclusao_devolucao",
                  "operation": "SUM:cilindros",
                  "granularidade": "mensal"
                },
                "display_config": {
                  "title": "CILINDROS POR MÊS",
                  "layout": "vertical",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " cil",
                  "height": "350px",
                  "color": "#22c55e"
                }
              }
            }
          ]
        }
      },
      "bloco11_distribuicao_geografica": {
        "type": "charts_grid_section",
        "title": "DISTRIBUIÇÃO GEOGRÁFICA",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-2",
        "icon": "🌎",
        "config": {
          "container_id": "distribuicao-geografica-devolucoes-grid",
          "charts": [
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-uf-devolucoes-count",
                "data_config": {
                  "group_by": "sigla_uf_cliente",
                  "operation": "COUNT:id"
                },
                "display_config": {
                  "title": "ATOS POR UF",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " atos",
                  "height": "400px",
                  "color": "#3b82f6",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-uf-devolucoes-cilindros",
                "data_config": {
                  "group_by": "sigla_uf_cliente",
                  "operation": "SUM:cilindros"
                },
                "display_config": {
                  "title": "CILINDROS POR UF",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " cil",
                  "height": "400px",
                  "color": "#22c55e",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            }
          ]
        }
      }
    }
  },
  "url_documentacao": "/docs/ondevou-db-devolucoes.html",
  "nome_tabela": "devolucoes"
}

📝 SQL CREATE TABLE - Estrutura Completa

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

🏗️ Estrutura Completa

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

CREATE TABLE public.devolucoes (
    id integer NOT NULL DEFAULT nextval('devolucoes_id_seq'::regclass),
    participante integer,
    id_participante integer,
    id_romaneio integer,
    id_membro integer,
    latitude numeric(25, 20),
    longitude numeric(25, 20),
    ip varchar(255),
    data timestamp DEFAULT now(),
    quantidade_fotos integer DEFAULT 0,
    id_rotina integer,
    id_contrato_produto integer,
    CONSTRAINT devolucoes_pkey PRIMARY KEY (id),
    CONSTRAINT 2200_221266_1_not_null CHECK (id IS NOT NULL)
);

-- ============================================================
-- ÍNDICES
-- ============================================================
CREATE UNIQUE INDEX devolucoes_pk_id ON public.devolucoes USING btree (id);
CREATE INDEX idx_devolucoes_id_membro ON public.devolucoes USING btree (id_membro);
CREATE INDEX idx_devolucoes_id_participante ON public.devolucoes USING btree (id_participante);
CREATE INDEX idx_devolucoes_id_romaneio ON public.devolucoes USING btree (id_romaneio);
CREATE INDEX idx_devolucoes_id_rotina ON public.devolucoes USING btree (id_rotina);
CREATE INDEX idx_devolucoes_p_data ON public.devolucoes USING btree (participante, data DESC);
CREATE INDEX idx_devolucoes_p_id ON public.devolucoes USING btree (participante, id DESC);
CREATE INDEX idx_devolucoes_p_id_participante ON public.devolucoes USING btree (participante, id_participante);
CREATE INDEX idx_devolucoes_p_id_romaneio ON public.devolucoes USING btree (participante, id_romaneio);
CREATE INDEX idx_devolucoes_participante ON public.devolucoes USING btree (participante);

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
cilindros number - ⚠️ Só no JSON
data - timestamp without time zone ❌ Só no banco
data_hora_inclusao_devolucao date - ⚠️ Só no JSON
data_inclusao_devolucao date - ⚠️ Só no JSON
descricao_produto_contrato,nome_unidade,descricao_contrato number - ⚠️ Só no JSON
descricao_romaneio number - ⚠️ Só no JSON
descricao_veiculo number - ⚠️ Só no JSON
id number integer ✅ OK
id_contrato_produto - integer ❌ Só no banco
id_membro - integer ❌ Só no banco
id_participante - integer ❌ Só no banco
id_participante_cliente number - ⚠️ Só no JSON
id_romaneio number integer ✅ OK
id_rotina - integer ❌ Só no banco
ip text character varying ✅ OK
latitude number numeric ✅ OK
longitude number numeric ✅ OK
nome_cidade_cliente number - ⚠️ Só no JSON
nome_cidade_cliente,sigla_uf_cliente text - ⚠️ Só no JSON
nome_membro number - ⚠️ Só no JSON
nome_motorista number - ⚠️ Só no JSON
nome_rota number - ⚠️ Só no JSON
nome_rotina text - ⚠️ Só no JSON
nome_situacao number - ⚠️ Só no JSON
participante text integer ✅ OK
placa_veiculo text - ⚠️ Só no JSON
produtos number - ⚠️ Só no JSON
qrcode text - ⚠️ Só no JSON
quantidade_fotos - integer ❌ Só no banco
razao_social_cliente number - ⚠️ Só no JSON
sigla_uf_cliente 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_devolucoes WHERE participante = ${globais.dados_fixo.participante}`,
    'view': 'view_devolucoes'
});

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

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