Rotina: Integração Contábil (Manual vs Automática)
Como o JunsoftERP converte movimentos operacionais (notas, estoque, caixa, contas) em lançamentos contábeis. Processo envolvendo MCB001 (Parâmetros Contábeis) e MCB003 (Integração Contábil), com ênfase na estratégia de iniciar manual e migrar para automático após limpar o histórico.
Rotina multi-tela do módulo contábil. Este documento descreve por que implantações geralmente começam com integração manual antes de habilitar a automática, como identificar e corrigir históricos travados, e como o filtro por tipo de documento (nota, avulso, ordem de produção) auxilia na reconciliação.
Contexto de Negócio
Todo movimento operacional — emissão de nota fiscal, baixa de conta, ajuste de estoque, recebimento no caixa — precisa virar lançamento contábil (débito × crédito em MOVTOCONTABIL). Dois modos:
-
Automático: a cada movimento o sistema tenta gerar o lançamento contábil no mesmo instante. Se faltar algum dado (ex: conta contábil não mapeada, histórico não cadastrado), o movimento trava e o usuário não consegue concluir a operação operacional.
-
Manual: o movimento operacional grava normalmente. A geração contábil é executada em lote, sob demanda, via MCB003. Se faltar algo, o erro aparece no relatório da integração, não na frente do operador.
Recomendação do treinamento (~52:00–54:30):
"Se a integração estiver como automática e faltar algum histórico, ele vai ficar travando o tempo todo. Para a gente não ter essa trava incômoda, a gente tem que deixar ela manual. Depois que você ajusta para ficar automático, ele traz a integração de uma maneira extremamente inteligente, mas não dá nada — não precisa mais fazer nada."
A estratégia é:
- Começar manual na implantação
- Rodar MCB003 em lote, identificar o que trava
- Ajustar cadastros (históricos, contas, parâmetros)
- Repetir até zero travas
- Depois mudar para automático em MCB001
Telas Delphi Envolvidas
| Módulo | Papel na Rotina | Fonte |
|---|---|---|
| MCB001 | Parâmetros Contábeis — escolhe modo manual/automático, mapeia contas de clientes/fornecedores/impostos | source/MCB001/ |
| MCB003 | Integração Contábil — executa a geração dos lançamentos em lote | source/MCB003/ |
| MCB002 | Lançamentos Contábeis manuais — complementa o que a integração não cobre | source/MCB002/ |
| MCB005 | Zeramento — fecha período contábil, impede reintegração (exige estorno) | source/MCB005/ |
| MCB012 | Cadastro de Período de Liberação — libera/bloqueia datas para edição | source/MCB012/ |
| MCB017 | Reprocessamento de Centro de Custo | source/MCB017/ |
| TCB002 / TCB008 | Plano de Contas (Global / por Empresa) | source/TCB002/, source/TCB008/ |
| RCB* | Relatórios contábeis (balancete, DRE, razão) | source/RCB*/ |
Tabelas do Banco de Dados
MOVTOCONTABIL — Lançamentos Contábeis
DDL: docs/schema/tables/MOVTOCONTABIL.sql
Escrita por: MCB003 (automático), MCB002 (manual avulso), triggers de notas quando modo automático
| Campo | Descrição |
|---|---|
| CD_EMPRESA | Empresa (PK) |
| NR_LANCAMENTO | Sequencial (PK) |
| DT_LANCAMENTO | Data do lançamento |
| CD_HISTORICO | Histórico (FK → HISTORICO) — descritivo do fato contábil |
| DS_COMPLEMENTO | Complemento do histórico (preenchido com nome da pessoa, número da nota, etc.) |
| CD_CONTADEBITO | Conta debitada (FK → PLANOCONTAS) |
| CD_CONTACREDITO | Conta creditada (FK → PLANOCONTAS) |
| VL_LANCAMENTO | Valor |
| CD_CENTROCUSTO | Centro de custo |
| TP_DOCUMENTO | Origem: 'NS'=NF saída, 'NE'=NF entrada, 'CX'=caixa, 'CO'=conta, 'ES'=estoque, 'AV'=avulso |
| NR_DOCUMENTO | Número do documento de origem |
| CD_USUARIO | Usuário que gerou (MCB003) ou cadastrou (MCB002) |
| ST_INTEGRADO | 'S'=integrado / 'N'=pendente / 'E'=com erro |
Regra de reconciliação: SUM(VL_LANCAMENTO por CD_CONTADEBITO) = SUM(VL_LANCAMENTO por CD_CONTACREDITO) para cada dia.
INTEGRADOCTB — Controle de Períodos Integrados
DDL: docs/schema/tables/INTEGRADOCTB.sql
Escrita por: MCB003
| Campo | Descrição |
|---|---|
| CD_EMPRESA | Empresa |
| DT_INICIO / DT_FIM | Período processado |
| TP_INTEGRACAO | 'S'=Saída / 'E'=Entrada / 'A'=Avulsos / 'C'=Contas / 'ES'=Estoque |
| DT_PROCESSAMENTO | Quando foi integrado |
| QT_REGISTROS | Quantidade de lançamentos gerados |
| CD_USUARIO | Quem rodou |
Consulta visual em MCB003 mostra calendário com períodos integrados (verde) vs pendentes (cinza).
CONTASCTB / CONTASHISTORICOCTB — Vínculo Contas Financeiras × Contábeis
DDL: docs/schema/tables/CONTASCTB.sql, docs/schema/tables/CONTASHISTORICOCTB.sql
Escrita por: procedure GERA_INTEGRACAO (chamada por MCB003)
Relaciona cada baixa/pagamento/recebimento em CONTAS com seu lançamento gerado em MOVTOCONTABIL. Permite rastreabilidade: abrindo uma linha de MOVTOCONTABIL de recebimento, sistema mostra qual título originou.
PLANOCONTAS / PLANOEMPRESA — Plano de Contas
DDL: docs/schema/tables/PLANOCONTAS.sql, docs/schema/tables/PLANOEMPRESA.sql
Mantida por: TCB002 (global) ou TCB008 (por empresa)
Consumida por: MCB001 (parametrização), MCB002 (lançamento manual), MCB003 (integração)
Estrutura hierárquica. Máscara configurada em MCB001 (ex: 9.99.999).
HISTORICO / CONTASHISTORICO — Históricos Contábeis
DDL: docs/schema/tables/HISTORICO.sql
Usada em: MCB001 (mapeamento default), MCB002 (manual), MCB003 (integração)
Cada histórico define o "fato contábil" (ex: "Compra de Mercadoria", "Ajuste de Inventário"). Tem:
| Campo | Descrição |
|---|---|
| CD_HISTORICO | Código |
| DS_HISTORICO | Descrição |
| CD_CONTADEBITO | Conta débito default |
| CD_CONTACREDITO | Conta crédito default |
| DS_COMPLEMENTO | Template com variáveis (ex: "Nota Fiscal {NR_NOTA} - {CD_PESSOA}") |
No treinamento comentou-se que o sistema usa variável com o nome da pessoa, número da nota, etc., para que o complemento fique contextual.
NOTA, CONTAS, MOVESTOQUE, MOVTOCAIXA, CUPOMFISCAL — Origens da Integração
Todas essas tabelas são consumidas por MCB003. A procedure GERA_INTEGRACAO lê os movimentos pendentes (ST_INTEGRADO = 'N') no período e gera os MOVTOCONTABIL correspondentes.
ZERAMENTO — Fechamento de Período
DDL: docs/schema/tables/ZERAMENTO.sql
Escrita por: MCB005
| Campo | Descrição |
|---|---|
| CD_EMPRESA | Empresa |
| DT_FINAL | Data final do zeramento |
| DT_PROCESSAMENTO | Quando foi feito |
Regra crítica: existindo zeramento no período, MCB003 recusa reprocessar. Para reintegrar, precisa antes estornar o zeramento.
Stored Procedures
GERA_INTEGRACAO
Scripts/GERA_INTEGRACAO.sql
Entrada:
I_CD_EMPRESA — empresa
I_DT_INICIAL — data inicial do período
I_DT_FINAL — data final
I_TP_INTEGRACAO — 'S', 'E', 'A', 'C', 'ES'
I_CD_USUARIO — quem está executando
Saída:
O_QT_PROCESSADOS — quantos registros foram gerados
O_QT_COM_ERRO — quantos travaram
O_DS_MENSAGEM — relatório de erros
O que faz (resumido):
- Identifica movimentos
ST_INTEGRADO = 'N'no período + tipo - Para cada movimento:
- Localiza histórico correspondente (mapeamento em MCB001)
- Monta o lançamento em
MOVTOCONTABIL(D × C) - Preenche
DS_COMPLEMENTOcom variáveis (nome pessoa, número nota) - Se algum dado falta: marca
ST_INTEGRADO = 'E'e registra erro - Se tudo ok: marca
ST_INTEGRADO = 'S'
- Insere registro em
INTEGRADOCTB - Atualiza
CONTASCTB/CONTASHISTORICOCTB/MOVESTOQUECC
Causas comuns de trava:
- Pessoa (cliente/fornecedor) sem conta contábil em
CONTASPESSOA - Histórico não cadastrado para o tipo de operação
- Conta contábil referenciada não existe em
PLANOEMPRESA - Centro de custo obrigatório não informado no movimento de origem
- Período com zeramento ativo (MCB005)
REPROCESSA_CONTASPESSOA
Scripts/REPROCESSA_CONTASPESSOA.sql
Recria as contas contábeis de clientes/fornecedores a partir das regras em MCB001. Usada quando:
- Muda-se o padrão de contas (ex: passa a separar cliente PF × PJ)
- Novos clientes foram cadastrados e precisam de conta contábil específica
- Correção após erro de mapeamento
Acionada por botão dedicado em MCB003 ("Reprocessar Clientes e Fornecedores").
Outras Procedures Relacionadas
| Procedure | Script | Papel |
|---|---|---|
CALENDARIO | Scripts/CALENDARIO.sql | Verifica feriados no período (afeta DT_VENCIMENTO de contas geradas) |
VALIDA_CONTABILIDADE | Scripts/VALIDA_CONTABILIDADE.sql | Valida integridade antes de rodar integração |
LANCAMENTO_COMPOSTO | Scripts/LANCAMENTO_COMPOSTO.sql | Gera lançamento composto (1 D × N C) para notas com múltiplos impostos |
GRAVA_NOTACTB | Scripts/GRAVA_NOTACTB.sql | Grava registro contábil específico de nota fiscal |
RETORNA_SALDOCC | Scripts/RETORNA_SALDOCC.sql | Calcula saldo de conta em período (usado por relatórios RCB) |
Parâmetros (MCB001)
Parâmetros Estruturais do Plano de Contas
| Campo | Efeito |
|---|---|
NR_GRAUSPLANOCTB | Quantidade de níveis hierárquicos (ex: 3 = 9.99.999) |
DS_MASCARAPLANOCTB | Máscara (ex: 9.99.999) |
TP_PLANOCONTAS | 'G'=Global (TCB002) / 'E'=por Empresa (TCB008) |
TP_FORMATONEGATIVO | Como exibir valores negativos (parênteses, sinal, etc.) |
Tipo de Integração
| Campo | Efeito |
|---|---|
TP_INTEGRACAO | 'M'=Manual (MCB003 sob demanda) / 'A'=Automática (trigger em cada movimento) |
Este é o switch central do dilema manual/automático do treinamento.
Bloqueios por Data
| Campo | Efeito |
|---|---|
DT_BLOQUEIOESTOQUE | Data até a qual estoque está fechado — bloqueia lançamentos retroativos |
DT_BLOQUEIOFINANCEIRO | Idem para financeiro |
DT_BLOQUEIOCONTABIL | Idem para contabilidade |
DT_BLOQUEIOCAIXA | Idem para caixa |
Contas Padrão
| Campo | Efeito |
|---|---|
CD_CONTACLIENTE | Conta default para novos clientes |
CD_CONTAFORNECEDOR | Conta default para novos fornecedores |
CD_CONTACAIXA | Conta de caixa |
CD_CONTAJURO / CD_CONTAMULTA | Juros/multa financeiros |
Históricos Fiscais Padrão
| Campo | Efeito |
|---|---|
CD_HISTPAGTO | Histórico padrão de pagamento |
CD_HISTRECEB | Histórico padrão de recebimento |
CD_HISTAJUSTE | Histórico padrão de ajuste (estoque, caixa) |
Fluxo Completo (Estratégia Manual → Automática)
┌─────────────────────────────────────────────────────────────┐
│ FASE 1 — IMPLANTAÇÃO (manual) │
│ │
│ MCB001: TP_INTEGRACAO = 'M' (manual) │
│ Operação cotidiana roda normal │
│ (notas, contas, estoque gravam sem travar por contábil) │
│ │
│ Periodicamente (ex: semanal): │
│ Abrir MCB003 │
│ Selecionar período │
│ Marcar: [x] Saída [x] Entrada [x] Avulsos │
│ [x] Contas [x] Estoque │
│ Executar │
│ Ler relatório de erros │
│ Corrigir cadastros travados │
│ Reexecutar │
└────────────────────┬────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ FASE 2 — LIMPEZA DO HISTÓRICO │
│ │
│ Para cada erro recorrente: │
│ "Pessoa X sem conta contábil" │
│ → Ajustar CONTASPESSOA ou REPROCESSA_CONTASPESSOA │
│ "Histórico Y não cadastrado" │
│ → Cadastrar em HISTORICO │
│ "Conta Z não existe" │
│ → Cadastrar em PLANOEMPRESA (TCB008) │
│ │
│ Reprocessar MCB003 até relatório limpo │
└────────────────────┬────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ FASE 3 — TROCA PARA AUTOMÁTICA │
│ │
│ MCB001: TP_INTEGRACAO = 'A' │
│ Daí em diante cada movimento gera MOVTOCONTABIL na hora │
│ Se algum cadastro novo surgir com furo: vai travar o │
│ operador │
│ → Voltar temporariamente para 'M', reprocessar, ajustar │
└────────────────────┬────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ FASE 4 — FECHAMENTO DE PERÍODO │
│ │
│ MCB005 — Zeramento │
│ Após conferência de balancete (RCB001) │
│ Após DRE conferida (RCB004 / RCB005) │
│ Executa: grava em ZERAMENTO │
│ Depois disso: MCB003 NÃO permite reprocessar o período │
│ │
│ Para desfechar (em caso de erro descoberto): │
│ Estornar zeramento em MCB005 │
│ Reprocessar em MCB003 │
│ Novo zeramento │
└─────────────────────────────────────────────────────────────┘
Tipos de Integração em MCB003
Telas separam por fonte:
| Tipo | O que integra | Tabelas consumidas |
|---|---|---|
| Saída | NF de venda, transferência de saída, devolução de compra | NOTA (TP_NOTA='S'), ITEMNOTA |
| Entrada | NF de compra, transferência de entrada, devolução de venda | NOTA (TP_NOTA='E'), ITEMNOTA |
| Avulsos | Lançamentos manuais avulsos (sem documento fiscal) | CONTAS com TP_DOCTO='AV', MOVTOCAIXA avulso |
| Contas | Baixas/pagamentos/recebimentos de títulos | CONTASMOVTO, CONTASDUPLICA |
| Estoque | Todos os MOVESTOQUE do período (consumo, ajuste, transferência) | MOVESTOQUE |
Boa prática: rodar por tipo separado durante implantação para isolar erros. Ex: rodar só "Entrada" primeiro, ajustar tudo; depois "Saída"; e assim por diante.
Relatório da Integração (Pós-Processamento)
Após MCB003 rodar, disponível via RCB (Relatórios Contábeis):
- Linhas integradas com
DS_COMPLEMENTOpreenchido (ex: "Nota Fiscal 1234 - Cliente XYZ") - Antes do processo: usava variável fixa do nome da pessoa
- Hoje (melhoria comentada no treinamento): usa o histórico específico da operação, trazendo descrição contextualizada
Filtros possíveis:
- Por tipo de documento (nota, avulso, ordem de produção, transferência)
- Por período
- Por produto específico
- Por conta contábil
Regras de Negócio Importantes
1. Manual não grava em MOVTOCONTABIL até MCB003 rodar
Enquanto TP_INTEGRACAO = 'M', todos os movimentos operacionais ficam com ST_INTEGRADO = 'N' aguardando integração. Relatórios contábeis (balancete, DRE) antes da integração ficam incompletos.
2. Automático trava o operador
Quando TP_INTEGRACAO = 'A', se a NF de compra não consegue gerar lançamento contábil (ex: fornecedor sem conta), o sistema não salva a nota. Operador fica travado até o contador mapear a conta.
Boa prática em produção automática: manter equipe de retaguarda ágil para resolver casos de trava.
3. Reprocessamento recria, não duplica
Ao rodar MCB003 em período já integrado, o sistema remove os MOVTOCONTABIL anteriores e regenera. Não há duplicação — mas lançamentos manuais feitos em MCB002 são preservados (têm flag específica).
4. Zeramento é barreira
MCB005 grava data final em ZERAMENTO. Daí em diante, MCB003 bloqueia reprocessamento até estornar. Isso protege o fechamento contábil — uma vez que o balancete foi assinado, ninguém pode mexer no passado sem trilha.
5. Histórico é chave da integração
Sem histórico cadastrado para determinada operação, MCB003 não sabe quais contas debitar/creditar. Na implantação, inventariar todos os tipos de operação que a empresa faz e garantir histórico para cada um:
- Compra com/sem ST
- Venda com/sem ST
- Ajuste de inventário positivo/negativo
- Transferência entre empresas
- Devolução de compra
- Devolução de venda
- Pagamento à vista / a prazo
- Recebimento à vista / a prazo
- Juros recebidos / juros pagos
- Descontos concedidos / obtidos
6. Centro de Custo opcional × obrigatório
Se MCB001 configura centro de custo como obrigatório, todo MOVTOCONTABIL precisa de CD_CENTROCUSTO. Movimento sem esse preenchimento trava. MCB017 serve para reprocessar centro de custo retroativamente quando houve mudança de política.
Influências em Outros Módulos
→ Notas Fiscais
- Toda NF gerada em MNF001/TFA* tem campo
ST_INTEGRADO(inicialmente 'N') - MCB003 lê NOTAs pendentes do período, gera MOVTOCONTABIL, marca como 'S'
- Em modo automático, a emissão da NF chama
GERA_INTEGRACAOpara aquela NF sozinha
→ Contas a Pagar / Receber / Contas a Receber
- Baixas em CONTAS alimentam integração de tipo "Contas"
- Vínculo em
CONTASCTBpreserva rastreabilidade título × lançamento contábil - Juros e multa (se houver) viram lançamentos separados, conforme
CD_CONTAJUROeCD_CONTAMULTAde MCB001
→ Estoque e Movimentação
- Cada
MOVESTOQUEalimenta integração de tipo "Estoque" - Consumo em OP de pneu (parametrização recapagem) vira CMV
- Transferências (estoque rastreável) podem ou não gerar contábil — depende do
TP_NOTAe histórico da transferência
→ Caixa e PDV
- Cupom fiscal (CUPOMFISCAL) integra automaticamente ao tipo "Saída"
- Abertura/fechamento de caixa gera lançamento (débito caixa × crédito apurações)
→ Fiscal e SPED
- SPED Contábil exige
MOVTOCONTABILcompleto e sem furos - Ajuste fiscal de itens de nota vai para
AJUSTEFISCALITEMNOTA, também integrado por MCB003
→ Relatórios Gerenciais
- Balancete (RCB001), DRE (RCB004), Razão (RCB007), Livro Diário (RCB012) leem
MOVTOCONTABIL - SuperView/dashboards podem consumir totalizações por período
Pontos de Atenção
-
Não migrar para automática prematuramente — o treinamento é enfático: migrar para automática antes de limpar históricos gera travas constantes e frustra o operador. Melhor ficar meses em manual até relatório limpo.
-
Integração parcial não é recomendada — marcar só alguns tipos (ex: Saída e Entrada, mas não Contas) deixa livro contábil desbalanceado. Para auditoria, todas as 5 origens precisam estar integradas no mesmo período.
-
Zeramento é definitivo em termos operacionais — desfazer requer autorização do contador + estorno em MCB005 + justificativa. Evite fechar período sem conferência plena.
-
Transferência retroativa em período integrado — caso típico: usuário usa MEQ008 para lançar estoque em data passada já integrada. O
MOVESTOQUEretroativo não é integrado automaticamente. Precisa reprocessar MCB003 do período, o que pode afetar balancete já fechado. -
Filtro por tipo de documento é seu aliado — relatório com filtro "Avulso" mostra só o que foi ajuste manual (sem NF, sem OP). Filtro "Ordem de Produção" isola o CMV. Usar ativamente para reconciliação.
-
Complemento no histórico (template com variável) — aproveitar para que o relatório contábil já apareça com "NF 1234 - Cliente XYZ" em vez de genérico "Venda". Ajuda contador e auditoria externa.
-
Após zeramento, Data de Bloqueio vira escudo —
MCB001.DT_BLOQUEIOCONTABILevita que alguém consiga cadastrarMOVTOCONTABILmanual em período zerado. É camada adicional ao ZERAMENTO.
Fonte
- Treinamento SM Pneus – Produção (transcrição em
docs/transcricoes/SM-Pneus-Produ-o-8cc89ff3-7e72.json) - Trecho relevante: 51:30 a 01:05:30 (estratégia manual/automática, históricos, relatórios, integração de mês)
- Mensagem-chave do implantador: "A gente vai fechar ela manual... até a gente deixar os históricos corretos, essa integração tem que ser feita manualmente. Depois que você ajusta, aí não precisa mais fazer nada."
- Telas referenciadas:
- Rotinas relacionadas: Transferência Estoque Rastreável, Parametrização Consumo Recapagem