Migration V0.7.00.5 / V0.7.00.6 — ct_lote.arquivo_ipl

Chave de negócio (correta)

UNIQUE (lote, empresa, filial, ano, mes)   -- constraint const_ct_lote_loemfianme
Empresa Filial Ano Mês Lotes permitidos
1 1 2026 05 000001, 000002, 000003, …
1 1 2026 06 000001, 000002, 000003, … (reinicia numeração no novo mês)

O código 000001 no arquivo IPL é apenas informativo; no banco cada importação nova no mês recebe o próximo número de lote livre.

O que a migration faz

V0.7.00.5

  1. arquivo_ipl VARCHAR(80) — rastreio do .IPL de origem.
  2. Mantém/restaura const_ct_lote_loemfianme em (lote, empresa, filial, ano, mes).
  3. Remove const_ct_lote_loemfi (só empresa/filial/lote — impedia lote 1 em meses diferentes).
  4. Remove UK errada uk_ct_lote_empresa_filial_periodo_lote_dia se existir.
  5. uk_ct_lote_arquivo_ipl_periodo — um registro por arquivo IPL por mês (reimportação).

V0.7.00.6 — corretivo se V0.7.00.5 antigo já tiver sido aplicado com UK por diareferencia.

Três IPL de teste (mês 05/2026)

Arquivo ct_lote.lote diareferencia arquivo_ipl
003AA_20260501.IPL 000001 01 003AA_20260501.IPL
003AA_20260504.IPL 000002 04 003AA_20260504.IPL
003AA_20260505.IPL 000003 05 003AA_20260505.IPL

Entidade JPA

Batch.iplSourceFilearquivo_ipl
@UniqueConstraint(name = "const_ct_lote_loemfianme", columnNames = { batch, company, branch, year, month })

Automations

_resolve_batch_lote:

  1. Busca por arquivo_ipl → reimportação do mesmo arquivo.
  2. Senão MAX(lote numérico) + 1 no período → novo lote 2, 3…