Boa tarde a todos, preciso criar uma regra para que tudo que estiver setado como "A" no cadastro do cliente obrigue dentro do call center o vendedor não alterar para nem uma condição de pagamento diferente de 1, fiz dessa forma abaixo e deu certo. Porem para condições que iniciam com "1" exemplo 11 até 19, ele deixa passar porque tem o numero 1 na frente. coo fariam? Help! Obrigao pela atenção
Include 'Protheus.ch'
User Function TMKDADOS(cCodPagto, cCodTransp, cCob, cEnt, cCidadeC, cCepC, cBairroC, cBairroE, cCidadeE, cCepE, cUfE, aParcelas)
Local aArea := GetArea()
Local lRet := .T.
If SA1->A1_CARACTE == "A" .AND. cCodPagto <> "1"
MsgInfo("Somente a Vista")
lRet := .F.
Endif
restArea(aArea)
Return lRet
Há várias opções de como você montar isso, uma delas seria você colocar cCodPagto <> '1', você mudar para SUBSTR(cCodPagto,1,1) <> '1'.
Explicando esse trecho:
SUBSTR(cCodPagto,1,1)
Esse pedaço aqui você pega à partir da primeira posição, 1 caracter, da sua variável cCodPagto e faz uma validação que ela é diferente de 1. Usando essa regra, tudo o que começar com 1, cairá na sua validação.
Se, em algum momento, você quiser filtrar, por exemplo 15, 16 e 17, você pode também criar uma variável que receba os outros números e validar com '$' que seria um IN do SQL.
cTeste := "15,16,17"
if cCodPagto $ cTeste
... seu código
endif
O inverso também, mas, só uma pequena diferença na sintaxe:
if !(cCodPagto $ cTeste)
... seu código
endif
Veja se funciona para a sua necessidade e nos dê um retorno aqui.