FJFrigo · Relatórios · menu 3-8 Indicadores — 387 e 38A

Custo do Gado Posto e Spread Boi × Carne

O custo do gado posto na planta (gado, ajustes, frete e comissões, por kg, arroba e cabeça), as compras fora da faixa de preço, e o spread entre o valor da produção a preço de venda e o custo do gado, com o rendimento da desossa.

Telas: Custo do Gado Posto (387) e Spread Boi × Carne e Rendimento (38A)Origem: desenho novo, sem legadoSaída: XLS, PDF e painel em telaGrava: nada

Bloqueia

Recusa e não gera. HTTP 200 com statuscode 400 e a frase indicada.

Aviso

Comportamento que surpreende sem ser erro — origem da maioria dos chamados de "o número não bate". Parte sai como painel de avisos na tela.

O 38A usa o 387

O custo do gado e o abate do spread vêm da apuração do 387; a produção, da foto do 383.

Fora da faixa

Bovino pela média do mês; suíno pelo histórico do pecuarista nos 30 dias anteriores.

A

387 — Custo do Gado Posto

O que lê e como calcula

Só a compra de gado (faturamento_compra_gado + produtos + transportadoras), pela data_entrada, todos os tipos de faturamento (como o abate do 383). Desenho novo, sem legado. Espécie por produto.tipoanimal (SUINO/LEITAO = suíno). Tudo em moeda local.

Visões do relatório (XLS/PDF)

VisãoLinhas
Por planta (padrão)Uma linha por planta, agrupada por espécie (BOVINO / SUÍNO) com subtotal e TOTAL.
Planta mês a mêsPlanta × mês, com subtotal por planta.
Planta por categoriaPlanta × produto (categoria do animal).
Planta por comprador de gadoPlanta × faturamento_compra_gado.idcomprador_gado ((sem comprador) quando vazio).

Colunas: Espécie, Compras, Cabeças, Kg carcaça, Kg/cab., Rend. carcaça %, Gado/kg, Gado/@, Ajustes/kg, Frete/kg, Comissões/kg, Custo posto/kg, /@, /cab., Custo posto, Frete, Comissões, Funrural (no valor). Arroba = 15 kg de carcaça. Com a opção "fora da faixa" acrescenta a seção das compras fora da faixa (Entrada, Planta, Compra, Pecuarista, Comprador, Categoria, Origem, Peso, Cabeças, Kg, Preço/kg, Referência, Base, Desvio %).

Painel "Ver em tela"

Indicadores (compras, cabeças, kg carcaça e kg/cab., rendimento, preço do gado, custo posto, frete e comissões, fora da faixa) contra o período anterior; custo posto por planta (as 15 que mais compram; o clique filtra uma planta); mês a mês; por categoria; por comprador; e a lista das compras fora da faixa (as de maior desvio; o XLS traz a lista inteira). Faixa de ±5, 10 (padrão), 15, 20 ou 30%.

B

387 — De onde vem cada número

Tabelas, colunas e regras

Regras comuns: cabeçalho e itens não excluídos; só as filiais do usuário; faixa meio-aberta; a cada compra o valor de cada parcela vai à moeda local pela moeda e câmbio próprios dela.

