🗄️ Natureza Operacao Precos de Venda

Tabela auxiliar que armazena natureza operacao precos dos vendas.
🔗 Tabela relacionada: vendas

📋 7 colunas 🔗 2 relacionamentos 🎮 6 controles 👁️ view_vendas_natureza_operacao_precos 🔑 PRIMARY KEY 📱 GetCollector

📋 Estrutura da Tabela

A tabela vendas_natureza_operacao_precos possui 7 colunas.

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

Campo id

🔑 PRIMARY KEY

Campo na tabela: id

Alias na VIEW: id_venda_natureza_operacao_preco

Readonly: ✅ Gerado automaticamente pelo sistema

Grava em auditoria: ✅ Sim

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
  • Tipo de input text
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou id
  • Alias OndeVou id_venda_natureza_operacao_preco
  • Tabela OndeVou vendas_natureza_operacao_precos,auditor_vendas_...
  • Alias: id_venda_natureza_operacao_preco
  • Tabelas: vendas_natureza_operacao_precos, auditor_vendas_natureza_operacao_precos ✅
  • 🔑 PRIMARY KEY
  • VIEW: id_venda_natureza_operacao_preco
  • 📋 Auditoria
📋 Participante
🔒 Somente leitura💾 Grava
Campo Tabela participante
Campo VIEW / Exibido participante
Tipo number
Data Table vendas_natureza_operacao_precos,auditor_vendas_natureza_operacao_precos
Descrição

Campo participante

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
⚙️ Comportamento
  • Valor padrão 1
📊 Dados
  • Campo OndeVou participante
  • Tabela OndeVou vendas_natureza_operacao_precos,auditor_vendas_...
  • Tabelas: vendas_natureza_operacao_precos, auditor_vendas_natureza_operacao_precos ✅
  • Value: 1
📋 Código erplinux
🔒 Somente leitura📋 Somente view
Campo Tabela codigo_erplinux_produto
Campo VIEW / Exibido codigo_erplinux_produto ⚠️ (somente view)
Tipo text
Data Table view_vendas_natureza_operacao_precos
Descrição

Campo código erplinux

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou codigo_erplinux_produto
  • Tabela OndeVou view_vendas_natureza_operacao_precos
  • Tabelas: view_vendas_natureza_operacao_precos (só view)
📋 Produto
✅ Obrigatório💾 Grava🔗 getdata
Campo Tabela id_produto
Campo VIEW / Exibido descricao_produto (ID: id_produto)
Tipo number (getdata)
Data Table vendas_natureza_operacao_precos,auditor_vendas_natureza_operacao_precos
Descrição

Campo produto

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou descricao_produto
  • ID OndeVou id_produto
  • Tabela OndeVou vendas_natureza_operacao_precos,auditor_vendas_...
🔗 Getdata
  • {
      "view": "view_produtos",
      "data": "view_produtos",
      "text-empty-search": "sim",
      "campo-data-id": "id_produto",
      "campo-data-value-input": "codigo_erplinux_produto,descricao_produto",
      "campo-data-input-select-view": "codigo_erplinux_produto,descricao_produto,nome_unidade_venda",
      "query": {
        "select": "* from view_produtos",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_produto,` `,codigo_erplinux_produto,` `,descricao_produto))) ilike `%",
              "right": "%`) and (participante=`1`)"
            }
          }
        },
        "order": "id_produto desc"
      }
    }
  • ID: id_produto
  • Tabelas: vendas_natureza_operacao_precos, auditor_vendas_natureza_operacao_precos ✅
📋 Preço
✅ Obrigatório💾 Grava
Campo Tabela preco_unitario
Campo VIEW / Exibido preco_unitario
Tipo number
Data Table vendas_natureza_operacao_precos,auditor_vendas_natureza_operacao_precos
Descrição

Campo preço

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou preco_unitario
  • Tabela OndeVou vendas_natureza_operacao_precos,auditor_vendas_...
  • Tabelas: vendas_natureza_operacao_precos, auditor_vendas_natureza_operacao_precos ✅
