FJFrigo · Cadastros · Financeiro › A-Meta de Centro de Custo · 17A

Meta de Centro de Custo

Cadastra, por mês e filial, o limite de entrada (a receber) e de saída (a pagar) de cada centro de custo, gera a senha de liberação e copia as metas para o mês seguinte. A meta é conferida na gravação da Compra de Almoxarifado (242) e dos Títulos (221). Cada regra traz a mensagem exata, quando dispara e o confronto com o sistema antigo.

Tabelas: centro_custo_meta, centro_custo_meta_senha Programa antigo: menu17A.prg (a conferência: funcoes.prg verificaSaldoMeta/liberaMeta)

Bloqueia

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

Confirma

Pergunta antes de seguir. Quem pergunta está dito em cada regra — a própria tela, ou o servidor (statuscode 428, pedindo a senha da meta).

Aviso

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

Brasil e Paraguai

O cadastro vale em qualquer país. A conferência da meta (seção E) só roda fora do Brasil — no Brasil a função do sistema antigo devolve zero logo na entrada.

A

Gravar as metas do mês

Incluir e Alterar

Uma "meta" na grade é o par mês + filial. O formulário lista todo centro de custo da filial (centro_custo.idfilial), com zero onde ainda não há valor. Gravar apaga as linhas daquele mês e filial em centro_custo_meta e insere de novo só as que têm entrada ou saída maior que zero. Mês e filial ficam fixos na alteração.

Bloqueia

Campo [Mês] em branco!

QuandoMês vazio ou fora do formato MM/AAAA. A tela confere antes e mostra "Campo [Mês] em branco."; pelo servidor a frase chega como "mes: Campo [Mês] em branco!" no gravar e sem o prefixo no excluir e no detalhe.

Sistema antigo"Campo [Mes] em Branco !" (menu17A.prg:427).

Todos
Bloqueia

Selecione uma filial.

QuandoIncluir sem filial. A tela confere antes; pelo servidor chega como "idFilial: Selecione uma filial.".

Todos
Bloqueia

Filial não permitida para este usuário.

QuandoGravar, excluir ou abrir o detalhe de uma filial fora das que o usuário tem acesso (as mesmas do combo de troca de filial). A tela só oferece as permitidas; a recusa pega a chamada direta.

Sistema antigoNão existe — o menu17A lista e grava qualquer filial.

Todos
Bloqueia

idCentroCusto: Item sem centro de custo.

QuandoUma linha da gravação chega sem o id do centro de custo. A tela sempre manda — só aparece em chamada direta.

Todos
Aviso

(sem mensagem) — linha com entrada e saída zeradas não é gravada

QuandoSempre. É assim que se "tira" a meta de um centro de custo: zerando os dois valores. Ao reabrir, ele volta com zero.

Sistema antigoIgual (gravaMetas, menu17A.prg:457).

Todos
Aviso

(sem mensagem) — o mês e a filial são regravados inteiros

QuandoIncluir um mês+filial que já existe não é recusado: as metas antigas daquele par são substituídas pelas da tela. Tudo numa transação.

AtençãoCentro de custo de outra filial com meta nesse mês/filial (gravado pelo sistema antigo, que não filtrava) não aparece no formulário e some na regravação.

Todos
B

Excluir

O botão da grade
Confirma

Excluir Meta — 08/2026 · IPORA

QuandoJanela da tela: o Excluir abre o formulário do mês/filial em modo de exclusão, e só apaga ao clicar Excluir nele. Apaga todas as metas do par, sem desfazer.

AtençãoNão confere se a meta já foi usada (senha consumida, lançamento conferido contra ela) — como no sistema antigo (excluir, menu17A.prg:488).

Todos
C

Gerar senha

A senha de liberação da meta

A senha é de uso único e vale para qualquer meta que estourar, em qualquer centro de custo. É gravada em centro_custo_meta_senha com usado = 'F' e o mesmo algoritmo do sistema antigo (dez letras derivadas de data/hora do servidor + AAAAMMDD − HHMMSS, ex. EJXYMFYMAF20117892): uma senha gerada aqui serve no desktop e vice-versa.

Bloqueia

Sessão sem filial - não é possível gerar a senha.

QuandoA sessão não tem filial escolhida.

Todos
Aviso

(erro inesperado ao gravar a senha)

QuandoBancos em que a coluna centro_custo_meta_senha.senha é int (é o caso do central, onde a tabela ganhou colunas de auditoria e nunca foi usada). A senha tem letras e o INSERT falha.

AtençãoO script que alarga a coluna existe (scripts/sql/centro_custo_meta_senha_texto.sql) e não foi rodado. Em fjfrigo_concepcion (5.323 senhas) a coluna é texto e funciona.

Todos
D

Transferir para o mês seguinte

Copia o último mês lançado

Acha o mês mais recente com meta (nas filiais do usuário), apaga o mês seguinte dessas filiais e copia as linhas para ele. Numa transação.

Bloqueia

Nenhuma meta encontrada para transferir.

QuandoNenhuma filial do usuário tem meta em mês algum.

