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:
- Estorno. A alçada existente do documento do tipo
PCé removida da SCR. - Novo total. A rotina soma o total de cada item que não foi eliminado por resíduo.
- Nova alçada. Com o grupo de aprovação definido, ela recria os registros na SCR para esse total.
- Controle do pedido.
C7_CONAPROrecebeB(bloqueado, aguardando) se a alçada gerou registros que exigem aprovação. RecebeL(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 C7_APROV. Na alteração, a rotina começa com o grupo padrão (MV_PCAPROV) e decide assim, nesta ordem:
- Pedido com
C7_APROVgravado. 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 deC7_USER. Em ambos os casos o grupo gravado precisa existir na SAL; então ele vira o grupo do pedido e oY1_GRAPROVdo 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. - 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_GRAPROVestá preenchido e existe na SAL, ele substitui o padrão. Se está preenchido e não existe na SAL, nada muda. - 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 (AL_NIVEL). Quando AL_AUTOLIM 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 (AL_PERFIL), 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 (AL_DOCPC) só é considerada quando MV_ALTPDOC está ligado. Com o parâmetro desligado, o tipo de documento não restringe o grupo.
5. Alçada por entidade contábil
Se MV_APRPCEC 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.
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_NIVELCR_STATUS 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 (GV_VERSAO). Só existe se MV_HISTAPC estiver ligado, e o padrão do parâmetro no dicionário é .F..
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_NIVELSem 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:
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_ITEMConfira 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:
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.
SELECT X6_VAR, X6_TIPO, X6_DESCRIC, X6_CONTEUD
FROM SX6010
WHERE X6_VAR IN ('MV_PCAPROV', 'MV_ALTPDOC', 'MV_APRPCEC', 'MV_HISTAPC')| Parâmetro | Tipo | O que controla |
|---|---|---|
MV_PCAPROV | C | Grupo de aprovação padrão dos pedidos de compra |
MV_ALTPDOC | L | Exibição da aba Documentos no grupo de aprovação |
MV_APRPCEC | L | Alçada por item, direcionada por entidades contábeis |
MV_HISTAPC | L | Gravaçã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
- Vídeo
ProtheusGuia de processo
Eliminar resíduo do pedido de venda: o que muda e o que não volta
Eliminar resíduo encerra o saldo que ainda não foi entregue de um pedido de venda. Veja onde fica a opção (no pedido e em lote), o que ela muda no pedido e por que não existe botão para desfazer.
- Vídeo
ProtheusGuia de processo
Não consigo excluir o pedido de venda: a liberação precisa ser estornada
O Protheus recusa a exclusão do pedido porque algum item já foi liberado para faturar. Veja como estornar a liberação em Estor.Doc's, o que impede o estorno e como conferir no banco.
- Vídeo
ProtheusGuia de processo
Configurador de Tributos (FISA170) para quem programa
O que o desenvolvedor precisa saber do Configurador de Tributos: tabelas, como o motor fiscal o aciona, a flag lCalcTG e como ler os tributos calculados.