📋 Preço anterior
🔒 Somente leitura👁️ Oculto💾 Grava
Campo Tabela preco_unitario_anterior
Campo VIEW / Exibido preco_unitario
Tipo number
Data Table vendas_natureza_operacao_precos,auditor_vendas_natureza_operacao_precos
Descrição

Campo preço anterior

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou preco_unitario_anterior
  • Alias OndeVou preco_unitario
  • Tabela OndeVou vendas_natureza_operacao_precos,auditor_vendas_...
  • Alias: preco_unitario
  • Tabelas: vendas_natureza_operacao_precos, auditor_vendas_natureza_operacao_precos ✅
  • Hidden: ✓ (dados ocultos)
📋 Natureza operação
✅ Obrigatório💾 Grava🔗 getdata
Campo Tabela id_natureza_operacao
Campo VIEW / Exibido descricao_natureza_operacao (ID: id_natureza_operacao)
Tipo number (getdata)
Data Table vendas_natureza_operacao_precos,auditor_vendas_natureza_operacao_precos
Descrição

Campo natureza operação

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou descricao_natureza_operacao
  • ID OndeVou id_natureza_operacao
  • Tabela OndeVou vendas_natureza_operacao_precos,auditor_vendas_...
🔗 Getdata
  • {
      "view": "view_vendas_natureza_operacao",
      "data": "view_vendas_natureza_operacao",
      "text-empty-search": "sim",
      "campo-data-id": "id_natureza_operacao",
      "campo-data-value-input": "id_natureza_operacao,descricao_natureza_operacao",
      "campo-data-input-select-view": "id_natureza_operacao,descricao_natureza_operacao",
      "query": {
        "select": "* from view_vendas_natureza_operacao",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(concat(id_natureza_operacao,` `,descricao_natureza_operacao))) ilike `%",
              "right": "%`) and (id_tipo_nf in (1,2,3,4,5,6,7,8))"
            }
          }
        }
      }
    }
  • ID: id_natureza_operacao
  • Tabelas: vendas_natureza_operacao_precos, auditor_vendas_natureza_operacao_precos ✅
📌 Legenda: 🔑 PRIMARY KEY ✅ Obrigatório 🔒 Somente leitura 👁️ Oculto 💾 Grava 📋 Somente view 🔗 getdata 📝 putdata 🔢 AutoInc 📱 QR Code 📋 Auditoria 📱 GetCollector

🔗 Relacionamentos

Tabelas relacionadas via getdata.

produtos · Principal: Produto 📄
vendas_natureza_operacao · Auxiliar: Natureza operação 📄

🔍 Filtros (formsearch)

Campos disponíveis para filtragem na busca.

Natureza operação text 🔗 Sim
Produto text 🔗 Sim

🎮 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

👁️ View Associada

Nome: view_vendas_natureza_operacao_precos

📱 GetCollector - Coleta de Dados

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

Configuração (JSON expandido)

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

Tipos de QR Code

  • pr: Produto

Detalhes

  • Table Add: addTableColetar_dados_leituras

🔑 PRIMARY KEY - Campo Id

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

Configuração

'Id': {
    'input': {
        'readonly': 'readonly',
        'data-type-ondevou': 'number',
        'data-field-ondevou': 'id',
        "data-field-alias-ondevou": "id_venda_natureza_operacao_preco",
        'data-table-ondevou': 'vendas_natureza_operacao_precos,auditor_vendas_natureza_operacao_precos'
    }
}

Comportamento

  • 🔒 Readonly: Campo não editável
  • 📊 Tipo: number
  • 🔹 Alias na VIEW: id_venda_natureza_operacao_preco
  • 📋 Auditoria: Grava em vendas_natureza_operacao_precos,auditor_vendas_natureza_operacao_precos

💾 JSON da Tabela

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

