Instalação e preparação
O arquivo instalador.php cuida dessa preparação em duasquatro etapas, chamadas v1, v2, v3 e . Cada etapa deve ser executada na ordem.v2v4


Figura 4 — Fluxo de instalação: primeirov1 cria o bancobanco, (v1), depoisv2 cria a tabelatabela, (v2).v3 e v4 aplicam migrações.
Etapa 1 — Criar o banco de dados (v1)
| Item | Detalhe |
|---|---|
| Método | instalador::v1() |
| Ação | CREATE DATABASE IF NOT EXISTS franquia_osklen_relatorio |
| Retorno de sucesso | setSubmit(true, "Feito") |
| Em caso de erro | Exceção registrada via error_byexception() |
/bibliotecas/6b5b2af8-ab25-4135-9551-b3cb3e055f1a/onebeat_pedidos_faturados/installO instalador herda de
biblioteca e usa a classe util para executar SQL com permissão elevada (query($sql, true)).Etapa 2 — Criar a tabela (v2)
A tabela franquia_1beat é criada com todos os campos necessários para armazenar pedidos, recebimentos e informações da filial. Detalhes completos no capítulo 7.
| Característica | Valor |
|---|---|
| Motor | InnoDB |
| Charset | utf8mb4 |
| Chave primária | ID_PRODUTO_GRADE + COD_FILIAL + ID_FILIAL + ID_MOVIMENTACAO_PAI + CNPJ_FILIAL |
| Índice adicional | IDX_1BEAT_SKU (campo SKU) |

Figura 5 — Estrutura criada pelo instalador: um banco com uma tabela principal.
Etapa 3 — Migração de colunas (v3)
A etapa v3 evolui a tabela para o formato atual de controle de status e quantidades cortadas. Executa em transação e é idempotente (verifica colunas antes de alterar).
INATIVO
Coluna int (0/1) que substitui o antigo enum SITUACAO
Migra dados
Registros com SITUACAO = 'DESATIVO' recebem INATIVO = 1
Remove SITUACAO
Enum obsoleto removido após migração
Remove DATA_ATUALIZACAO
Atualizações passam a ser rastreadas por DATA_TRANSFERENCIA
Adiciona QTDE_CORTADA
Quantidade cortada por item (decimal 10,2)
Etapa 4 — Confirmação e exclusão (v4)
A etapa v4 adiciona campos de controle para o consumo pelo OneBeat. Também executa em transação e é idempotente.
CONFIRMADO
Flag int (0/1) — indica se o pedido está apto para o OneBeat
Adiciona DATA_EXCLUSAO_MOVIMENTACAO
Timestamp com a data de exclusão/cancelamento do pedido
Dependências
- Classe base
biblioteca(framework ISNAPP) - Classe
utildo token12262a22-30ab-11e9-bb4c-127101af6b0d - Array
$requiresestá vazio — sem dependências de outras bibliotecas versionadas - Bancos do tenant já devem existir:
{banco},{banco}_relatorio,{banco}_integrador
IF NOT EXISTS, mas não é necessário em rotina.