Do Integrator para o ERP Voalle — Guia Completo de Migração de Dados
Este documento explica, em linguagem acessível e com mapeamento técnico coluna a coluna, como cada informação do sistema Integrator é reorganizada durante a migração para o ERP Voalle. O objetivo é que qualquer pessoa que conheça o Integrator consiga entender onde seus dados "pousam" no novo sistema — e um analista consiga reproduzir ou depurar qualquer transformação.
Mapa Geral — Tudo que migra
| Entidade no Integrator | Tabela(s) origem | Entidade no ERP Voalle | Prefixo do código |
|---|---|---|---|
| Filiais / empresas | empresas | Locais de faturamento | CP_ |
| Grupos de clientes | grupo_clientes | Grupos de Pessoas | PG_ |
| Grupos de serviços | grupos_servicos | Grupos de Serviços | SPG_ |
| Formas de cobrança / bancos | forma_cobrancas + bancos + conf_boletos | Tipos de Cobrança | FCT_ |
| Grupos de IPs | (estático — sem tabela no legado) | Grupos de IPs | IP_FIXO, EQP, POOL |
| IPs dos clientes | ip | IPs (grupo IP_FIXO) | IP_ |
| IPs de equipamentos (NAS, AP, OLT) | radios + olt_fibra + nas_radius | IPs (grupo EQP) | IP_IPNAS_, IPAP_, IP_, IP_RAD_ |
| Concentradores / NAS | nas_radius + radios | Concentradores | CE_ |
| OLTs de fibra | olt_fibra | Pontos de Acesso | OLT_ |
| Condomínios | condominios | Condomínios | CND |
| Clientes | clientes + observacoes | Pessoa (cliente=true) | CLI_ |
| Fornecedores | fornecedores | Pessoa (fornecedor=true) | FOR_ |
| Contatos dos clientes | contatos_cliente | Pessoa (contato vinculado) | CNT_ |
| Prospects / Leads | prospect | Pessoa (situação=Prospect) | PROSP_ |
| Usuários do sistema | usuarios | Pessoa (colaborador) | USU_ |
| Telefones / emails adicionais | contatos_cliente | Comunicações da Pessoa | CON_ |
| Endereço de cobrança | endereco_cli + clientes | Endereço (tipo cobrança) | (sem prefixo próprio) |
| Plano contratado | servicos_cli | Contrato | CNT_{codcli}_{codsercli} |
| Serviço principal do plano | servicos_cli + servicos | Item de Contrato | CNTIT_ |
| Serviços extras | servicos_cli_extras + servicos_extras | Item de Contrato (extra) | CNTIT_..._EXTRA |
| Ramal VoIP / Telefonia | terminal_voz | Item de Contrato (VoIP) | CNTIT_{codtvoz} |
| Pacote de TV | pacotes_sc + pacotes | Item de Contrato (TV) | CNTIT_{codpsc} |
| Histórico de situação do plano | historico_cliente | Evento do Contrato | HIS_CNT_ |
| Conexão PPPoE / Hotspot | login_radius + ip + onu_fibra + ... | Conexão | CNX_{codlrad} |
| Conexão IP Fixo (sem PPPoE) | ip + servicos_cli | Conexão | CNX_{codsercli} |
| Fatura (boleto agrupador) | faturas + contas_rec | Fatura | FAT_ |
| Fatura recebida (boleto pago) | faturas + mov_bancario + descontos | Fatura Recebida | FAT_REC_ |
| Título a receber | contas_rec | Conta a Receber | TIT_ |
| Título recebido (quitado) | contas_rec + mov_bancario + descontos | Conta Recebida | TIT_REC_ |
| Conta a pagar | contas_pag | Conta a Pagar | TIT_ |
| Conta paga | contas_pag + razao + mov_bancario | Conta Paga | TIT_..._RZ_ |
| Lançamento bancário (pagamentos) | razao + mov_bancario | Lançamento Caixa/Banco | PST_ |
| Lançamento bancário (recebimentos) | mov_bancario | Lançamento Caixa/Banco | PST_ |
| Patrimônio / equipamento | movimentos_pat + patrimonio + produtos | Patrimônio | PAT_ |
| Ordens de serviço / Ocorrências | ocorrencias + ordem_servico | Solicitações Vinculadas | AT_..._OS_ |
| Comentários e histórico de OS | comentarios + historico_ocorrencias + ... | Relatos | REL_ |
| Encaminhamentos de OS | encaminhamentos | Encaminhamentos | ENC_ |
Não migrado: fotografias (
fotografias_local) e arquivos (arquivos) não são migrados nesta versão dos scripts (bloco 99_Anexos.sql completamente comentado).
1. Como funciona a migração em 3 etapas
Para quem vem do Integrator, o processo de migração opera assim:
INTEGRATOR (legado)
Dados exatamente como estão hoje no sistema
| Cópia dos dados para o servidor Voalle
v
CONNECTOR (área intermediária)
Os dados são reorganizados e enriquecidos.
É aqui que acontecem todas as transformações:
unificação de tabelas, mapeamentos, cálculos de valor.
| Consolidação — importação para o ERP
v
ERP VOALLE
Os dados chegam no formato final,
prontos para serem usados no sistema.
Ideia central: o Integrator armazena informações de forma fragmentada — cada tipo de dado em uma tabela separada. O ERP Voalle adota uma visão unificada. O melhor exemplo é a Conexão: no Integrator ela está espalhada por 10+ tabelas; no ERP é um único registro.
2. Empresas / Filiais → Locais de Faturamento
No Integrator, a tabela empresas guarda as filiais e unidades do provedor (CNPJ, regime tributário, endereço). No ERP Voalle isso se chama Local (companies_places).
Integrator: empresas | codemp = '01' | nome_emp = 'Provedor Sede'
|
v
ERP Voalle: Local | erp_code = 'Integrator_CP_01' | razao_social = 'Provedor Sede'
Script: Cadastros/01.01-Locais.sql
3. Configurações e Tabelas Auxiliares
3.1 Grupos de Clientes → Grupos de Pessoas
No Integrator, grupo_clientes agrupa clientes por categorias (ex: Residencial, Empresarial). No ERP viram Grupos de Pessoas, com o mesmo propósito.
Script: Cadastros/03.01-GrupoPessoas.sql
Integrator (grupo_clientes) | ERP (grupos_pessoas) |
|---|---|
codgrupo | erp_code = prefix('PG_' + codgrupo) |
nome_grupo | descricao |
3.2 Grupos de Serviços
No Integrator, grupos_servicos categoriza os planos de internet (ex: Fibra, Rádio, TV). No ERP viram Grupos de Serviços.
Script: Cadastros/04.01-GruposServicos.sql
Integrator (grupos_servicos) | ERP (grupos_servicos) |
|---|---|
codgrupo | erp_code = prefix('SPG_' + codgrupo) |
nome_grupo | descricao |
3.3 Tipos de Cobrança (Formas de Pagamento)
No Integrator, a forma de cobrança é definida em forma_cobrancas, com as regras de juros e multa em conf_boletos e o banco em bancos. No ERP tudo isso se une em um único Tipo de Cobrança.
Script: Cadastros/02.02-TiposCobranca.sql
| Integrator | ERP (tipos_cobranca) | Regra |
|---|---|---|
forma_cobrancas.codcob | erp_code | prefix('FCT_' + codcob) |
forma_cobrancas.desc_cob | descricao | Direto |
bancos.codban | erp_code_caixas_contas | prefix('BA_' + codban) |
forma_cobrancas.tipo = 'carne' | forma_cobranca | 3 (Carnê) |
forma_cobrancas.tipo = 'C' | forma_cobranca | 5 (Cartão) |
forma_cobrancas.tipo = 'N' | forma_cobranca | 1 (Normal/Boleto) |
forma_cobrancas.tipo = 'D' | forma_cobranca | 2 (Débito Automático) |
conf_boletos.juros | juros | Percentual direto |
conf_boletos.multa | multa | Percentual direto |
conf_boletos.desconto | desconto | Percentual direto |
conf_boletos.diasprotesto | dias_protesto | Direto |
4. Infraestrutura de Rede
4.1 Grupos de IPs
Três grupos são criados automaticamente pelo script — não existem como tabela no legado, são inseridos fixos na migração:
| Código no ERP | Finalidade |
|---|---|
prefix('IP_FIXO') | IPs fixos alocados a clientes |
prefix('EQP') | IPs de equipamentos de rede (NAS, AP, OLT) |
prefix('POOL') | Pool de IPs dinâmicos (DHCP) |
Script: Cadastros/08.02-GrupoIPs.sql
4.2 Endereços IP
Os endereços IP do legado vêm de 5 origens diferentes, cada uma com um prefixo distinto:
| Origem no Integrator | Tipo | Grupo de IPs | Prefixo |
|---|---|---|---|
ip.nro_ip | IP fixo de cliente | IP_FIXO | IP_ |
radios.ip onde nas = 'S' | IP de rádio NAS | EQP | IP_IPNAS_ |
radios.ip onde nas = 'N' | IP de access point | EQP | IPAP_ |
olt_fibra.ip | IP de OLT de fibra | EQP | IP_ |
nas_radius.host | IP de servidor RADIUS | EQP | IP_RAD_ |
Script: Cadastros/08.03-IPs.sql
4.3 Concentradores (NAS e Rádios)
No Integrator, os equipamentos de autenticação ficam em nas_radius (servidores RADIUS) e radios (access points que funcionam como NAS). No ERP viram Concentradores.
Um concentrador de migração padrão (MIG_999) é inserido diretamente no ERP para receber conexões que não tiverem concentrador identificado no legado.
Script: Cadastros/08.04-Concentradores.sql
| Origem | erp_code | Tipo |
|---|---|---|
nas_radius | prefix('CE_' + host) | 1 (RADIUS) |
radios (NAS) | prefix('CE_' + codrad) | 2 (AP / Hotspot) |
| (fixo) | 'MIG_999' | Padrão de migração |
4.4 Pontos de Acesso (OLTs de Fibra)
As OLTs do Integrator (olt_fibra) viram Pontos de Acesso no ERP, com o fabricante mapeado pelo código codtolt.
Um ponto de acesso padrão (MIG_999) é criado para conexões sem OLT identificada.
Script: Cadastros/08.05-PontodeAcesso.sql
Integrator (olt_fibra) | ERP (pontos_acesso) | Regra |
|---|---|---|
codolt | erp_code | prefix('OLT_' + codolt) |
descri_olt | nome | Direto |
codolt | codigo | Direto |
ip | erp_code_ip | prefix('IP_' + ip) |
codtolt = 'HUAWEI' | codigo_fabricante | 5 |
codtolt = 'DATACOM' | codigo_fabricante | 9 |
codtolt = 'ZTE' | codigo_fabricante | 8 |
codtolt = 'FIBERHOME' | codigo_fabricante | 6 |
codtolt = 'NOKIA' | codigo_fabricante | 14 |
codtolt = 'PARKS' | codigo_fabricante | 4 |
ativo = 'N' | ativo | FALSE — senão TRUE |
login | usuario | Direto |
senha | senha | Direto |
| (fixo) | tipo | 4 (OLT) |
4.5 Condomínios
Condomínios do Integrator são mantidos como entidade separada no ERP.
Script: Cadastros/08.07-Condominios.sql
Integrator (condominios) | ERP (condominios) | Regra |
|---|---|---|
codcon | erp_code | prefix('CND' + codcon) |
nome_con | descricao | Direto |
cep | cep | Direto |
endereco | endereco / numero | Separados por função |
bairro | bairro | Direto |
cidade | cidade | Via maintenance.code_cities |
tipo_ponto_roteamento.descri | tipo | Descrição do tipo de roteamento |
5. Pessoas — cinco cadastros viram um
Esta é uma das grandes unificações da migração. No Integrator existem cinco tabelas de cadastro de pessoas completamente separadas. No ERP Voalle todas se tornam registros na mesma entidade Pessoa, diferenciadas apenas por flags e situação.
| Origem no Integrator | Prefixo | Flag / Situação no ERP |
|---|---|---|
clientes | CLI_ | cliente = true, situação = 3 (Cliente) |
fornecedores | FOR_ | fornecedor = true, situação = 3 |
contatos_cliente | CNT_ | Vinculado como contato da pessoa-cliente |
prospect | PROSP_ | situação = 5 (Prospect) |
usuarios | USU_ | colaborador = true |
5.1 Clientes
Script: Operacional/03.02-Pessoas.sql (bloco Clientes)
Integrator (clientes) | ERP (pessoas) | Regra |
|---|---|---|
codcli | erp_code | prefix('CLI_' + codcli) |
tipo_cliente = 'F' | tipo_pessoa | 2 (Física) |
tipo_cliente = 'J' | tipo_pessoa | 1 (Jurídica) |
ativo = 'S' | status | 1 (Normal) |
ativo = 'N' | status | 0 (Inativa) |
cpf (PF) | documento | Remove formatação |
cnpj (PJ) | documento | Remove formatação |
nome_cli | razao_social_nome | Direto |
nome_cli (PF) / nome_fan (PJ) | nome_fantasia_apelido | Condicional |
cep | cep_principal | Direto |
endereco | endereco_principal | Remove o número |
endereco | numero_principal | Extrai somente o número |
bairro | bairro_principal | Direto |
cidade (código) | codigo_ibge_endereco_principal | Via erp.code_cities |
cidade (código) | cidade_principal | Nome da cidade |
| (via cidade) | uf_principal | Sigla do estado |
referencia | referencia_endereco_principal | Direto |
e_mail | email + email_NFE | Mesmo valor nos dois campos |
ddd + fone | telefone | Concatenados |
celular | celular | Direto |
rg (PF) | identidade | Direto; NULL se PJ |
data_nac | data_nascimento | NULL se '0000-00-00' |
data_cad | data_cadastro | Cast DATE |
icm | inscricao_estadual | Direto |
ic_mun | inscricao_municipal | Direto |
obs | observacoes_tecnicas | Direto |
observacoes.obs (todas) | observacoes_administrativas | Concatenadas com data, separadas por \n |
simples_nacional = 'S' e PJ | regime_tributario | 1 (Simples Nacional) |
simples_nacional = 'N' e PJ | regime_tributario | 2 (Lucro Presumido/Real) |
funcionario = 'S' | colaborador | TRUE |
codgcli | erp_code_grupo_pessoas | prefix('PG_' + codgcli) |
latitude / longitude | latitude_end_principal / longitude_end_principal | Direto |
| (fixo) | cliente | TRUE |
| (fixo) | fornecedor | FALSE |
| (fixo) | situacao | 3 (Cliente) |
5.2 Fornecedores
Script: Operacional/03.02-Pessoas.sql (bloco Fornecedores)
Integrator (fornecedores) | ERP (pessoas) | Regra |
|---|---|---|
codfor | erp_code | prefix('FOR_' + codfor) |
tipo_pesso = 'F' / 'J' | tipo_pessoa | 2 / 1 |
cpf / cnpj | documento | Remove formatação |
nome_for | razao_social_nome | Direto |
nome_fan | nome_fantasia_apelido | Direto |
cep | cep_principal | Direto |
endereco | endereco_principal / numero_principal | Separados por função |
cidade | cidade_principal / uf_principal | Via maintenance.code_cities |
e_mail | email + email_NFE | Mesmo valor |
ddd + fone | telefone | Concatenados |
celular | celular | Direto |
rg (PF) | identidade | NULL se PJ |
icm | inscricao_estadual | Direto |
obs + contato | observacoes_administrativas | Concatenados |
| (fixo) | fornecedor | TRUE |
| (fixo) | cliente | FALSE |
| (fixo) | situacao | 3 |
| (fixo) | status | 1 (Normal) |
| (fixo) | erp_code_grupo_pessoas | prefix('FORNECEDORES') |
5.3 Contatos dos Clientes
No Integrator, contatos_cliente guarda pessoas de contato vinculadas a um cliente (ex: gerente, técnico, cônjuge). No ERP viram Pessoas com vínculo de contato.
Script: Operacional/03.02-Pessoas.sql (bloco Contatos)
Integrator (contatos_cliente) | ERP (pessoas) | Regra |
|---|---|---|
codcontato | erp_code | prefix('CNT_' + codcontato) |
nome | razao_social_nome | Direto |
cpf | documento | Remove formatação |
e_mail | email | Direto |
ddd + fone | telefone | Concatenados |
celular | celular | Direto |
obs | observacoes_administrativas | Direto |
codcli | (vínculo) | Referencia o cliente pai |
| (fixo) | tipo_pessoa | 2 (Física) |
| (fixo) | status | 1 (Normal) |
| (fixo) | situacao | 3 |
5.4 Prospects (Leads)
No Integrator, prospect são clientes em potencial que ainda não assinaram um plano. No ERP viram Pessoas com situação Prospect.
Script: Operacional/03.02-Pessoas.sql (bloco Prospects)
Integrator (prospect) | ERP (pessoas) | Regra |
|---|---|---|
codprosp | erp_code | prefix('PROSP_' + codprosp) |
nome | razao_social_nome | Direto |
cpf / cnpj | documento | Remove formatação |
e_mail | email | Direto |
ddd + fone | telefone | Concatenados |
celular | celular | Direto |
cep | cep_principal | Direto |
endereco | endereco_principal / numero_principal | Separados por função |
| (fixo) | situacao | 5 (Prospect) |
| (fixo) | status | 1 (Normal) |
5.5 Usuários do Sistema
No Integrator, usuarios são as contas de acesso ao sistema (atendentes, técnicos, gerentes). No ERP viram Pessoas com flag de colaborador.
Script: Operacional/03.02-Pessoas.sql (bloco Usuários)
Integrator (usuarios) | ERP (pessoas) | Regra |
|---|---|---|
codusu | erp_code | prefix('USU_' + codusu) |
nome_usu | razao_social_nome | Direto |
e_mail | email | Direto |
cpf | documento | Remove formatação |
| (fixo) | colaborador | TRUE |
| (fixo) | status | 1 (Normal) |
| (fixo) | situacao | 3 |
5.6 Meios de Contato (Comunicações)
Além do cadastro principal, os contatos adicionais de cada cliente são migrados para pessoas_comunicacao. Cada registro em contatos_cliente pode gerar múltiplos meios de contato no ERP.
Script: Operacional/03.03-Comunicacoes.sql
Integrator (contatos_cliente) | ERP (pessoas_comunicacao) | Regra |
|---|---|---|
codcontato | erp_code | prefix('CON_' + codcontato) |
codcli | erp_code_pessoa | prefix('CLI_' + codcli) |
fone (com DDD) | contato | Tipo 1 (Telefone) |
e_mail | contato | Tipo 2 (E-mail) |
celular | contato | Tipo 3 (Celular) |
fax | contato | Tipo 6 (Fax) |
nome | complemento | Nome do contato |
5.7 Endereços de Cobrança
O endereço de cobrança é migrado separadamente do endereço principal. O script busca primeiro em endereco_cli com tipo 'COBRANÇA'; se não encontrar, usa o endereço do próprio cadastro do cliente.
Script: Operacional/03.04-Enderecos.sql
| Origem | ERP (enderecos) | Regra |
|---|---|---|
endereco_cli.cep ou clientes.cep | cep | Prioridade: endereco_cli |
endereco_cli.endereco ou clientes.endereco | logradouro / numero | Separados por função |
endereco_cli.bairro ou clientes.bairro | bairro | Fallback para clientes |
endereco_cli.cidade ou clientes.cidade | cidade / uf | Via maintenance.code_cities |
| (fixo) | tipo_endereco | 2 (Cobrança) |
endereco_cli.codcli | erp_code_pessoa | prefix('CLI_' + codcli) |
6. Contratos e Serviços — a transformação central
6.1 O codsercli: a chave do Integrator
No Integrator, servicos_cli é a tabela central de serviços contratados. Cada linha representa um plano assinado por um cliente e tem um codsercli único.
servicos_cli:
codsercli = ABC123 | codcli = 100001 | serviço = Internet 100MB Fibra
codsercli = DEF456 | codcli = 100001 | serviço = Telefone VoIP
O cliente 100001 tem 2 planos → 2 linhas em servicos_cli → 2 codsercli distintos.
6.2 Passo 1 — Cada codsercli vira 1 contrato
O script 05.01-Contratos.sql cria 1 contrato no conector para cada codsercli:
codsercli ABC123, codcli 100001 → contrato CNT_100001_ABC123
codsercli DEF456, codcli 100001 → contrato CNT_100001_DEF456
O codsercli também é gravado no campo Observações do contrato no formato:
codsercli.: (nro_plano) - ABC123
Isso garante o rastreamento da origem mesmo após o agrupamento.
Mapeamento de situação (codest → situacao):
| Código no Integrator | Descrição | Situação no ERP |
|---|---|---|
| Código do status "Habilitado" | Serviço habilitado (normal) | 1 — Normal |
| Habilitado + desconto >= 100% | Cortesia | 3 — Cortesia |
| Código de "Suspenso Débito" | Suspenso por inadimplência | 6 — Bloqueio Financeiro |
| Código de "Inativo" | Inativo | 5 — Suspenso |
| Código de "Cancelado" | Cancelado | 4 — Cancelado |
| Código de "Suspensão Temporária" | Suspenso a pedido temporariamente | 7 — Bloqueio Administrativo |
| Código de "Suspenso a Pedido" | Suspenso a pedido permanente | 5 — Suspenso |
| Demais códigos | Aguardando instalação / outros | 1 — Normal |
6.3 Passo 2 — Os itens do contrato
O script 05.02-ItensContrato.sql adiciona os itens a cada contrato. Um único codsercli pode gerar vários itens no ERP:
| Tipo de item | Origem no Integrator | Prefixo do item |
|---|---|---|
| Serviço principal | servicos_cli + servicos | CNTIT_{codsercli} |
| Serviço extra | servicos_cli_extras + servicos_extras | CNTIT_{codsercliex}_EXTRA |
| Ramal VoIP / Telefonia | terminal_voz | CNTIT_{codtvoz} |
| Pacote de TV | pacotes_sc + pacotes | CNTIT_{codpsc} |
Um plano de "Internet + Telefone + TV" no Integrator vira 1 contrato com 3 itens no ERP.
O script 05.03-ValoresDosContratos.sql aplica as regras de negócio e calcula o valor final de cada item (descontos, tolerâncias, valor mínimo, etc.).
6.4 Agrupamento de Contratos (Passo 3 — Script 11.01)
A pergunta central: "Esses planos saem no mesmo boleto?"
Se dois ou mais codsercli do mesmo cliente atenderem todos os critérios abaixo, eles são unificados em 1 único contrato no ERP:
| Critério | Campo no Integrator | Regra |
|---|---|---|
| Mesmo cliente | codcli | Deve ser igual |
| Mesma forma de cobrança | codcob | Deve ser igual |
| Mesmo dia de vencimento | vencimentos.dia | Deve ser igual |
| Pagamento mensal | tipo_pag | Não pode ser 'A' (anual) |
| Boleto junto | boleto_separado | Não pode ser 'S' |
| NF junto | nf_separado | Não pode ser 'S' |
| Tem valor | valor_plano | Deve ser > 0 |
| Situação compatível | codest | Normal, Cortesia ou Bloqueio Financeiro |
Atenção —
boleto_separadoenf_separado: no Integrator o valor padrão desses campos é'N'ou vazio/nulo. Apenas quando explicitamente marcado como'S'o plano é excluído do agrupamento. Campos nulos ou vazios são tratados como "pode agrupar".
Antes do agrupamento:
Contrato A → codsercli ABC123 | cliente 100001 | cobrança BB001 | vence dia 10
Contrato B → codsercli DEF456 | cliente 100001 | cobrança BB001 | vence dia 10
→ Mesma combinação cliente + cobrança + vencimento → AGRUPAM
Depois do agrupamento:
Contrato UNIFICADO | cliente 100001 | NOVO erp_code (diferente de todos os originais)
Item 1: Internet 100MB Fibra (veio do codsercli ABC123)
Item 2: Telefone VoIP (veio do codsercli DEF456)
O cliente recebe 1 único boleto com ambos os serviços.
O que acontece tecnicamente no agrupamento
O script 11.01-Agrupar_Planos.sql executa os seguintes passos internamente:
- Identifica todos os grupos de contratos que compartilham a mesma chave
(codcli + codcob + dia_vencimento + situacao) - Cria a tabela
connector.migraco_integrator_de_para_contratosmapeando cadaerp_codeoriginal para o novo código unificado - Atualiza todas as tabelas do connector que referenciam contratos (faturas, títulos, conexões, encaminhamentos etc.) para apontar para o novo código
- De todos os contratos que seriam agrupados, apenas 1 sobrevive fisicamente — o que tem o maior
idinterno. Ele recebe umerp_codenovo, diferente de todos oscodserclioriginais - Os demais contratos são deletados do connector
- O valor de desconto total é somado no contrato sobrevivente
Consequência crítica para rastreamento: após o agrupamento, o campo Observações do contrato unificado contém apenas o
codserclido contrato eleito como principal (maioridinterno). Os demaiscodserclido grupo não ficam registrados nas Observações. Para rastrear todos os codsercli que foram agrupados, use a tabelaconnector.migraco_integrator_de_para_contratos— veja seção 6.6.
O que NÃO agrupa (permanece como contrato separado no ERP):
| Situação | Motivo |
|---|---|
boleto_separado = 'S' | Boleto explicitamente separado |
nf_separado = 'S' | NF explicitamente separada |
tipo_pag = 'A' | Contrato anual — não entra no agrupamento mensal |
| Cancelado | Situação = Cancelado não é agrupável |
| Inativo / Suspenso / Suspensão Temporária / Bloqueio Adm. | Situações incompatíveis com agrupamento |
valor_plano = 0 | Planos sem valor financeiro não agrupam |
| Único plano com aquela combinação | Não há com quem agrupar |
6.5 Histórico de Eventos do Contrato
O histórico de movimentações do plano no Integrator (historico_cliente) é migrado como eventos do contrato no ERP.
Script: Operacional/05.04-EventosContratos.sql
Integrator (historico_cliente) | ERP (contratos_eventos) | Regra |
|---|---|---|
codcli + codsercli + sequência | erp_code | prefix('HIS_CNT_' + ...) |
codcli + codsercli | erp_code_contrato | prefix('CNT_' + codcli + '_' + codsercli) |
data_alt | data_evento | Cast DATE |
desc_alt / obs | descricao | Texto do histórico |
| (fixo) | tipo_evento | 'MIG_0999' (identificador de migração) |
6.6 Como rastrear um codsercli no ERP após a migração
Após a migração e o agrupamento, há 3 formas de localizar a origem de um contrato no ERP:
Método 1 — Campo Observações do contrato
Durante o Passo 1 (script 05.01-Contratos.sql), o codsercli é gravado nas Observações:
codsercli.: (nro_plano) - ABC123
Este campo sobrevive ao agrupamento no contrato eleito como principal (maior id). Os demais codsercli do grupo não aparecem nas Observações do contrato unificado.
Método 2 — Tabela DE/PARA de contratos
A tabela connector.migraco_integrator_de_para_contratos é criada pelo script 11.01 e mapeia cada erp_code original para o código do contrato destino no ERP:
SELECT * FROM connector.migraco_integrator_de_para_contratos
WHERE erp_code_origem = 'Integrator_CNT_100001_ABC123';
-- retorna o erp_code do contrato unificado onde ABC123 foi absorvido
Esta é a única forma de rastrear codsercli que não ficaram no campo Observações.
Método 3 — Número do contrato no ERP
O campo numero_contrato no ERP é preenchido com codcli-nro_plano do legado:
100001-1 → primeiro plano do cliente 100001
100001-2 → segundo plano do cliente 100001
Útil para localizar o contrato diretamente na tela do ERP sem precisar do erp_code.
6.7 Ajustes Finais que afetam contratos
Após o agrupamento, dois scripts de Ajustes Finais complementam as regras de contrato:
| Script | Pasta | O que faz |
|---|---|---|
03.02-Contratos_Anuais.sql | Ajustes_Finais_Integrator/ | Ajusta a periodicidade dos contratos com tipo_pag = 'A' para anual no ERP |
03.01-Ajustar_Agrupador_Fat_para_CIS.sql | Ajustes_Finais_Integrator/ | Muda o agrupador de faturamento para CIS nos contratos com imprime_nf = 'N' |
7. Conexões — a grande consolidação de rede
Esta é a transformação mais visível para quem vem do Integrator: dados que ficavam em 10 ou mais tabelas chegam ao ERP como 1 único registro de Conexão.
No Integrator — informações fragmentadas
Para saber "como esse cliente está conectado", era necessário consultar:
servicos_cli → qual o codsercli do cliente
login_radius → login e senha PPPoE
ip → endereço IP, MAC address, tipo de interface
interfaces_radios → tipo de conexão (PPPoE, DHCP, Hotspot)
radios → qual rádio AP conecta o cliente
nas_radius → qual NAS/RADIUS gerencia a autenticação
onu_fibra → número de série da ONU, login/senha de gestão, SSID Wi-Fi
olt_fibra → qual OLT atende aquela ONU
pon_slot → porta PON dentro da OLT
slot_olt → slot da OLT
condominios → se a conexão é em um condomínio
endereco_cli → endereço de instalação
No ERP — 1 registro unificado
Tudo isso se torna 1 registro na tabela de Conexões por cliente.
Script: Operacional/08.07-Conexoes.sql
Dois tipos de conexão migrados:
| Tipo | Identificação no Integrator | Prefixo |
|---|---|---|
| PPPoE / Hotspot | Tem registro em login_radius | CNX_{codlrad} |
| IP Fixo sem PPPoE | Tem IP em ip mas sem login PPPoE | CNX_{codsercli} |
Pontos de Acesso (OLTs e APs):
olt_fibra→ Ponto de Acesso tipo OLT (prefixoOLT_)radios/nas_radius→ Concentrador / Ponto de Acesso tipo RádioMIG_999→ Ponto de acesso padrão criado para conexões sem OLT/AP identificado
8. Financeiro — faturas, títulos e recebimentos
8.1 Estrutura do Financeiro no Integrator
O financeiro de recebimento opera em dois níveis no Integrator:
faturas → boleto/agrupador: 1 fatura pode conter vários títulos
contas_rec → título individual a receber por cliente (codcrec)
detalhe_faturas → de-para entre faturas e contas_rec (N:N)
descontos → descontos aplicados por codcrec
juros_contas_rec → juros e multa cobrados por codcrec
razao → registro contábil vinculando contas_rec/contas_pag a mov_bancario
mov_bancario → movimentação bancária real (data e banco do recebimento/pagamento)
O recebimento de um boleto fica registrado tanto na faturas (status Q/B) quanto na contas_rec (data_bai preenchida, valor_pag >= valor_lan). São dois níveis distintos que o ERP também preserva.
8.2 Como os dados chegam ao ERP
| Integrator (fonte) | Connector | ERP Voalle |
|---|---|---|
faturas + contas_rec | connector.faturas | Fatura (boleto agrupador) |
contas_rec | connector.contas_receber | Título a Receber |
faturas (não excluídas) + contas_rec + mov_bancario + descontos + juros | connector.faturas_recebidas | Recebimento no nível do boleto |
contas_rec onde data_bai IS NOT NULL e valor_pag >= valor_lan + mov_bancario + descontos | connector.contas_recebidas | Recebimento no nível do título |
contas_pag | connector.contas_pagar | Título a Pagar |
contas_pag onde valor_pag > 0 + razao + mov_bancario | connector.contas_pagas | Pagamento realizado |
razao + mov_bancario | connector.lancamento_caixa_banco | Lançamento Caixa/Banco |
Por que dois registros de recebimento? O Integrator registra a baixa no nível do boleto (
faturas) e no nível do título (contas_rec). O ERP preserva essa separação:faturas_recebidasé o recebimento do boleto como documento;contas_recebidasé o recebimento de cada título individual que compõe aquele boleto.
8.3 Status das Faturas — o que é migrado
| Status no Integrator | Significado | Migrado? |
|---|---|---|
E, P | Pendente de envio ao banco | Sim (em aberto) |
N | Enviado ao banco (remessa) | Sim (em remessa) |
I, M | Enviado ao cliente | Sim (em aberto) |
B, X | Baixa em retorno / remessa de baixa | Sim |
Q | Conta quitada | Sim (baixado/liquidado) |
D | Excluída | NÃO |
R | Com rejeição bancária | Sim (em aberto) |
G | Enviado ao gateway | Sim (em aberto) |
A | Débito não acatado | Sim (em aberto) |
Faturas com parcelamento = 'S' (renegociações/parcelamentos) são migradas separadamente com tratamento específico.
9. Patrimônios (Equipamentos)
Equipamentos do legado (patrimonio) são migrados como Patrimônios no ERP. O script migra dois grupos: equipamentos alocados a clientes e equipamentos disponíveis em estoque.
Script: Operacional/09.02_Patrimonios.sql
| Integrator | ERP (patrimonios) | Regra |
|---|---|---|
patrimonio.codpat | erp_code | prefix('PAT_' + codpat) |
produtos.codprod | erp_code_produto | prefix('PROD_' + codprod) |
produtos.descri_prod | descricao | Direto |
patrimonio.nro_serie | numero_serie | Direto |
patrimonio.mac | mac | Direto |
patrimonio.obs | observacoes | Direto |
servicos_cli.codcli | erp_code_pessoa | prefix('CLI_' + codcli) — se alocado |
servicos_cli.codsercli | erp_code_contrato | prefix('CNT_' + codcli + '_' + codsercli) |
movimentos_pat.data_mov | data_alocacao | Cast DATE |
| (sem cliente) | (disponível) | Alocado como disponível em estoque |
10. Atendimento ao Cliente
10.1 Solicitações (Ordens de Serviço e Ocorrências)
No Integrator, o atendimento ao cliente é dividido em ocorrencias (chamados gerais) e ordem_servico (ordens de serviço técnicas). No ERP viram Solicitações Vinculadas.
Script: Operacional/10.05-Solicitacoes_vinculos.sql
| Integrator | ERP (solicitacoes_vinculadas) | Regra |
|---|---|---|
ocorrencias.codoco | erp_code | prefix('AT_' + codoco + 'OS_' + codords) |
ocorrencias.codcli | erp_code_pessoa | prefix('CLI_' + codcli) |
ordem_servico.codords | erp_code_solicitacao | Referencia a OS |
ocorrencias.data_oco | data_abertura | Cast DATE |
ocorrencias.status | status | Mapeado |
10.2 Relatos / Histórico de Atendimento
Todo o histórico de comunicação e notas de atendimento é migrado como Relatos. Seis origens diferentes alimentam essa entidade:
Script: Operacional/10.06-Relatos.sql
| Origem no Integrator | Prefixo do erp_code | Conteúdo |
|---|---|---|
comentarios | REL_C_ | Comentários adicionados às ocorrências |
historico_ocorrencias | REL_H_ | Histórico de alterações das ocorrências |
tarefas_oco | REL_T_ | Tarefas associadas às ocorrências |
ordem_servico.obs_ret | REL_O_ | Observações de retorno das OS |
ocorrencias.descricao | REL_AT_O_ | Descrição original da ocorrência |
encaminhamentos | REL_ENC_ | Encaminhamentos como relatos |
10.3 Encaminhamentos
Os encaminhamentos internos de ocorrências são migrados como Encaminhamentos no ERP.
Script: Operacional/10.07-Encaminhamentos.sql
| Integrator | ERP (encaminhamentos) | Regra |
|---|---|---|
encaminhamentos.codenc | erp_code | prefix('ENC_' + codenc) |
ocorrencias.codoco | erp_code_solicitacao | Referencia a ocorrência |
usuarios.codusu | erp_code_responsavel | prefix('USU_' + codusu) |
cargos.nome_cargo | cargo_responsavel | Descrição do cargo |
encaminhamentos.data_enc | data_encaminhamento | Cast DATE |
encaminhamentos.obs | descricao | Texto do encaminhamento |
11. O que NÃO é migrado
| Entidade | Motivo |
|---|---|
fotografias_local | Script 99_Anexos.sql completamente comentado — não implementado |
arquivos (anexos) | Mesmo motivo acima |
Parcelamentos/renegociações (parcelamento = 'S') | Tratamento especial — não seguem o fluxo padrão de faturas recebidas |
Faturas excluídas (status = 'D') | Não há informação útil a migrar |
| Contratos anuais no agrupamento | tipo_pag = 'A' são excluídos do agrupamento (ficam como contratos separados) |
12. Rastreamento — como encontrar qualquer dado após a migração
Cada registro migrado ganha um código de rastreamento composto por um prefixo de origem + o código original do legado.
| O que procurar | No Integrator | Como encontrar no ERP |
|---|---|---|
| Um cliente | codcli = 100001 | Pessoa com código de origem CLI_100001 |
| Um fornecedor | codfor = 50 | Pessoa com código FOR_50 |
| Um plano / contrato | codsercli = ABC123 | Contrato com codsercli.: ... - ABC123 em Observações |
| Uma empresa / filial | codemp = '01' | Local com código CP_01 |
| Uma forma de cobrança | codcob = 'BB01' | Tipo de Cobrança FCT_BB01 |
| Uma fatura (boleto) | codfat = 999 | Fatura com código FAT_999 |
| Um título a receber | codcrec = 555 | Conta a Receber TIT_555 |
| Um título pago | codcrec = 555 | Conta Recebida TIT_REC_555 |
| Uma conta a pagar | codcpag = 88 | Conta a Pagar TIT_88 |
| Uma conexão PPPoE | codlrad = X | Conexão CNX_X |
| Uma conexão IP fixo | codsercli = ABC123 | Conexão CNX_ABC123 |
| Uma OLT | codolt = '01' | Ponto de Acesso OLT_01 |
| Um condomínio | codcon = '10' | Condomínio CND10 |
| Um patrimônio | codpat = 'EQP01' | Patrimônio PAT_EQP01 |
| Uma ocorrência / OS | codoco = 100 | Solicitação AT_100_OS_... |
Para contratos agrupados: após o agrupamento (script
11.01), os erp_codes individuais (CNT_codcli_codsercli) são substituídos por um novo código unificado. O rastreamento só é possível pelo campo Observações do contrato. Consulte também a tabelaconnector.migraco_integrator_de_para_contratos.
13. Índice de Scripts por Ordem de Execução
Ajustes Iniciais
Scripts 02.XX — limpeza de dados do legado (TRIM em todas as tabelas).
Cadastros
| Script | O que migra |
|---|---|
01.01-Locais.sql | Empresas → Locais de Faturamento |
02.02-TiposCobranca.sql | Formas de cobrança + bancos → Tipos de Cobrança |
03.01-GrupoPessoas.sql | Grupos de clientes → Grupos de Pessoas |
04.01-GruposServicos.sql | Grupos de serviços |
04.04-RegrasFaturamento.sql | Ciclos e regras de faturamento |
06.01-CentroDeResultados.sql | Centro de resultados |
08.02-GrupoIPs.sql | Grupos de IPs (3 grupos fixos) |
08.03-IPs.sql | IPs dos clientes e equipamentos (5 origens) |
08.04-Concentradores.sql | Concentradores / NAS / Rádios |
08.05-PontodeAcesso.sql | OLTs → Pontos de Acesso |
08.07-Condominios.sql | Condomínios |
Operacional
| Script | O que migra |
|---|---|
03.02-Pessoas.sql | Clientes, fornecedores, contatos, prospects, usuários → Pessoas |
03.03-Comunicacoes.sql | Emails e telefones adicionais → Comunicações |
03.04-Enderecos.sql | Endereços de cobrança |
05.01-Contratos.sql | servicos_cli → Contratos (1 por codsercli) |
05.02-ItensContrato.sql | Itens de cada contrato (serviço principal + extras + VoIP + TV) |
05.03-ValoresDosContratos.sql | Valores e regras de negócio dos itens |
05.04-EventosContratos.sql | Histórico de situação dos planos → Eventos do Contrato |
06.01-Faturas.sql | Faturas (boletos — cabeçalho) |
06.02-FaturasRecebidas.sql | Faturas recebidas (boletos pagos) |
06.03-ContasReceber.sql | Títulos a receber (por codcrec) |
06.04-ContasRecebidas.sql | Títulos recebidos (quitados) |
06.05-Contas_Pagar.sql | Contas a pagar |
06.06-Contas_Pagas.sql | Contas pagas |
07.03-LancamentosCaixaBanco.sql | Lançamentos de caixa e banco |
08.07-Conexoes.sql | Conexões dos clientes (dados de rede unificados) |
09.02_Patrimonios.sql | Patrimônios / equipamentos |
10.05-Solicitacoes_vinculos.sql | Ocorrências + OS → Solicitações Vinculadas |
10.06-Relatos.sql | Histórico de atendimento → Relatos (6 origens) |
10.07-Encaminhamentos.sql | Encaminhamentos de atendimento |
11.01-Agrupar_Planos.sql | Agrupamento de contratos (mesmo cliente/cobrança/vencimento) |
99_Anexos.sql | Fotos e arquivos — NÃO MIGRADO (comentado) |
13.1 — Ajustes Finais Integrator (Pós-Consolidação)
Esta etapa é executada depois de toda a consolidação padrão — quando os dados já estão no ERP Voalle. São correções e complementos exclusivos para migrações do Integrator que resolvem diferenças estruturais entre os dois sistemas: coisas que o fluxo genérico não cobre porque só fazem sentido no contexto do Integrator.
Todos os scripts verificam automaticamente se a base é uma migração Integrator (via tabela
connector.prefixos_migrados). Se não for Integrator, o script é ignorado sem executar nada.
Visão geral dos scripts ativos:
| Script | Área | O que resolve |
|---|---|---|
01.03-Ajuste_Tabela_ICMS_Servicos.sql | Fiscal | Alíquotas de ICMS soltas no legado → tabela de alíquotas do ERP |
01.04-Ajusta_Dados_Venda_Produtos.sql | Fiscal | Dados fiscais padrão para produtos vendáveis sem ICMS |
01.05-Ajuste_Naturezas_Fin.sql | Financeiro | Hierarquia (parent_id) das naturezas financeiras |
01.06-DePara_Cargos_Ocupacionais.sql | Pessoas | Cargo do contato no legado → Função CRM no ERP |
01.07-Importa_Servico_e_Modelos_de_Email.sql | Servidores SMTP e templates de e-mail | |
01.09-Ajuste_Series_por_Local.sql | Fiscal | Série fiscal própria por filial |
02.01-Unificacao_Contatos.sql | Pessoas | Pessoas sem CPF/CNPJ duplicadas com quem já existe no ERP |
03.01_Ajustar_Agrupador_Fat_para_CIS.sql | Contratos | imprime_nf = 'N' → agrupador CIS |
03.02-Contratos_Anuais.sql | Contratos | tipo_pag = 'A' → periodicidade anual no ERP |
04.01_Migrar_Confg_Adicionais_PA.sql | Rede | Configuração de slots/portas das OLTs |
05.01_Ajustar_Desconto_Adimplencia_em_Faturas.sql | Financeiro | Desconto por adimplência nas faturas |
05.02_Refazer_titulos.sql | Financeiro | Recriar títulos desatualizados após mudança de agrupador |
07.01_Inativar_Matrizes_Migradas.sql | Atendimento | Inativar matrizes do legado após migração |
Scripts comentados (não executam):
01.01,01.02,01.08,02.02,07.02— preservados para referência futura ou restritos a ambientes específicos.
01.03 — Alíquotas de ICMS nos Serviços
Por que existe: O Integrator guarda a alíquota de ICMS como um número solto em cada serviço (ex: 7.00, 12.00, 0.00). O ERP Voalle não aceita alíquotas soltas — cada serviço precisa estar vinculado a um registro na tabela de alíquotas cadastradas. Sem esse ajuste, os serviços migrados ficam sem classificação fiscal de ICMS.
O que faz:
- Lê todas as alíquotas distintas presentes nos serviços migrados do legado
- Cria um registro na tabela de alíquotas do ERP para cada valor novo encontrado (ex: cria "Outros (Regime Normal) — 7%")
- Vincula cada serviço/produto migrado à alíquota correspondente
- Serviços sem alíquota no legado recebem o id=4 como padrão
Tabelas afetadas no ERP:
erp.service_product_icms_aliquots— novas alíquotas inseridaserp.service_products— camposervice_product_icms_aliquot_idatualizado em todos os serviços migrados
01.04 — Dados Fiscais de Venda dos Produtos
Por que existe: Produtos físicos que são "vendáveis" (podem ser vendidos avulso, não apenas como item de contrato) precisam ter dados fiscais completos para emissão de NF-e. O Integrator não exige esse nível de detalhe. Sem esse script, produtos migrados sem ICMS causariam erro ao tentar emitir NF.
O que faz: Para produtos vendáveis sem ICMS preenchido após a migração, aplica valores fiscais padrão de segurança:
| Campo | Valor aplicado |
|---|---|
| Alíquota ICMS | Regime Normal — Isenta |
| CFOP | 5102 (Venda de mercadoria adquirida de terceiros) |
| Origem do produto | Nacional com mais de 70% de importação |
| PIS | Código 99 (Outras Operações) |
| COFINS | Código 99 (Outras Operações) |
Tabelas afetadas no ERP:
erp.service_products— campos fiscais atualizados apenas em produtos vendáveis sem ICMS preenchido
01.05 — Hierarquia das Naturezas Financeiras
Por que existe: O Integrator organiza as naturezas financeiras (plano de contas) em uma árvore hierárquica com códigos no formato 1.01.02 — onde 1.01.02 é filha de 1.01, que é filha de 1. Após a carga, o campo parent_id que representa essa hierarquia pode não estar preenchido, deixando todas as naturezas no mesmo nível sem estrutura de árvore.
O que faz: Reconstrói automaticamente a hierarquia lendo o código de cada natureza e preenchendo o parent_id correto:
Código "1" → parent_id = NULL (raiz)
Código "1.01" → parent_id = natureza com código "1"
Código "1.01.02" → parent_id = natureza com código "1.01"
Tabelas afetadas no ERP:
erp.financers_natures— campoparent_idreconstruído para toda a árvore de naturezas migradasmaintenance.financers_natures_vinculate_parent_id— tabela temporária de apoio (removida ao final)
01.06 — DE/PARA de Cargos para Função CRM
Por que existe: No Integrator, os contatos de clientes têm um campo de tipo/cargo com valores como FINANCEIRO, TECNICO, COMERCIAL, ADMINISTRA. No ERP Voalle esse conceito se chama "Função CRM" e usa uma codificação própria. Sem esse ajuste, todos os contatos migrados ficam sem função definida.
O que faz: Aplica o mapeamento abaixo em todos os contatos migrados:
| Cargo no Integrator | Função CRM no ERP | Código |
|---|---|---|
FINANCEIRO | Financeiro | 1.03 |
ADMINISTRA | Administração | 1.51 |
TECNICO | Técnico | 1.34 |
COMERCIAL | Comercial | 1.53 |
Tabelas afetadas no ERP:
erp.people_contacts— campocrm_function_idatualizado nos contatos migrados
01.07 — Servidores SMTP e Templates de E-mail
Por que existe: O Integrator tem seu próprio módulo de disparo de e-mail com servidores SMTP e templates para boletos, avisos de bloqueio etc. Esses dados precisam migrar para que o ERP continue enviando e-mails pelos mesmos servidores e com os mesmos templates — evitando que o cliente precise recadastrar tudo manualmente.
O que faz:
- Servidores SMTP: importa cada servidor de e-mail do legado (remetente, login, senha, endereço do servidor, porta — fixada em 587)
- Templates de e-mail: importa cada modelo (assunto, conteúdo, remetente) vinculando ao servidor correspondente
Não duplica: verifica existência antes de inserir.
Tabelas afetadas no ERP:
erp.email_services— servidores SMTP do legadoerp.email_models— templates de e-mail do legado
01.09 — Séries Fiscais por Filial
Por que existe: Quando o cliente tem múltiplas filiais (locais de faturamento), cada filial precisa ter sua própria série fiscal de NF para que a numeração seja independente por CNPJ emissor. O processo padrão de migração cria as séries de forma genérica — este script garante a correta separação por local.
O que faz:
- Identifica todas as combinações de local + operação financeira + série fiscal existentes
- Renomeia séries genéricas adicionando o código do local (ex:
NF-001→NF-001 [FIL01]) - Cria novas séries fiscais para locais que ainda não têm série própria (cópia da série original)
- Cria o sequencial de numeração para as novas séries
- Corrige os vínculos entre operações financeiras e séries — garante que cada local use a série do seu próprio local
- Remove vínculos incorretos (operação de um local apontando para série de outro local)
Tabelas afetadas no ERP:
erp.invoice_series— séries renomeadas e novas séries por local inseridaserp.invoice_serie_sequences— sequenciais criados para novas sérieserp.financial_operations_company_places— vínculos operação + local + série corrigidos
02.01 — Unificação de Pessoas Sem CPF/CNPJ Duplicadas
Por que existe: É muito comum no Integrator que clientes não tenham CPF/CNPJ cadastrado. Se essa pessoa já existe no ERP Voalle com o mesmo nome e com CPF/CNPJ preenchido (cadastro anterior à migração), o processo de migração gera um registro duplicado — a mesma pessoa aparece duas vezes no ERP. Este script resolve isso de forma segura e com auditoria completa.
O que faz:
- Identifica pessoas migradas sem documento que têm um "gêmeo" no ERP com mesmo nome e com CPF/CNPJ
- Valida que a pessoa duplicada não tem contratos ativos, títulos a receber nem contas a pagar (segurança para não perder dados)
- Marca a pessoa duplicada como deletada, registrando o motivo e o id da pessoa original nas observações
- Redireciona todos os vínculos de contato (
people_contacts) para a pessoa original (com documento) - Remove contatos que ficariam duplicados após a unificação
Este script não é destrutivo — preserva histórico completo em tabelas de auditoria no schema
maintenance. Toda alteração fica registrada e pode ser rastreada.
Tabelas afetadas no ERP:
erp.people—deleted = TRUEnas pessoas duplicadas sem documentoerp.people_contacts— redirecionados para a pessoa com documentomaintenance.migracao_itengrator_unificacao_pessoas_sem_documento— histórico de auditoriamaintenance.migracao_itengrator_unificacao_pessoas_sem_documento_bkp_people_contacts— backup dos contatos
03.01 — Agrupador CIS para imprime_nf = 'N'
Por que existe: No Integrator, o campo imprime_nf = 'N' em um serviço significa que aquele contrato não deve gerar Nota Fiscal — o faturamento vai para o agrupador CIS (Comunicação de Informações de Serviços) em vez do agrupador padrão com emissão de NF. A migração padrão não distingue isso automaticamente: todos os contratos chegam com o agrupador padrão.
O que faz:
- Busca no legado todos os serviços com
imprime_nf = 'N' - Localiza os contratos correspondentes no ERP — tanto pelo
erp_codedireto quanto pela tabela de DE/PARA de contratos (connector.migraco_integrator_de_para_contratos), cobrindo também os contratos que foram agrupados - Atualiza o agrupador de faturamento (
contract_configuration_billings) para a operação CIS - Atualiza também a capa do contrato (
contracts.operation_id) - Registra um evento de auditoria no contrato documentando a alteração
Tabelas afetadas no ERP:
erp.contract_configuration_billings—financial_operation_idalterado para CISerp.contracts—operation_idatualizadoerp.contract_events— evento de auditoria inseridomaintenance.migracao_integrator_depara_contract_configuration_billings_imprime_nf_N— histórico permanente
03.02 — Contratos Anuais (tipo_pag = 'A')
Por que existe: No Integrator, planos com tipo_pag = 'A' são cobrados anualmente, não mensalmente. A migração padrão cria todos os contratos como mensais. Sem este ajuste, o ERP tentaria gerar faturas mensais para contratos que deveriam ser faturados uma vez ao ano.
O que faz:
- Busca no legado todos os serviços com
tipo_pag = 'A' - Localiza os contratos correspondentes no ERP
- Atualiza o tipo de faturamento para anual (
billing_type = 2) e o tipo de fatura para avulsa (invoice_type = 1) - Remove os meses de faturamento mensal eventualmente cadastrados
- Insere o mês correto de faturamento anual conforme o mês de vencimento registrado no legado
Tabelas afetadas no ERP:
erp.contracts— camposbilling_typeeinvoice_typeerp.contract_billing_month— mês de faturamento anual corrigidomaintenance.migracao_integrator_planos_anuais+migracao_integrator_planos_anuais_depara— histórico
04.01 — Configuração de Slots e Portas das OLTs
Por que existe: O Integrator armazena a configuração técnica detalhada das OLTs (equipamentos de fibra óptica): quais slots existem, quantas portas PON cada slot tem, qual VLAN de dados e de voz está configurada em cada porta, gemport etc. Essas informações não entram no fluxo padrão de migração de conexões — precisam de um script específico.
O que faz: Para cada OLT migrada, monta um JSON estruturado com a configuração completa de cada slot e porta e grava no ponto de acesso correspondente no ERP, incluindo o número total de slots e portas.
Se ocorrer qualquer erro (ex: tabela legada inexistente na versão do cliente), o script registra uma notificação mas não interrompe a migração.
Tabelas afetadas no ERP:
erp.authentication_access_points— camposconfiguration(JSON),slots_number,ports_numbermaintenance.migracao_integrator_authentication_access_points_configuration— histórico
05.01 — Desconto de Adimplência nas Faturas
Por que existe: O Integrator tem um módulo de desconto por adimplência — um desconto automático para clientes que pagam em dia. Esse desconto fica registrado no legado e precisa ser transferido para as faturas correspondentes no ERP, garantindo que o valor apresentado ao cliente esteja correto.
O que faz: Busca no legado os descontos vinculados a cada fatura e atualiza os campos de desconto por adimplência na fatura do ERP, marcando que o desconto deve ser aplicado conforme configuração do contrato.
Tabelas afetadas no ERP:
erp.financial_receivable_titles— camposcontract_discount_valueecontract_discount_use_contractnas faturas (p_is_receivable = TRUE)
05.02 — Recriar Títulos das Faturas
Por que existe: Uma fatura (FAT) no ERP pode ter vários títulos abaixo dela — um por agrupador de faturamento do contrato. O script 03.01 muda o agrupador de alguns contratos para CIS depois de as faturas já terem sido criadas. Isso deixa os títulos dessas faturas apontando para o agrupador antigo — desatualizados e incorretos para a geração de cobrança.
O que faz:
- Identifica todas as faturas migradas cujos títulos estão desatualizados (agrupador mudou após a criação)
- Salva o histórico completo dos títulos antigos como ocorrência de auditoria na própria fatura
- Deleta (soft-delete) os títulos desatualizados
- Recria os títulos distribuindo os valores proporcionalmente entre os agrupadores de faturamento atuais
- Ajusta arredondamentos de centavos para garantir que a soma dos títulos bata com o valor total da fatura
- Se uma fatura ficar com valor inconsistente após a recriação, desfaz as alterações nela individualmente (rollback por fatura) e registra o caso para revisão manual
- Registra eventos de auditoria em todas as faturas e títulos processados
Este é o script de maior impacto desta etapa — toca diretamente em dados financeiros de cobrança. Por isso valida consistência antes e depois de cada fatura e tem mecanismo de rollback individual. Faturas não alteradas por inconsistência ficam registradas em
maintenance.migracao_integrator_undo_receivable_titlespara revisão manual.
Tabelas afetadas no ERP:
erp.financial_receivable_titles— títulos deletados e recriadoserp.financial_receivable_title_occurrences— ocorrências de histórico e evento de recriação inseridoserp.financial_receivable_title_hashs— hashes dos novos títulosmaintenance.migracao_integrator_refazer_titulos_abaixo_das_faturas— backup das faturas processadasmaintenance.migracao_integrator_undo_receivable_titles— faturas com inconsistência (não alteradas)
07.01 — Inativar Matrizes de Atendimento Migradas
Por que existe: As matrizes de atendimento do Integrator (categorias de abertura de chamado) são migradas para o ERP para preservar o histórico das solicitações. Porém, após a migração, essas matrizes do legado devem ser inativadas para que a interface do ERP exiba apenas as matrizes ativas do novo ambiente, sem poluição com registros obsoletos que não fazem mais parte do processo do cliente.
O que faz: Localiza todas as matrizes que vieram da migração (identificadas pelo erp_code com prefixo do cliente) e marca como deletadas.
Tabelas afetadas no ERP:
erp.solicitation_category_matrices—deleted = TRUEnas matrizes migradas do legado
14. DE/PARA Técnico — Mapeamento Coluna a Coluna
Esta seção detalha o mapeamento exato entre as colunas do Integrator, a camada intermediária (connector) e o destino final no ERP Voalle. O campo Coluna ERP Voalle indica a tabela e coluna exata onde o dado persiste após a consolidação.
14.1 Empresas → Locais
Fonte: legado.empresas Destino: connector.locais → erp.companies_places Script: Cadastros/01.01-Locais.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
codemp | erp_code | erp.companies_places.erp_code | prefix('CP_' + codemp) |
nome_emp | razao_social | erp.companies_places.description | Direto |
nome_fan | nome_fantasia | erp.companies_places.name_2 | Se vazio, usa nome_emp |
cnpj | documento | erp.companies_places.tx_id | Remove formatação (só dígitos) |
icm | inscricao_estadual | erp.companies_places.state_registration | NULLIF se vazio |
cidade (código) | cidade / uf_estado | erp.companies_places.city_code, .city, .state | Via maintenance.code_cities |
crt = '1' | optante_simples | erp.companies_places.simple_opting | TRUE se crt = '1', senão FALSE |
14.2 Grupos de Pessoas
Fonte: legado.grupo_clientes Destino: connector.grupos_pessoas → erp.people_groups Script: Cadastros/03.01-GrupoPessoas.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
codgrupo | erp_code | erp.people_groups.erp_code | prefix('PG_' + codgrupo) |
nome_grupo | descricao | erp.people_groups.title | Direto |
14.3 Grupos de Serviços
Fonte: legado.grupos_servicos Destino: connector.grupos_servicos → erp.service_product_groups Script: Cadastros/04.01-GruposServicos.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
codgrupo | erp_code | erp.service_product_groups.erp_code | prefix('SPG_' + codgrupo) |
nome_grupo | descricao | erp.service_product_groups.title | Direto |
14.4 Tipos de Cobrança
Fonte: legado.forma_cobrancas + legado.bancos + legado.conf_boletos Destino: connector.tipos_cobranca → erp.financial_collection_types Script: Cadastros/02.02-TiposCobranca.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
forma_cobrancas.codcob | erp_code | erp.financial_collection_types.erp_code | prefix('FCT_' + codcob) |
forma_cobrancas.desc_cob | descricao | erp.financial_collection_types.title | Direto |
bancos.codban | erp_code_caixas_contas | erp.financial_collection_types.bank_account_id | prefix('BA_' + codban) |
forma_cobrancas.tipo = 'carne' | forma_cobranca | erp.financial_collection_types.scriptural_billing | 3 (Carnê) |
forma_cobrancas.tipo = 'C' | forma_cobranca | erp.financial_collection_types.scriptural_billing | 5 (Cartão) |
forma_cobrancas.tipo = 'N' | forma_cobranca | erp.financial_collection_types.scriptural_billing | 1 (Normal/Boleto) |
forma_cobrancas.tipo = 'D' | forma_cobranca | erp.financial_collection_types.scriptural_billing | 2 (Débito Automático) |
conf_boletos.juros | juros | erp.financial_collection_types.interest | Percentual direto |
conf_boletos.multa | multa | erp.financial_collection_types.fine | Percentual direto |
conf_boletos.desconto | desconto | erp.financial_collection_types.discount_value | Percentual direto |
conf_boletos.diasprotesto | dias_protesto | erp.financial_collection_types.protest_days | Direto |
14.5 Grupos de IPs (dados fixos)
Fonte: Nenhuma — inseridos estaticamente Destino: connector.grupos_ips → erp.authentication_ip_groups Script: Cadastros/08.02-GrupoIPs.sql
| erp_code | Descrição | Finalidade |
|---|---|---|
prefix('IP_FIXO') | IPs Fixos de Clientes | IPs alocados diretamente a clientes |
prefix('EQP') | Equipamentos de Rede | IPs de NAS, AP, OLT, RADIUS |
prefix('POOL') | Pool Dinâmico | IPs distribuídos via DHCP |
14.6 IPs (5 origens)
Destino: connector.ips → erp.authentication_ips Script: Cadastros/08.03-IPs.sql
| Origem | erp_code | erp_code_grupo_ip | Campos migrados |
|---|---|---|---|
ip.nro_ip (IP de cliente) | prefix('IP_' + nro_ip) | prefix('IP_FIXO') | nro_ip, mascara, gateway, dns |
radios.ip onde nas = 'S' (rádio NAS) | prefix('IP_IPNAS_' + ip) | prefix('EQP') | ip do rádio NAS |
radios.ip onde nas = 'N' (access point) | prefix('IPAP_' + ip) | prefix('EQP') | ip do AP |
olt_fibra.ip (IP da OLT) | prefix('IP_' + ip) | prefix('EQP') | ip da OLT |
nas_radius.host (RADIUS) | prefix('IP_RAD_' + host) | prefix('EQP') | host/IP do RADIUS |
Mapeamento de colunas (erp.authentication_ips):
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
ip.nro_ip / radios.ip / etc. | endereco_ip | erp.authentication_ips.ip | Direto |
ip.mascara / etc. | mascara | erp.authentication_ips.netmask | Direto |
| (fixo/derivado) | erp_code_grupo_ip | erp.authentication_ips.authentication_ip_group_id | Referência ao grupo |
ip.nro_ip | erp_code | erp.authentication_ips.erp_code | prefix('IP_' + nro_ip) |
ip.tipo | tipo | erp.authentication_ips.type | Direto |
ip.motivo_reserva | motivo_reserva | erp.authentication_ips.description | Direto |
ip.privado_publico | privado_publico | erp.authentication_ips.priority | 1=público, 2=privado |
14.7 Concentradores
Fonte: legado.nas_radius + legado.radios Destino: connector.concentradores → erp.authentication_concentrators Script: Cadastros/08.04-Concentradores.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
nas_radius.host | erp_code | erp.authentication_concentrators.erp_code | prefix('CE_' + host) |
nas_radius.descricao | nome | erp.authentication_concentrators.title | Direto |
nas_radius.host | erp_code_ip | erp.authentication_concentrators.code | prefix('IP_RAD_' + host) |
| (fixo para NAS) | tipo | erp.authentication_concentrators.type | 1 (RADIUS) |
radios.codrad | erp_code | erp.authentication_concentrators.erp_code | prefix('CE_' + codrad) |
radios.descri_rad | nome | erp.authentication_concentrators.title | Direto |
| (fixo para rádios) | tipo | erp.authentication_concentrators.type | 2 (Access Point) |
| (fixo — sem legado) | erp_code = 'MIG_999' | erp.authentication_concentrators.erp_code | Inserido direto no ERP |
14.8 Pontos de Acesso (OLTs)
Fonte: legado.olt_fibra Destino: connector.pontos_acesso → erp.authentication_access_points Script: Cadastros/08.05-PontodeAcesso.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
codolt | erp_code | erp.authentication_access_points.erp_code | prefix('OLT_' + codolt) |
descri_olt | nome | erp.authentication_access_points.title | Direto |
codolt | codigo | erp.authentication_access_points.code | Direto |
ip | erp_code_ip | erp.authentication_access_points.authentication_ip_id | prefix('IP_' + ip) |
codtolt = 'HUAWEI' | codigo_fabricante | erp.authentication_access_points.manufacturer_code | 5 |
codtolt = 'DATACOM' | codigo_fabricante | erp.authentication_access_points.manufacturer_code | 9 |
codtolt = 'ZTE' | codigo_fabricante | erp.authentication_access_points.manufacturer_code | 8 |
codtolt = 'FIBERHOME' | codigo_fabricante | erp.authentication_access_points.manufacturer_code | 6 |
codtolt = 'NOKIA' | codigo_fabricante | erp.authentication_access_points.manufacturer_code | 14 |
codtolt = 'PARKS' | codigo_fabricante | erp.authentication_access_points.manufacturer_code | 4 |
ativo = 'N' | ativo | erp.authentication_access_points.active | FALSE — senão TRUE |
login | usuario | erp.authentication_access_points.user | Direto |
senha | senha | erp.authentication_access_points.password | Direto |
| (fixo) | tipo | erp.authentication_access_points.type | 4 (OLT) |
| (fixo — sem legado) | 'MIG_999' | erp.authentication_access_points.erp_code | Ponto de acesso padrão de migração |
14.9 Condomínios
Fonte: legado.condominios + legado.tipo_ponto_roteamento Destino: connector.condominios → erp.authentication_access_points (type=5) Script: Cadastros/08.07-Condominios.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
codcon | erp_code | erp.authentication_access_points.erp_code | prefix('CND' + codcon) |
nome_con | descricao | erp.authentication_access_points.title | Direto |
cep | cep | erp.authentication_access_points.postal_code | Direto |
endereco | endereco / numero | erp.authentication_access_points.street, .street_number | Separados por função |
bairro | bairro | erp.authentication_access_points.neighborhood | Direto |
cidade | cidade | erp.authentication_access_points.city | Via maintenance.code_cities |
tipo_ponto_roteamento.descri | tipo | erp.authentication_access_points.type | 5 (Condomínio) |
14.10 Clientes → Pessoas
Fonte: legado.clientes + legado.observacoes Destino: connector.pessoas → erp.people Script: Operacional/03.02-Pessoas.sql (bloco Clientes)
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
codcli | erp_code | erp.people.erp_code | prefix('CLI_' + codcli) |
tipo_cliente = 'F' | tipo_pessoa | erp.people.type_tx_id | 2 (Física) |
tipo_cliente = 'J' | tipo_pessoa | erp.people.type_tx_id | 1 (Jurídica) |
ativo = 'S' / 'N' | status | erp.people.status | 1 (Normal) / 0 (Inativa) |
cpf (PF) | documento | erp.people.tx_id | Remove formatação |
cnpj (PJ) | documento | erp.people.tx_id | Remove formatação |
nome_cli | razao_social_nome | erp.people.name_2 | Nome legal completo |
nome_cli (PF) / nome_fan (PJ) | nome_fantasia_apelido | erp.people.name | Nome curto / fantasia |
cep | cep_principal | erp.people.postal_code | Direto |
endereco | endereco_principal | erp.people.street | Remove o número |
endereco | numero_principal | erp.people.number | Extrai somente o número |
bairro | bairro_principal | erp.people.neighborhood | Direto |
cidade (código) | codigo_ibge_endereco_principal | erp.people.city_code | Via erp.code_cities |
cidade (código) | cidade_principal | erp.people.city | Nome da cidade |
| (via cidade) | uf_principal | erp.people.state | Sigla do estado |
referencia | referencia_endereco_principal | erp.people.address_reference | Direto |
e_mail | email + email_NFE | erp.people.email | Mesmo valor nos dois campos |
ddd + fone | telefone | erp.people.phone | Concatenados |
celular | celular | erp.people.cell_phone | Direto |
rg (PF) | identidade | erp.people.identity_number | Direto; NULL se PJ |
data_nac | data_nascimento | erp.people.birth_date | NULL se '0000-00-00' |
data_cad | data_cadastro | erp.people.created | Cast DATE |
icm | inscricao_estadual | erp.people.state_registration | Direto |
ic_mun | inscricao_municipal | erp.people.municipal_registration | Direto |
obs | observacoes_tecnicas | erp.people.technical_observation | Direto |
observacoes.obs (todas) | observacoes_administrativas | erp.people.administrative_observation | Concatenadas com data |
simples_nacional = 'S' e PJ | regime_tributario | erp.people.tax_regime | 1 (Simples Nacional) |
simples_nacional = 'N' e PJ | regime_tributario | erp.people.tax_regime | 2 (Lucro Presumido/Real) |
funcionario = 'S' | colaborador | erp.people.collaborator | TRUE |
codgcli | erp_code_grupo_pessoas | erp.people.people_group_id | prefix('PG_' + codgcli) |
latitude / longitude | latitude_end_principal / longitude_end_principal | erp.people.lat / .lng | Direto |
| (fixo) | cliente | erp.people.client | TRUE |
| (fixo) | fornecedor | erp.people.supplier | FALSE |
| (fixo) | situacao | erp.people.situation | 3 (Cliente) |
14.11 Fornecedores → Pessoas
Fonte: legado.fornecedores Destino: connector.pessoas → erp.people Script: Operacional/03.02-Pessoas.sql (bloco Fornecedores)
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
codfor | erp_code | erp.people.erp_code | prefix('FOR_' + codfor) |
tipo_pesso = 'F' / 'J' | tipo_pessoa | erp.people.type_tx_id | 2 / 1 |
cpf / cnpj | documento | erp.people.tx_id | Remove formatação |
nome_for | razao_social_nome | erp.people.name_2 | Direto |
nome_fan | nome_fantasia_apelido | erp.people.name | Direto |
cep | cep_principal | erp.people.postal_code | Direto |
endereco | endereco_principal / numero_principal | erp.people.street / .number | Separados por função |
cidade | cidade_principal / uf_principal | erp.people.city / .state | Via maintenance.code_cities |
e_mail | email + email_NFE | erp.people.email | Mesmo valor |
ddd + fone | telefone | erp.people.phone | Concatenados |
celular | celular | erp.people.cell_phone | Direto |
rg (PF) | identidade | erp.people.identity_number | NULL se PJ |
icm | inscricao_estadual | erp.people.state_registration | Direto |
obs + contato | observacoes_administrativas | erp.people.administrative_observation | Concatenados |
| (fixo) | fornecedor | erp.people.supplier | TRUE |
| (fixo) | cliente | erp.people.client | FALSE |
| (fixo) | situacao | erp.people.situation | 3 |
| (fixo) | status | erp.people.status | 1 (Normal) |
| (fixo) | erp_code_grupo_pessoas | erp.people.people_group_id | prefix('FORNECEDORES') |
14.12 Contatos → Pessoas
Fonte: legado.contatos_cliente Destino: connector.pessoas → erp.people Script: Operacional/03.02-Pessoas.sql (bloco Contatos)
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
codcontato | erp_code | erp.people.erp_code | prefix('CNT_' + codcontato) |
nome | razao_social_nome | erp.people.name_2 | Direto |
cpf | documento | erp.people.tx_id | Remove formatação |
e_mail | email | erp.people.email | Direto |
ddd + fone | telefone | erp.people.phone | Concatenados |
celular | celular | erp.people.cell_phone | Direto |
obs | observacoes_administrativas | erp.people.administrative_observation | Direto |
codcli | (vínculo para cliente pai) | erp.people_contacts.person_id | Referencia a pessoa CLI_ |
| (fixo) | tipo_pessoa | erp.people.type_tx_id | 2 (Física) |
| (fixo) | status | erp.people.status | 1 (Normal) |
| (fixo) | situacao | erp.people.situation | 3 |
14.13 Prospects → Pessoas
Fonte: legado.prospect Destino: connector.pessoas → erp.people Script: Operacional/03.02-Pessoas.sql (bloco Prospects)
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
codprosp | erp_code | erp.people.erp_code | prefix('PROSP_' + codprosp) |
nome | razao_social_nome | erp.people.name_2 | Direto |
cpf / cnpj | documento | erp.people.tx_id | Remove formatação |
e_mail | email | erp.people.email | Direto |
ddd + fone | telefone | erp.people.phone | Concatenados |
celular | celular | erp.people.cell_phone | Direto |
cep | cep_principal | erp.people.postal_code | Direto |
endereco | endereco_principal / numero_principal | erp.people.street / .number | Separados por função |
| (fixo) | situacao | erp.people.situation | 5 (Prospect) |
| (fixo) | status | erp.people.status | 1 (Normal) |
14.14 Usuários → Pessoas
Fonte: legado.usuarios Destino: connector.pessoas → erp.people Script: Operacional/03.02-Pessoas.sql (bloco Usuários)
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
codusu | erp_code | erp.people.erp_code | prefix('USU_' + codusu) |
nome_usu | razao_social_nome | erp.people.name_2 | Direto |
e_mail | email | erp.people.email | Direto |
cpf | documento | erp.people.tx_id | Remove formatação |
| (fixo) | colaborador | erp.people.collaborator | TRUE |
| (fixo) | status | erp.people.status | 1 (Normal) |
| (fixo) | situacao | erp.people.situation | 3 |
14.15 Comunicações (Meios de Contato)
Fonte: legado.contatos_cliente Destino: connector.pessoas_comunicacao → erp.communications_people Script: Operacional/03.03-Comunicacoes.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
codcontato | erp_code | erp.communications_people.erp_code | prefix('CON_' + codcontato) |
codcli | erp_code_pessoa | erp.communications_people.person_id | prefix('CLI_' + codcli) |
ddd + fone | contato | erp.communications_people.contact | Concatenados — tipo 1 (Telefone) |
e_mail | contato | erp.communications_people.contact | Direto — tipo 2 (E-mail) |
celular | contato | erp.communications_people.contact | Direto — tipo 3 (Celular) |
fax | contato | erp.communications_people.contact | Direto — tipo 6 (Fax) |
nome | complemento | erp.communications_people.complement | Nome do contato como complemento |
14.16 Endereços de Cobrança
Fonte: legado.endereco_cli (tipo COBRANÇA) → fallback: legado.clientes Destino: connector.enderecos → erp.people_addresses Script: Operacional/03.04-Enderecos.sql
| Origem | Coluna Connector | Coluna ERP Voalle | Regra |
|---|---|---|---|
endereco_cli.cep ou clientes.cep | cep | erp.people_addresses.postal_code | Prioriza endereco_cli |
endereco_cli.endereco ou clientes.endereco | logradouro / numero | erp.people_addresses.street / .number | Separados por função |
endereco_cli.bairro ou clientes.bairro | bairro | erp.people_addresses.neighborhood | Fallback clientes |
endereco_cli.cidade | cidade / uf | erp.people_addresses.city / .state | Via maintenance.code_cities |
endereco_cli.codcli | erp_code_pessoa | erp.people_addresses.person_id | prefix('CLI_' + codcli) |
| (fixo) | tipo_endereco | erp.people_addresses.type | 2 (Cobrança) |
14.17 servicos_cli → Contratos
Fonte: legado.servicos_cli + legado.clientes + legado.vencimentos + legado.forma_cobrancas + legado.bancos Destino: connector.contratos → erp.contracts Script: Operacional/05.01-Contratos.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
codcli + codsercli | erp_code | erp.contracts.erp_code | prefix('CNT_' + codcli + '_' + codsercli) |
tipo_cliente + carne + desconto | code_tipo_contrato | erp.contracts.code | PF boleto=1.01 / PF carnê=1.02 / PJ boleto=2.01 / PJ carnê=2.02 / Cortesia=3.01 |
sip.codemp ou b.codemp | erp_code_local | erp.contracts.company_place_id | prefix('CP_' + codemp) |
codpop | erp_code_unidade_negocio | erp.contracts.company_place_business_unit_id | prefix('UNN_' + codpop) |
codcli | erp_code_cliente | erp.contracts.client_id | prefix('CLI_' + codcli) |
codcfop + tipo_cliente | tipo_cliente | erp.contracts.client_type | 5301→6, 5302→2, 5303→1, 5307→3(PF)/99 |
codcli + nro_plano | numero_contrato | erp.contracts.contract_number | Concatenados com - |
codcli + nro_plano | descricao | erp.contracts.description | Mesmo valor |
data_lan | data_criacao | erp.contracts.date | Cast DATE |
nunca_suspender = 'N' | bloqueio_automatico | (config. contrato) | TRUE |
enviar_aviso = 'S' | alerta_cobranca | (config. contrato) | TRUE |
obs + descri_ser + codsercli | observacoes | erp.contracts.observation | Concatenados + sufixo codsercli.: (nro_plano) - codsercli |
observacoes.obs (tipo FINANCEI) | observacoes_faturamento | erp.contracts.observation_billing | Data + texto |
desconto >= 100 | tipo_faturamento | erp.contracts.invoice_type | 5 (Cortesia) |
| (outros) | tipo_faturamento | erp.contracts.invoice_type | 4 (Antecipado) |
antecipada = 'N' | vencimento_boleto | erp.contracts.billing_type | 1 (Mês seguinte) |
antecipada = 'S' | vencimento_boleto | erp.contracts.billing_type | 0 (Mês atual) |
vencimentos.dia | dia_vencimento | erp.contracts.collection_day | Default 15 se nulo |
vencimentos.dia_f | dia_corte | erp.contracts.cut_day | Default 30 se nulo |
data_ini ou data_cad | data_inicio_vigencia | erp.contracts.beginning_date | Prioriza data_ini |
| (fixo) | data_final_vigencia | erp.contracts.final_date | 2049-12-31 |
data_con + validade (meses) | data_reajuste + data_fidelizacao | erp.contracts.next_adjustment_date / erp.contracts.billing_final_date | data_con + validade meses |
validade | duracao_fidelizacao | erp.contracts.months_duration | Direto (meses) |
codcob | erp_code_tipo_cobranca | erp.contracts.financial_collection_type_id | prefix('FCT_' + codcob) |
servicos.codcta | code_natureza_financeira | erp.contracts.financer_nature_id | prefix('PC_' + codcta) |
c.imprime_nf = 'S' | code_operacao_financeira | erp.contracts.operation_id | '1.01' (com NF) |
c.imprime_nf = 'N' | code_operacao_financeira | erp.contracts.operation_id | '1.31' (CIS, sem NF) |
codven | erp_code_vendedor | erp.contracts.seller_1_id | Direto |
codest | situacao | erp.contracts.status | Ver tabela de situações abaixo |
data_can | data_finalizacao | erp.contracts.cancellation_date | Cast DATE |
codcan | motivo_finalizacao | (campo auxiliar) | Direto |
Mapeamento de situação (codest → situacao):
| Código Integrator | Descrição Integrator | Situação ERP | Valor |
|---|---|---|---|
| Código "Habilitado" | Serviço habilitado | Normal | 1 |
| Habilitado + desconto >= 100% | Cortesia | Cortesia | 3 |
| Código "Suspenso por Débito" | Inadimplente | Bloqueio Financeiro | 6 |
| Código "Inativo" | Inativo | Suspenso | 5 |
| Código "Cancelado" | Cancelado | Cancelado | 4 |
| Código "Suspensão Temporária" | Suspensão temp. | Bloqueio Administrativo | 7 |
| Código "Suspenso a Pedido" | Suspenso a pedido | Suspenso | 5 |
| Demais | Aguardando, outros | Normal | 1 |
14.18 Itens de Contrato (4 origens)
Destino: connector.itens_contrato → erp.contract_items Script: Operacional/05.02-ItensContrato.sql
Serviço principal
Fonte: legado.servicos_cli + legado.servicos
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
codsercli | erp_code | erp.contract_items.erp_code | prefix('CNTIT_' + codsercli) |
codcli + codsercli | erp_code_contrato | erp.contract_items.contract_id | prefix('CNT_' + codcli + '_' + codsercli) |
servicos.codser | erp_code_servico | erp.contract_items.service_product_id | prefix('SRV_' + codser) |
servicos.descri_ser | descricao_item | erp.contract_items.description | Direto |
| (fixo) | quantidade | erp.contract_items.units | 1.00 |
valor_plano | valor_unitario | erp.contract_items.unit_amount | Direto |
codsercli | etiqueta | erp.contract_items.service_tag | Para rastreamento pós-migração |
Serviço extra
Fonte: legado.servicos_cli_extras + legado.servicos_extras
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
codsercliex | erp_code | erp.contract_items.erp_code | prefix('CNTIT_' + codsercliex + '_EXTRA') |
servicos_extras.codserex | erp_code_servico | erp.contract_items.service_product_id | prefix('SRV_EXTRA_' + codserex) |
servicos_extras.descri_serex | descricao_item | erp.contract_items.description | Direto |
servicos_cli_extras.valor | valor_unitario | erp.contract_items.unit_amount | 0.00 se tipo_cob = 'U' (por uso) |
Telefonia VoIP
Fonte: legado.terminal_voz
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
terminal_voz.codtvoz | erp_code | erp.contract_items.erp_code | prefix('CNTIT_' + codtvoz) |
terminal_voz.prefixo | ddd | erp.contract_items.telephone_ddd | 2 dígitos do DDD |
terminal_voz.prefixo + terminal_id | telefone | erp.contract_items.telephone | Número completo |
| (fixo) | valor_unitario | erp.contract_items.unit_amount | 0.00 |
| (fixo) | code_grupo_telefone | (grupo de telefonia) | 'MIG' |
Pacote de TV
Fonte: legado.pacotes_sc + legado.pacotes
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
pacotes_sc.codpsc | erp_code | erp.contract_items.erp_code | prefix('CNTIT_' + codpsc) |
pacotes.codpac | erp_code_servico | erp.contract_items.service_product_id | prefix('SRV_TV_' + codpac) |
pacotes.descri_pac | descricao_item | erp.contract_items.description | Direto |
| (fixo) | valor_unitario | erp.contract_items.unit_amount | 0.00 |
14.19 Eventos do Contrato
Fonte: legado.historico_cliente Destino: connector.contratos_eventos → erp.contract_events Script: Operacional/05.04-EventosContratos.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
codcli + codsercli + sequência | erp_code | erp.contract_events.erp_code | prefix('HIS_CNT_' + ...) |
codcli + codsercli | erp_code_contrato | erp.contract_events.contract_id | prefix('CNT_' + codcli + '_' + codsercli) |
data_alt | data_evento | erp.contract_events.date | Cast DATE |
desc_alt / obs | descricao | erp.contract_events.description | Texto do histórico |
| (fixo) | tipo_evento | erp.contract_events.contract_event_type_id | 'MIG_0999' |
14.20 Conexões — PPPoE / Hotspot
Fonte: legado.login_radius + legado.ip + legado.onu_fibra + legado.olt_fibra + legado.pon_slot + legado.interfaces_radios + legado.condominios + legado.endereco_cli + legado.clientes Destino: connector.conexoes → erp.authentication_contracts Script: Operacional/08.07-Conexoes.sql (bloco PPPoE/Hotspot)
| Origem | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
login_radius.codlrad | erp_code | erp.authentication_contracts.erp_code | prefix('CNX_' + codlrad) |
servicos_cli.codsercli | erp_code_item_contrato | erp.authentication_contracts.contract_item_id | prefix('CNTIT_' + codsercli) |
login_radius.login | usuario_pppoe | erp.authentication_contracts.user | Direto |
login_radius.senha | senha_pppoe | erp.authentication_contracts.password | Direto |
onu_fibra.ger_login | usuario_equipamento | erp.authentication_contracts.equipment_user | Login de gestão da ONU |
onu_fibra.ger_senha | senha_equipamento | erp.authentication_contracts.equipment_password | Senha de gestão da ONU |
onu_fibra.mac ou ip.macadress1 | mac | erp.authentication_contracts.mac | Normalizado XX-XX-XX-XX-XX-XX maiúsculo |
ip.wpa2 | senha_wpa | erp.authentication_contracts.mac_password | Direto |
condominios.nome_con | info_complementar_con | erp.authentication_contracts.complement | Nome do condomínio |
condominios.codcon | erp_code_condominio | erp.authentication_contracts.condominium_id | prefix('CND' + codcon) |
olt_fibra.codolt | erp_code_ponto_de_acesso | erp.authentication_contracts.authentication_access_point_id | prefix('OLT_' + codolt) — fallback 'MIG_999' |
ip.nro_ip (se válido) | erp_code_ip | erp.authentication_contracts.ip_authentication_id | prefix('IP_' + nro_ip) |
ip.nro_ip (se válido) | erp_code_grupo_ip | erp.authentication_contracts.authentication_ip_group_id | prefix('IP_FIXO') |
ip.nro_ip (se válido) | tipo_ip | erp.authentication_contracts.ip_type | 1 (Fixo) — senão 2 (Dinâmico) |
interfaces_radios.codtintr = 'PPPOE' | tipo_conexao | erp.authentication_contracts.connection_type | 1 (PPPoE) |
ip.hotspot = 'S' | tipo_conexao | erp.authentication_contracts.connection_type | 3 (Hotspot) |
endereco_cli.cep ou clientes.cep | cep | erp.authentication_contracts.postal_code | Prioriza endereço de instalação |
endereco_cli.endereco | endereco / numero | erp.authentication_contracts.street / .street_number | Separados; fallback clientes |
endereco_cli.bairro | bairro | erp.authentication_contracts.neighborhood | Fallback clientes.bairro |
code_cities.city | cidade | erp.authentication_contracts.city | Via código IBGE |
code_cities.state_abbreviation | uf | erp.authentication_contracts.state | Via código IBGE |
onu_fibra.nro_serie | serial | erp.authentication_contracts.equipment_serial_number | Número de série da ONU |
pon_slot.ponid (3o segmento) | porta_olt | erp.authentication_contracts.port_olt | Ex: gpon-0/1/2 → porta 2 |
pon_slot.ponid (2o segmento) | slot_olt | erp.authentication_contracts.slot_olt | Ex: gpon-0/1/2 → slot 1 |
onu_fibra.ssid_wrls | wifi_ssid | erp.authentication_contracts.wifi_name | SSID da rede Wi-Fi da ONU |
onu_fibra.senha_wrls | wifi_senha | erp.authentication_contracts.wifi_password | Senha Wi-Fi da ONU |
onu_fibra.vlan_port | vlan | erp.authentication_contracts.vlan | VLAN configurada na ONU |
ip.ip_secundario | ip_valido_lan | erp.authentication_contracts.valid_lan_ip | IP da rede LAN |
ip.clase_sec | mascara_lan | erp.authentication_contracts.valid_lan_ip_class | Máscara da rede LAN |
| (fixo) | porta_web | erp.authentication_contracts.api_port | 80 |
14.21 Conexões — IP Fixo sem PPPoE
Script: Operacional/08.07-Conexoes.sql (bloco IP Fixo)
| Origem | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
servicos_cli.codsercli | erp_code | erp.authentication_contracts.erp_code | prefix('CNX_' + codsercli) |
servicos_cli.codsercli | erp_code_item_contrato | erp.authentication_contracts.contract_item_id | prefix('CNTIT_' + codsercli) |
ip.nro_ip | erp_code_ip | erp.authentication_contracts.ip_authentication_id | prefix('IP_' + nro_ip) |
interfaces_radios.codrad | erp_code_ponto_de_acesso | erp.authentication_contracts.authentication_access_point_id | prefix('AP_' + codrad) |
ip.macadress1 | mac | erp.authentication_contracts.mac | Maiúsculo |
| (fixo) | tipo_conexao | erp.authentication_contracts.connection_type | 2 (IP Fixo) |
14.22 Faturas (Boletos)
Fonte: legado.faturas + legado.contas_rec + legado.bancos + legado.servicos_cli + legado.clientes Destino: connector.faturas → erp.financial_receivable_titles (origin=8) Script: Operacional/06.01-Faturas.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
faturas.codfat | erp_code | erp.financial_receivable_titles.erp_code_bill_title | prefix('FAT_' + codfat) |
bancos.codemp | erp_code_local | erp.financial_receivable_titles.company_place_id | prefix('CP_' + codemp) |
contas_rec.codcli | erp_code_cliente | erp.financial_receivable_titles.client_id | prefix('CLI_' + codcli) |
contas_rec.codcli + codsercli | erp_code_contrato | erp.financial_receivable_titles.contract_id | prefix('CNT_' + codcli + '_' + codsercli) |
faturas.codcob | erp_code_tipo_cobranca | erp.financial_receivable_titles.financial_collection_type_id | prefix('FCT_' + codcob) |
servicos.codcta | code_natureza_financeira | erp.financial_receivable_titles.financer_nature_id | prefix('PC_' + codcta) |
clientes.imprime_nf = 'S' | code_operacao_financeira | erp.financial_receivable_titles.financial_operation_id | '1.01' |
clientes.imprime_nf = 'N' | code_operacao_financeira | erp.financial_receivable_titles.financial_operation_id | '1.31' (CIS) |
faturas.codfat | numero_fatura | erp.financial_receivable_titles.title | Direto |
faturas.nro_bol | nosso_numero | erp.financial_receivable_titles.bank_title_number | Direto |
faturas.status IN ('B','Q','X','D') | baixado | erp.financial_receivable_titles.finished | TRUE |
faturas.data_bai | data_baixa | erp.financial_receivable_titles.finished_date | Cast DATE |
faturas.data_emi | data_emissao | erp.financial_receivable_titles.issue_date | Cast DATE |
faturas.data_ven | data_vencimento | erp.financial_receivable_titles.expiration_date | Cast DATE |
faturas.data_ref | competencia | erp.financial_receivable_titles.competence | Cast DATE |
faturas.status IN ('N','B','X') | em_remessa | erp.financial_receivable_titles.financial_remittance_id | TRUE |
faturas.status = 'Q' | liquidado | (saldo zerado no título) | TRUE |
14.23 Faturas Recebidas (Boletos Pagos)
Fonte: legado.faturas (status != 'D', parcelamento='N') + legado.contas_rec + legado.detalhe_faturas + legado.mov_bancario + legado.descontos + legado.juros_contas_rec Destino: connector.faturas_recebidas → erp.financial_receipt_titles Script: Operacional/06.02-FaturasRecebidas.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
faturas.codfat | erp_code | erp.financial_receipt_titles.erp_code | prefix('FAT_REC_' + codfat + '_N') |
faturas.codfat | erp_code_fatura | erp.financial_receipt_titles.financial_receivable_title_id | prefix('FAT_' + codfat) |
contas_rec.codcli | erp_code_pessoa | erp.financial_receipt_titles.client_id | prefix('CLI_' + codcli) |
mov_bancario.codban ou forma_cobrancas.codban | erp_code_caixas_contas | erp.financial_receipt_titles.bank_account_id | prefix('BA_' + codban) |
contas_rec.valor_pag + descontos.valor_des | valor_recebido | erp.financial_receipt_titles.amount | Valor pago + desconto aplicado |
juros_contas_rec.valor_juros | juros | erp.financial_receipt_titles.increase_amount | Juros cobrados |
juros_contas_rec.valor_multa | multa | erp.financial_receipt_titles.fine_amount | Multa cobrada |
descontos.valor_des | desconto | erp.financial_receipt_titles.discount_value | Desconto aplicado |
mov_bancario.data_ven ou faturas.data_bai | data_recebimento | erp.financial_receipt_titles.receipt_date | Data efetiva do recebimento |
contas_rec.data_bai ou mov_bancario.data_lan | data_pagamento | erp.financial_receipt_titles.client_paid_date | Data do pagamento |
contas_rec.histo_rec | complemento | erp.financial_receipt_titles.complement | Histórico do recebimento |
14.24 Contas a Receber (Títulos)
Fonte: legado.contas_rec + legado.detalhe_faturas + legado.faturas + legado.imp_contas_rec + legado.det_nota_fiscal Destino: connector.contas_receber → erp.financial_receivable_titles Script: Operacional/06.03-ContasReceber.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
contas_rec.codcrec | erp_code | erp.financial_receivable_titles.erp_code | prefix('TIT_' + codcrec) |
contas_rec.codemp | erp_code_local | erp.financial_receivable_titles.company_place_id | prefix('CP_' + codemp) |
detalhe_faturas.codfat | erp_code_fatura | erp.financial_receivable_titles.bill_title_id | prefix('FAT_' + codfat) — NULL se pago parcialmente |
contas_rec.codcli | erp_code_cliente | erp.financial_receivable_titles.client_id | prefix('CLI_' + codcli) |
contas_rec.codcli + codsercli | erp_code_contrato | erp.financial_receivable_titles.contract_id | prefix('CNT_' + codcli + '_' + codsercli) |
contas_rec.codcob | erp_code_tipo_cobranca | erp.financial_receivable_titles.financial_collection_type_id | prefix('FCT_' + codcob) |
plano_cta.codcta | code_natureza_financeira | erp.financial_receivable_titles.financer_nature_id | prefix('PC_' + codcta) |
codtnf = 'MODELO21' | code_operacao_financeira | erp.financial_receivable_titles.financial_operation_id | '1.01' |
codtnf = 'MODELO22' | code_operacao_financeira | erp.financial_receivable_titles.financial_operation_id | '1.02' |
codtnf = 'MODELO55' | code_operacao_financeira | erp.financial_receivable_titles.financial_operation_id | '7.03' |
codtnf IN ('FATURA','NOTASERVIC') | code_operacao_financeira | erp.financial_receivable_titles.financial_operation_id | '1.21' |
codtnf (demais) | code_operacao_financeira | erp.financial_receivable_titles.financial_operation_id | '1.31' |
contas_rec.codcrec | numero_titulo | erp.financial_receivable_titles.title | Direto |
contas_rec.nro_bol | nosso_numero | erp.financial_receivable_titles.bank_title_number | Direto |
contas_rec.valor_lan | valor_documento / valor_titulo | erp.financial_receivable_titles.document_amount / .title_amount | Direto |
contas_rec.data_lan | data_emissao | erp.financial_receivable_titles.issue_date | Cast DATE |
contas_rec.data_ven | data_vencimento | erp.financial_receivable_titles.expiration_date | Cast DATE |
contas_rec.data_ref | competencia | erp.financial_receivable_titles.competence | Cast DATE |
faturas.status IN ('B','Q','X') | baixado | erp.financial_receivable_titles.finished | TRUE |
contas_rec.data_bai | data_baixa | erp.financial_receivable_titles.finished_date | Cast DATE |
faturas.status = 'Q' | liquidado | (saldo zerado no título) | TRUE |
faturas.status IN ('N','B','X') | em_remessa | erp.financial_receivable_titles.financial_remittance_id | TRUE |
14.25 Contas Recebidas (Títulos Quitados)
Fonte: legado.contas_rec WHERE valor_lan <= valor_pag AND data_bai IS NOT NULL + legado.mov_bancario + legado.descontos + legado.juros_contas_rec Destino: connector.contas_recebidas → erp.financial_receipt_titles Script: Operacional/06.04-ContasRecebidas.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
contas_rec.codcrec | erp_code | erp.financial_receipt_titles.erp_code | prefix('TIT_REC_' + codcrec) |
contas_rec.codcrec | erp_code_conta_receber | erp.financial_receipt_titles.financial_receivable_title_id | prefix('TIT_' + codcrec) |
mov_bancario.codban ou forma_cobrancas.codban | erp_code_caixas_contas | erp.financial_receipt_titles.bank_account_id | prefix('BA_' + codban) |
contas_rec.valor_pag + descontos.valor_des | valor_recebido | erp.financial_receipt_titles.amount | Valor pago + desconto |
juros_contas_rec.valor_juros | juros | erp.financial_receipt_titles.increase_amount | Juros cobrados |
juros_contas_rec.valor_multa | multa | erp.financial_receipt_titles.fine_amount | Multa cobrada |
descontos.valor_des | desconto | erp.financial_receipt_titles.discount_value | Desconto aplicado |
mov_bancario.data_ven ou faturas.data_bai ou mov_bancario.data_conci ou contas_rec.data_lan | data_recebimento | erp.financial_receipt_titles.receipt_date | COALESCE nessa ordem de prioridade |
contas_rec.data_bai ou mov_bancario.data_lan ou contas_rec.data_lan | data_pagamento | erp.financial_receipt_titles.client_paid_date | COALESCE nessa ordem |
contas_rec.histo_rec | complemento | erp.financial_receipt_titles.complement | Histórico do recebimento |
14.26 Contas a Pagar
Fonte: legado.contas_pag + legado.bancos + legado.det_contas_pag Destino: connector.contas_pagar → erp.financial_payable_titles Script: Operacional/06.05-Contas_Pagar.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
contas_pag.codcpag | erp_code | erp.financial_payable_titles.erp_code | prefix('TIT_' + codcpag) |
det_contas_pag.codemp ou bancos.codemp | erp_code_local | erp.financial_payable_titles.company_place_id | prefix('CP_' + codemp) — fallback 'MIG_999' |
contas_pag.codfor | erp_code_fornecedor | erp.financial_payable_titles.supplier_id | prefix('FOR_' + codfor) |
contas_pag.codban | erp_code_caixas_contas | erp.financial_payable_titles.bank_account_id | prefix('BA_' + codban) |
contas_pag.codcta | code_natureza_financeira | erp.financial_payable_titles.financer_nature_id | prefix('PC_' + codcta) — fallback 'MIG_9999' |
| (fixo) | code_operacao_financeira | erp.financial_payable_titles.financial_operation_id | '2.01' |
nro_nta_fiscal ILIKE '%PREVIS%' | tipo | erp.financial_payable_titles.type | 1 (Provisório) — senão 2 (Definitivo) |
contas_pag.codcpag | numero_titulo | erp.financial_payable_titles.title | Direto |
contas_pag.valor_lan | valor_titulo | erp.financial_payable_titles.title_amount | Direto |
data_fat ou data_lan ou data_ven | data_emissao | erp.financial_payable_titles.issue_date | Prioridade nesta ordem |
contas_pag.data_lan | data_entrada | erp.financial_payable_titles.entry_date | Cast DATE |
contas_pag.data_ven | data_vencimento | erp.financial_payable_titles.expiration_date | Cast DATE |
contas_pag.codcomp | competencia | erp.financial_payable_titles.competence | Converte formato MMAA para DATE |
histo_pag + nro_nta_fiscal | complemento | erp.financial_payable_titles.complement | Concatenados |
| (fixo) | origem | erp.financial_payable_titles.origin | 1 (Financeiro) |
14.27 Contas Pagas
Fonte: legado.contas_pag WHERE valor_pag > 0 + legado.razao + legado.mov_bancario Destino: connector.contas_pagas → erp.financial_paid_titles Script: Operacional/06.06-Contas_Pagas.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
contas_pag.codcpag + razao.codraz | erp_code | erp.financial_paid_titles.erp_code | prefix('TIT_' + codcpag + '_RZ_' + codraz) |
contas_pag.codcpag | erp_code_conta_pagar | erp.financial_paid_titles.financial_payable_title_id | prefix('TIT_' + codcpag) |
mov_bancario.codban | erp_code_caixas_contas | erp.financial_paid_titles.bank_account_id | prefix('BA_' + codban) |
contas_pag.valor_pag | valor_pago | erp.financial_paid_titles.amount | Direto |
mov_bancario.data_ven ou mov_bancario.data_lan | data_pagamento | erp.financial_paid_titles.payment_date | COALESCE nessa ordem |
contas_pag.data_bai | data_baixa | (campo auxiliar) | Cast DATE |
| (fixo) | forma_pagamento | erp.financial_paid_titles.financer_nature_id | '007' (Boleto) |
14.28 Lançamentos em Caixa/Banco
Destino: connector.lancamento_caixa_banco → erp.financial_postings Script: Operacional/07.03-LancamentosCaixaBanco.sql
Dois tipos de lançamento são migrados:
Parte 1 — Pagamentos de contas a pagar (via razão)
Fonte: legado.razao (tipo CPA) + legado.mov_bancario + legado.bancos
| Integrator | Connector | Coluna ERP Voalle | Regra |
|---|---|---|---|
mov_bancario.codmov + razao.codraz | erp_code | erp.financial_postings.erp_code | prefix('PST_' + codmov + '_RZ_' + codraz) |
bancos.codban | erp_code_caixas_contas | erp.financial_postings.bank_account_id | prefix('BA_' + codban) |
mov_bancario.tipo = 'CPA' | tipo | erp.financial_postings.signal | Débito (pagamento) |
mov_bancario.valor | valor | erp.financial_postings.amount | Direto |
mov_bancario.data_lan | data_lancamento | erp.financial_postings.date | Cast DATE |
mov_bancario.descricao | descricao | erp.financial_postings.complement | Direto |
Parte 2 — Recebimentos bancários (movimentação direta)
Fonte: legado.mov_bancario (tipo CR, sem lançamento CPA correspondente)
| Integrator | Connector | Coluna ERP Voalle | Regra |
|---|---|---|---|
mov_bancario.codmov | erp_code | erp.financial_postings.erp_code | prefix('PST_' + codmov) |
bancos.codban | erp_code_caixas_contas | erp.financial_postings.bank_account_id | prefix('BA_' + codban) |
mov_bancario.tipo = 'CR' | tipo | erp.financial_postings.signal | Crédito (recebimento) |
mov_bancario.valor | valor | erp.financial_postings.amount | Direto |
mov_bancario.data_lan | data_lancamento | erp.financial_postings.date | Cast DATE |
mov_bancario.descricao | descricao | erp.financial_postings.complement | Direto |
14.29 Patrimônios
Fonte: legado.movimentos_pat (atual='S') + legado.patrimonio + legado.produtos + legado.servicos_cli Destino: connector.patrimonios → erp.patrimonies Script: Operacional/09.02_Patrimonios.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
patrimonio.codpat | erp_code | erp.patrimonies.erp_code | prefix('PAT_' + codpat) |
produtos.codprod | erp_code_produto | erp.patrimonies.service_product_id | prefix('PROD_' + codprod) |
produtos.descri_prod | descricao | erp.patrimonies.title | Direto |
patrimonio.nro_serie | numero_serie | erp.patrimonies.serial_number | Direto |
patrimonio.mac | mac | erp.patrimonies.mac | Direto |
patrimonio.obs | observacoes | erp.patrimonies.observation | Direto |
servicos_cli.codcli (se alocado) | erp_code_pessoa | erp.patrimonies.client_id | prefix('CLI_' + codcli) |
servicos_cli.codsercli (se alocado) | erp_code_contrato | erp.patrimonies.contract_id | prefix('CNT_' + codcli + '_' + codsercli) |
movimentos_pat.data_mov | data_alocacao | erp.patrimonies.purchase_date | Cast DATE |
| (sem cliente) | (bloco 2) | (estoque) | Equipamentos disponíveis em estoque |
14.30 Solicitações Vinculadas
Fonte: legado.ocorrencias + legado.ordem_servico Destino: connector.solicitacoes_vinculadas → erp.assignment_links Script: Operacional/10.05-Solicitacoes_vinculos.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
ocorrencias.codoco + ordem_servico.codords | erp_code | erp.assignment_links.erp_code | prefix('AT_' + codoco + 'OS_' + codords) |
ocorrencias.codcli | erp_code_pessoa | (referência auxiliar) | prefix('CLI_' + codcli) |
ordem_servico.codords | erp_code_solicitacao | erp.assignment_links.assignment_id | Referencia a OS |
ocorrencias.data_oco | data_abertura | (campo auxiliar) | Cast DATE |
ocorrencias.status | status | (campo auxiliar) | Mapeado conforme regras do script |
14.31 Relatos (6 origens)
Destino: connector.relatos → erp.reports Script: Operacional/10.06-Relatos.sql
| Origem | erp_code | Coluna ERP Voalle | Conteúdo migrado |
|---|---|---|---|
comentarios (comentários da ocorrência) | prefix('REL_C_' + ...) | erp.reports.erp_code | Texto do comentário, autor, data |
historico_ocorrencias (histórico de alterações) | prefix('REL_H_' + ...) | erp.reports.erp_code | Descrição da alteração, data |
tarefas_oco (tarefas da ocorrência) | prefix('REL_T_' + ...) | erp.reports.erp_code | Descrição da tarefa, responsável |
ordem_servico.obs_ret (obs. de retorno) | prefix('REL_O_' + ...) | erp.reports.erp_code | Observação de retorno da OS |
ocorrencias.descricao (descrição original) | prefix('REL_AT_O_' + ...) | erp.reports.erp_code | Descrição inicial da ocorrência |
encaminhamentos (como relatos) | prefix('REL_ENC_' + ...) | erp.reports.erp_code | Texto do encaminhamento |
Campos comuns a todos os relatos: erp.reports.assignment_id (vínculo à ocorrência), erp.reports.person_id (autor), erp.reports.title, erp.reports.description, erp.reports.beginning_date, erp.reports.final_date.
14.32 Encaminhamentos
Fonte: legado.encaminhamentos + legado.ocorrencias + legado.usuarios + legado.cargos Destino: connector.encaminhamentos → erp.assignment_person_routings Script: Operacional/10.07-Encaminhamentos.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
encaminhamentos.codenc | erp_code | erp.assignment_person_routings.erp_code | prefix('ENC_' + codenc) |
ocorrencias.codoco | erp_code_solicitacao | erp.assignment_person_routings.assignment_id | Referencia a ocorrência |
usuarios.codusu | erp_code_responsavel | erp.assignment_person_routings.destination_person_id | prefix('USU_' + codusu) |
cargos.nome_cargo | cargo_responsavel | (campo auxiliar) | Descrição do cargo |
encaminhamentos.data_enc | data_encaminhamento | (campo auxiliar) | Cast DATE |
encaminhamentos.obs | descricao | erp.assignment_person_routings.report_id | Texto do encaminhamento (via relato vinculado) |
14.33 Caixas e Contas Bancárias
Fonte: legado.bancos + legado.forma_cobrancas + legado.conf_boletos Destino: connector.caixas_bancos → erp.bank_accounts Script: Cadastros/02.01-CaixasBancos.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
bancos.codban | erp_code | erp.bank_accounts.erp_code | prefix('BA_' + codban) |
bancos.codban | codigo | erp.bank_accounts.code | Código bruto do banco |
| (calculado) | tipo_conta | erp.bank_accounts.type | 1=Caixa Interno se codban='01CAIXA' ou agência/conta contém 'CAIXA'/'INTERNO'; 2=Banco nos demais casos |
bancos.nome_ban | descricao_conta | erp.bank_accounts.description | TRIM |
bancos.codemp | erp_code_local | erp.bank_accounts.company_place_id | prefix('CP_' + codemp) |
bancos.nro_ban | codigo_banco | erp.bank_accounts.bank_id | NULL se vazio |
conf_boletos.nro_age / bancos.nro_agencia | agencia | erp.bank_accounts.agency | Parte antes do -; NULL para caixas internos |
conf_boletos.nro_age / bancos.nro_agencia | digito_verificador_agencia | erp.bank_accounts.agency_check_digit | Parte após o - |
'' | operacao | erp.bank_accounts.operation | Sempre vazio |
conf_boletos.nro_cta / bancos.nro_conta | numero_conta | erp.bank_accounts.account | Parte antes do -; NULL para caixas internos |
conf_boletos.nro_cta / bancos.nro_conta | digito_verificador_conta | erp.bank_accounts.account_check_digit | Parte após o - |
bancos.activo | ativo | erp.bank_accounts.active | 'S' → TRUE; demais → FALSE |
Também é inserida uma conta genérica
BA_MIGRACAO(Caixa Interno) para lançamentos sem banco identificado no legado.
14.34 Serviços (Planos de Internet, TV e Extras)
Fonte: legado.servicos, legado.servicos_simples, legado.pacotes, legado.servicos_extras, legado.servicos_adicionais Destino: connector.servicos → erp.service_products Script: Cadastros/04.02-Serviços.sql
O script popula connector.servicos em 5 blocos distintos:
| Bloco | Origem | Prefixo erp_code | Tipo |
|---|---|---|---|
| 1 | servicos (compostos pai) | SRV_codser | Composto |
| 2 | servicos_simples (simples com composição) | SRV_codsimp | Composto |
| 3 | servicos_simples (sem composição) | SRV_codsimp | Simples |
| 4 | pacotes (TV) | SRV_TV_codpac | Simples / TV |
| 5 | servicos_extras + servicos_adicionais | SRV_EXTRA_codserex / SRV_ADD_codsai | Simples / Extra |
Campos migrados:
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
servicos.codser / outros | erp_code | erp.service_products.erp_code | Prefixo conforme bloco acima |
servicos.descr | descricao | erp.service_products.title | TRIM |
servicos.veloc | velocidade_down | erp.service_products.download_max_limit | Velocidade de download |
servicos.veloc_up | velocidade_up | erp.service_products.upload_max_limit | Velocidade de upload |
servicos.vel_burst | burst | erp.service_products.use_burst | Habilita burst se preenchido |
servicos.cod_ope | operacao_financeira | erp.service_products.financial_operation_id | Via DE/PARA de operação financeira |
servicos.codnat | natureza_financeira | erp.service_products.financer_nature_id | Via DE/PARA de natureza financeira |
| (calculado) | tipo | erp.service_products.type | 2 = Serviço (todos os blocos) |
| (calculado) | servico_composto | (campo auxiliar no connector) | TRUE se composto |
servicos.activo | ativo | erp.service_products.active | 'S' → TRUE |
14.35 Naturezas Financeiras
Fonte: legado.plano_cta Destino: connector.naturezas_financeiras → erp.financers_natures Script: Cadastros/04.03-NaturezasFinanceiras.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
plano_cta.codcta | erp_code | erp.financers_natures.erp_code | prefix('PC_' + codcta) |
plano_cta.codcta | code | erp.financers_natures.code | Formatado (pode incluir pontuação) |
plano_cta.descri_cta | descricao | erp.financers_natures.title | TRIM |
plano_cta.tipo_cta | sinal | erp.financers_natures.signal | 'C' (crédito) → 1; 'D' (débito) → 2 |
plano_cta.tipo_nat | tipo_conta | erp.financers_natures.type | 'S' (sintética) → 2; 'A' (analítica) → 1 |
plano_cta.activo | ativo | erp.financers_natures.active | 'S' → TRUE |
14.36 Regras de Faturamento
Fonte: connector.servicos × connector.locais (cross-join) Destino: connector.servicos_regras_faturamento → erp.service_billing_configurations Script: Cadastros/04.04-RegrasFaturamento.sql
Este script não lê o legado diretamente — gera uma regra de faturamento para cada combinação de serviço × local já carregado no connector.
| Coluna Connector (entrada) | Coluna Connector (destino) | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
servicos.erp_code | erp_code_servico | erp.service_billing_configurations.service_product_id | Referência ao serviço |
locais.erp_code | erp_code_local_venda | erp.service_billing_configurations.company_place_id | Local de venda |
locais.erp_code | erp_code_local_fatura | erp.service_billing_configurations.billing_company_place_id | Local de faturamento |
servicos.natureza_financeira | code_natureza_financeira | erp.service_billing_configurations.financer_nature_id | Natureza financeira do serviço |
servicos.operacao_financeira | code_operacao_financeira | erp.service_billing_configurations.financial_operation_id | Operação financeira do serviço |
14.37 Composições de Serviços
Fonte: connector.servicos (pai e filho) + legado.servicos_tv + legado.servicos_tv_ex Destino: connector.servicos_compostos → erp.service_compositions Script: Cadastros/04.05-Composicoes.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
| (calculado) | erp_code | erp.service_compositions.erp_code | prefix('CMP_' + ...) |
servicos.codser (pai) | erp_code_composicao | erp.service_compositions.parent_id | Referência ao serviço composto pai |
servicos.codser (filho) | erp_code_servico | erp.service_compositions.service_product_id | Referência ao serviço filho |
servicos_compostos.preco | preco | erp.service_compositions.selling_price | Valor do componente no composto |
| (calculado) | porcentagem | erp.service_compositions.percentage | Percentual em relação ao total do pai |
Itens de TV (
legado.servicos_tv,legado.servicos_tv_ex) também são incluídos como filhos do pacote de TV correspondente.
14.38 Centro de Resultados
Fonte: legado.dados_pop Destino: connector.centro_de_resultados → erp.financial_cost_centers Script: Cadastros/06.01-CentroDeResultados.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
dados_pop.codpop | erp_code | erp.financial_cost_centers.code | prefix('CRT_' + codpop) |
dados_pop.nome_pop | nome | erp.financial_cost_centers.title | TRIM |
14.39 Grupos de Produtos
Fonte: legado.categorias + legado.sub_categorias Destino: connector.grupos_produtos → erp.service_product_groups Script: Cadastros/09.01-GrupoProdutos.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
sub_categorias.codscat | erp_code | erp.service_product_groups.erp_code | prefix('SPG_' + codscat + '_P') |
sub_categorias.descri_scat | codigo | erp.service_product_groups.code | Código da subcategoria |
sub_categorias.descri_scat | nome | erp.service_product_groups.title | Nome da subcategoria |
categorias.descri_cat + sub_categorias.descri_scat | descricao | erp.service_product_groups.description | cat > subcat — hierarquia descritiva |
| (fixo) | ativo | erp.service_product_groups.active | TRUE |
Também é inserido um grupo genérico
SPG_MIG_999_Ppara produtos sem categoria mapeável no legado.
14.40 Produtos
Fonte: legado.produtos Destino: connector.produtos → erp.service_products (type=1 — Produto) Script: Cadastros/09.03-Produtos.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
produtos.codprod | erp_code | erp.service_products.erp_code | prefix('PRD_' + codprod) |
sub_categorias.codscat | erp_code_grupo | erp.service_products.service_product_group_id | Referência ao grupo de produto |
produtos.nome_prod | nome_produto | erp.service_products.title | TRIM |
produtos.ncm | codigo_ncm | erp.service_products.ncm | Código NCM fiscal |
produtos.preco_venda | preco_venda | erp.service_products.selling_price | Preço de venda |
produtos.estoque | controla_estoque | erp.service_products.inventory_update | Controla estoque? |
produtos.imobilizado | gera_objetos | erp.service_products.generate_patrimony | 'S' → TRUE (gera patrimônio) |
produtos.activo | ativo | erp.service_products.active | 'S' → TRUE |
14.41 Equipes
Fonte: legado.cargos Destino: connector.equipe → erp.teams Script: Cadastros/10.02-Equipes.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
cargos.codcar | erp_code | erp.teams.erp_code | prefix('TM_' + codcar) |
cargos.nome_car | titulo | erp.teams.title | TRIM |
Também é inserida uma equipe genérica
TM_MIG_999para solicitações sem equipe mapeável.
14.42 Tipos de Solicitações
Fonte: legado.oco_padrao + legado.tipo_orden_s Destino: connector.tipos_solicitacao → erp.incident_types Script: Cadastros/10.03-TiposSolicitacoes.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
oco_padrao.codocop | erp_code | erp.incident_types.erp_code | prefix('IT_' + codocop + '_O') |
tipo_orden_s.codtords | erp_code | erp.incident_types.erp_code | prefix('IT_' + codtords + '_OS') |
oco_padrao.titulo / tipo_orden_s.titulo | titulo | erp.incident_types.title | TRIM |
oco_padrao.codigo / tipo_orden_s.codigo | codigo | erp.incident_types.code | Código interno |
| (fixo) | tipo_solicitacao | erp.incident_types.solicitation_type | 3 = Ambos (Externo e Interno) |
oco_padrao.activo / tipo_orden_s.activo | ativo | erp.incident_types.active | 'S' → TRUE |
oco_padraogera tipos para ocorrências externas;tipo_orden_sgera tipos para ordens de serviço internas.
14.43 Matrizes de Atendimento
Fonte: legado.oco_padrao + legado.tipo_orden_s Destino: connector.matrizes_atendimento → erp.solicitation_service_categories (categorias) + erp.solicitation_category_matrices Script: Cadastros/10.04-Matrizes.sql
O script constrói a árvore de categorização em até 5 níveis e define o tipo de matriz (Externo=1 ou Interno=2).
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
oco_padrao.codocop | erp_code | erp.solicitation_category_matrices.erp_code | prefix('MAT_E_' + ...) — Externo |
tipo_orden_s.codtords | erp_code | erp.solicitation_category_matrices.erp_code | prefix('MAT_I_' + ...) — Interno |
oco_padrao.categoria_N | categoria_1 .. categoria_5 | erp.solicitation_service_categories.title | Cada valor único de categoria vira um registro em solicitation_service_categories |
| (calculado) | tipo_de_matriz | erp.solicitation_category_matrices.matrix_type | 1=Externo / 2=Interno |
oco_padrao.activo | ativo | erp.solicitation_category_matrices.active | 'S' → TRUE |
14.44 Solicitações (Ocorrências e Ordens de Serviço)
Fonte: legado.ocorrencias (bloco 1) + legado.ordem_servico (bloco 2) Destino: connector.solicitacoes → erp.assignments Script: Operacional/10.04-Solicitacoes.sql (popula o connector) + Operacional/10.05-Solicitacoes_vinculos.sql (vincula clientes e contratos)
Bloco 1 — Ocorrências (legado.ocorrencias)
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
ocorrencias.codoco | erp_code | erp.assignments.erp_code | prefix('AT_' + codoco) |
ocorrencias.titulo | titulo | erp.assignments.title | TRIM |
ocorrencias.descricao | descricao | erp.assignments.description | Texto da ocorrência |
ocorrencias.status | status | erp.assignments.status | Mapeamento de status Integrator → ERP |
ocorrencias.data_abertura | data_abertura | erp.assignments.beginning_date | Cast DATE |
ocorrencias.data_fechamento | data_fechamento | erp.assignments.conclusion_date | Cast DATE |
usuarios.codusu | erp_code_responsavel | erp.assignments.responsible_id | prefix('USU_' + codusu) |
ocorrencias.codcli | erp_code_pessoa | erp.assignments.requestor_id | prefix('CLI_' + codcli) |
Bloco 2 — Ordens de Serviço (legado.ordem_servico)
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
ordem_servico.codords | erp_code | erp.assignments.erp_code | prefix('OS_' + codords) |
ordem_servico.titulo | titulo | erp.assignments.title | TRIM |
ordem_servico.descricao | descricao | erp.assignments.description | Texto da OS |
ordem_servico.status | status | erp.assignments.status | Mapeamento de status Integrator → ERP |
ordem_servico.data_abertura | data_abertura | erp.assignments.beginning_date | Cast DATE |
ordem_servico.data_fechamento | data_fechamento | erp.assignments.conclusion_date | Cast DATE |
14.45 Dados PIX das Faturas
Fonte: legado.faturas_pix (somente status_pix = 'ATIVA') Destino: connector.faturas_receber_pix → UPDATE em erp.financial_receivable_titles + INSERT em erp.financial_receivable_title_pix_integrations Script: Operacional/06.01.02-PixFaturas.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
faturas_pix.codfat | erp_code_fatura | erp.financial_receivable_titles.erp_code | Referência à fatura (FAT- + erp_code) |
faturas_pix.pix_tx_id | pix_tx_id | erp.financial_receivable_title_pix_integrations.transaction_id | ID da transação PIX |
faturas_pix.pix_qr_code | pix_qr_code | erp.financial_receivable_titles.pix_qr_code + erp.financial_receivable_title_pix_integrations.qr_code | QR Code do PIX |
faturas_pix.data_expiracao | data_expiracao | erp.financial_receivable_title_pix_integrations.pix_expiration | Data de expiração do PIX |
faturas_pix.juros_pix | juros_pix | erp.financial_receivable_title_pix_integrations.interest_amount | Juros aplicados |
faturas_pix.desconto_pix | desconto_pix | erp.financial_receivable_title_pix_integrations.discount_amount | Desconto aplicado |
Apenas registros com
status_pix = 'ATIVA'são migrados. A consolidação faz UPDATE noerp.financial_receivable_titlese INSERT emerp.financial_receivable_title_pix_integrationscom status=2 (Sucesso) e tipo=2 (Cobrança Vencimento).
14.46 Rateio de Contas a Pagar
Fonte: legado.det_contas_pag Destino: connector.contas_pagar_rateio → erp.financial_divide_cost_center_previsions Script: Operacional/06.05.01-Contas_Pagar_Rateio.sql
| Coluna Integrator | Coluna Connector | Coluna ERP Voalle | Transformação / Regra |
|---|---|---|---|
det_contas_pag.coddcp | erp_code | (campo de rastreamento) | prefix('CPR' + coddcp) |
det_contas_pag.codcpag | erp_code_conta_pagar | erp.financial_divide_cost_center_previsions.financial_payable_title_id | Referência à conta a pagar |
det_contas_pag.codemp | erp_code_local | (campo auxiliar) | Referência ao local |
det_contas_pag.codban | erp_code_caixas_contas | (campo auxiliar) | Referência ao caixa/banco |
det_contas_pag.codnat | code_natureza_financeira | erp.financial_divide_cost_center_previsions.financer_nature_id | Natureza financeira do rateio |
det_contas_pag.valor | valor | erp.financial_divide_cost_center_previsions.amount | Valor do rateio |
det_contas_pag.porcentagem | porcentagem | erp.financial_divide_cost_center_previsions.percentage | Percentual do rateio |
det_contas_pag.pago | pago | (campo auxiliar) | Indica se já estava pago no legado |
14.47 Ajuste de Valores dos Contratos
Destino: UPDATE em connector.itens_contrato.valor_unitario Script: Operacional/05.03-ValoresDosContratos.sql
Este script não cria uma nova tabela — chama a procedure
connector.valor_contratos_integrator()e depois aplica regras de negócio diretamente sobreconnector.itens_contrato, ajustandovalor_unitarioconforme descontos e tabelas de planos do legado.
| Ação | Coluna Afetada | Regra |
|---|---|---|
CALL connector.valor_contratos_integrator() | connector.itens_contrato.valor_unitario | Calcula o valor base dos itens a partir dos planos do legado |
| UPDATE desconto | connector.itens_contrato.valor_unitario | Aplica descontos de fidelidade e promoções cadastrados no legado |
Scripts desativados (sem migração ativa)
Os scripts abaixo estão inteiramente comentados e não executam nenhuma migração:
| Script | Motivo / Observação |
|---|---|
Cadastros/04.06-CiclosDeFaturamento.sql | Ciclos de faturamento não são migrados; o ERP recalcula a partir dos contratos |
Cadastros/08.08-Telefones.sql | Ramais telefônicos do legado não têm equivalente mapeado no ERP atual |
Cadastros/09.02-UnidadesMedida.sql | Unidades de medida são fixas no ERP; não requer migração do legado |
Cadastros/03.05-UsuariosPortal.sql | Usuários do portal do cliente não são migrados automaticamente |
Operacional/11.01.02-Agrupar_Planos.sql | Variante alternativa do agrupamento; substituída pelo script 11.01-Agrupar_Planos.sql |
15. Guia de Manutenção e Atualização deste Documento
Gatilhos para revisão
| Situação | O que revisar |
|---|---|
Novo campo migrado em clientes ou fornecedores | Seção 5 e tabela 14.10 / 14.11 |
| Novo tipo de serviço ou origem adicionada | Mapa Geral + seção 6 + tabela 14.18 |
| Mudança na lógica de agrupamento | Seção 6.4 |
| Nova tabela de rede sendo lida | Seções 4 e 7 + tabelas 14.6 a 14.9 e 14.20 |
| Novo status de fatura tratado | Seção 8.3 (tabela de status) |
| Novo script de Ajuste Inicial | Seção 13, lista de scripts |
| Script renomeado ou removido | Seção 13 + referências nas tabelas |
| Nova entidade migrada | Mapa Geral + nova seção + nova tabela em 14.XX |
Adição de bloco ao 99_Anexos.sql | Seção 11 (O que NÃO é migrado) |
Mapa seção → script(s) para conferir
| Seção | Arquivo(s) para comparar |
|---|---|
| Mapa Geral | Todos os scripts em Cadastros/ e Operacional/ |
| 2. Empresas → Locais | Cadastros/01.01-Locais.sql |
| 3.1 Grupos de Pessoas | Cadastros/03.01-GrupoPessoas.sql |
| 3.2 Grupos de Serviços | Cadastros/04.01-GruposServicos.sql |
| 3.3 Tipos de Cobrança | Cadastros/02.02-TiposCobranca.sql |
| 4.1-4.2 IPs e Grupos | Cadastros/08.02-GrupoIPs.sql, Cadastros/08.03-IPs.sql |
| 4.3 Concentradores | Cadastros/08.04-Concentradores.sql |
| 4.4 Pontos de Acesso | Cadastros/08.05-PontodeAcesso.sql |
| 4.5 Condomínios | Cadastros/08.07-Condominios.sql |
| 5. Pessoas (todos os blocos) | Operacional/03.02-Pessoas.sql |
| 5.6 Comunicações | Operacional/03.03-Comunicacoes.sql |
| 5.7 Endereços | Operacional/03.04-Enderecos.sql |
| 6.2 Contratos | Operacional/05.01-Contratos.sql |
| 6.3 Itens de Contrato | Operacional/05.02-ItensContrato.sql |
| 6.3 Valores | Operacional/05.03-ValoresDosContratos.sql |
| 6.4 Agrupamento | Operacional/11.01-Agrupar_Planos.sql + README-codsercli-contratos.md |
| 6.5 Eventos | Operacional/05.04-EventosContratos.sql |
| 7. Conexões | Operacional/08.07-Conexoes.sql |
| 8.2 Faturas | Operacional/06.01-Faturas.sql |
| 8.3 Faturas Recebidas | Operacional/06.02-FaturasRecebidas.sql |
| 8.4 Contas a Receber | Operacional/06.03-ContasReceber.sql |
| 8.5 Contas Recebidas | Operacional/06.04-ContasRecebidas.sql |
| 8.6 Contas a Pagar | Operacional/06.05-Contas_Pagar.sql |
| 8.7 Contas Pagas | Operacional/06.06-Contas_Pagas.sql |
| 8.8 Lançamentos | Operacional/07.03-LancamentosCaixaBanco.sql |
| 9. Patrimônios | Operacional/09.02_Patrimonios.sql |
| 10.1 Solicitações | Operacional/10.05-Solicitacoes_vinculos.sql |
| 10.2 Relatos | Operacional/10.06-Relatos.sql |
| 10.3 Encaminhamentos | Operacional/10.07-Encaminhamentos.sql |
| 11. Não migrados | Operacional/99_Anexos.sql |
Checklist de revisão rápida
- [ ] O Mapa Geral cobre todas as tabelas do legado lidas pelos scripts?
- [ ] Os prefixos de código na seção 12 (Rastreamento) correspondem ao que os scripts geram com
connector.prefix(...)? - [ ] Os critérios de agrupamento da seção 6.4 batem com as condições do
11.01-Agrupar_Planos.sql? - [ ] Os campos da seção 7 (Conexões) existem na tabela
connector.conexoes? - [ ] A tabela de status da seção 6.2 ainda cobre todos os
codesttratados em05.01-Contratos.sql? - [ ] A tabela de status de faturas na seção 8.3 cobre todos os valores de
statustratados em06.01-Faturas.sql? - [ ] A lista de scripts da seção 13 está completa e na ordem correta?
- [ ] Todas as 32 tabelas DE/PARA (seção 14) estão atualizadas?
Como pedir uma revisão ao assistente de IA
Revise o documento README-integrator-para-erp.md comparando com os scripts atuais
em Legados_Postgres/Integrator/Atual/. Verifique se alguma seção ficou desatualizada
e aponte o que mudou, seção por seção.
O assistente lerá os scripts atuais e comparará com o conteúdo deste arquivo, apontando as divergências encontradas.