FJFrigo · Cadastros · Faturamento › J-Abate · 18J

Cadastros do Abate

Os quatro cadastros de apoio da Ordem de Compra Animal (2311): Classificação Comercial, Tipo Mercado, Tipo Animal e Padrão Preço. Todos são por filial. Cada regra traz a mensagem exata e quando dispara.

Tabelas: comercial, tipo_mercado, tipo_animal, padrao_preco, padrao_preco_peso, padrao_preco_classificacao Programa antigo: não existe no legado — veio do ceif (ComercialGrid/Form, TipoMercadoGrid/Form, TipoAnimalGrid/Form, PadraoPrecoGrid/Form)

Bloqueia

Não grava. statuscode 400 com a frase abaixo, que a tela mostra como está.

Confirma

Pergunta antes de seguir. Nestes cadastros quem pergunta é a própria tela.

Aviso

Passa, mas com um comportamento que surpreende quem está conferindo — ou é conferido só na tela.

Nome do campo na frase

Os três primeiros cadastros usam o cadastro genérico, e a frase de campo obrigatório traz o rótulo do campo como a tela o mostra (Código, Descrição, Sexo) e, entre parênteses, o nome do cadastro.

A

Regras comuns aos três cadastros simples

Classificação Comercial, Tipo Mercado, Tipo Animal

Os três são entradas do catálogo de cadastros simples (/cadastro/simples/classificacao-comercial, tipo-mercado, tipo-animal). São por filial: a grade lista só as linhas da filial da sessão, e a inclusão grava a filial da sessão. A exclusão é física (DELETE), e só depois de conferir que ninguém usa a linha.

Bloqueia

Campo obrigatório.

QuandoConferido só na tela: campo marcado com * em branco. A mensagem aparece embaixo do campo.

Todos
Bloqueia

Informe Descrição (Tipo de mercado).

QuandoO servidor confere o mesmo obrigatório: "Informe <campo> (<cadastro>)." com o rótulo do campo e o título do cadastro — Classificação comercial, Tipo de mercado ou Tipo de animal.

Todos
Bloqueia

Tipo de mercado 1007 é de outra filial - entre na filial dele para alterar ou excluir.

QuandoAlterar ou excluir uma linha cujo idfilial não é o da sessão (a grade não a mostra; pega o PUT/DELETE direto).

Todos
Bloqueia

Registro id=1007 nao encontrado em 'tipo_mercado'

QuandoAlterar ou excluir um id que não existe (já excluído por outra janela). Chega com statuscode 404.

Todos
Bloqueia

Valor invalido em pH mínimo: abc

QuandoNúmero que não se lê num campo numérico, ou valor fora da lista num campo de escolha ("… (aceita M, F)" no sexo).

Todos
Confirma

(janela de exclusão) — confirmar Excluir

QuandoPergunta da tela: Excluir abre a linha em modo leitura com o botão de confirmar.

Todos
Aviso

(sem mensagem) — texto maior que a coluna é cortado

QuandoCódigo com mais de 20 ou descrição com mais de 60 caracteres: o servidor grava os primeiros, sem recusar.

Todos
B

1 — Classificação Comercial

Tabela comercial

Campos: código (chave, 20, obrigatório) e descrição (60, obrigatória). O código não se altera depois de gravado (a tela trava). Cada padrão de preço da filial tem uma linha por classificação comercial.

Bloqueia

Classificação comercial com o código CC já existe nesta filial.

QuandoOutro registro da mesma filial já tem esse código — na inclusão e também na alteração.

Todos
Bloqueia

Classificação comercial em uso em 6 classificação(ões) de padrão de preço - não pode ser excluído.

QuandoExcluir com linhas em padrao_preco_classificacao.idcomercial.

Todos
C

2 — Tipo Mercado

Tabela tipo_mercado

Campos: código (chave, 20, obrigatório, travado depois de gravado), descrição (60, obrigatória), pH mínimo e pH máximo (phmin/phmax, opcionais). Usado pelos itens da Ordem de Compra Animal.

Bloqueia

Tipo de mercado com o código EU já existe nesta filial.

QuandoCódigo repetido na filial, na inclusão ou na alteração.

Todos
Bloqueia

Tipo de mercado em uso em 120 item(ns) de ordem de compra de animal - não pode ser excluído.

QuandoExcluir com itens vivos em ordem_compra_animal_item.idtipo_mercado (item excluído não conta).

Todos
Aviso

(sem mensagem) — pH mínimo maior que o máximo é aceito

QuandoNenhuma conferência entre os dois pH, como no ceif.

Todos
D

3 — Tipo Animal

Tabela tipo_animal

Campos: descrição (60, obrigatória) e sexo (M/F, obrigatório, nasce M). A descrição funciona como o código do animal (BOI_INTEIRO, TOURO_CASTRADO). Cada tipo de animal da filial passa a exigir uma linha com habilitação TODOS em toda Ordem de Compra Animal da filial.

Aviso

(sem mensagem) — "boi inteiro" vira BOI_INTEIRO

QuandoFeito na tela ao gravar: descrição com espaço tem os espaços trocados por _ e passa a maiúsculas (a troca do ceif). Descrição sem espaço fica como foi digitada — inclusive em minúsculas.

Todos
Bloqueia

Valor invalido em Sexo: X (aceita M, F)

QuandoSexo diferente de M e F (só por chamada direta; a tela é um combo).

Todos
Bloqueia