code Clique para ver o JSON completo 8 KB
{
  "table-id": "vendas_natureza_operacao_precos",
  "data-table-ondevou": "vendas_natureza_operacao_precos",
  "data-table-auditor": "auditor_vendas_natureza_operacao_precos",
  "data-field-auditor": "id_venda_natureza_operacao_preco",
  "table-class": "striped",
  "putdata": {
    "trigger": "setTableFromPutData()"
  },
  "controls": [
    "add",
    "copy",
    "edit",
    "save",
    "delete",
    "remove"
  ],
  "html": {
    "div": {
      "before": "",
      "after": ""
    }
  },
  "routines": {
    "add": "410",
    "edit": "411",
    "remove": "413"
  },
  "search": {
    "id_search_natureza_operacao": {
      "data-type-ondevou": "number",
      "texto_label": "Natureza operação",
      "title": "Digite a natureza da operação",
      "data-field-ondevou": "id_search_natureza_operacao",
      "data-table-ondevou": "view_vendas_natureza_operacao",
      "getdata": "{\"view\":\"view_vendas_natureza_operacao\",\"data\":\"view_vendas_natureza_operacao\",\"text-empty-search\":\"sim\",\"trigger\":\"setTableVendasNaturezaOperacaoPrecosFromSearch();\",\"campo-data-id\":\"id_natureza_operacao\",\"campo-data-value-input\":\"id_natureza_operacao,descricao_natureza_operacao\",\"campo-data-input-select-view\":\"id_natureza_operacao,descricao_natureza_operacao\",\"query\":{\"select\":\"* from view_vendas_natureza_operacao\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_natureza_operacao,` `,descricao_natureza_operacao))) ilike `%\",\"right\":\"%`) and (id_tipo_nf in (1,2,3,4,5,6,7,8))\"}}}}}"
    },
    "id_search_produto": {
      "data-type-ondevou": "number",
      "texto_label": "Produto",
      "data-field-ondevou": "id_search_produto",
      "data-table-ondevou": "view_produtos",
      "getcollector": "{\"qrcode\":\"{\\\"qrcode-type\\\":[\\\"pr\\\"]}\",\"table-setups\":\"{\\\"search\\\":\\\"nao\\\",\\\"html\\\":\\\"nao\\\",\\\"controls\\\":[\\\"info\\\",\\\"remove\\\"]}\"}",
      "getdata": "{\"view\":\"view_produtos\",\"data\":\"view_produtos\",\"text-empty-search\":\"sim\",\"trigger\":\"setTableVendasNaturezaOperacaoPrecosFromSearch();\",\"campo-data-id\":\"id_produto\",\"campo-data-value-input\":\"codigo_erplinux_produto,descricao_produto\",\"campo-data-input-select-view\":\"codigo_erplinux_produto,descricao_produto,nome_unidade_venda\",\"query\":{\"select\":\"* from view_produtos\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_produto,` `,codigo_erplinux_produto,` `,descricao_produto))) ilike `%\",\"right\":\"%`) and (participante=`1`)\"}}},\"order\":\"id_produto desc\"}}"
    }
  },
  "headers": {
    "Id": {
      "width": "10%"
    },
    "Participante": {
      "width": "10%"
    },
    "Código erplinux": {
      "width": "10%"
    },
    "Produto": {
      "width": "30%"
    },
    "Preço": {
      "align": "right",
      "width": "10%"
    },
    "Preço anterior": {
      "type": "hidden"
    },
    "Natureza operação": {
      "width": "50%"
    }
  },
  "columns": {
    "Id": {
      "input": {
        "type": "text",
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "id",
        "data-field-alias-ondevou": "id_venda_natureza_operacao_preco",
        "data-table-ondevou": "vendas_natureza_operacao_precos,auditor_vendas_natureza_operacao_precos"
      }
    },
    "Participante": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "value": "1",
        "data-field-ondevou": "participante",
        "data-table-ondevou": "vendas_natureza_operacao_precos,auditor_vendas_natureza_operacao_precos"
      }
    },
    "Código erplinux": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "text",
        "data-field-ondevou": "codigo_erplinux_produto",
        "data-table-ondevou": "view_vendas_natureza_operacao_precos"
      }
    },
    "Produto": {
      "input": {
        "required": "required",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_produto",
        "data-field-ondevou": "descricao_produto",
        "data-table-ondevou": "vendas_natureza_operacao_precos,auditor_vendas_natureza_operacao_precos",
        "getdata": "{\"view\":\"view_produtos\",\"data\":\"view_produtos\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_produto\",\"campo-data-value-input\":\"codigo_erplinux_produto,descricao_produto\",\"campo-data-input-select-view\":\"codigo_erplinux_produto,descricao_produto,nome_unidade_venda\",\"query\":{\"select\":\"* from view_produtos\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_produto,` `,codigo_erplinux_produto,` `,descricao_produto))) ilike `%\",\"right\":\"%`) and (participante=`1`)\"}}},\"order\":\"id_produto desc\"}}"
      }
    },
    "Preço": {
      "input": {
        "required": "required",
        "data-type-ondevou": "number",
        "data-field-ondevou": "preco_unitario",
        "data-table-ondevou": "vendas_natureza_operacao_precos,auditor_vendas_natureza_operacao_precos"
      }
    },
    "Preço anterior": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "preco_unitario_anterior",
        "data-field-alias-ondevou": "preco_unitario",
        "data-table-ondevou": "vendas_natureza_operacao_precos,auditor_vendas_natureza_operacao_precos"
      }
    },
    "Natureza operação": {
      "input": {
        "data-type-ondevou": "number",
        "required": "required",
        "data-id-field-ondevou": "id_natureza_operacao",
        "data-field-ondevou": "descricao_natureza_operacao",
        "data-table-ondevou": "vendas_natureza_operacao_precos,auditor_vendas_natureza_operacao_precos",
        "getdata": "{\"view\":\"view_vendas_natureza_operacao\",\"data\":\"view_vendas_natureza_operacao\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_natureza_operacao\",\"campo-data-value-input\":\"id_natureza_operacao,descricao_natureza_operacao\",\"campo-data-input-select-view\":\"id_natureza_operacao,descricao_natureza_operacao\",\"query\":{\"select\":\"* from view_vendas_natureza_operacao\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_natureza_operacao,` `,descricao_natureza_operacao))) ilike `%\",\"right\":\"%`) and (id_tipo_nf in (1,2,3,4,5,6,7,8))\"}}}}}"
      }
    }
  },
  "formsearch": {
    "data-table-ondevou": "view_vendas_natureza_operacao_precos",
    "data-where-fixed": "participante=`1`",
    "data-where-order": "order by id_venda_natureza_operacao_preco desc",
    "input": {
      "descricao_natureza_operacao": {
        "data-field-ondevou": "descricao_natureza_operacao",
        "data-id-field-ondevou": "id_natureza_operacao",
        "data-type-ondevou": "number",
        "type": "text",
        "divClass": "col s12 m4",
        "texto_label": "Natureza operação",
        "data-field-where": "id_natureza_operacao",
        "getdata": "{\"view\":\"view_vendas_natureza_operacao\",\"data\":\"view_vendas_natureza_operacao\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_natureza_operacao\",\"campo-data-value-input\":\"id_natureza_operacao,descricao_natureza_operacao\",\"campo-data-input-select-view\":\"id_natureza_operacao,descricao_natureza_operacao\",\"query\":{\"select\":\"* from view_vendas_natureza_operacao\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_natureza_operacao,` `,descricao_natureza_operacao))) ilike `%\",\"right\":\"%`) and (id_tipo_nf in (1,2,3,4,5,6,7,8))\"}}}}}"
      },
      "descricao_produto": {
        "data-field-ondevou": "descricao_produto",
        "data-id-field-ondevou": "id_produto",
        "data-type-ondevou": "number",
        "type": "text",
        "divClass": "col s12 m4",
        "texto_label": "Produto",
        "data-field-where": "id_produto",
        "getdata": "{\"view\":\"view_produtos\",\"data\":\"view_produtos\",\"text-empty-search\":\"sim\",\"campo-data-id\":\"id_produto\",\"campo-data-value-input\":\"codigo_erplinux_produto,descricao_produto\",\"campo-data-input-select-view\":\"codigo_erplinux_produto,descricao_produto,nome_unidade_venda\",\"query\":{\"select\":\"* from view_produtos\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(concat(id_produto,` `,codigo_erplinux_produto,` `,descricao_produto))) ilike `%\",\"right\":\"%`) and (participante=`1`)\"}}},\"order\":\"id_produto desc\"}}"
      }
    }
  },
  "url_documentacao": "/docs/ondevou-db-vendas_natureza_operacao_precos.html",
  "nome_tabela": "vendas_natureza_operacao_precos"
}

