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:
- Os rateios dos movimentos de entrada e de saída herdarão a conta contábil e a conta financeira do rateio do item da requisição (E207RAT);
- O centro de custo do rateio do movimento de saída será gravado com o centro de custo padrão do depósito de destino da transferência;
- O centro de custo do rateio do movimento de entrada será gravado com o centro de custo padrão do depósito de origem da transferência.
Caso o depósito não tenha centro de custo configurado, será retornada mensagem de erro e o atendimento será recusado.