Tipo de animal em uso em 2 padrão(ões) de preço, 3 faixa(s) de peso de padrão de preço - não pode ser excluído.

QuandoExcluir com uso em padrao_preco.idtipo_animal, padrao_preco_peso.pagar_como ou ordem_compra_animal_item.idtipo_animal (itens vivos). A frase lista só as tabelas com uso.

Todos
Aviso

(sem mensagem) — descrição repetida é aceita

QuandoEste cadastro não confere duplicidade (o ceif também não).

Todos
E

4 — Padrão Preço

/cadastro/padrao-preco

Cabeçalho padrao_preco (data, tipo de animal, descrição, ativo; o usuário só na inclusão), grade de faixas de peso padrao_preco_peso (peso inicial, peso final, "pagar como" — outro tipo de animal —, % de ajuste; a chave estrangeira se chama idpadrao_peso) e grade de classificações padrao_preco_classificacao (uma linha por classificação comercial da filial, com valor de desconto, % de ajuste e se o desconto é percentual; as que faltam entram com zero, e a tela não inclui nem exclui linha). As duas grades são regravadas inteiras (DELETE + INSERT) numa transação. valor_desconto nulo continua nulo. A inclusão nasce com a data de hoje e ativo.

Bloqueia

Informe a data.

QuandoSem data (tela e servidor).

Todos
Bloqueia

Data inválida: 31/12/2026

QuandoData fora de aaaa-mm-dd (só por chamada direta).

Todos
Bloqueia

Informe o tipo de animal.

QuandoSem tipo de animal (tela e servidor).

Todos
Bloqueia

Tipo de animal 1003 não existe nesta filial.

QuandoO tipo de animal do cabeçalho não é da filial da sessão.

Todos
Bloqueia

A descrição tem no máximo 60 caracteres.

QuandoDescrição com mais de 60 caracteres (ela é opcional).

Todos
Bloqueia

Faixa de peso 2: o tipo de animal 1003 (pagar como) não existe nesta filial.

QuandoO "pagar como" da faixa (quando preenchido) não é tipo de animal da filial. O número é a posição da faixa na grade.

Todos
Bloqueia

Classificação comercial 1009 não existe nesta filial.

QuandoUma linha da grade de classificações aponta para classificação de outra filial ou sem id.

Todos
Bloqueia

Classificação comercial CC repetida.

QuandoA mesma classificação duas vezes na grade (só por chamada direta; a tela monta uma linha por classificação).

Todos
Aviso

(sem mensagem) — faixas de peso não são conferidas entre si

QuandoPeso inicial maior que o final, faixas sobrepostas ou vazias são gravadas como vieram (peso e % vazios viram zero).

Todos
Aviso

Nenhuma classificação comercial cadastrada nesta filial (18J › Classificação Comercial).

QuandoConferido só na tela: a filial não tem classificação comercial, e a grade de classificações fica vazia. O padrão grava assim mesmo.

Todos
Bloqueia

Padrão de preço 10101 é de outra filial - entre na filial dele para alterar.

QuandoAbrir, alterar, excluir ou ativar/desativar um padrão de outra filial. Id inexistente: "Registro id=10101 nao encontrado em 'padrao_preco'" (statuscode 404).

Todos
Bloqueia

Padrão de preço em uso em 2079 item(ns) de ordem de compra de animal - desative-o em vez de excluir.

QuandoExcluir com qualquer linha em ordem_compra_animal_item.idpadrao_preco (sem filtro de excluído — não há FK no banco).

AtençãoDivergência do ceif, que exclui e deixa os itens apontando para um padrão que não existe mais.

Todos
Confirma

Deseja ativar/desativar o padrão de preço 10101?

QuandoPergunta da tela, no botão Ativar/Desativar da grade. O servidor alterna ativo entre T e F.

AtençãoPadrão desativado some do combo da Ordem de Compra Animal; as ordens que já o usam continuam como estão.

Todos
F

Permissões

Quem pode passar

Não há regra nomeada. O submenu J-Abate segue a permissão da opção 18J no grupo_permissao (no opcao_sistema o 18J se chama "Preco Gado"): quem não tem o 18J não vê os quatro cadastros. As quatro telas não têm código próprio de opção. Dentro delas, qualquer usuário com a opção inclui, altera e exclui — o alcance é só a filial da sessão.

G

Como o erro chega na tela

Para o QA reproduzir e reportar

Recusa de regra: HTTP 200 com statuscode 400 e a frase, que a janela mostra no rodapé (nos três cadastros simples, na linha de erro geral do formulário). Registro inexistente: statuscode 404. Os obrigatórios são conferidos primeiro na tela ("Campo obrigatório." embaixo do campo). Erro inesperado traz o código de ocorrência de 8 caracteres — copie-o no chamado.

H

Regras chumbadas no código

Esperadas — não abrir como defeito
O quêValor
sexo do tipo de animalM ou F (o enum Sexo do ceif, gravado como texto)
tamanho do código / descrição20 / 60 caracteres
I

Diferenças e decisões pendentes

O que muda em relação ao ceif
PontoSituação
código único na filialconferido também na alteração (o ceif só na inclusão)
linha de outra filialrecusada em alterar/excluir; o ceif só filtra a grade
exclusão em usorecusada nos quatro, pelas tabelas que apontam para a linha
padrão de preço usado em ordem de compranão se exclui (sem FK no banco; o ceif deixaria a referência órfã)
tipo de animal, "pagar como" e classificação do padrãotêm de ser da filial (o ceif só filtra os combos)

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