Identificador de Regra

VEN-113REMVL01

Módulo:
VEN - Vendas

Finalidade: Faz validações para os eventos "Emitir Receitas" e "Cancelar Receitas" na Emissão da receita agronômica (F113REM). A partir da ativação deste IR, poderá ser feita qualquer validação nas variáveis disponibilizadas, onde o sistema esperará o retorno e, sendo este diferente de 'OK', irá abortar o processamento.

O identificador será acionado no receituário agronômico somente quando, na tela Unidade de medida da dose (F113UMD), o campo Obriga definir área na receita estiver definido com valor "S - Sim". Adicionalmente a isso, na tela Aplicação (F113APL), a Unidade de medida também deve estar configurada com valor "S - Sim", para que a condição seja atendida.

Observação

Caso seja necessário realizar alguma ação após emissão ou cancelamento da receita, deve-se verificar o identificador VEN-113REMVL02.

Tela:
F113REM

Transação:
Não se aplica

Regra:

@Retorno@ Definir Alfa aRemRetVld; @Parâmetro@ Definir Alfa aRemEvento; @Cabecalho Receita@ Definir Numero nRemCodemp; Definir Numero nRemCodfil; Definir Numero nRemSeqrem; Definir Data dRemDatrec; Definir Numero nRemCodcli; Definir Numero nRemCodagr; Definir Alfa aRemSigufs; Definir Alfa aRemNumcre; Definir Alfa aRemNumart; Definir Alfa aRemSerart; Definir Numero nRemCodart; Definir Numero nRemCodetp; Definir Numero nRemCoddpp; Definir Numero nRemCoddia; Definir Alfa aRemCmpdia; Definir Numero nRemCodapt; Definir Numero nRemCodemb; Definir Numero nRemNumrec; Definir Numero nRemSeqent; Definir Alfa aRemLocapl; Definir Alfa aRemComapl; Definir Numero nRemCodsit; Definir Numero nRemQtdemi; Definir Alfa aRemIdepar; Definir Alfa aRemProrem; Definir Alfa aRemNumret; @Itens da Receita@ Definir Numero nReiCodemp; Definir Numero nReiCodfil; Definir Numero nReiSeqrem; Definir Numero nReiSeqrei; Definir Numero nReiNumped; Definir Numero nReiSeqipd; Definir Alfa aReiCodsnf; Definir Numero nReiNumnfv; Definir Numero nReiSeqipv; Definir Alfa aReiCodpro; Definir Alfa aReiCodder; Definir Numero nReiCodetp; Definir Numero nReiCoddpp; Definir Numero nReiCoddia; Definir Alfa aReiCmpdia; Definir Numero nReiCodapt; Definir Numero nReiCodemb; Definir Numero nReiQtddos; Definir Numero nReiUnimed; Definir Numero nReiVlrcal; Definir Numero nReiQtdrei; Definir Numero nReiNumapl; Definir Numero nReiVlrare; Definir Alfa aReiIdepar; @Chave Receita@ Definir Numero nCodEmp; Definir Numero nCodFil; Definir Numero nSeqRem; @Variável de conversão@ Definir Alfa aConvertido; aRemRetVld = "OK"; @Default Retorna true@ @Testa cabeçalho aqui se houver teste, retorno default igual a "OK" -------------------------------------------------@ @Testa botão emitir@ se (aRemEvento = "Emitir"){ se (nRemNumrec = 13) { aRemRetVld = ""; ConverteMascara(1,nRemNumrec, aConvertido, "AAAAAAAAA"); Concatena("Não é possível emitir a receita de número ", "",aConvertido,aConvertido); Mensagem(Retorna, aConvertido); }; }; @Testa botão cancelar@ se ((aRemRetVld = "OK") e (aRemEvento = "Cancelar")){ se (nRemNumrec = 10) { aRemRetVld = ""; ConverteMascara(1,nRemNumrec, aConvertido, "AAAAAAAAA"); Concatena("Não é possível cancelar a receita de número ", "",aConvertido,aConvertido); Mensagem(Retorna, aConvertido); }; }; @Se cabeçalho retornar ok testa item se houver teste@ se (aRemRetVld = "OK"){ nCodEmp = nRemCodemp; nCodFil = nRemCodfil; nSeqRem = nRemSeqrem; @ Selecionar itens da receira @ Definir Cursor Cur_A113REI; Cur_A113REI.Sql "Select e113rei.Codemp,e113rei.Codfil,e113rei.Seqrem,e113rei.Seqrei, \ e113rei.Numped,e113rei.Seqipd,e113rei.Codsnf,e113rei.Numnfv, \ e113rei.Seqipv,e113rei.Codpro,e113rei.Codder,e113rei.Codetp, \ e113rei.Coddpp,e113rei.Coddia,e113rei.Cmpdia,e113rei.Codapt, \ e113rei.Codemb,e113rei.Qtddos,e113rei.Unimed,e113rei.Vlrcal, \ e113rei.Qtdrei,e113rei.Numapl,e113rei.Vlrare,e113rei.Idepar \ from e113rei \ where e113rei.Codemp = :nCodEmp and e113rei.Codfil = :nCodFil and e113rei.Seqrem = :nSeqRem"; Cur_A113REI.AbrirCursor() Enquanto(Cur_A113REI.Achou){ nReiCodemp = Cur_A113REI.Codemp; nReiCodfil = Cur_A113REI.Codfil; nReiSeqrem = Cur_A113REI.Seqrem; nReiSeqrei = Cur_A113REI.Seqrei; nReiNumped = Cur_A113REI.Numped; nReiSeqipd = Cur_A113REI.Seqipd; aReiCodsnf = Cur_A113REI.Codsnf; nReiNumnfv = Cur_A113REI.Numnfv; nReiSeqipv = Cur_A113REI.Seqipv; aReiCodpro = Cur_A113REI.Codpro; aReiCodder = Cur_A113REI.Codder; nReiCodetp = Cur_A113REI.Codetp; nReiCoddpp = Cur_A113REI.Coddpp; nReiCoddia = Cur_A113REI.Coddia; aReiCmpdia = Cur_A113REI.Cmpdia; nReiCodapt = Cur_A113REI.Codapt; nReiCodemb = Cur_A113REI.Codemb; nReiQtddos = Cur_A113REI.Qtddos; nReiUnimed = Cur_A113REI.Unimed; nReiVlrcal = Cur_A113REI.Vlrcal; nReiQtdrei = Cur_A113REI.Qtdrei; nReiNumapl = Cur_A113REI.Numapl; nReiVlrare = Cur_A113REI.Vlrare; aReiIdepar = Cur_A113REI.Idepar; @Testa item aqui se houver teste, retorno default igual a "OK" ------------------------------------------------------@ @Efetua a validação do botão emitir para os itens@ se (aRemEvento = "Emitir"){ @Se não passar retorna vazio -> aRemRetVld = ""@ }; @Se passou pelo emitir, efetua a validação do botão cancelar para os itens@ se ((aRemRetVld = "OK") e (aRemEvento = "Cancelar")){ @Se não passar retorna vazio -> aRemRetVld = ""@ }; Cur_A113REI.Proximo() }; };

