Identificador de Regra
VEN-135CBCCA01
Módulo: VEN - Vendas.
Finalidade: Devolver ao sistema as informações referentes ao código de barras lido na tela Conferência de Cargas (F135CCA). A regra deverá retornar ao sistema o código do produto, a derivação e a quantidade, além de indicar se o processamento do item da tela de conferência de cargas deve ser imediato e se o saldo remanescente da conferência deverá ou não ser cancelado no pedido ao faturar a carga.
Características: após a leitura do código de barras do produto na tela F135CCA, a regra deverá indicar para a rotina o produto/derivação e a sequência do item da pré-fatura para identificar qual item está sendo lido. A regra deverá criar um cursor, já que pode existir mais de um produto/derivação com o mesmo código, porém com unidades de medida de venda diferentes.
Observação
O identificador VEN-135CBCCA02 tem o objetivo de posicionar a grade de itens não conferidos da pré-fatura em um registro específico, conforme indicado pela regra.
É necessário cadastrar este identificador e vinculá-lo a uma regra que retorne ao sistema o código do produto, a derivação e a sequência do item na pré-fatura, de modo que, ao acionar o identificador de regra VEN-135CBCCA01, o sistema esteja posicionado no registro compatível com o que a regra deste identificador devolverá. Assim, ao posicionar o item na grade corretamente, a variável VsDisQtdLid será carregada com a quantidade do item.
Produto | Derivação | Seq | Un.Venda |
---|---|---|---|
P001 | 400 | 1 | CX12 |
P001 | 400 | 2 | CX24 |
As variáveis VSDisQtdPed, VSDisQtdVen, VSDisQtdLei, VSDisQtdLid e VSDisProcessar são atualizadas com as informações do registro posicionado na grade Itens da pré-fatura não conferidos. Ou seja, as informações desses campos não necessariamente serão as do código de barras que está sendo lido. Isso só acontecerá se o item posicionado na grade pertencer ao mesmo código de barras.
Observação
A variável VSDisNumPfa não está disponível na tela Conferência de Cargas Agrupada F135CMC, pois o objetivo dela é tratar a análise/carga por inteiro, considerando todas as pré-faturas informadas no cabeçalho e que já possuem a lógica de busca dos códigos de barras. Essa particularidade não limita o funcionamento da tela, já que não há necessidade de acionar o identificador.
Tela: F135CCA
Transação: Não se aplica.
Regra:
Definir Alfa VSDisCodPro;
Definir Alfa VSDisCodDer;
Definir Alfa VSDisOperacao;
Definir Alfa VSDisRetQtdLid;
Definir Alfa VSDisSomarQuantidades;
Definir Alfa VSDisProcessar;
Definir Alfa VSDisCancelar;
Definir Alfa VSDisInfQtd;
Definir Alfa VSDisProcSalZero;
Definir numero VSDisCodFil;
Definir numero VSDisNumAne;
Definir alfa vaCodPro;
Definir cursor C_DER;
Definir cursor C_PES;
Definir alfa vaCodOri;
Definir alfa vaCodFam;
Definir alfa vaQtd;
SE (VSDisOperacao = "PARAMETRIZAR")
INICIO
VSDisProcessar = "S";
VSDisInfQtd = "N";
VSDisProcSalZero = "S";
FIM
@ Executará para cada leitura @
SE (VSDisOperacao = "PROCESSAR")
INICIO
StrParaInt(VSDisCodBar , vnCodBar);
SE (vnCodBar = 0)
vnCodBar=-1;
vaCodOri = VSDisCodBar;
vaCodFam = VSDisCodBar;
vaCodPro = VSDisCodBar;
CopiarAlfa(vaCodOri,1,3);
CopiarAlfa(vaCodFam,4,2);
CopiarAlfa(vaCodPro,6,4);
vaCodPro = vaCodOri + "." + vaCodFam + "." + vaCodPro;
vnCodEmp = CodEmp;
C_DER.SQL "SELECT CODPRO, CODDER, CODBAR \
FROM E075DER \
WHERE CODEMP = :vnCodEmp \
AND (CODBAR = :vnCodBar OR \
CODPRO = :vaCodPro)";
C_DER.ABRIRCURSOR();
SE (C_DER.ACHOU)
INICIO
VSDisCodPro = C_DER.CODPRO;
VSDisCodDer = C_DER.CODDER;
SE (vnCodBar = C_DER.CODBAR)
INICIO
SE (VSDisQtdPro = 0) @ não informou quantidade na tela F135CCA (VSDisInfQtd = "N") @
VSDisQtdPro = 1;
FIM;
@ código lido igual ao código de produto da derivação @
SE (vaCodPro = C_DER.CODPRO)
INICIO
SE (VSDisQtdPro = 0) @ não informou quantidade na tela F135CCA (VSDisInfQtd = "N") @
INICIO
@ a quantidade está no próprio código de barras @
vaQtd = VSDisCodBar;
CopiarAlfa(vaQtd,10,5);
StrParaInt(vaQtd,vnQtd);
SE (vnQtd>0)
VSDisQtdPro = vnQtd;
SENAO
VSDisQtdPro = 1;
FIM;
FIM;
VSDisQtdLid = VSDisQtdLid;
vaCodPro = C_DER.CODPRO;
C_PES.SQL "SELECT SEQPES FROM E135PES
WHERE CODEMP = :vnCodEmp \
AND CODFIL = :VSDisCodFil \
AND NUMANE = :VSDisNumAne
AND CODPRO = :vaCodPro";
C_PES.ABRIRCURSOR();
@ verifica se o produto/derivação está na PFA para retornar campo SeqPes, @
@ onde o produto não poderá estar repetido na PFA @
SE (C_PES.ACHOU)
INICIO
VSDisSeqPes = C_PES.SEQPES;
VSDisProcessar = "S";
FIM
SENAO
GeraLog("Produto não localizado na pré-fatura");
C_PES.FECHARCURSOR();
FIM
SENAO
GeraLog("Produto não localizado");
C_DER.FECHARCURSOR();
FIM;
/******************************************************************************/ /* variaveis de operacao */ definir alfa VSDisOperacao; /******************************************************************************/ /* variaveis de entrada */ definir numero VSDisCodEmp; definir numero VSDisCodFil; definir numero VSDisNumAne; definir numero VSDisNumPfa; definir alfa VSDisCodBar; definir numero VSDisQtdPed; definir numero VSDisQtdVen; definir numero VSDisQtdLid; /******************************************************************************/ /* variaveis de saida */ definir alfa VSDisCodPro; definir alfa VSDisCodDer; definir numero VSDisSeqPes; definir numero VSDisQtdPro; /******************************************************************************/ /* variaveia auxiliares */ definir alfa xCursor; definir numero VAuxSeqPes; definir alfa VAuxNumSep; definir alfa VAuxCodLot; definir Alfa xSql; definir numero ok; /******************************************************************************/ /* inicializacao */ ok = 0; /* 0 = inicializacao */ VAuxNumSep = ""; VAuxCodLot = ""; /******************************************************************************/ /* parametrizar */ se (VSDisOperacao = "PARAMETRIZAR") /* nao faz nada */ VSDisOperacao = VSDisOperacao; /******************************************************************************/ /* processar */ se (VSDisOperacao = "PROCESSAR") inicio SQL_Criar(xCursor); xSql = " select *" + " from e075der" + " where codemp = :VSDisCodEmp and codbar = :VSDisCodBar"; SQL_DefinirComando(xCursor, xSql); SQL_DefinirInteiro(xCursor, "VSDisCodEmp", VSDisCodEmp); SQL_DefinirAlfa(xCursor, "VSDisCodBar", VSDisCodBar); SQL_AbrirCursor(xCursor); /* se não está vazio */ se (SQL_EOF(xCursor) = 0) inicio SQL_RetornarAlfa(xCursor,"CodPro", VSDisCodPro); SQL_RetornarAlfa(xCursor,"CodDer", VSDisCodDer); VSDisSeqPes = 0; VSDisQtdPro = 2; ok = 2; /* 2 = deve buscar seqpes */ SQL_FecharCursor(xCursor); SQL_Destruir(xCursor); fim fim /******************************************************************************/ /* processar */ se ((VSDisOperacao = "PROCESSAR") e (ok = 0)) inicio SQL_Criar(xCursor); xSql = " select *" + " from e075der" + " where codemp = :VSDisCodEmp and codba2 = :VSDisCodBar"; SQL_DefinirComando(xCursor, xSql); SQL_DefinirInteiro(xCursor, "VSDisCodEmp", VSDisCodEmp); SQL_DefinirAlfa(xCursor, "VSDisCodBar", VSDisCodBar); SQL_AbrirCursor(xCursor); /* se não está vazio */ se (SQL_EOF(xCursor) = 0) inicio SQL_RetornarAlfa(xCursor,"CodPro", VSDisCodPro); SQL_RetornarAlfa(xCursor,"CodDer", VSDisCodDer); VSDisSeqPes = 0; VSDisQtdPro = 1; ok = 2; /* 2 = deve buscar seqpes */ SQL_FecharCursor(xCursor); SQL_Destruir(xCursor); fim fim /******************************************************************************/ /* processar */ se ((VSDisOperacao = "PROCESSAR") e (ok = 0)) inicio SQL_Criar(xCursor); xSql = " select *" + " from e210cei" + " where codemp = :VSDisCodEmp and codbar = :VSDisCodBar"; SQL_DefinirComando(xCursor, xSql); SQL_DefinirInteiro(xCursor, "VSDisCodEmp", VSDisCodEmp); SQL_DefinirAlfa(xCursor, "VSDisCodBar", VSDisCodBar); SQL_AbrirCursor(xCursor); /* se não está vazio */ se (SQL_EOF(xCursor) = 0) inicio SQL_RetornarAlfa(xCursor,"CodPro", VSDisCodPro); SQL_RetornarAlfa(xCursor,"CodDer", VSDisCodDer); VSDisSeqPes = 0; VSDisQtdPro = 1; ok = 2; /* deve buscar seqpes */ SQL_FecharCursor(xCursor); SQL_Destruir(xCursor); fim fim /******************************************************************************/ /* processar */ se ((VSDisOperacao = "PROCESSAR") e (ok = 0)) inicio SQL_Criar(xCursor); xSql = " select e210dls.CodPro, e210dls.CodDer, e210dls.NumSep, e210dls.CodLot"+ " from e210dls"+ " where e210dls.CodEmp = :VSDisCodEmp and"+ " (e210dls.NumSep = :VSDisCodBar or e210dls.CodLot = :VSDisCodBar)"; SQL_DefinirComando(xCursor, xSql); SQL_DefinirInteiro(xCursor, "VSDisCodEmp", VSDisCodEmp); SQL_DefinirAlfa(xCursor, "VSDisCodBar", VSDisCodBar); SQL_AbrirCursor(xCursor); /* se não está vazio */ se (SQL_EOF(xCursor) = 0) inicio SQL_RetornarAlfa(xCursor,"CodPro", VSDisCodPro); SQL_RetornarAlfa(xCursor,"CodDer", VSDisCodDer); SQL_RetornarAlfa(xCursor,"NumSep", VAuxNumSep); SQL_RetornarAlfa(xCursor,"CodLot", VAuxCodLot); VSDisSeqPes = 0; VSDisQtdPro = 1; ok = 3; /* 3 = deve buscar lote/serie */ SQL_FecharCursor(xCursor); SQL_Destruir(xCursor); fim fim /******************************************************************************/ /* processar */ se ((VSDisOperacao = "PROCESSAR") e (ok = 3)) /* 3 = deve buscar lote/serie */ inicio se ((VAuxNumSep <> "") e (VAuxNumSep <> " ")) inicio SQL_Criar(xCursor); xSql = " select e135dls.NumAne, e135dls.NumPfa, e135dls.SeqPes"+ " from e135Dls "+ " where e135dls.CodEmp = :VSDisCodEmp and"+ " e135dls.CodFil = :VSDisCodFil and"+ " e135dls.NumAne = :VSDisNumAne and"+ " e135dls.NumPfa = :VSDisNumPfa and"+ " (e135dls.NumSep = :VAuxNumSep"; SQL_DefinirComando(xCursor, xSql); SQL_DefinirInteiro(xCursor, "VSDisCodEmp", VSDisCodEmp); SQL_DefinirInteiro(xCursor, "VSDisCodFil", VSDisCodFil); SQL_DefinirInteiro(xCursor, "VSDisNumAne", VSDisNumAne); SQL_DefinirInteiro(xCursor, "VSDisNumPfa", VSDisNumPfa); SQL_DefinirAlfa(xCursor, "VAuxNumSep", VAuxNumSep); SQL_AbrirCursor(xCursor); /* se não está vazio */ se (SQL_EOF(xCursor) = 0) inicio SQL_RetornarInteiro(xCursor, "SeqPes", VAuxSeqPes); SQL_FecharCursor(xCursor); SQL_Destruir(xCursor); SQL_Criar(xCursor); xSql = " select e135Pes.CodPro, e135Pes.CodDer"+ " from e135Pes"+ " where e135Pes.CodEmp = :VSDisCodEmp and"+ " e135Pes.CodFil = :VSDisCodFil and"+ " e135Pes.NumAne = :VSDisNumAne and"+ " e135Pes.NumPfa = :VSDisNumPfa and"+ " e135Pes.SeqPes = :VAuxSeqPes and" + " e135pes.PesCnf = 1"; /* somente itens a conferir */ SQL_DefinirComando(xCursor, xSql); SQL_DefinirInteiro(xCursor, "VSDisCodEmp", VSDisCodEmp); SQL_DefinirInteiro(xCursor, "VSDisCodFil", VSDisCodFil); SQL_DefinirInteiro(xCursor, "VSDisNumAne", VSDisNumAne); SQL_DefinirInteiro(xCursor, "VSDisNumPfa", VSDisNumPfa); SQL_DefinirInteiro(xCursor, "VAuxSeqPes", VAuxSeqPes); SQL_AbrirCursor(xCursor); /* se não está vazio */ se (SQL_EOF(xCursor) = 0) inicio SQL_RetornarAlfa(xCursor,"CodPro", VSDisCodPro); SQL_RetornarAlfa(xCursor,"CodDer", VSDisCodDer); VSDisSeqPes = VAuxSeqPes; VSDisQtdPro = 1; ok = 1; /* 1 = ja buscou tudo */ SQL_FecharCursor(xCursor); SQL_Destruir(xCursor); fim fim senao inicio SQL_Criar(xCursor); xSql = " select e135Pes.CodPro, e135Pes.CodDer, e135Pes.SeqPes"+ " from e135Pes"+ " where e135Pes.CodEmp = :VSDisCodEmp and"+ " e135Pes.CodFil = :VSDisCodFil and"+ " e135Pes.NumAne = :VSDisNumAne and"+ " e135Pes.NumPfa = :VSDisNumPfa and"+ " e135Pes.CodPro = :VSDisCodPro and"+ " e135Pes.CodDer = :VSDisCodDer and" + " e135pes.PesCnf = 1"; /* somente itens a conferir */ SQL_DefinirComando(xCursor, xSql); SQL_DefinirInteiro(xCursor, "VSDisCodEmp", VSDisCodEmp); SQL_DefinirInteiro(xCursor, "VSDisCodFil", VSDisCodFil); SQL_DefinirInteiro(xCursor, "VSDisNumAne", VSDisNumAne); SQL_DefinirInteiro(xCursor, "VSDisNumPfa", VSDisNumPfa); SQL_DefinirAlfa(xCursor, "VSDisCodPro", VSDisCodPro); SQL_DefinirAlfa(xCursor, "VSDisCodDer", VSDisCodDer); SQL_AbrirCursor(xCursor); /* se não está vazio */ se (SQL_EOF(xCursor) = 0) inicio SQL_RetornarInteiro(xCursor,"SeqPes", VSDisSeqPes); VSDisQtdPro = 1; ok = 1; /* ja buscou tudo */ SQL_FecharCursor(xCursor); SQL_Destruir(xCursor); fim fim fim fim /******************************************************************************/ /* processar */ se ((VSDisOperacao = "PROCESSAR") e (ok = 3)) /* 3 = deve buscar lote/serie */ inicio se ((VAuxCodLot <> "") e (VAuxCodLot <> " ")) inicio SQL_Criar(xCursor); xSql = " select e135dls.NumAne, e135dls.NumPfa, e135dls.SeqPes"+ " from e135Dls"+ " where e135dls.CodEmp = :VSDisCodEmp and"+ " e135dls.CodFil = :VSDisCodFil and"+ " e135dls.NumAne = :VSDisNumAne and"+ " e135dls.NumPfa = :VSDisNumPfa and"+ " e135dls.CodLot = :VAuxCodLot"; SQL_DefinirComando(xCursor, xSql); SQL_DefinirInteiro(xCursor, "VSDisCodEmp", VSDisCodEmp); SQL_DefinirInteiro(xCursor, "VSDisCodFil", VSDisCodFil); SQL_DefinirInteiro(xCursor, "VSDisNumAne", VSDisNumAne); SQL_DefinirInteiro(xCursor, "VSDisNumPfa", VSDisNumPfa); SQL_DefinirAlfa(xCursor, "VAuxCodLot", VAuxCodLot); SQL_AbrirCursor(xCursor); /* se não está vazio */ se (SQL_EOF(xCursor) = 0) inicio SQL_RetornarInteiro(xCursor, "SeqPes", VAuxSeqPes); SQL_FecharCursor(xCursor); SQL_Destruir(xCursor); SQL_Criar(xCursor); xSql = " select e135Pes.CodPro, e135Pes.CodDer"+ " from e135Pes"+ " where e135Pes.CodEmp = :VSDisCodEmp and"+ " e135Pes.CodFil = :VSDisCodFil and"+ " e135Pes.NumAne = :VSDisNumAne and"+ " e135Pes.NumPfa = :VSDisNumPfa and"+ " e135Pes.SeqPes = :VAuxSeqPes and" + " e135pes.PesCnf = 1"; /* somente itens a conferir */ SQL_DefinirComando(xCursor, xSql); SQL_DefinirInteiro(xCursor, "VSDisCodEmp", VSDisCodEmp); SQL_DefinirInteiro(xCursor, "VSDisCodFil", VSDisCodFil); SQL_DefinirInteiro(xCursor, "VSDisNumAne", VSDisNumAne); SQL_DefinirInteiro(xCursor, "VSDisNumPfa", VSDisNumPfa); SQL_DefinirInteiro(xCursor, "VAuxSeqPes", VAuxSeqPes); SQL_AbrirCursor(xCursor); /* se não está vazio */ se (SQL_EOF(xCursor) = 0) inicio SQL_RetornarAlfa(xCursor,"CodPro", VSDisCodPro); SQL_RetornarAlfa(xCursor,"CodDer", VSDisCodDer); VSDisSeqPes = VAuxSeqPes; VSDisQtdPro = 1; ok = 1; /* ja buscou tudo */ SQL_FecharCursor(xCursor); SQL_Destruir(xCursor); fim fim senao inicio SQL_Criar(xCursor); xSql = " select e135Pes.CodPro, e135Pes.CodDer, e135Pes.SeqPes"+ " from e135Pes "+ " where e135Pes.CodEmp = :VSDisCodEmp and"+ " e135Pes.CodFil = :VSDisCodFil and"+ " e135Pes.NumAne = :VSDisNumAne and"+ " e135Pes.NumPfa = :VSDisNumPfa and"+ " e135Pes.CodPro = :VSDisCodPro and"+ " e135Pes.CodDer = :VSDisCodDer and" + " e135pes.PesCnf = 1"; /* somente itens a conferir */ SQL_DefinirComando(xCursor, xSql); SQL_DefinirInteiro(xCursor, "VSDisCodEmp", VSDisCodEmp); SQL_DefinirInteiro(xCursor, "VSDisCodFil", VSDisCodFil); SQL_DefinirInteiro(xCursor, "VSDisNumAne", VSDisNumAne); SQL_DefinirInteiro(xCursor, "VSDisNumPfa", VSDisNumPfa); SQL_DefinirAlfa(xCursor, "VSDisCodPro", VSDisCodPro); SQL_DefinirAlfa(xCursor, "VSDisCodDer", VSDisCodDer); SQL_AbrirCursor(xCursor); /* se não está vazio */ se (SQL_EOF(xCursor) = 0) inicio SQL_RetornarInteiro(xCursor,"SeqPes", VSDisSeqPes); VSDisQtdPro = 1; ok = 1; /* ja buscou tudo */ SQL_FecharCursor(xCursor); SQL_Destruir(xCursor); fim fim fim fim /******************************************************************************/ /* processar */ se ((VSDisOperacao = "PROCESSAR") e (ok = 2)) /* 2 = deve buscar seqpes */ inicio SQL_Criar(xCursor); xSql = " select e135Pes.CodPro, e135Pes.CodDer, e135Pes.SeqPes"+ " from e135Pes"+ " where e135Pes.CodEmp = :VSDisCodEmp and"+ " e135Pes.CodFil = :VSDisCodFil and"+ " e135Pes.NumAne = :VSDisNumAne and"+ " e135Pes.NumPfa = :VSDisNumPfa and"+ " e135Pes.CodPro = :VSDisCodPro and"+ " e135Pes.CodDer = :VSDisCodDer and" + " e135pes.PesCnf = 1"; /* somente itens a conferir */ SQL_DefinirComando(xCursor, xSql); SQL_DefinirInteiro(xCursor, "VSDisCodEmp", VSDisCodEmp); SQL_DefinirInteiro(xCursor, "VSDisCodFil", VSDisCodFil); SQL_DefinirInteiro(xCursor, "VSDisNumAne", VSDisNumAne); SQL_DefinirInteiro(xCursor, "VSDisNumPfa", VSDisNumPfa); SQL_DefinirAlfa(xCursor, "VSDisCodPro", VSDisCodPro); SQL_DefinirAlfa(xCursor, "VSDisCodDer", VSDisCodDer); SQL_AbrirCursor(xCursor); /* se não está vazio */ se (SQL_EOF(xCursor) = 0) inicio SQL_RetornarInteiro(xCursor,"SeqPes", VSDisSeqPes); VSDisQtdPro = 1; ok = 1; /* ja buscou tudo */ SQL_FecharCursor(xCursor); SQL_Destruir(xCursor); fim fim
Variáveis disponibilizadas:
Nome | Tipo | Observações | Retorna Valor |
---|---|---|---|
VSDisCodEmp | NÚMERO | Empresa logada | N |
VSDisCodFil | NÚMERO | Filial logada | N |
VSDisNumAne | NÚMERO | Número da análise de embarque | N |
VSDisNumPfa | NÚMERO | Número da pré-fatura | N |
VSDisQtdPed | NÚMERO | Quantidade do item do pedido | N |
VSDisQtdVen | NÚMERO | Quantidade de venda do item de pedido | N |
VSDisOperacao | ALFA | Indica a operação que está sendo executada, podendo ser PARAMETRIZAR (indica que o acesso à regra está sendo feito no momento da abertura da tela de conferência de cargas com o objetivo ela retorne para a rotina se o campo Quantidade deverá ser exibido para permitir ao usuário informar a quantidade antes de proceder à leitura do código de barras) ou PROCESSAR (indica que a regra está sendo executada após a leitura do código de barras). | N |
VSDisQtdLei | NÚMERO | Número de leituras efetuadas | N |
VSDisQtdLid | NÚMERO | Quantidade já lida do item | N |
VenADigVerificador | ALFA | Digito verificador do volume quando a empresa controlar digito verificador | N |
VenAUnidadeaConferir | ALFA | Indicar em qual unidade de medida será feita a conferência na tela de
Conferência de Cargas (F135CCA) A = Ambas (valor padrão) E = Estoque (quantidade perdida, ou seja, quando a quantidade de estoque é maior que a quantidade vendida) V = Venda |
S |
VenNTotalQtdVen | NÚMERO | Quantidade total de venda (soma de todos registros CodPro e CodDer iguais) | N |
VenNTotalQtdLei | NÚMERO | Número total de leituras (Soma de todos registros CodPro e CodDer iguais) | N |
VenNTotalQtdLid | NÚMERO | Quantidade total do produto já lido através do código de barras (Soma de todos registros CodPro e CodDer iguais) | N |
VenATipCon | ALFA | Indica o tipo de leitura: C - Conferir | D - Desconferir | N |
VenAOperacao | ALFA | Indica o estado da operação. Nesse caso, assumirá sempre o valor "LEITURA" | N |
VenNTotalQtdPed | NÚMERO | Quantidade total do pedido (soma de todos registros CodPro e CodDer iguais) | N |
VSDisCodBar | ALFA | Código de barras lido | S |
VSDisCodPro | ALFA | Código do produto | S |
VSDisCodDer | ALFA | Código da derivação | S |
VSDisSeqPes | NÚMERO | Sequência do item da pré-fatura que deverá ser pesquisado na tela F135CCA | S |
VSDisRetQtdLid | ALFA | Indica se a rotina irá considerar a nova quantidade lida definida no parâmetro VSDisNovaQtdLid. (S/N) | S |
VSDisNovaQtdLid | NÚMERO | Retorna a nova quantidade a ser considerada como lida pela rotina. Este parâmetro somente será considerado pela rotina quando o parâmetro VSDisRetQtdLid tiver valor "S", sendo seu valor padrão = 1 | S |
VSDisSomarQuantidades | ALFA | Indica se a quantidade deverá ser somada ao produto já existente na grade de produtos ou se deverá incluir um novo registro nesta grade. O padrão é incluir um novo registro. (S/N) | S |
VSDisQtdPro | NÚMERO | Quantidade do produto | S |
VSDisProcessar | ALFA | Processar o item lido (S/N) | S |
VSDisCancelar | ALFA | Cancelar Saldo (S/N) | S |
VSDisInfQtd | ALFA | Indica se o campo Quantidade será exibido na tela F135CCA para permitir que seja informada a quantidade antes da leitura do código de barras. A quantidade informada será repassada para a regra através do parâmetro VSDisQtdPro. O valor padrão para este campo é "0". Informar quantidade antes da leitura do código de barras (S/N). | S |
VSDisProcSalZero | ALFA | Indica se é para gravar o item quando o saldo para conferir estiver zerado (S/N), padrão = "N". Este parâmetro será verificado somente ao entrar na tela F135CCA. | S |
VSExibeMsgConferencia | ALFA | Indica se é necessário exibir a seguinte mensagem "A conferência desta pré-fatura já foi iniciada. Deseja continuar ou reiniciar a conferência?", com a variável igual a 'N' a mensagem não será exibida e o processo continuará automaticamente, se for 'S', continuará com o processo padrão, exibindo a mensagem e sendo necessário a interação do usuário. | S |
VSConEstDis | ALFA | Habilitar ou não a consistência de estoque disponível. Essa variável é lida apenas ao carregar a tela F135CCA pela primeira vez. A variável recebe valor "S" ou "N". Quando a variável não está definida na regra ou quando o valor dessa variável for "N", então o sistema não realizará a consistência de estoque. | S |
VSDisQtdOriPes | NÚMERO | Essa variável será sempre preenchida pelo sistema com a quantidade original do item da pré-fatura conferida. | N |
VenAItemConferido | ALFA | Essa variável indica se o item deve ser marcadocomo conferido no campo Conf. Item da grade de itens não conferidos da pré-fatura. O padrão é "N - Não" que indica que o campo de seleção não deve ser selecionado. (S/N) | S |
VenAPriorizarDesconferenciaPorQuantidade | ALFA | Indica se deve priorizar a desconferência de um item pela mesma quantidade desconferida. Caso o sistema não encontre uma conferência com a mesma quantidade, desconfere a primeira conferência que encontrar na grade Produtos Conferidos. O padrão é "N - Não", onde indica que não deve priorizar a desconferência de um item pela mesma quantidade desconferida. (S/N) | S |
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.