Identificador de Regra

EST-207CFRAT01

Módulo: EST - Estoques.

Finalidade: Este identificador possibilita a personalização de rateio de movimento de estoque gerado a partir do atendimento de requisições de materiais. O ponto de regra é acionado logo após o movimento de estoque estar gerado. Desta forma, é possível personalizar os códigos de centro de custo a serem utilizados nos rateios de requisições do tipo transferência.

Variáveis Disponibilizadas:

Nome Tipo Observações Retorna Valor
EstNCodEmp Número Código da empresa do movimento N
EstNNumEme Número Número da requisição de materiais que originou o movimento N
EstNSeqEme Número Sequencia da requisição de materiais que originou o movimento N
EstACodPro Texto Código do produto movimentado N
EstACodDer Texto Código do depósito movimentado N
EstACodDepMov Texto Código do depósito de origem N
EstACodDepDst Texto Código do depósito de destino N
EstNDatMov Número Data do movimento N
EstNSeqMov Número Sequência do movimento N
EstAEstEos Texto Indicativo do tipo de movimento ("E" para entrada e "S" para saída) N
EstNListaRateio Número Endereço de acesso à lista de rateio do movimento S

Através da variável EstNListaRateio é possível obter acesso aos rateios previstos para o movimento. Nesta lista, estão disponíveis os seguintes dados:

Nome Tipo Observações Retorna Valor
NumPrj Número Número do projeto S
CodFpj Número Número da fase S
CtaFin Número Código da conta financeira S
CtaCtb Número Código da conta contábil S
CodCcu Texto Código do centro de custo S

Exemplo de regra:

Definir Numero EstNListaRateio;

Definir alfa EstATemRegistro;

Definir numero EstNNumEme;

Definir alfa ACodTns;

 

definir cursor cRequisicao;

definir numero EstNCodEmp;

definir numero EstNNumEme;

definir numero EstNSeqEme;

definir alfa EstAEstEos;

definir numero NLinha;

definir alfa aNovoCodCcu;

definir alfa aCodDepBuscarCCu;

definir alfa EstACodDepOri;

definir alfa EstACodDepDst;

 

definir cursor cDeposito;

 

Se (EstNNumEme > 0) @ originado de requisição? @

inicio

cRequisicao.SQL "SELECT CODTNS FROM E207EME WHERE CODEMP=:EstNCodEmp AND NUMEME=:EstNNumEme AND SEQEME=:EstNSeqEme";

cRequisicao.AbrirCursor();

 

Se (cRequisicao.Achou)

inicio

aCodTns = cRequisicao.CodTns;

 

Se (aCodTns = "90259") @ transferência ? @

inicio

Se (EstAEstEos="E")

inicio

aCodDepBuscarCCu = EstACodDepOri;

fim

senao

inicio

aCodDepBuscarCCu = EstACodDepDst;

fim;

 

aNovoCodCcu = "";

cDeposito.SQL "SELECT CODCCU FROM E205DEP WHERE CODEMP=:EstNCodEmp AND CODDEP=:aCodDepBuscarCCu";

cDeposito.AbrirCursor();

Se (cDeposito.Achou)

inicio

aNovoCodCCu = cDeposito.CodCcu;

fim;

cDeposito.FecharCursor();

LimpaEspacos(aNovoCodCcu);

 

se (aNovoCodCcu = "")

inicio

Mensagem(Erro,"Não encontrado centro de custo padrão para o depósito do movimento");

fim;

 

EstATemRegistro = "N";

ListaRegraPrimeiro(EstNListaRateio, EstATemRegistro);

enquanto (EstATemRegistro = "S")

inicio

ListaRegraAlterarLinhaAlfa(EstNListaRateio, "CodCcu", aNovoCodCcu, EstATemRegistro);

 

ListaRegraProximo(EstNListaRateio, EstATemRegistro);

fim;

fim;

fim;

 

cRequisicao.FecharCursor();

fim;

Esta regra causará o seguinte efeito:

Caso o depósito não tenha centro de custo configurado, será retornada mensagem de erro e o atendimento será recusado.

Este artigo ajudou você?