Controle de abastecimento interno de combustível · Café Orfeu · v1 · 25/09/2026
A Café Orfeu abastece a frota própria em três tanques na sede e em um caminhão-comboio com bico e contador. Tratores, colheitadeiras, caminhões, utilitários e geradores são abastecidos ao longo do dia, na maioria das vezes longe da sede. Hoje a saída de combustível não deixa rastro estruturado: não se sabe qual equipamento recebeu o quê, em que horário, nem por quem.
O objetivo do processo é fazer cada litro que sai do tanque ter equipamento, responsável, horário e quantidade registrados no momento em que sai, validar essa informação contra o cadastro do equipamento, submeter à supervisão o que fugir da regra e baixar o estoque no Protheus automaticamente. O ganho não é impedir fisicamente o desvio — é passar a ter dado para detectá-lo e responsabilizar.
A alternativa avaliada antes, o sistema de posto de combustível, foi descartada: exige bomba automatizada, controlador e medidor embarcado no caminhão, um investimento em equipamento desproporcional para uso interno, sem venda de combustível e sem obrigação fiscal associada.
| Ator | Lane no BPMN | Responsabilidade |
|---|---|---|
| Operador de campo | Lane_Operador | Registra o abastecimento no app móvel e acompanha os próprios registros; corrige o que a supervisão devolveu |
| Supervisão de frota | Lane_Supervisao | Decide sobre exceções (confirmar, pedir correção ou abrir ocorrência) e confere registros sorteados na amostragem |
| Administrativo / Almoxarifado | Lane_Administrativo | Mantém cadastros, lança entrada de carga, cobra sincronização, apura ocorrências e trata erro de integração |
| Sistema | Lane_Sistema | Sincroniza fila offline, valida regras, integra com o Protheus, atualiza indicadores |
| Quem recebe a carga no pátio | Lane_EntradaCampo | Captura a descarga pelo app móvel: tanque, litros, régua e fotos. Não informa nada fiscal |
| Operador do comboio | Lane_EntradaCampo | Registra a transferência de combustível do tanque da sede para o comboio |
| Administrativo / Almoxarifado | Lane_EntradaAdministrativo | Associa a nota à carga capturada, confere a divergência e decide: aceitar ou abrir tratativa com o fornecedor |
| Sistema | Lane_EntradaSistema | Calcula a divergência com a nota, lança entrada e transferência no Protheus e recalcula o saldo dos tanques |
| Entidade | Campos principais |
|---|---|
| Equipamento | Identificação interna, placa (quando houver), tipo, capacidade do tanque em litros, consumo esperado (L/h para máquina, km/L para veículo de estrada), centro de custo, situação |
| Responsável | Matrícula, nome, função, perfil (registra / aprova / administra), dispositivo |
| Tanque | Identificação, produto (diesel S10, S500, gasolina), capacidade, saldo de abertura do mês, última medição física, indicador de tanque móvel (o comboio). O saldo corrente não é campo: é calculado |
| Abastecimento | Número do processo, tanque de origem, equipamento, responsável, litros, horímetro ou hodômetro, data e hora do abastecimento, data e hora da sincronização, classificação da validação, decisão da supervisão (confirmado, correção solicitada, em ocorrência), número do movimento no Protheus |
| Solicitação de correção | Abastecimento de origem, campo apontado como errado, comentário da supervisão, prazo para devolver, autor da solicitação, data e hora, situação (aberta, devolvida, vencida) |
| Ocorrência | Abastecimento de origem, tipo (suspeita de desvio, possível falha mecânica, erro operacional recorrente, outro), gravidade, responsável por apurar, descrição, se gera ajuste de estoque, data de abertura e desfecho da apuração |
| Entrada de carga | Capturado em campo: placa do caminhão, transportadora, quem capturou, data e hora, observação e anexos. Associado na conferência: nota fiscal, fornecedor, produto, litragem declarada, divergência em litros e em percentual, decisão e situação da tratativa |
| Tratativa com fornecedor | Carga de origem, diferença cobrada em litros e percentual, responsável pela tratativa, o que será cobrado (carta de correção, abatimento, reentrega, devolução ou apuração interna), justificativa e desfecho. Não gera movimento de estoque |
| Destino da carga filho | Uma linha por tanque, porque a carga pode ser dividida entre tanques do mesmo produto: tanque de destino, litros efetivamente descarregados, medição do tanque antes e depois da descarga |
| Transferência | Tanque de origem, destino (o comboio), litros, responsável, data e documento de transferência no Protheus. Não tem centro de custo — transferência não é despesa de equipamento |
RN-01
O registro é feito no app móvel do Fluig, na tarefa Task_RegistrarAbastecimento, no momento do
abastecimento. Campos obrigatórios: tanque de origem, equipamento, responsável, litros e horímetro ou
hodômetro.
RN-02 Equipamentos sem placa (trator, colheitadeira, gerador, implemento) são identificados pela identificação interna cadastrada. Veículos de estrada aceitam também a placa. A seleção é sempre a partir do cadastro — não há digitação livre de equipamento.
RN-03 Ao selecionar o equipamento, o app exibe capacidade, consumo esperado, último abastecimento e centro de custo. O operador enxerga o contexto antes de informar a litragem.
RN-04
Um registro devolvido pela supervisão retorna ao operador em Task_CorrigirRegistro com o campo
apontado como errado, o comentário da decisão e o prazo para devolver. A versão original é preservada na
trilha; a correção gera nova versão e reinicia a validação.
RN-04a O app do operador tem duas abas: o registro em si e a lista dos próprios abastecimentos, com a situação de cada um (pendente de sincronização, confirmado, aguardando conferência, correção solicitada, em ocorrência). Os registros com correção solicitada aparecem no topo e a aba mostra um contador de pendências, para que o operador não dependa de aviso por rádio para saber que tem tarefa aberta.
RN-05
O app opera sem conectividade. O registro é gravado no dispositivo e entra em fila; a sincronização acontece
em ServiceTask_SincronizarRegistro quando o aparelho reencontra rede.
RN-06 O registro carrega a data e hora em que o abastecimento ocorreu, não a da sincronização. Ambas ficam gravadas.
RN-07
O boundary timer TimerBoundary_SemSincronizar (PT12H, não-interrompente) aciona
Task_CobrarSincronizacao quando um dispositivo fica doze horas sem enviar a fila. A cobrança não
cancela nada e o fluxo retorna à sincronização.
Executadas em ServiceTask_ValidarRegrasAbastecimento, com pré-verificação no próprio dispositivo
para que o operador saiba do problema ainda em campo.
| Regra | Critério | Efeito |
|---|---|---|
| RN-08 | Litragem maior que a capacidade do tanque do equipamento | Bloqueia o registro. Limite físico, não admite exceção. |
| RN-09 | Litragem entre 90% e 100% da capacidade | Classifica como exceção e envia à supervisão |
| RN-10 | Consumo calculado fora da faixa esperada do equipamento, a partir da variação do horímetro ou hodômetro | Classifica como exceção |
| RN-11 | Litragem maior que o saldo calculado do tanque de origem (ver RN-32) | Classifica como exceção — pode indicar entrada de carga não lançada |
| RN-11a | Origem em tanque da sede com destino no caminhão-comboio | Pede o tipo de movimento: transferência (padrão) ou consumo próprio do caminhão. Ver RN-33 |
| RN-12 | Mesmo equipamento, mesma litragem, intervalo menor que dez minutos | Classifica como exceção por suspeita de duplicidade |
RN-13
Nem toda movimentação passa pela supervisão. O gateway Gateway_ExcecaoDetectada encaminha à
supervisão apenas o que violou alguma regra; o restante segue para a baixa de estoque.
RN-14
Em Task_AnalisarExcecao a supervisão vê o motivo da exceção, o histórico do equipamento e o do
operador. Gateway_DecisaoSupervisao tem três saídas — confirmar, pedir correção e abrir
ocorrência. Nenhuma delas desfaz o abastecimento: o combustível já saiu do tanque no momento do registro.
O que a decisão define é o destino da informação.
RN-15
Confirmar não abre formulário. A supervisão atesta que a informação está correta e o
registro segue direto para ServiceTask_BaixarEstoqueProtheus.
RN-16
Pedir correção exige o campo apontado como errado (equipamento, litragem, horímetro, tanque
de origem, responsável ou outro), um comentário obrigatório para o operador e um prazo para devolver. A
tarefa volta ao campo em Task_CorrigirRegistro e o registro não é integrado enquanto o dado
não estiver certo.
RN-17
Abrir ocorrência exige tipo, gravidade, responsável por apurar, descrição obrigatória e a
indicação de se gera ajuste de estoque. O registro sai da fila do operador e passa a
Task_ApurarOcorrencia. Em Gateway_AjusteEstoque, com ajuste o movimento é lançado
no Protheus e o estoque reflete a saída física; sem ajuste o fluxo encerra em
EndEvent_OcorrenciaRegistrada e a diferença aparece na conciliação mensal do tanque
(Subprocess_ConciliacaoTanques).
RN-18 Nenhum registro em exceção é integrado ao Protheus antes da decisão da supervisão.
RN-19
Entre os registros aprovados nas regras, Gateway_Amostragem sorteia uma fração para conferência
em Task_ConferirAmostragem, com peso maior para os de valor mais alto. A amostragem existe para
detectar o desvio sistemático que cabe dentro dos limites — por exemplo, registros recorrentes logo abaixo da
capacidade do equipamento.
RN-20
O boundary timer TimerBoundary_AprovacaoParada (P2D, não-interrompente) aciona
Task_EscalarAprovacao, que notifica o gestor por e-mail sem cancelar a tarefa pendente.
| Sistema | Sentido | Padrão | Operação |
|---|---|---|---|
| Protheus (ERP) | Fluig → Protheus | Conector REST (preferencial) ou JCo | Movimento interno de saída de combustível, com centro de custo do equipamento |
| Protheus (ERP) | Protheus → Fluig | Dataset com cache | Catálogo de produtos, centros de custo e saldo de estoque por tanque |
RN-21
A integração acontece em ServiceTask_BaixarEstoqueProtheus, sem ação humana, e é idempotente: a
chave é o número do processo Fluig, de modo que reenvio não duplica movimento.
RN-22
Falha na chamada dispara BoundaryError_Protheus (interrompente), que leva a
Task_DiagnosticarIntegracao. Após a correção, o movimento é reenviado — loop até integrar.
RN-23
Gateway_IntegracaoOk só libera o fluxo com a confirmação do ERP. Resposta ausente ou negativa
volta para diagnóstico.
RN-24
A entrada de combustível nos tanques e a transferência para o comboio têm processo próprio, em
Process_EntradaCombustivel, detalhado na seção 9. Os dois processos se encontram no saldo do
tanque: a entrada alimenta a conta da RN-32, que a regra de saldo insuficiente (RN-11) consulta no momento
do registro do abastecimento.
O lado do "entrou" vive no segundo pool do diagrama, Pool_EntradaCombustivel
(Process_EntradaCombustivel), com dois gatilhos: StartEvent_CargaChegou, quando o
caminhão do fornecedor descarrega, e StartEvent_ComboioEnche, quando o comboio se abastece na
sede. Sem este processo o saldo por tanque não existe e a conciliação mensal não tem contra o que comparar.
O recebimento acontece em duas etapas, em lanes diferentes: a captura no pátio, pelo app
móvel (Lane_EntradaCampo), e a conferência no desktop, pelo administrativo
(Lane_EntradaAdministrativo). São dois momentos, duas pessoas e dois tipos de informação.
RN-25
Em Task_CapturarDescarga, no app móvel, registra-se apenas o físico: tanque de
destino, litros descarregados, medição de régua antes e depois e anexos. Aceita
mais de uma linha, porque uma carga pode ser dividida entre tanques. A medição de régua é
opcional e funciona como segunda fonte, independente do contador do caminhão do fornecedor.
Nenhum campo fiscal é pedido nesta etapa — quem está com o caminhão na frente não tem o
documento na mão, e exigir nota na descarga é o que faz o registro não acontecer.
RN-26
Em Task_ConferirCargaComNota, no desktop, o administrativo associa
nota fiscal, fornecedor e produto à carga capturada e informa a litragem declarada. Os
quatro campos são obrigatórios para liberar a decisão.
RN-27
ServiceTask_CalcularDivergenciaNota apura a diferença entre a litragem da nota e a soma do
descarregado, em litros e em percentual. A tolerância tem dois limites parametrizados e
vale o que for mais favorável: uma folga absoluta em litros, para carga pequena, onde o percentual dispara
por pouca coisa; e um percentual, para carga grande, onde alguns litros não significam nada.
RN-28
Gateway_DecisaoConferencia tem duas saídas. Aceitar dentro da tolerância é um
clique e segue direto para a entrada. Abrir tratativa com o fornecedor exige responsável,
o que será cobrado e justificativa obrigatória, e passa por
Task_TratarDivergenciaFornecedor antes de seguir. Aceitar uma divergência
acima da tolerância é bloqueado: é exatamente o que a conferência existe para impedir.
RN-29 O que entra no saldo é o que foi descarregado, nunca o que a nota declara — nos dois desfechos. Inflar o saldo para fechar com a nota transformaria erro de faturamento em perda interna fantasma. A tratativa registra a diferença como pendência comercial e não gera movimento de estoque.
RN-30 Nada vai para o Protheus antes da decisão da conferência: nem a entrada de estoque, nem o saldo do tanque. É o que impede uma carga mal conferida de entrar no estoque e depois reaparecer como perda interna na conciliação.
RN-31
ServiceTask_EntradaEstoqueProtheus lança uma entrada por tanque de destino, com
a nota e o fornecedor. É idempotente: a chave é o número do processo mais o tanque. A divergência com a nota
fica gravada como dado da carga e não gera movimento de estoque.
RN-32
O saldo de um tanque não é campo digitado. ServiceTask_AtualizarSaldoTanque o recalcula como
saldo de abertura do mês + entradas − saídas, onde entradas são as cargas descarregadas mais
as transferências recebidas, e saídas são os abastecimentos registrados mais as transferências enviadas. É
essa conta que a RN-11 consulta no momento do registro e que a RN-34 compara com a medição física.
RN-33
O caminhão-comboio é tanque móvel: destino quando enche na sede, origem quando abastece
máquina na roça. Encher o comboio é transferência entre locais de estoque, não consumo.
O operador registra em Task_RegistrarTransferenciaComboio, no mesmo app;
em ServiceTask_TransferirEstoqueProtheus o movimento é de transferência, sem centro de custo, e
ServiceTask_AtualizarSaldoComboio baixa o saldo da sede e sobe o do comboio. Consequências:
o comboio não aparece no painel como consumidor pelo volume que carregou, aparece apenas pelo diesel que
queima rodando; e o combustível que ele distribui chega na conta dos equipamentos que ele abasteceu.
Tratar o enchimento como consumo contaria o mesmo litro duas vezes.
RN-34
A conciliação mensal em Subprocess_ConciliacaoTanques compara a medição física de cada tanque
com o saldo calculado pela RN-32. A diferença é o indicador de perda interna. Divergências com nota fiscal
(RN-27) ficam fora desta conta.
Atualizados em ServiceTask_AtualizarIndicadores a cada registro contabilizado.
| Indicador | Leitura |
|---|---|
| Consumo por equipamento no mês | Litros do período contra a média histórica do próprio equipamento |
| Litros por responsável | Volume registrado por matrícula no período |
| Distribuição por faixa de horário | Concentração de registros fora do turno de trabalho |
| Saldo por tanque | Abertura do mês mais entradas menos saídas, pela RN-32 — inclui o comboio como tanque móvel |
| Volume transferido ao comboio | Quanto saiu da sede sem ser consumo, pela RN-33 |
| Divergência entre nota e descarga | Se o fornecedor entregou o que faturou, pela RN-27 — não entra na conciliação |
| Diferença de conciliação | Medição física dos tanques contra o saldo calculado, em Subprocess_ConciliacaoTanques, pela RN-34 |
| Evento | Prazo | Canal | Destinatário |
|---|---|---|---|
| Dispositivo sem sincronizar | PT12H | Administrativo | |
| Exceção sem análise | P2D | Gestor da supervisão | |
| Correção solicitada ao operador | Imediato | Notificação no app | Operador responsável |
| Prazo da correção vencido | No prazo definido | Gestor da supervisão | |
| Ocorrência aberta | Imediato | Responsável por apurar | |
| Divergência de carga acima da tolerância | Imediato | Administrativo e compras | |
| Falha na integração com o ERP | Imediato | Administrativo e TI |
| Pendência | Com quem | Impacto |
|---|---|---|
| Versão do Protheus e padrão de integração disponível | TI da Café Orfeu | Alto — muda o esforço da integração |
| Número de licenças Fluig e se operadores de campo são usuários nomeados | Café Orfeu · TOTVS | Alto — afeta licenciamento e dimensionamento |
| Entrada de carga lançada pelo Fluig ou direto no ERP | Café Orfeu | Alto — se ficar no ERP, o Fluig passa a ler o saldo em vez de calculá-lo, e a RN-32 muda de dono |
| Tolerância de divergência (percentual e folga em litros) e quem é avisado ao ultrapassá-la | Café Orfeu · compras | Médio — parametriza Gateway_DecisaoConferencia |
| Quem captura a carga no pátio e se terá dispositivo próprio | Café Orfeu | Médio — a captura em campo depende de alguém com o app na hora da descarga |
| Saldo de abertura dos tanques na virada para o novo processo | Café Orfeu | Médio — sem a abertura medida, o primeiro mês de conciliação não fecha |
| Percentual de amostragem e faixas de valor | Café Orfeu | Médio — equilíbrio entre controle e agilidade |
| Faixas de consumo esperado por tipo de equipamento | Café Orfeu | Médio — base da regra de consumo atípico |
| Prazos padrão para devolução de correção e quem apura cada tipo de ocorrência | Café Orfeu | Médio — define os prazos de escalação e o encaminhamento da apuração |
| Registro do preço do combustível para valorizar o consumo | Café Orfeu | Baixo — pode vir do próprio Protheus |
| Modelo de dispositivo usado em campo e sistema operacional | Café Orfeu | Baixo — afeta os testes do app offline |