NúmeroFonteRegra
Cabeças, Kg vivo, Kg carcaçafaturamento_compra_gado_produtos (quantidade, peso_vivo, peso_morto)Carcaça = peso_morto. No central o bovino é lançado com peso_vivo = peso_morto (ou quase).
Rendimento de carcaçacarcaça ÷ vivoSó linhas com a carcaça pelo menos 5% menor que o vivo (peso_morto > 0 AND peso_morto <= peso_vivo × 0,95). Na prática só o suíno tem rendimento (Iporã 73,5%, Grão Pará 73,7% em jan–mar/2026); Rolim, São Gabriel e Tarauacá davam 99,99–100,02% com o critério "pesos diferentes".
Gado (valor)gp.valor_total × câmbio da compraMoeda da compra (idmoeda/valor_cambio).
Ajustesvalor_outros_acrescimos − valor_outros_descontos − valor_desconto_colcat − valor_desconto_lavado_pecuarista − valor_desconto_devolucao × câmbio da compraAcréscimos, descontos, COLCAT e lavado já estão em moeda local (o líquido os divide pelo câmbio); só a devolução vai pelo câmbio.
Fretefaturamento_compra_gado_transportadoras.valor_total_freteComo o 2312, pela moeda própria do frete (idmoeda_frete, valor_cambio_frete). A tabela não tem filial: liga pelo id da compra.
Frete descontado do produtor—Bolívia (codicfj 003) com desc_frete = 'T'; Paraguai (001) quando a compra não é por peso vivo (peso_vivo_morto <> 'V', o critério do líquido). Nenhum caso no central. Fica fora do custo do frigorífico (sai do frete).
Comissõesvalor_comissao (comissionário) + valor_comissao_comprador_gadoCada uma na sua moeda (idmoeda_comissionario, idmoeda_comprador_gado). A nota do módulo de comissão (faturamento_comissao_gado, tipo 1148) é o documento da mesma comissão: não soma de novo.
Funrural e pedágio—Fora do custo, de propósito: saem do líquido do produtor (CompraGadoCalculo.liquido), já estão no valor do gado. O funrural aparece numa coluna só para informação.
Custo posto—gado + ajustes + frete − frete descontado + comissões. Por kg carcaça, por arroba (bovino) e por cabeça. Os custos da compra são rateados entre os produtos pelo valor (sem valor, pelo kg carcaça; sem os dois, por igual) nas visões por categoria.

Fora da faixa

EspécieReferênciaRegra
BovinoMédia ponderada do mês na mesma planta + categoria + (peso vivo/carcaça) + origem (própria × terceiro)Média com uma compra só não compara. A tabela preco_gado (18J) está vazia no central e parada desde 2020 no Paraguai, por isso não é usada.
SuínoMédia ponderada do próprio pecuarista + propriedade (idpropriedade) + planta + categoria nos 30 dias anteriores à compraSem duas compras na janela não compara. As granjas integradas da BMG têm o mesmo CNPJ e um preço cada (R$ 1,91 a 4,30/kg em set/2026). 3 meses por mês-calendário acusava a mudança de mercado inteira (1º tri: 1.608 linhas); 60 dias: set 106 / 1º tri 411; 30 dias: set 73 / 1º tri 223 (escolhida).
Os doisPreço/kg = valor do gado ÷ kg vivo (compra por peso vivo) ou carcaçaEntra na lista quando o desvio absoluto passa da faixa. Preço simbólico (< R$ 0,05/kg, condenado lançado a R$ 0,001) não compara nem entra no histórico (dava desvios de 709.900%). Cada compra aparece uma vez por categoria.

Granja própria × terceiros (decisão do usuário, 03/10): pecuarista com CNPJ (14 dígitos) da mesma raiz (8 primeiros dígitos) de alguma filial.cnpj — na BMG, 10.989.834. CPF e RUC nunca casam. Coluna Origem (própria/terceiro) no XLS e no painel. Na lista dos suínos de set/2026 caiu só de 211 para 190 linhas: o preço é disperso dentro de cada grupo (própria: "salsicha" de R$ 1,32 a 5,20/kg por granja e semana; terceiros: a LAR paga 5,75 e outros recebem 1,88 na mesma categoria).

C

38A — Spread Boi × Carne e Rendimento

O que calcula (por planta que abateu, mês a mês)

Cruza o custo do gado posto (a apuração do 387, RelatorioCustoGadoService.apurar) com a produção (a foto producao_industria do 383) valorizada a preço médio de venda. Desenho novo, sem legado. É a margem sobre a matéria-prima: não há custo industrial nem despesas (estão no 383/384).