📝 SQL CREATE TABLE - Estrutura Completa

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

🏗️ Estrutura Completa

📋 7 colunas 🔗 11 constraints 📑 4 índices ⚡ 0 triggers
code Clique para ver o SQL completo ✅ COMPLETO
-- ============================================================
-- ESTRUTURA COMPLETA DA TABELA vendas_natureza_operacao_precos
-- Fonte: PostgreSQL - 12/08/2026 10:25:21
-- ============================================================

CREATE TABLE public.vendas_natureza_operacao_precos (
    id integer NOT NULL DEFAULT nextval('vendas_natureza_operacao_precos_id_seq'::regclass),
    participante integer,
    id_natureza_operacao integer,
    id_produto integer,
    chave varchar(255),
    preco_unitario numeric(25, 10),
    preco_unitario_backup numeric(25, 10),
    CONSTRAINT vendas_natureza_operacao_precos_pkey PRIMARY KEY (id),
    CONSTRAINT vendas_natureza_operacao_precos_unique_participante_id_natureza UNIQUE (id_natureza_operacao),
    CONSTRAINT vendas_natureza_operacao_precos_unique_participante_id_natureza UNIQUE (id_natureza_operacao),
    CONSTRAINT vendas_natureza_operacao_precos_unique_participante_id_natureza UNIQUE (id_natureza_operacao),
    CONSTRAINT vendas_natureza_operacao_precos_unique_participante_id_natureza UNIQUE (id_produto),
    CONSTRAINT vendas_natureza_operacao_precos_unique_participante_id_natureza UNIQUE (id_produto),
    CONSTRAINT vendas_natureza_operacao_precos_unique_participante_id_natureza UNIQUE (id_produto),
    CONSTRAINT vendas_natureza_operacao_precos_unique_participante_id_natureza UNIQUE (participante),
    CONSTRAINT vendas_natureza_operacao_precos_unique_participante_id_natureza UNIQUE (participante),
    CONSTRAINT vendas_natureza_operacao_precos_unique_participante_id_natureza UNIQUE (participante),
    CONSTRAINT 2200_222543_1_not_null CHECK (id IS NOT NULL)
);

