Pular para conteúdo

Contrato do fluxo abastecimento

Status: Rascunho · Responsável: Gustavo Madruga · Atualizado em: 2026-07-27

Contrato do fluxo abastecimento do integrador-client (cliente coringa): backport do integrador do xposto — a tabela-espelho abastecimento replica a ABASTECIMENTO daquele integrador (só os campos que vão ao X-Adm) e é gravada no ERP pelo mesmo programa ZIM.

Status: rascunho — validar com a equipe X-Adm. O fluxo está implementado no cliente mas inativo: o espelho abastecimento ainda não existe no servidor/PowerSync, e o Main roda só o fluxo pied. Ativar = sincronizar o espelho e ligar o fluxo no Main.

1. O que vale daqui e o que vem do contrato base

Tudo que é comum — fluxo da execução (limpeza → envio → handshake → processamento → retorno), formato dos arquivos (fixed-width, windows-1252, CRLF, contador+tipo), regras de campo (texto/número/data), retorno com eco e cod_retorno, códigos 006/1XX/9XX, exit codes — vem do contrato base §§1-2 e 4-6. Este documento só define o que é específico do fluxo: a linha de continuação e o layout da tabela.

  • Linha de continuação (handshake §1 passo 5): Continuar — herdada do integrador do xposto; é como o ZIM sabe que o lote é de abastecimento.
  • Decisão de formato: o xposto usa um layout legado próprio (larguras irregulares, retorno S/N + motivo). AQUI o fluxo converge ao contrato base: mesmos campos e mesma ordem do escreverXpEnvio do xposto, mas no formato comum (contador+tipo, números em 18 posições, datetime 14, retorno com cod_retorno). O lado ZIM precisa acompanhar.

2. Arquivo de envio — tabela abastecimento (largura total da linha: 275)

Linha = contador(3) + tipo_registro(20) = abastecimento + campos abaixo. Offsets a partir de 0 (campo 1 começa no offset 23). Ordem = a do escreverXpEnvio do xposto.

# Campo Tipo Largura Offset Observação
1 abastec_bico_global numérico 0 dec 18 23 contador global do bico
2 id_almoxarifado texto 2 41
3 abastec_bico_diario numérico 0 dec 18 43 contador diário do bico
4 bico texto 3 61
5 data_hora_abastecimento datetime 14 64 AAAAMMDDHHMMSS
6 encerrante_inicial numérico 3 dec 18 78
7 encerrante_final numérico 3 dec 18 96
8 duracao texto 6 114 HHMMSS — o espelho traz duracao_abastec_segundos (segundos); o cliente converte
9 volume_abastecido numérico 3 dec 18 120
10 abastecimento_autorizado texto 1 138 S/N
11 data_hora_captura datetime 14 139 AAAAMMDDHHMMSS
12 id_usuario texto 6 153
13 id_motorista texto 6 159
14 id_produto texto 6 165
15 placa texto 10 171
16 odometro numérico 0 dec 18 181
17 id_empresa texto 4 199
18 odometro_anterior numérico 0 dec 18 203
19 limite_odometro numérico 0 dec 18 221
20 media_sugerida numérico 3 dec 18 239
21 tolerancia_media numérico 3 dec 18 257

3. Arquivo de retorno

Idêntico ao contrato base §4: Iniciou Zim na 1ª linha, depois uma linha por registro com eco do contador/tipo + cod_retorno + msg_retorno. Os casos que o xposto tratava por texto do motivo viram códigos:

Situação (retorno legado do xposto) Código no contrato novo
S (importado) 006
N + "ja foi importado no banco de dados" 006 (idempotente — já está lá)
N + "conflito" 9XX (reprocessável)
N + outro motivo 1XX (erro terminal; motivo em msg_retorno)

4. Pontos em aberto (validar com a equipe X-Adm)

  • Escalas e larguras (herdadas do xposto: encerrantes/volume/média/tolerância 3 dec; contadores/odômetros inteiros) — confirmar leitura em 18 posições.
  • Mapeamento dos motivos legados para 006/1XX/9XX (§3) — a equipe ZIM define os códigos concretos.
  • Convergência do lado ZIM ao formato do contrato base (o pAbast atual do xposto lê o layout legado).