NúmeroRegra
Kg carcaça, Custo do gado postoDo 387, planta × mês. Planta sem kg carcaça > 0 no período não aparece.
Kg produzido e categoriasproducao_industria (tipo = 'PRODUCAO'), sem os produtos de COMPARATIVO_PLANTAS_PRODUTOS_INTERMEDIARIOS, em carne / miúdos / subprodutos / industrializados pelas chaves _GRUPOS_* do 383.
Rendimento (total, carne, miúdos, subprodutos, industrializados)kg produzido da categoria ÷ kg carcaça, por categoria, por grupo e por produto (o mix). O total passa de 100% (miúdos, pele, farinha e sebo não são carcaça; Tarauacá 1º tri: 147% total, 101,6% de carne — produz quartos com osso).
Valor da produçãokg de cada produto × preço médio de venda dele no mês, em todas as filiais do usuário (a planta transfere para os CDs). Venda = itens tipo_produto='1', natureza venda* de saída, pela emissão, visão gerencial (sem as duas chaves DEMONSTRATIVO_*). Sem venda no mês usa o preço do período; sem venda no período: sem preço (coluna Kg sem preço, fora do valor; não se estima).
SpreadValor da produção − custo do gado posto: por kg carcaça, por arroba (bovino; 15 kg) e % sobre o gado.
Planta que abateu sem produção na fotoAparece só com o custo do gado, fora do total, com aviso (banco de indústria fora do alcance: Colorado, Juruena, Rolim, Distriboi, São Gabriel, Cacoal, Venceslau). Planta sem abate (ciclo 2) fica fora.

Visões: PLANTAS, MENSAL (planta mês a mês) e PRODUTOS (mix planta × produto: kg produzido, rendimento, participação, preço/kg, valor a preço de venda, kg sem preço). Colunas do resumo: Espécie, Cabeças, Kg carcaça, Kg produzido, Rend. total/carne/miúdos/subprod./industr. %, Custo gado/kg carc., Valor prod./kg carc., Spread/kg carc., Spread/@, Spread %, Custo do gado posto, Valor da produção, Spread, Preço médio prod./kg, Kg sem preço. Painel: custo do gado × valor da produção por unidade de carcaça (clique numa planta), mês a mês, rendimento por categoria, mix (os de maior volume; o XLS na visão Mix traz tudo).

D

Filtros e opções

Com o valor que a tela abre
Campo38738A
Período de / atéDia 1 do mês corrente até hoje (obrigatório)Dia 1 do mês corrente até hoje (obrigatório)
Filial (multi)Vazio = todas as filiais do usuário que compraram gadoVazio = todas as plantas do usuário que abateram
VisãoPor planta · Planta mês a mês · Planta por categoria · Planta por compradorPor planta · Planta mês a mês · Mix: planta por produto
Fora da faixa / FaixaLigado / ±10% (5, 10, 15, 20, 30)—
MoedaSempre moeda localSempre moeda local
Paisagem (PDF)LigadoLigado

Os dois geram XLS e PDF e têm "Ver em tela"; barra de filtros salvos por usuário (códigos 387 e 38A). O 38A avisa na janela: "A produção vem da foto do 383: refaça a foto do período lá antes, se faltar."

E

Regras, travas e avisos

O que recusa e o que surpreende

Os dois só leem. Sem regra de acesso nomeada: alcance pelas filiais do usuário.

Bloqueia

Informe a data inicial. / A data final não pode ser anterior à inicial.

387 · 38A
Bloqueia

A filial N não está entre as filiais do usuário.

387 · 38A
Bloqueia

Visão desconhecida: <valor> (PLANTAS, MENSAL, CATEGORIA ou COMPRADOR).

38AVisão desconhecida: <valor> (PLANTAS, MENSAL ou PRODUTOS). — só por chamada direta; a tela só oferece as válidas.