Todos
Confirma

Copiar as metas de 08/2026 para 09/2026? Uma meta já existente em 09/2026 será substituída.

QuandoPergunta da tela, com os dois meses que o servidor calculou numa prévia (nada é gravado antes do Sim).

Sistema antigoPergunta duas vezes: "Deseja gerar o mes [ 09/2026 ] ?" e "Tem certeza que deseja gerar o mes [ 09/2026 ] ?" (menu17A.prg:680 e :683).

Todos
Aviso

37 meta(s) copiada(s) de 08/2026 para 09/2026.

QuandoMensagem de sucesso da tela, com a quantidade de linhas copiadas.

Todos
E

Onde a meta é conferida (242 e 221)

funcoes.MetaCentroCusto

O gasto é a soma dos títulos do centro de custo, na filial e no mês de emissão, na moeda local (título a pagar contra a valor_saida, a receber contra a valor_entrada). Meta zero ou sem linha = sem controle. No 242 o mês é o da data de entrada da compra e cada fatia de título por centro de custo é conferida; no 221 soma-se só o que o título aumentou (novo − antigo, pelo mesmo câmbio). Usada a senha, o resto daquela gravação não confere mais nada.

Confirma

Meta ultrapassada no centro de custo 1001244: meta [10.000,00], gasto [12.345,67]. Informe a senha da meta (gerada na tela de metas, 17A).

QuandoCompra de Almoxarifado (242): o gasto do mês + a fatia desta compra passa da meta. Servidor responde statuscode 428; a tela abre "Meta do centro de custo", pede a senha e grava de novo.

Sistema antigoPede a senha (liberaMeta, funcoes.prg:1625).

ParaguaiBolívia
Confirma

Meta ultrapassada no centro de custo 1001244: meta [10.000,00], gasto projetado [12.345,67]. Informe a senha da meta (gerada na tela de metas, 17A).

QuandoTítulos (221): o valor do título sobe e o gasto projetado passa da meta. statuscode 428; a senha vai no mesmo diálogo "informe o código" do token da tela.

Sistema antigomenu221.prg:5052-5067.

ParaguaiBolívia
Bloqueia

Senha da meta inválida ou já usada !

QuandoA senha informada não existe em centro_custo_meta_senha ou já tem usado = 'T'. Vale para o 242 e o 221.

AtençãoA senha é consumida dentro da transação da gravação: se a gravação falhar depois, ela volta a valer. No sistema antigo era gasta numa conexão à parte.

ParaguaiBolívia
Bloqueia

Sem câmbio ! (o centro de custo 1001244 tem meta, e o gasto é conferido na moeda local)

Quando242: o centro de custo tem meta e a compra está sem câmbio.

ParaguaiBolívia
Bloqueia

Sem câmbio !

Quando221: o centro de custo do título tem meta e o título está sem câmbio.

ParaguaiBolívia
Aviso

(sem mensagem) — no Brasil a meta não é conferida

QuandoFilial com país 004. A tela 17A grava normalmente, mas nem o 242 nem o 221 olham a meta.

Sistema antigoverificaSaldoMeta devolve {0,0} no Brasil (funcoes.prg:1593).

Brasil
Aviso

(sem mensagem) — título de dia sem cotação fica fora do gasto

QuandoTítulo em moeda que não é a local, ou com câmbio aberto, num dia sem cotação da moeda local em moeda_valores: a divisão dá nulo e o título não soma. Como no sistema antigo.

ParaguaiBolívia
F

Permissões

Quem pode passar

Nenhuma regra nomeada: quem vê a opção 17A no menu (Acesso dos Grupos, 444) grava, exclui, gera senha e transfere. O que limita é o alcance por filial: grade, detalhe, gravação, exclusão e transferência valem só para as filiais do usuário (usuario_filial). Quem gera a senha libera qualquer meta estourada — a senha não é amarrada a centro de custo nem a usuário.

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 tela mostra acima da grade ou no rodapé do formulário. Recusa de campo (validação do corpo) chega como campo: frase. A senha da meta, no 242 e no 221, chega como statuscode 428 e abre o diálogo da senha. 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 país Brasil (codicfj 004) desliga a conferência da meta. O algoritmo da senha (mapa de letras e a subtração) é o do sistema antigo, de propósito, para as duas pontas aceitarem a mesma senha.

I

Diferenças e decisões pendentes

O que muda em relação ao sistema antigo
PontoSituação
alcance por filialgrade, formulário e Transferir só nas filiais do usuário, e o formulário só com os centros de custo da filial; o sistema antigo usa o banco inteiro e todos os centros
primeiro título do mêsconferido; no sistema antigo o RIGHT JOIN sem título no mês zerava a meta e o primeiro título nunca era conferido
senha consumidana transação da gravação; no sistema antigo, numa conexão à parte (gravação que falha gastava a senha)
Transferiruma pergunta só, com prévia dos meses; o sistema antigo pergunta duas vezes
schema de centro_custo_meta_senhapendente: no central a coluna senha é int e o Gerar senha falha; alargar com o script, decisão do usuário

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