Pular para o conteúdo principal

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 é:

  1. Começar manual na implantação
  2. Rodar MCB003 em lote, identificar o que trava
  3. Ajustar cadastros (históricos, contas, parâmetros)
  4. Repetir até zero travas
  5. Depois mudar para automático em MCB001

Telas Delphi Envolvidas​

MóduloPapel na RotinaFonte
MCB001Parâmetros Contábeis — escolhe modo manual/automático, mapeia contas de clientes/fornecedores/impostossource/MCB001/
MCB003Integração Contábil — executa a geração dos lançamentos em lotesource/MCB003/
MCB002Lançamentos Contábeis manuais — complementa o que a integração não cobresource/MCB002/
MCB005Zeramento — fecha período contábil, impede reintegração (exige estorno)source/MCB005/
MCB012Cadastro de Período de Liberação — libera/bloqueia datas para ediçãosource/MCB012/
MCB017Reprocessamento de Centro de Custosource/MCB017/
TCB002 / TCB008Plano 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

CampoDescrição
CD_EMPRESAEmpresa (PK)
NR_LANCAMENTOSequencial (PK)
DT_LANCAMENTOData do lançamento
CD_HISTORICOHistórico (FK → HISTORICO) — descritivo do fato contábil
DS_COMPLEMENTOComplemento do histórico (preenchido com nome da pessoa, número da nota, etc.)
CD_CONTADEBITOConta debitada (FK → PLANOCONTAS)
CD_CONTACREDITOConta creditada (FK → PLANOCONTAS)
VL_LANCAMENTOValor
CD_CENTROCUSTOCentro de custo
TP_DOCUMENTOOrigem: 'NS'=NF saída, 'NE'=NF entrada, 'CX'=caixa, 'CO'=conta, 'ES'=estoque, 'AV'=avulso
NR_DOCUMENTONúmero do documento de origem
CD_USUARIOUsuá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

CampoDescrição
CD_EMPRESAEmpresa
DT_INICIO / DT_FIMPeríodo processado
TP_INTEGRACAO'S'=Saída / 'E'=Entrada / 'A'=Avulsos / 'C'=Contas / 'ES'=Estoque
DT_PROCESSAMENTOQuando foi integrado
QT_REGISTROSQuantidade de lançamentos gerados
CD_USUARIOQuem 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:

CampoDescrição
CD_HISTORICOCódigo
DS_HISTORICODescrição
CD_CONTADEBITOConta débito default
CD_CONTACREDITOConta crédito default
DS_COMPLEMENTOTemplate 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

CampoDescrição
CD_EMPRESAEmpresa
DT_FINALData final do zeramento
DT_PROCESSAMENTOQuando 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):

  1. Identifica movimentos ST_INTEGRADO = 'N' no período + tipo
  2. Para cada movimento:
    • Localiza histórico correspondente (mapeamento em MCB001)
    • Monta o lançamento em MOVTOCONTABIL (D × C)
    • Preenche DS_COMPLEMENTO com 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'
  3. Insere registro em INTEGRADOCTB
  4. 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​

ProcedureScriptPapel
CALENDARIOScripts/CALENDARIO.sqlVerifica feriados no período (afeta DT_VENCIMENTO de contas geradas)
VALIDA_CONTABILIDADEScripts/VALIDA_CONTABILIDADE.sqlValida integridade antes de rodar integração
LANCAMENTO_COMPOSTOScripts/LANCAMENTO_COMPOSTO.sqlGera lançamento composto (1 D × N C) para notas com múltiplos impostos
GRAVA_NOTACTBScripts/GRAVA_NOTACTB.sqlGrava registro contábil específico de nota fiscal
RETORNA_SALDOCCScripts/RETORNA_SALDOCC.sqlCalcula saldo de conta em período (usado por relatórios RCB)

Parâmetros (MCB001)​

Parâmetros Estruturais do Plano de Contas​

CampoEfeito
NR_GRAUSPLANOCTBQuantidade de níveis hierárquicos (ex: 3 = 9.99.999)
DS_MASCARAPLANOCTBMáscara (ex: 9.99.999)
TP_PLANOCONTAS'G'=Global (TCB002) / 'E'=por Empresa (TCB008)
TP_FORMATONEGATIVOComo exibir valores negativos (parênteses, sinal, etc.)

Tipo de Integração​

CampoEfeito
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​

CampoEfeito
DT_BLOQUEIOESTOQUEData até a qual estoque está fechado — bloqueia lançamentos retroativos
DT_BLOQUEIOFINANCEIROIdem para financeiro
DT_BLOQUEIOCONTABILIdem para contabilidade
DT_BLOQUEIOCAIXAIdem para caixa

Contas Padrão​

CampoEfeito
CD_CONTACLIENTEConta default para novos clientes
CD_CONTAFORNECEDORConta default para novos fornecedores
CD_CONTACAIXAConta de caixa
CD_CONTAJURO / CD_CONTAMULTAJuros/multa financeiros

Históricos Fiscais Padrão​

CampoEfeito
CD_HISTPAGTOHistórico padrão de pagamento
CD_HISTRECEBHistórico padrão de recebimento
CD_HISTAJUSTEHistó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:

TipoO que integraTabelas consumidas
SaídaNF de venda, transferência de saída, devolução de compraNOTA (TP_NOTA='S'), ITEMNOTA
EntradaNF de compra, transferência de entrada, devolução de vendaNOTA (TP_NOTA='E'), ITEMNOTA
AvulsosLançamentos manuais avulsos (sem documento fiscal)CONTAS com TP_DOCTO='AV', MOVTOCAIXA avulso
ContasBaixas/pagamentos/recebimentos de títulosCONTASMOVTO, CONTASDUPLICA
EstoqueTodos 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_COMPLEMENTO preenchido (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_INTEGRACAO para aquela NF sozinha

→ Contas a Pagar / Receber / Contas a Receber​

  • Baixas em CONTAS alimentam integração de tipo "Contas"
  • Vínculo em CONTASCTB preserva rastreabilidade título × lançamento contábil
  • Juros e multa (se houver) viram lançamentos separados, conforme CD_CONTAJURO e CD_CONTAMULTA de MCB001

→ Estoque e Movimentação​

  • Cada MOVESTOQUE alimenta 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_NOTA e 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 MOVTOCONTABIL completo 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​

  1. 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.

  2. 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.

  3. Zeramento é definitivo em termos operacionais — desfazer requer autorização do contador + estorno em MCB005 + justificativa. Evite fechar período sem conferência plena.

  4. Transferência retroativa em período integrado — caso típico: usuário usa MEQ008 para lançar estoque em data passada já integrada. O MOVESTOQUE retroativo não é integrado automaticamente. Precisa reprocessar MCB003 do período, o que pode afetar balancete já fechado.

  5. 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.

  6. 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.

  7. Após zeramento, Data de Bloqueio vira escudo — MCB001.DT_BLOQUEIOCONTABIL evita que alguém consiga cadastrar MOVTOCONTABIL manual 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:
    • MCB001 — Parâmetros Contábeis
    • MCB003 — Integração Contábil
    • MCB002 — Lançamentos Contábeis
    • MCB005 — Zeramento
    • MCB012 — Período de Liberação
  • Rotinas relacionadas: Transferência Estoque Rastreável, Parametrização Consumo Recapagem