387 · 38A
Bloqueia

Não foram encontrados dados nessas condições.

QuandoNenhuma compra de gado no período (387) ou nenhuma planta abateu (38A).

387 · 38A
Aviso

A foto da produção ainda não foi tirada nesta base (383): a produção sai zerada.

Efeito38A com abate mas sem a tabela producao_industria: sai só o custo do gado.

38A
Aviso

Abateram sem produção na foto (fora do total): <plantas>. Refaça a foto da produção no 383.

EfeitoA planta fica só com o custo do gado; não entra no total e o spread dela fica em branco.

38A
Aviso

Produção sem preço de venda no período (fora do valor da produção): <produtos>.

EfeitoOs kg sem preço aparecem em Kg sem preço e saem do valor; subestima o spread. Iporã 1º tri: 1,00 mi kg sem preço (872 mil kg de farinha de carne e osso, sem venda no período); cobertura de preço em set/2026: Iporã 95%, Grão Pará 93%, Tarauacá 78% do kg.

38A
Aviso

O que sobra na lista dos suínos é mudança de preço real.

EfeitoCom o histórico do pecuarista (30 dias) a lista de set/2026 caiu de 190 para 73 linhas (1º tri: 223). O que sobra são mudanças reais (ex.: Grão Pará, propriedade 10511, de 4,48 a 4,95 e 5,50/kg no fim de setembro), não erro.

387
Aviso

Comissão da nota (1148) maior que a da compra em duas plantas.

EfeitoSomando a nota do módulo de comissão por nota, bate com valor_comissao em 12, 16, 17 e 37; em Colorado (R$ 1,06 mi × 0,76 mi) e Venceslau (R$ 281 mil × 212 mil, jan–jun) a nota é maior — não somado, a investigar.

387
Aviso

O preço de venda do 38A depende de quem pede.

EfeitoO preço médio usa as filiais do usuário (FiliaisDoUsuario), não as plantas escolhidas: um usuário que não alcança os CDs vê valor da produção e spread diferentes.

38A
Aviso

Pele suína conta como carne.

MotivoEstá no grupo "CONGELADOS SUINOS"; a classificação é pelo grupo (como o 383).

38A
Aviso

Spread de fevereiro/2026 em Tarauacá quase zerou.

MotivoValor da produção caiu de ~410 para ~290/@ com o custo estável (dado, não erro).

38A
F

Configuração e permissões

Config. Globais

Não há chaves próprias do 387; o 38A usa as do 383 e do 381.

ChaveEfeito no 387 / 38A
COMPARATIVO_PLANTAS_PRODUTOS_INTERMEDIARIOS38A: ids de produto fora da produção (BMG: 32 ids, 260 caracteres; entraram em 03/10 os 17 produtos "MP" nunca vendidos em 2026: 1005790, 1005633, 10051016, 1005250, 10051013, 1005736, 1005249, 1005252, 1005694, 1005247, 1005251, 1005696, 1005697, 1005253, 1005695, 1005634, 1005758; ficaram fora os 5 que tiveram venda: 100557, 101157, 10051161, 1005737, 1005735).
COMPARATIVO_PLANTAS_GRUPOS_MIUDOS / _SUBPRODUTOS / _INDUSTRIALIZADOS38A: categorias da produção (ver o documento do 383).
DEMONSTRATIVO_FATURAMENTO_EXCLUIR_TIPOS e _GERENCIAL38A: tipos de venda fora do preço médio (visão gerencial).
system_config.valor_stringA lista de intermediários passou de 255 caracteres: a coluna foi para varchar(1000) (scripts/sql/system_config_valor_string_1000.sql, idempotente; rodado só no central de homologação; falta entrar no .fj da próxima versão para os demais tenants). Onde não rodou, a Config. Globais limita a 255 caracteres.

