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 |
| VenAImprimirItemComSaldoAConferir | ALFA |
Define se o relatório deve ser chamado no processamento quando ainda há saldo a conferir e a opção "Conf. Item" está marcada. O valor "S" deve ser retornado caso seja desejado que o relatório, configurado para ser executado na tela Conferência de Cargas (F135CCA), seja chamado nos momentos em que ocorre o processamento da carga e ainda houver saldo a conferir, com a opção "Conf. Item" marcada. |
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.
English
Español
English
Español