-- ============================================================
-- ÍNDICES
-- ============================================================
CREATE INDEX idx_vendas_natureza_operacao_precos_p_id ON public.vendas_natureza_operacao_precos USING btree (participante, id DESC);
CREATE INDEX idx_vendas_natureza_operacao_precos_participante ON public.vendas_natureza_operacao_precos USING btree (participante);
CREATE UNIQUE INDEX vendas_natureza_operacao_precos_pk_id ON public.vendas_natureza_operacao_precos USING btree (id);
CREATE UNIQUE INDEX vendas_natureza_operacao_precos_unique_participante_id_natureza ON public.vendas_natureza_operacao_precos USING btree (participante, id_natureza_operacao, id_produto);

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
chave - character varying ❌ Só no banco
codigo_erplinux_produto text - ⚠️ Só no JSON
descricao_natureza_operacao number - ⚠️ Só no JSON
descricao_produto number - ⚠️ Só no JSON
id number integer ✅ OK
id_natureza_operacao - integer ❌ Só no banco
id_produto - integer ❌ Só no banco
participante number integer ✅ OK
preco_unitario number numeric ✅ OK
preco_unitario_anterior number - ⚠️ Só no JSON
preco_unitario_backup - numeric ❌ Só no banco

💡 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_vendas_natureza_operacao_precos WHERE participante = ${globais.dados_fixo.participante}`,
    'view': 'view_vendas_natureza_operacao_precos'
});

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

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