Permissão. Item de menu sem idOpcao: qualquer usuário logado abre; alcance pelas filiais do usuário. O 38A tem controller próprio (RelatorioSpreadCarneController, mesmo caminho /lancamento/relatorios) para não disputar o construtor do RelatorioIndicadoresController; os endpoints são POST .../custoGado, .../custoGado/dados, .../spreadCarne e .../spreadCarne/dados.

G

Casos de teste sugeridos

Com o resultado esperado e como conferir no banco

Banco: central (BMG). Referências de 03–04/10/2026 (conferidas na SQL no dia 04/10).

#OpçãoPassoEsperadoComo conferir
1387Por planta, 01/01–31/03/2026, filial Colorado (10).445 compras, 9.259 cab., 2.146.169,7 kg carcaça, gado R$ 45.926.360,77, frete 1.184.439,94, comissão 382.114,66, ajustes −4.813,41 → custo posto R$ 47.488.101,96 (R$ 22,13/kg; R$ 331,90/@). Venceslau também igual à SQL.
SELECT g.idfilial, COUNT(DISTINCT g.id) AS compras, SUM(gp.quantidade) AS cabecas, SUM(gp.peso_morto) AS kg_carcaca,
       ROUND(SUM(gp.valor_total * IF(g.idmoeda = f.idmoeda_local OR IFNULL(g.valor_cambio,0) = 0, 1, g.valor_cambio)), 2) AS gado
FROM faturamento_compra_gado g
JOIN filial f ON f.id_filial = g.idfilial
JOIN faturamento_compra_gado_produtos gp ON gp.idfaturamento_compra_gado = g.id AND gp.idfilial = g.idfilial AND COALESCE(gp.excluido,'F') <> 'T'
WHERE COALESCE(g.excluido,'F') <> 'T' AND g.idfilial = 10 AND g.data_entrada >= '2026-01-01' AND g.data_entrada < '2026-04-01'
GROUP BY g.idfilial
-- Colorado, 1º tri/2026: 445 compras · 9.259 cab. · 2.146.169,7 kg · gado R$ 45.926.360,77
-- frete (moeda própria do frete) e comissão do comissionário, na moeda local
SELECT ROUND(SUM(t.valor_total_frete * IF(g.idmoeda_frete = f.idmoeda_local OR IFNULL(g.valor_cambio_frete,0) = 0, 1, g.valor_cambio_frete)), 2) AS frete
FROM faturamento_compra_gado g JOIN filial f ON f.id_filial = g.idfilial
JOIN faturamento_compra_gado_transportadoras t ON t.idfaturamento_compra_gado = g.id AND COALESCE(t.excluido,'F') <> 'T'
WHERE COALESCE(g.excluido,'F') <> 'T' AND g.idfilial = 10 AND g.data_entrada >= '2026-01-01' AND g.data_entrada < '2026-04-01'   -- R$ 1.184.439,94

SELECT ROUND(SUM(IFNULL(g.valor_comissao,0) * IF(g.idmoeda_comissionario = f.idmoeda_local OR IFNULL(g.valor_cambio_comissionario,0) = 0, 1, g.valor_cambio_comissionario)), 2) AS comissao,   -- R$ 382.114,66
       ROUND(SUM(IFNULL(g.valor_outros_acrescimos,0) - IFNULL(g.valor_outros_descontos,0) - IFNULL(g.valor_desconto_colcat,0)
                 - IFNULL(g.valor_desconto_lavado_pecuarista,0)
                 - IFNULL(g.valor_desconto_devolucao,0) * IF(g.idmoeda = f.idmoeda_local OR IFNULL(g.valor_cambio,0) = 0, 1, g.valor_cambio)), 2) AS ajustes   -- -R$ 4.813,41
