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.