Arquitetura do sistema

O módulo é uma biblioteca ISNAPP (padrão de extensão do ERP) composta por três arquivos e integrada a múltiplos bancos MySQL.
Figura 6 — Arquitetura em camadas: apresentação, lógica PHP e múltiplos bancos MySQL.
Bancos de dados envolvidos
Variável PHP
Nome do banco
Uso
$banco
Dinâmico (tenant)
Pedidos, itens, entidades, recebimentos
$bancoRelatorio
{banco}_relatorio
Tabela 
log com ponteiro de última execução
$bancoIntegrador
{banco}_integrador
Stage de integração LX (
stage_pedido_lx)
$bancoMasterRelatorio
franquia_osklen_relatorio
Tabela de destino 
franquia_1beat (compartilhada)
Para entender sem jargão: o sistema lê informações de três "pastas" diferentes no banco de dados e grava o resultado organizado em uma "pasta central" que o OneBeat consulta.
Tabelas de origem (leitura)
Tabela
Banco
Papel
movimentacao
{banco}
Cabeçalho dos pedidos e recebimentos
movimentacao_detalhe
{banco}
Itens (produtos) de cada movimentação
movimentacao_movimentacao
{banco}
Vínculo pai-filho (pedido → recebimento)
entidade
{banco}
Dados da filial (loja)
juridica
{banco}
CNPJ da filial
stage_pedido_lx
{banco}_integrador
Integração com sistema LX (LEFT JOIN)
log
{banco}_relatorio
Controle de ponteiro (
procedure = 'franquia_1beat')
Classe principal
Classe: 
onebeat_pedidos_faturados extends 
util
Token: 
6b5b2af8-ab25-4135-9551-b3cb3e055f1a
CoreVersion: 3
Métodos públicos principais:
index() — exibe visual.html
executar() — execução principal (sincronização)
verificaLock() — controle de concorrência
getPonteiroExecucao() — última data processada
getPedidoUltimaVerificacao() — data do pedido mais recente
getPedidosRecebidos() — INSERT/UPDATE na tabela destino
atualizaPonteiroExecucao() — grava novo ponteiro
Nota: o método 
removePedidosStatus() existe no código mas está comentado. A lógica de status (INATIVO, CONFIRMADO) é tratada diretamente no INSERT.
Mecanismo de lock (concorrência)
Para evitar que duas execuções rodem ao mesmo tempo, o módulo usa um arquivo de lock no diretório temporário do sistema operacional:
/tmp/{banco}.onebeat_pedidos_faturados_executar.lock
Usa 
flock(LOCK_EX | LOCK_NB) — lock exclusivo não-bloqueante. Se outro processo já estiver rodando, lança exceção: "Ja tem outro processo em execucao, aguarde o termino". O lock é liberado no bloco 
finally via 
__liberaLock().