FJFrigo · Lançamentos · Almoxarifado › D-CAN · 24D

CAN — Comitê de Aprovação de Necessidades

A reunião que revisa, item a item, as Solicitações de Orçamento (24A) autorizadas: cada produto ou serviço recebe uma decisão (aprovado, reprovado ou aprovado parcial), quantidade, valor e comprador. Aprovada pelo gerente, alimenta o Orçamento (246). Cada regra traz a mensagem exata e quando dispara.

Tabelas: almoxarifado_can, almoxarifado_can_solicitacoes, almoxarifado_can_itens, almoxarifado_orcamento_can_itens, almoxarifado_solicitacao_orcamento (status), scaneados_can (_digital) Programa antigo: não existe no legado — veio do ceif (AlmoxarifadoCanGrid/Form/Controller/Repository)

Bloqueia

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

Confirma

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

Aviso

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

Os três status

almoxarifado_can.status: PENDENTE, APROVADO (só pela autorização do gerente) e CANCELADO. A digitalização não mexe no status.

A

Grade e solicitações oferecidas

A grade e o bloco "Solicitações de orçamento (24A)"

A grade lista as CANs da filial da sessão pela data da reunião. No formulário, o bloco de solicitações oferece as Solicitações de Orçamento da filial com autorizado = 1, vivas e não presas a outra CAN viva (as já ligadas a esta CAN entram sempre), no período escolhido, no máximo 500. Nenhuma das listas filtra por setor.

Bloqueia

CAN 1005278 não encontrada.

QuandoAbrir uma CAN que não existe ou é de outra filial (a leitura filtra a filial da sessão). A mesma frase sai em alterar, cancelar e autorizar id inexistente.

Todos
Bloqueia

A CAN 1005278 é da filial 5 - entre nessa filial para alterá-la.

QuandoAlterar, cancelar, autorizar ou desautorizar (gerente e almoxarifado) uma CAN de outra filial pelo id. A mesma regra da leitura, conferida no servidor antes de qualquer outra trava de status.

Todos
Bloqueia

Marque ao menos uma solicitação.

QuandoConferido só na tela: "Trazer itens" sem solicitação marcada.

Todos
Aviso

(sem mensagem) — os itens trazidos SUBSTITUEM a grade de decisão

Quando"Trazer itens" lê os produtos e serviços das solicitações marcadas e troca a grade inteira. O valor estimado de cada item é o último custo do produto na data da reunião (sem data, hoje); estoque na filial, nas demais filiais e consumo de 30/90 dias são só informativos.

Todos
B

Gravar a CAN

Incluir e Alterar

Numa transação: o cabeçalho (data da reunião, observação), o vínculo com as solicitações (almoxarifado_can_solicitacoes) e os itens (almoxarifado_can_itens). Os itens são atualizados no lugar e conservam o id, porque o Orçamento (246) guarda vínculo com ele (almoxarifado_orcamento_can_itens). No fim os três totais do cabeçalho são recalculados: estimado (todos os itens), aprovado e reprovado (estimado − aprovado, só nos itens com decisão).

Status das solicitações (almoxarifado_solicitacao_orcamento.status): ao entrar na CAN vai a 2 (Em Análise CAN); ao sair dela volta a 1 (Autorizado).

Bloqueia

Informe a data da reunião.

QuandoSem data da reunião. A tela confere antes com "Informe a data.".

Todos
Bloqueia

Decisão de compra inválida: X

QuandoDecisão fora de APROVADO, REPROVADO e APROVADO_PARCIAL (só por chamada direta; a tela é um combo). Item sem decisão passa e não é conferido.

Todos
Bloqueia

Tipo de comprador inválido: X

QuandoNum item com decisão, comprador fora de CORPORATIVO e LOCAL (vazio passa).

Todos
Bloqueia

CAN 1005278 já foi autorizada ou cancelada e não pode ser alterada.

QuandoAlterar com o status diferente de PENDENTE. A tela abre em leitura com "CAN já autorizada ou cancelada — somente leitura. Desautorize na grade para poder alterar."

Todos
Aviso

(sem mensagem) — só a autorização do almoxarifado não trava a CAN

