Árvore de páginas

Validação no momento do registro do item

Descrição:

Este ponto de entrada é executado durante o fluxo do registro de item do TotvsPDV, quando a opção (F3) Reg. de Item é selecionada e o código do produto é informado. Possui como parâmetros de entrada, o código do produto e a quantidade e caso o retorno seja falso, as etapas seguintes do registro não serão realizadas.

Versões:

TOTVS PDV 11.8 / 12.1.17

Programa Fonte:

STWITEMREGISTRY

Exemplo:

//Exemplo 1: Ponto de entrada que nao permite quantidade decimal

#Include 'Protheus.ch'

User Function StValPro()

Local cCodItem := PARAMIXB[1] // Codigo do produto
Local nQuant := PARAMIXB[2] // Quantidade
Local lRet := .T.

If Int(nQuant) <> nQuant
STFMessage("ItemRegistered","STOP","NAO PERMITIDO VENDA FRACIONADA")
lRet := .F.
EndIf

Return lRet

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

//Exemplo 2: Ponto de Entrada para não permitir o registro de um determinado item diretamente no Caixa, somente via importação de orçamento.

//Nesse exemplo foi utilizado um caso hipotético onde não será permitido o registro de item diretamente no PDV quando campo B1_FAMIILA for igual a "S".

#INCLUDE "PROTHEUS.CH"
//------------------------------------------------------------------------------
/*{Protheus.doc} StValPro
Função para validar se um determinado item poderá ser registrado no PDV
@param PARAMIXB
@author Paulo Henrique Santos de Moura
@version P12
@since 12/01/21018
@return lRet
/*/
//------------------------------------------------------------------------------
User Function StValPro( )
Local lRet := .T. //Se lRet = .T. permite o registro do item, caso contrário não permite
Local cCodItem := PARAMIXB[1] //Codigo do produto

If !IsInCallStack("STBImportSale") //Somente realiza a validação quando o registro do item não tiver como origem o processo de importação de orçamento
If cCodItem <> SB1->B1_COD //Verifica se SB1 esta posicionada no item que foi registrado e posiciona se necessario
SB1->(DbSetOrder(1)) //B1_FILIAL+B1_COD
lRet := DbSeek( xFilial("SB1") + Padr(cCodItem,TamSx3("B1_COD")[1]))
EndIf

If lRet .AND. SB1->B1_FAMILIA = "S" //não permite o registro de item quando B1_FAMILIA = "S"
lRet := .F.
EndIf
EndIf

Return lRet

StValPro.prw





Retorno:

.T. - Permite adicionar os itens.

.F. - Não permite adicionar os itens.