Pragiva — Tecnologia na prática

Pedido de compra voltou para aprovação: o que conferir na alçada

Pedido de compra voltou para aprovação: alterar um pedido já liberado refaz a alçada. O que conferir no grupo, nos limites e nas tabelas SCR e SGV.

Protheus Guia de processo 5 min de leitura

Assista o vídeo

Nesta página6 seções

Resposta rápida: ao alterar um pedido de compra, a rotina (MATA120) estorna a alçada anterior e monta uma nova com o total atual do pedido. Se o pedido voltou para aprovação, o primeiro passo é comparar o valor novo com os limites do grupo de aprovação, e não procurar quem “bloqueou”.

O que acontece na alteração

Quando o pedido é alterado e ainda tem saldo a receber, a gravação segue esta sequência:

  1. Estorno. A alçada existente do documento do tipo PC é removida da SCR.
  2. Novo total. A rotina soma o total de cada item que não foi eliminado por resíduo.
  3. Nova alçada. Com o grupo de aprovação definido, ela recria os registros na SCR para esse total.
  4. Controle do pedido. recebe B (bloqueado, aguardando) se a alçada gerou registros que exigem aprovação. Recebe L (liberado) nos demais casos, inclusive quando o pedido não tem grupo de aprovação.

Por isso o pedido “volta”: ele foi avaliado de novo, e a decisão anterior não é herdada automaticamente. Se a segunda avaliação passa a exigir alguém, o pedido fica bloqueado.

O que conferir, em ordem

1. O total mudou?

Um total maior pode cair fora da faixa de um aprovador e dentro da de outro. Compare o total atual com o que estava no registro anterior (veja a SGV mais abaixo) antes de qualquer outra hipótese.

2. Qual grupo de aprovação o pedido usa

O grupo aparece em . Na alteração, a rotina começa com o grupo padrão () e decide assim, nesta ordem:

  1. Pedido com C7_APROV gravado. Se o grupo padrão está preenchido, o grupo gravado só é aproveitado quando é diferente do padrão. Se o padrão está vazio, só é aproveitado quando o usuário que grava é o mesmo de . Em ambos os casos o grupo gravado precisa existir na SAL; então ele vira o grupo do pedido e o do comprador deixa de valer. Nos outros casos (gravado igual ao padrão, ausente da SAL ou usuário diferente com padrão vazio), o grupo gravado é ignorado por enquanto.
  2. Comprador do usuário que grava. A rotina lê a SY1 do usuário que está gravando a alteração (não o comprador original). Isso acontece sempre, para ler também o grupo de compras. Se o grupo do pedido não foi fixado no passo 1 e Y1_GRAPROV está preenchido e existe na SAL, ele substitui o padrão. Se está preenchido e não existe na SAL, nada muda.
  3. Ponto de entrada MT120APV. Se existir e devolver um texto, esse texto vira o grupo e prevalece sobre tudo acima.

Há ainda uma reaplicação do C7_APROV gravado no fim, mas ela só age quando o grupo gravado não foi ignorado no passo 1, e então o grupo já é esse. Como último recurso, se ao final o grupo continua vazio, é alteração, C7_APROV está preenchido e não existe MT120APV, o gravado é usado.

Na prática: se C7_APROV já é diferente do padrão e existe na SAL, quem altera não muda o grupo. Se C7_APROV é igual ao padrão, vale o Y1_GRAPROV de quem grava, quando válido. Pedido sem grupo gravado também segue o padrão ou o Y1_GRAPROV. Em rotina automática integrada, o usuário considerado pode vir de C7_USER; não testei esse caminho em execução.

Sem grupo definido, a alçada não é montada e o pedido fica liberado. É esse o caso do pedido que “não caiu em aprovação”: confirme se o grupo está preenchido.

3. O aprovador cobre a faixa

Na SAL (Grupos de Aprovação), cada linha é um aprovador com nível (). Quando está como S, o aprovador só entra na alçada se o valor do documento estiver entre o mínimo e o máximo do perfil dele (), cadastrado no cadastro de perfil do aprovador, onde ficam os limites mínimo e máximo. Valor fora da faixa faz o aprovador ser pulado.

Duas consequências úteis:

  • Um total que passa do máximo do perfil tira o aprovador antigo da alçada. Quem aprovava antes pode não ser mais chamado.
  • Total igual a zero não gera alçada.

Confirme também que o aprovador (SAK) e a linha do grupo não estão bloqueados: registro bloqueado é ignorado.

4. O grupo aceita pedido de compra