Variáveis Disponibilizadas:

Cabeçalho da receita

Nome Tipo Observação Retorna Valor
nRemCodemp Numero Empresa Não
nRemCodfil Numero Filial Não
nRemSeqrem Numero Sequência da receita agronômica Não
dRemDatrec Data Data de emissão da receita Não
nRemCodcli Numero Cliente Não
nRemCodagr Numero Código do reponsável técnico Não
aRemSigufs Alfa UF Não
aRemNumcre Alfa Número CREA Não
aRemNumart Alfa Número ART Não
aRemSerart Alfa Série ART Não
nRemCodart Numero Código ART Não
nRemCodetp Numero Código da espécie/cultura Não
nRemCoddpp Numero Código dapraga/problema Não
nRemCoddia Numero Código do Diagnóstico Não
aRemCmpdia Alfa Complemento do diagnóstico Não
nRemCodapt Numero Código tipo da aplicação Não
nRemCodemb Numero Código da embalagem Não
nRemNumrec Numero Número da receita Não
nRemSeqent Numero Sequência de entrega Não
aRemLocapl Alfa Local aplicação Não
aRemComapl Alfa Complemento local aplicação Não
nRemCodsit Numero Situação Não
nRemQtdemi Numero Quantidade de emissões da receita Não
aRemIdepar Alfa Código de identificação do parceiro Não
aRemProrem Alfa Protocolo da receita registrado no órgão competente Não
aRemNumret Alfa Número da receita emitida por responsável técnico Não
aRemEstado Alfa Estado do Evento ('Consistindo') Não

Itens da Receita

Nome Tipo Observação Retorna Valor
nReiCodemp Numero Empresa Não
nReiCodfil Numero Filial Não
nReiSeqrem Numero Sequência da receita agronômica Não
nReiSeqrei Numero Sequência do item da receita Não
nReiNumped Numero Número pedido Não
nReiSeqipd Numero Sequência do item do pedido Não
aReiCodsnf Alfa Código da série da nota fiscal de saída Não
nReiNumnfv Numero Número da nota fiscal de saída Não
nReiSeqipv Numero Sequência do item da nota fiscal de saída Não
aReiCodpro Alfa Código do produto Não
aReiCodder Alfa Código da derivação Não
nReiCodetp Numero Código da espécie/cultura Não
nReiCoddpp Numero Código da praga/problema Não
nReiCoddia Numero Código do Diagnóstico Não
aReiCmpdia Alfa Complemento do diagnóstico Não
nReiCodapt Numero Código tipo de aplicação Não
nReiCodemb Numero Código da embalagem Não
nReiQtddos Numero Quantidade da dose Não
nReiUnimed Numero Código da unidade de medida Não
nReiVlrcal Numero Calda Não
nReiQtdrei Numero Quantidade do item na receita Não
nReiNumapl Numero Número de aplicações Não
nReiVlrare Numero Área Não
aReiIdepar Alfa Código de identificação do parceiro Não
aRemRetVld Alfa Retorno da validação (Valor default "OK") Sim
aRemEvento Alfa Descrição do Evento ('Emitir', 'Cancelar') Não

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ê?