FROM faturamento_compra_gado g JOIN filial f ON f.id_filial = g.idfilial
WHERE COALESCE(g.excluido,'F') <> 'T' AND g.idfilial = 10 AND g.data_entrada >= '2026-01-01' AND g.data_entrada < '2026-04-01'
-- custo posto = 45.926.360,77 − 4.813,41 + 1.184.439,94 + 382.114,66 = 47.488.101,96 (R$ 22,13/kg; R$ 331,90/@)
2387Set/2026: frete por planta.Tarauacá 15.732 e Grão Pará 34.500, iguais ao 383; Iporã sem frete.Frete de faturamento_compra_gado_transportadoras (consulta do 383).
3387As quatro visões, trimestre.~2,7 s cada. Os totais das visões batem entre si (planta = soma dos meses = soma das categorias = soma dos compradores).—
4387Rendimento: Iporã e Grão Pará jan–mar.Iporã ≈ 73,5% e Grão Pará ≈ 73,5–73,7% (o relatório deu 73,7% em 03/10); Colorado (bovino) sem rendimento (peso vivo = morto).SELECT SUM(gp.peso_morto)/SUM(gp.peso_vivo) FROM faturamento_compra_gado_produtos gp JOIN faturamento_compra_gado g ON g.id = gp.idfaturamento_compra_gado WHERE gp.peso_morto > 0 AND gp.peso_morto <= gp.peso_vivo*0.95 AND g.idfilial = 5 AND g.data_entrada >= '2026-01-01' AND g.data_entrada < '2026-04-01'
5387Fora da faixa, bovino: Tarauacá set/2026.≈ 10 linhas em 21 compras (faixa ±10%); média do mês por planta + categoria + origem.Média ponderada do mês: Σ valor ÷ Σ kg (vivo ou carcaça, conforme peso_vivo_morto).
6387Fora da faixa, suíno: set/2026, plantas de suíno, faixa 10%.Cerca de 73 linhas no total das plantas de suíno em set/2026 (223 no 1º tri); Base = histórico do pecuarista; preço < R$ 0,05/kg não aparece.Histórico: mesma idemitente + idpropriedade + produto, nos 30 dias antes (excluindo o dia).
7387Faixa 5% × 30%.Com 30% a lista é menor; o contador "Fora da faixa" do painel acompanha.—
8387Origem própria × terceiro (Iporã).Pecuarista com CNPJ de raiz 10.989.834 = própria.SELECT cnpj FROM filial (raiz dos 8 primeiros dígitos).
938ASet/2026, todas as plantas.Valor da produção Tarauacá R$ 1.600.350,71 e Iporã R$ 22.987.144,48, iguais à conta avulsa (produção × preço do mês); Iporã 2,63 mi kg sem os intermediários (2,95 mi com eles).
-- produção da foto por planta, mês e produto (sem os intermediários), e preço médio de venda do produto no mês
SELECT pi.idfilial, DATE_FORMAT(pi.data,'%Y-%m') AS mes, pi.idproduto, SUM(pi.peso_liquido) AS kg
FROM producao_industria pi
WHERE pi.tipo = 'PRODUCAO' AND pi.idfilial = <planta> AND pi.data >= '2026-09-01' AND pi.data <= '2026-09-30'
  AND pi.idproduto NOT IN (/* COMPARATIVO_PLANTAS_PRODUTOS_INTERMEDIARIOS */)
GROUP BY 1, 2, 3

SELECT fvp.idproduto, SUM(fvp.valor_total * IF(fv.idmoeda = f.idmoeda_local OR IFNULL(fv.valor_cambio,0) = 0, 1, fv.valor_cambio)) / SUM(fvp.peso_liquido) AS preco_kg
FROM faturamento_venda fv JOIN filial f ON f.id_filial = fv.idfilial JOIN tipo_faturamento t ON t.id = fv.idtipo_faturamento
JOIN faturamento_venda_produtos fvp ON fvp.idfaturamento_venda = fv.id AND fvp.tipo_produto = '1' AND IFNULL(fvp.excluido,'F') <> 'T'
WHERE IFNULL(fv.excluido,'F') <> 'T' AND t.tipo_natop LIKE 'venda%' AND t.entrada_saida = 'S'
  AND fv.idtipo_faturamento NOT IN (1121,11195,11196,11203)
  AND fv.data_emissao >= '2026-09-01' AND fv.data_emissao < '2026-10-01' AND fvp.idproduto = <produto>
