Identificador de Regra

EST-210CONSI01

Módulo: EST - Estoques.

Finalidade: Fazer consistências diversas com os dados do movimento no momento em que ele é inserido. Na exclusão somente será executado ao excluir manualmente um movimento de estoque, não importando sua origem.

Características: As consistências devem ser programadas na regra ligada ao identificador. A variável VSOrigem (Tela origem de chamada da regra) somente recebe um valor válido se o movimento de estoque estiver sendo gerado através do processamento de uma tela chamada diretamente no menu, ou seja, somente por telas do estoque. Quando o movimento de estoques estiver sendo gerado através de um processo de outro módulo não é possível identificar a tela que disparou o processo que por sua vez disparou o processo de geração de movimento de estoque.

As variáveis "VSProTrf", "VSDerTrf" apenas receberão valor nos movimentos de transferência entre produtos através do serviço de movimento de estoque com.senior.g5.co.mcm.est.estoques@MovimentarEstoque.
Na tela manual de transferência de produtos, independente da opção de transferência (entre depósitos ou entre produtos), não será disponibilizado o valor das variáveis "VSProTrf", "VSDerTrf", pelo fato de que em transferências entre produtos é possível gerar várias saídas na qual poderá gerar uma ou várias entradas de diferentes produtos, derivações e depósitos, e nas transferências entre depósitos o produto e derivação do movimento de origem é o mesmo produto e derivação do movimento de destino.
Em transferências entre depósitos, independente da origem do mesmo (via tela de transferência manual, serviço de movimento de estoque e etc.), no movimento de origem a variável "VSDepTrf" receberá o depósito do movimento de destino.
Independente do tipo da transferência e do local na qual ela é gerada, a maneira recomendada para rastrear movimentos de transferência é através do código da ligação gerado na transferência (E210MVP.CodLig).

Transação: Não se aplica.

Regra:

definir numero XResto;
definir numero VSCodemp;
definir numero VSCodFil;
definir alfa VSCodPro;
definir alfa VSCodDer;
definir alfa VSCodDep;
definir alfa Vmensagem;
definir alfa AlfQtdMul;

@Cursor para verificar a quantidade múltipla constante na ligação produto x depósito@

inicio
definir cursor cursor_E210EST;
cursor_E210EST.SQL "SELECT USU_QTDMUL FROM E210EST\
WHERE CODEMP = :VSCodEmp\
AND CODPRO = :VSCodPro\
AND CODDER = :VSCodDer\
AND CODDEP = :VSCodDep";
cursor_E210EST.AbrirCursor();
cursor_E210EST.AbrirCursor();
SE (cursor_E210EST.Achou)
@Atribuição do valor encontrato no cursor à variável XQtdMult.@
XQtdMul=cursor_E210EST.USU_QTDMUL;
fim

@Se o valor encontrado for maior que 0, então verificar se a quantidade do movimento é múltipla do valor encontrado@

SE(XQtdMul > 0)
inicio
Valor1 = VSQtdMov;
Valor2 = XQtdMul;
RestoDivisao (Valor1,Valor2,VResto);

@Atribuição de valor à variável XResto@
XResto = VResto;

@Convertendo numero para Alfa, para serem usados na mensagem@
IntParaAlfa(XQtdMul, AlfQtdMul);

@Se a quantidade movimentada não é múltipla do valor encontrato na ligação produto x depósito, gerar mensagem e cancela o processo@
Se (XResto > 0)
inicio
vmensagem = "A quantidade movimentada deve ser multipla de " + AlfQtdMul + ".";
Mensagem(Erro,vmensagem);
Cancel(1);
fim;
fim;

Variáveis Disponibilizadas:

Nome Tipo Observações Retorna Valor
VSCODEMP NÚMERO Código da empresa N
VSCODPRO ALFA Código do produto N
VSCODDER ALFA Código da derivação N
VSCODDEP ALFA Código do depósito N
VSDATMOV DATA Data do Movimento N
VSSEQMOV NÚMERO Sequência do movimento N
VSCODTNS ALFA Código da transação N
VSESTMOV ALFA Tipo de estoque movimentado N
VSESTEOS ALFA Entrada ou Saída N
VSCODLOT NÚMERO Código do Lote de fabricação N
VSDATFAB DATA Data de fabricação N
VSDATVLT DATA Data de validade do lote de fabricação N
VSNUMSEP ALFA Número de Série do Produto N
VSNUMDOC ALFA Número do Documento N
VSOBSMVP ALFA Observação para uso exclusivo do processo de fechamento dos estoques N
VSQTDMOV NÚMERO Quantidade do movimento N
VSVLRMOV NÚMERO Valor do movimento N
VSPROTRF ALFA Produto transferido N
VSDERTRF ALFA Derivação transferida N
VSDEPTRF ALFA Depósito transferido N
VSQTDANT NÚMERO Quantidade Anterior - não disponibilizada. Se necessário deve ser obtida na regra. N
VSVLRANT NÚMERO Valor Anterior - não disponibilizada. Se necessário deve ser obtida na regra. N
VSCODFIL NÚMERO Código da filial da nota fiscal de saída N
VSCODSNF ALFA Código da série da nota fiscal de saída N
VSNUMNFV NÚMERO Número da nota fiscal de saída N
VSSEQIPV NÚMERO Sequência da nota fiscal de saída N
VSCODCLI NÚMERO Código do Cliente N
VSFILNFC ALFA Código da filial da nota fiscal de entrada N
VSNUMNFC NÚMERO Número da nota fiscal de entrada N
VSCODFOR NÚMERO Código do fornecedor N
VSSEQIPC NÚMERO Sequência da nota fiscal de entrada N
VSNUMEME NÚMERO Número da requisição N
VSSNFNFC ALFA Série da Nota Fiscal de Entrada N
VSSEQEME NÚMERO Sequência da requisição N
VSUSURES NÚMERO Usuário responsável N
VSCTARED NÚMERO Conta reduzida N
VSCTAFIN NÚMERO Conta financeira N
VSLCTFIN ALFA Indicativo se o movimento foi lançado no plano financeiro N
VSNUMLOT NÚMERO Número do lote contábil N
VSUSUDIG NÚMERO Usuário da digitação N
VSDATDIG DATA Data da digitação N
VSHORDIG NÚMERO Horário da digitação N
VSNUMPRJ NÚMERO Número interno do projeto N
VSCODFPJ NÚMERO Código da fase do projeto N
VSMOTMVP ALFA Observação do movimento de estoque (uso geral) N
VSORIGEM ALFA Tela origem de chamada da regra N
ESTNNUMDOC NÚMERO Número do Documento N
VSCODORI ALFA Código da Origem do Produto N
VSESTADO ALFA Estado da movimentação(INSERINDO ou EXCLUINDO) N
VSCODCCU ALFA Código do centro de custo do usuário responsável N

Atenção

Caso o parâmetro global LisVarReg esteja habilitado, a variável ListaVariaveis estará disponível em todos os identificadores de regras do sistema. O conteúdo desta variável lista os campos disponibilizados no identificador de regras em questão.

Não é aconselhada a ativação desse parâmetro global para o uso cotidiano. Esse recurso de listagem dos campos de identificadores auxilia a construção de regras e o Suporte para, por exemplo, depuração ou quando não houver acesso à documentação dos identificadores de regras.

Este artigo ajudou você?