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 | ALFA | 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 | NÚMERO | 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 |
VSORIORP | ALFA | Código da Origem de Produto da O.P. | 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.