A aba de documentos do grupo () só é considerada quando está ligado. Com o parâmetro desligado, o tipo de documento não restringe o grupo.

5. Alçada por entidade contábil

Se estiver ligado, o controle é por item do pedido, direcionado por entidades contábeis, e não só pelo total do pedido. Nesse modo o pedido se comporta de outra forma; confirme o parâmetro antes de aplicar o raciocínio acima.

Reconstruir o histórico no banco

Todas as consultas são de leitura. Troque 010 pelo sufixo do seu ambiente e o número do pedido.

Confira no seu ambienteSQL
SELECT CR_NUM, CR_TIPO, CR_GRUPO, CR_NIVEL, CR_APROV,
       CR_STATUS, CR_TOTAL, CR_DATALIB, CR_OBS
  FROM SCR010
 WHERE D_E_L_E_T_ = ' '
   AND CR_TIPO = 'PC'
   AND RTRIM(CR_NUM) = '000123'
 ORDER BY CR_NIVEL

segue a lista do dicionário: 01 aguardando nível anterior, 02 pendente, 03 liberado, 04 bloqueado, 05 liberado por outro aprovador, 06 rejeitado, 07 rejeitado/bloqueado por outro aprovador.

O histórico das alçadas anteriores fica na SGV (Hist. Aprovação Ped. Compra), gravado antes do estorno, com uma versão por refação (). Só existe se estiver ligado, e o padrão do parâmetro no dicionário é .F..

Confira no seu ambienteSQL
SELECT GV_NUM, GV_VERSAO, GV_NIVEL, GV_APROV, GV_STATUS,
       GV_TOTAL, GV_DATALIB
  FROM SGV010
 WHERE D_E_L_E_T_ = ' '
   AND RTRIM(GV_NUM) = '000123'
 ORDER BY GV_VERSAO, GV_NIVEL

Sem histórico ligado, a alçada antiga é apagada e só o pedido atual permanece. Nesse caso, compare com o que o aprovador e o comprador lembram do valor anterior.

O grupo e o perfil de cada aprovador:

Confira no seu ambienteSQL
SELECT AL_COD, AL_ITEM, AL_APROV, AL_NIVEL, AL_AUTOLIM,
       AL_PERFIL
  FROM SAL010
 WHERE D_E_L_E_T_ = ' '
   AND AL_COD = 'GRUPO1'
 ORDER BY AL_NIVEL, AL_ITEM

Confira no cadastro de perfil do aprovador os limites mínimo e máximo do perfil retornado em AL_PERFIL.

Confira também o pedido em si:

Confira no seu ambienteSQL
SELECT C7_NUM, C7_ITEM, C7_APROV, C7_CONAPRO, C7_GRUPCOM, C7_QUANT, C7_QUJE, C7_TOTAL
  FROM SC7010
 WHERE D_E_L_E_T_ = ' '
   AND C7_NUM = '000123'

Parâmetros mencionados

Consulte o cadastro de cada um no seu ambiente. A consulta mostra tipo, descrição e conteúdo; qual rotina lê o parâmetro e o que ele provoca foi verificado à parte.

Confira no seu ambienteSQL
SELECT X6_VAR, X6_TIPO, X6_DESCRIC, X6_CONTEUD
  FROM SX6010
 WHERE X6_VAR IN ('MV_PCAPROV', 'MV_ALTPDOC', 'MV_APRPCEC', 'MV_HISTAPC')
ParâmetroTipoO que controla
MV_PCAPROVCGrupo de aprovação padrão dos pedidos de compra
MV_ALTPDOCLExibição da aba Documentos no grupo de aprovação
MV_APRPCECLAlçada por item, direcionada por entidades contábeis
MV_HISTAPCLGravação do histórico de aprovação do pedido de compra

O que não fazer

Não resolva o retorno para aprovação desligando o controle de alçada. Ele existe para que o valor que vai ao fornecedor tenha sido autorizado por quem tem limite para isso. Se a nova aprovação é indevida, o ajuste correto é no grupo, no perfil de limite ou no processo de alteração, e quem responde pela política de compras deve decidir.

Para abrir o chamado

Leve ao suporte:

  • número do pedido, filial e usuário que alterou;
  • o resultado das consultas acima (SCR, SGV se houver, SAL e limites do perfil, SC7);
  • o valor antes e depois, e o que foi alterado;
  • o conteúdo dos quatro parâmetros no ambiente.

O modelo de chamado organiza essas informações. Para ler e conferir um parâmetro, veja parâmetros SX6.

Continue por aqui