QuandoA autorização do almoxarifado não mexe no status, e a trava olha o status: com só ela dada a CAN continua PENDENTE, editável na tela e no servidor.

Todos
Aviso

(sem mensagem) — desmarcar uma solicitação apaga o vínculo do Orçamento

QuandoOs itens da solicitação que saiu são marcados excluídos, e antes o vínculo deles em almoxarifado_orcamento_can_itens é apagado — a cotação do 246 perde a origem desses itens.

Todos
Aviso

(sem mensagem) — aprovar item com estoque em outra filial não exige observação

QuandoO ceif torna a observação obrigatória nesse caso (ehItemValido); aqui o painel de estoque é só informativo.

Todos
C

Autorizações

Gerente e almoxarifado — na grade e no formulário

São duas e assimétricas, como no ceif. A do gerente grava idgerente_aut e status = 'APROVADO' e avança as solicitações ligadas a 3 (Finalizado CAN); desautorizar volta a PENDENTE e as solicitações a 2. A do almoxarifado grava só idalmoxarifado_aut e a data — é registro de responsabilidade, não trava. Os botões alternam (Autorizar/Desautorizar) sem pergunta.

Bloqueia

Usuário não tem permissão para esta ação (regra ALMOXARIFADO_CAN_AUTORIZACAO_GERENTE).

QuandoAutorizar ou desautorizar o gerente sem a regra. Para o almoxarifado a regra na frase é ALMOXARIFADO_CAN_AUTORIZACAO_ALMOXARIFADO. A tela deixa o botão desabilitado (dica: "Você não tem a regra de acesso para esta ação.").

Todos
Bloqueia

A CAN 1005278 está cancelada.

QuandoAutorizar ou desautorizar (qualquer das duas) uma CAN cancelada. Na grade os botões ficam desabilitados.

Todos
Aviso

(sem mensagem) — desautorizar o gerente não confere o Orçamento

QuandoA CAN volta a PENDENTE mesmo com itens já cotados no 246; não há trava de "já usada em orçamento".

Todos
D

Cancelar

Na grade e no formulário

Grava status = 'CANCELADO', o motivo em observacao_cancelada e a data; desliga o vínculo com todas as solicitações e devolve o status delas a 1 (Autorizado). Não se desfaz.

Confirma

Cancelar — Motivo do cancelamento

QuandoPergunta da tela: na grade abre uma caixa pedindo o motivo; cancelar a caixa não faz nada.

Todos
Bloqueia

Informe o motivo do cancelamento.

QuandoMotivo em branco (tela e servidor).

Todos
Bloqueia

Usuário não tem permissão para esta ação (regra ALMOXARIFADO_CAN_CANCELAMENTO).

QuandoCancelar sem a regra.

Todos
Bloqueia

A CAN 1005278 já está cancelada.

QuandoCancelar de novo.

Todos
Aviso

(sem mensagem) — CAN aprovada pode ser cancelada

QuandoO cancelamento só recusa a já cancelada: vale para CAN aprovada, com as solicitações voltando a Autorizado.

Todos
E

Imprimir

O menu "Imprimir ▾" da grade

Cinco relatórios do ceif: a CAN (PDF paisagem, uma tabela por setor e as três assinaturas; vale para qualquer status), os demonstrativos de compras Local e Corporativo (o mesmo PDF só com os itens aprovados daquele comprador; os totais do cabeçalho continuam os da CAN inteira), a Impressão Resumo (XLS, uma linha por CAN do período da grade) e a Impressão Detalhada (XLS dos itens das CANs marcadas — Ctrl/Shift + clique —, com o "RESUMO POR CAN"). Sem regra de acesso própria. Mais o "Imprimir" genérico da grade (PDF/XLS do que ela mostra).

Bloqueia

A CAN 1005278 não tem solicitações de orçamento ligadas para imprimir.

QuandoImprimir a CAN (ou um demonstrativo) sem solicitação ligada ou sem item.

Todos
Bloqueia

Não é possível gerar o demonstrativo de compras de uma reunião não aprovada.

QuandoDemonstrativo Local ou Corporativo de CAN com status diferente de APROVADO.

Todos
Bloqueia

Não é possível gerar o demonstrativo de compras de uma reunião sem compradores locais.