GROUP BY fvp.idproduto
-- valor da produção = Σ kg do produto × preço médio do mês (todas as filiais do USUÁRIO); sem venda no mês usa o período; sem venda no período: sem preço
1038A1º tri/2026.Iporã: carne ≈ 96,2% (sobre a carcaça), custo 9,86/kg, valor 12,92/kg, spread 3,07/kg (31,1%); Grão Pará: carne ≈ 83,6%, spread 2,15/kg (21,8%); Tarauacá: 285,92/@ × 370,53/@, spread 84,61/@ (29,6%). ~5–6 s.Comparar o custo do gado com o caso 1 do 387 e o valor com o caso 9.
1138APlanta que abateu e cuja indústria não responde (ex.: Colorado).Só custo do gado; fora do total; aviso Abateram sem produção na foto.SELECT COUNT(*) FROM producao_industria WHERE idfilial = 10 AND tipo = 'PRODUCAO'
1238AVisão Mix, Iporã.Produto a produto: kg produzido, rendimento, participação, preço/kg, valor, kg sem preço; farinha de carne e osso sem preço.Produtos com Kg sem preço > 0 não têm venda no período.
1338AMudar a lista de intermediários (retirar um produto "MP") e regerar.Rendimento de carne e kg produzido da planta sobem; valor e spread também (se o produto tiver preço) — e o 383 e o 38F mudam junto.—
1438AUsuário que não alcança os CDs.Preço médio de venda e spread mudam (usa só as filiais dele).—
H

Limitações, pendências e achados

O que ainda não existe ou merece atenção

Pendências: teste de tela dos dois (o backend precisa reiniciar); referência da faixa de preço dos suínos (integração × mercado) a decidir; comissão da nota (1148) maior em Colorado e Venceslau a investigar; system_config_valor_string_1000.sql no .fj da próxima versão; foto da produção das plantas fora do alcance desta máquina; intermediários "MP" que tiveram venda ficaram fora da lista (100557, 101157...).

O 387 e o 38A não convertem moeda (moeda local). A nota do módulo de comissão (1148) não entra no custo.

Achados ao ler o código (não corrigidos)

1. Comentário desatualizado no 387. O javadoc da classe RelatorioCustoGadoService ainda diz que o fora da faixa é "a média do mês" também para o suíno; o código (e a tela) usam o histórico do pecuarista nos 30 dias anteriores.

2. 38A — preço de venda pelo alcance do usuário. O preço médio vem de filiaisDoUsuario.permitidas, não das filiais selecionadas nem de todas as filiais da empresa: o mesmo recorte dá spread diferente para usuários diferentes (o 38F tem a mesma dependência).

I

Como o erro chega na tela

Para o QA reproduzir e reportar

Toda resposta sai com HTTP 200; quem diz o que aconteceu é o statuscode no corpo — 400 para as recusas deste documento.

O arquivo é pedido como download, mas a recusa chega como mensagem: a tela mostra a frase no lugar do arquivo. Enquanto gera, o botão mostra o contador Gerando… (Ns).

Avisos (cotação faltando, foto sem produção, estorno sem nota...) não interrompem: vêm no cabeçalho X-Aviso-Sistema e a tela mostra o painel de avisos. Teste sempre olhando o painel, não só o arquivo.

Ao abrir chamado, copie o código de ocorrência de 8 caracteres dos erros inesperados. Erro de tela vai para o log em POST /cadastro/erros-front.

Nenhuma regra bate com essa busca. Tente um trecho menor da mensagem, ou limpe os filtros.