QuandoNenhum item com aquele tipo de comprador (no Corporativo a frase termina em "corporativos").

Todos
Bloqueia

Não é possível gerar o demonstrativo de compras de uma reunião sem itens aprovados de compradores locais.

QuandoO comprador existe, mas nenhum item dele está Aprovado ou Aprovado parcial.

Todos
Bloqueia

Tipo de comprador inválido: use LOCAL ou CORPORATIVO.

QuandoParâmetro comprador fora dos dois (só por chamada direta).

Todos
Bloqueia

Nenhuma CAN encontrada no período.

QuandoImpressão Resumo sem CAN no período da grade.

Todos
Bloqueia

Selecione ao menos uma CAN.

QuandoImpressão Detalhada sem CAN marcada (a tela desabilita o botão).

Todos
Bloqueia

A impressão detalhada aceita até 50 CANs por vez (foram escolhidas 63).

QuandoMais de 50 CANs distintas marcadas.

Todos
Bloqueia

Nenhum dado encontrado: as CANs escolhidas não têm itens com decisão.

QuandoNenhum item gravado com decisão nas CANs marcadas — só entram itens com decisão, como no ceif.

Todos
F

Digitalizar

O botão da grade

Anexos em scaneados_can do banco <base>_digital, chave = id da CAN, tabela can, tipo 1 — o mesmo desenho do ceif, então os anexos gravados lá aparecem aqui.

Aviso

(sem mensagem) — anexar não muda o status da CAN

QuandoO ceif troca o status para DOCUMENTO_DIGITALIZADO/PENDENTE a cada anexo; aqui não — o status é o que o 246 lê para saber quais CANs estão aprovadas. Não há trava de regra nem de status para anexar.

Todos
G

Permissões

Quem pode passar
Regra nomeadaO que libera
ALMOXARIFADO_CAN_AUTORIZACAO_GERENTEautorizar/desautorizar como gerente (é o que aprova a CAN)
ALMOXARIFADO_CAN_AUTORIZACAO_ALMOXARIFADOautorizar/desautorizar como responsável do almoxarifado
ALMOXARIFADO_CAN_CANCELAMENTOcancelar

O master passa nas três. Nem o legado (não tem a tela) nem o ceif fazem essa trava — é decisão do projeto. Incluir, alterar, imprimir e digitalizar não têm regra própria além do acesso à opção. GET /lancamento/almoxarifado-can/permissoes alimenta a grade e o formulário, e o servidor confere de novo em cada ação.

H

Como o erro chega na tela

Para o QA reproduzir e reportar

Recusa de regra: HTTP 200 com statuscode 400 e a frase — no formulário, no rodapé; nas ações da grade, na faixa de erro acima dela. A recusa por regra de acesso também chega como statuscode 400. Não há pergunta do servidor (409) nesta tela. Erro inesperado traz o código de ocorrência de 8 caracteres — copie-o no chamado.

I

Regras chumbadas no código

Esperadas — não abrir como defeito
O quêValor
decisões aceitasAPROVADO, REPROVADO, APROVADO_PARCIAL
tipos de compradorLOCAL, CORPORATIVO
solicitações oferecidas por vez500
CANs na Impressão Detalhada50
status da solicitação (24A)1 Autorizado, 2 Em Análise CAN, 3 Finalizado CAN (os números do ceif)
J

Diferenças e decisões pendentes

O que muda em relação ao ceif
PontoSituação
desautorizar o gerentevolta a PENDENTE; o ceif grava DOCUMENTO_DIGITALIZADO (engano de cópia)
digitalizaçãonão mexe no status (o ceif mexe)
regras de acesso nas três açõesdecisão do projeto; o ceif não trava
demonstrativo Local/Corporativofiltra os itens do comprador; no ceif os dois saem iguais, com todos os itens
impressossem "R$" fixo, estimado zero sai como traço, setores em ordem alfabética; a Impressão Resumo filtra pela data da reunião (o ceif pela de inclusão); quantidades sem truncar
pendente: observação obrigatória ao aprovar item com estoque em outra filialnão portada — trava de gravação nova, a decidir
filial da CAN nas açõesalterar, cancelar e autorizar conferem que a CAN é da filial da sessão (corrigido em 24/09/2026)

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